[automerger skipped] Merge aosp-24Q3-ts-dev am: fb1de08eff -s ours

am skip reason: Merged-In I52b5a62d20ee7df14ecf93c9b0dbbed6f7dc0f0d with SHA-1 aa0d63ce40 is already in history

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/28853088

Change-Id: I7f187cec076e0a3d8aa1da905571f0b3b5633a4c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
index cb898be..25fc8f56 100644
--- a/Android.bp
+++ b/Android.bp
@@ -68,6 +68,9 @@
     static_libs: [
         // External dependencies
         "androidx.navigation_navigation-fragment-ktx",
+        "androidx.slice_slice-builders",
+        "androidx.slice_slice-core",
+        "androidx.slice_slice-view",
         "androidx.window_window-java",
         "gson",
         "guava",
@@ -79,12 +82,12 @@
         "android.hardware.dumpstate-V1-java",
         "android.hardware.dumpstate-V1.0-java",
         "android.hardware.dumpstate-V1.1-java",
-        "android.view.accessibility.flags-aconfig-java",
         "com_android_server_accessibility_flags_lib",
         "net-utils-framework-common",
         "notification_flags_lib",
         "securebox",
-        "android.os.flags-aconfig-java",
+        "//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
+        "WindowManager-Shell-shared-desktopMode",
 
         // Settings dependencies
         "FingerprintManagerInteractor",
@@ -98,18 +101,14 @@
         "contextualcards",
         "development_settings_flag_lib",
         "factory_reset_flags_lib",
-        "fuelgauge-log-protos-lite",
+        "settings-protos-lite",
         "fuelgauge-protos-lite",
-        "settings-contextual-card-protos-lite",
-        "settings-log-bridge-protos-lite",
         "settings-logtags",
-        "settings-telephony-protos-lite",
         "statslog-settings",
         "telephony_flags_core_java_lib",
         "setupdesign-lottie-loading-layout",
         "device_policy_aconfig_flags_lib",
-        "kotlinx-coroutines-core",
-        "kotlinx-coroutines-android",
+        "keyboard_flags_lib",
     ],
 
     plugins: ["androidx.room_room-compiler-plugin"],
@@ -125,6 +124,9 @@
         "telephony-common",
         "ims-common",
     ],
+    flags_packages: [
+        "android.app.flags-aconfig",
+    ],
 }
 
 platform_compat_config {
@@ -155,6 +157,9 @@
     optimize: {
         proguard_flags_files: ["proguard.flags"],
     },
+    flags_packages: [
+        "android.app.flags-aconfig",
+    ],
 }
 
 android_library_import {
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 69d000a..7b79611 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1287,20 +1287,63 @@
         </activity>
 
         <activity
-            android:name="Settings$ZenModeSettingsActivity"
+            android:name="Settings$ModesSettingsActivity"
             android:label="@string/zen_mode_settings_title"
             android:icon="@drawable/ic_homepage_notification"
             android:exported="true">
-            <intent-filter android:priority="1">
+            <intent-filter android:priority="1"
+                           android:featureFlag="android.app.modes_ui">
                 <action android:name="android.settings.ZEN_MODE_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-            <intent-filter android:priority="1">
+            <intent-filter android:priority="1"
+                           android:featureFlag="android.app.modes_ui">
                 <action android:name="android.settings.ZEN_MODE_PRIORITY_SETTINGS" />
                 <category android:name="android.intent.category.BROWSABLE" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-            <intent-filter android:priority="41">
+            <intent-filter android:priority="41"
+                           android:featureFlag="android.app.modes_ui">
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="com.android.settings.SHORTCUT" />
+            </intent-filter>
+            <intent-filter android:priority="10"
+                           android:featureFlag="android.app.modes_ui">
+                <action android:name="android.settings.ZEN_MODE_AUTOMATION_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter android:priority="10"
+                           android:featureFlag="android.app.modes_ui">
+                <action android:name="android.settings.ACTION_CONDITION_PROVIDER_SETTINGS" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.notification.modes.ZenModesListFragment"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_notifications"/>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                       android:value="true" />
+        </activity>
+
+        <activity
+            android:name="Settings$ZenModeSettingsActivity"
+            android:label="@string/zen_mode_settings_title"
+            android:icon="@drawable/ic_homepage_notification"
+            android:exported="true">
+            <intent-filter android:priority="1"
+                           android:featureFlag="!android.app.modes_ui">
+                <action android:name="android.settings.ZEN_MODE_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter android:priority="1"
+                           android:featureFlag="!android.app.modes_ui">
+                <action android:name="android.settings.ZEN_MODE_PRIORITY_SETTINGS" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter android:priority="41"
+                           android:featureFlag="!android.app.modes_ui">
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
@@ -1313,6 +1356,26 @@
         </activity>
 
         <activity
+            android:name="Settings$ModeSettingsActivity"
+            android:exported="true">
+            <intent-filter android:priority="1"
+                           android:featureFlag="android.app.modes_ui">
+                <action android:name="android.settings.AUTOMATIC_ZEN_RULE_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.notification.modes.ZenModeFragment"/>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                       android:value="true" />
+        </activity>
+
+        <activity
+            android:name=".notification.modes.SetupInterstitialActivity"
+            android:exported="false"
+            android:theme="@style/Theme.Settings.NoActionBar">
+        </activity>
+
+        <activity
             android:name=".notification.zen.ZenSuggestionActivity"
             android:label="@string/zen_mode_settings_title"
             android:icon="@drawable/ic_suggestion_dnd"
@@ -1351,11 +1414,13 @@
             android:label="@string/zen_mode_automation_settings_title"
             android:icon="@drawable/ic_notifications"
             android:exported="true">
-            <intent-filter android:priority="1">
+            <intent-filter android:priority="10"
+                           android:featureFlag="!android.app.modes_ui">
                 <action android:name="android.settings.ZEN_MODE_AUTOMATION_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-            <intent-filter android:priority="1">
+            <intent-filter android:priority="10"
+                           android:featureFlag="!android.app.modes_ui">
                 <action android:name="android.settings.ACTION_CONDITION_PROVIDER_SETTINGS" />
                 <category android:name="android.intent.category.BROWSABLE" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -1368,6 +1433,19 @@
                        android:value="true" />
         </activity>
 
+        <activity
+            android:name=".Settings$ManageAdaptiveNotificationsActivity"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.settings.MANAGE_ADAPTIVE_NOTIFICATIONS"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.notification.PoliteNotificationsPreferenceFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                android:value="@string/menu_key_notifications"/>
+        </activity>
+
         <activity android:name="Settings$WallpaperSettingsActivity"
                   android:label="@string/wallpaper_settings_fragment_title"
                   android:icon="@drawable/ic_wallpaper"
@@ -2727,7 +2805,9 @@
         <activity android:name=".biometrics.fingerprint.FingerprintSettings"
                   android:exported="false"
                   android:taskAffinity="com.android.settings.root" />
-        <activity android:name=".biometrics.fingerprint.FingerprintEnrollFindSensor" android:exported="false"/>
+        <activity android:name=".biometrics.fingerprint.FingerprintEnrollFindSensor"
+            android:exported="false"
+            android:theme="@style/GlifTheme.Light"/>
         <activity android:name=".biometrics.fingerprint.FingerprintEnrollEnrolling" android:exported="false"/>
         <activity android:name=".biometrics.fingerprint.FingerprintEnrollFinish" android:exported="false"/>
         <activity android:name=".biometrics.fingerprint.FingerprintEnrollParentalConsent" android:exported="false"/>
@@ -2741,26 +2821,14 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity"
-            android:exported="true"
-            android:theme="@style/GlifTheme.Light" />
-
-        <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity$InternalActivity"
-            android:exported="false"
-            android:theme="@style/GlifTheme.Light"
-            android:taskAffinity="com.android.settings.root" />
-
-        <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity$SetupActivity"
-            android:exported="true"
-            android:permission="android.permission.MANAGE_FINGERPRINT"
-            android:theme="@style/GlifTheme.Light" />
-
         <activity android:name=".biometrics.fingerprint.FingerprintEnrollIntroductionInternal"
                   android:exported="false"
                   android:theme="@style/GlifTheme.Light"
                   android:taskAffinity="com.android.settings.root" />
 
-        <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor" android:exported="false"/>
+        <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFindSensor"
+            android:exported="false"
+            android:theme="@style/GlifTheme.Light"/>
         <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollEnrolling" android:exported="false"/>
         <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollFinish" android:exported="false"/>
         <activity android:name=".biometrics.fingerprint.SetupFingerprintEnrollIntroduction"
@@ -5111,6 +5179,15 @@
         <activity android:name=".spa.SpaBridgeActivity" android:exported="false"/>
         <activity android:name=".spa.SpaAppBridgeActivity" android:exported="false"/>
 
+        <activity
+            android:name=".spa.search.SpaSearchLandingActivity"
+            android:exported="true">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.SPA_SEARCH_LANDING" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
         <activity android:name=".Settings$FingerprintSettingsActivityV2"
             android:label="@string/security_settings_fingerprint_preference_title"
             android:exported="false"
diff --git a/aconfig/Android.bp b/aconfig/Android.bp
index 549ccc7..198c24d 100644
--- a/aconfig/Android.bp
+++ b/aconfig/Android.bp
@@ -66,3 +66,15 @@
     name: "development_settings_flag_lib",
     aconfig_declarations: "development_settings_flags",
 }
+
+aconfig_declarations {
+    name: "keyboard_flags",
+    package: "com.android.settings.keyboard",
+    container: "system_ext",
+    srcs: ["keyboard/*.aconfig"],
+}
+
+java_aconfig_library {
+    name: "keyboard_flags_lib",
+    aconfig_declarations: "keyboard_flags",
+}
\ No newline at end of file
diff --git a/aconfig/accessibility/accessibility_flags.aconfig b/aconfig/accessibility/accessibility_flags.aconfig
index 2c92547..5c81cc9 100644
--- a/aconfig/accessibility/accessibility_flags.aconfig
+++ b/aconfig/accessibility/accessibility_flags.aconfig
@@ -11,6 +11,26 @@
 }
 
 flag {
+  name: "audio_balance_state_description"
+  namespace: "accessibility"
+  description: "Provides a more valuable state description to the audio balance slider."
+  bug: "319575109"
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
+}
+
+flag {
+  name: "check_prebundled_is_preinstalled"
+  namespace: "accessibility"
+  description: "Checks that all 'prebundled' components, used for grouping, are also preinstalled"
+  bug: "353888087"
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
+}
+
+flag {
   name: "edit_shortcuts_in_full_screen"
   namespace: "accessibility"
   description: "Show the edit shorcuts screen in full screen, since the shortcut options are increasing."
@@ -32,6 +52,16 @@
 }
 
 flag {
+  name: "fix_a11y_settings_search"
+  namespace: "accessibility"
+  description: "Fix the a11y related search items in Settings app"
+  bug: "333437173"
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
+}
+
+flag {
   name: "hide_magnification_always_on_toggle_when_window_mode_only"
   namespace: "accessibility"
   description: "Decides whether to hide the magnification always on setting when capabilities is window mode only."
@@ -42,6 +72,16 @@
 }
 
 flag {
+  name: "never_restrict_accessibility_activity"
+  namespace: "accessibility"
+  description: "Stops possibly restricting AccessibilityActivityPreferences"
+  bug: "331990900"
+  metadata {
+    purpose: PURPOSE_BUGFIX
+  }
+}
+
+flag {
   name: "remove_qs_tooltip_in_suw"
   namespace: "accessibility"
   description: "Don't show quick settings tooltip in SUW, since the user can't use quick settings there."
diff --git a/aconfig/keyboard/settings_physical_keyboard_a11y_features.aconfig b/aconfig/keyboard/settings_physical_keyboard_a11y_features.aconfig
new file mode 100644
index 0000000..ca5cb8d
--- /dev/null
+++ b/aconfig/keyboard/settings_physical_keyboard_a11y_features.aconfig
@@ -0,0 +1,9 @@
+package: "com.android.settings.keyboard"
+container: "system_ext"
+
+flag {
+  name: "keyboard_and_touchpad_a11y_new_page_enabled"
+  namespace: "input"
+  description: "This flag enables or disables new page for physical keyboard and touchpad a11y features"
+  bug: "345399212"
+}
\ No newline at end of file
diff --git a/aconfig/settings_bluetooth_declarations.aconfig b/aconfig/settings_bluetooth_declarations.aconfig
index c2684f2..f6c271c 100644
--- a/aconfig/settings_bluetooth_declarations.aconfig
+++ b/aconfig/settings_bluetooth_declarations.aconfig
@@ -24,3 +24,20 @@
       purpose: PURPOSE_BUGFIX
   }
 }
+
+flag {
+  name: "enable_bluetooth_device_details_polish"
+  namespace: "cross_device_experiences"
+  description: "Gates whether to enable bluetooth device details polish"
+  bug: "343317785"
+}
+
+flag {
+  name: "disable_bonding_cancellation_for_orientation_change"
+  namespace: "cross_device_experiences"
+  description: "Stop cancelling bonding process when there is an orientation change"
+  bug: "349542301"
+  metadata {
+      purpose: PURPOSE_BUGFIX
+  }
+}
diff --git a/aconfig/settings_connecteddevice_flag_declarations.aconfig b/aconfig/settings_connecteddevice_flag_declarations.aconfig
index 7942ccd..b255096 100644
--- a/aconfig/settings_connecteddevice_flag_declarations.aconfig
+++ b/aconfig/settings_connecteddevice_flag_declarations.aconfig
@@ -9,13 +9,26 @@
 }
 
 flag {
+  name: "rotation_connected_display_setting"
+  namespace: "display_manager"
+  description: "Allow changing rotation of the connected display."
+  bug: "294015706"
+}
+
+flag {
+  name: "resolution_and_enable_connected_display_setting"
+  namespace: "display_manager"
+  description: "Allow enabling/disabling and changing resolution of the connected display."
+  bug: "253296253"
+}
+
+flag {
   name: "enable_auth_challenge_for_usb_preferences"
   namespace: "safety_center"
   description: "Gates whether to require an auth challenge for changing USB preferences"
   bug: "317367746"
 }
 
-
 flag {
     name: "enable_bonded_bluetooth_device_searchable"
     namespace: "pixel_cross_device_control"
@@ -24,4 +37,14 @@
     metadata {
         purpose: PURPOSE_BUGFIX
     }
+}
+
+flag {
+    name: "exclude_webcam_auth_challenge"
+    namespace: "safety_center"
+    description: "Gates whether to exclude webcam from USB preferences auth challenge."
+    bug: "349370229"
+    metadata {
+        purpose: PURPOSE_BUGFIX
+    }
 }
\ No newline at end of file
diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig
index b90ff9f..0007bbf 100644
--- a/aconfig/settings_flag_declarations.aconfig
+++ b/aconfig/settings_flag_declarations.aconfig
@@ -42,3 +42,17 @@
     description: "Feature flag to remove relevant slices dependencies."
     bug: "297367302"
 }
+
+flag {
+    name: "support_raw_dynamic_icons"
+    namespace: "android_settings"
+    description: "Flag to gate support of injected preference icons containing raw data"
+    bug: "351884562"
+}
+
+flag {
+  name: "catalyst_legal_information"
+  namespace: "android_settings"
+  description: "This flag controls the About phone > Legal information page migration"
+  bug: "323791114"
+}
diff --git a/aconfig/settings_globalintl_flag_declarations.aconfig b/aconfig/settings_globalintl_flag_declarations.aconfig
index 48f3a29..2f046d0 100644
--- a/aconfig/settings_globalintl_flag_declarations.aconfig
+++ b/aconfig/settings_globalintl_flag_declarations.aconfig
@@ -14,3 +14,10 @@
     description: "Feature flag for locale notification"
     bug: "301380610"
 }
+
+flag {
+    name: "accessibility_appearance_settings_backup_enabled"
+    namespace: "globalintl"
+    description: "Feature flag for B&R accessibility appearance settings"
+    bug: "341210043"
+}
diff --git a/aconfig/settings_wifi_flag_declarations.aconfig b/aconfig/settings_wifi_flag_declarations.aconfig
new file mode 100644
index 0000000..cb8007f
--- /dev/null
+++ b/aconfig/settings_wifi_flag_declarations.aconfig
@@ -0,0 +1,12 @@
+package: "com.android.settings.flags"
+container: "system_ext"
+
+# NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
+
+flag {
+    name: "enable_wifi_sharing_runtime_fragment"
+    namespace: "prism_qr"
+    description: "Use WifiFeatureProvider to get the instance of WifiDppQrCodeGeneratorFragment."
+    bug: "329012096"
+}
+
diff --git a/proguard.flags b/proguard.flags
index 492404c..d1c97f3 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -65,3 +65,6 @@
 -keep class androidx.window.extensions.** { *; }
 -dontwarn androidx.window.extensions.**
 -keep class androidx.window.** { *; }
+
+# Keep the com.android.settings.media_drm.FakeFeatureFlagsImpl
+-keep class com.android.settings.media_drm.FakeFeatureFlagsImpl { *; }
diff --git a/protos/Android.bp b/protos/Android.bp
index 560851a..4ab96a7 100644
--- a/protos/Android.bp
+++ b/protos/Android.bp
@@ -1,44 +1,12 @@
 package {
     default_team: "trendy_team_android_settings_app",
-    // See: http://go/android-license-faq
-    // A large-scale-change added 'default_applicable_licenses' to import
-    // all of the 'license_kinds' from "packages_apps_Settings_license"
-    // to get the below license kinds:
-    //   SPDX-license-identifier-Apache-2.0
     default_applicable_licenses: ["packages_apps_Settings_license"],
 }
 
-java_library_static {
-    name: "settings-contextual-card-protos-lite",
-    host_supported: true,
-    proto: {
-        type: "lite",
-    },
-    srcs: ["contextual_card_list.proto"],
-}
-
-java_library_static {
-    name: "settings-log-bridge-protos-lite",
-    host_supported: true,
-    proto: {
-        type: "lite",
-    },
-    srcs: ["settings_log_bridge.proto"],
-}
-
-java_library_static {
-    name: "settings-telephony-protos-lite",
-    host_supported: true,
-    proto: {
-        type: "lite",
-    },
-    srcs: ["network_mode_choices.proto"],
-}
-
 java_library {
-    name: "fuelgauge-log-protos-lite",
+    name: "settings-protos-lite",
     proto: {
         type: "lite",
     },
-    srcs: ["fuelgauge_log.proto"],
+    srcs: ["*.proto"],
 }
diff --git a/protos/spa_search_landing.proto b/protos/spa_search_landing.proto
new file mode 100644
index 0000000..02cca79
--- /dev/null
+++ b/protos/spa_search_landing.proto
@@ -0,0 +1,34 @@
+syntax = "proto2";
+
+package com.android.settings.spa;
+
+message SpaSearchLandingKey {
+  oneof page {
+    SpaSearchLandingSpaPage spa_page = 1;
+    SpaSearchLandingFragment fragment = 2;
+  }
+}
+
+message SpaSearchLandingSpaPage {
+  /** The destination of SPA page. */
+  optional string destination = 1;
+}
+
+message SpaSearchLandingFragment {
+  /** The fragment class name. */
+  optional string fragment_name = 1;
+
+  /** The key of the preference to highlight the item. */
+  optional string preference_key = 2;
+
+  /** The arguments passed to the page. */
+  map<string, BundleValue> arguments = 3;
+}
+
+/** A value in an Android Bundle. */
+message BundleValue {
+  oneof value {
+    /** A 32-bit signed integer value. */
+    int32 int_value = 1;
+  }
+}
diff --git a/res-product/values-af/strings.xml b/res-product/values-af/strings.xml
index da5e11d..8df1b23 100644
--- a/res-product/values-af/strings.xml
+++ b/res-product/values-af/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Toestelbeskermingkenmerke sal nie aangeskakel word nie. Jy sal nie ander mense kan keer om hierdie tablet te gebruik as dit verloor of gesteel word nie."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Toestelbeskermingkenmerke sal nie aangeskakel word nie. Jy sal nie ander mense kan keer om hierdie toestel te gebruik as dit verloor of gesteel word nie."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Toestelbeskermingkenmerke sal nie aangeskakel word nie. Jy sal nie ander mense kan keer om hierdie foon te gebruik as dit verloor of gesteel word nie."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Die vingerafdruksensor is op die aan/af-skakelaar. Dit is die plat knoppie langs die verhewe volumeknoppie aan die kant van die tablet."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Die vingerafdruksensor is op die aan/af-skakelaar. Dit is die plat knoppie langs die verhewe volumeknoppie aan die kant van die toestel."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Die vingerafdruksensor is op die aan/af-skakelaar. Dit is die plat knoppie langs die verhewe volumeknoppie aan die kant van die foon."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Die vingerafdruksensor is op die aan/af-skakelaar. Dit is die plat knoppie langs die verhewe volumeknoppie op die rand van die tablet."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Die vingerafdruksensor is op die aan/af-skakelaar. Dit is die plat knoppie langs die verhewe volumeknoppie op die rand van die toestel."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Die vingerafdruksensor is op die aan/af-skakelaar. Dit is die plat knoppie langs die verhewe volumeknoppie op die rand van die foon."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Jy kan nou jou vingerafdruk gebruik om jou tablet te ontsluit of te verifieer dat dit jy is, soos wanneer jy by apps aanmeld of ’n aankoop goedkeur"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Jy kan nou jou vingerafdruk gebruik om jou toestel te ontsluit of te verifieer dat dit jy is, soos wanneer jy by apps aanmeld of ’n aankoop goedkeur"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Jy kan nou jou vingerafdruk gebruik om jou foon te ontsluit of te verifieer dat dit jy is, soos wanneer jy by apps aanmeld of ’n aankoop goedkeur"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"\'n PIN word vereis om Gesigslot op te stel.\n\n\'n PIN beskerm die foon as dit verloor of gesteel word."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"\'n Patroon word vereis om Gesigslot op te stel.\n\n\'n Patroon beskerm die foon as dit verloor of gesteel word."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"\'n Wagwoord word vereis om Gesigslot op te stel.\n\n\'n Wagwoord beskerm die foon as dit verloor of gesteel word."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"\'n PIN word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n PIN beskerm die tablet as dit verloor of gesteel word."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"\'n Patroon word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n Patroon beskerm die tablet as dit verloor of gesteel word."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"\'n Wagwoord word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n Wagwoord beskerm die tablet as dit verloor of gesteel word."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"\'n PIN word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n PIN beskerm die toestel as dit verloor of gesteel word."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"\'n Patroon word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n Patroon beskerm die toestel as dit verloor of gesteel word."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"\'n Wagwoord word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n Wagwoord beskerm die toestel as dit verloor of gesteel word."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"\'n PIN word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n PIN beskerm die foon as dit verloor of gesteel word."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"\'n Patroon word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n Patroon beskerm die foon as dit verloor of gesteel word."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"\'n Wagwoord word vereis om Gesigslot en Vingerafdrukslot op te stel.\n\n\'n Wagwoord beskerm die foon as dit verloor of gesteel word."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"’n PIN word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n PIN beskerm die tablet as dit verloor of gesteel word."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"’n Patroon word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n Patroon beskerm die tablet as dit verloor of gesteel word."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"’n Wagwoord word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n Wagwoord beskerm die tablet as dit verloor of gesteel word."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"’n PIN word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n PIN beskerm die toestel as dit verloor of gesteel word."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"’n Patroon word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n Patroon beskerm die toestel as dit verloor of gesteel word."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"’n Wagwoord word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n Wagwoord beskerm die toestel as dit verloor of gesteel word."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"’n PIN word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n PIN beskerm die foon as dit verloor of gesteel word."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"’n Patroon word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n Patroon beskerm die foon as dit verloor of gesteel word."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"’n Wagwoord word vereis om Vingerafdrukslot en Gesigslot op te stel.\n\n’n Wagwoord beskerm die foon as dit verloor of gesteel word."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Dit vee die vingerafdrukprente en -model uit wat met \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" geassosieer word en op jou foon geberg is"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Dit vee die vingerafdrukprente en -model uit wat met \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" geassosieer word en op jou tablet geberg is"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Dit vee die vingerafdrukprente en -model uit wat met \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" geassosieer word en op jou toestel geberg is"</string>
diff --git a/res-product/values-am/strings.xml b/res-product/values-am/strings.xml
index 4e5b1dc..8e0e166 100644
--- a/res-product/values-am/strings.xml
+++ b/res-product/values-am/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"በመልክ መክፈትን ለማዋቀር ፒን ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ ፒን ይጠብቀዋል።"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"በመልክ መክፈትን ለማዋቀር ስርዓተ ጥለት ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ ስርዓተ ጥለት ይጠብቀዋል።"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"በመልክ መክፈትን ለማዋቀር የይለፍ ቃል ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ የይለፍ ቃል ይጠብቀዋል።"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር ፒን ያስፈልጋል።\n\nጡባዊው ከጠፋ ወይም ከተሰረቀ ፒን ይጠብቀዋል።"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር ስርዓተ ጥለት ያስፈልጋል።\n\nጡባዊው ከጠፋ ወይም ከተሰረቀ ስርዓተ ጥለት ይጠብቀዋል።"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር የይለፍ ቃል ያስፈልጋል።\n\nጡባዊው ከጠፋ ወይም ከተሰረቀ የይለፍ ቃል ይጠብቀዋል።"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር ፒን ያስፈልጋል።\n\nመሣሪያው ከጠፋ ወይም ከተሰረቀ ፒን ይጠብቀዋል።"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር ስርዓተ ጥለት ያስፈልጋል።\n\nመሣሪያው ከጠፋ ወይም ከተሰረቀ ስርዓተ ጥለት ይጠብቀዋል።"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር የይለፍ ቃል ያስፈልጋል።\n\nመሣሪያው ከጠፋ ወይም ከተሰረቀ የይለፍ ቃል ይጠብቀዋል።"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር ፒን ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ ፒን ይጠብቀዋል።"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር ስርዓተ ጥለት ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ ስርዓተ ጥለት ይጠብቀዋል።"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ለማዋቀር የይለፍ ቃል ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ የይለፍ ቃል ይጠብቀዋል።"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር ፒን ያስፈልጋል።\n\nጡባዊው ከጠፋ ወይም ከተሰረቀ ፒን ይጠብቀዋል።"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር ሥርዓተ ጥለት ያስፈልጋል።\n\nጡባዊው ከጠፋ ወይም ከተሰረቀ ሥርዓተ ጥለት ይጠብቀዋል።"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር የይለፍ ቃል ያስፈልጋል።\n\nጡባዊው ከጠፋ ወይም ከተሰረቀ የይለፍ ቃል ይጠብቀዋል።"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር ፒን ያስፈልጋል።\n\nመሣሪያው ከጠፋ ወይም ከተሰረቀ ፒን ይጠብቀዋል።"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር ሥርዓተ ጥለት ያስፈልጋል።\n\nመሣሪያው ከጠፋ ወይም ከተሰረቀ ሥርዓተ ጥለት ይጠብቀዋል።"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"በጣት አሻራ መክፈቻን እና በመልክ መክፈት ለማዋቀር የይለፍ ቃል ያስፈልጋል።\n\nመሣሪያው ከጠፋ ወይም ከተሰረቀ የይለፍ ቃል ይጠብቀዋል።"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር ፒን ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ ፒን ይጠብቀዋል።"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር ሥርዓተ ጥለት ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ ሥርዓተ ጥለት ይጠብቀዋል።"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"በጣት አሻራ መክፈቻን እና በመልክ መክፈትን ለማዋቀር የይለፍ ቃል ያስፈልጋል።\n\nስልኩ ከጠፋ ወይም ከተሰረቀ የይለፍ ቃል ይጠብቀዋል።"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ይህ በስልክዎ ላይ የተከማቹት የጣት አሻራ ምስሎችን እና ከ«<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» ጋር የተጎዳኘውን ሞዴል ይሰርዛል"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ይህ በጡባዊዎ ላይ የተከማቹት የጣት አሻራ ምስሎችን እና ከ«<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» ጋር የተጎዳኘውን ሞዴል ይሰርዛል"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ይህ በመሣሪያዎ ላይ ከተከማቸው «<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» ጋር የተጎዳኙ የጣት አሻራ ምስሎችን እና ሞዴልን ይሰርዛል"</string>
diff --git a/res-product/values-ar/strings.xml b/res-product/values-ar/strings.xml
index cfa2e72..f2f4300 100644
--- a/res-product/values-ar/strings.xml
+++ b/res-product/values-ar/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"يجب ضبط رقم تعريف شخصي لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الهاتف في حال فقدانه أو سرقته."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"يجب ضبط نقش لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"يجب ضبط كلمة مرور لإعداد ميزة \"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nيحمي رقم التعريف الشخصي الجهاز اللوحي في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nيحمي النقش الجهاز اللوحي في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nتحمي كلمة المرور الجهاز اللوحي في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nيحمي رقم التعريف الشخصي الجهاز في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nيحمي النقش الجهاز في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nتحمي كلمة المرور الجهاز في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nيحمي رقم التعريف الشخصي الهاتف في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الوجه\" و\"فتح الجهاز ببصمة الإصبع\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الجهاز اللوحي في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الجهاز في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي النقش الجهاز في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الجهاز في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"يجب ضبط رقم تعريف شخصي لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nيحمي رقم التعريف الشخصي الهاتف في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"يجب ضبط نقش لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز بببصمة الوجه\".\n\nيحمي النقش الهاتف في حال فقدانه أو سرقته."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"يجب ضبط كلمة مرور لإعداد ميزتَي \"فتح الجهاز ببصمة الإصبع\" و\"فتح الجهاز ببصمة الوجه\".\n\nتحمي كلمة المرور الهاتف في حال فقدانه أو سرقته."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"يؤدي هذا الإجراء إلى حذف النموذج والصور المرتبطة ببصمة الإصبع \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\"، والتي تم تخزينها على هاتفك"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"يؤدي هذا الإجراء إلى حذف النموذج والصور المرتبطة ببصمة الإصبع \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\"، والتي تم تخزينها على جهازك اللوحي"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"يؤدي هذا الإجراء إلى حذف النموذج والصور المرتبطة ببصمة الإصبع \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\"، والتي تم تخزينها على جهازك"</string>
diff --git a/res-product/values-as/strings.xml b/res-product/values-as/strings.xml
index 157f78a..9d9dd51 100644
--- a/res-product/values-as/strings.xml
+++ b/res-product/values-as/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ফেচ আনলক ছেট আপ কৰিবলৈ এটা পিনৰ আৱশ্যক।\n\nএটা পিনে ফ’নটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ফেচ আনলক ছেট আপ কৰিবলৈ এটা আৰ্হিৰ আৱশ্যক।\n\nএটা আৰ্হিয়ে ফ’নটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ফেচ আনলক ছেট আপ কৰিবলৈ এটা পাছৱৰ্ডৰ আৱশ্যক।\n\nএটা পাছৱৰ্ডে ফ’নটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পিনৰ আৱশ্যক।\n\nএটা পিনে টেবলেটটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা আৰ্হিৰ আৱশ্যক।\n\nএটা আৰ্হিয়ে টেবলেটটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ফেচ আনলক ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পাছৱৰ্ডৰ আৱশ্যক।\n\nএটা পাছৱৰ্ডে টেবলেটটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পিনৰ আৱশ্যক।\n\nএটা পিনে ডিভাইছটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা আৰ্হিৰ আৱশ্যক।\n\nএটা আৰ্হিয়ে ডিভাইছটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পাছৱৰ্ডৰ আৱশ্যক।\n\nএটা পাছৱৰ্ডে ডিভাইচটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পিনৰ আৱশ্যক।\n\nএটা পিনে ফ’নটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা আৰ্হিৰ আৱশ্যক।\n\nএটা আৰ্হিয়ে ফ’নটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পাছৱৰ্ডৰ আৱশ্যক।\n\nএটা পাছৱৰ্ডে ফ’নটো হেৰালে অথবা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পিনৰ আৱশ্যক।\n\nএটা পিনে টেবলেটটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা আৰ্হিৰ আৱশ্যক।\n\nএটা আৰ্হিয়ে টেবলেটটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ফে’চ আনলক ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পাছৱৰ্ডৰ আৱশ্যক।\n\nএটা পাছৱৰ্ডে টেবলেটটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পিনৰ আৱশ্যক।\n\nএটা পিনে ডিভাইচটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা আৰ্হিৰ আৱশ্যক।\n\nএটা আৰ্হিয়ে ডিভাইচটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পাছৱৰ্ডৰ আৱশ্যক।\n\nএটা পাছৱৰ্ডে ডিভাইচটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পিনৰ আৱশ্যক।\n\nএটা পিনে ফ’নটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা আৰ্হিৰ আৱশ্যক।\n\nএটা আৰ্হিয়ে ফ’নটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ফে’চ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিবলৈ এটা পাছৱৰ্ডৰ আৱশ্যক।\n\nএটা পাছৱৰ্ডে ফ’নটো হেৰালে বা চুৰি হ’লে সেইটো সুৰক্ষিত কৰে।"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"এইটোৱে আপোনাৰ ফ’নটোত ষ্ট’ৰ হৈ থকা \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'ৰ সৈতে জড়িত ফিংগাৰপ্ৰিণ্টৰ প্ৰতিচ্ছবি আৰু মডেল মচি পেলায়"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"এইটোৱে আপোনাৰ টেবলেটটোত ষ্ট’ৰ হৈ থকা \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'ৰ সৈতে জড়িত ফিংগাৰপ্ৰিণ্টৰ প্ৰতিচ্ছবি আৰু মডেল মচি পেলায়"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"এইটোৱে আপোনাৰ ডিভাইচত ষ্ট’ৰ হৈ থকা \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'ৰ সৈতে জড়িত ফিংগাৰপ্ৰিণ্টৰ প্ৰতিচ্ছবি আৰু মডেল মচি পেলায়"</string>
diff --git a/res-product/values-az/strings.xml b/res-product/values-az/strings.xml
index 62f2db8..b54794c 100644
--- a/res-product/values-az/strings.xml
+++ b/res-product/values-az/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Feyskontrol üçün PIN lazımdır.\n\nCihaz itəndə və ya oğurlananda məlumatları qoruyur."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Üz ilə kiliddən çıxarma ayarlamaq üçün model tələb edilir.\n\nTelefonunuz itdikdə və ya oğurlandıqda model onu qoruyur."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Üz ilə kiliddən çıxarma ayarlamaq üçün parol tələb edilir.\n\nTelefonunuz itdikdə və ya oğurlandıqda parol onu qoruyur."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Feyskontrol və barmaq izi ilə kiliddən çıxarmaq üçün PIN lazımdır.\n\nCihaz itəndə və ya oğurlananda məlumatları qoruyur."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Üz ilə kiliddən çıxarma və Barmaq izi ilə kiliddən çıxarma ayarlamaq üçün model tələb edilir.\n\nPlanşetiniz itdikdə və ya oğurlandıqda model onu qoruyur."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Üz ilə kiliddən çıxarma və Barmaq izi ilə kiliddən çıxarma ayarlamaq üçün parol tələb edilir.\n\nPlanşetiniz itdikdə və ya oğurlandıqda parol onu qoruyur."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Feyskontrol və barmaq izi ilə kiliddən çıxarmaq üçün PIN lazımdır.\n\nCihaz itəndə və ya oğurlananda məlumatları qoruyur."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Üz ilə kiliddən çıxarma və Barmaq izi ilə kiliddən çıxarma ayarlamaq üçün model tələb edilir.\n\nCihazınız itdikdə və ya oğurlandıqda model onu qoruyur."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Üz ilə kiliddən çıxarma və Barmaq izi ilə kiliddən çıxarma ayarlamaq üçün parol tələb edilir.\n\nCihazınız itdikdə və ya oğurlandıqda parol onu qoruyur."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Feyskontrol və barmaq izi ilə kiliddən çıxarmaq üçün PIN lazımdır.\n\nCihaz itəndə və ya oğurlananda məlumatları qoruyur."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Üz ilə kiliddən çıxarma və Barmaq izi ilə kiliddən çıxarma ayarlamaq üçün model tələb edilir.\n\nTelefonunuz itdikdə və ya oğurlandıqda model onu qoruyur."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Üz ilə kiliddən çıxarma və Barmaq izi ilə kiliddən çıxarma ayarlamaq üçün parol tələb edilir.\n\nTelefonunuz itdikdə və ya oğurlandıqda parol onu qoruyur."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün PIN tələb edilir.\n\nPlanşet itdikdə və ya oğurlandıqda PIN onu qoruyur."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün model tələb edilir.\n\nPlanşet itdikdə və ya oğurlandıqda model onu qoruyur."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün parol tələb edilir.\n\nPlanşet itdikdə və ya oğurlandıqda parol onu qoruyur."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün PIN tələb edilir.\n\nCihaz itdikdə və ya oğurlandıqda PIN onu qoruyur."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün model tələb edilir.\n\nCihaz itdikdə və ya oğurlandıqda model onu qoruyur."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün parol tələb edilir.\n\nCihaz itdikdə və ya oğurlandıqda parol onu qoruyur."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün PIN tələb edilir.\n\nTelefon itdikdə və ya oğurlandıqda PIN onu qoruyur."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün model tələb edilir.\n\nTelefon itdikdə və ya oğurlandıqda model onu qoruyur."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Barmaqla Kilidaçma və Üzlə Kilidaçma ayarlamaq üçün parol tələb edilir.\n\nTelefon itdikdə və ya oğurlandıqda parol onu qoruyur."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Bu, telefonunuzda saxlanılan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ilə əlaqəli barmaq izi şəkillərini və modelini silir"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Bu, planşetinizdə saxlanılan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ilə əlaqəli barmaq izi şəkillərini və modelini silir"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Bu, cihazınızda saxlanılan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ilə əlaqəli barmaq izi şəkillərini və modelini silir"</string>
diff --git a/res-product/values-b+sr+Latn/strings.xml b/res-product/values-b+sr+Latn/strings.xml
index bbb1d70..7926331 100644
--- a/res-product/values-b+sr+Latn/strings.xml
+++ b/res-product/values-b+sr+Latn/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Za podešavanje otključavanja licem neophodan je PIN.\n\nPIN štiti telefon ako ga izgubite ili ga neko ukrade."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Za podešavanje otključavanja licem neophodan je šablon.\n\nŠablon štiti telefon ako ga izgubite ili ga neko ukrade."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Za podešavanje otključavanja licem neophodna je lozinka.\n\nLozinka štiti telefon ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Za podešavanje otključavanja licem i otiskom prsta neophodan je PIN.\n\nPIN štiti tablet ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Za podešavanje otključavanja licem i otiskom prsta neophodan je šablon.\n\nŠablon štiti tablet ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Za podešavanje otključavanja licem i otiskom prsta neophodna je lozinka.\n\nLozinka štiti tablet ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Za podešavanje otključavanja licem i otiskom prsta neophodan je PIN.\n\nPIN štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Za podešavanje otključavanja licem i otiskom prsta neophodan je šablon.\n\nŠablon štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Za podešavanje otključavanja licem i otiskom prsta neophodna je lozinka.\n\nLozinka štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Za podešavanje otključavanja licem i otiskom prsta neophodan je PIN.\n\nPIN štiti telefon ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Za podešavanje otključavanja licem i otiskom prsta neophodan je šablon.\n\nŠablon štiti telefon ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Za podešavanje otključavanja licem i otiskom prsta neophodna je lozinka.\n\nLozinka štiti telefon ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodan je PIN.\n\nPIN štiti tablet ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodan je šablon.\n\nŠablon štiti tablet ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodna je lozinka.\n\nLozinka štiti tablet ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodan je PIN.\n\nPIN štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodan je šablon.\n\nŠablon štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodna je lozinka.\n\nLozinka štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodan je PIN.\n\nPIN štiti telefon ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodan je šablon.\n\nŠablon štiti telefon ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Za podešavanje otključavanja otiskom prsta i otključavanja licem neophodna je lozinka.\n\nLozinka štiti telefon ako ga izgubite ili ga neko ukrade."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Ovim se brišu slike i model otiska prsta u vezi sa otiskom <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> koji su sačuvani na telefonu"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Ovim se brišu slike i model otiska prsta u vezi sa otiskom <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> koji su sačuvani na tabletu"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ovim se brišu slike i model otiska prsta u vezi sa otiskom <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> koji su sačuvani na uređaju"</string>
diff --git a/res-product/values-be/strings.xml b/res-product/values-be/strings.xml
index 01d4286..3c91c2b 100644
--- a/res-product/values-be/strings.xml
+++ b/res-product/values-be/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Каб наладзіць распазнаванне твару, неабходна ўвесці PIN-код.\n\nPIN-код абараняе тэлефон у выпадку страты ці крадзяжу."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Каб наладзіць распазнаванне твару, неабходна ўвесці ўзор разблакіроўкі.\n\nУзор разблакіроўкі абараняе тэлефон у выпадку страты ці крадзяжу."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Каб наладзіць распазнаванне твару, неабходна ўвесці пароль.\n\nПароль абараняе тэлефон у выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці PIN-код.\n\nPIN-код абараняе планшэт у выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці ўзор разблакіроўкі.\n\nУзор разблакіроўкі абараняе планшэт у выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці пароль.\n\nПароль абараняе планшэт у выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці PIN-код.\n\nPIN-код абараняе прыладу ў выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці ўзор разблакіроўкі.\n\nУзор разблакіроўкі абараняе прыладу ў выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці пароль.\n\nПароль абараняе прыладу ў выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці PIN-код.\n\nPIN-код абараняе тэлефон у выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці ўзор разблакіроўкі.\n\nУзор разблакіроўкі абараняе тэлефон у выпадку страты ці крадзяжу."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Каб наладзіць распазнаванне твару і разблакіроўку адбіткам пальца, неабходна ўвесці пароль.\n\nПароль абараняе тэлефон у выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці PIN-код.\n\nPIN-код абараняе планшэт у выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці ўзор разблакіроўкі.\n\nУзор разблакіроўкі абараняе планшэт у выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці пароль.\n\nПароль абараняе планшэт у выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці PIN-код.\n\nPIN-код абараняе прыладу ў выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці ўзор разблакіроўкі.\n\nУзор разблакіроўкі абараняе прыладу ў выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці пароль.\n\nПароль абараняе прыладу ў выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці PIN-код.\n\nPIN-код абараняе тэлефон у выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці ўзор разблакіроўкі.\n\nУзор разблакіроўкі абараняе тэлефон у выпадку страты ці крадзяжу."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Каб наладзіць разблакіроўку адбіткам пальца і распазнаванне твару, неабходна ўвесці пароль.\n\nПароль абараняе тэлефон у выпадку страты ці крадзяжу."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Відарысы і мадэль адбіткаў пальцаў, звязаныя з адбіткам \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", будуць выдалены з тэлефона"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Відарысы і мадэль адбіткаў пальцаў, звязаныя з адбіткам \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", будуць выдалены з планшэта"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Відарысы і мадэль адбіткаў пальцаў, звязаныя з адбіткам \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", будуць выдалены з прылады"</string>
diff --git a/res-product/values-bg/strings.xml b/res-product/values-bg/strings.xml
index bd8df6d..bdd4e5d 100644
--- a/res-product/values-bg/strings.xml
+++ b/res-product/values-bg/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Функциите за защита на таблета няма да бъдат включени. Няма да можете да предотвратите използването му от други хора, ако бъде загубен или откраднат."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Функциите за защита на устройството няма да бъдат включени. Няма да можете да предотвратите използването му от други хора, ако бъде загубено или откраднато."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Функциите за защита на телефона няма да бъдат включени. Няма да можете да предотвратите използването му от други хора, ако бъде загубен или откраднат."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Сензорът за отпечатъци се намира върху бутона за захранване. Този бутон е плосък и е разположен на ръба на таблета до повдигнатия бутон за силата на звука."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Сензорът за отпечатъци се намира върху бутона за захранване. Този бутон е плосък и е разположен на ръба на устройството до повдигнатия бутон за силата на звука."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Сензорът за отпечатъци се намира върху бутона за захранване. Този бутон е плосък и е разположен на ръба на телефона до повдигнатия бутон за силата на звука."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Сензорът за отпечатъци се намира върху бутона за захранване. Този бутон е плосък и е разположен отстрани на таблета до повдигнатия бутон за силата на звука."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Сензорът за отпечатъци се намира върху бутона за захранване. Този бутон е плосък и е разположен отстрани на устройството до повдигнатия бутон за силата на звука."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Сензорът за отпечатъци се намира върху бутона за захранване. Този бутон е плосък и е разположен отстрани на телефона до повдигнатия бутон за силата на звука."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Вече можете да използвате отпечатъка си, за да отключвате таблета или да потвърждавате самоличността си, например при влизане в приложения или одобряване на покупки"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Вече можете да използвате отпечатъка си, за да отключвате устройството или да потвърждавате самоличността си, например при влизане в приложения или одобряване на покупки"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Вече можете да използвате отпечатъка си, за да отключвате телефона или да потвърждавате самоличността си, например при влизане в приложения или одобряване на покупки"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"За настройване на функцията за отключване с лице се изисква ПИН код.\n\nПИН кодът защитава телефона, ако бъде изгубен или откраднат."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"За настройване на функцията за отключване с лице се изисква фигура.\n\nФигурата защитава телефона, ако бъде изгубен или откраднат."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"За настройване на функцията за отключване с лице се изисква парола.\n\nПаролата защитава телефона, ако бъде изгубен или откраднат."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"За настройване на функциите за отключване с лице и отпечатък се изисква ПИН код.\n\nПИН кодът защитава таблета, ако бъде изгубен или откраднат."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"За настройване на функциите за отключване с лице и отпечатък се изисква фигура.\n\nФигурата защитава таблета, ако бъде изгубен или откраднат."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"За настройване на функциите за отключване с лице и отпечатък се изисква парола.\n\nПаролата защитава таблета, ако бъде изгубен или откраднат."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"За настройване на функциите за отключване с лице и отпечатък се изисква ПИН код.\n\nПИН кодът защитава устройството, ако бъде изгубено или откраднато."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"За настройване на функциите за отключване с лице и отпечатък се изисква фигура.\n\nФигурата защитава устройството, ако бъде изгубено или откраднато."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"За настройване на функциите за отключване с лице и отпечатък се изисква парола.\n\nПаролата защитава устройството, ако бъде изгубено или откраднато."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"За настройване на функциите за отключване с лице и отпечатък се изисква ПИН код.\n\nПИН кодът защитава телефона, ако бъде изгубен или откраднат."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"За настройване на функциите за отключване с лице и отпечатък се изисква фигура.\n\nФигурата защитава телефона, ако бъде изгубен или откраднат."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"За настройване на функциите за отключване с лице и отпечатък се изисква парола.\n\nПаролата защитава телефона, ако бъде изгубен или откраднат."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"За настройване на функциите за отключване с лице и отпечатък се изисква ПИН код.\n\nПИН кодът защитава таблета, ако бъде изгубен или откраднат."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"За настройване на функциите за отключване с лице и отпечатък се изисква фигура.\n\nФигурата защитава таблета, ако бъде изгубен или откраднат."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"За настройване на функциите за отключване с лице и отпечатък се изисква парола.\n\nПаролата защитава таблета, ако бъде изгубен или откраднат."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"За настройване на функциите за отключване с лице и отпечатък се изисква ПИН код.\n\nПИН кодът защитава устройството, ако бъде изгубено или откраднато."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"За настройване на функциите за отключване с лице и отпечатък се изисква фигура.\n\nФигурата защитава устройството, ако бъде изгубено или откраднато."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"За настройване на функциите за отключване с лице и отпечатък се изисква парола.\n\nПаролата защитава устройството, ако бъде изгубено или откраднато."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"За настройване на функциите за отключване с лице и отпечатък се изисква ПИН код.\n\nПИН кодът защитава телефона, ако бъде изгубен или откраднат."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"За настройване на функциите за отключване с лице и отпечатък се изисква фигура.\n\nФигурата защитава телефона, ако бъде изгубен или откраднат."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"За настройване на функциите за отключване с лице и отпечатък се изисква парола.\n\nПаролата защитава телефона, ако бъде изгубен или откраднат."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Това действие ще изтрие изображенията и модела на отпечатъка, свързани с(ъс) <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> и съхранявани на телефона ви"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Това действие ще изтрие изображенията и модела на отпечатъка, свързани с(ъс) <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> и съхранявани на таблета ви"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Това действие ще изтрие изображенията и модела на отпечатъка, свързани с(ъс) <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> и съхранявани на това устройство"</string>
diff --git a/res-product/values-bn/strings.xml b/res-product/values-bn/strings.xml
index 1a5166c..e3375e4 100644
--- a/res-product/values-bn/strings.xml
+++ b/res-product/values-bn/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"\'ফেস আনলক\' সেট আপ করতে একটি পিন প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, পিন সেটি সুরক্ষিত রাখে।"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"\'ফেস আনলক\' সেট আপ করতে একটি প্যাটার্ন প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, প্যাটার্ন সেটি সুরক্ষিত রাখে।"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"\'ফেস আনলক\' সেট আপ করতে একটি পাসওয়ার্ড প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, পাসওয়ার্ড সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি পিন প্রয়োজন।\n\nট্যাবলেট হারিয়ে বা চুরি হয়ে গেলে, পিন সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি প্যাটার্ন প্রয়োজন।\n\nট্যাবলেট হারিয়ে বা চুরি হয়ে গেলে, প্যাটার্ন সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি পাসওয়ার্ড প্রয়োজন।\n\nট্যাবলেট হারিয়ে বা চুরি হয়ে গেলে, পাসওয়ার্ড সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি পিন প্রয়োজন।\n\nডিভাইস হারিয়ে বা চুরি হয়ে গেলে, পিন সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি প্যাটার্ন প্রয়োজন।\n\nডিভাইস হারিয়ে বা চুরি হয়ে গেলে, প্যাটার্ন সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি পাসওয়ার্ড প্রয়োজন।\n\nডিভাইস হারিয়ে বা চুরি হয়ে গেলে, পাসওয়ার্ড সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি পিন প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, পিন সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট-আপ করতে একটি প্যাটার্ন প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, প্যাটার্ন সেটি সুরক্ষিত রাখে।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"\'ফেস আনলক\' এবং \'ফিঙ্গারপ্রিন্ট আনলক\' সেট আপ করতে একটি পাসওয়ার্ড প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, পাসওয়ার্ড সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে পিন প্রয়োজন।\n\nট্যাবলেট হারিয়ে বা চুরি হয়ে গেলে, পিন সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে প্যাটার্ন প্রয়োজন।\n\nট্যাবলেট হারিয়ে বা চুরি হয়ে গেলে, প্যাটার্ন সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে পাসওয়ার্ড প্রয়োজন।\n\nট্যাবলেট হারিয়ে বা চুরি হয়ে গেলে, পাসওয়ার্ড সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে পিন প্রয়োজন।\n\nডিভাইস হারিয়ে বা চুরি হয়ে গেলে, পিন সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে প্যাটার্ন প্রয়োজন।\n\nডিভাইস হারিয়ে বা চুরি হয়ে গেলে, প্যাটার্ন সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে পাসওয়ার্ড প্রয়োজন।\n\nডিভাইস হারিয়ে বা চুরি হয়ে গেলে, পাসওয়ার্ড সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে পিন প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, পিন সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে প্যাটার্ন প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, প্যাটার্ন সেটি সুরক্ষিত রাখে।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"\'ফিঙ্গারপ্রিন্ট আনলক\' এবং \'ফেস আনলক\' সেট-আপ করতে পাসওয়ার্ড প্রয়োজন।\n\nফোন হারিয়ে বা চুরি হয়ে গেলে, পাসওয়ার্ড সেটি সুরক্ষিত রাখে।"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"এটি আপনার ফোনে সেভ হয়ে থাকা \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'-এর সাথে সম্পর্কিত ফিঙ্গারপ্রিন্টের ছবি ও মডেল মুছে দেয়"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"এটি আপনার ট্যাবলেটে সেভ হয়ে থাকা ফিঙ্গারপ্রিন্টের ছবি এবং \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'-এর সাথে সম্পর্কিত অন্যান্য মডেল মুছে দেয়"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"এটি আপনার ডিভাইসে স্টোর হয়ে থাকা আঙ্গুলের ছাপের ইমেজ এবং \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'-এর সঙ্গে সম্পর্কিত অন্যান্য মডেল মুছে দেয়"</string>
diff --git a/res-product/values-bs/strings.xml b/res-product/values-bs/strings.xml
index 33fa4a4..c2690d1 100644
--- a/res-product/values-bs/strings.xml
+++ b/res-product/values-bs/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Za postavljanje otključavanja licem potreban je PIN.\n\nOn štiti telefon ako ga izgubite ili ga neko ukrade."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Za postavljanje otključavanja licem potreban je uzorak.\n\nOn štiti telefon ako ga izgubite ili ga neko ukrade."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Za postavljanje otključavanja licem potrebna je lozinka.\n\nOna štiti telefon ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potreban je PIN.\n\nOn štiti tablet ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potreban je uzorak.\n\nOn štiti tablet ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potrebna je lozinka.\n\nOna štiti tablet ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potreban je PIN.\n\nOn štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potreban je uzorak.\n\nOn štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potrebna je lozinka.\n\nOna štiti uređaj ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potreban je PIN.\n\nOn štiti telefon ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potreban je uzorak.\n\nOn štiti telefon ako ga izgubite ili ga neko ukrade."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Za postavljanje otključavanja licem i otključavanja otiskom prsta potrebna je lozinka.\n\nOna štiti telefon ako ga izgubite ili ga neko ukrade."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"PIN je obavezan da postavite otključavanje otiskom prsta i otključavanje licem.\n\nPIN štiti tablet u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Uzorak je obavezan da postavite otključavanje otiskom prsta i otključavanje licem.\n\nUzorak štiti tablet u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Lozinka je obavezna da postavite otključavanje otiskom prsta i otključavanje licem.\n\nLozinka štiti tablet u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"PIN je obavezan da postavite otključavanje otiskom prsta i otključavanje licem.\n\nPIN štiti uređaj u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Uzorak je obavezan da postavite otključavanje otiskom prsta i otključavanje licem.\n\nUzorak štiti uređaj u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Lozinka je obavezna da postavite otključavanje otiskom prsta i otključavanje licem.\n\nLozinka štiti uređaj u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"PIN je obavezan da postavite otključavanje otiskom prsta i otključavanje licem.\n\nPIN štiti telefon u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Uzorak je obavezan da postavite otključavanje otiskom prsta i otključavanje licem.\n\nUzorak štiti telefon u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Lozinka je obavezna da postavite otključavanje otiskom prsta i otključavanje licem.\n\nLozinka štiti telefon u slučaju gubitka ili krađe."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Ovim će se izbrisati slike i model otiska prsta koji su povezani s ID-om \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" i pohranjeni na vašem telefonu"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Ovim će se izbrisati slike i model otiska prsta koji su povezani s ID-om \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" i pohranjeni na vašem tabletu"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ovim će se izbrisati slike i model otiska prsta koji su povezani s ID-om \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" i pohranjeni na vašem uređaju"</string>
diff --git a/res-product/values-ca/strings.xml b/res-product/values-ca/strings.xml
index bf2c066..766bbc5 100644
--- a/res-product/values-ca/strings.xml
+++ b/res-product/values-ca/strings.xml
@@ -144,8 +144,8 @@
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Les funcions de protecció del dispositiu no s\'activaran. Si perds el dispositiu o te\'l roben, no podràs evitar que altres persones l\'utilitzin."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Les funcions de protecció del dispositiu no s\'activaran. Si perds el telèfon o te\'l roben, no podràs evitar que altres persones l\'utilitzin."</string>
     <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"El sensor d\'empremtes digitals es troba al botó d\'engegada. És el botó pla situat al costat del botó pla situat al costat del botó de volum amb relleu al lateral de la tauleta."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"El sensor d\'empremtes digitals es troba al botó d\'engegada. És el botó pla situat al costat del botó de volum amb relleu al lateral del dispositiu."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"El sensor d\'empremtes digitals es troba al botó d\'engegada. És el botó pla situat al costat del botó de volum amb relleu al lateral del telèfon."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"El sensor d\'empremtes digitals es troba al botó d\'engegada. És el botó pla situat al costat del botó de volum amb relleu als costats del dispositiu."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"El sensor d\'empremtes digitals es troba al botó d\'engegada. És el botó pla situat al costat del botó de volum amb relleu als costats del telèfon."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Ara pots utilitzar l\'empremta digital per desbloquejar la tauleta o verificar la teva identitat, com ara quan inicies la sessió en aplicacions o aproves una compra"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Ara pots utilitzar l\'empremta digital per desbloquejar el dispositiu o verificar la teva identitat, com ara quan inicies la sessió en aplicacions o aproves una compra"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Ara pots utilitzar l\'empremta digital per desbloquejar el telèfon o verificar la teva identitat, com ara quan inicies la sessió en aplicacions o aproves una compra"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Cal definir un PIN per configurar Desbloqueig facial.\n\nEl PIN protegeix el telèfon si es perd o te\'l roben."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Cal definir un patró per configurar Desbloqueig facial.\n\nEl patró protegeix el telèfon si es perd o te\'l roben."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Cal definir una contrasenya per configurar Desbloqueig facial.\n\nLa contrasenya protegeix el telèfon si es perd o te\'l roben."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Cal definir un PIN per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl PIN protegeix la tauleta si es perd o te la roben."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Cal definir un patró per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl patró protegeix la tauleta si es perd o te la roben."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Cal definir una contrasenya per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nLa contrasenya protegeix la tauleta si es perd o te la roben."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Cal definir un PIN per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl PIN protegeix el dispositiu si es perd o te\'l roben."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Cal definir un patró per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl patró protegeix el dispositiu si es perd o te\'l roben."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Cal definir una contrasenya per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nLa contrasenya protegeix el dispositiu si es perd o te\'l roben."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Cal definir un PIN per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl PIN protegeix el telèfon si es perd o te\'l roben."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Cal definir un patró per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl patró protegeix el telèfon si es perd o te\'l roben."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Cal definir una contrasenya per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nLa contrasenya protegeix el telèfon si es perd o te\'l roben."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Cal definir un PIN per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl PIN protegeix la tauleta si es perd o te la roben."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Cal definir un patró per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl patró protegeix la tauleta si es perd o te la roben."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Cal definir una contrasenya per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nLa contrasenya protegeix la tauleta si es perd o te la roben."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Cal definir un PIN per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl PIN protegeix el dispositiu si es perd o te\'l roben."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Cal definir un patró per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl patró protegeix el dispositiu si es perd o te\'l roben."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Cal definir una contrasenya per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nLa contrasenya protegeix el dispositiu si es perd o te\'l roben."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Cal definir un PIN per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl PIN protegeix el telèfon si es perd o te\'l roben."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Cal definir un patró per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nEl patró protegeix el telèfon si es perd o te\'l roben."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Cal definir una contrasenya per configurar Desbloqueig facial i Desbloqueig amb empremta digital.\n\nLa contrasenya protegeix el telèfon si es perd o te\'l roben."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Aquesta acció suprimeix les imatges i el model d\'empremta digital associats a <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que estan emmagatzemats al teu telèfon"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Aquesta acció suprimeix les imatges i el model d\'empremta digital associats a <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que estan emmagatzemats a la teva tauleta"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Aquesta acció suprimeix les imatges i el model d\'empremta digital associats a <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que estan emmagatzemats al teu dispositiu"</string>
diff --git a/res-product/values-cs/strings.xml b/res-product/values-cs/strings.xml
index 8502c24..47bd48b 100644
--- a/res-product/values-cs/strings.xml
+++ b/res-product/values-cs/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"K nastavení odemknutí obličejem je vyžadován PIN.\n\nPIN chrání telefon v případě ztráty nebo odcizení."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"K nastavení odemknutí obličejem je vyžadováno gesto.\n\nGesto chrání telefon v případě ztráty nebo odcizení."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"K nastavení odemknutí obličejem je vyžadováno heslo.\n\nHeslo chrání telefon v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadován PIN.\n\nPIN chrání tablet v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadováno gesto.\n\nGesto chrání tablet v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadováno heslo.\n\nHeslo chrání tablet v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadován PIN.\n\nPIN chrání zařízení v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadováno gesto.\n\nGesto chrání zařízení v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadováno heslo.\n\nHeslo chrání zařízení v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadován PIN.\n\nPIN chrání telefon v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadováno gesto.\n\nGesto chrání telefon v případě ztráty nebo odcizení."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"K nastavení odemknutí obličejem a odemknutí otiskem prstu je vyžadováno heslo.\n\nHeslo chrání telefon v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadován PIN.\n\nPIN chrání tablet v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadováno gesto.\n\nGesto chrání tablet v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadováno heslo.\n\nHeslo chrání tablet v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadován PIN.\n\nPIN chrání zařízení v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadováno gesto.\n\nGesto chrání zařízení v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadováno heslo.\n\nHeslo chrání zařízení v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadován PIN.\n\nPIN chrání telefon v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadováno gesto.\n\nGesto chrání telefon v případě ztráty nebo odcizení."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"K nastavení odemknutí otiskem prstu nebo obličejem je vyžadováno heslo.\n\nHeslo chrání telefon v případě ztráty nebo odcizení."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Touto akcí smažete snímky a model otisků prstů pro „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“, které jsou uloženy ve vašem telefonu."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Touto akcí vymažete snímky a model otisků prstů pro „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“, které jsou uloženy ve vašem tabletu"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Touto akcí vymažete snímky a model otisku prstu pro „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“, které jsou uloženy ve vašem zařízení"</string>
diff --git a/res-product/values-da/strings.xml b/res-product/values-da/strings.xml
index d46edcf..cf3f60c 100644
--- a/res-product/values-da/strings.xml
+++ b/res-product/values-da/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Du skal angive en pinkode for at konfigurere ansigtsoplåsning.\n\nEn pinkode beskytter telefonen, hvis den bliver væk eller stjålet."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Du skal angive et mønster for at konfigurere ansigtsoplåsning.\n\nEt mønster beskytter telefonen, hvis den bliver væk eller stjålet."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Du skal angive en adgangskode for at konfigurere ansigtsoplåsning.\n\nEn adgangskode beskytter telefonen, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Du skal angive en pinkode for at konfigurere ansigts- og fingeroplåsning.\n\nEn pinkode beskytter din tablet, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Du skal angive et mønster for at konfigurere ansigts- og fingeroplåsning.\n\nEt mønster beskytter din tablet, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Du skal angive en adgangskode for at konfigurere ansigts- og fingeroplåsning.\n\nEn adgangskode beskytter din tablet, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Du skal angive en pinkode for at konfigurere ansigts- og fingeroplåsning.\n\nEn pinkode beskytter enheden, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Du skal angive et mønster for at konfigurere ansigts- og fingeroplåsning.\n\nEt mønster beskytter enheden, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Du skal angive en adgangskode for at konfigurere ansigts- og fingeroplåsning.\n\nEn adgangskode beskytter enheden, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Du skal angive en pinkode for at konfigurere ansigts- og fingeroplåsning.\n\nEn pinkode beskytter telefonen, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Du skal angive et mønster for at konfigurere ansigts- og fingeroplåsning.\n\nEt mønster beskytter telefonen, hvis den bliver væk eller stjålet."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Du skal angive en adgangskode for at konfigurere ansigts- og fingeroplåsning.\n\nEn adgangskode beskytter telefonen, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Du skal angive en pinkode for at konfigurere finger- og ansigtsoplåsning\n\nEn pinkode beskytter din tablet, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Du skal angive et mønster for at konfigurere finger- og ansigtsoplåsning.\n\nEt mønster beskytter din tablet, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Du skal angive en adgangskode for at konfigurere finger- og ansigtsoplåsning.\n\nEn adgangskode beskytter din tablet, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Du skal angive en pinkode for at konfigurere finger- og ansigtsoplåsning.\n\nEn pinkode beskytter enheden, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Du skal angive et mønster for at konfigurere finger- og ansigtsoplåsning.\n\nEt mønster beskytter enheden, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Du skal angive en adgangskode for at konfigurere finger- og ansigtsoplåsning.\n\nEn adgangskode beskytter enheden, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Du skal angive en pinkode for at konfigurere finger- og ansigtsoplåsning.\n\nEn pinkode beskytter telefonen, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Du skal angive et mønster for at konfigurere finger- og ansigtsoplåsning.\n\nEt mønster beskytter telefonen, hvis den bliver væk eller stjålet."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Du skal angive en adgangskode for at konfigurere finger- og ansigtsoplåsning.\n\nEn adgangskode beskytter telefonen, hvis den bliver væk eller stjålet."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Dette sletter de fingeraftryksbilleder og den fingeraftryksmodel, der er knyttet til \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", og som er gemt på din telefon"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Dette sletter de fingeraftryksbilleder og den fingeraftryksmodel, der er knyttet til \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", og som er gemt på din tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Dette sletter de fingeraftryksbilleder og den fingeraftryksmodel, der er knyttet til \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", og som er gemt på din enhed"</string>
diff --git a/res-product/values-de/strings.xml b/res-product/values-de/strings.xml
index 2cf2af4..9d20f5c 100644
--- a/res-product/values-de/strings.xml
+++ b/res-product/values-de/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Die Schutzfunktionen für dein Mobilgerät werden nicht aktiviert. Du kannst dann nicht verhindern, dass andere Personen dieses Tablet verwenden, falls es verloren geht oder gestohlen wird."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Die Schutzfunktionen für dein Mobilgerät werden nicht aktiviert. Du kannst dann nicht verhindern, dass andere Personen dieses Gerät verwenden, falls es verloren geht oder gestohlen wird."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Die Schutzfunktionen für dein Mobilgerät werden nicht aktiviert. Du kannst dann nicht verhindern, dass andere Personen dieses Smartphone verwenden, falls es verloren geht oder gestohlen wird."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Der Fingerabdrucksensor befindet sich auf der Ein-/Aus-Taste. Das ist die flache Taste neben der erhöhten Lautstärketaste am Rand des Tablets."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Der Fingerabdrucksensor befindet sich auf der Ein-/Aus-Taste. Das ist die flache Taste neben der erhöhten Lautstärketaste am Geräterand."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Der Fingerabdrucksensor befindet sich auf der Ein-/Aus-Taste. Das ist die flache Taste neben der erhöhten Lautstärketaste am Rand des Smartphones."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Der Fingerabdrucksensor befindet sich auf der Ein-/Aus-Taste. Das ist die flache Taste neben der erhöhten Lautstärketaste an einer der Seiten des Tablets."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Der Fingerabdrucksensor befindet sich auf der Ein-/Aus-Taste. Das ist die flache Taste neben der erhöhten Lautstärketaste an einer der Seiten des Geräts."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Der Fingerabdrucksensor befindet sich auf der Ein-/Aus-Taste. Das ist die flache Taste neben der erhöhten Lautstärketaste an einer der Seiten des Smartphones."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Du kannst jetzt deinen Fingerabdruck verwenden, um dein Tablet zu entsperren oder deine Identität zu bestätigen, etwa um dich in Apps anzumelden oder Käufe zu autorisieren"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Du kannst jetzt deinen Fingerabdruck verwenden, um dein Gerät zu entsperren oder deine Identität zu bestätigen, etwa um dich in Apps anzumelden oder Käufe zu autorisieren"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Du kannst jetzt deinen Fingerabdruck verwenden, um dein Smartphone zu entsperren oder deine Identität zu bestätigen, etwa um dich in Apps anzumelden oder Käufe zu autorisieren"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Zum Einrichten der Entsperrung per Gesichtserkennung ist eine PIN erforderlich.\n\nEine PIN schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Zum Einrichten der Entsperrung per Gesichtserkennung ist ein Muster erforderlich.\n\nEin Muster schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Zum Einrichten der Entsperrung per Gesichtserkennung ist ein Passwort erforderlich.\n\nEin Passwort schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist eine PIN erforderlich.\n\nEine PIN schützt das Tablet, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist ein Muster erforderlich.\n\nEin Muster schützt das Tablet, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist ein Passwort erforderlich.\n\nEin Passwort schützt das Tablet, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist eine PIN erforderlich.\n\nEine PIN schützt das Gerät, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist ein Muster erforderlich.\n\nEin Muster schützt das Gerät, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist ein Passwort erforderlich.\n\nEin Passwort schützt das Gerät, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist eine PIN erforderlich.\n\nEine PIN schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist ein Muster erforderlich.\n\nEin Muster schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Zum Einrichten der Entsperrung per Gesichtserkennung und der Entsperrung per Fingerabdruck ist ein Passwort erforderlich.\n\nEin Passwort schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist eine PIN erforderlich.\n\nEine PIN schützt das Tablet, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist ein Muster erforderlich.\n\nEin Muster schützt das Tablet, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist ein Passwort erforderlich.\n\nEin Passwort schützt das Tablet, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist eine PIN erforderlich.\n\nEine PIN schützt das Gerät, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist ein Muster erforderlich.\n\nEin Muster schützt das Gerät, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist ein Passwort erforderlich.\n\nEin Passwort schützt das Gerät, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist eine PIN erforderlich.\n\nEine PIN schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist ein Muster erforderlich.\n\nEin Muster schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Zum Einrichten der Entsperrung per Fingerabdruck und der Entsperrung per Gesichtserkennung ist ein Passwort erforderlich.\n\nEin Passwort schützt das Smartphone, falls es verloren geht oder gestohlen wird."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Dadurch werden die Aufnahmen und das Modell des Fingerabdrucks für „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ gelöscht, die auf deinem Smartphone gespeichert sind"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Dadurch werden die Aufnahmen und das Modell des Fingerabdrucks für „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ gelöscht, die auf deinem Tablet gespeichert sind"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Dadurch werden die Aufnahmen und das Modell des Fingerabdruck für „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ gelöscht, die auf deinem Gerät gespeichert sind"</string>
diff --git a/res-product/values-el/strings.xml b/res-product/values-el/strings.xml
index a36b81c..5f377d1 100644
--- a/res-product/values-el/strings.xml
+++ b/res-product/values-el/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Απαιτείται PIN για τη ρύθμιση της λειτουργίας Ξεκλείδωμα με το πρόσωπο.\n\nΤο PIN προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Απαιτείται μοτίβο για τη ρύθμιση της λειτουργίας Ξεκλείδωμα με το πρόσωπο.\n\nΤο μοτίβο προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Απαιτείται κωδικός πρόσβασης για τη ρύθμιση της λειτουργίας Ξεκλείδωμα με το πρόσωπο.\n\nΟ κωδικός πρόσβασης προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Απαιτείται PIN για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΤο PIN προστατεύει το tablet σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Απαιτείται μοτίβο για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΤο μοτίβο προστατεύει το tablet σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Απαιτείται κωδικός πρόσβασης για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΟ κωδικός πρόσβασης προστατεύει το tablet σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Απαιτείται PIN για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΤο PIN προστατεύει τη συσκευή σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Απαιτείται μοτίβο για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΤο μοτίβο προστατεύει τη συσκευή σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Απαιτείται κωδικός πρόσβασης για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΟ κωδικός πρόσβασης προστατεύει τη συσκευή σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Απαιτείται PIN για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΤο PIN προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Απαιτείται μοτίβο για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΤο μοτίβο προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Απαιτείται κωδικός πρόσβασης για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με το πρόσωπο και Ξεκλείδωμα με δακτυλικό αποτύπωμα.\n\nΟ κωδικός πρόσβασης προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Απαιτείται PIN για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΤο PIN προστατεύει το tablet σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Απαιτείται μοτίβο για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΤο μοτίβο προστατεύει το tablet σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Απαιτείται κωδικός πρόσβασης για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΟ κωδικός πρόσβασης προστατεύει το tablet σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Απαιτείται PIN για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΤο PIN προστατεύει τη συσκευή σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Απαιτείται μοτίβο για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΤο μοτίβο προστατεύει τη συσκευή σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Απαιτείται κωδικός πρόσβασης για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΟ κωδικός πρόσβασης προστατεύει τη συσκευή σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Απαιτείται PIN για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΤο PIN προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Απαιτείται μοτίβο για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΤο μοτίβο προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Απαιτείται κωδικός πρόσβασης για τη ρύθμιση των λειτουργιών Ξεκλείδωμα με δακτυλικό αποτύπωμα και Ξεκλείδωμα με το πρόσωπο.\n\nΟ κωδικός πρόσβασης προστατεύει το τηλέφωνο σε περίπτωση απώλειας ή κλοπής."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Με αυτόν τον τρόπο διαγράφονται οι εικόνες και το μοντέλο δακτυλικού αποτυπώματος που έχουν αποθηκευτεί στο τηλέφωνό σας και συσχετίζονται με το <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Με αυτόν τον τρόπο διαγράφονται οι εικόνες και το μοντέλο δακτυλικού αποτυπώματος που έχουν αποθηκευτεί στο tablet και συσχετίζονται με το <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Με αυτόν τον τρόπο διαγράφονται οι εικόνες και το μοντέλο δακτυλικού αποτυπώματος που έχουν αποθηκευτεί στη συσκευή σας και συσχετίζονται με το <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>"</string>
diff --git a/res-product/values-en-rAU/strings.xml b/res-product/values-en-rAU/strings.xml
index 92368e4..d13d99e 100644
--- a/res-product/values-en-rAU/strings.xml
+++ b/res-product/values-en-rAU/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"A PIN is required to set up Face Unlock.\n\nA PIN protects the phone if it’s lost or stolen."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"A pattern is required to set up Face Unlock.\n\nA pattern protects the phone if it’s lost or stolen."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"A password is required to set up Face Unlock.\n\nA password protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the phone if it’s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the phone if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the phone if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the phone if it\'s lost or stolen."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your phone"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your device"</string>
diff --git a/res-product/values-en-rCA/strings.xml b/res-product/values-en-rCA/strings.xml
index fb30906..2f42e74 100644
--- a/res-product/values-en-rCA/strings.xml
+++ b/res-product/values-en-rCA/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"A PIN is required to set up Face Unlock.\n\nA PIN protects the phone if it\'s lost or stolen."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"A pattern is required to set up Face Unlock.\n\nA pattern protects the phone if it\'s lost or stolen."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"A password is required to set up Face Unlock.\n\nA password protects the phone if it\'s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the tablet if it\'s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the tablet if it\'s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the tablet if it\'s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the device if it\'s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the device if it\'s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the device if it\'s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the phone if it\'s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the phone if it\'s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the phone if it\'s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the tablet if it’s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the tablet if it’s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the tablet if it’s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the device if it’s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the device if it’s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the device if it’s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the phone if it’s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the phone if it’s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the phone if it’s lost or stolen."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your phone"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your device"</string>
diff --git a/res-product/values-en-rGB/strings.xml b/res-product/values-en-rGB/strings.xml
index a047137..5c4ed50 100644
--- a/res-product/values-en-rGB/strings.xml
+++ b/res-product/values-en-rGB/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"A PIN is required to set up Face Unlock.\n\nA PIN protects the phone if it’s lost or stolen."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"A pattern is required to set up Face Unlock.\n\nA pattern protects the phone if it’s lost or stolen."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"A password is required to set up Face Unlock.\n\nA password protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the phone if it’s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the phone if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the phone if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the phone if it\'s lost or stolen."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your phone"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your device"</string>
diff --git a/res-product/values-en-rIN/strings.xml b/res-product/values-en-rIN/strings.xml
index a047137..5c4ed50 100644
--- a/res-product/values-en-rIN/strings.xml
+++ b/res-product/values-en-rIN/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"A PIN is required to set up Face Unlock.\n\nA PIN protects the phone if it’s lost or stolen."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"A pattern is required to set up Face Unlock.\n\nA pattern protects the phone if it’s lost or stolen."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"A password is required to set up Face Unlock.\n\nA password protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the tablet if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the device if it’s lost or stolen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the phone if it’s lost or stolen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the phone if it’s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the tablet if it\'s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the device if it\'s lost or stolen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the phone if it\'s lost or stolen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the phone if it\'s lost or stolen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the phone if it\'s lost or stolen."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your phone"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"This deletes the fingerprint images and model associated with \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' that are stored on your device"</string>
diff --git a/res-product/values-en-rXC/strings.xml b/res-product/values-en-rXC/strings.xml
index 8569809..c096adfe 100644
--- a/res-product/values-en-rXC/strings.xml
+++ b/res-product/values-en-rXC/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎A PIN is required to set up Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A PIN protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎A pattern is required to set up Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A pattern protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎A password is required to set up Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A password protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎A PIN is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A PIN protects the tablet if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎A pattern is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A pattern protects the tablet if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎A password is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A password protects the tablet if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‎‎A PIN is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A PIN protects the device if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‏‎A pattern is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A pattern protects the device if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‎A password is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A password protects the device if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎A PIN is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A PIN protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‎‏‎‎A pattern is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A pattern protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎A password is required to set up Face Unlock and Fingerprint Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A password protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‎‎‎‎‏‎A PIN is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A PIN protects the tablet if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‎A pattern is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A pattern protects the tablet if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‎‎‎A password is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A password protects the tablet if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎A PIN is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A PIN protects the device if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‎A pattern is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A pattern protects the device if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎‎‎‏‎A password is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A password protects the device if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎A PIN is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A PIN protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎A pattern is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A pattern protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎A password is required to set up Fingerprint Unlock and Face Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎A password protects the phone if it’s lost or stolen.‎‏‎‎‏‎"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎This deletes the fingerprint images and model associated with \'‎‏‎‎‏‏‎<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>‎‏‎‎‏‏‏‎\' that are stored on your phone‎‏‎‎‏‎"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎This deletes the fingerprint images and model associated with \'‎‏‎‎‏‏‎<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>‎‏‎‎‏‏‏‎\' that are stored on your tablet‎‏‎‎‏‎"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‏‎This deletes the fingerprint images and model associated with \'‎‏‎‎‏‏‎<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>‎‏‎‎‏‏‏‎\' that are stored on your device‎‏‎‎‏‎"</string>
diff --git a/res-product/values-es-feminine/strings.xml b/res-product/values-es-feminine/strings.xml
new file mode 100644
index 0000000..61a55da
--- /dev/null
+++ b/res-product/values-es-feminine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como una gemela) pueda desbloquear el teléfono."</string>
+</resources>
diff --git a/res-product/values-es-masculine/strings.xml b/res-product/values-es-masculine/strings.xml
new file mode 100644
index 0000000..54f55d6
--- /dev/null
+++ b/res-product/values-es-masculine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
+</resources>
diff --git a/res-product/values-es-neuter/strings.xml b/res-product/values-es-neuter/strings.xml
new file mode 100644
index 0000000..54f55d6
--- /dev/null
+++ b/res-product/values-es-neuter/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Usa la cara para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o para aprobar compras).\n\nTen en cuenta lo siguiente:\nSolo puedes tener registrada una cara. Si quieres añadir otra, debes eliminar la que ya está registrada.\n\nEs posible que el teléfono se desbloquee si lo miras, aunque no sea tu intención.\n\nOtra persona puede desbloquear el teléfono si lo pone frente a tu cara, incluso si tienes los ojos cerrados.\n\nEs posible que una persona que se parezca mucho a ti (como un gemelo) pueda desbloquear el teléfono."</string>
+</resources>
diff --git a/res-product/values-es-rUS/strings.xml b/res-product/values-es-rUS/strings.xml
index 9d1a773..75b3efb 100644
--- a/res-product/values-es-rUS/strings.xml
+++ b/res-product/values-es-rUS/strings.xml
@@ -148,7 +148,7 @@
     <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"El sensor de huellas dactilares está en el botón de encendido. Es el botón plano que está junto al botón de volumen en relieve, en el borde del teléfono."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Ahora puedes usar tu huella dactilar para desbloquear la tablet o verificar tu identidad, como cuando accedes a apps o apruebas compras"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Ahora puedes usar tu huella dactilar para desbloquear el dispositivo o verificar tu identidad, como cuando accedes a apps o apruebas compras"</string>
-    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Ahora puedes usar tu huella dactilar para desbloquear el teléfono o verificar tu identidad, como cuando accedes a apps o apruebas compras."</string>
+    <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Ahora puedes usar tu huella dactilar para desbloquear el teléfono o verificar tu identidad, como cuando accedes a apps o apruebas compras"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="tablet" msgid="7814892482046294464">"Ahora puedes usar tu huella dactilar para desbloquear la tablet o verificar tu identidad, como cuando accedes a apps o apruebas compras. \n\nAgrega otra huella dactilar para facilitar el desbloqueo cuando sostienes la tablet de distintas formas."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="device" msgid="8418220207105495988">"Ahora puedes usar tu huella dactilar para desbloquear el dispositivo o verificar tu identidad, como cuando accedes a apps o apruebas compras.\n\nAgrega otra huella dactilar para facilitar el desbloqueo cuando sostienes el dispositivo de distintas formas."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message" product="default" msgid="3545300825124248359">"Ahora puedes usar tu huella dactilar para desbloquear el teléfono o verificar tu identidad, como cuando accedes a apps o apruebas compras.\n\nAgrega otra huella dactilar para facilitar el desbloqueo cuando sostienes el teléfono de distintas formas."</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Se requiere un PIN para configurar la función Desbloqueo facial.\n\nEn caso de robo o extravío, un PIN protege el teléfono."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Se requiere un patrón para configurar la función Desbloqueo facial.\n\nEn caso de robo o extravío, un patrón protege el teléfono."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Se requiere una contraseña para configurar la función Desbloqueo facial.\n\nEn caso de robo o extravío, una contraseña protege el teléfono."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Se requiere un PIN para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, un PIN protege la tablet."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Se requiere un patrón para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, un patrón protege la tablet."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Se requiere una contraseña para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, una contraseña protege la tablet."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Se requiere un PIN para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, un PIN protege el dispositivo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Se requiere un patrón para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, un patrón protege el dispositivo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Se requiere una contraseña para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, una contraseña protege el dispositivo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Se requiere un PIN para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, un PIN protege el teléfono."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Se requiere un patrón para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, un patrón protege el teléfono."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Se requiere una contraseña para configurar las funciones Desbloqueo facial y Desbloqueo con huellas dactilares.\n\nEn caso de robo o extravío, una contraseña protege el teléfono."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Se requiere un PIN para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, un PIN protege la tablet."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Se requiere un patrón para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, un patrón protege la tablet."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Se requiere una contraseña para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, una contraseña protege la tablet."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Se requiere un PIN para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, un PIN protege el dispositivo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Se requiere un patrón para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, un patrón protege el dispositivo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Se requiere una contraseña para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, una contraseña protege el dispositivo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Se requiere un PIN para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, un PIN protege el teléfono."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Se requiere un patrón para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, un patrón protege el teléfono."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Se requiere una contraseña para configurar las funciones Desbloqueo con huellas dactilares y Desbloqueo facial.\n\nEn caso de robo o extravío, una contraseña protege el teléfono."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Esta opción borra las imágenes y el modelo de la huella dactilar asociados con \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que se guardaron en el teléfono."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Esta opción borra las imágenes de la huella dactilar y el modelo asociado con \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que se guardaron en la tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Esta opción borra las imágenes de la huella dactilar y el modelo asociado con \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que se guardaron en el dispositivo"</string>
diff --git a/res-product/values-es/strings.xml b/res-product/values-es/strings.xml
index 4132641..8cd1ef5 100644
--- a/res-product/values-es/strings.xml
+++ b/res-product/values-es/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios utilicen esta tablet si la pierdes o te la roban."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otros usuarios lo utilicen si lo pierdes o te lo roban."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"No se activarán las funciones de protección del dispositivo. No podrás evitar que otras personas utilicen este teléfono si lo pierdes o te lo roban."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral de la tablet."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral del dispositivo."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el lateral del teléfono."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el borde de la tablet."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el borde del dispositivo."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"El sensor de huellas digitales está en el botón de encendido. Es el botón plano situado junto al botón de volumen con relieve en el borde del teléfono."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Ahora puedes usar tu huella digital para desbloquear tu tablet o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o aprobar compras)"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Ahora puedes usar tu huella digital para desbloquear tu dispositivo o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o aprobar compras)"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Ahora puedes usar tu huella digital para desbloquear tu teléfono o verificar que eres tú (por ejemplo, al iniciar sesión en aplicaciones o aprobar compras)"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Se necesita un PIN para configurar Desbloqueo facial.\n\nEl PIN protege tu teléfono si lo pierdes o te lo roban."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Se necesita un patrón para configurar Desbloqueo facial.\n\nEl patrón protege tu teléfono si lo pierdes o te lo roban."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Se necesita una contraseña para configurar Desbloqueo facial.\n\nLa contraseña protege tu teléfono si lo pierdes o te lo roban."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Se necesita un PIN para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nEl PIN protege tu tablet si la pierdes o te la roban."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Se necesita un patrón para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nEl patrón protege tu tablet si la pierdes o te la roban."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Se necesita una contraseña para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nLa contraseña protege tu tablet si la pierdes o te la roban."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Se necesita un PIN para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nEl PIN protege tu dispositivo si lo pierdes o te lo roban."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Se necesita un patrón para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nEl patrón protege tu dispositivo si lo pierdes o te lo roban."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Se necesita una contraseña para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nLa contraseña protege tu dispositivo si lo pierdes o te lo roban."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Se necesita un PIN para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nEl PIN protege tu teléfono si lo pierdes o te lo roban."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Se necesita un patrón para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nEl patrón protege tu teléfono si lo pierdes o te lo roban."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Se necesita una contraseña para configurar Desbloqueo facial y Desbloqueo con huella digital.\n\nLa contraseña protege tu teléfono si lo pierdes o te lo roban."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Se necesita un PIN para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nEl PIN protege la tablet si la pierdes o te la roban."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Se necesita un patrón para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nEl patrón protege la tablet si la pierdes o te la roban."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Se necesita una contraseña para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nLa contraseña protege la tablet si la pierdes o te la roban."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Se necesita un PIN para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nEl PIN protege el dispositivo si lo pierdes o te lo roban."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Se necesita un patrón para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nEl patrón protege el dispositivo si lo pierdes o te lo roban."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Se necesita una contraseña para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nLa contraseña protege el dispositivo si lo pierdes o te lo roban."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Se necesita un PIN para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nEl PIN protege el teléfono si lo pierdes o te lo roban."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Se necesita un patrón para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nEl patrón protege el teléfono si lo pierdes o te lo roban."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Se necesita una contraseña para configurar Desbloqueo con huella digital y Desbloqueo facial.\n\nLa contraseña protege el teléfono si lo pierdes o te lo roban."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Se eliminarán las imágenes y el modelo de huella digital asociados a <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que están almacenados en tu teléfono."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Se eliminarán las imágenes y el modelo de huella digital asociados a <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que están almacenados en tu tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Se eliminarán las imágenes y el modelo de huella digital asociados a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que están almacenados en tu dispositivo"</string>
diff --git a/res-product/values-et/strings.xml b/res-product/values-et/strings.xml
index 16f5737..2c9112e 100644
--- a/res-product/values-et/strings.xml
+++ b/res-product/values-et/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Seadme kaitsefunktsioone ei lülitata sisse. Te ei saa tahvelarvuti kaotsimineku või varguse puhul teistel selle kasutamist takistada."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Seadme kaitsefunktsioone ei lülitata sisse. Te ei saa seadme kaotsimineku või varguse puhul teistel selle kasutamist takistada."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Seadme kaitsefunktsioone ei lülitata sisse. Te ei saa telefoni kaotsimineku või varguse puhul teistel selle kasutamist takistada."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Sõrmejäljeandur asub toitenupul. See on tahvelarvuti küljel helitugevuse kõrgendatud nupu kõrval olev lame nupp."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Sõrmejäljeandur asub toitenupul. See on tahvelarvuti küljel helitugevuse kõrgendatud nupu kõrval olev lame nupp."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Sõrmejäljeandur asub toitenupul. See on telefoni küljel helitugevuse kõrgendatud nupu kõrval olev lame nupp."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Sõrmejäljeandur asub toitenupul. See on tahvelarvuti serval helitugevuse kõrgendatud nupu kõrval olev lame nupp."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Sõrmejäljeandur asub toitenupul. See on tahvelarvuti serval helitugevuse kõrgendatud nupu kõrval olev lame nupp."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Sõrmejäljeandur asub toitenupul. See on telefoni serval helitugevuse kõrgendatud nupu kõrval olev lame nupp."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Nüüd saate tahvelarvuti avamiseks või oma isiku kinnitamiseks (nt rakendustesse sisselogimisel või ostude kinnitamisel) oma sõrmejälge kasutada."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Nüüd saate seadme avamiseks või oma isiku kinnitamiseks (nt rakendustesse sisselogimisel või ostude kinnitamisel) oma sõrmejälge kasutada."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Nüüd saate telefoni avamiseks või oma isiku kinnitamiseks (nt rakendustesse sisselogimisel või ostude kinnitamisel) oma sõrmejälge kasutada."</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Näoga avamise seadistamiseks on vaja PIN-koodi.\n\nPIN-kood kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Näoga avamise seadistamiseks on vaja mustrit.\n\nMuster kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Näoga avamise seadistamiseks on vaja parooli.\n\nParool kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja PIN-koodi.\n\nPIN-kood kaitseb tahvelarvutit juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja mustrit.\n\nMuster kaitseb tahvelarvutit juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja parooli.\n\nParool kaitseb tahvelarvutit juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja PIN-koodi.\n\nPIN-kood kaitseb seadet juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja mustrit.\n\nMuster kaitseb seadet juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja parooli.\n\nParool kaitseb seadet juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja PIN-koodi.\n\nPIN-kood kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja mustrit.\n\nMuster kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Näoga avamise ja sõrmejäljega avamise seadistamiseks on vaja parooli.\n\nParool kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja PIN-koodi.\n\nPIN-kood kaitseb tahvelarvutit juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja mustrit.\n\nMuster kaitseb tahvelarvutit juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja parooli.\n\nParool kaitseb tahvelarvutit juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja PIN-koodi.\n\nPIN-kood kaitseb seadet juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja mustrit.\n\nMuster kaitseb seadet juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja parooli.\n\nParool kaitseb seadet juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja PIN-koodi.\n\nPIN-kood kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja mustrit.\n\nMuster kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Sõrmejäljega avamise ja näoga avamise seadistamiseks on vaja parooli.\n\nParool kaitseb telefoni juhul, kui see läheb kaotsi või varastatakse."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"See kustutab sõrmejäljega „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ seotud sõrmejäljekujutised ja -mudeli, mis on teie telefoni salvestatud"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"See kustutab sõrmejäljega „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ seotud sõrmejäljekujutised ja -mudeli, mis on teie tahvelarvutisse salvestatud"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"See kustutab sõrmejäljega „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ seotud sõrmejäljekujutised ja -mudeli, mis on teie seadmesse salvestatud"</string>
diff --git a/res-product/values-eu/strings.xml b/res-product/values-eu/strings.xml
index bf74312..982c9bc 100644
--- a/res-product/values-eu/strings.xml
+++ b/res-product/values-eu/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Ez dira aktibatuko gailua babesteko eginbideak. Tableta galtzen baduzu edo lapurtzen badizute, ezin izango duzu ekidin beste pertsona batzuek erabiltzea."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Ez dira aktibatuko gailua babesteko eginbideak. Gailua galtzen baduzu edo lapurtzen badizute, ezin izango duzu ekidin beste pertsona batzuek erabiltzea."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Ez dira aktibatuko gailua babesteko eginbideak. Telefonoa galtzen baduzu edo lapurtzen badizute, ezin izango duzu ekidin beste pertsona batzuek erabiltzea."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Hatz-marken sentsorea etengailuan dago. Tabletaren ertzeko bolumen-botoi goratuaren ondoan dagoen botoi laua da."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Hatz-marken sentsorea etengailuan dago. Gailuaren ertzeko bolumen-botoi goratuaren ondoan dagoen botoi laua da."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Hatz-marken sentsorea etengailuan dago. Telefonoaren ertzeko bolumen-botoi goratuaren ondoan dagoen botoi laua da."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Hatz-marken sentsorea etengailuan dago. Tabletaren ertzetako bateko bolumen-botoi goratuaren ondoan dagoen botoi laua da."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Hatz-marken sentsorea etengailuan dago. Gailuaren ertzetako bateko bolumen-botoi goratuaren ondoan dagoen botoi laua da."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Hatz-marken sentsorea etengailuan dago. Telefonoaren ertzetako bateko bolumen-botoi goratuaren ondoan dagoen botoi laua da."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Orain, tableta desblokeatzeko edo zeu zarela egiaztatzeko erabil dezakezu hatz-marka, hala nola aplikazioetan saioa hastean edo erosketak onartzean"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Orain, gailua desblokeatzeko edo zeu zarela egiaztatzeko erabil dezakezu hatz-marka, hala nola aplikazioetan saioa hastean edo erosketak onartzean"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Orain, telefonoa desblokeatzeko edo zeu zarela egiaztatzeko erabil dezakezu hatz-marka, hala nola aplikazioetan saioa hastean edo erosketak onartzean"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"PIN bat behar da aurpegi bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPINak babestu egiten du telefonoa, hura galtzen baduzu edo lapurtzen badizute."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Eredu bat behar da aurpegi bidez desblokeatzeko eginbidea konfiguratzeko.\n\nEreduak babestu egiten du telefonoa, hura galtzen baduzu edo lapurtzen badizute."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Pasahitz bat behar da aurpegi bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPasahitzak babestu egiten du telefonoa, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Pasahitz bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPINak babestu egiten du tableta, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Pasahitz bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nEreduak babestu egiten du tableta, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Pasahitz bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPasahitzak babestu egiten du tableta, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"PIN bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPINak babestu egiten du gailua, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Eredu bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nEreduak babestu egiten du gailua, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Pasahitz bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPasahitzak babestu egiten du gailua, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"PIN bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPINak babestu egiten du telefonoa, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Pasahitz bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nEreduak babestu egiten du telefonoa, hura galtzen baduzu edo lapurtzen badizute."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Pasahitz bat behar da aurpegi bidez desblokeatzeko eginbidea eta hatz-marka bidez desblokeatzeko eginbidea konfiguratzeko.\n\nPasahitzak babestu egiten du telefonoa, hura galtzen baduzu edo lapurtzen badizute."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"PIN bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nTableta galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Eredu bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nTableta galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Pasahitz bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nTableta galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"PIN bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nGailua galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Eredu bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nGailua galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Pasahitz bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nGailua galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"PIN bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nTelefonoa galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Eredu bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nTelefonoa galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Pasahitz bat behar da hatz-marka bidez eta aurpegi bidez desblokeatzeko eginbideak konfiguratzeko.\n\nTelefonoa galtzen baduzu edo lapurtzen badizute, pasahitzarekin babestuta egongo da."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Telefonoan \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" izenarekin gordetako hatz-markaren irudiak eta eredua ezabatuko dira."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Tabletan \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" izenarekin gordetako hatz-markaren irudiak eta eredua ezabatuko dira."</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ezabatu egingo dira gailuan \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" izenarekin gordetako hatz-markaren irudiak eta eredua"</string>
diff --git a/res-product/values-fa/strings.xml b/res-product/values-fa/strings.xml
index 3699e30..08460ba 100644
--- a/res-product/values-fa/strings.xml
+++ b/res-product/values-fa/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"برای راه‌اندازی «قفل‌گشایی با چهره»، افزودن پین الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، پین از آن محافظت می‌کند."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"برای راه‌اندازی «قفل‌گشایی با چهره»، افزودن الگو الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، الگو از آن محافظت می‌کند."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"برای راه‌اندازی «قفل‌گشایی با چهره»، افزودن گذرواژه الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، گذرواژه از آن محافظت می‌کند."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن پین الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن رایانه لوحی، پین از آن محافظت می‌کند."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن الگو الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن رایانه لوحی، الگو از آن محافظت می‌کند."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن گذرواژه الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن رایانه لوحی، گذرواژه از آن محافظت می‌کند."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن پین الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن دستگاه، پین از آن محافظت می‌کند."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن الگو الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن دستگاه، الگو از آن محافظت می‌کند."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن گذرواژه الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن دستگاه، گذرواژه از آن محافظت می‌کند."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن پین الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، پین از آن محافظت می‌کند."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن الگو الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، الگو از آن محافظت می‌کند."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"برای راه‌اندازی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت»، افزودن گذرواژه الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، گذرواژه از آن محافظت می‌کند."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن پین الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن رایانه لوحی، پین از آن محافظت می‌کند."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن الگو الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن رایانه لوحی، الگو از آن محافظت می‌کند."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن گذرواژه الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن رایانه لوحی، گذرواژه از آن محافظت می‌کند."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن پین الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن دستگاه، پین از آن محافظت می‌کند."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن الگو الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن دستگاه، الگو از آن محافظت می‌کند."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن گذرواژه الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن دستگاه، گذرواژه از آن محافظت می‌کند."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن پین الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، پین از آن محافظت می‌کند."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن الگو الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، الگو از آن محافظت می‌کند."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"برای راه‌اندازی «قفل‌گشایی با اثر انگشت» و «قفل‌گشایی با چهره»، افزودن گذرواژه الزامی است.\n\nدرصورت گم شدن یا به‌سرقت رفتن تلفن، گذرواژه از آن محافظت می‌کند."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"با این کار مدل و تصاویر اثر انگشت مرتبط با «<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» که در تلفنتان ذخیره شده حذف می‌شوند"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"با این کار مدل و تصاویر اثر انگشت مرتبط با «<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» که در رایانه لوحی‌تان ذخیره شده‌اند حذف می‌شوند"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"با این کار مدل و تصاویر اثر انگشت مرتبط با «<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» که در دستگاهتان ذخیره شده‌اند حذف می‌شوند"</string>
diff --git a/res-product/values-fi/strings.xml b/res-product/values-fi/strings.xml
index 40d31d3..8ed6b64 100644
--- a/res-product/values-fi/strings.xml
+++ b/res-product/values-fi/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Kasvojentunnistusavauksen käyttöönotto edellyttää PIN-koodia.\n\nPIN-koodi suojaa puhelinta, jos se katoaa tai varastetaan."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Kasvojentunnistusavauksen käyttöönotto edellyttää kuviota.\n\nKuvio suojaa puhelinta, jos se katoaa tai varastetaan."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Kasvojentunnistusavauksen käyttöönotto edellyttää salasanaa.\n\nSalasana suojaa puhelinta, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää PIN-koodia.\n\nPIN-koodi suojaa tablettia, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää kuviota.\n\nKuvio suojaa tablettia, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää salasanaa.\n\nSalasana suojaa tablettia, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää PIN-koodia.\n\nPIN-koodi suojaa laitetta, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää kuviota.\n\nKuvio suojaa laitetta, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää salasanaa.\n\nSalasana suojaa laitetta, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää PIN-koodia.\n\nPIN-koodi suojaa puhelinta, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää kuviota.\n\nKuvio suojaa puhelinta, jos se katoaa tai varastetaan."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Kasvojentunnistus- ja sormenjälkiavausten käyttöönotto edellyttää salasanaa.\n\nSalasana suojaa puhelinta, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää PIN-koodia.\n\nPIN-koodi suojaa tablettia, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää kuviota.\n\nKuvio suojaa tablettia, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää salasanaa.\n\nSalasana suojaa tablettia, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää PIN-koodia.\n\nPIN-koodi suojaa laitetta, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää kuviota.\n\nKuvio suojaa laitetta, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää salasanaa.\n\nSalasana suojaa laitetta, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää PIN-koodia.\n\nPIN-koodi suojaa puhelinta, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää kuviota.\n\nKuvio suojaa puhelinta, jos se katoaa tai varastetaan."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Sormenjälki- ja kasvojentunnistusavausten käyttöönotto edellyttää salasanaa.\n\nSalasana suojaa puhelinta, jos se katoaa tai varastetaan."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Tämä poistaa puhelimelle tallennetut sormenjäljen kuvat ja mallit, joihin <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> liittyy"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Tämä poistaa tabletille tallennetut sormenjäljen kuvat ja mallit, joihin <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> liittyy"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Tämä poistaa laitteelle tallennetut sormenjäljen kuvat ja mallit, joihin <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> liittyy"</string>
diff --git a/res-product/values-fr-rCA-feminine/strings.xml b/res-product/values-fr-rCA-feminine/strings.xml
new file mode 100644
index 0000000..3b065d8
--- /dev/null
+++ b/res-product/values-fr-rCA-feminine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"Vous êtes actuellement connectée aux comptes suivants :\n"</string>
+</resources>
diff --git a/res-product/values-fr-rCA-masculine/strings.xml b/res-product/values-fr-rCA-masculine/strings.xml
new file mode 100644
index 0000000..ed2e2ca
--- /dev/null
+++ b/res-product/values-fr-rCA-masculine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"Vous êtes actuellement connecté aux comptes suivants :\n"</string>
+</resources>
diff --git a/res-product/values-fr-rCA-neuter/strings.xml b/res-product/values-fr-rCA-neuter/strings.xml
new file mode 100644
index 0000000..6b27fad
--- /dev/null
+++ b/res-product/values-fr-rCA-neuter/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"Votre connexion aux comptes suivants est actuellement active :\n"</string>
+</resources>
diff --git a/res-product/values-fr-rCA/strings.xml b/res-product/values-fr-rCA/strings.xml
index c4cee6c..cdb2bb7 100644
--- a/res-product/values-fr-rCA/strings.xml
+++ b/res-product/values-fr-rCA/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Les fonctionnalités de protection de l\'appareil ne seront pas activées. Vous ne pourrez pas empêcher d\'autres personnes d\'utiliser cette tablette en cas de perte ou de vol."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Les fonctionnalités de protection de l\'appareil ne seront pas activées. Vous ne pourrez pas empêcher d\'autres personnes d\'utiliser cet appareil en cas de perte ou de vol."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Les fonctionnalités de protection de l\'appareil ne seront pas activées. Vous ne pourrez pas empêcher d\'autres personnes d\'utiliser ce téléphone en cas de perte ou de vol."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur le bord de la tablette."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur le bord de l\'appareil."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur le bord du téléphone."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur l\'un des bords de la tablette."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur l\'un des bords de l\'appareil."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Le capteur d\'empreintes digitales est situé sur l\'interrupteur. Il s\'agit du bouton plat situé à côté du bouton de volume surélevé, sur l\'un des bords du téléphone."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre tablette ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre appareil ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Vous pouvez maintenant utiliser votre empreinte digitale pour déverrouiller votre téléphone ou vérifier qu\'il s\'agit bien de vous, par exemple pour vous connecter à des applis ou approuver un achat"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Un NIP est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale.\n\nUn NIP protège le téléphone en cas de perte ou de vol de celui-ci."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Un schéma est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale.\n\nUn schéma protège le téléphone en cas de perte ou de vol de celui-ci."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Un mot de passe est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale.\n\nUn mot de passe protège le téléphone en cas de perte ou de vol de celui-ci."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Un NIP est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn NIP protège la tablette en cas de perte ou de vol de celle-ci."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Un schéma est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège la tablette en cas de perte ou de vol de celle-ci."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Un mot de passe est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège la tablette en cas de perte ou de vol de celle-ci."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Un NIP est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn NIP protège l\'appareil en cas de perte ou de vol de celui-ci."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Un schéma est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège l\'appareil en cas de perte ou de vol de celui-ci."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Un mot de passe est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège l\'appareil en cas de perte ou de vol de celui-ci."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Un NIP est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn NIP protège le téléphone en cas de perte ou de vol de celui-ci."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Un schéma est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège le téléphone en cas de perte ou de vol de celui-ci."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Un mot de passe est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège le téléphone en cas de perte ou de vol de celui-ci."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Un NIP est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn NIP protège la tablette en cas de perte ou de vol de celle-ci."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Un schéma est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège la tablette en cas de perte ou de vol de celle-ci."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Un mot de passe est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège la tablette en cas de perte ou de vol de celle-ci."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Un NIP est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn NIP protège l\'appareil en cas de perte ou de vol de celui-ci."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Un schéma est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège l\'appareil en cas de perte ou de vol de celui-ci."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Un mot de passe est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège l\'appareil en cas de perte ou de vol de celui-ci."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Un NIP est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn NIP protège le téléphone en cas de perte ou de vol de celui-ci."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Un schéma est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège le téléphone en cas de perte ou de vol de celui-ci."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Un mot de passe est requis pour configurer la fonctionnalité de déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège le téléphone en cas de perte ou de vol de celui-ci."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Les images et le modèle d\'empreinte digitale associés à « <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> » et stockés sur votre téléphone seront supprimés"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Les images et le modèle d\'empreinte digitale associés à « <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> » et stockés sur votre tablette seront supprimés"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Les images et le modèle d\'empreinte digitale associés à « <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> » et stockés sur votre appareil seront supprimés"</string>
diff --git a/res-product/values-fr/strings.xml b/res-product/values-fr/strings.xml
index 3892047..5555136 100644
--- a/res-product/values-fr/strings.xml
+++ b/res-product/values-fr/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Veuillez saisir un code pour configurer le déverrouillage par reconnaissance faciale.\n\nUn code protège votre téléphone en cas de perte ou de vol."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Veuillez dessiner un schéma pour configurer le déverrouillage par reconnaissance faciale.\n\nUn schéma protège votre téléphone en cas de perte ou de vol."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Veuillez saisir un mot de passe pour configurer le déverrouillage par reconnaissance faciale.\n\nUn mot de passe protège votre téléphone en cas de perte ou de vol."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Veuillez saisir un code pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn code protège votre tablette en cas de perte ou de vol."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Veuillez dessiner un schéma pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège votre tablette en cas de perte ou de vol."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Veuillez saisir un mot de passe pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège votre tablette en cas de perte ou de vol."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Veuillez saisir un code pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn code protège votre appareil en cas de perte ou de vol."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Veuillez dessiner un schéma pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège votre appareil en cas de perte ou de vol."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Veuillez saisir un mot de passe pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège votre appareil en cas de perte ou de vol."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Veuillez saisir un code pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn code protège votre téléphone en cas de perte ou de vol."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Veuillez dessiner un schéma pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège votre téléphone en cas de perte ou de vol."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Veuillez saisir un mot de passe pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège votre téléphone en cas de perte ou de vol."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Veuillez saisir un code pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn code protège votre tablette en cas de perte ou de vol."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Veuillez dessiner un schéma pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège votre tablette en cas de perte ou de vol."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Veuillez saisir un mot de passe pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège votre tablette en cas de perte ou de vol."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Veuillez saisir un code pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn code protège votre appareil en cas de perte ou de vol."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Veuillez dessiner un schéma pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège votre appareil en cas de perte ou de vol."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Veuillez saisir un mot de passe pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège votre appareil en cas de perte ou de vol."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Veuillez saisir un code pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn code protège votre téléphone en cas de perte ou de vol."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Veuillez dessiner un schéma pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn schéma protège votre téléphone en cas de perte ou de vol."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Veuillez saisir un mot de passe pour configurer le déverrouillage par reconnaissance faciale et par empreinte digitale.\n\nUn mot de passe protège votre téléphone en cas de perte ou de vol."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Les images et le modèle associés à \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" et stockés sur votre téléphone seront supprimés"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Les images et le modèle associés à \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" et stockés sur votre tablette seront supprimés"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Les images et le modèle associés à \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" et stockés sur votre appareil seront supprimés"</string>
diff --git a/res-product/values-gl/strings.xml b/res-product/values-gl/strings.xml
index 003e50f..d41f20d 100644
--- a/res-product/values-gl/strings.xml
+++ b/res-product/values-gl/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Para configurar o desbloqueo facial, necesítase un PIN.\n\nO teléfono estará protexido por un PIN en caso de perda ou roubo."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Para configurar o desbloqueo facial, necesítase un padrón.\n\nO teléfono estará protexido por un padrón en caso de perda ou roubo."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Para configurar o desbloqueo facial, necesítase un contrasinal.\n\nO teléfono estará protexido por un contrasinal en caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Para configurar o desbloqueo facial e dactilar, necesítase un PIN.\n\nA tableta estará protexida por un PIN en caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Para configurar o desbloqueo facial e dactilar, necesítase un padrón.\n\nA tableta estará protexida por un padrón en caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Para configurar o desbloqueo facial e dactilar, necesítase un contrasinal.\n\nA tableta estará protexida por un contrasinal en caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Para configurar o desbloqueo facial e dactilar, necesítase un PIN.\n\nO dispositivo estará protexido por un PIN en caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Para configurar o desbloqueo facial e dactilar, necesítase un padrón.\n\nO dispositivo estará protexido por un padrón en caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Para configurar o desbloqueo facial e dactilar, necesítase un contrasinal.\n\nO dispositivo estará protexido por un contrasinal en caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Para configurar o desbloqueo facial e dactilar, necesítase un PIN.\n\nO teléfono estará protexido por un PIN en caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Para configurar o desbloqueo facial e dactilar, necesítase un padrón.\n\nO teléfono estará protexido por un padrón en caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Para configurar o desbloqueo facial e dactilar, necesítase un contrasinal.\n\nO teléfono estará protexido por un contrasinal en caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Para configurar o desbloqueo facial e o dactilar, necesítase un PIN.\n\nUsarase para protexer a tableta en caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Para configurar o desbloqueo facial e o dactilar, necesítase un padrón.\n\nUsarase para protexer a tableta en caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Para configurar o desbloqueo facial e o dactilar, necesítase un contrasinal.\n\nUsarase para protexer a tableta en caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Para configurar o desbloqueo facial e o dactilar, necesítase un PIN.\n\nUsarase para protexer o dispositivo en caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Para configurar o desbloqueo facial e o dactilar, necesítase un padrón.\n\nUsarase para protexer o dispositivo en caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Para configurar o desbloqueo facial e o dactilar, necesítase un contrasinal.\n\nUsarase para protexer o dispositivo en caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Para configurar o desbloqueo facial e o dactilar, necesítase un PIN.\n\nUsarase para protexer o teléfono en caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Para configurar o desbloqueo facial e o dactilar, necesítase un padrón.\n\nUsarase para protexer o teléfono en caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Para configurar o desbloqueo facial e o dactilar, necesítase un contrasinal.\n\nUsarase para protexer o teléfono en caso de perda ou roubo."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Ao realizar esta acción, eliminaranse as imaxes e o modelo da impresión dixital <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que estean almacenados no teléfono"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Ao realizar esta acción, eliminaranse as imaxes e o modelo da impresión dixital <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que estean almacenados na tableta"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ao realizar esta acción, eliminaranse as imaxes e o modelo da impresión dixital <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> que estean almacenados no teu dispositivo"</string>
diff --git a/res-product/values-gu/strings.xml b/res-product/values-gu/strings.xml
index 5f9669a..d63a47d 100644
--- a/res-product/values-gu/strings.xml
+++ b/res-product/values-gu/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પિન જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પિન તેને સુરક્ષિત રાખે છે."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પૅટર્ન જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પૅટર્ન તેને સુરક્ષિત રાખે છે."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પાસવર્ડ જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પાસવર્ડ તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પિન જરૂરી છે.\n\nજો તમારું ટૅબ્લેટ ખોવાઈ જાય કે ચોરાઈ જાય, તો પિન તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પૅટર્ન જરૂરી છે.\n\nજો તમારું ટૅબ્લેટ ખોવાઈ જાય કે ચોરાઈ જાય, તો પૅટર્ન તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પાસવર્ડ જરૂરી છે.\n\nજો તમારું ટૅબ્લેટ ખોવાઈ જાય કે ચોરાઈ જાય, તો પાસવર્ડ તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પિન જરૂરી છે.\n\nજો તમારું ડિવાઇસ ખોવાઈ જાય કે ચોરાઈ જાય, તો પિન તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પૅટર્ન જરૂરી છે.\n\nજો તમારું ડિવાઇસ ખોવાઈ જાય કે ચોરાઈ જાય, તો પૅટર્ન તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પાસવર્ડ જરૂરી છે.\n\nજો તમારું ડિવાઇસ ખોવાઈ જાય કે ચોરાઈ જાય, તો પાસવર્ડ તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પિન જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પિન તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પૅટર્ન જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પૅટર્ન તેને સુરક્ષિત રાખે છે."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પાસવર્ડ જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પાસવર્ડ તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પિન જરૂરી છે.\n\nજો તમારું ટૅબ્લેટ ખોવાઈ જાય કે ચોરાઈ જાય, તો પિન તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પૅટર્ન જરૂરી છે.\n\nજો તમારું ટૅબ્લેટ ખોવાઈ જાય કે ચોરાઈ જાય, તો પૅટર્ન તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પાસવર્ડ જરૂરી છે.\n\nજો તમારું ટૅબ્લેટ ખોવાઈ જાય કે ચોરાઈ જાય, તો પાસવર્ડ તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પિન જરૂરી છે.\n\nજો તમારું ડિવાઇસ ખોવાઈ જાય કે ચોરાઈ જાય, તો પિન તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પૅટર્ન જરૂરી છે.\n\nજો તમારું ડિવાઇસ ખોવાઈ જાય કે ચોરાઈ જાય, તો પૅટર્ન તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પાસવર્ડ જરૂરી છે.\n\nજો તમારું ડિવાઇસ ખોવાઈ જાય કે ચોરાઈ જાય, તો પાસવર્ડ તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પિન જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પિન તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પૅટર્ન જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પૅટર્ન તેને સુરક્ષિત રાખે છે."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ફિંગરપ્રિન્ટ અનલૉક અને ફેસ અનલૉકની સુવિધાનું સેટઅપ કરવા માટે પાસવર્ડ જરૂરી છે.\n\nજો તમારો ફોન ખોવાઈ જાય કે ચોરાઈ જાય, તો પાસવર્ડ તેને સુરક્ષિત રાખે છે."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"આ તમારા ફોન પર સ્ટોર કરવામાં આવેલી ફિંગરપ્રિન્ટની છબીઓ અને \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' સાથે સંકળાયેલા મૉડલને ડિલીટ કરે છે"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"આ તમારા ટૅબ્લેટ પર સ્ટોર કરવામાં આવેલી ફિંગરપ્રિન્ટની છબીઓ અને \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' સાથે સંકળાયેલા મૉડલને ડિલીટ કરે છે"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"આ તમારા ડિવાઇસ પર સ્ટોર કરવામાં આવેલી ફિંગરપ્રિન્ટ અને \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' સાથે સંકળાયેલા મૉડલને ડિલીટ કરે છે"</string>
diff --git a/res-product/values-hi/strings.xml b/res-product/values-hi/strings.xml
index bbcb76e..c0bdfe4 100644
--- a/res-product/values-hi/strings.xml
+++ b/res-product/values-hi/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पिन की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पिन आपके फ़ोन की सुरक्षा करता है."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पैटर्न की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पैटर्न आपके फ़ोन की सुरक्षा करता है."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पासवर्ड की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पासवर्ड आपके फ़ोन की सुरक्षा करता है."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पिन की ज़रूरत है.\n\nअगर आपका टैबलेट खो जाता है या चोरी हो जाता है, तो पिन आपके टैबलेट की सुरक्षा करता है."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पैटर्न की ज़रूरत है.\n\nअगर आपका टैबलेट खो जाता है या चोरी हो जाता है, तो पैटर्न आपके टैबलेट की सुरक्षा करता है."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पासवर्ड की ज़रूरत है.\n\nअगर आपका टैबलेट खो जाता है या चोरी हो जाता है, तो पासवर्ड आपके टैबलेट की सुरक्षा करता है."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पिन की ज़रूरत है.\n\nअगर आपका डिवाइस खो जाता है या चोरी हो जाता है, तो पिन आपके डिवाइस की सुरक्षा करता है."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पैटर्न की ज़रूरत है.\n\nअगर आपका डिवाइस खो जाता है या चोरी हो जाता है, तो पैटर्न आपके डिवाइस की सुरक्षा करता है."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पासवर्ड की ज़रूरत है.\n\nअगर आपका डिवाइस खो जाता है या चोरी हो जाता है, तो पासवर्ड आपके डिवाइस की सुरक्षा करता है."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पिन की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पिन आपके फ़ोन की सुरक्षा करता है."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पैटर्न की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पैटर्न आपके फ़ोन की सुरक्षा करता है."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप करने के लिए, पासवर्ड की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पासवर्ड आपके फ़ोन की सुरक्षा करता है."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पिन की ज़रूरत है.\n\nअगर आपका टैबलेट खो जाता है या चोरी हो जाता है, तो पिन आपके टैबलेट को सुरक्षित रखता है."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पैटर्न की ज़रूरत है.\n\nअगर आपका टैबलेट खो जाता है या चोरी हो जाता है, तो पैटर्न आपके टैबलेट को सुरक्षित रखता है."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पासवर्ड की ज़रूरत है.\n\nअगर आपका टैबलेट खो जाता है या चोरी हो जाता है, तो पासवर्ड आपके टैबलेट को सुरक्षित रखता है."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पिन की ज़रूरत है.\n\nअगर आपका डिवाइस खो जाता है या चोरी हो जाता है, तो पिन आपके डिवाइस को सुरक्षित रखता है."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पैटर्न की ज़रूरत है.\n\nअगर आपका डिवाइस खो जाता है या चोरी हो जाता है, तो पैटर्न आपके डिवाइस को सुरक्षित रखता है."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पासवर्ड की ज़रूरत है.\n\nअगर आपका डिवाइस खो जाता है या चोरी हो जाता है, तो पासवर्ड आपके डिवाइस को सुरक्षित रखता है."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पिन की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पिन आपके फ़ोन को सुरक्षित रखता है."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"फ़िंगरप्रिंट अनलॉकऔर फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पैटर्न की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पैटर्न आपके फ़ोन को सुरक्षित रखता है."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"फ़िंगरप्रिंट अनलॉक और फ़ेस अनलॉक की सुविधा सेट अप करने के लिए, पासवर्ड की ज़रूरत है.\n\nअगर आपका फ़ोन खो जाता है या चोरी हो जाता है, तो पासवर्ड आपके फ़ोन को सुरक्षित रखता है."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ऐसा करने से, आपके फ़ोन पर सेव किए गए \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' से जुड़े फ़िंगरप्रिंट की इमेज और मॉडल मिट जाएंगे"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ऐसा करने से, आपके टैबलेट पर मौजूद \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' से जुड़ी फ़िंगरप्रिंट की इमेज और मॉडल मिट जाएंगे"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ऐसा करने से, आपके डिवाइस पर मौजूद <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> से जुड़ी फ़िंगरप्रिंट की इमेज और मॉडल मिट जाएंगे"</string>
diff --git a/res-product/values-hr/strings.xml b/res-product/values-hr/strings.xml
index 3ba5772..c7aa22d 100644
--- a/res-product/values-hr/strings.xml
+++ b/res-product/values-hr/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Za postavljanje otključavanja licem potreban je PIN.\n\nPIN štiti telefon u slučaju gubitka ili krađe."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Za postavljanje otključavanja licem potreban je uzorak.\n\nUzorak štiti telefon u slučaju gubitka ili krađe."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Za postavljanje otključavanja licem potrebna je zaporka.\n\nZaporka štiti telefon u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potreban je PIN.\n\nPIN štiti tablet u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potreban je uzorak.\n\nUzorak štiti tablet u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potrebna je zaporka.\n\nZaporka štiti tablet u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potreban je PIN.\n\nPIN štiti uređaj u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potreban je uzorak.\n\nUzorak štiti uređaj u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potrebna je zaporka.\n\nZaporka štiti uređaj u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potreban je PIN.\n\nPIN štiti telefon u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potreban je uzorak.\n\nUzorak štiti telefon u slučaju gubitka ili krađe."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Za postavljanje otključavanja licem ili otključavanja otiskom prsta potrebna je zaporka.\n\nZaporka štiti telefon u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potreban je PIN.\n\nPIN štiti tablet u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potreban je uzorak.\n\nUzorak štiti tablet u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potrebna je zaporka.\n\nZaporka štiti tablet u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potreban je PIN.\n\nPIN štiti uređaj u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potreban je uzorak.\n\nUzorak štiti uređaj u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potrebna je zaporka.\n\nZaporka štiti uređaj u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potreban je PIN.\n\nPIN štiti telefon u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potreban je uzorak.\n\nUzorak štiti telefon u slučaju gubitka ili krađe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Za postavljanje otključavanja otiskom prsta ili otključavanja licem potrebna je zaporka.\n\nZaporka štiti telefon u slučaju gubitka ili krađe."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Time se brišu slike i model otiska prsta povezani s otiskom prsta <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> koji su pohranjeni na vašem telefonu"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Time se brišu slike i model otiska prsta povezani s otiskom prsta <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> koji su pohranjeni na vašem tabletu"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Time se brišu slike i model otiska prsta povezani s otiskom prsta <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> koji su pohranjeni na vašem uređaju"</string>
diff --git a/res-product/values-hu/strings.xml b/res-product/values-hu/strings.xml
index ae44815..68b09ea 100644
--- a/res-product/values-hu/strings.xml
+++ b/res-product/values-hu/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Az eszköz védelmi funkcióit nem lehet bekapcsolni. Nem fogja tudni megakadályozni, hogy mások használják a táblagépet, ha elveszett vagy ellopták."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Az eszköz védelmi funkcióit nem lehet bekapcsolni. Nem fogja tudni megakadályozni, hogy mások használják az eszközt, ha elveszett vagy ellopták."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Az eszköz védelmi funkcióit nem lehet bekapcsolni. Nem fogja tudni megakadályozni, hogy mások használják a telefont, ha elveszett vagy ellopták."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Az ujjlenyomat-érzékelő a bekapcsológombon található. Ez a kiemelkedő hangerőgomb melletti lapos gomb a táblagép szélén."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Az ujjlenyomat-érzékelő a bekapcsológombon található. Ez a kiemelkedő hangerőgomb melletti lapos gomb az eszköz szélén."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Az ujjlenyomat-érzékelő a bekapcsológombon található. Ez a kiemelkedő hangerőgomb melletti lapos gomb a telefon szélén."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Az ujjlenyomat-érzékelő a bekapcsológombon található. Ez a kiemelkedő hangerőgomb melletti lapos gomb a táblagép valamelyik oldalán."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Az ujjlenyomat-érzékelő a bekapcsológombon található. Ez a kiemelkedő hangerőgomb melletti lapos gomb az eszköz valamelyik oldalán."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Az ujjlenyomat-érzékelő a bekapcsológombon található. Ez a kiemelkedő hangerőgomb melletti lapos gomb a telefon valamelyik oldalán."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Mostantól használhatja ujjlenyomatát táblagépe zárolásának feloldásához vagy személyazonossága igazolásához (például amikor alkalmazásokba jelentkezik be, vagy vásárlást hagy jóvá)."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Mostantól használhatja ujjlenyomatát eszköze zárolásának feloldásához vagy személyazonossága igazolásához (például amikor alkalmazásokba jelentkezik be, vagy vásárlást hagy jóvá)."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Mostantól használhatja ujjlenyomatát telefonja zárolásának feloldásához vagy személyazonossága igazolásához (például amikor alkalmazásokba jelentkezik be, vagy vásárlást hagy jóvá)."</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"PIN-kód szükséges az Arcalapú feloldás beállításához.\n\nPIN-kód védi a telefont, ha elvész vagy ellopják."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Minta szükséges az Arcalapú feloldás beállításához.\n\nMinta védi a telefont, ha elvész vagy ellopják."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Jelszó szükséges az Arcalapú feloldás beállításához.\n\nJelszó védi a telefont, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"PIN-kód szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nPIN-kód védi a táblagépet, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Minta szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nMinta védi a táblagépet, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Jelszó szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nJelszó védi a táblagépet, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"PIN-kód szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nPIN-kód védi az eszközt, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Minta szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nMinta védi az eszközt, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Jelszó szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nJelszó védi az eszközt, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"PIN-kód szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nA PIN-kód megvédi a telefont, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Minta szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nA minta megvédi a telefont, ha elvész vagy ellopják."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Jelszó szükséges az Arcalapú feloldás és a Feloldás ujjlenyomattal funkció beállításához.\n\nJelszó védi a telefont, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"PIN-kód szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nPIN-kód védi a táblagépet, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Minta szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nMinta védi a táblagépet, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Jelszó szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nJelszó védi a táblagépet, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"PIN-kód szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nPIN-kód védi az eszközt, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Minta szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nMinta védi az eszközt, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Jelszó szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nJelszó védi az eszközt, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"PIN-kód szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nPIN-kód védi a telefont, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Minta szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nMinta védi a telefont, ha elvész vagy ellopják."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Jelszó szükséges a Feloldás ujjlenyomattal és az Arcalapú feloldás funkció beállításához.\n\nJelszó védi a telefont, ha elvész vagy ellopják."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Ezzel törli a telefonján tárolt „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>” ujjlenyomattal kapcsolatos ujjlenyomatképeket és -modellt."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Ezzel törli a táblagépén tárolt „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>” ujjlenyomattal kapcsolatos ujjlenyomatképeket és -modellt"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ezzel törli az eszközén tárolt „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>” ujjlenyomattal kapcsolatos ujjlenyomatképeket és -modellt"</string>
diff --git a/res-product/values-hy/strings.xml b/res-product/values-hy/strings.xml
index b41bec4..802a45d 100644
--- a/res-product/values-hy/strings.xml
+++ b/res-product/values-hy/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Սարքի պաշտպանության գործառույթները չեն միացվելու: Դուք չեք կարողանա կանխել այլ անձանց կողմից այս պլանշետի օգտագործումը, եթե այն կորչի կամ գողանան:"</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Սարքի պաշտպանության գործառույթները չեն միացվելու: Դուք չեք կարողանա կանխել այլ անձանց կողմից այս սարքի օգտագործումը, եթե այն կորչի կամ գողանան:"</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Սարքի պաշտպանության գործառույթները չեն միացվելու: Դուք չեք կարողանա կանխել այլ անձանց կողմից այս հեռախոսի օգտագործումը, եթե այն կորչի կամ գողանան:"</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Մատնահետքերի սկաները սնուցման կոճակի վրա է։ Այն հարթ կոճակ է ձայնի ուժգնության ուռուցիկ կոճակի կողքին՝ պլանշետի կողային մասում։"</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Մատնահետքերի սկաները սնուցման կոճակի վրա է։ Այն հարթ կոճակ է ձայնի ուժգնության ուռուցիկ կոճակի կողքին՝ սարքի կողային մասում։"</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Մատնահետքերի սկաները սնուցման կոճակի վրա է։ Այն հարթ կոճակ է ձայնի ուժգնության ուռուցիկ կոճակի կողքին՝ հեռախոսի կողային մասում։"</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Մատնահետքերի սկաները սնուցման կոճակի վրա է։ Այն հարթ կոճակ է ձայնի ուժգնության ուռուցիկ կոճակի կողքին՝ պլանշետի եզրին։"</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Մատնահետքերի սկաները սնուցման կոճակի վրա է։ Այն հարթ կոճակ է ձայնի ուժգնության ուռուցիկ կոճակի կողքին՝ սարքի եզրին։"</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Մատնահետքերի սկաները սնուցման կոճակի վրա է։ Այն հարթ կոճակ է ձայնի ուժգնության ուռուցիկ կոճակի կողքին՝ հեռախոսի եզրին։"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Այժմ դուք կարող եք օգտագործել ձեր մատնահետքը՝ պլանշետն ապակողպելու կամ ձեր ինքնությունը հաստատելու համար (օր․՝ հավելվածներ մտնելիս կամ գնումներ հաստատելիս)"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Այժմ կարող եք օգտագործել ձեր մատնահետքը՝ սարքն ապակողպելու կամ ձեր ինքնությունը հաստատելու համար, օր․՝ հավելվածներ մտնելիս կամ գնումներ հաստատելիս"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Այժմ կարող եք օգտագործել ձեր մատնահետքը՝ հեռախոսն ապակողպելու կամ ձեր ինքնությունը հաստատելու համար, օր․՝ հավելվածներ մտնելիս կամ գնումներ հաստատելիս"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Դեմքով ապակողպումը կարգավորելու համար անհրաժեշտ է PIN կոդ։\n\nPIN կոդի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Դեմքով ապակողպումը կարգավորելու համար անհրաժեշտ է նախշ։\n\nՆախշի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Դեմքով ապակողպումը կարգավորելու համար անհրաժեշտ է գաղտնաբառ։\n\nԳաղտնաբառի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է PIN կոդ։\n\nPIN կոդի միջոցով դուք կարող եք պաշտպանել պլանշետը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է նախշ։\n\nՆախշի միջոցով դուք կարող եք պաշտպանել պլանշետը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է գաղտնաբառ։\n\nԳաղտնաբառի միջոցով դուք կարող եք պաշտպանել պլանշետը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է PIN կոդ։\n\nPIN կոդի միջոցով դուք կարող եք պաշտպանել սարքը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է նախշ։\n\nՆախշի միջոցով դուք կարող եք պաշտպանել սարքը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է գաղտնաբառ։\n\nԳաղտնաբառի միջոցով դուք կարող եք պաշտպանել սարքը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է PIN կոդ։\n\nPIN կոդի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է նախշ։\n\nՆախշի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է գաղտնաբառ։\n\nԳաղտնաբառի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է PIN կոդ։\n\nPIN կոդի միջոցով դուք կարող եք պաշտպանել պլանշետը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է նախշ։\n\nՆախշի միջոցով դուք կարող եք պաշտպանել պլանշետը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է գաղտնաբառ։\n\nԳաղտնաբառի միջոցով դուք կարող եք պաշտպանել պլանշետը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է PIN կոդ։\n\nPIN կոդի միջոցով դուք կարող եք պաշտպանել սարքը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է նախշ։\n\nՆախշի միջոցով դուք կարող եք պաշտպանել սարքը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է գաղտնաբառ։\n\nԳաղտնաբառի միջոցով դուք կարող եք պաշտպանել սարքը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է PIN կոդ։\n\nPIN կոդի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է նախշ։\n\nՆախշի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Դեմքով և մատնահետքով ապակողպումը կարգավորելու համար անհրաժեշտ է գաղտնաբառ։\n\nԳաղտնաբառի միջոցով դուք կարող եք պաշտպանել հեռախոսը, եթե այն կորչի կամ գողանան։"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"«<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» մատնահետքի հետ կապված պատկերներն ու նմուշը, որոնք պահված են ձեր հեռախոսում, կջնջվեն"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"«<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» մատնահետքի հետ կապված պատկերներն ու նմուշը, որոնք պահված են ձեր հեռախոսում, կջնջվեն"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"«<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» մատնահետքի պատկերներն ու նմուշը, որոնք պահված են ձեր սարքում, կջնջվեն"</string>
diff --git a/res-product/values-in/strings.xml b/res-product/values-in/strings.xml
index bbdc030..08981cb 100644
--- a/res-product/values-in/strings.xml
+++ b/res-product/values-in/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Perlu PIN untuk menyiapkan Buka dengan Wajah.\n\nPIN melindungi ponsel jika hilang atau dicuri."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Perlu pola untuk menyiapkan Buka dengan Wajah.\n\nPola melindungi ponsel jika hilang atau dicuri."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Perlu sandi untuk menyiapkan Buka dengan Wajah.\n\nSandi melindungi ponsel jika hilang atau dicuri."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Perlu PIN untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nPIN melindungi tablet jika hilang atau dicuri."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Perlu pola untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nPola melindungi tablet jika hilang atau dicuri."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Perlu sandi untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nSandi melindungi tablet jika hilang atau dicuri."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Perlu PIN untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nPIN melindungi perangkat jika hilang atau dicuri."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Perlu pola untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nPola melindungi perangkat jika hilang atau dicuri."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Perlu sandi untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nSandi melindungi perangkat jika hilang atau dicuri."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Perlu PIN untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nPIN melindungi ponsel jika hilang atau dicuri."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Perlu pola untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nPola melindungi ponsel jika hilang atau dicuri."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Perlu sandi untuk menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari.\n\nSandi melindungi ponsel jika hilang atau dicuri."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Memerlukan PIN untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nPIN melindungi tablet jika tablet hilang atau dicuri."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Memerlukan pola untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nPola melindungi tablet jika tablet hilang atau dicuri."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Memerlukan sandi untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nSandi melindungi tablet jika tablet hilang atau dicuri."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Memerlukan PIN untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nPIN melindungi perangkat jika perangkat hilang atau dicuri."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Memerlukan pola untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nPola melindungi perangkat jika perangkat hilang atau dicuri."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Memerlukan sandi untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nSandi melindungi perangkat jika perangkat hilang atau dicuri."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Memerlukan PIN untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nPIN melindungi ponsel jika ponsel hilang atau dicuri."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Memerlukan pola untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nPola melindungi ponsel jika ponsel hilang atau dicuri."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Memerlukan sandi untuk menyiapkan Buka dengan Sidik Jari dan Buka dengan Wajah.\n\nSandi melindungi ponsel jika ponsel hilang atau dicuri."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Tindakan ini akan menghapus gambar dan model sidik jari yang terkait dengan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' yang disimpan di ponsel Anda"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Tindakan ini akan menghapus gambar dan model sidik jari yang terkait dengan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' yang disimpan di tablet Anda"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Tindakan ini akan menghapus gambar dan model sidik jari yang terkait dengan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' yang disimpan di perangkat Anda"</string>
diff --git a/res-product/values-is/strings.xml b/res-product/values-is/strings.xml
index d6e8d4a..e39d5f2 100644
--- a/res-product/values-is/strings.xml
+++ b/res-product/values-is/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"PIN-númer er áskilið til að setja upp andlitskenni.\n\nPIN-númer verndar símann ef hann týnist eða ef honum er stolið."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Mynstur er áskilið til að setja upp andlitskenni.\n\nMynstur verndar símann ef hann týnist eða ef honum er stolið."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Aðgangsorð er áskilið til að setja upp andlitskenni.\n\nAðgangsorð verndar símann ef hann týnist eða ef honum er stolið."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"PIN-númer er áskilið til að setja upp andlits- og fingrafarskenni.\n\nPIN-númer verndar spjaldtölvuna ef hún týnist eða ef henni er stolið."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Mynstur er áskilið til að setja upp andlits- og fingrafarskenni.\n\nMynstur verndar spjaldtölvuna ef hún týnist eða ef henni er stolið."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Aðgangsorð er áskilið til að setja upp andlits- og fingrafarskenni.\n\nAðgangsorð verndar spjaldtölvuna ef hún týnist eða ef henni er stolið."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"PIN-númer er áskilið til að setja upp andlits- og fingrafarskenni.\n\nPIN-númer verndar tækið ef það týnist eða ef því er stolið."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Mynstur er áskilið til að setja upp andlits- og fingrafarskenni.\n\nMynstur verndar tækið ef það týnist eða ef því er stolið."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Aðgangsorð er áskilið til að setja upp andlits- og fingrafarskenni.\n\nAðgangsorð verndar tækið ef það týnist eða ef því er stolið."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"PIN-númer er áskilið til að setja upp andlits- og fingrafarskenni.\n\nPIN-númer verndar símann ef hann týnist eða ef honum er stolið."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Mynstur er áskilið til að setja upp andlits- og fingrafarskenni.\n\nMynstur verndar símann ef hann týnist eða ef honum er stolið."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Aðgangsorð er áskilið til að setja upp andlits- og fingrafarskenni.\n\nAðgangsorð verndar símann ef hann týnist eða ef honum er stolið."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"PIN-númers er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nPIN-númer verndar spjaldtölvuna ef hún týnist eða henni er stolið."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Mynsturs er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nMynstur verndar spjaldtölvuna ef hún týnist eða henni er stolið."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Aðgangsorðs er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nAðgangsorð verndar spjaldtölvuna ef hún týnist eða henni er stolið."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"PIN-númers er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nPIN-númer verndar tækið ef það týnist eða því er stolið."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Mynsturs er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nMynstur verndar tækið ef það týnist eða því er stolið."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Aðgangsorðs er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nAðgangsorð verndar tækið ef það týnist eða því er stolið."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"PIN-númers er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nPIN-númer verndar símann ef hann týnist eða honum er stolið."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Mynsturs er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nMynstur verndar símann ef hann týnist eða honum er stolið."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Aðgangsorðs er krafist fyrir uppsetningu á andlits- og fingrafarskenni.\n\nAðgangsorð verndar símann ef hann týnist eða honum er stolið."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Þetta eyðir fingrafaramyndum og -líkani sem tengist „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ og er vistað í símanum"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Þetta eyðir fingrafaramyndum og -líkani sem tengist „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ og er vistað í spjaldtölvunni"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Þetta eyðir fingrafaramyndum og -líkani sem tengjast „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ og eru vistuð í tækinu"</string>
diff --git a/res-product/values-it-feminine/strings.xml b/res-product/values-it-feminine/strings.xml
new file mode 100644
index 0000000..d7f3aa0
--- /dev/null
+++ b/res-product/values-it-feminine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"Sono presenti altre utenti su questo dispositivo.\n"</string>
+</resources>
diff --git a/res-product/values-it-masculine/strings.xml b/res-product/values-it-masculine/strings.xml
new file mode 100644
index 0000000..d4e98e4
--- /dev/null
+++ b/res-product/values-it-masculine/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"Sono presenti altri utenti su questo dispositivo.\n"</string>
+</resources>
diff --git a/res-product/values-it-neuter/strings.xml b/res-product/values-it-neuter/strings.xml
new file mode 100644
index 0000000..160a6d9
--- /dev/null
+++ b/res-product/values-it-neuter/strings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+  ~ Copyright (C) 2022 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"Sono presenti altrɜ utenti su questo dispositivo.\n"</string>
+</resources>
diff --git a/res-product/values-it/strings.xml b/res-product/values-it/strings.xml
index 56259a2..6864628 100644
--- a/res-product/values-it/strings.xml
+++ b/res-product/values-it/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"È necessario un PIN per configurare lo Sblocco con il Volto.\n\nIl PIN protegge il telefono se viene smarrito o rubato."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"È necessaria una sequenza per configurare lo Sblocco con il Volto.\n\nLa sequenza protegge il telefono se viene smarrito o rubato."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"È necessaria una password per configurare lo Sblocco con il Volto.\n\nLa password protegge il telefono se viene smarrito o rubato."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"È necessario un PIN per configurare lo Sblocco con il Volto e lo Sblocco con l\'Impronta.\n\nIl PIN protegge il tablet se viene smarrito o rubato."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"È necessaria una sequenza per configurare lo Sblocco con il Volto e lo Sblocco con l\'Impronta.\n\nLa sequenza protegge il tablet se viene smarrito o rubato."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"È necessaria una password per configurare lo Sblocco con il Volto e lo Sblocco con l\'Impronta.\n\nLa password protegge il tablet se viene smarrito o rubato."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"È necessario un PIN per configurare lo Sblocco con il Volto e con l\'impronta.\n\nIl PIN protegge il dispositivo se viene smarrito o rubato."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"È necessaria una sequenza per configurare lo Sblocco con il Volto e l\'Impronta.\n\nLa sequenza protegge il dispositivo se viene smarrito o rubato."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"È necessaria una password per configurare lo Sblocco con il Volto e lo Sblocco con l\'Impronta.\n\nLa password protegge il dispositivo se viene smarrito o rubato."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"È necessario un PIN per configurare lo Sblocco con il Volto e lo Sblocco con l\'Impronta.\n\nIl PIN protegge lo smartphone se viene smarrito o rubato."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"È necessaria una sequenza per configurare lo Sblocco con il Volto e l\'Impronta.\n\nLa sequenza protegge lo smartphone se viene smarrito o rubato."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"È necessaria una password per configurare lo Sblocco con il Volto e con l\'Impronta.\n\nLa password protegge lo smartphone se viene smarrito o rubato."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"È necessario un PIN per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nIl PIN protegge il tablet se viene smarrito o rubato."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"È necessaria una sequenza per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nLa sequenza protegge il tablet se viene smarrito o rubato."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"È necessaria una password per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nLa password protegge il tablet se viene smarrito o rubato."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"È necessario un PIN per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nIl PIN protegge il dispositivo se viene smarrito o rubato."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"È necessaria una sequenza per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nLa sequenza protegge il dispositivo se viene smarrito o rubato."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"È necessaria una password per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nLa password protegge il dispositivo se viene smarrito o rubato."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"È necessario un PIN per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nIl PIN protegge lo smartphone se viene smarrito o rubato."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"È necessaria una sequenza per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nLa sequenza protegge lo smartphone se viene smarrito o rubato."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"È necessaria una password per configurare lo Sblocco con l\'Impronta e con il Volto.\n\nLa password protegge lo smartphone se viene smarrito o rubato."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Vengono eliminati il modello e le immagini dell\'impronta associati a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" e memorizzati sullo smartphone"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Vengono eliminati il modello e le immagini dell\'impronta associati a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" e memorizzati sul tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Vengono eliminati il modello e le immagini dell\'impronta associati a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" e memorizzati sul dispositivo"</string>
diff --git a/res-product/values-iw/strings.xml b/res-product/values-iw/strings.xml
index 5c285e2..ff829b9 100644
--- a/res-product/values-iw/strings.xml
+++ b/res-product/values-iw/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"תכונות ההגנה על המכשיר לא יופעלו. לא תהיה לך אפשרות למנוע מאנשים אחרים להשתמש בטאבלט אם הוא יאבד או ייגנב."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"תכונות ההגנה על המכשיר לא יופעלו. לא תהיה לך אפשרות למנוע מאנשים אחרים להשתמש במכשיר אם הוא יאבד או ייגנב."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"תכונות ההגנה על המכשיר לא יופעלו. לא תהיה לך אפשרות למנוע מאנשים אחרים להשתמש בטלפון אם הוא יאבד או ייגנב."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"חיישן טביעת האצבע נמצא על לחצן ההפעלה. זה הלחצן השטוח ליד הלחצן הבולט של עוצמת הקול בשולי הטאבלט."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"חיישן טביעת האצבע נמצא על לחצן ההפעלה. זה הלחצן השטוח ליד הלחצן הבולט של עוצמת הקול בשולי המכשיר."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"חיישן טביעת האצבע נמצא על לחצן ההפעלה. זה הלחצן השטוח ליד הלחצן הבולט של עוצמת הקול בשולי הטלפון."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"חיישן טביעת האצבע נמצא על לחצן ההפעלה. זה הלחצן השטוח ליד הלחצן הבולט של עוצמת הקול בקצה הטאבלט."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"חיישן טביעת האצבע נמצא על לחצן ההפעלה. זה הלחצן השטוח ליד הלחצן הבולט של עוצמת הקול בקצה המכשיר."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"חיישן טביעת האצבע נמצא על לחצן ההפעלה. זה הלחצן השטוח ליד הלחצן הבולט של עוצמת הקול בקצה הטלפון."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"עכשיו אפשר להשתמש בטביעת האצבע כדי לבטל את נעילת הטאבלט או כדי לאמת את הזהות, למשל כשנכנסים לחשבון באפליקציות או כשמאשרים רכישה"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"עכשיו אפשר להשתמש בטביעת האצבע כדי לבטל את נעילת המכשיר או כדי לאמת את הזהות, למשל כשנכנסים לחשבון באפליקציות או כשמאשרים רכישה"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"עכשיו אפשר להשתמש בטביעת האצבע כדי לבטל את נעילת הטלפון או כדי לאמת את הזהות, למשל כשנכנסים לחשבון באפליקציות או כשמאשרים רכישה"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"כדי להגדיר את התכונה \'פתיחה ע\"י זיהוי הפנים\', נדרש קוד אימות.\n\nקוד האימות מגן על הטלפון במקרים של אובדן או גניבה."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"כדי להגדיר את התכונה \'פתיחה ע\"י זיהוי הפנים\', נדרש קו ביטול נעילה.\n\nקו ביטול הנעילה מגן על הטלפון במקרים של אובדן או גניבה."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"כדי להגדיר את התכונה \'פתיחה ע\"י זיהוי הפנים\', נדרשת סיסמה.\n\nהסיסמה מגינה על הטלפון במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרש קוד אימות.\n\nקוד האימות מגן על הטאבלט במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרש קו ביטול נעילה.\n\nקו ביטול הנעילה מגן על הטאבלט במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרשת סיסמה.\n\nהסיסמה מגינה על הטאבלט במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרש קוד אימות.\n\nקוד האימות מגן על המכשיר במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרש קו ביטול נעילה.\n\nקו ביטול הנעילה מגן על המכשיר במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרשת סיסמה.\n\nהסיסמה מגינה על המכשיר במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרש קוד אימות.\n\nקוד האימות מגן על הטלפון במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרש קו ביטול נעילה.\n\nקו ביטול הנעילה מגן על הטלפון במקרים של אובדן או גניבה."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"כדי להגדיר את התכונות \'פתיחה ע\"י זיהוי הפנים\' ו\'ביטול הנעילה בטביעת אצבע\', נדרשת סיסמה.\n\nהסיסמה מגינה על הטלפון במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרש קוד אימות.\n\nקוד האימות מגן על הטאבלט במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרש קו ביטול נעילה.\n\nקו ביטול הנעילה מגן על הטאבלט במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרשת סיסמה.\n\nהסיסמה מגינה על הטאבלט במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרש קוד אימות.\n\nקוד האימות מגן על המכשיר במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרש קו ביטול נעילה.\n\nקו ביטול הנעילה מגן על המכשיר במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרשת סיסמה.\n\nהסיסמה מגינה על המכשיר במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרש קוד אימות.\n\nקוד האימות מגן על הטלפון במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרש קו ביטול נעילה.\n\nקו ביטול הנעילה מגן על הטלפון במקרים של אובדן או גניבה."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"כדי להגדיר את התכונות \'פתיחה בזיהוי פנים\' ו\'פתיחה בטביעת אצבע\', נדרשת סיסמה.\n\nהסיסמה מגינה על הטלפון במקרים של אובדן או גניבה."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"הפעולה הזו מוחקת את התבנית והתמונות של טביעת האצבע המשויכות אל <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>, שמאוחסנות בטלפון שלך"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"הפעולה הזו מוחקת את התבנית והתמונות של טביעת האצבע המשויכות אל <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>, שמאוחסנות בטאבלט שלך"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"הפעולה הזו מוחקת את התבנית והתמונות של טביעת האצבע שמשויכות אל <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> ושמורה במכשיר שלך"</string>
diff --git a/res-product/values-ja/strings.xml b/res-product/values-ja/strings.xml
index beefc63..de152d3 100644
--- a/res-product/values-ja/strings.xml
+++ b/res-product/values-ja/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"デバイス保護機能は ON になりません。このタブレットの紛失や盗難時に、他人に使用されるのを阻止することはできません。"</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"デバイス保護機能は ON になりません。このデバイスの紛失や盗難時に、他人に使用されるのを阻止することはできません。"</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"デバイス保護機能は ON になりません。このスマートフォンの紛失や盗難時に、他人に使用されるのを阻止することはできません。"</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"指紋認証センサーは電源ボタンに内蔵されています。タブレットの端にある盛り上がった音量ボタンの横のフラットなボタンです。"</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"指紋認証センサーは電源ボタンに内蔵されています。デバイスの端にある盛り上がった音量ボタンの横のフラットなボタンです。"</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"指紋認証センサーは電源ボタンに内蔵されています。スマートフォンの端にある盛り上がった音量ボタンの横のフラットなボタンです。"</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"指紋認証センサーは電源ボタンに内蔵されています。タブレット縁の盛り上がった音量ボタンの横にあるフラットなボタンです。"</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"指紋認証センサーは電源ボタンに内蔵されています。デバイス縁の盛り上がった音量ボタンの横にあるフラットなボタンです。"</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"指紋認証センサーは電源ボタンに内蔵されています。スマートフォン縁の盛り上がった音量ボタンの横にあるフラットなボタンです。"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"指紋認証を使用して、タブレットのロック解除や本人確認(アプリへのログインや購入の承認など)を行えるようになりました"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"指紋認証を使用して、デバイスのロック解除や本人確認(アプリへのログインや購入の承認など)を行えるようになりました"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"指紋認証を使用して、スマートフォンのロック解除や本人確認(アプリへのログインや購入の承認など)を行えるようになりました"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"顔認証を設定するには PIN が必要です。\n\nPIN は紛失・盗難時にスマートフォンを保護します。"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"顔認証を設定するにはパターンが必要です。\n\nパターンは紛失・盗難時にスマートフォンを保護します。"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"顔認証を設定するにはパスワードが必要です。\n\nパスワードは、紛失したり盗難に遭ったりした場合にスマートフォンを保護するものです。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"顔認証と指紋認証を設定するには PIN が必要です。\n\nPIN は紛失・盗難時にタブレットを保護します。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"顔認証と指紋認証を設定するにはパターンが必要です。\n\nパターンは紛失・盗難時にタブレットを保護します。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"顔認証と指紋認証を設定するにはパスワードが必要です。\n\nパスワードは、紛失したり盗難に遭ったりした場合にタブレットを保護するものです。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"顔認証と指紋認証を設定するには PIN が必要です。\n\nPIN は紛失・盗難時にデバイスを保護します。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"顔認証と指紋認証を設定するにはパターンが必要です。\n\nパターンは紛失・盗難時にデバイスを保護します。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"顔認証と指紋認証を設定するにはパスワードが必要です。\n\nパスワードは、紛失したり盗難に遭ったりした場合にデバイスを保護するものです。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"顔認証と指紋認証を設定するには PIN が必要です。\n\nPIN は紛失・盗難時にスマートフォンを保護します。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"顔認証と指紋認証を設定するにはパターンが必要です。\n\nパターンは紛失・盗難時にスマートフォンを保護します。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"顔認証と指紋認証を設定するにはパスワードが必要です。\n\nパスワードは、紛失したり盗難に遭ったりした場合にスマートフォンを保護するものです。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"指紋認証と顔認証を設定するには PIN が必要です。\n\nPIN は紛失・盗難時にタブレットを保護します。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"指紋認証と顔認証を設定するにはパターンが必要です。\n\nパターンは紛失・盗難時にタブレットを保護します。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"指紋認証と顔認証を設定するにはパスワードが必要です。\n\nパスワードは、紛失したり盗難に遭ったりした場合にタブレットを保護するものです。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"指紋認証と顔認証を設定するには PIN が必要です。\n\nPIN は紛失・盗難時にデバイスを保護します。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"指紋認証と顔認証を設定するにはパターンが必要です。\n\nパターンは紛失・盗難時にデバイスを保護します。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"指紋認証と顔認証を設定するにはパスワードが必要です。\n\nパスワードは、紛失したり盗難に遭ったりした場合にデバイスを保護するものです。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"指紋認証と顔認証を設定するには PIN が必要です。\n\nPIN は紛失・盗難時にスマートフォンを保護します。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"指紋認証と顔認証を設定するにはパターンが必要です。\n\nパターンは紛失・盗難時にスマートフォンを保護します。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"指紋認証と顔認証を設定するにはパスワードが必要です。\n\nパスワードは、紛失したり盗難に遭ったりした場合にスマートフォンを保護するものです。"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」に関連付けられた指紋の画像とモデルがスマートフォンから削除されます"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」に関連付けられた指紋の画像とモデルがタブレットから削除されます"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」に関連付けられた指紋の画像とモデルがデバイスから削除されます"</string>
diff --git a/res-product/values-ka/strings.xml b/res-product/values-ka/strings.xml
index 764d445..d87d5ad 100644
--- a/res-product/values-ka/strings.xml
+++ b/res-product/values-ka/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"სახით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"სახით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"სახით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტაბლეტს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტაბლეტს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტაბლეტს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს მოწყობილობას, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს მოწყობილობას, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს მოწყობილობას, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტელეფონს, თუ ის დაიკარგება ან მას მოგპარავენ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტაბლეტს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს მოწყობილობას, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"სახით და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა PIN-კოდი.\n\nPIN-კოდი დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა ნიმუში.\n\nნიმუში დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"სახითა და ანაბეჭდით განბლოკვის დასაყენებლად საჭიროა პაროლი.\n\nპაროლი დაიცავს ტელეფონს, თუ მას დაკარგავთ ან მოგპარავენ."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ამ მოქმედებით წაიშლება თითის ანაბეჭდის სურათები და თქვენს ტელეფონზე შენახული მოდელები, რომლებიც ასოცირებულია „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“-თან"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ამ მოქმედებით წაიშლება თითის ანაბეჭდის სურათები და თქვენს ტაბლეტზე შენახული მოდელები, რომლებიც ასოცირებულია „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“-თან"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ამ მოქმედებით წაიშლება თითის ანაბეჭდის სურათები და თქვენს მოწყობილობაზე შენახული მოდელები, რომლებიც ასოცირებულია „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“-თან"</string>
diff --git a/res-product/values-kk/strings.xml b/res-product/values-kk/strings.xml
index bfd8f6b..d3e2027 100644
--- a/res-product/values-kk/strings.xml
+++ b/res-product/values-kk/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Бет тану функциясын реттеу үшін PIN коды қажет.\n\nТелефон жоғалған немесе ұрланған жағдайда, PIN коды оны қорғайды."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Бет тану функциясын реттеу үшін өрнек қажет.\n\nТелефон жоғалған немесе ұрланған жағдайда, өрнек оны қорғайды."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Бет тану функциясын реттеу үшін құпия сөз қажет.\n\nТелефон жоғалған немесе ұрланған жағдайда, құпия сөз оны қорғайды."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін PIN коды қажет.\n\nПланшет жоғалған немесе ұрланған жағдайда, PIN коды оны қорғайды."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін өрнек қажет.\n\nПланшет жоғалған немесе ұрланған жағдайда, өрнек оны қорғайды."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін құпия сөз қажет.\n\nПланшет жоғалған немесе ұрланған жағдайда, құпия сөз оны қорғайды."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін PIN коды қажет.\n\nҚұрылғы жоғалған немесе ұрланған жағдайда, PIN коды оны қорғайды."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін өрнек қажет.\n\nҚұрылғы жоғалған немесе ұрланған жағдайда, өрнек оны қорғайды."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін құпия сөз қажет.\n\nҚұрылғы жоғалған немесе ұрланған жағдайда, құпия сөз оны қорғайды."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін PIN коды қажет.\n\nТелефон жоғалған немесе ұрланған жағдайда, PIN коды оны қорғайды."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін өрнек қажет.\n\nТелефон жоғалған немесе ұрланған жағдайда, өрнек оны қорғайды."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Бет тану және саусақ ізімен ашу функциясын реттеу үшін құпия сөз қажет.\n\nТелефон жоғалған немесе ұрланған жағдайда, құпия сөз оны қорғайды."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін PIN коды керек.\n\nПланшет жоғалған немесе ұрланған жағдайда, PIN коды оны қорғайды."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін өрнек керек.\n\nПланшет жоғалған немесе ұрланған жағдайда, өрнек оны қорғайды."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін құпия сөз керек.\n\nПланшет жоғалған немесе ұрланған жағдайда, құпия сөз оны қорғайды."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін PIN коды керек.\n\nҚұрылғы жоғалған немесе ұрланған жағдайда, PIN коды оны қорғайды."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін өрнек керек.\n\nҚұрылғы жоғалған немесе ұрланған жағдайда, өрнек оны қорғайды."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін құпия сөз керек.\n\nҚұрылғы жоғалған немесе ұрланған жағдайда, құпия сөз оны қорғайды."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін PIN коды керек.\n\nТелефон жоғалған немесе ұрланған жағдайда, PIN коды оны қорғайды."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін өрнек керек.\n\nТелефон жоғалған немесе ұрланған жағдайда, өрнек оны қорғайды."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Саусақ ізімен ашу және Бет тану функциясын реттеу үшін құпия сөз керек.\n\nТелефон жоғалған немесе ұрланған жағдайда, құпия сөз оны қорғайды."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"\"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ізінің телефонда сақталған суреттері мен үлгісі жойылады"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"\"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ізінің планшетте сақталған суреттері мен үлгісі жойылады"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"\"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ізінің құрылғыда сақталған суреттері мен үлгісі жойылады"</string>
diff --git a/res-product/values-km/strings.xml b/res-product/values-km/strings.xml
index 6190458..9c45736 100644
--- a/res-product/values-km/strings.xml
+++ b/res-product/values-km/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"តម្រូវឱ្យមាន​កូដ PIN ដើម្បីរៀបចំ​ការដោះសោ​តាមទម្រង់មុខ។\n\nកូដ PIN ​ការពារ​ទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបាន​គេលួច។"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"តម្រូវឱ្យមាន​លំនាំ ដើម្បីរៀបចំ​ការដោះសោ​តាមទម្រង់មុខ។\n\nលំនាំ​ការពារ​ទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបាន​គេលួច។"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"តម្រូវឱ្យមាន​ពាក្យសម្ងាត់ ដើម្បីរៀបចំ​ការដោះសោ​តាមទម្រង់មុខ។\n\nពាក្យសម្ងាត់​ការពារ​ទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបាន​គេលួច។"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"តម្រូវឱ្យមាន​កូដ PIN ដើម្បីរៀបចំ​ការដោះ​សោ​ដោយស្កេន​មុខ និង​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ។\n\nកូដ PIN ​ការពារ​ថេប្លេត ប្រសិនបើ​បាត់ថេប្លេត ឬត្រូវបាន​គេលួច។"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"តម្រូវឱ្យមាន​លំនាំ ​ដើម្បីរៀបចំ​ការដោះសោ​តាមទម្រង់មុខ និង​ការដោះសោដោយប្រើ​ស្នាមម្រាមដៃ។\n\nលំនាំ​ការពារ​ថេប្លេត ប្រសិនបើ​បាត់ថេប្លេត ឬត្រូវបាន​គេលួច។"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"តម្រូវឱ្យមាន​ពាក្យសម្ងាត់ ដើម្បីរៀបចំ​ការដោះសោ​តាមទម្រង់មុខ និង​ការដោះសោដោយប្រើ​ស្នាមម្រាមដៃ។\n\nពាក្យសម្ងាត់​ការពារថេប្លេត ប្រសិនបើ​បាត់ថេប្លេត ឬត្រូវបានគេលួច។"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"តម្រូវឱ្យមាន​កូដ PIN ដើម្បីរៀបចំ​ការដោះ​សោ​ដោយស្កេន​មុខ និង​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ។\n\nកូដ PIN ​ការពារ​ឧបករណ៍ ប្រសិនបើ​បាត់ឧបករណ៍ ឬត្រូវបាន​គេលួច។"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"តម្រូវឱ្យមាន​លំនាំ ដើម្បីរៀបចំ​ការដោះសោ​តាមទម្រង់មុខ និង​ការដោះសោដោយប្រើ​ស្នាមម្រាមដៃ។\n\nលំនាំ​ការពារ​ឧបករណ៍ ប្រសិនបើ​បាត់ឧបករណ៍ ឬត្រូវបាន​គេលួច។"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"តម្រូវឱ្យមាន​ពាក្យសម្ងាត់ ដើម្បីរៀបចំ​ការដោះសោ​តាមទម្រង់មុខ និង​ការដោះសោដោយប្រើ​ស្នាមម្រាមដៃ។\n\nពាក្យសម្ងាត់​ការពារឧបករណ៍ ប្រសិនបើ​បាត់ឧបករណ៍ ឬត្រូវបានគេលួច។"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"តម្រូវឱ្យមាន​កូដ PIN ដើម្បីរៀបចំ​ការដោះ​សោ​ដោយស្កេន​មុខ និង​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ។\n\nកូដ PIN ​ការពារ​ទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបាន​គេលួច។"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"តម្រូវឱ្យមាន​លំនាំ ដើម្បីរៀបចំ​ការដោះ​សោ​ដោយស្កេន​មុខ និង​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ។\n\nលំនាំ​ការពារ​ទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបាន​គេលួច។"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"តម្រូវឱ្យមាន​ពាក្យសម្ងាត់ ដើម្បីរៀបចំ​ការដោះ​សោ​ដោយស្កេន​មុខ និង​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ។\n\nពាក្យសម្ងាត់​ការពារទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបានគេលួច។"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"តម្រូវឱ្យមានកូដ PIN ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nកូដ PIN ​ការពារ​ថេប្លេត ប្រសិនបើ​បាត់ថេប្លេត ឬត្រូវបាន​គេលួច។"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"តម្រូវឱ្យមាន​លំនាំ ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nលំនាំ​ការពារ​ថេប្លេត ប្រសិនបើ​បាត់ថេប្លេត ឬត្រូវបាន​គេលួច។"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"តម្រូវឱ្យមាន​ពាក្យសម្ងាត់ ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nពាក្យសម្ងាត់​ការពារថេប្លេត ប្រសិនបើ​បាត់ថេប្លេត ឬត្រូវបានគេលួច។"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"តម្រូវឱ្យមានកូដ PIN ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nកូដ PIN ​ការពារ​ឧបករណ៍ ប្រសិនបើ​បាត់ឧបករណ៍ ឬត្រូវបាន​គេលួច។"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"តម្រូវឱ្យមាន​លំនាំ ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nលំនាំ​ការពារ​ឧបករណ៍ ប្រសិនបើ​បាត់ឧបករណ៍ ឬត្រូវបាន​គេលួច។"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"តម្រូវឱ្យមាន​ពាក្យសម្ងាត់ ដើម្បីរៀបចំការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nពាក្យសម្ងាត់​ការពារឧបករណ៍ ប្រសិនបើ​បាត់ឧបករណ៍ ឬត្រូវបានគេលួច។"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"តម្រូវឱ្យមានកូដ PIN ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nកូដ PIN ​ការពារ​ទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបាន​គេលួច។"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"តម្រូវឱ្យមាន​លំនាំ ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nលំនាំ​ការពារ​ទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបាន​គេលួច។"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"តម្រូវឱ្យមាន​ពាក្យសម្ងាត់ ដើម្បីរៀបចំ​ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និង​ការដោះ​សោ​ដោយស្កេន​មុខ។\n\nពាក្យសម្ងាត់​ការពារទូរសព្ទ ប្រសិនបើ​បាត់ទូរសព្ទ ឬត្រូវបានគេលួច។"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"សកម្មភាពនេះ​លុបគំរូ និងរូបភាព​ស្នាមម្រាមដៃ ដែល​ពាក់ព័ន្ធនឹង \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ដែលត្រូវបានរក្សាទុក​នៅលើទូរសព្ទរបស់អ្នក"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"សកម្មភាពនេះ​លុបគំរូ និងរូបភាព​ស្នាមម្រាមដៃ ដែល​ពាក់ព័ន្ធនឹង \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ដែលត្រូវបានរក្សាទុក​នៅលើថេប្លេតរបស់អ្នក"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"សកម្មភាពនេះ​លុបគំរូ និងរូបភាព​ស្នាមម្រាមដៃ ដែល​ពាក់ព័ន្ធនឹង \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ដែលត្រូវបានរក្សាទុក​នៅលើឧបករណ៍របស់អ្នក"</string>
diff --git a/res-product/values-kn/strings.xml b/res-product/values-kn/strings.xml
index b3376b8..01fbbb6 100644
--- a/res-product/values-kn/strings.xml
+++ b/res-product/values-kn/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಿನ್‌‌ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಿನ್‌‌ ರಕ್ಷಿಸುತ್ತದೆ."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪ್ಯಾಟರ್ನ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಾಸ್‌ವರ್ಡ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಿನ್‌‌ ಅಗತ್ಯವಿದೆ.\n\nಟ್ಯಾಬ್ಲೆಟ್‌‌ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಿನ್‌‌ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ.\n\nಟ್ಯಾಬ್ಲೆಟ್‌‌ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪ್ಯಾಟರ್ನ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ.\n\nಟ್ಯಾಬ್ಲೆಟ್‌‌ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಾಸ್‌ವರ್ಡ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಿನ್‌‌ ಅಗತ್ಯವಿದೆ.\n\nಸಾಧನ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಿನ್‌‌ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ.\n\nಸಾಧನ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪ್ಯಾಟರ್ನ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ.\n\nಸಾಧನ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಾಸ್‌ವರ್ಡ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಿನ್‌‌ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಿನ್‌‌ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪ್ಯಾಟರ್ನ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಅದನ್ನು ಪಾಸ್‌ವರ್ಡ್ ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪಿನ್ ಅಗತ್ಯವಿದೆ.\n\nಟ್ಯಾಬ್ಲೆಟ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪಿನ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ.\n\nಟ್ಯಾಬ್ಲೆಟ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪ್ಯಾಟರ್ನ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ.\n\nಟ್ಯಾಬ್ಲೆಟ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪಾಸ್‌ವರ್ಡ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪಿನ್ ಅಗತ್ಯವಿದೆ.\n\nಸಾಧನ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪಿನ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ.\n\nಸಾಧನ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪ್ಯಾಟರ್ನ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ.\n\nಸಾಧನ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪಾಸ್‌ವರ್ಡ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪಿನ್ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪಿನ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪ್ಯಾಟರ್ನ್ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪ್ಯಾಟರ್ನ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಪಾಸ್‌ವರ್ಡ್ ಅಗತ್ಯವಿದೆ.\n\nಫೋನ್ ಕಳೆದುಹೋದರೆ ಅಥವಾ ಕಳುವಾದರೆ ಪಾಸ್‌ವರ್ಡ್ ಅದನ್ನು ರಕ್ಷಿಸುತ್ತದೆ."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ಗೆ ಸಂಬಂಧಿಸಿದ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಚಿತ್ರಗಳು ಮತ್ತು ಮಾಡೆಲ್ ಅನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ಗೆ ಸಂಬಂಧಿಸಿದ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಚಿತ್ರಗಳು ಮತ್ತು ಮಾಡೆಲ್ ಅನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ಗೆ ಸಂಬಂಧಿಸಿದ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಚಿತ್ರಗಳು ಮತ್ತು ಮಾಡೆಲ್ ಅನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ"</string>
diff --git a/res-product/values-ko/strings.xml b/res-product/values-ko/strings.xml
index a9765b3..57afc96 100644
--- a/res-product/values-ko/strings.xml
+++ b/res-product/values-ko/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"기기 보호 기능이 사용 설정되지 않습니다. 분실하거나 도난당했을 때 다른 사람이 이 태블릿을 사용하는 것을 방지할 수 없습니다."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"기기 보호 기능이 사용 설정되지 않습니다. 분실하거나 도난당했을 때 다른 사람이 이 기기를 사용하는 것을 방지할 수 없습니다."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"잠금 설정을 하지 않으면 기기 보호 기능이 사용되지 않으며, 분실하거나 도난당했을 때 타인의 휴대전화 사용을 방지할 수 없습니다."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"지문 센서는 전원 버튼에 있습니다. 태블릿 옆면에 있는 튀어나온 볼륨 버튼 옆의 평평한 버튼입니다."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"지문 센서는 전원 버튼에 있습니다. 기기 옆면에 튀어나온 볼륨 버튼 옆의 평평한 버튼입니다."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"지문 센서는 전원 버튼에 있습니다. 휴대전화 옆면에 튀어나온 볼륨 버튼 옆의 평평한 버튼입니다."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"지문 센서는 전원 버튼에 있습니다. 태블릿 테두리에 있는 튀어나온 볼륨 버튼 옆의 평평한 버튼입니다."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"지문 센서는 전원 버튼에 있습니다. 기기 테두리에 있는 튀어나온 볼륨 버튼 옆의 평평한 버튼입니다."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"지문 센서는 전원 버튼에 있습니다. 휴대전화 테두리에 있는 튀어나온 볼륨 버튼 옆의 평평한 버튼입니다."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"이제 지문을 사용하여 태블릿을 잠금 해제하거나 앱 로그인, 구매 승인 등을 위해 본인 인증을 진행할 수 있습니다."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"이제 지문을 사용하여 기기를 잠금 해제하거나 앱 로그인, 구매 승인 등을 위해 본인 인증을 진행할 수 있습니다."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"이제 지문을 사용하여 휴대전화를 잠금 해제하거나 앱 로그인, 구매 승인 등을 위해 본인 인증을 진행할 수 있습니다."</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"얼굴 인식 잠금 해제를 설정하려면 PIN이 필요합니다.\n\nPIN을 사용하면 휴대전화를 분실하거나 도난당했을 때 휴대전화를 보호할 수 있습니다."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"얼굴 인식 잠금 해제를 설정하려면 패턴이 필요합니다.\n\n패턴을 사용하면 휴대전화를 분실하거나 도난당했을 때 휴대전화를 보호할 수 있습니다."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"얼굴 인식 잠금 해제를 설정하려면 비밀번호가 필요합니다.\n\n비밀번호를 사용하면 휴대전화를 분실하거나 도난당했을 때 보호할 수 있습니다."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 PIN이 필요합니다.\n\nPIN을 사용하면 태블릿을 분실하거나 도난당했을 때 태블릿을 보호할 수 있습니다."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 패턴이 필요합니다.\n\n패턴을 사용하면 태블릿을 분실하거나 도난당했을 때 태블릿을 보호할 수 있습니다."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 비밀번호가 필요합니다.\n\n비밀번호를 사용하면 태블릿을 분실하거나 도난당했을 때 태블릿을 보호할 수 있습니다."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 PIN이 필요합니다.\n\nPIN을 사용하면 기기를 분실하거나 도난당했을 때 기기를 보호할 수 있습니다."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 패턴이 필요합니다.\n\n패턴을 사용하면 기기를 분실하거나 도난당했을 때 기기를 보호할 수 있습니다."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 비밀번호가 필요합니다.\n\n비밀번호를 사용하면 기기를 분실하거나 도난당했을 때 기기를 보호할 수 있습니다."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 PIN이 필요합니다.\n\nPIN을 사용하면 휴대전화를 분실하거나 도난당했을 때 보호할 수 있습니다."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 패턴이 필요합니다.\n\n패턴을 사용하면 휴대전화를 분실하거나 도난당했을 때 보호할 수 있습니다."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하려면 비밀번호가 필요합니다.\n\n비밀번호를 사용하면 휴대전화를 분실하거나 도난당했을 때 보호할 수 있습니다."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 PIN이 필요합니다.\n\nPIN을 사용하면 태블릿을 분실하거나 도난당했을 때 태블릿을 보호할 수 있습니다."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 패턴이 필요합니다.\n\n패턴을 사용하면 태블릿을 분실하거나 도난당했을 때 태블릿을 보호할 수 있습니다."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 비밀번호가 필요합니다.\n\n비밀번호를 사용하면 태블릿을 분실하거나 도난당했을 때 태블릿을 보호할 수 있습니다."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 PIN이 필요합니다.\n\nPIN을 사용하면 기기를 분실하거나 도난당했을 때 기기를 보호할 수 있습니다."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 패턴이 필요합니다.\n\n패턴을 사용하면 기기를 분실하거나 도난당했을 때 기기를 보호할 수 있습니다."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 비밀번호가 필요합니다.\n\n비밀번호를 사용하면 기기를 분실하거나 도난당했을 때 기기를 보호할 수 있습니다."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 PIN이 필요합니다.\n\nPIN을 사용하면 휴대전화를 분실하거나 도난당했을 때 휴대전화를 보호할 수 있습니다."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 패턴이 필요합니다.\n\n패턴을 사용하면 휴대전화를 분실하거나 도난당했을 때 휴대전화를 보호할 수 있습니다."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"지문 잠금 해제 및 얼굴 인식 잠금 해제를 설정하려면 비밀번호가 필요합니다.\n\n비밀번호를 사용하면 휴대전화를 분실하거나 도난당했을 때 보호할 수 있습니다."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"휴대전화에 저장된 \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' 지문과 관련된 지문 이미지와 모델이 삭제됩니다"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"태블릿에 저장된 \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' 지문과 관련된 지문 이미지와 모델이 삭제됩니다"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"기기에 저장된 \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' 지문과 관련된 지문 이미지와 모델이 삭제됩니다"</string>
diff --git a/res-product/values-ky/strings.xml b/res-product/values-ky/strings.xml
index 7c9c358..57e7995 100644
--- a/res-product/values-ky/strings.xml
+++ b/res-product/values-ky/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Түзмөктү коргоо мүмкүнчүлүктөрү жандырылбайт. Планшет жоголуп же уурдалып кетсе, башкалар аны пайдалана беришет."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Түзмөктү коргоо мүмкүнчүлүктөрү жандырылбайт. Түзмөк жоголуп же уурдалып кетсе, башкалар аны пайдалана беришет."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Түзмөктү коргоо мүмкүнчүлүктөрү жандырылбайт. Телефон жоголуп же уурдалып кетсе, башкалар аны пайдалана беришет."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Манжа изинин сенсору кубат баскычында жайгашкан. Бул планшеттин четиндеги үндү катуулатуу/акырындатуу баскычынын (көтөрүлгөн) жанындагы жалпак баскыч."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Манжа изинин сенсору кубат баскычында жайгашкан. Бул түзмөктүн четиндеги үндү катуулатуу/акырындатуу баскычынын (көтөрүлгөн) жанындагы жалпак баскыч."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Манжа изинин сенсору кубат баскычында жайгашкан. Бул телефондун четиндеги үндү катуулатуу/акырындатуу баскычынын (көтөрүлгөн) жанындагы жалпак баскыч."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Манжа изинин сенсору кубат баскычында жайгашкан. Бул планшеттин кырындагы үндү катуулатуу/акырындатуу баскычынын (көтөрүлгөн) жанындагы жалпак баскыч."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Манжа изинин сенсору кубат баскычында жайгашкан. Бул түзмөктүн кырындагы үндү катуулатуу/акырындатуу баскычынын (көтөрүлгөн) жанындагы жалпак баскыч."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Манжа изинин сенсору кубат баскычында жайгашкан. Бул телефондун кырындагы үндү катуулатуу/акырындатуу баскычынын (көтөрүлгөн) жанындагы жалпак баскыч."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Эми манжаңыздын изи менен планшетиңиздин кулпусун ачып же колдонмолорго кирүүдө өзүңүздү ырастап же керектүү нерселерди сатып аласыз"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Эми манжаңыздын изи менен түзмөгүңүздүн кулпусун ачып же колдонмолорго кирүүдө өзүңүздү ырастап же керектүү нерселерди сатып аласыз"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Эми манжаңыздын изи менен телефонуңуздун кулпусун ачып же колдонмолорго кирүүдө өзүңүздү ырастап же керектүү нерселерди сатып аласыз"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Жүзүнөн таанып ачуу функциясын кошуу үчүн PIN код талап кылынат.\n\nPIN код жоголгон же уурдалган телефондогу нерселерди коргойт."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Жүзүнөн таанып ачуу функциясын кошуу үчүн графикалык ачкыч талап кылынат.\n\nГрафикалык ачкыч жоголгон же уурдалган телефондогу нерселерди коргойт."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Жүзүнөн таанып ачуу функциясын кошуу үчүн сырсөз талап кылынат.\n\nСырсөз жоголгон же уурдалган телефонуңуздагы нерселерди коргойт."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн PIN код талап кылынат.\n\nPIN код планшет жоголсо же уурдалса, аны коргойт."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн графикалык ачкыч талап кылынат.\n\nГрафикалык ачкыч планшет жоголсо же уурдалса, аны коргойт."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн сырсөз талап кылынат.\n\nСырсөз планшет жоголсо же уурдалса, аны коргойт."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн PIN код талап кылынат.\n\nPIN код түзмөк жоголсо же уурдалса, аны коргойт."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн графикалык ачкыч талап кылынат.\n\nГрафикалык ачкыч түзмөк жоголсо же уурдалса, аны коргойт."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн сырсөз талап кылынат.\n\nСырсөз түзмөк жоголсо же уурдалса, аны коргойт."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн PIN код талап кылынат.\n\nPIN код жоголгон же уурдалган телефондогу нерселерди коргойт."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн графикалык ачкыч талап кылынат.\n\nГрафикалык ачкыч жоголгон же уурдалган телефондогу нерселерди коргойт."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Жүзүнөн таанып ачуу жана манжа изи менен ачуу функцияларын коюу үчүн сырсөз талап кылынат.\n\nСырсөз жоголгон же уурдалган телефонуңуздагы нерселерди коргойт."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн PIN код талап кылынат.\n\nPIN код планшет жоголсо же уурдалса, аны коргойт."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн графикалык ачкыч талап кылынат.\n\nГрафикалык ачкыч планшет жоголсо же уурдалса, аны коргойт."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн сырсөз талап кылынат.\n\nСырсөз планшет жоголсо же уурдалса, аны коргойт."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн PIN код талап кылынат.\n\nPIN код түзмөк жоголсо же уурдалса, аны коргойт."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн графикалык ачкыч талап кылынат.\n\nГрафикалык ачкыч түзмөк жоголсо же уурдалса, аны коргойт."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн сырсөз талап кылынат.\n\nСырсөз түзмөк жоголсо же уурдалса, аны коргойт."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн PIN код талап кылынат.\n\nPIN код жоголгон же уурдалган телефондогу нерселерди коргойт."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн графикалык ачкыч талап кылынат.\n\nГрафикалык ачкыч жоголгон же уурдалган телефондогу нерселерди коргойт."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Манжа изи менен ачуу жана Жүзүнөн таанып ачуу функцияларын коюу үчүн сырсөз талап кылынат.\n\nСырсөз жоголгон же уурдалган телефонуңуздагы нерселерди коргойт."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Ушуну менен телефонуңуздагы \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" менен байланышкан манжа изинин сүрөттөрү менен үлгүсү өчөт"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Ушуну менен планшетиңиздеги \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" менен байланышкан манжа изинин сүрөттөрү менен үлгүсү өчөт"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ушуну менен түзмөгүңүздөгү \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" менен байланышкан манжа изинин сүрөттөрү менен үлгүсү өчөт"</string>
diff --git a/res-product/values-lo/strings.xml b/res-product/values-lo/strings.xml
index 4db22ac..44ec957 100644
--- a/res-product/values-lo/strings.xml
+++ b/res-product/values-lo/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ຕ້ອງໃຊ້ PIN ເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ.\n\nPIN ຈະປົກປ້ອງໂທລະສັບຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ຕ້ອງໃຊ້ຮູບແບບເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ.\n\nຮູບແບບຈະປົກປ້ອງໂທລະສັບຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ຕ້ອງໃຊ້ລະຫັດຜ່ານເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ.\n\nລະຫັດຜ່ານຈະປົກປ້ອງໂທລະສັບຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ຕ້ອງໃຊ້ PIN ເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nPIN ຈະປົກປ້ອງແທັບເລັດຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ຕ້ອງໃຊ້ຮູບແບບເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nຮູບແບບຈະປົກປ້ອງແທັບເລັດຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ຕ້ອງໃຊ້ລະຫັດຜ່ານເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nລະຫັດຜ່ານຈະປົກປ້ອງແທັບເລັດຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ຕ້ອງໃຊ້ PIN ເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nPIN ຈະປົກປ້ອງອຸປະກອນຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ຕ້ອງໃຊ້ຮູບແບບເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nຮູບແບບຈະປົກປ້ອງອຸປະກອນຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ຕ້ອງໃຊ້ລະຫັດຜ່ານເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nລະຫັດຜ່ານຈະປົກປ້ອງອຸປະກອນຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ຕ້ອງໃຊ້ PIN ເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nPIN ຈະປົກປ້ອງໂທລະສັບຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ຕ້ອງໃຊ້ຮູບແບບເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nຮູບແບບຈະປົກປ້ອງໂທລະສັບຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ຕ້ອງໃຊ້ລະຫັດຜ່ານເພື່ອຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື.\n\nລະຫັດຜ່ານຈະປົກປ້ອງໂທລະສັບຫາກມັນເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ຕ້ອງໃຊ້ PIN ເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nPIN ຈະຊ່ວຍປົກປ້ອງແທັບເລັດໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ຕ້ອງໃຊ້ຮູບແບບເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nຮູບແບບຈະຊ່ວຍປົກປ້ອງແທັບເລັດໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ຕ້ອງໃຊ້ລະຫັດຜ່ານເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nລະຫັດຜ່ານຈະຊ່ວຍປົກປ້ອງແທັບເລັດໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ຕ້ອງໃຊ້ PIN ເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nPIN ຈະຊ່ວຍປົກປ້ອງອຸປະກອນໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ຕ້ອງໃຊ້ຮູບແບບເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nຮູບແບບຈະຊ່ວຍປົກປ້ອງອຸປະກອນໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ຕ້ອງໃຊ້ລະຫັດຜ່ານເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nລະຫັດຜ່ານຈະຊ່ວຍປົກປ້ອງອຸປະກອນໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ຕ້ອງໃຊ້ PIN ເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nPIN ຈະຊ່ວຍປົກປ້ອງໂທລະສັບໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ຕ້ອງໃຊ້ຮູບແບບເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nຮູບແບບຈະຊ່ວຍປົກປ້ອງໂທລະສັບໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ຕ້ອງໃຊ້ລະຫັດຜ່ານເພື່ອຕັ້ງຄ່າປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ການປົດລັອກດ້ວຍໜ້າ.\n\nລະຫັດຜ່ານຈະຊ່ວຍປົກປ້ອງໂທລະສັບໃນກໍລະນີທີ່ເສຍ ຫຼື ຖືກລັກ."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ນີ້ຈະລຶບຮູບ ແລະ ຮູບແບບລາຍນິ້ວມືທີ່ເຊື່ອມໂຍງກັບ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ທີ່ຈັດເກັບໄວ້ຢູ່ໂທລະສັບຂອງທ່ານອອກ"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ນີ້ຈະລຶບຮູບ ແລະ ຮູບແບບລາຍນິ້ວມືທີ່ເຊື່ອມໂຍງກັບ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ທີ່ຈັດເກັບໄວ້ຢູ່ແທັບເລັດຂອງທ່ານອອກ"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ນີ້ຈະລຶບຮູບ ແລະ ຮູບແບບລາຍນິ້ວມືທີ່ເຊື່ອມໂຍງກັບ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ທີ່ຈັດເກັບໄວ້ຢູ່ອຸປະກອນຂອງທ່ານອອກ"</string>
diff --git a/res-product/values-lt/strings.xml b/res-product/values-lt/strings.xml
index 9688a06..d9584d2 100644
--- a/res-product/values-lt/strings.xml
+++ b/res-product/values-lt/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Norint nustatyti atrakinimą pagal veidą, būtinas PIN kodas.\n\nPIN kodas apsaugo pamestą ar pavogtą telefoną."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Norint nustatyti atrakinimą pagal veidą, būtinas atrakinimo piešinys.\n\nAtrakinimo piešinys apsaugo pamestą ar pavogtą telefoną."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Norint nustatyti atrakinimą pagal veidą, būtinas slaptažodis.\n\nSlaptažodis apsaugo pamestą ar pavogtą telefoną."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas PIN kodas.\n\nPIN kodas apsaugo pamestą ar pavogtą planšetinį kompiuterį."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas atrakinimo piešinys.\n\nAtrakinimo piešinys apsaugo pamestą ar pavogtą planšetinį kompiuterį."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas slaptažodis.\n\nSlaptažodis apsaugo pamestą ar pavogtą planšetinį kompiuterį."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas PIN kodas.\n\nPIN kodas apsaugo pamestą ar pavogtą įrenginį."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas atrakinimo piešinys.\n\nAtrakinimo piešinys apsaugo pamestą ar pavogtą įrenginį."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas slaptažodis.\n\nSlaptažodis apsaugo pamestą ar pavogtą įrenginį."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas PIN kodas.\n\nPIN kodas apsaugo pamestą ar pavogtą telefoną."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas atrakinimo piešinys.\n\nAtrakinimo piešinys apsaugo pamestą ar pavogtą telefoną."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Norint nustatyti atrakinimą pagal veidą ir atrakinimą kontroliniu kodu, būtinas slaptažodis.\n\nSlaptažodis apsaugo pamestą ar pavogtą telefoną."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas PIN kodas.\n\nPIN kodas apsaugo pamestą ar pavogtą planšetinį kompiuterį."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas atrakinimo piešinys.\n\nAtrakinimo piešinys apsaugo pamestą ar pavogtą planšetinį kompiuterį."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas slaptažodis.\n\nSlaptažodis apsaugo pamestą ar pavogtą planšetinį kompiuterį."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas PIN kodas.\n\nPIN kodas apsaugo pamestą ar pavogtą įrenginį."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas atrakinimo piešinys.\n\nAtrakinimo piešinys apsaugo pamestą ar pavogtą įrenginį."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas slaptažodis.\n\nSlaptažodis apsaugo pamestą ar pavogtą įrenginį."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas PIN kodas.\n\nPIN kodas apsaugo pamestą ar pavogtą telefoną."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas atrakinimo piešinys.\n\nAtrakinimo piešinys apsaugo pamestą ar pavogtą telefoną."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Norint nustatyti atrakinimą piršto atspaudu ir atrakinimą pagal veidą, būtinas slaptažodis.\n\nSlaptažodis apsaugo pamestą ar pavogtą telefoną."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Bus ištrinti telefone saugomi piršto atspaudo vaizdai ir modelis, susieti su „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Bus ištrinti planšetiniame kompiuteryje saugomi kontrolinio kodo vaizdai ir modelis, susieti su „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Bus ištrinti įrenginyje saugomi kontrolinio kodo vaizdai ir modelis, susieti su „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“"</string>
diff --git a/res-product/values-lv/strings.xml b/res-product/values-lv/strings.xml
index a6ddbcf..2b86b9c 100644
--- a/res-product/values-lv/strings.xml
+++ b/res-product/values-lv/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Lai iestatītu autorizāciju pēc sejas, ir jābūt iestatītam PIN.\n\nPIN aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Lai iestatītu autorizāciju pēc sejas, ir jābūt iestatītai kombinācijai.\n\nKombinācija aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Lai iestatītu autorizāciju pēc sejas, ir jābūt iestatītai parolei.\n\nParole aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītam PIN.\n\nPIN aizsargā planšetdatoru, ja tas tiek nozaudēts vai nozagts."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītai kombinācijai.\n\nKombinācija aizsargā planšetdatoru, ja tas tiek nozaudēts vai nozagts."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītai parolei.\n\nParole aizsargā planšetdatoru, ja tas tiek nozaudēts vai nozagts."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītam PIN.\n\nPIN aizsargā ierīci, ja tā tiek nozaudēta vai nozagta."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītai kombinācijai.\n\nKombinācija aizsargā ierīci, ja tā tiek nozaudēta vai nozagta."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītai parolei.\n\nParole aizsargā ierīci, ja tā tiek nozaudēta vai nozagta."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītam PIN.\n\nPIN aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītai kombinācijai.\n\nKombinācija aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Lai iestatītu autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, ir jābūt iestatītai parolei.\n\nParole aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītam PIN.\n\nPIN aizsargā planšetdatoru, ja tas tiek nozaudēts vai nozagts."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītai kombinācijai.\n\nKombinācija aizsargā planšetdatoru, ja tas tiek nozaudēts vai nozagts."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītai parolei.\n\nParole aizsargā planšetdatoru, ja tas tiek nozaudēts vai nozagts."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītam PIN.\n\nPIN aizsargā ierīci, ja tā tiek nozaudēta vai nozagta."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītai kombinācijai.\n\nKombinācija aizsargā ierīci, ja tā tiek nozaudēta vai nozagta."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītai parolei.\n\nParole aizsargā ierīci, ja tā tiek nozaudēta vai nozagta."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītam PIN.\n\nPIN aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītai kombinācijai.\n\nKombinācija aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Lai iestatītu autorizāciju ar pirksta nospiedumu un autorizāciju pēc sejas, ir jābūt iestatītai parolei.\n\nParole aizsargā tālruni, ja tas tiek nozaudēts vai nozagts."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Tādējādi tiks dzēsti jūsu tālrunī saglabātie pirksta nospieduma attēli un modelis, kas saistīti ar pirksta nospiedumu “<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Tādējādi tiks dzēsti jūsu planšetdatorā saglabātie pirksta nospieduma attēli un modelis, kas saistīti ar pirksta nospiedumu “<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Tādējādi tiks dzēsti jūsu ierīcē glabātie pirksta nospieduma attēli un modelis, kas saistīti ar “<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”"</string>
diff --git a/res-product/values-mk/strings.xml b/res-product/values-mk/strings.xml
index 1e03880..8e1548f 100644
--- a/res-product/values-mk/strings.xml
+++ b/res-product/values-mk/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Потребен е PIN-код за да поставите „Отклучување со лик“.\n\nPIN-кодот го заштитува телефонот ако го изгубите или ви го украдат."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Потребна е шема за да поставите „Отклучување со лик“.\n\nШемата го заштитува телефонот ако го изгубите или ви го украдат."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Потребна е лозинка за да поставите „Отклучување со лик“.\n\nЛозинката го заштитува телефонот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Потребен е PIN-код за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nPIN-кодот го заштитува таблетот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Потребна е шема за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nШемата го заштитува таблетот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Потребна е лозинка за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nЛозинката го заштитува таблетот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Потребен е PIN-код за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nPIN-кодот го заштитува уредот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Потребна е шема за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nШемата го заштитува уредот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Потребна е лозинка за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nЛозинката го заштитува уредот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Потребен е PIN-код за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nPIN-кодот го заштитува телефонот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Потребна е шема за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nШемата го заштитува телефонот ако го изгубите или ви го украдат."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Потребна е лозинка за да поставите „Отклучување со лик“ и „Отклучување со отпечаток“.\n\nЛозинката го заштитува телефонот ако го изгубите или ви го украдат."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Потребен е PIN-код за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nPIN-кодот го штити таблетот при губење или кражба."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Потребна е шема за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nШемата го штити таблетот при губење или кражба."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Потребна е лозинка за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nЛозинката го штити таблетот при губење или кражба."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Потребен е PIN-код за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nPIN-кодот го штити уредот при губење или кражба."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Потребна е шема за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nШемата го штити уредот при губење или кражба."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Потребна е лозинка за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nЛозинката го штити уредот при губење или кражба."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Потребен е PIN-код за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nPIN-кодот го штити телефонот при губење или кражба."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Потребна е шема за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nШемата го штити телефонот при губење или кражба."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Потребна е лозинка за да поставите „Отклучување со отпечаток“ и „Отклучување со лик“.\n\nЛозинката го штити телефонот при губење или кражба."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Ова ги брише сликите и моделот на отпечатокот „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ што се складирани на телефонот"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Ова ги брише сликите и моделот на отпечатокот „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ што се складирани на таблетот"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ова ги брише сликите и моделот на отпечатокот „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“ што се складирани на уредот"</string>
diff --git a/res-product/values-ml/strings.xml b/res-product/values-ml/strings.xml
index e0d09ea..d807717 100644
--- a/res-product/values-ml/strings.xml
+++ b/res-product/values-ml/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"ഉപകരണ പരിരക്ഷാ ഫീച്ചറുകൾ ഓണാക്കില്ല. ഈ ടാബ്‌ലെറ്റ് നഷ്ടപ്പെടുകയോ മോഷ്ടിക്കപ്പെടുകയോ ചെയ്താൽ, ടാബ്‌ലെറ്റ് ഉപയോഗിക്കുന്നതിൽ നിന്ന് മറ്റുള്ളവരെ തടയാൻ നിങ്ങൾക്കാവില്ല."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"ഉപകരണ പരിരക്ഷാ ഫീച്ചറുകൾ ഓണാക്കില്ല. ഈ ഉപകരണം നഷ്ടപ്പെടുകയോ മോഷ്ടിക്കപ്പെടുകയോ ചെയ്താൽ, ഉപകരണം ഉപയോഗിക്കുന്നതിൽ നിന്ന് മറ്റുള്ളവരെ തടയാൻ നിങ്ങൾക്കാവില്ല."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"ഉപകരണ പരിരക്ഷാ ഫീച്ചറുകൾ ഓണാക്കില്ല. ഈ ഫോൺ നഷ്ടപ്പെടുകയോ മോഷ്ടിക്കപ്പെടുകയോ ചെയ്താൽ, ഫോൺ ഉപയോഗിക്കുന്നതിൽ നിന്ന് മറ്റുള്ളവരെ തടയാൻ നിങ്ങൾക്കാവില്ല."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"പവർ ബട്ടണിലാണ് ഫിംഗർപ്രിന്റ് സെൻസർ ഉള്ളത്. ടാബ്‌ലെറ്റിന്റെ അറ്റത്ത് ഉയർന്ന് നിൽക്കുന്ന ശബ്ദ ബട്ടണിന്റെ അടുത്തുള്ള പരന്ന ബട്ടൺ ആണ് ഇത്."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"പവർ ബട്ടണിലാണ് ഫിംഗർപ്രിന്റ് സെൻസർ ഉള്ളത്. ഉപകരണത്തിന്റെ അറ്റത്ത് ഉയർന്ന് നിൽക്കുന്ന ശബ്ദ ബട്ടണിന്റെ അടുത്തുള്ള പരന്ന ബട്ടൺ ആണ് ഇത്."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"പവർ ബട്ടണിലാണ് ഫിംഗർപ്രിന്റ് സെൻസർ ഉള്ളത്. ഫോണിന്റെ അറ്റത്ത് ഉയർന്ന് നിൽക്കുന്ന ശബ്ദ ബട്ടണിന്റെ അടുത്തുള്ള പരന്ന ബട്ടൺ ആണ് ഇത്."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"പവർ ബട്ടണിലാണ് ഫിംഗർപ്രിന്റ് സെൻസർ ഉള്ളത്. ടാബ്‌ലെറ്റിന്റെ അരികുഭാഗത്ത് ഉയർന്ന് നിൽക്കുന്ന വോളിയം ബട്ടണിന്റെ അടുത്തുള്ള പരന്ന ബട്ടൺ ആണ് ഇത്."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"പവർ ബട്ടണിലാണ് ഫിംഗർപ്രിന്റ് സെൻസർ ഉള്ളത്. ഉപകരണത്തിന്റെ അരികുഭാഗത്ത് ഉയർന്ന് നിൽക്കുന്ന വോളിയം ബട്ടണിന്റെ അടുത്തുള്ള പരന്ന ബട്ടൺ ആണ് ഇത്."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"പവർ ബട്ടണിലാണ് ഫിംഗർപ്രിന്റ് സെൻസർ ഉള്ളത്. ഫോണിന്റെ അരികുഭാഗത്ത് ഉയർന്ന് നിൽക്കുന്ന വോളിയം ബട്ടണിന്റെ അടുത്തുള്ള പരന്ന ബട്ടൺ ആണ് ഇത്."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"ടാബ്‌ലെറ്റ് അൺലോക്ക് ചെയ്യാനോ ആപ്പുകളിലേക്ക് സൈൻ ഇൻ ചെയ്യുന്നത് പോലുള്ള സന്ദർഭങ്ങളിൽ ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കാനോ ഇപ്പോൾ നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കാനാകും"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"ഉപകരണം അൺലോക്ക് ചെയ്യാനോ ആപ്പുകളിലേക്ക് സൈൻ ഇൻ ചെയ്യുന്നത് പോലുള്ള സന്ദർഭങ്ങളിൽ ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കാനോ ഇപ്പോൾ നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കാനാകും"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"ഫോൺ അൺലോക്ക് ചെയ്യാനോ ആപ്പുകളിലേക്ക് സൈൻ ഇൻ ചെയ്യുകയോ വാങ്ങൽ അംഗീകരിക്കുകയോ ചെയ്യുന്നത് പോലുള്ള സന്ദർഭങ്ങളിൽ ഇത് നിങ്ങൾ തന്നെയാണെന്ന് പരിശോധിച്ചുറപ്പിക്കാനോ ഇപ്പോൾ നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കാനാകും"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ഫെയ്‌സ് അൺലോക്ക് സജ്ജീകരിക്കാൻ പിൻ ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പിൻ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ഫെയ്‌സ് അൺലോക്ക് സജ്ജീകരിക്കാൻ പാറ്റേൺ ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാറ്റേൺ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ഫെയ്‌സ് അൺലോക്ക് സജ്ജീകരിക്കാൻ പാസ്‌വേഡ് ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാസ്‌വേഡ് അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പിൻ ആവശ്യമാണ്.\n\nടാബ്‌ലെറ്റ് നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പിൻ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാറ്റേൺ ആവശ്യമാണ്.\n\nടാബ്‌ലെറ്റ് നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാറ്റേൺ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാസ്‌വേഡ് ആവശ്യമാണ്.\n\nടാബ്‌ലെറ്റ് നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാസ്‌വേഡ് അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പിൻ ആവശ്യമാണ്.\n\nഉപകരണം നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പിൻ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാറ്റേൺ ആവശ്യമാണ്.\n\nഉപകരണം നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാറ്റേൺ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാസ്‌വേഡ് ആവശ്യമാണ്.\n\nഉപകരണം നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാസ്‌വേഡ് അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പിൻ ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പിൻ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാറ്റേൺ ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാറ്റേൺ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാസ്‌വേഡ് ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാസ്‌വേഡ് അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ഫിംഗർപ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പിൻ ആവശ്യമാണ്.\n\nടാബ്‌ലെറ്റ് നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പിൻ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ഫിംഗർപ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാറ്റേൺ ആവശ്യമാണ്.\n\nടാബ്‌ലെറ്റ് നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാറ്റേൺ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ഫിംഗർ‌പ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാസ്‌വേഡ് ആവശ്യമാണ്.\n\nടാബ്‌ലെറ്റ് നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാസ്‌വേഡ് അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ഫിംഗർപ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പിൻ ആവശ്യമാണ്.\n\nഉപകരണം നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പിൻ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ഫിംഗർപ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാറ്റേൺ ആവശ്യമാണ്.\n\nഉപകരണം നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാറ്റേൺ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ഫിംഗർ‌പ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാസ്‌വേഡ് ആവശ്യമാണ്.\n\nഉപകരണം നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാസ്‌വേഡ് അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ഫിംഗർപ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പിൻ ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പിൻ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ഫിംഗർപ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാറ്റേൺ ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാറ്റേൺ അതിനെ പരിരക്ഷിക്കുന്നു."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ഫിംഗർ‌പ്രിന്റ് അൺലോക്കും ഫെയ്‌സ് അൺലോക്കും സജ്ജീകരിക്കാൻ പാസ്‌വേഡ് ആവശ്യമാണ്.\n\nഫോൺ നഷ്‌ടപ്പെടുകയോ മോഷ്‌ടിക്കപ്പെടുകയോ ചെയ്‌താൽ പാസ്‌വേഡ് അതിനെ പരിരക്ഷിക്കുന്നു."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' എന്നതുമായി ബന്ധപ്പെട്ട് നിങ്ങളുടെ ഫോണിൽ സംഭരിച്ചിരിക്കുന്ന ഫിംഗർപ്രിന്റ് ചിത്രങ്ങളും മോഡലും ഇത് ഇല്ലാതാക്കുന്നു"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' എന്നതുമായി ബന്ധപ്പെട്ട് നിങ്ങളുടെ ടാബ്‌ലെറ്റിൽ സംഭരിച്ചിരിക്കുന്ന ഫിംഗർപ്രിന്റ് ചിത്രങ്ങളും മോഡലും ഇത് ഇല്ലാതാക്കുന്നു"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' എന്നതുമായി ബന്ധപ്പെട്ട് നിങ്ങളുടെ ഉപകരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന ഫിംഗർപ്രിന്റ് ചിത്രങ്ങളും മോഡലും ഇത് ഇല്ലാതാക്കുന്നു"</string>
diff --git a/res-product/values-mn/strings.xml b/res-product/values-mn/strings.xml
index e7ad331..48d5e42 100644
--- a/res-product/values-mn/strings.xml
+++ b/res-product/values-mn/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Царайгаар түгжээ тайлахыг тохируулахын тулд ПИН шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд ПИН үүнийг хамгаалдаг."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Царайгаар түгжээ тайлахыг тохируулахын тулд хээ шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд хээ үүнийг хамгаалдаг."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Царайгаар түгжээ тайлахыг тохируулахын тулд нууц үг шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд нууц үг үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд ПИН шаардлагатай.\n\nТаблетыг гээсэн эсвэл хулгайд алдсан тохиолдолд ПИН үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд хээ шаардлагатай.\n\nТаблетыг гээсэн эсвэл хулгайд алдсан тохиолдолд хээ үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд нууц үг шаардлагатай.\n\nТаблетыг гээсэн эсвэл хулгайд алдсан тохиолдолд нууц үг үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд ПИН шаардлагатай.\n\nТөхөөрөмжийг гээсэн эсвэл хулгайд алдсан тохиолдолд ПИН үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд хээ шаардлагатай.\n\nТөхөөрөмжийг гээсэн эсвэл хулгайд алдсан тохиолдолд хээ үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд нууц үг шаардлагатай.\n\nТөхөөрөмжийг гээсэн эсвэл хулгайд алдсан тохиолдолд нууц үг үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд ПИН шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд ПИН үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд хээ шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд хээ үүнийг хамгаалдаг."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулахын тулд нууц үг шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд нууц үг үүнийг хамгаалдаг."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад ПИН шаардлагатай.\n\nТаблетыг гээсэн эсвэл хулгайд алдсан тохиолдолд ПИН хамгаалдаг."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад хээ шаардлагатай.\n\nТаблетыг гээсэн эсвэл хулгайд алдсан тохиолдолд хээ хамгаалдаг."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад нууц үг шаардлагатай.\n\nТаблетыг гээсэн эсвэл хулгайд алдсан тохиолдолд нууц үг хамгаалдаг."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад ПИН шаардлагатай.\n\nТөхөөрөмжийг гээсэн эсвэл хулгайд алдсан тохиолдолд ПИН хамгаалдаг."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад хээ шаардлагатай.\n\nТөхөөрөмжийг гээсэн эсвэл хулгайд алдсан тохиолдолд хээ хамгаалдаг."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад нууц үг шаардлагатай.\n\nТөхөөрөмжийг гээсэн эсвэл хулгайд алдсан тохиолдолд нууц үг хамгаалдаг."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад ПИН шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд ПИН хамгаалдаг."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад хээ шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд хээ хамгаалдаг."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Хурууны хээгээр түгжээ тайлах болон Царайгаар түгжээ тайлахыг тохируулахад нууц үг шаардлагатай.\n\nУтсыг гээсэн эсвэл хулгайд алдсан тохиолдолд нууц үг хамгаалдаг."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Энэ нь таны утсан дээр хадгалсан \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'-тай холбоотой хурууны хээний зургууд болон загварыг устгана"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Энэ нь таны таблет дээр хадгалсан \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'-тай холбоотой хурууны хээний зургууд болон загварыг устгана"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Энэ нь таны төхөөрөмж дээр хадгалсан \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'-тай холбоотой хурууны хээний зургууд болон загварыг устгана"</string>
diff --git a/res-product/values-mr/strings.xml b/res-product/values-mr/strings.xml
index 37a3907..bea1b0a 100644
--- a/res-product/values-mr/strings.xml
+++ b/res-product/values-mr/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"फेस अनलॉक सेट करण्यासाठी पिन आवश्यक आहे.\n\nफोन हरवल्यास किंवा चोरीला गेल्यास, पिन त्याचे संरक्षण करतो."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"फेस अनलॉक सेट करण्यासाठी पॅटर्न आवश्यक आहे.\n\nफोन हरवल्यास किंवा चोरीला गेल्यास, पॅटर्न त्याचे संरक्षण करते."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"फेस अनलॉक सेट करण्यासाठी पासवर्ड आवश्यक आहे.\n\nफोन हरवल्यास किंवा चोरीला गेल्यास, पासवर्ड त्याचे संरक्षण करतो."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पिन आवश्यक आहे.\n\nटॅबलेट हरवल्यास किंवा चोरीला गेल्यास, पिन त्याचे संरक्षण करतो."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पॅटर्न आवश्यक आहे.\n\nटॅबलेट हरवल्यास किंवा चोरीला गेल्यास, पॅटर्न त्याचे संरक्षण करते."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पासवर्ड आवश्यक आहे.\n\nटॅबलेट हरवल्यास किंवा चोरीला गेल्यास, पासवर्ड त्याचे संरक्षण करतो."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पिन आवश्यक आहे.\n\nडिव्हाइस हरवल्यास किंवा चोरीला गेल्यास, पिन त्याचे संरक्षण करतो."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पॅटर्न आवश्यक आहे.\n\nडिव्हाइस हरवल्यास किंवा चोरीला गेल्यास, पॅटर्न त्याचे संरक्षण करते."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पासवर्ड आवश्यक आहे.\n\nडिव्हाइस हरवल्यास किंवा चोरीला गेल्यास, पासवर्ड त्याचे संरक्षण करतो."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पिन आवश्यक आहे.\n\nफोन हरवल्यास किंवा चोरीला गेल्यास, पिन त्याचे संरक्षण करतो."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पॅटर्न आवश्यक आहे.\n\nफोन हरवल्यास किंवा चोरीला गेल्यास, पॅटर्न त्याचे संरक्षण करते."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करण्यासाठी पासवर्ड आवश्यक आहे.\n\nफोन हरवल्यास किंवा चोरीला गेल्यास, पासवर्ड त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पिन आवश्यक आहे.\n\nतुमचा टॅबलेट हरवल्यास किंवा चोरीला गेल्यास, पिन त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पॅटर्न आवश्यक आहे.\n\nतुमचा टॅबलेट हरवल्यास किंवा चोरीला गेल्यास, पॅटर्न त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पासवर्ड आवश्यक आहे.\n\nतुमचा टॅबलेट हरवल्यास किंवा चोरीला गेल्यास, पासवर्ड त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पिन आवश्यक आहे.\n\nतुमचे डिव्हाइस हरवल्यास किंवा चोरीला गेल्यास, पिन त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पॅटर्न आवश्यक आहे.\n\nतुमचे डिव्हाइस हरवल्यास किंवा चोरीला गेल्यास, पॅटर्न त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पासवर्ड आवश्यक आहे.\n\nतुमचे डिव्हाइस हरवल्यास किंवा चोरीला गेल्यास, पासवर्ड त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पिन आवश्यक आहे.\n\nतुमचा फोन हरवल्यास किंवा चोरीला गेल्यास, पिन त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पॅटर्न आवश्यक आहे.\n\nतुमचा फोन हरवल्यास किंवा चोरीला गेल्यास, पॅटर्न त्याचे संरक्षण करतो."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"फिंगरप्रिंट अनलॉक आणि फेस अनलॉक सेट करण्यासाठी पासवर्ड आवश्यक आहे.\n\nतुमचा फोन हरवल्यास किंवा चोरीला गेल्यास, पासवर्ड त्याचे संरक्षण करतो."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"हे तुमच्या फोनवर स्टोअर केलेल्या फिंगरप्रिंट इमेज आणि \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' शी संबंधित असलेले मॉडेल हटवते"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"हे तुमच्या टॅबलेटवर स्टोअर केलेल्या फिंगरप्रिंट इमेज आणि \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' शी संबंधित असलेले मॉडेल हटवते"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"हे तुमच्या डिव्हाइसवर स्टोअर केलेल्या फिंगरप्रिंट इमेज आणि \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' शी संबंधित असलेले मॉडेल हटवते"</string>
diff --git a/res-product/values-ms/strings.xml b/res-product/values-ms/strings.xml
index ec25e3d..d44395e 100644
--- a/res-product/values-ms/strings.xml
+++ b/res-product/values-ms/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"PIN diperlukan untuk menyediakan Buka Kunci Wajah.\n\nPIN melindungi telefon jika telefon hilang atau dicuri."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Corak diperlukan untuk menyediakan Buka Kunci Wajah.\n\nCorak melindungi telefon jika telefon hilang atau dicuri."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Kata laluan diperlukan untuk menyediakan Buka Kunci Wajah.\n\nKata laluan melindungi telefon jika telefon hilang atau dicuri."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"PIN diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nPIN melindungi tablet jika tablet hilang atau dicuri."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Corak diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nCorak melindungi tablet jika tablet hilang atau dicuri."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Kata laluan diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nKata laluan melindungi tablet jika tablet hilang atau dicuri."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"PIN diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nPIN melindungi peranti jika peranti hilang atau dicuri."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Corak diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nCorak melindungi peranti jika peranti hilang atau dicuri."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Kata laluan diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nKata laluan melindungi peranti jika peranti hilang atau dicuri."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"PIN diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nPIN melindungi telefon jika telefon hilang atau dicuri."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Corak diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nCorak melindungi telefon jika telefon hilang atau dicuri."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Kata laluan diperlukan untuk menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari.\n\nKata laluan melindungi telefon jika telefon hilang atau dicuri."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"PIN diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nPIN melindungi tablet jika tablet hilang atau dicuri."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Corak diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nCorak melindungi tablet jika tablet hilang atau dicuri."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Kata laluan diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nKata laluan melindungi tablet jika tablet hilang atau dicuri."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"PIN diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nPIN melindungi peranti jika peranti hilang atau dicuri."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Corak diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nCorak melindungi peranti jika peranti hilang atau dicuri."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Kata laluan diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nKata laluan melindungi peranti jika peranti hilang atau dicuri."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"PIN diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nPIN melindungi telefon jika telefon hilang atau dicuri."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Corak diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nCorak melindungi telefon jika telefon hilang atau dicuri."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Kata laluan diperlukan untuk menyediakan Buka Kunci Cap Jari dan Buka Kunci Wajah.\n\nKata laluan melindungi telefon jika telefon hilang atau dicuri."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Tindakan ini akan memadamkan imej dan model cap jari yang berkaitan dengan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' yang disimpan dalam telefon anda"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Tindakan ini akan memadamkan imej dan model cap jari yang berkaitan dengan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' yang disimpan dalam tablet anda"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ini akan memadamkan imej cap jari dan model yang berkaitan dengan \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' yang disimpan dalam peranti anda"</string>
diff --git a/res-product/values-my/strings.xml b/res-product/values-my/strings.xml
index 21799ca..5a3e4bc 100644
--- a/res-product/values-my/strings.xml
+++ b/res-product/values-my/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပင်နံပါတ် လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပင်နံပါတ်က ကာကွယ်ပေးသည်။"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပုံစံ လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပုံစံက ကာကွယ်ပေးသည်။"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် စကားဝှက် လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို စကားဝှက်က ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပင်နံပါတ် လိုအပ်သည်။\n\nဤတက်ဘလက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပင်နံပါတ်က ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပုံစံ လိုအပ်သည်။\n\nဤတက်ဘလက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပုံစံက ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် စကားဝှက် လိုအပ်သည်။\n\nဤတက်ဘလက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို စကားဝှက်က ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပင်နံပါတ် လိုအပ်သည်။\n\nဤစက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပင်နံပါတ်က ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပုံစံ လိုအပ်သည်။\n\nဤစက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပုံစံက ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် စကားဝှက် လိုအပ်သည်။\n\nဤစက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို စကားဝှက်က ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပင်နံပါတ် လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပင်နံပါတ်က ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပုံစံ လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပုံစံက ကာကွယ်ပေးသည်။"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် စကားဝှက် လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို စကားဝှက်က ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပင်နံပါတ် လိုအပ်သည်။\n\nဤတက်ဘလက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပင်နံပါတ်က ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပုံဖော်ခြင်း လိုအပ်သည်။\n\nဤတက်ဘလက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပုံဖော်ခြင်းက ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် စကားဝှက် လိုအပ်သည်။\n\nဤတက်ဘလက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို စကားဝှက်က ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပင်နံပါတ် လိုအပ်သည်။\n\nဤစက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပင်နံပါတ်က ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပုံဖော်ခြင်း လိုအပ်သည်။\n\nဤစက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပုံဖော်ခြင်းက ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် စကားဝှက် လိုအပ်သည်။\n\nဤစက်ပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို စကားဝှက်က ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပင်နံပါတ် လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပင်နံပါတ်က ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် ပုံဖော်ခြင်း လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို ပုံဖော်ခြင်းက ကာကွယ်ပေးသည်။"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ ကို ထည့်သွင်းရန် စကားဝှက် လိုအပ်သည်။\n\nဤဖုန်းပျောက်သွားလျှင် (သို့) ခိုးခံရလျှင် ၎င်းကို စကားဝှက်က ကာကွယ်ပေးသည်။"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"သင့်ဖုန်းတွင်သိုလှောင်ထားသည့် ‘<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>’ နှင့် ဆက်စပ်သည့် လက်ဗွေပုံများနှင့် နမူနာကို ဖျက်ပါမည်"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"သင့်တက်ဘလက်တွင်သိုလှောင်ထားသည့် ‘<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>’ နှင့် ဆက်စပ်သည့် လက်ဗွေပုံများနှင့် နမူနာကို ဖျက်ပါမည်"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"သင့်စက်တွင်သိုလှောင်ထားသည့် \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' နှင့် ဆက်စပ်သည့် လက်ဗွေပုံများနှင့် နမူနာကို ဖျက်ပါမည်"</string>
diff --git a/res-product/values-nb/strings.xml b/res-product/values-nb/strings.xml
index b5a9df0..cf3d53c 100644
--- a/res-product/values-nb/strings.xml
+++ b/res-product/values-nb/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Funksjoner for enhetsbeskyttelse blir ikke slått på. Du kommer ikke til å kunne forhindre at andre bruker dette nettbrettet hvis det blir stjålet."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Funksjoner for enhetsbeskyttelse blir ikke slått på. Du kommer ikke til å kunne forhindre at andre bruker denne enheten hvis den blir stjålet."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Funksjoner for enhetsbeskyttelse blir ikke slått på. Du kommer ikke til å kunne forhindre at andre bruker denne telefonen hvis den blir stjålet."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Fingeravtrykkssensoren er på av/på-knappen. Det er den flate knappen ved siden av den hevede volumknappen på siden av nettbrettet."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Fingeravtrykkssensoren er på av/på-knappen. Det er den flate knappen ved siden av den hevede volumknappen på siden av enheten."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Fingeravtrykkssensoren er på av/på-knappen. Det er den flate knappen ved siden av den hevede volumknappen på siden av telefonen."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Fingeravtrykkssensoren er på av/på-knappen. Det er den flate knappen ved siden av den hevede volumknappen nettbrettets kant."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Fingeravtrykkssensoren er på av/på-knappen. Det er den flate knappen ved siden av den hevede volumknappen enhetens kant."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Fingeravtrykkssensoren er på av/på-knappen. Det er den flate knappen ved siden av den hevede volumknappen på telefonens kant."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Nå kan du bruke fingeravtrykket til å låse opp nettbrettet eller bekrefte at du er deg, for eksempel når du logger på apper eller godkjenner kjøp"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Nå kan du bruke fingeravtrykket til å låse opp enheten eller bekrefte at du er deg, for eksempel når du logger på apper eller godkjenner kjøp"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Nå kan du bruke fingeravtrykket til å låse opp telefonen eller bekrefte at du er deg, for eksempel når du logger på apper eller godkjenner kjøp"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"En PIN-kode kreves for å konfigurere ansiktslås.\n\nEn PIN-kode beskytter telefonen hvis den blir mistet eller stjålet."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Et mønster kreves for å konfigurere ansiktslås.\n\nEt mønster beskytter telefonen hvis den blir mistet eller stjålet."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Et passord kreves for å konfigurere ansiktslås.\n\nEt passord beskytter telefonen hvis den blir mistet eller stjålet."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"En PIN-kode kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEn PIN-kode beskytter nettbrettet hvis det blir mistet eller stjålet."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Et mønster kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEt mønster beskytter nettbrettet hvis det blir mistet eller stjålet."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Et passord kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEt passord beskytter nettbrettet hvis det blir mistet eller stjålet."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"En PIN-kode kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEn PIN-kode beskytter enheten hvis den blir mistet eller stjålet."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Et mønster kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEt mønster beskytter enheten hvis den blir mistet eller stjålet."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Et passord kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEt passord beskytter enheten hvis den blir mistet eller stjålet."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"En PIN-kode kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEn PIN-kode beskytter telefonen hvis den blir mistet eller stjålet."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Et mønster kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEt mønster beskytter telefonen hvis den blir mistet eller stjålet."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Et passord kreves for å konfigurere ansiktslås og opplåsing med fingeravtrykk.\n\nEt passord beskytter telefonen hvis den blir mistet eller stjålet."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"En PIN-kode kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har en PIN-kode, er nettbrettet beskyttet hvis du mister det eller det blir stjålet."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Et mønster kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har et mønster, er nettbrettet beskyttet hvis du mister det eller det blir stjålet."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Et passord kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har et passord, er nettbrettet beskyttet hvis du mister det eller det blir stjålet."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"En PIN-kode kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har en PIN-kode, er enheten beskyttet hvis du mister den eller den blir stjålet."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Et mønster kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har et mønster, er enheten beskyttet hvis du mister den eller den blir stjålet."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Et passord kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har et passord, er enheten beskyttet hvis du mister den eller den blir stjålet."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"En PIN-kode kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har en PIN-kode, er telefonen beskyttet hvis du mister den eller den blir stjålet."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Et mønster kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har et mønster, er telefonen beskyttet hvis du mister den eller den blir stjålet."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Et passord kreves for å konfigurere opplåsing med fingeravtrykk og ansiktslås.\n\nNår du har et passord, er telefonen beskyttet hvis du mister den eller den blir stjålet."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Dette sletter fingeravtrykkbildene og -modellen tilknyttet «<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» som er lagret på telefonen"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Dette sletter fingeravtrykkbildene og -modellen tilknyttet «<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» som er lagret på nettbrettet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Dette sletter fingeravtrykkbildene og -modellen tilknyttet «<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>» som er lagret på enheten"</string>
diff --git a/res-product/values-ne/strings.xml b/res-product/values-ne/strings.xml
index fa40d6c..5e5b965 100644
--- a/res-product/values-ne/strings.xml
+++ b/res-product/values-ne/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"फेस अनलक सेटअप गर्न तपाईंले PIN सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा PIN ले उक्त फोन सुरक्षित राख्छ।"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"फेस अनलक सेटअप गर्न तपाईंले प्याटर्न सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा प्याटर्नले उक्त फोन सुरक्षित राख्छ।"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"फेस अनलक सेटअप गर्न तपाईंले पासवर्ड सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा पासवर्डले उक्त फोन सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले PIN सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको ट्याब्लेट हराएको वा चोरी भएको खण्डमा PIN ले उक्त ट्याब्लेट सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले प्याटर्न सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको ट्याब्लेट हराएको वा चोरी भएको खण्डमा प्याटर्नले उक्त ट्याब्लेट सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले पासवर्ड सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको ट्याब्लेट हराएको वा चोरी भएको खण्डमा पासवर्डले उक्त ट्याब्लेट सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले PIN सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको डिभाइस हराएको वा चोरी भएको खण्डमा PIN ले उक्त डिभाइस सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले प्याटर्न सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको डिभाइस हराएको वा चोरी भएको खण्डमा प्याटर्नले उक्त डिभाइस सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले पासवर्ड सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको डिभाइस हराएको वा चोरी भएको खण्डमा पासवर्डले उक्त डिभाइस सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले PIN सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा PIN ले उक्त फोन सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले प्याटर्न सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा प्याटर्नले उक्त फोन सुरक्षित राख्छ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्न तपाईंले पासवर्ड सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा पासवर्डले उक्त फोन सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले PIN सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको ट्याब्लेट हराएको वा चोरी भएको खण्डमा PIN ले उक्त ट्याब्लेट सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले प्याटर्न सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको ट्याब्लेट हराएको वा चोरी भएको खण्डमा प्याटर्नले उक्त ट्याब्लेट सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले पासवर्ड सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको ट्याब्लेट हराएको वा चोरी भएको खण्डमा पासवर्डले उक्त ट्याब्लेट सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले PIN सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको डिभाइस हराएको वा चोरी भएको खण्डमा PIN ले उक्त डिभाइस सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले प्याटर्न सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको डिभाइस हराएको वा चोरी भएको खण्डमा प्याटर्नले उक्त डिभाइस सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले पासवर्ड सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको डिभाइस हराएको वा चोरी भएको खण्डमा पासवर्डले उक्त डिभाइस सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले PIN सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा PIN ले उक्त फोन सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले प्याटर्न सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा प्याटर्नले उक्त फोन सुरक्षित राख्छ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"फिंगरप्रिन्ट अनलक र फेस अनलक सेटअप गर्न तपाईंले पासवर्ड सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको फोन हराएको वा चोरी भएको खण्डमा पासवर्डले उक्त फोन सुरक्षित राख्छ।"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"यो फिंगरप्रिन्ट मेटाइयो भने तपाईंको फोनमा भण्डारण गरिएका \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' सँग सम्बन्धित फिंगरप्रिन्टका फोटो र मोडेल मेटाइन्छन्"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"यो फिंगरप्रिन्ट मेटाइयो भने तपाईंको ट्याब्लेटमा भण्डारण गरिएका \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' सँग सम्बन्धित फिंगरप्रिन्टका फोटो र मोडेल मेटाइन्छन्"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"यो फिंगरप्रिन्ट मेटाइयो भने तपाईंको डिभाइसमा भण्डारण गरिएका \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' सँग सम्बन्धित फिंगरप्रिन्टका फोटो र मोडेल मेटाइन्छन्"</string>
diff --git a/res-product/values-nl/strings.xml b/res-product/values-nl/strings.xml
index bdd1ba5..47010db 100644
--- a/res-product/values-nl/strings.xml
+++ b/res-product/values-nl/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"De apparaatbeschermingsfuncties worden niet aangezet. Je kunt niet voorkomen dat anderen deze tablet gebruiken als je deze verliest of als deze wordt gestolen."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"De apparaatbeschermingsfuncties worden niet aangezet. Je kunt niet voorkomen dat anderen dit apparaat gebruiken als je het verliest of als het wordt gestolen."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"De apparaatbeschermingsfuncties worden niet aangezet. Je kunt niet voorkomen dat anderen deze telefoon gebruiken als je deze verliest of als deze wordt gestolen."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Je vindt de vingerafdruksensor op de aan/uit-knop. Het is de platte knop naast de verhoogde volumeknop aan de zijkant van de tablet."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Je vindt de vingerafdruksensor op de aan/uit-knop. Het is de platte knop naast de verhoogde volumeknop aan de zijkant van het apparaat."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Je vindt de vingerafdruksensor op de aan/uit-knop. Het is de platte knop naast de verhoogde volumeknop aan de zijkant van de telefoon."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Je vindt de vingerafdruksensor op de aan/uit-knop. Het is de platte knop naast de verhoogde volumeknop aan de rand van de tablet."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Je vindt de vingerafdruksensor op de aan/uit-knop. Het is de platte knop naast de verhoogde volumeknop aan de rand van het apparaat."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Je vindt de vingerafdruksensor op de aan/uit-knop. Het is de platte knop naast de verhoogde volumeknop aan de rand van de telefoon."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Je kunt nu je vingerafdruk gebruiken om je tablet te ontgrendelen of te laten verifiëren dat jij het bent, bijvoorbeeld als je inlogt bij apps of een aankoop goedkeurt"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Je kunt nu je vingerafdruk gebruiken om je apparaat te ontgrendelen of te laten verifiëren dat jij het bent, bijvoorbeeld als je inlogt bij apps of een aankoop goedkeurt"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Je kunt nu je vingerafdruk gebruiken om je telefoon te ontgrendelen of te laten verifiëren dat jij het bent, bijvoorbeeld als je inlogt bij apps of een aankoop goedkeurt"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Je hebt een pincode nodig voor het instellen van Ontgrendelen via gezichtsherkenning.\n\nEen pincode beschermt de telefoon bij verlies of diefstal."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Je hebt een patroon nodig voor het instellen van Ontgrendelen via gezichtsherkenning.\n\nEen patroon beschermt de telefoon bij verlies of diefstal."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Je hebt een wachtwoord nodig voor het instellen van Ontgrendelen via gezichtsherkenning.\n\nEen wachtwoord beschermt de telefoon bij verlies of diefstal."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Je hebt een pincode nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen pincode beschermt de tablet bij verlies of diefstal."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Je hebt een patroon nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen patroon beschermt de tablet bij verlies of diefstal."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Je hebt een wachtwoord nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen wachtwoord beschermt de tablet bij verlies of diefstal."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Je hebt een pincode nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen pincode beschermt het apparaat bij verlies of diefstal."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Je hebt een patroon nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen patroon beschermt het apparaat bij verlies of diefstal."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Je hebt een wachtwoord nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen wachtwoord beschermt het apparaat bij verlies of diefstal."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Je hebt een pincode nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen pincode beschermt de telefoon bij verlies of diefstal."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Je hebt een patroon nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen patroon beschermt de telefoon bij verlies of diefstal."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Je hebt een wachtwoord nodig voor het instellen van Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk.\n\nEen wachtwoord beschermt de telefoon bij verlies of diefstal."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Je hebt een pincode nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen pincode beschermt de tablet bij verlies of diefstal."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Je hebt een patroon nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen patroon beschermt de tablet bij verlies of diefstal."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Je hebt een wachtwoord nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen wachtwoord beschermt de tablet bij verlies of diefstal."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Je hebt een pincode nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen pincode beschermt het apparaat bij verlies of diefstal."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Je hebt een patroon nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen patroon beschermt het apparaat bij verlies of diefstal."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Je hebt een wachtwoord nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen wachtwoord beschermt het apparaat bij verlies of diefstal."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Je hebt een pincode nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen pincode beschermt de telefoon bij verlies of diefstal."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Je hebt een patroon nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen patroon beschermt de telefoon bij verlies of diefstal."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Je hebt een wachtwoord nodig voor het instellen van Ontgrendelen met vingerafdruk en Ontgrendelen via gezichtsherkenning.\n\nEen wachtwoord beschermt de telefoon bij verlies of diefstal."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Hiermee verwijder je de afbeeldingen en het model van je vingerafdruk die aan <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> zijn gekoppeld en op je telefoon zijn opgeslagen"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Hiermee verwijder je de afbeeldingen en het model van je vingerafdruk die aan <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> zijn gekoppeld en op je tablet zijn opgeslagen"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Hiermee verwijder je de afbeeldingen en het model van je vingerafdruk die aan <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> zijn gekoppeld en op je apparaat zijn opgeslagen"</string>
diff --git a/res-product/values-or/strings.xml b/res-product/values-or/strings.xml
index 732f99a..3b8fb8a 100644
--- a/res-product/values-or/strings.xml
+++ b/res-product/values-or/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ଫେସ୍ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ PIN ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ PIN ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ଫେସ୍ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ ପାଟର୍ନ ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାଟର୍ନ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ଫେସ୍ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାସୱାର୍ଡ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ PIN ଆବଶ୍ୟକ।\n\nଯଦି ଟାବଲେଟଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ PIN ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ ପାଟର୍ନ ଆବଶ୍ୟକ।\n\nଯଦି ଟାବଲେଟଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାଟର୍ନ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଟାବଲେଟଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାସୱାର୍ଡ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ PIN ଆବଶ୍ୟକ।\n\nଯଦି ଡିଭାଇସଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ PIN ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ ପାଟର୍ନ ଆବଶ୍ୟକ।\n\nଯଦି ଡିଭାଇସଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାଟର୍ନ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଡିଭାଇସଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାସୱାର୍ଡ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ PIN ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ PIN ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ଫେସ୍ ଅନଲକ୍ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ୍ ସେଟ୍ ଅପ୍ କରିବା ପାଇଁ ଏକ ପାଟର୍ନ ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାଟର୍ନ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ଫେସ ଅନଲକ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏହି ପାସୱାର୍ଡ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଟାବଲେଟଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ PIN ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଟାବଲେଟଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାଟର୍ନ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଟାବଲେଟଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାସୱାର୍ଡ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଡିଭାଇସଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ PIN ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଡିଭାଇସଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାଟର୍ନ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଡିଭାଇସଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାସୱାର୍ଡ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ PIN ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାଟର୍ନ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ଏବଂ ଫେସ ଅନଲକ ସେଟ ଅପ କରିବା ପାଇଁ ଏକ ପାସୱାର୍ଡ ଆବଶ୍ୟକ।\n\nଯଦି ଫୋନଟି ହଜିଯାଏ କିମ୍ବା ଚୋରି ହୋଇଯାଏ, ତେବେ ଏକ ପାସୱାର୍ଡ ଏହାକୁ ସୁରକ୍ଷିତ ରଖେ।"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ଏହା ଆପଣଙ୍କ ଫୋନରେ ଷ୍ଟୋର କରାଯାଇଥିବା \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ସହ ସମ୍ବନ୍ଧିତ ଟିପଚିହ୍ନର ଇମେଜ ଏବଂ ମଡେଲଗୁଡ଼ିକୁ ଡିଲିଟ କରେ"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ଏହା ଆପଣଙ୍କ ଟାବଲେଟରେ ଷ୍ଟୋର କରାଯାଇଥିବା \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ସହ ସମ୍ବନ୍ଧିତ ଟିପଚିହ୍ନର ଇମେଜ ଏବଂ ମଡେଲଗୁଡ଼ିକୁ ଡିଲିଟ କରେ"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ଏହା ଆପଣଙ୍କ ଡିଭାଇସରେ ଷ୍ଟୋର କରାଯାଇଥିବା \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ସହ ସମ୍ବନ୍ଧିତ ଟିପଚିହ୍ନର ଇମେଜ ଏବଂ ମଡେଲଗୁଡ଼ିକୁ ଡିଲିଟ କରେ"</string>
diff --git a/res-product/values-pa/strings.xml b/res-product/values-pa/strings.xml
index eb57ca7..546d2e0 100644
--- a/res-product/values-pa/strings.xml
+++ b/res-product/values-pa/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਿੰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਿੰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪੈਟਰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਦੇ ਗੁੰਮ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪੈਟਰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਦੇ ਗੁੰਮ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਾਸਵਰਡ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਿੰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਟੈਬਲੈੱਟ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਿੰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪੈਟਰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਟੈਬਲੈੱਟ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪੈਟਰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਂਦਾ ਹੈ।\n\nਟੈਬਲੈੱਟ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਾਸਵਰਡ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਿੰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਡੀਵਾਈਸ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਿੰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪੈਟਰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਡੀਵਾਈਸ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪੈਟਰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਂਦਾ ਹੈ।\n\nਡੀਵਾਈਸ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਾਸਵਰਡ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਿੰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਿੰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪੈਟਰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਦੇ ਗੁੰਮ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪੈਟਰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਾਸਵਰਡ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਿੰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਟੈਬਲੈੱਟ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਿੰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪੈਟਰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਟੈਬਲੈੱਟ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪੈਟਰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਂਦਾ ਹੈ।\n\nਟੈਬਲੈੱਟ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਾਸਵਰਡ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਿੰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਡੀਵਾਈਸ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਿੰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪੈਟਰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਡੀਵਾਈਸ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪੈਟਰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਂਦਾ ਹੈ।\n\nਡੀਵਾਈਸ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਾਸਵਰਡ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਿੰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਿੰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪੈਟਰਨ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਦੇ ਗੁੰਮ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪੈਟਰਨ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਪਾਸਵਰਡ ਲੋੜੀਂਦਾ ਹੈ।\n\nਫ਼ੋਨ ਦੇ ਗੁਆਚਣ ਜਾਂ ਚੋਰੀ ਹੋਣ \'ਤੇ ਪਾਸਵਰਡ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਰੱਖਦਾ ਹੈ।"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ਇਹ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਸਟੋਰ ਕੀਤੇ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ਨਾਲ ਸੰਬੰਧਿਤ ਫਿੰਗਰਪ੍ਰਿੰਟ ਚਿੱਤਰਾਂ ਅਤੇ ਮਾਡਲ ਨੂੰ ਮਿਟਾ ਦਿੰਦਾ ਹੈ"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ਇਹ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ \'ਤੇ ਸਟੋਰ ਕੀਤੇ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ਨਾਲ ਸੰਬੰਧਿਤ ਫਿੰਗਰਪ੍ਰਿੰਟ ਚਿੱਤਰਾਂ ਅਤੇ ਮਾਡਲ ਨੂੰ ਮਿਟਾ ਦਿੰਦਾ ਹੈ"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ਇਹ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਸਟੋਰ ਕੀਤੇ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ਨਾਲ ਸੰਬੰਧਿਤ ਫਿੰਗਰਪ੍ਰਿੰਟ ਚਿੱਤਰਾਂ ਅਤੇ ਮਾਡਲ ਨੂੰ ਮਿਟਾ ਦਿੰਦੀ ਹੈ"</string>
diff --git a/res-product/values-pl/strings.xml b/res-product/values-pl/strings.xml
index 198cc31..c567c0d 100644
--- a/res-product/values-pl/strings.xml
+++ b/res-product/values-pl/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Zabezpieczenia urządzenia nie zostaną włączone. Nie będzie można zablokować tego tabletu, gdy zostanie zgubiony lub skradziony."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Zabezpieczenia urządzenia nie zostaną włączone. Nie będzie można zablokować tego urządzenia, gdy zostanie zgubione lub skradzione."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Zabezpieczenia urządzenia nie zostaną włączone. Nie będzie można zablokować tego telefonu, gdy zostanie zgubiony lub skradziony."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Czytnik linii papilarnych znajduje się na przycisku zasilania. To płaski przycisk przy wypukłym przycisku głośności na krawędzi tabletu."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Czytnik linii papilarnych znajduje się na przycisku zasilania. To płaski przycisk przy wypukłym przycisku głośności na krawędzi urządzenia."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Czytnik linii papilarnych znajduje się na przycisku zasilania. To płaski przycisk przy wypukłym przycisku głośności na krawędzi telefonu."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Czytnik linii papilarnych znajduje się na przycisku zasilania. To płaski przycisk przy wypukłym przycisku głośności na jednej z krawędzi tabletu."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Czytnik linii papilarnych znajduje się na przycisku zasilania. To płaski przycisk przy wypukłym przycisku głośności na jednej z krawędzi urządzenia."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Czytnik linii papilarnych znajduje się na przycisku zasilania. To płaski przycisk przy wypukłym przycisku głośności na jednej z krawędzi telefonu."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Możesz teraz używać odcisku palca do odblokowywania tabletu oraz potwierdzania tożsamości, na przykład podczas logowania się w aplikacjach i zatwierdzania zakupów"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Możesz teraz używać odcisku palca do odblokowywania urządzenia oraz weryfikacji tożsamości, na przykład podczas logowania się w aplikacjach i zatwierdzania zakupów"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Możesz teraz używać odcisku palca do odblokowywania telefonu oraz potwierdzania tożsamości, na przykład podczas logowania się w aplikacjach i zatwierdzania zakupów"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Do skonfigurowania rozpoznawania twarzy wymagany jest kod PIN.\n\nKod PIN ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Do skonfigurowania rozpoznawania twarzy wymagany jest wzór.\n\nWzór ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Do skonfigurowania rozpoznawania twarzy wymagane jest hasło.\n\nHasło ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagany jest kod PIN.\n\nKod PIN ochroni tablet, jeśli zostanie zgubiony lub skradziony."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagany jest wzór.\n\nWzór ochroni tablet, jeśli zostanie zgubiony lub skradziony."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagane jest hasło.\n\nHasło ochroni tablet, jeśli zostanie zgubiony lub skradziony."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagany jest kod PIN.\n\nKod PIN ochroni urządzenie, jeśli zostanie zgubione lub skradzione."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagany jest wzór.\n\nWzór ochroni urządzenie, jeśli zostanie zgubione lub skradzione."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagane jest hasło.\n\nHasło ochroni urządzenie, jeśli zostanie zgubione lub skradzione."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagany jest kod PIN.\n\nKod PIN ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagany jest wzór.\n\nWzór ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Do skonfigurowania rozpoznawania twarzy i odblokowywania odciskiem palca wymagane jest hasło.\n\nHasło ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagany jest kod PIN.\n\nKod PIN ochroni tablet, jeśli zostanie zgubiony lub skradziony."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagany jest wzór.\n\nWzór ochroni tablet, jeśli zostanie zgubiony lub skradziony."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagane jest hasło.\n\nHasło ochroni tablet, jeśli zostanie zgubiony lub skradziony."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagany jest kod PIN.\n\nKod PIN ochroni urządzenie, jeśli zostanie zgubione lub skradzione."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagany jest wzór.\n\nWzór ochroni urządzenie, jeśli zostanie zgubione lub skradzione."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagane jest hasło.\n\nHasło ochroni urządzenie, jeśli zostanie zgubione lub skradzione."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagany jest kod PIN.\n\nKod PIN ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagany jest wzór.\n\nWzór ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Do skonfigurowania odblokowywania odciskiem palca i rozpoznawania twarzy wymagane jest hasło.\n\nHasło ochroni telefon, jeśli zostanie zgubiony lub skradziony."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Ta czynność usuwa zapisane na telefonie obrazy i model odcisku palca powiązane z identyfikatorem „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Ta czynność usuwa zapisane na tablecie obrazy i model odcisku palca powiązane z identyfikatorem „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Ta czynność usuwa zapisane na urządzeniu obrazy i model odcisku palca powiązane z identyfikatorem „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”"</string>
diff --git a/res-product/values-pt-rBR/strings.xml b/res-product/values-pt-rBR/strings.xml
index 6d2bc38..18947f3 100644
--- a/res-product/values-pt-rBR/strings.xml
+++ b/res-product/values-pt-rBR/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Você precisa usar um PIN para poder configurar o Desbloqueio facial.\n\nO uso de um PIN protege o smartphone em caso de perda ou roubo."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Você precisa usar um padrão para poder configurar o Desbloqueio facial.\n\nO uso de um padrão protege o smartphone em caso de perda ou roubo."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Você precisa usar uma senha para poder configurar o Desbloqueio facial.\n\nO uso de uma senha protege o smartphone em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Você precisa usar um PIN para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um PIN protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Você precisa usar um padrão para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um padrão protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Você precisa usar uma senha para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de uma senha protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Você precisa usar um PIN para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um PIN protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Você precisa usar um padrão para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um padrão protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Você precisa usar uma senha para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de uma senha protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Você precisa usar um PIN para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um PIN protege o smartphone em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Você precisa usar um padrão para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um padrão protege o smartphone em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Você precisa usar uma senha para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de uma senha protege o smartphone em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Você precisa usar um PIN para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um PIN protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Você precisa usar um padrão para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um padrão protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Você precisa usar uma senha para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de uma senha protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Você precisa usar um PIN para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um PIN protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Você precisa usar um padrão para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um padrão protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Você precisa usar uma senha para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de uma senha protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Você precisa usar um PIN para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um PIN protege o smartphone em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Você precisa usar um padrão para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um padrão protege o smartphone em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Você precisa usar uma senha para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de uma senha protege o smartphone em caso de perda ou roubo."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Essa ação exclui as imagens e o modelo de impressão digital associados a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no seu smartphone"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Essa ação exclui as imagens e o modelo de impressão digital associados a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no seu tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Essa ação exclui as imagens e o modelo de impressão digital associados a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no seu dispositivo"</string>
diff --git a/res-product/values-pt-rPT/strings.xml b/res-product/values-pt-rPT/strings.xml
index 4c9f391..75795e0 100644
--- a/res-product/values-pt-rPT/strings.xml
+++ b/res-product/values-pt-rPT/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"É necessário um PIN para configurar o Desbloqueio facial.\n\nUm PIN protege o telemóvel em caso de perda ou roubo."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"É necessário um padrão para configurar o Desbloqueio facial.\n\nUm padrão protege o telemóvel em caso de perda ou roubo."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"É necessária uma palavra-passe para configurar o Desbloqueio facial.\n\nUma palavra-passe protege o telemóvel em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"É necessário um PIN para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm PIN protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"É necessário um padrão para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm padrão protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"É necessária uma palavra-passe para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUma palavra-passe protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"É necessário um PIN para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm PIN protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"É necessário um padrão para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm padrão protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"É necessária uma palavra-passe para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUma palavra-passe protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"É necessário um PIN para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm PIN protege o telemóvel em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"É necessário um padrão para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm padrão protege o telemóvel em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"É necessária uma palavra-passe para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUma palavra-passe protege o telemóvel em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"É necessário um PIN para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm PIN protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"É necessário um padrão para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm padrão protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"É necessária uma palavra-passe para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUma palavra-passe protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"É necessário um PIN para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm PIN protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"É necessário um padrão para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm padrão protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"É necessária uma palavra-passe para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUma palavra-passe protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"É necessário um PIN para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm PIN protege o telemóvel em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"É necessário um padrão para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUm padrão protege o telemóvel em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"É necessária uma palavra-passe para configurar o Desbloqueio facial e o Desbloqueio por impressão digital.\n\nUma palavra-passe protege o telemóvel em caso de perda ou roubo."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Esta ação elimina as imagens da impressão digital e o modelo associado ao \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no telemóvel"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Esta ação elimina as imagens da impressão digital e o modelo associado ao \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Esta ação elimina as imagens da impressão digital e o modelo associado ao \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no dispositivo"</string>
diff --git a/res-product/values-pt/strings.xml b/res-product/values-pt/strings.xml
index 6d2bc38..18947f3 100644
--- a/res-product/values-pt/strings.xml
+++ b/res-product/values-pt/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Você precisa usar um PIN para poder configurar o Desbloqueio facial.\n\nO uso de um PIN protege o smartphone em caso de perda ou roubo."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Você precisa usar um padrão para poder configurar o Desbloqueio facial.\n\nO uso de um padrão protege o smartphone em caso de perda ou roubo."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Você precisa usar uma senha para poder configurar o Desbloqueio facial.\n\nO uso de uma senha protege o smartphone em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Você precisa usar um PIN para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um PIN protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Você precisa usar um padrão para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um padrão protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Você precisa usar uma senha para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de uma senha protege o tablet em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Você precisa usar um PIN para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um PIN protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Você precisa usar um padrão para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um padrão protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Você precisa usar uma senha para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de uma senha protege o dispositivo em caso de perda ou roubo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Você precisa usar um PIN para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um PIN protege o smartphone em caso de perda ou roubo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Você precisa usar um padrão para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de um padrão protege o smartphone em caso de perda ou roubo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Você precisa usar uma senha para poder configurar o Desbloqueio facial e por impressão digital.\n\nO uso de uma senha protege o smartphone em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Você precisa usar um PIN para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um PIN protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Você precisa usar um padrão para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um padrão protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Você precisa usar uma senha para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de uma senha protege o tablet em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Você precisa usar um PIN para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um PIN protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Você precisa usar um padrão para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um padrão protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Você precisa usar uma senha para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de uma senha protege o dispositivo em caso de perda ou roubo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Você precisa usar um PIN para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um PIN protege o smartphone em caso de perda ou roubo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Você precisa usar um padrão para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de um padrão protege o smartphone em caso de perda ou roubo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Você precisa usar uma senha para poder configurar o \"Desbloqueio por impressão digital\" e o \"Desbloqueio facial\".\n\nO uso de uma senha protege o smartphone em caso de perda ou roubo."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Essa ação exclui as imagens e o modelo de impressão digital associados a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no seu smartphone"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Essa ação exclui as imagens e o modelo de impressão digital associados a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no seu tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Essa ação exclui as imagens e o modelo de impressão digital associados a \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" que estão armazenados no seu dispositivo"</string>
diff --git a/res-product/values-ro/strings.xml b/res-product/values-ro/strings.xml
index 0b5d920..597f058 100644
--- a/res-product/values-ro/strings.xml
+++ b/res-product/values-ro/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Pentru a configura Deblocarea facială, este necesar un PIN.\n\nPIN-ul îți protejează telefonul dacă este pierdut sau furat."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Pentru a configura Deblocarea facială, este necesar un model.\n\nModelul îți protejează telefonul dacă este pierdut sau furat."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Pentru a configura Deblocarea facială, este necesară o parolă.\n\nParola îți protejează telefonul dacă este pierdut sau furat."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesar un PIN.\n\nPIN-ul îți protejează tableta dacă este pierdută sau furată."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesar un model.\n\nModelul îți protejează tableta dacă este pierdută sau furată."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesară o parolă.\n\nParola îți protejează tableta dacă este pierdută sau furată."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesar un PIN.\n\nPIN-ul îți protejează dispozitivul dacă este pierdut sau furat."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesar un model.\n\nModelul îți protejează dispozitivul dacă este pierdut sau furat."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesară o parolă.\n\nParola îți protejează dispozitivul dacă este pierdut sau furat."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesar un PIN.\n\nPIN-ul îți protejează telefonul dacă este pierdut sau furat."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesar un model.\n\nModelul îți protejează telefonul dacă este pierdut sau furat."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Pentru a configura Deblocarea facială și Deblocarea cu amprenta, este necesară o parolă.\n\nParola îți protejează telefonul dacă este pierdut sau furat."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesar un PIN.\n\nPIN-ul îți protejează tableta dacă este pierdută sau furată."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesar un model.\n\nModelul îți protejează tableta dacă este pierdută sau furată."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesară o parolă.\n\nParola îți protejează tableta dacă este pierdută sau furată."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesar un PIN.\n\nPIN-ul îți protejează dispozitivul dacă este pierdut sau furat."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesar un model.\n\nModelul îți protejează dispozitivul dacă este pierdut sau furat."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesară o parolă.\n\nParola îți protejează dispozitivul dacă este pierdut sau furat."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesar un PIN.\n\nPIN-ul îți protejează telefonul dacă este pierdut sau furat."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesar un model.\n\nModelul îți protejează telefonul dacă este pierdut sau furat."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Pentru a configura Deblocarea cu amprenta și Deblocarea facială, este necesară o parolă.\n\nParola îți protejează telefonul dacă este pierdut sau furat."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Astfel, imaginile amprentelor și modelul de amprentă asociate cu <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> stocate pe telefon vor fi șterse"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Astfel, imaginile amprentelor și modelul de amprentă asociate cu <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> stocate pe tabletă vor fi șterse"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Astfel, imaginile amprentelor și modelul de amprentă asociate cu <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> stocate pe acest dispozitiv vor fi șterse"</string>
diff --git a/res-product/values-ru/strings.xml b/res-product/values-ru/strings.xml
index f6d3ebb..82a4cd2 100644
--- a/res-product/values-ru/strings.xml
+++ b/res-product/values-ru/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Защита устройства не будет активирована. В случае потери или кражи планшета им смогут воспользоваться посторонние."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Защита не будет активирована. В случае потери или кражи устройства им смогут воспользоваться посторонние."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Защита устройства не будет активирована. В случае потери или кражи телефона им смогут воспользоваться посторонние."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Сканер отпечатков пальцев находится на кнопке питания. Это плоская кнопка рядом с приподнятой кнопкой регулировки громкости на боковой стороне планшета."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Сканер отпечатков пальцев находится на кнопке питания. Это плоская кнопка рядом с приподнятой кнопкой регулировки громкости на боковой стороне устройства."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Сканер отпечатков пальцев находится на кнопке питания. Это плоская кнопка рядом с приподнятой кнопкой регулировки громкости на боковой стороне телефона."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Сканер отпечатков пальцев находится на кнопке питания. Она плоская и расположена рядом с приподнятой кнопкой регулировки громкости на боковой стороне планшета."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Сканер отпечатков пальцев находится на кнопке питания. Она плоская и расположена рядом с приподнятой кнопкой регулировки громкости на боковой стороне устройства."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Сканер отпечатков пальцев находится на кнопке питания. Она плоская и расположена рядом с приподнятой кнопкой регулировки громкости на боковой стороне телефона."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Теперь вы можете использовать отпечаток пальца, чтобы разблокировать планшет и подтверждать свою личность, например для входа в приложения и одобрения покупок."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Теперь вы можете использовать отпечаток пальца, чтобы разблокировать устройство и подтверждать свою личность, например для входа в приложения и одобрения покупок."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Теперь вы можете использовать отпечаток пальца, чтобы разблокировать телефон и подтверждать свою личность, например для входа в приложения и одобрения покупок."</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Чтобы настроить фейсконтроль, нужен PIN-код.\n\nОн защитит данные в случае потери или кражи телефона."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Чтобы настроить фейсконтроль, нужен графический ключ.\n\nОн защитит данные в случае потери или кражи телефона."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Чтобы настроить фейсконтроль, нужен пароль.\n\nОн защитит данные в случае потери или кражи телефона."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен PIN-код.\n\nОн защитит данные в случае потери или кражи планшета."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен графический ключ.\n\nОн защитит данные в случае потери или кражи планшета."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен пароль.\n\nОн защитит данные в случае потери или кражи планшета."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен PIN-код.\n\nОн защитит данные в случае потери или кражи устройства."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен графический ключ.\n\nОн защитит данные в случае потери или кражи устройства."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен пароль.\n\nОн защитит данные в случае потери или кражи устройства."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен PIN-код.\n\nОн защитит данные в случае потери или кражи телефона."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен графический ключ.\n\nОн защитит данные в случае потери или кражи телефона."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен пароль.\n\nОн защитит данные в случае потери или кражи телефона."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен PIN-код.\n\nОн защитит данные в случае потери или кражи планшета."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен графический ключ.\n\nОн защитит данные в случае потери или кражи планшета."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен пароль.\n\nОн защитит данные в случае потери или кражи планшета."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен PIN-код.\n\nОн защитит данные в случае потери или кражи устройства."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен графический ключ.\n\nОн защитит данные в случае потери или кражи устройства."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен пароль.\n\nОн защитит данные в случае потери или кражи устройства."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен PIN-код.\n\nОн защитит данные в случае потери или кражи телефона."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен графический ключ.\n\nОн защитит данные в случае потери или кражи телефона."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Чтобы настроить фейсконтроль и разблокировку по отпечатку пальца, нужен пароль.\n\nОн защитит данные в случае потери или кражи телефона."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Изображения и модель отпечатка \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" будут удалены с телефона."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Изображения и модель отпечатка \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" будут удалены с планшета"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Изображения и модель отпечатка \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" будут удалены с устройства"</string>
diff --git a/res-product/values-si/strings.xml b/res-product/values-si/strings.xml
index e766758..97177f1 100644
--- a/res-product/values-si/strings.xml
+++ b/res-product/values-si/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"මුහුණෙන් අගුළු හැරීම පිහිටුවීමට PIN එකක් අවශ්‍යයි.\n\nPIN එකක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"මුහුණෙන් අගුළු හැරීම පිහිටුවීමට රටාවක් අවශ්‍යයි.\n\nරටාවක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nමුරපදයක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට PIN එකක් අවශ්‍යයි.\n\nPIN එකක් ටැබ්ලටය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට රටාවක් අවශ්‍යයි.\n\nරටාවක් ටැබ්ලටය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nමුරපදයක් ටැබ්ලටය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට PIN එකක් අවශ්‍යයි.\n\nPIN එකක් උපාංගය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට රටාවක් අවශ්‍යයි.\n\nරටාවක් උපාංගය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nමුරපදයක් උපාංගය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට PIN එකක් අවශ්‍යයි.\n\nPIN එකක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට රටාවක් අවශ්‍යයි.\n\nරටාවක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුලු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nමුරපදයක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කළහොත් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nPIN එකක් ටැබ්ලටය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nරටාවක් ටැබ්ලටය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nමුරපදයක් ටැබ්ලටය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nPIN එකක් උපාංගය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nරටාවක් උපාංගය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nමුරපදයක් උපාංගය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nPIN එකක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nරටාවක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ඇඟිලි සලකුණු අගුළු හැරීම සහ මුහුණෙන් අගුළු හැරීම පිහිටුවීමට මුරපදයක් අවශ්‍යයි.\n\nමුරපදයක් දුරකථනය නැති වුවහොත් හෝ සොරකම් කර ඇත්නම් එය ආරක්ෂා කරයි."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"මෙය ඔබේ දුරකථනයෙහි ගබඩා වී ඇති ඇඟිලි සලකුණු රූප සහ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' සමග ආශ්‍රිත ආකෘතිය මකයි"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"මෙය ඔබේ ටැබ්ලටයෙහි ගබඩා වී ඇති ඇඟිලි සලකුණු රූප සහ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' සමග ආශ්‍රිත ආකෘතිය මකයි"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"මෙය ඔබගේ උපාංගයෙහි ගබඩා වී ඇති ඇඟිලි සලකුණු රූප සහ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' හා ආශ්‍රිත මාදිලි මකයි"</string>
diff --git a/res-product/values-sk/strings.xml b/res-product/values-sk/strings.xml
index 8cf56de..08f3320 100644
--- a/res-product/values-sk/strings.xml
+++ b/res-product/values-sk/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Funkcie ochrany zariadenia sa nezapnú. V prípade straty alebo krádeže nebudete môcť cudzím osobám zabrániť v používaní tohto tabletu."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Funkcie ochrany zariadenia sa nezapnú. V prípade straty alebo krádeže nebudete môcť cudzím osobám zabrániť v používaní tohto zariadenia."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Funkcie ochrany zariadenia sa nezapnú. V prípade straty alebo krádeže nebudete môcť cudzím osobám zabrániť v používaní tohto telefónu."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Senzor odtlačkov prstov je na vypínači. Je to ploché tlačidlo vedľa vypuklého tlačidla hlasitosti na okraji tabletu."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Senzor odtlačkov prstov je na vypínači. Ide o ploché tlačidlo vedľa vypuklého tlačidla hlasitosti na okraji zariadenia."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Senzor odtlačkov prstov je na vypínači. Ide o ploché tlačidlo vedľa vypuklého tlačidla hlasitosti na okraji telefónu."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Senzor odtlačkov prstov je na vypínači. Je to ploché tlačidlo vedľa vypuklého tlačidla hlasitosti na boku tabletu."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Senzor odtlačkov prstov je na vypínači. Ide o ploché tlačidlo vedľa vypuklého tlačidla hlasitosti na boku zariadenia."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Senzor odtlačkov prstov je na vypínači. Ide o ploché tlačidlo vedľa vypuklého tlačidla hlasitosti na boku telefónu."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Teraz môžete odomykať tablet alebo overovať svoju totožnosť odtlačkom prsta, napríklad pri prihlasovaní do aplikácií alebo schvaľovaní nákupov"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Teraz môžete odomykať zariadenie alebo overovať svoju totožnosť odtlačkom prsta, napríklad pri prihlasovaní do aplikácií alebo schvaľovaní nákupov"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Teraz môžete odomykať telefón alebo overovať svoju totožnosť odtlačkom prsta, napríklad pri prihlasovaní sa do aplikácií alebo schvaľovaní nákupov"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Na nastavenie odomknutia tvárou sa vyžaduje PIN.\n\nPIN chráni telefón v prípade jeho straty alebo odcudzenia."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Na nastavenie odomknutia tvárou sa vyžaduje vzor.\n\nVzor chráni telefón v prípade jeho straty alebo odcudzenia."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Na nastavenie odomknutia tvárou sa vyžaduje heslo.\n\nHeslo chráni telefón v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje PIN.\n\nPIN chráni tablet v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje vzor.\n\nVzor chráni tablet v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje heslo.\n\nHeslo chráni tablet v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje PIN.\n\nPIN chráni zariadenie v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje vzor.\n\nVzor chráni zariadenie v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje heslo.\n\nHeslo chráni zariadenie v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje PIN.\n\nPIN chráni telefón v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje vzor.\n\nVzor chráni telefón v prípade jeho straty alebo odcudzenia."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Na nastavenie odomknutia tvárou a odtlačkom prsta sa vyžaduje heslo.\n\nHeslo chráni telefón v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje PIN.\n\nPIN chráni tablet v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje vzor.\n\nVzor chráni tablet v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje heslo.\n\nHeslo chráni tablet v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje PIN.\n\nPIN chráni zariadenie v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje vzor.\n\nVzor chráni zariadenie v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Na nastavenie odomknutia odtlačkom prsta a tvárou sa vyžaduje heslo.\n\nHeslo chráni zariadenie v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje PIN.\n\nPIN chráni telefón v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje vzor.\n\nVzor chráni telefón v prípade jeho straty alebo odcudzenia."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Na nastavenie odomknutia odtlačkom prsta alebo tvárou sa vyžaduje heslo.\n\nHeslo chráni telefón v prípade jeho straty alebo odcudzenia."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Týmto odstránite snímky a model odtlačku prsta „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“, ktoré sú uložené vo vašom telefóne."</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Týmto odstránite snímky a model odtlačku prsta „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“, ktoré sú uložené vo vašom tablete"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Týmto odstránite snímky a model odtlačku prsta „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“, ktoré sú uložené vo vašom zariadení"</string>
diff --git a/res-product/values-sl/strings.xml b/res-product/values-sl/strings.xml
index d6d8293..2cc05fd 100644
--- a/res-product/values-sl/strings.xml
+++ b/res-product/values-sl/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Za nastavitev odklepanja z obrazom je potrebna koda PIN.\n\nKoda PIN ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Za nastavitev odklepanja z obrazom je potreben vzorec.\n\nVzorec ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Za nastavitev odklepanja z obrazom je potrebno geslo.\n\nGeslo ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potrebna koda PIN.\n\nKoda PIN ščiti tablični računalnik, če ga izgubite ali vam ga ukradejo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potreben vzorec.\n\nVzorec ščiti tablični računalnik, če ga izgubite ali vam ga ukradejo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potrebno geslo.\n\nGeslo ščiti tablični računalnik, če ga izgubite ali vam ga ukradejo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potrebna koda PIN.\n\nKoda PIN ščiti napravo, če jo izgubite ali vam jo ukradejo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potreben vzorec.\n\nVzorec ščiti napravo, če jo izgubite ali vam jo ukradejo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potrebno geslo.\n\nGeslo ščiti napravo, če jo izgubite ali vam jo ukradejo."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potrebna koda PIN.\n\nKoda PIN ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potreben vzorec.\n\nVzorec ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Za nastavitev odklepanja z obrazom in prstnim odtisom je potrebno geslo.\n\nGeslo ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potrebna koda PIN.\n\nKoda PIN ščiti tablični računalnik, če ga izgubite ali vam ga ukradejo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potreben vzorec.\n\nVzorec ščiti tablični računalnik, če ga izgubite ali vam ga ukradejo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potrebno geslo.\n\nGeslo ščiti tablični računalnik, če ga izgubite ali vam ga ukradejo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potrebna koda PIN.\n\nKoda PIN ščiti napravo, če jo izgubite ali vam jo ukradejo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potreben vzorec.\n\nVzorec ščiti napravo, če jo izgubite ali vam jo ukradejo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potrebno geslo.\n\nGeslo ščiti napravo, če jo izgubite ali vam jo ukradejo."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potrebna koda PIN.\n\nKoda PIN ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potreben vzorec.\n\nVzorec ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Za nastavitev odklepanja s prstnim odtisom in odklepanja z obrazom je potrebno geslo.\n\nGeslo ščiti telefon, če ga izgubite ali vam ga ukradejo."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"S tem boste izbrisali v telefonu shranjene slike in model prstnega odtisa, povezane z odtisom »<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>«"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"S tem boste izbrisali v tabličnem računalniku shranjene slike in model prstnega odtisa, povezane z odtisom »<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>«"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"S tem boste izbrisali v napravi shranjene slike in model prstnega odtisa, povezan z odtisom »<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>«"</string>
diff --git a/res-product/values-sq/strings.xml b/res-product/values-sq/strings.xml
index 216751f..4f5de08 100644
--- a/res-product/values-sq/strings.xml
+++ b/res-product/values-sq/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Veçoritë e mbrojtjes së pajisjes nuk do të aktivizohen. Ti nuk do mund të parandalosh që të tjerët të mos e përdorin këtë tablet nëse ai humb ose vidhet."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Veçoritë e mbrojtjes së pajisjes nuk do të aktivizohen. Ti nuk do mund të parandalosh që të tjerët të mos e përdorin këtë pajisje nëse ajo humb ose vidhet."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Veçoritë e mbrojtjes së pajisjes nuk do të aktivizohen. Ti nuk do mund të parandalosh që të tjerët të mos e përdorin këtë telefon nëse ai humb ose vidhet."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Sensori i gjurmës së gishtit është në butonin e energjisë. Ai është butoni i rrafshët pranë butonit të ngritur të volumit në anë të tabletit."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Sensori i gjurmës së gishtit është në butonin e energjisë. Ai është butoni i rrafshët pranë butonit të ngritur të volumit në skajin e pajisjes."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Sensori i gjurmës së gishtit është në butonin e energjisë. Ai është butoni i rrafshët pranë butonit të ngritur të volumit në anë të telefonit."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Sensori i gjurmës së gishtit është në butonin e energjisë. Ai është butoni i rrafshët pranë butonit të ngritur të volumit në skaj të tabletit."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Sensori i gjurmës së gishtit është në butonin e energjisë. Ai është butoni i rrafshët pranë butonit të ngritur të volumit në skaj të pajisjes."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Sensori i gjurmës së gishtit është në butonin e energjisë. Ai është butoni i rrafshët pranë butonit të ngritur të volumit në skaj të telefonit."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Tani mund të përdorësh gjurmën tënde të gishtit për të shkyçur tabletin tënd ose për të verifikuar që je ti, si për shembull kur identifikohesh në aplikacione ose kur miraton një blerje"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Tani mund të përdorësh gjurmën tënde të gishtit për të shkyçur pajisjen tënde ose për të verifikuar që je ti, si për shembull kur identifikohesh në aplikacione ose kur miraton një blerje"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Tani mund të përdorësh gjurmën tënde të gishtit për të shkyçur telefonin tënd ose për të verifikuar që je ti, si për shembull kur identifikohesh në aplikacione ose kur miraton një blerje"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron telefonin nëse të humbet apo ta vjedhin."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me fytyrë\".\n\nMotivi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nKodi PIN e mbron tabletin nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nMotivi e mbron tabletin nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nFjalëkalimi e mbron tabletin nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nKodi PIN e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nMotivi e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nFjalëkalimi e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nKodi PIN e mbron telefonin nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nMotivi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\".\n\nFjalëkalimi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron tabletin nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nMotivi e mbron tabletin nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron tabletin nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nMotivi e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron pajisjen nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Kërkohet një kod PIN për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nKodi PIN e mbron telefonin nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Kërkohet një motiv për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nMotivi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Kërkohet një fjalëkalim për të konfiguruar \"Shkyçjen me gjurmën e gishtit\" dhe \"Shkyçjen me fytyrë\".\n\nFjalëkalimi e mbron telefonin nëse të humbet apo ta vjedhin."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Kjo fshin imazhet e gjurmës së gishtit dhe modelin e lidhur me \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" që ruhen në telefonin tënd"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Kjo fshin imazhet e gjurmës së gishtit dhe modelin e lidhur me \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" që ruhen në tabletin tënd"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Kjo fshin imazhet e gjurmës së gishtit dhe modelin e lidhur me \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" që ruhen në pajisjen tënde"</string>
diff --git a/res-product/values-sr/strings.xml b/res-product/values-sr/strings.xml
index ffd40f1..5b78557 100644
--- a/res-product/values-sr/strings.xml
+++ b/res-product/values-sr/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"За подешавање откључавања лицем неопходан је PIN.\n\nPIN штити телефон ако га изгубите или га неко украде."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"За подешавање откључавања лицем неопходан је шаблон.\n\nШаблон штити телефон ако га изгубите или га неко украде."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"За подешавање откључавања лицем неопходна је лозинка.\n\nЛозинка штити телефон ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"За подешавање откључавања лицем и отиском прста неопходан је PIN.\n\nPIN штити таблет ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"За подешавање откључавања лицем и отиском прста неопходан је шаблон.\n\nШаблон штити таблет ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"За подешавање откључавања лицем и отиском прста неопходна је лозинка.\n\nЛозинка штити таблет ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"За подешавање откључавања лицем и отиском прста неопходан је PIN.\n\nPIN штити уређај ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"За подешавање откључавања лицем и отиском прста неопходан је шаблон.\n\nШаблон штити уређај ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"За подешавање откључавања лицем и отиском прста неопходна је лозинка.\n\nЛозинка штити уређај ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"За подешавање откључавања лицем и отиском прста неопходан је PIN.\n\nPIN штити телефон ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"За подешавање откључавања лицем и отиском прста неопходан је шаблон.\n\nШаблон штити телефон ако га изгубите или га неко украде."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"За подешавање откључавања лицем и отиском прста неопходна је лозинка.\n\nЛозинка штити телефон ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"За подешавање откључавања отиском прста и откључавања лицем неопходан је PIN.\n\nPIN штити таблет ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"За подешавање откључавања отиском прста и откључавања лицем неопходан је шаблон.\n\nШаблон штити таблет ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"За подешавање откључавања отиском прста и откључавања лицем неопходна је лозинка.\n\nЛозинка штити таблет ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"За подешавање откључавања отиском прста и откључавања лицем неопходан је PIN.\n\nPIN штити уређај ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"За подешавање откључавања отиском прста и откључавања лицем неопходан је шаблон.\n\nШаблон штити уређај ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"За подешавање откључавања отиском прста и откључавања лицем неопходна је лозинка.\n\nЛозинка штити уређај ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"За подешавање откључавања отиском прста и откључавања лицем неопходан је PIN.\n\nPIN штити телефон ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"За подешавање откључавања отиском прста и откључавања лицем неопходан је шаблон.\n\nШаблон штити телефон ако га изгубите или га неко украде."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"За подешавање откључавања отиском прста и откључавања лицем неопходна је лозинка.\n\nЛозинка штити телефон ако га изгубите или га неко украде."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Овим се бришу слике и модел отиска прста у вези са отиском <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> који су сачувани на телефону"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Овим се бришу слике и модел отиска прста у вези са отиском <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> који су сачувани на таблету"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Овим се бришу слике и модел отиска прста у вези са отиском <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> који су сачувани на уређају"</string>
diff --git a/res-product/values-sv/strings.xml b/res-product/values-sv/strings.xml
index e112315..fb0f3ef 100644
--- a/res-product/values-sv/strings.xml
+++ b/res-product/values-sv/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Det krävs en pinkod för att konfigurera ansiktslås.\n\nEn pinkod skyddar telefonen om den kommer bort eller blir stulen."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Det krävs ett mönster för att konfigurera ansiktslås.\n\nEtt mönster skyddar telefonen om den kommer bort eller blir stulen."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Det krävs ett lösenord för att konfigurera ansiktslås.\n\nEtt lösenord skyddar telefonen om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Det krävs en pinkod för att konfigurera ansiktslås och fingeravtryckslås.\n\nEn pinkod skyddar surfplattan om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Det krävs ett mönster för att konfigurera ansiktslås och fingeravtryckslås.\n\nEtt mönster skyddar surfplattan om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Det krävs ett lösenord för att konfigurera ansiktslås och fingeravtryckslås.\n\nEtt lösenord skyddar surfplattan om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Det krävs en pinkod för att konfigurera ansiktslås och fingeravtryckslås.\n\nEn pinkod skyddar enheten om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Det krävs ett mönster för att konfigurera ansiktslås och fingeravtryckslås.\n\nEtt mönster skyddar enheten om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Det krävs ett lösenord för att konfigurera ansiktslås och fingeravtryckslås.\n\nEtt lösenord skyddar enheten om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Det krävs en pinkod för att konfigurera ansiktslås och fingeravtryckslås.\n\nEn pinkod skyddar telefonen om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Det krävs ett mönster för att konfigurera ansiktslås och fingeravtryckslås.\n\nEtt mönster skyddar telefonen om den kommer bort eller blir stulen."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Det krävs ett lösenord för att konfigurera ansiktslås och fingeravtryckslås.\n\nEtt lösenord skyddar telefonen om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Det krävs en pinkod för att ställa in fingeravtryckslås och ansiktslås.\n\nEn pinkod skyddar surfplattan om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Det krävs ett mönster för att ställa in fingeravtryckslås och ansiktslås.\n\nEtt mönster skyddar surfplattan om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Det krävs ett lösenord för att ställa in fingeravtryckslås och ansiktslås.\n\nEtt lösenord skyddar surfplattan om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Det krävs en pinkod för att ställa in fingeravtryckslås och ansiktslås.\n\nEn pinkod skyddar enheten om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Det krävs ett mönster för att ställa in fingeravtryckslås och ansiktslås.\n\nEtt mönster skyddar enheten om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Det krävs ett lösenord för att ställa in fingeravtryckslås och ansiktslås.\n\nEtt lösenord skyddar enheten om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Det krävs en pinkod för att ställa in fingeravtryckslås och ansiktslås.\n\nEn pinkod skyddar telefonen om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Det krävs ett mönster för att ställa in fingeravtryckslås och ansiktslås.\n\nEtt mönster skyddar telefonen om den kommer bort eller blir stulen."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Det krävs ett lösenord för att ställa in fingeravtryckslås och ansiktslås.\n\nEtt lösenord skyddar telefonen om den kommer bort eller blir stulen."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Om du gör detta raderas fingeravtrycksbilderna och fingeravtrycksmodellen som har kopplats till <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> och lagras på telefonen"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Om du gör detta raderas fingeravtrycksbilderna och fingeravtrycksmodellen som har kopplats till <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> och lagras på surfplattan"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Om du gör detta raderas fingeravtrycksbilderna och fingeravtrycksmodellen som har kopplats till <xliff:g id="FINGERPRINT_ID">%1$s</xliff:g> och lagras på enheten"</string>
diff --git a/res-product/values-sw/strings.xml b/res-product/values-sw/strings.xml
index 87571a4..c628406 100644
--- a/res-product/values-sw/strings.xml
+++ b/res-product/values-sw/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"PIN inahitajika ili kuweka mipangilio ya Kufungua kwa uso.\n\nPIN hulinda simu ikipotea au ikiibwa."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Mchoro unahitajika ili kuweka mipangilio ya Kufungua kwa uso.\n\nMchoro hulinda simu ikipotea au ikiibwa."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Nenosiri linahitajika ili kuweka mipangilio ya Kufungua kwa uso.\n\nNenosiri hulinda simu ikipotea au ikiibwa."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"PIN inahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nPIN hulinda kompyuta kibao ikipotea au ikiibwa."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Mchoro unahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nMchoro hulinda kompyuta kibao ikipotea au ikiibwa."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Nenosiri linahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nNenosiri hulinda kompyuta kibao ikipotea au ikiibwa."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"PIN inahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nPIN hulinda kifaa kikipotea au kikiibwa."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Mchoro unahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nMchoro hulinda kifaa kikipotea au kikiibwa."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Nenosiri linahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nNenosiri hulinda kifaa kikipotea au kikiibwa."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"PIN inahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nPIN hulinda simu ikipotea au ikiibwa."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Mchoro unahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nMchoro hulinda simu ikipotea au ikiibwa."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Nenosiri linahitajika ili kuweka mipangilio ya Kufungua kwa uso na Kufungua kwa alama ya kidole.\n\nNenosiri hulinda simu ikipotea au ikiibwa."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"PIN inatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nPIN hulinda kishikwambi kikipotea au kikiibwa."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Mchoro unatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nMchoro hulinda kishikwambi kikipotea au kikiibwa."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Nenosiri linatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nNenosiri hulinda kishikwambi kikipotea au kikiibwa."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"PIN inatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nPIN hulinda kifaa kikipotea au kikiibwa."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Mchoro unatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nMchoro hulinda kifaa kikipotea au kikiibwa."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Nenosiri linatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nNenosiri hulinda kifaa kikipotea au kikiibwa."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"PIN inatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nPIN hulinda simu ikipotea au ikiibwa."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Mchoro unatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nMchoro hulinda simu ikipotea au ikiibwa."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Nenosiri linatakikana ili kuweka mipangilio ya Kufungua kwa Alama ya Kidole na Kufungua kwa Uso.\n\nNenosiri hulinda simu ikipotea au ikiibwa."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Hatua hii hufuta miundo na picha za alama ya kidole zinazohusiana na \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' zilizohifadhiwa kwenye simu yako"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Hatua hii hufuta miundo na picha za alama za kidole zinazohusiana na \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' zilizohifadhiwa kwenye kishikwambi chako"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Hatua hii hufuta miundo na picha za alama za kidole zinazohusiana na \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' zilizohifadhiwa kwenye kifaa chako"</string>
@@ -316,7 +316,7 @@
     <string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Utapoteza nafasi na data yako kwenye kompyuta hii ndogo. Huwezi kutendua kitendo hiki."</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="3209762447055039706">"Utapoteza nafasi na data yako kwenye simu hii. Huwezi kutendua kitendo hiki."</string>
     <string name="support_summary" product="default" msgid="2044721479256103419">"Makala ya usaidizi, simu na gumzo"</string>
-    <string name="support_summary" product="tablet" msgid="2588832599234347108">"Makala ya usaidizi, kompyuta kibao na gumzo"</string>
+    <string name="support_summary" product="tablet" msgid="2588832599234347108">"Makala ya usaidizi, kishikwambi na gumzo"</string>
     <string name="support_summary" product="device" msgid="6821511162132497205">"Makala ya usaidizi, kifaa na gumzo"</string>
     <string name="ambient_display_title" product="default" msgid="8027137727044125809">"Gusa mara mbili ili uangalie simu"</string>
     <string name="ambient_display_title" product="tablet" msgid="2347746118188465334">"Gusa mara mbili ili uangalie kompyuta kibao"</string>
diff --git a/res-product/values-ta/strings.xml b/res-product/values-ta/strings.xml
index 0f10934..33dd0f8 100644
--- a/res-product/values-ta/strings.xml
+++ b/res-product/values-ta/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"முகம் காட்டித் திறத்தல் அம்சத்தை அமைக்க \'பின்\' தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவை \'பின்\' பாதுகாக்கும்."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"முகம் காட்டித் திறத்தல் அம்சத்தை அமைக்க பேட்டர்ன் தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பேட்டர்ன் பாதுகாக்கும்."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"முகம் காட்டித் திறத்தல் அம்சத்தை அமைக்க கடவுச்சொல் தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைக் கடவுச்சொல் பாதுகாக்கும்."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க \'பின்\' தேவை.\n\nஉங்கள் டேப்லெட் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவை \'பின்\' பாதுகாக்கும்."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க பேட்டர்ன் தேவை.\n\nஉங்கள் டேப்லெட் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பேட்டர்ன் பாதுகாக்கும்."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க கடவுச்சொல் தேவை.\n\nஉங்கள் டேப்லெட் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைக் கடவுச்சொல் பாதுகாக்கும்."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க \'பின்\' தேவை.\n\nஉங்கள் சாதனம் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவை \'பின்\' பாதுகாக்கும்."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க பேட்டர்ன் தேவை.\n\nஉங்கள் சாதனம் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பேட்டர்ன் பாதுகாக்கும்."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க கடவுச்சொல் தேவை.\n\nஉங்கள் சாதனம் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைக் கடவுச்சொல் பாதுகாக்கும்."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க \'பின்\' தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவை \'பின்\' பாதுகாக்கும்."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க பேட்டர்ன் தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பேட்டர்ன் பாதுகாக்கும்."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"முகம் காட்டித் திறத்தல் அம்சத்தையும் கைரேகை அன்லாக் அம்சத்தையும் அமைக்க கடவுச்சொல் தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைக் கடவுச்சொல் பாதுகாக்கும்."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க பின் (PIN) தேவை.\n\nஉங்கள் டேப்லெட் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பின் (PIN) பாதுகாக்கும்."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க பேட்டர்ன் தேவை.\n\nஉங்கள் டேப்லெட் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பேட்டர்ன் பாதுகாக்கும்."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க கடவுச்சொல் தேவை.\n\nஉங்கள் டேப்லெட் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைக் கடவுச்சொல் பாதுகாக்கும்."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க பின் (PIN) தேவை.\n\nஉங்கள் சாதனம் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பின் (PIN) பாதுகாக்கும்."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க பேட்டர்ன் தேவை.\n\nஉங்கள் சாதனம் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பேட்டர்ன் பாதுகாக்கும்."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க கடவுச்சொல் தேவை.\n\nஉங்கள் சாதனம் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைக் கடவுச்சொல் பாதுகாக்கும்."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க பின் (PIN) தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பின் (PIN) பாதுகாக்கும்."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க பேட்டர்ன் தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைப் பேட்டர்ன் பாதுகாக்கும்."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"கைரேகை அன்லாக் அம்சத்தையும் முகம் காட்டித் திறத்தல் அம்சத்தையும் அமைக்க கடவுச்சொல் தேவை.\n\nஉங்கள் மொபைல் தொலைந்துபோனாலோ திருடுபோனாலோ அதிலுள்ள தரவைக் கடவுச்சொல் பாதுகாக்கும்."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"உங்கள் மொபைலில் சேமிக்கப்பட்டுள்ள, \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' உடன் தொடர்புடைய கைரேகைப் படங்களையும் பதிவையும் இது நீக்கும்"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"உங்கள் டேப்லெட்டில் சேமிக்கப்பட்டுள்ள, \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' உடன் தொடர்புடைய கைரேகைப் படங்களையும் பதிவுவையும் இது நீக்கும்"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"இந்தச் சாதனத்தில் சேமித்து வைக்கப்பட்டிருக்கும் \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' உடன் தொடர்புடைய கைரேகைப் படங்களையும் பதிவுகளையும் இது நீக்கிவிடும்"</string>
diff --git a/res-product/values-te/strings.xml b/res-product/values-te/strings.xml
index cb66d2e..3486980 100644
--- a/res-product/values-te/strings.xml
+++ b/res-product/values-te/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి PIN అవసరం.\n\nఫోన్ పోయినా లేదా దొంగిలించబడినా దాన్ని PIN రక్షిస్తుంది."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి ఆకృతి అవసరం.\n\nఫోన్ పోయినా లేదా దొంగిలించబడినా దాన్ని ఆకృతి రక్షిస్తుంది."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి పాస్‌వర్డ్ అవసరం.\n\nఫోన్ పోయినా లేదా దొంగిలించబడినా దాన్ని పాస్‌వర్డ్ రక్షిస్తుంది."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి PIN అవసరం.\n\nటాబ్లెట్ పోయినా లేదా దొంగిలించబడినా దాన్ని PIN రక్షిస్తుంది."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి ఆకృతి అవసరం.\n\nటాబ్లెట్ పోయినా లేదా దొంగిలించబడినా దాన్ని ఆకృతి రక్షిస్తుంది."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి పాస్‌వర్డ్ అవసరం.\n\nటాబ్లెట్ పోయినా లేదా దొంగిలించబడినా దాన్ని పాస్‌వర్డ్ రక్షిస్తుంది."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి PIN అవసరం.\n\nపరికరం పోయినా లేదా దొంగిలించబడినా దాన్ని PIN రక్షిస్తుంది."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి ఆకృతి అవసరం.\n\nపరికరం పోయినా లేదా దొంగిలించబడినా దాన్ని ఆకృతి రక్షిస్తుంది."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌లను సెటప్ చేయడానికి పాస్‌వర్డ్ అవసరం.\n\nపరికరం పోయినా లేదా దొంగిలించబడినా, పాస్‌వర్డ్ దాన్ని రక్షిస్తుంది."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి PIN అవసరం.\n\nఫోన్ పోయినా లేదా దొంగిలించబడినా దాన్ని PIN రక్షిస్తుంది."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి ఆకృతి అవసరం.\n\nఫోన్ పోయినా లేదా దొంగిలించబడినా దాన్ని ఆకృతి రక్షిస్తుంది."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి పాస్‌వర్డ్ అవసరం.\n\nఫోన్ పోయినా లేదా దొంగిలించబడినా దాన్ని పాస్‌వర్డ్ రక్షిస్తుంది."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి PIN అవసరం.\n\nటాబ్లెట్‌ను పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, PIN దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి ఆకృతి అవసరం.\n\nటాబ్లెట్‌ను పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, ఆకృతి దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"వేలిముద్ర అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేయడానికి పాస్‌వర్డ్ అవసరం.\n\nటాబ్లెట్‌ను పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, పాస్‌వర్డ్ దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి PIN అవసరం.\n\nపరికరాన్ని పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, PIN దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి ఆకృతి అవసరం.\n\nపరికరాన్ని పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, ఆకృతి దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి పాస్‌వర్డ్ అవసరం.\n\nపరికరాన్ని పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, పాస్‌వర్డ్ దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి PIN అవసరం.\n\nఫోన్‌ను పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, PIN దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి ఆకృతి అవసరం.\n\nఫోన్‌ను పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, ఆకృతి దానిని రక్షిస్తుంది."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"వేలిముద్ర అన్‌లాక్, ఫేస్ అన్‌లాక్‌ను సెటప్ చేయడానికి పాస్‌వర్డ్ అవసరం.\n\nఫోన్‌ను పోగొట్టుకున్నా లేదా ఎవరైనా దానిని దొంగిలించినా, పాస్‌వర్డ్ దానిని రక్షిస్తుంది."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"ఇది మీ ఫోన్‌లో స్టోర్ చేయబడిన \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'తో అనుబంధించబడిన వేలిముద్ర ఇమేజ్‌లను, మోడల్‌ను తొలగిస్తుంది"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"ఇది మీ టాబ్లెట్‌లో స్టోర్ చేయబడిన \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'తో అనుబంధించబడిన వేలిముద్ర ఇమేజ్‌లను, మోడల్‌ను తొలగిస్తుంది"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"ఇది మీ పరికరంలో స్టోర్ చేయబడిన \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'తో అనుబంధించబడిన వేలిముద్ర ఇమేజ్‌లను, మోడల్‌ను తొలగిస్తుంది"</string>
diff --git a/res-product/values-th/strings.xml b/res-product/values-th/strings.xml
index 0655b5d..7578091 100644
--- a/res-product/values-th/strings.xml
+++ b/res-product/values-th/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"ต้องมี PIN เพื่อตั้งค่าการปลดล็อกด้วยใบหน้า\n\nPIN จะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"ต้องมีรูปแบบเพื่อตั้งค่าการปลดล็อกด้วยใบหน้า\n\nรูปแบบจะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"ต้องมีรหัสผ่านเพื่อตั้งค่าการปลดล็อกด้วยใบหน้า\n\nรหัสผ่านจะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"ต้องมี PIN เพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nPIN จะช่วยปกป้องแท็บเล็ตในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"ต้องมีรูปแบบเพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nรูปแบบจะช่วยปกป้องแท็บเล็ตในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"ต้องมีรหัสผ่านเพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nรหัสผ่านจะช่วยปกป้องแท็บเล็ตในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"ต้องมี PIN เพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nPIN จะช่วยปกป้องอุปกรณ์ในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"ต้องมีรูปแบบเพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nรูปแบบจะช่วยปกป้องอุปกรณ์ในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"ต้องมีรหัสผ่านเพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nรหัสผ่านจะช่วยปกป้องอุปกรณ์ในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"ต้องมี PIN เพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nPIN จะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"ต้องมีรูปแบบเพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nรูปแบบจะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"ต้องมีรหัสผ่านเพื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ\n\nรหัสผ่านจะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"ต้องมี PIN เพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nPIN จะช่วยปกป้องแท็บเล็ตในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"ต้องมีรูปแบบเพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nรูปแบบจะช่วยปกป้องแท็บเล็ตในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"ต้องมีรหัสผ่านเพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nรหัสผ่านจะช่วยปกป้องแท็บเล็ตในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"ต้องมี PIN เพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nPIN จะช่วยปกป้องอุปกรณ์ในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"ต้องมีรูปแบบเพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nรูปแบบจะช่วยปกป้องอุปกรณ์ในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"ต้องมีรหัสผ่านเพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nรหัสผ่านจะช่วยปกป้องอุปกรณ์ในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"ต้องมี PIN เพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nPIN จะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"ต้องมีรูปแบบเพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nรูปแบบจะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"ต้องมีรหัสผ่านเพื่อตั้งค่าการปลดล็อกด้วยลายนิ้วมือและการปลดล็อกด้วยใบหน้า\n\nรหัสผ่านจะช่วยปกป้องโทรศัพท์ในกรณีที่สูญหายหรือถูกขโมย"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"การดำเนินการนี้จะลบรูปภาพและรูปแบบลายนิ้วมือที่เชื่อมโยงกับ \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ซึ่งจัดเก็บในโทรศัพท์ของคุณ"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"การดำเนินการนี้จะลบรูปภาพและรูปแบบลายนิ้วมือที่เชื่อมโยงกับ \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ซึ่งจัดเก็บในแท็บเล็ตของคุณ"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"การดำเนินการนี้จะลบรูปภาพและรูปแบบลายนิ้วมือที่เชื่อมโยงกับ \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ซึ่งจัดเก็บในอุปกรณ์ของคุณ"</string>
diff --git a/res-product/values-tl/strings.xml b/res-product/values-tl/strings.xml
index 472cf0a..658d60d 100644
--- a/res-product/values-tl/strings.xml
+++ b/res-product/values-tl/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Kinakailangan ang PIN para ma-set up ang Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng PIN ang telepono kung mawala o manakaw ito."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Kinakailangan ang pattern para ma-set up ang Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng pattern ang telepono kung mawala o manakaw ito."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Kinakailangan ang password para ma-set up ang Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng password ang telepono kung mawala o manakaw ito."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Kinakailangan ang PIN para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng PIN ang tablet kung mawala o manakaw ito."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Kinakailangan ang pattern para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng pattern ang tablet kung mawala o manakaw ito."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Kinakailangan ang password para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng password ang tablet kung mawala o manakaw ito."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Kinakailangan ang PIN para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng PIN ang device kung mawala o manakaw ito."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Kinakailangan ang pattern para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng pattern ang device kung mawala o manakaw ito."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Kinakailangan ang password para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng password ang device kung mawala o manakaw ito."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Kinakailangan ang PIN para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng PIN ang telepono kung mawala o manakaw ito."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Kinakailangan ang pattern para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng pattern ang telepono kung mawala o manakaw ito."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Kinakailangan ang password para ma-set up ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint.\n\nPinoprotektahan ng password ang telepono kung mawala o manakaw ito."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Kinakailangan ang PIN para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng PIN ang tablet kung mawala o manakaw ito."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Kinakailangan ang pattern para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng pattern ang tablet kung mawala o manakaw ito."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Kinakailangan ang password para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng password ang tablet kung mawala o manakaw ito."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Kinakailangan ang PIN para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng PIN ang device kung mawala o manakaw ito."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Kinakailangan ang pattern para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng pattern ang device kung mawala o manakaw ito."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Kinakailangan ang password para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng password ang device kung mawala o manakaw ito."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Kinakailangan ang PIN para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng PIN ang telepono kung mawala o manakaw ito."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Kinakailangan ang pattern para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng pattern ang telepono kung mawala o manakaw ito."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Kinakailangan ang password para ma-set up ang Pag-unlock Gamit ang Fingerprint at Pag-unlock Gamit ang Mukha.\n\nPinoprotektahan ng password ang telepono kung mawala o manakaw ito."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Dine-delete nito ang mga larawan at modelo ng fingerprint na nauugnay sa \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' na naka-store sa iyong telepono"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Dine-delete nito ang mga larawan at modelo ng fingerprint na nauugnay sa \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' na naka-store sa iyong tablet"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Dine-delete nito ang mga larawan at modelo ng fingerprint na nauugnay sa \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' na naka-store sa iyong device"</string>
diff --git a/res-product/values-tr/strings.xml b/res-product/values-tr/strings.xml
index 843e330..986d173 100644
--- a/res-product/values-tr/strings.xml
+++ b/res-product/values-tr/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Yüz Tanıma Kilidi kurulumu için PIN gereklidir.\n\nPIN, kaybolması veya çalınması halinde telefonu korur."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Yüz Tanıma Kilidi kurulumu için desen gereklidir.\n\nDesen, kaybolması veya çalınması halinde telefonu korur."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Yüz Tanıma Kilidi kurulumu için şifre gereklidir.\n\nŞifre, kaybolması veya çalınması halinde telefonu korur."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için PIN gereklidir.\n\nPIN, kaybolması veya çalınması halinde tableti korur."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için desen gereklidir.\n\nDesen, kaybolması veya çalınması halinde tableti korur."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için şifre gereklidir.\n\nŞifre, kaybolması veya çalınması halinde tableti korur."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için PIN gereklidir.\n\nPIN, kaybolması veya çalınması halinde cihazı korur."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için desen gereklidir.\n\nDesen, kaybolması veya çalınması halinde cihazı korur."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için şifre gereklidir.\n\nŞifre, kaybolması veya çalınması halinde cihazı korur."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için PIN gereklidir.\n\nPIN, kaybolması veya çalınması halinde telefonu korur."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için desen gereklidir.\n\nDesen, kaybolması veya çalınması halinde telefonu korur."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi kurulumu için şifre gereklidir.\n\nŞifre, kaybolması veya çalınması halinde telefonu korur."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için PIN gereklidir.\n\nPIN, kaybolması veya çalınması halinde tableti korur."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için desen gereklidir.\n\nDesen, kaybolması veya çalınması halinde tableti korur."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için şifre gereklidir.\n\nŞifre, kaybolması veya çalınması halinde tableti korur."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için PIN gereklidir.\n\nPIN, kaybolması veya çalınması halinde cihazı korur."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için desen gereklidir.\n\nDesen, kaybolması veya çalınması halinde cihazı korur."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için şifre gereklidir.\n\nŞifre, kaybolması veya çalınması halinde cihazı korur."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için PIN gereklidir.\n\nPIN, kaybolması veya çalınması halinde telefonu korur."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için desen gereklidir.\n\nDesen, kaybolması veya çalınması halinde telefonu korur."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Parmak İzi Kilidi ve Yüz Tanıma Kilidi kurulumu için şifre gereklidir.\n\nŞifre, kaybolması veya çalınması halinde telefonu korur."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Bu işlem, telefonunuzda saklanan \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ile ilişkilendirilmiş parmak izi resimlerini ve modeli siler"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Bu işlem, tabletinizde saklanan \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ile ilişkilendirilmiş parmak izi resimlerini ve modeli siler"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Bu işlem, cihazınızda saklanan \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" ile ilişkilendirilmiş parma izi resimlerini ve modeli siler"</string>
diff --git a/res-product/values-uk/strings.xml b/res-product/values-uk/strings.xml
index 1fbb698..f62db8c 100644
--- a/res-product/values-uk/strings.xml
+++ b/res-product/values-uk/strings.xml
@@ -143,9 +143,9 @@
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="1957425614489669582">"Функції захисту пристрою не буде ввімкнено. Ви не зможете завадити іншим користуватися цим планшетом, якщо його буде втрачено чи викрадено."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Функції захисту пристрою не буде ввімкнено. Ви не зможете завадити іншим користуватися цим пристроєм, якщо його буде втрачено чи викрадено."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Функції захисту пристрою не буде ввімкнено. Ви не зможете завадити іншим користуватися цим телефоном, якщо його буде втрачено чи викрадено."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Сканер відбитків пальців розташовано на кнопці живлення. Це плоска кнопка поруч із випуклою кнопкою гучності на бічній крайці планшета."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Сканер відбитків пальців розташовано на кнопці живлення. Це плоска кнопка поруч із випуклою кнопкою гучності на бічній крайці пристрою."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Сканер відбитків пальців розташовано на кнопці живлення. Це плоска кнопка поруч із випуклою кнопкою гучності на бічній крайці телефона."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Сканер відбитків пальців розташовано на кнопці живлення. Це плоска кнопка поруч із випуклою кнопкою гучності на бічній поверхні планшета."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Сканер відбитків пальців розташовано на кнопці живлення. Це плоска кнопка поруч із випуклою кнопкою гучності на бічній поверхні пристрою."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Сканер відбитків пальців розташовано на кнопці живлення. Це плоска кнопка поруч із випуклою кнопкою гучності на бічній поверхні телефона."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Тепер за допомогою відбитка пальця можна розблоковувати планшет або підтверджувати свою особу (наприклад, щоб входити в додатки чи схвалювати покупки)"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Тепер за допомогою відбитка пальця можна розблоковувати пристрій або підтверджувати свою особу (наприклад, щоб входити в додатки чи схвалювати покупки)"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Тепер за допомогою відбитка пальця можна розблоковувати телефон або підтверджувати свою особу (наприклад, щоб входити в додатки чи схвалювати покупки)"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Щоб налаштувати фейс-контроль, потрібен PIN-код.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Щоб налаштувати фейс-контроль, потрібен ключ.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Щоб налаштувати фейс-контроль, потрібен пароль.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен PIN-код.\n\nВін захищає планшет у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен ключ.\n\nВін захищає планшет у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен пароль.\n\nВін захищає планшет у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен PIN-код.\n\nВін захищає пристрій у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен ключ.\n\nВін захищає пристрій у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен пароль.\n\nВін захищає пристрій у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен PIN-код.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен ключ.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Щоб налаштувати фейс-контроль або розблокування відбитком пальця, потрібен пароль.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен PIN-код.\n\nВін захищає планшет у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен ключ.\n\nВін захищає планшет у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен пароль.\n\nВін захищає планшет у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен PIN-код.\n\nВін захищає пристрій у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен ключ.\n\nВін захищає пристрій у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен пароль.\n\nВін захищає пристрій у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен PIN-код.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен ключ.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Щоб налаштувати розблокування відбитком пальця або фейс-контроль, потрібен пароль.\n\nВін захищає телефон у разі його втрати чи викрадення."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Буде видалено зображення й модель відбитка пальця \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", що зберігаються на вашому телефоні"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Буде видалено зображення й модель відбитка пальця \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", що зберігаються на вашому планшеті"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Буде видалено зображення й модель відбитка пальця \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\", що зберігаються на вашому пристрої"</string>
diff --git a/res-product/values-ur/strings.xml b/res-product/values-ur/strings.xml
index 7b413ad..a63da6f 100644
--- a/res-product/values-ur/strings.xml
+++ b/res-product/values-ur/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"‏فیس اَنلاک سیٹ اپ کرنے کے لیے PIN درکار ہوتا ہے۔\n\n‫PIN فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"فیس اَنلاک سیٹ اپ کرنے کے لیے پیٹرن درکار ہوتا ہے۔\n\nپیٹرن فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"فیس اَنلاک سیٹ اپ کرنے کے لیے پاس ورڈ درکار ہوتا ہے۔\n\nپاس ورڈ فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"‏فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے PIN درکار ہوتا ہے۔\n\nPIN ٹیبلیٹ کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے پیٹرن درکار ہوتا ہے۔\n\nپیٹرن ٹیبلیٹ کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے پاس ورڈ درکار ہوتا ہے۔\n\nپاس ورڈ ٹیبلیٹ کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"‏فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے PIN درکار ہوتا ہے۔\n\nPIN آلے کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے پیٹرن درکار ہوتا ہے۔\n\nپیٹرن آلے کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے پاس ورڈ درکار ہوتا ہے۔\n\nپاس ورڈ آلے کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"‏فیس اَنلاک اور فنگر پرنٹ اَنلاک کو سیٹ اپ کرنے کے لیے PIN درکار ہوتا ہے۔\n\n‫PIN فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے پیٹرن درکار ہوتا ہے۔\n\nپیٹرن فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے پاس ورڈ درکار ہوتا ہے۔\n\nپاس ورڈ فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"‏فنگر پرنٹ ان لاک اور فیس اَنلاک کو سیٹ اپ کرنے کے لیے PIN درکار ہوتا ہے۔\n\nPIN ٹیبلیٹ کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"فنگر پرنٹ ان لاک اور فیس اَنلاک کو سیٹ اپ کرنے کے لیے پیٹرن درکار ہوتا ہے۔\n\nپیٹرن ٹیبلیٹ کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"فنگر پرنٹ ان لاک اور فیس اَنلاک کو سیٹ اپ کرنے کے لیے پاس ورڈ درکار ہوتا ہے۔\n\nپاس ورڈ ٹیبلیٹ کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"‏فنگر پرنٹ ان لاک اور فیس اَنلاک کو سیٹ اپ کرنے کے لیے PIN درکار ہوتا ہے۔\n\nPIN آلے کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"فنگر پرنٹ ان لاک اور فیس ان لاک کو سیٹ اپ کرنے کے لیے پیٹرن درکار ہوتا ہے۔\n\nپیٹرن آلے کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"فیس اَنلاک اور فنگر پرنٹ اَن لاک کو سیٹ اپ کرنے کے لیے پاس ورڈ درکار ہوتا ہے۔\n\nپاس ورڈ آلے کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"‏فنگر پرنٹ ان لاک اور فیس اَنلاک کو سیٹ اپ کرنے کے لیے PIN درکار ہوتا ہے۔\n\n‫PIN فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"فنگر پرنٹ ان لاک اور فیس اَنلاک کو سیٹ اپ کرنے کے لیے پیٹرن درکار ہوتا ہے۔\n\nپیٹرن فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"فنگر پرنٹ ان لاک اور فیس اَن لاک کو سیٹ اپ کرنے کے لیے پاس ورڈ درکار ہوتا ہے۔\n\nپاس ورڈ فون کے گم یا چوری ہونے پر اس کی حفاظت کرتا ہے۔"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"اس سے آپ کے فون پر اسٹور کردہ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' سے وابستہ فنگر پرنٹ کی تصاویر اور ماڈل حذف ہو جائیں گے"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"اس سے آپ کے ٹیبلیٹ پر اسٹور کردہ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' سے وابستہ فنگر پرنٹ کی تصاویر اور ماڈل حذف ہو جائیں گے"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"اس سے آپ کے آلے پر اسٹور کردہ \'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' سے وابستہ فنگر پرنٹ کی تصاویر اور ماڈل حذف ہو جائیں گے"</string>
diff --git a/res-product/values-uz/strings.xml b/res-product/values-uz/strings.xml
index 70f4c8b..430886b 100644
--- a/res-product/values-uz/strings.xml
+++ b/res-product/values-uz/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Yuz bilan ochish funksiyalarini sozlash uchun PIN kod belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, PIN kod undagi maʼlumotlarni himoyalaydi."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Yuz bilan ochish funksiyalarini sozlash uchun grafik kalit belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, grafik kalit undagi maʼlumotlarni himoyalaydi."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Yuz bilan ochish funksiyalarini sozlash uchun parol belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, parol undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun PIN kod belgilanishi zarur.\n\nPlanshet yoʻqolib qolsa yoki oʻgʻirlansa, PIN kod undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun grafik kalit belgilanishi zarur.\n\nPlanshet yoʻqolib qolsa yoki oʻgʻirlansa, grafik kalit undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun parol belgilanishi zarur.\n\nPlanshet yoʻqolib qolsa yoki oʻgʻirlansa, parol undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun PIN kod belgilanishi zarur.\n\nQurilma yoʻqolib qolsa yoki oʻgʻirlansa, PIN kod undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun grafik kalit belgilanishi zarur.\n\nQurilma yoʻqolib qolsa yoki oʻgʻirlansa, grafik kalit undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun parol belgilanishi zarur.\n\nQurilma yoʻqolib qolsa yoki oʻgʻirlansa, parol undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun PIN kod belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, PIN kod undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun grafik kalit belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, grafik kalit undagi maʼlumotlarni himoyalaydi."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Yuz va barmoq izi bilan ochish funksiyalarini sozlash uchun parol belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, parol undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun PIN kod belgilanishi zarur.\n\nPlanshet yoʻqolib qolsa yoki oʻgʻirlansa, PIN kod undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun grafik kalit belgilanishi zarur.\n\nPlanshet yoʻqolib qolsa yoki oʻgʻirlansa, grafik kalit undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun parol belgilanishi zarur.\n\nPlanshet yoʻqolib qolsa yoki oʻgʻirlansa, parol undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun PIN kod belgilanishi zarur.\n\nQurilma yoʻqolib qolsa yoki oʻgʻirlansa, PIN kod undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun grafik kalit belgilanishi zarur.\n\nQurilma yoʻqolib qolsa yoki oʻgʻirlansa, grafik kalit undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun parol belgilanishi zarur.\n\nQurilma yoʻqolib qolsa yoki oʻgʻirlansa, parol undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun PIN kod belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, PIN kod undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun grafik kalit belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, grafik kalit undagi maʼlumotlarni himoyalaydi."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Barmoq izi va yuz bilan ochish funksiyalarini sozlash uchun parol belgilanishi zarur.\n\nTelefon yoʻqolib qolsa yoki oʻgʻirlansa, parol undagi maʼlumotlarni himoyalaydi."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Bunda telefoningizga saqlangan “<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>” barmoq iziga oid tasvir va modellar oʻchirib tashlanadi"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Bunda planshetingizga saqlangan “<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>” barmoq iziga oid tasvir va modellar oʻchirib tashlanadi"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Bunda qurilmangizga saqlangan “<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>” barmoq iziga oid tasvir va modellar oʻchirib tashlanadi"</string>
diff --git a/res-product/values-vi/strings.xml b/res-product/values-vi/strings.xml
index e47a4e0..58dbabc 100644
--- a/res-product/values-vi/strings.xml
+++ b/res-product/values-vi/strings.xml
@@ -144,8 +144,8 @@
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Các tính năng bảo vệ thiết bị sẽ không được bật. Bạn sẽ không thể ngăn người khác sử dụng thiết bị này nếu thiết bị bị mất hoặc bị đánh cắp."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Các tính năng bảo vệ thiết bị sẽ không được bật. Bạn sẽ không thể ngăn người khác sử dụng điện thoại này nếu điện thoại bị mất hoặc bị đánh cắp."</string>
     <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Cảm biến vân tay nằm trên nút nguồn. Đó là nút phẳng bên cạnh nút âm lượng nhô lên trên cạnh của máy tính bảng."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Cảm biến vân tay nằm trên nút nguồn. Đó là nút phẳng bên cạnh nút tăng âm lượng trên cạnh của thiết bị."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Cảm biến vân tay nằm trên nút nguồn. Đó là nút phẳng bên cạnh nút tăng âm lượng trên cạnh của điện thoại."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Cảm biến vân tay nằm trên nút nguồn. Đó là nút phẳng bên cạnh nút tăng âm lượng nhô lên trên cạnh của thiết bị."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Cảm biến vân tay nằm trên nút nguồn. Đó là nút phẳng bên cạnh nút tăng âm lượng nhô lên trên cạnh của điện thoại."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Giờ đây, bạn có thể dùng vân tay để mở khoá máy tính bảng hoặc xác minh danh tính, chẳng hạn như khi bạn đăng nhập vào ứng dụng hoặc phê duyệt giao dịch mua"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Giờ đây, bạn có thể dùng vân tay để mở khoá thiết bị hoặc xác minh danh tính, chẳng hạn như khi bạn đăng nhập vào ứng dụng hoặc phê duyệt giao dịch mua"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Giờ đây, bạn có thể dùng vân tay để mở khoá điện thoại hoặc xác minh danh tính, chẳng hạn như khi bạn đăng nhập vào các ứng dụng hoặc phê duyệt một giao dịch mua"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Bạn cần phải nhập mã PIN để thiết lập tính năng Mở khóa bằng khuôn mặt.\n\nMã PIN giúp bảo vệ điện thoại trong trường hợp bị mất hoặc bị đánh cắp."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Bạn cần phải nhập hình mở khóa để thiết lập tính năng Mở khóa bằng khuôn mặt.\n\nHình mở khóa giúp bảo vệ điện thoại trong trường hợp bị mất hoặc bị đánh cắp."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Bạn cần phải nhập mật khẩu để thiết lập tính năng Mở khóa bằng khuôn mặt.\n\nMật khẩu giúp bảo vệ điện thoại trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Bạn cần phải nhập mã PIN để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nMã PIN giúp bảo vệ máy tính bảng trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Bạn cần phải nhập hình mở khóa để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nHình mở khóa giúp bảo vệ máy tính bảng trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Bạn cần phải nhập mật khẩu để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nMật khẩu giúp bảo vệ máy tính bảng trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Bạn cần phải nhập mã PIN để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nMã PIN giúp bảo vệ thiết bị trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Bạn cần phải nhập hình mở khóa để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nHình mở khóa giúp bảo vệ thiết bị trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Bạn cần phải nhập mật khẩu để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nMật khẩu giúp bảo vệ thiết bị trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Bạn cần phải nhập mã PIN để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nMã PIN giúp bảo vệ điện thoại trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Bạn cần phải nhập hình mở khóa để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nHình mở khóa giúp bảo vệ điện thoại trong trường hợp bị mất hoặc bị đánh cắp."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Bạn cần phải nhập mật khẩu để thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay.\n\nMật khẩu giúp bảo vệ điện thoại trong trường hợp bị mất hoặc bị đánh cắp."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Bạn cần phải nhập mã PIN để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nMã PIN giúp bảo vệ máy tính bảng trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Bạn cần phải nhập hình mở khoá để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nHình mở khoá giúp bảo vệ máy tính bảng trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Bạn cần phải nhập mật khẩu để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nMật khẩu giúp bảo vệ máy tính bảng trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Bạn cần phải nhập mã PIN để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nMã PIN giúp bảo vệ thiết bị trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Bạn cần phải nhập hình mở khoá để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nHình mở khoá giúp bảo vệ thiết bị trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Bạn cần phải nhập mật khẩu để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nMật khẩu giúp bảo vệ thiết bị trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Bạn cần phải nhập mã PIN để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nMã PIN giúp bảo vệ điện thoại trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Bạn cần phải nhập hình mở khoá để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nHình mở khoá giúp bảo vệ điện thoại trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Bạn cần phải nhập mật khẩu để thiết lập các tính năng Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt.\n\nMật khẩu giúp bảo vệ điện thoại trong trường hợp bị thất lạc hoặc bị mất cắp."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Thao tác này sẽ xoá các hình ảnh và mẫu vân tay liên kết với \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" được lưu trữ trên điện thoại của bạn"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Thao tác này sẽ xoá các hình ảnh và mẫu vân tay liên kết với \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" được lưu trữ trên máy tính bảng của bạn"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Thao tác này sẽ xoá các hình ảnh và mẫu vân tay liên kết với \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" được lưu trữ trên thiết bị của bạn"</string>
diff --git a/res-product/values-zh-rCN/strings.xml b/res-product/values-zh-rCN/strings.xml
index f5f3087..56c4f0b 100644
--- a/res-product/values-zh-rCN/strings.xml
+++ b/res-product/values-zh-rCN/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"必须设置 PIN 码,才能设置人脸解锁。\n\n手机丢失或被盗时,PIN 码可为其提供保护。"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"必须设置解锁图案,才能设置人脸解锁。\n\n手机丢失或被盗时,解锁图案可为其提供保护。"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"必须设置密码,才能设置人脸解锁。\n\n手机丢失或被盗时,密码可为其提供保护。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"必须设置 PIN 码,才能设置人脸解锁和指纹解锁。\n\n平板电脑丢失或被盗时,PIN 码可为其提供保护。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"必须设置解锁图案,才能设置人脸解锁和指纹解锁。\n\n平板电脑丢失或被盗时,解锁图案可为其提供保护。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"必须设置密码,才能设置人脸解锁和指纹解锁。\n\n平板电脑丢失或被盗时,密码可为其提供保护。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"必须设置 PIN 码,才能设置人脸解锁和指纹解锁。\n\n设备丢失或被盗时,PIN 码可为其提供保护。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"必须设置解锁图案,才能设置人脸解锁和指纹解锁。\n\n设备丢失或被盗时,解锁图案可为其提供保护。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"必须设置密码,才能设置人脸解锁和指纹解锁。\n\n设备丢失或被盗时,密码可为其提供保护。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"必须设置 PIN 码,才能设置人脸解锁和指纹解锁。\n\n手机丢失或被盗时,PIN 码可为其提供保护。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"必须设置解锁图案,才能设置人脸解锁和指纹解锁。\n\n手机丢失或被盗时,解锁图案可为其提供保护。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"必须设置密码,才能设置人脸解锁和指纹解锁。\n\n手机丢失或被盗时,密码可为其提供保护。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"必须设置 PIN 码,才能设置指纹解锁和人脸解锁。\n\n平板电脑丢失或被盗时,PIN 码可为其提供保护。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"必须设置解锁图案,才能设置指纹解锁和人脸解锁。\n\n平板电脑丢失或被盗时,解锁图案可为其提供保护。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"必须设置密码,才能设置指纹解锁和人脸解锁。\n\n平板电脑丢失或被盗时,密码可为其提供保护。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"必须设置 PIN 码,才能设置指纹解锁和人脸解锁。\n\n设备丢失或被盗时,PIN 码可为其提供保护。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"必须设置解锁图案,才能设置指纹解锁和人脸解锁。\n\n设备丢失或被盗时,解锁图案可为其提供保护。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"必须设置密码,才能设置指纹解锁和人脸解锁。\n\n设备丢失或被盗时,密码可为其提供保护。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"必须设置 PIN 码,才能设置指纹解锁和人脸解锁。\n\n手机丢失或被盗时,PIN 码可为其提供保护。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"必须设置解锁图案,才能设置指纹解锁和人脸解锁。\n\n手机丢失或被盗时,解锁图案可为其提供保护。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"必须设置密码,才能设置指纹解锁和人脸解锁。\n\n手机丢失或被盗时,密码可为其提供保护。"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"确认删除后,手机上存储的与“<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”关联的指纹图像和模型将被删除"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"确认删除后,平板电脑上存储的与“<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”关联的指纹图像和模型将被删除"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"确认删除后,设备上存储的与“<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>”关联的指纹图像和模型将被删除"</string>
diff --git a/res-product/values-zh-rHK/strings.xml b/res-product/values-zh-rHK/strings.xml
index e6f16bb..4021a4d 100644
--- a/res-product/values-zh-rHK/strings.xml
+++ b/res-product/values-zh-rHK/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"你必須先設定 PIN,才能設定「面孔解鎖」。\n\n手機遺失或被盜時,PIN 可保護手機中的資料。"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"你必須先設定圖案,才能設定「面孔解鎖」。\n\n手機遺失或被盜時,圖案可保護手機中的資料。"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"你必須先設定密碼,才能設定「面孔解鎖」。\n\n手機遺失或被盜時,密碼可保護手機中的資料。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"你必須先設定 PIN,才能設定「面孔解鎖」和「指紋解鎖」。\n\n平板電腦遺失或被盜時,PIN 可保護平板電腦中的資料。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"你必須先設定圖案,才能設定「面孔解鎖」和「指紋解鎖」。\n\n平板電腦遺失或被盜時,圖案可保護平板電腦中的資料。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"你必須先設定密碼,才能設定「面孔解鎖」和「指紋解鎖」。\n\n平板電腦遺失或被盜時,密碼可保護平板電腦中的資料。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"你必須先設定 PIN,才能設定「面孔解鎖」和「指紋解鎖」。\n\n裝置遺失或被盜時,PIN 可保護裝置中的資料。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"你必須先設定圖案,才能設定「面孔解鎖」和「指紋解鎖」。\n\n裝置遺失或被盜時,圖案可保護裝置中的資料。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"你必須先設定密碼,才能設定「面孔解鎖」和「指紋解鎖」。\n\n裝置遺失或被盜時,密碼可保護裝置中的資料。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"你必須先設定 PIN,才能設定「面孔解鎖」和「指紋解鎖」。\n\n手機遺失或被盜時,PIN 可保護手機中的資料。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"你必須先設定圖案,才能設定「面孔解鎖」和「指紋解鎖」。\n\n手機遺失或被盜時,圖案可保護手機中的資料。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"你必須先設定密碼,才能設定「面孔解鎖」和「指紋解鎖」。\n\n手機遺失或被盜時,密碼可保護手機中的資料。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"你需要先設定 PIN,才能設定「指紋解鎖」和「面孔解鎖」。\n\n平板電腦遺失或被盜時,PIN 可保護平板電腦中的資料。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"你需要先設定圖案,才能設定「指紋解鎖」和「面孔解鎖」。\n\n平板電腦遺失或被盜時,圖案可保護平板電腦中的資料。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"你需要先設定密碼,才能設定「指紋解鎖」和「面孔解鎖」。\n\n平板電腦遺失或被盜時,密碼可保護平板電腦中的資料。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"你需要先設定 PIN,才能設定「指紋解鎖」和「面孔解鎖」。\n\n裝置遺失或被盜時,PIN 可保護裝置中的資料。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"你需要先設定圖案,才能設定「指紋解鎖」和「面孔解鎖」。\n\n裝置遺失或被盜時,圖案可保護裝置中的資料。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"你需要先設定密碼,才能設定「指紋解鎖」和「面孔解鎖」。\n\n裝置遺失或被盜時,密碼可保護裝置中的資料。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"你需要先設定 PIN,才能設定「指紋解鎖」和「面孔解鎖」。\n\n手機遺失或被盜時,PIN 可保護手機中的資料。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"你需要先設定圖案,才能設定「指紋解鎖」和「面孔解鎖」。\n\n手機遺失或被盜時,圖案可保護手機中的資料。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"你需要先設定密碼,才能設定「指紋解鎖」和「面孔解鎖」。\n\n手機遺失或被盜時,密碼可保護手機中的資料。"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"此操作會刪除與手機上儲存的「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」相關聯的指紋圖像和模型"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"此操作會刪除與平板電腦上儲存的「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」相關聯的指紋圖像和模型"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"此操作會刪除與裝置上儲存的「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」相關聯的指紋圖像和模型"</string>
diff --git a/res-product/values-zh-rTW/strings.xml b/res-product/values-zh-rTW/strings.xml
index c5b24f7..c010c88 100644
--- a/res-product/values-zh-rTW/strings.xml
+++ b/res-product/values-zh-rTW/strings.xml
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"你必須先設定 PIN 碼,才能設定人臉解鎖功能。\n\n手機遺失或遭竊時,PIN 碼可以保護手機。"</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"你必須先設定解鎖圖案,才能設定人臉解鎖功能。\n\n手機遺失或遭竊時,解鎖圖案可以保護手機。"</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"你必須先設定密碼,才能設定人臉解鎖功能。\n\n手機遺失或遭竊時,密碼可以保護手機。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"你必須先設定 PIN 碼,才能設定人臉解鎖和指紋解鎖功能。\n\n平板電腦遺失或遭竊時,PIN 碼可以保護平板電腦。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"你必須先設定解鎖圖案,才能設定人臉解鎖和指紋解鎖功能。\n\n平板電腦遺失或遭竊時,解鎖圖案可以保護平板電腦。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"你必須先設定密碼,才能設定人臉解鎖和指紋解鎖功能。\n\n平板電腦遺失或遭竊時,密碼可以保護平板電腦。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"你必須先設定 PIN 碼,才能設定人臉解鎖和指紋解鎖功能。\n\n裝置遺失或遭竊時,PIN 碼可以保護裝置。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"你必須先設定解鎖圖案,才能設定人臉解鎖和指紋解鎖功能。\n\n裝置遺失或遭竊時,解鎖圖案可以保護裝置。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"你必須先設定密碼,才能設定人臉解鎖和指紋解鎖功能。\n\n裝置遺失或遭竊時,密碼可以保護裝置。"</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"你必須先設定 PIN 碼,才能設定人臉解鎖和指紋解鎖功能。\n\n手機遺失或遭竊時,PIN 碼可以保護手機。"</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"你必須先設定解鎖圖案,才能設定人臉解鎖和指紋解鎖功能。\n\n手機遺失或遭竊時,解鎖圖案可以保護手機。"</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"你必須先設定密碼,才能設定人臉解鎖和指紋解鎖功能。\n\n手機遺失或遭竊時,密碼可以保護手機。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"必須先設定 PIN 碼,才能設定指紋解鎖和人臉解鎖功能。\n\n平板電腦遺失或遭竊時,PIN 碼可以保護平板電腦中的資料。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"必須先設定解鎖圖案,才能設定指紋解鎖和人臉解鎖功能。\n\n平板電腦遺失或遭竊時,解鎖圖案可以保護平板電腦中的資料。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"必須先設定密碼,才能設定指紋解鎖和人臉解鎖功能。\n\n平板電腦遺失或遭竊時,密碼可以保護平板電腦中的資料。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"必須先設定 PIN 碼,才能設定指紋解鎖和人臉解鎖功能。\n\n裝置遺失或遭竊時,PIN 碼可以保護裝置中的資料。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"必須先設定解鎖圖案,才能設定指紋解鎖和人臉解鎖功能。\n\n裝置遺失或遭竊時,解鎖圖案可以保護裝置中的資料。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"必須先設定密碼,才能設定指紋解鎖和人臉解鎖功能。\n\n裝置遺失或遭竊時,密碼可以保護裝置中的資料。"</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"必須先設定 PIN 碼,才能設定指紋解鎖和人臉解鎖功能。\n\n手機遺失或遭竊時,PIN 碼可以保護手機中的資料。"</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"必須先設定解鎖圖案,才能設定指紋解鎖和人臉解鎖功能。\n\n手機遺失或遭竊時,解鎖圖案可以保護手機中的資料。"</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"必須先設定密碼,才能設定指紋解鎖和人臉解鎖功能。\n\n手機遺失或遭竊時,密碼可以保護手機中的資料。"</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"這項操作會刪除手機上儲存的「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」相關指紋圖像和模型"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"如果指紋圖像和模型與平板電腦上儲存的「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」相關聯,系統也將一併刪除"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"系統會一併刪除裝置上與「<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>」連結的指紋圖像和模型"</string>
diff --git a/res-product/values-zu/strings.xml b/res-product/values-zu/strings.xml
index 5ead8ab..654dad2 100644
--- a/res-product/values-zu/strings.xml
+++ b/res-product/values-zu/strings.xml
@@ -144,8 +144,8 @@
     <string name="lock_screen_intro_skip_dialog_text" product="device" msgid="7427748422888413977">"Izici zokuvikela idivayisi ngeke zivulwe. Ngeke ukwazi ukugwema abanye ukuthi bangasebenzisi le divayisi uma ilahlekile noma itshontshiwe."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="default" msgid="8970036878014302990">"Izici zokuvikela idivayisi ngeke zivulwe. Ngeke ukwazi ukugwema abanye ukuthi bangasebenzisi le foni uma ilahlekile noma itshontshiwe."</string>
     <string name="security_settings_sfps_enroll_find_sensor_message" product="tablet" msgid="2006739081527422127">"Inzwa yesigxivizo somunwe esenkinobhweni yamandla. Inkinobho eyisicaba eduze enkinobhweni yevolumu ephakanyisiwe emaphethelweni ethebulethi."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Inzwa yesigxivizo somunwe esenkinobhweni yamandla. Inkinobho eyisicaba eduze kwenkinobho yevolumu ephakanyisiwe emaphethelweni edivayisi."</string>
-    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Inzwa yesigxivizo somunwe esenkinobhweni yamandla. Inkinobho eyisicaba eduze kwenkinobho yevolumu ephakanyisiwe emaphethelweni efoni."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="device" msgid="1209233633252372907">"Inzwa yesigxivizo somunwe esenkinobhweni yamandla. Inkinobho eyisicaba eduze kwenkinobho yevolumu ephakanyisiwe onqenqemeni lwedivayisi."</string>
+    <string name="security_settings_sfps_enroll_find_sensor_message" product="default" msgid="6862493139500275821">"Inzwa yesigxivizo somunwe esenkinobhweni yamandla. Inkinobho eyisicaba eduze kwenkinobho yevolumu ephakanyisiwe onqenqeni lwefoni."</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="tablet" msgid="2012126789397819713">"Manje ungasebenzisa isigxivizo somunwe wakho ukuvula ithebulethi yakho noma ukuqinisekisa ukuthi nguwe, njengalapho ungena ngemvume kuma-app noma ugunyaza ukuthenga"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="device" msgid="7119860465479161782">"Manje ungasebenzisa isigxivizo somunwe wakho ukuvula ithebulethi yakho noma ukuqinisekisa ukuthi nguwe, njengalapho ungena ngemvume kuma-app noma ugunyaza ukuthenga"</string>
     <string name="security_settings_fingerprint_enroll_finish_v2_message" product="default" msgid="8255422287180693200">"Manje ungasebenzisa isigxivizo somunwe wakho ukuvula ithebulethi yakho noma ukuqinisekisa ukuthi nguwe, njengalapho ungena ngemvume kuma-app noma ugunyaza ukuthenga"</string>
@@ -179,15 +179,15 @@
     <string name="lock_screen_pin_skip_face_message" product="default" msgid="358903382559327157">"Iphinikhodi iyadingeka ukusetha Ukuvula ngobuso.\n\nIphinikhodi ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
     <string name="lock_screen_pattern_skip_face_message" product="default" msgid="6400426500859622964">"Iphethini iyadingeka ukusetha Ukuvula ngobuso.\n\nIphethini ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
     <string name="lock_screen_password_skip_face_message" product="default" msgid="1555954661782997039">"Iphasiwedi iyadingeka ukusetha Ukuvula ngobuso.\n\nIphasiwedi ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="3792419626110520922">"Iphinikhodi iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphinikhodi ivikela ithebulethi uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="2937217199563914791">"Iphethini iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphethini ivikela ithebulethi uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="1988360407507443804">"Iphasiwedi iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphasiwedi ivikela ithebulethi uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="4423227124669516582">"Iphinikhodi iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphinikhodi ivikela idivayisi uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="6409777941433213751">"Iphethini iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphethini ivikela idivayisi uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="7939217127900065677">"Iphasiwedi iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphasiwedi ivikela idivayisi uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="2717938545326672010">"Iphinikhodi iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphinikhodi ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="6067309080610183546">"Iphethini iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphethini ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
-    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="4739690336878613804">"Iphasiwedi iyadingeka ukusetha Ukuvula ngobuso Nokuvula Ngesigxivizo Seminwe.\n\nIphasiwedi ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet" msgid="6016574209955764097">"Iphinikhodi iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphinikhodi ivikela ithebulethi uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet" msgid="5193008948766756870">"Iphethini iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphethini ivikela ithebulethi uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet" msgid="2157871617774498976">"Iphasiwedi iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphasiwedi ivikela ithebulethi uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device" msgid="3023595865822720071">"Iphinikhodi iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphinikhodi ivikela idivayisi uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device" msgid="3039110875534893916">"Iphethini iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphethini ivikela idivayisi uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device" msgid="6506194961404887073">"Iphasiwedi iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphasiwedi ivikela idivayisi uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default" msgid="6614355211073480369">"Iphinikhodi iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphinikhodi ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default" msgid="969489650005656159">"Iphethini iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphethini ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default" msgid="2934343185175325368">"Iphasiwedi iyadingeka ukuze usethe Ukuvula ngesigxivizo somunwe kanye Nokuvula Ngobuso.\n\nIphasiwedi ivikela ifoni uma ilahlekile noma intshontshiwe."</string>
     <string name="fingerprint_v2_delete_message" product="default" msgid="8723083814238510088">"Lokhu kusula imifanekiso yesigxivizo somunwe nemodeli ehambisana ne-\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' egcinwe kufoni yakho"</string>
     <string name="fingerprint_v2_delete_message" product="tablet" msgid="527375244730792698">"Lokhu kusula imifanekiso yesigxivizo somunwe nemodeli ehambisana ne-\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' egcinwe kwithebulethi yakho"</string>
     <string name="fingerprint_v2_delete_message" product="device" msgid="4549780655045100171">"Lokhu kusula izithombe zezigxivizo zeminwe nemodeli ehambisana ne-\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ezigcinwe kwidivayisi yakho"</string>
diff --git a/res-product/values/config.xml b/res-product/values/config.xml
index ba49418..86af614 100755
--- a/res-product/values/config.xml
+++ b/res-product/values/config.xml
@@ -19,9 +19,6 @@
     <item name="a11y_timeout_banner" type="raw" product="default">@raw/accessibility_timeout_banner</item>
     <item name="a11y_timeout_banner" type="raw" product="tablet">@raw/accessibility_timeout_banner_tablet</item>
 
-    <item name="a11y_shortcut_type_triple_tap" type="raw" product="default">@raw/accessibility_shortcut_type_triple_tap</item>
-    <item name="a11y_shortcut_type_triple_tap" type="raw" product="tablet">@raw/accessibility_shortcut_type_triple_tap_tablet</item>
-
     <item name="a11y_color_inversion_banner" type="raw" product="default">@raw/accessibility_color_inversion_banner</item>
     <item name="a11y_color_inversion_banner" type="raw" product="tablet">@raw/accessibility_color_inversion_banner_tablet</item>
 
diff --git a/res-product/values/drawables.xml b/res-product/values/drawables.xml
index 68b2115..01fbc32 100644
--- a/res-product/values/drawables.xml
+++ b/res-product/values/drawables.xml
@@ -14,45 +14,9 @@
      limitations under the License.
 -->
 <resources>
-    <drawable name="a11y_button_preview_large_floating_menu" product="default">@drawable/accessibility_button_preview_large_floating_menu</drawable>
-    <drawable name="a11y_button_preview_large_floating_menu" product="tablet">@drawable/accessibility_button_preview_large_floating_menu_tablet</drawable>
-
-    <drawable name="a11y_button_preview_small_floating_menu" product="default">@drawable/accessibility_button_preview_small_floating_menu</drawable>
-    <drawable name="a11y_button_preview_small_floating_menu" product="tablet">@drawable/accessibility_button_preview_small_floating_menu_tablet</drawable>
-
-    <drawable name="a11y_button_navigation" product="default">@drawable/accessibility_button_navigation</drawable>
-    <drawable name="a11y_button_navigation" product="tablet">@drawable/accessibility_button_navigation_tablet</drawable>
-
     <drawable name="a11y_captioning_banner" product="default">@drawable/accessibility_captioning_banner</drawable>
     <drawable name="a11y_captioning_banner" product="tablet">@drawable/accessibility_captioning_banner_tablet</drawable>
 
-    <drawable name="a11y_shortcut_type_hardware" product="default">@drawable/accessibility_shortcut_type_hardware</drawable>
-    <drawable name="a11y_shortcut_type_hardware" product="tablet">@drawable/accessibility_shortcut_type_hardware_tablet</drawable>
-
-    <drawable name="a11y_shortcut_type_software" product="default">@drawable/accessibility_shortcut_type_software</drawable>
-    <drawable name="a11y_shortcut_type_software" product="tablet">@drawable/accessibility_shortcut_type_software_tablet</drawable>
-
-    <drawable name="a11y_shortcut_type_software_floating" product="default">@drawable/accessibility_shortcut_type_software_floating</drawable>
-    <drawable name="a11y_shortcut_type_software_floating" product="tablet">@drawable/accessibility_shortcut_type_software_floating_tablet</drawable>
-
-    <drawable name="a11y_shortcut_type_software_gesture" product="default">@drawable/accessibility_shortcut_type_software_gesture</drawable>
-    <drawable name="a11y_shortcut_type_software_gesture" product="tablet">@drawable/accessibility_shortcut_type_software_gesture_tablet</drawable>
-
-    <drawable name="a11y_shortcut_type_software_gesture_talkback" product="default">@drawable/accessibility_shortcut_type_software_gesture_talkback</drawable>
-    <drawable name="a11y_shortcut_type_software_gesture_talkback" product="tablet">@drawable/accessibility_shortcut_type_software_gesture_talkback_tablet</drawable>
-
-    <drawable name="a11y_gesture_navigation_two_finger_preview" product="default">@drawable/accessibility_gesture_navigation_two_finger_preview</drawable>
-    <drawable name="a11y_gesture_navigation_two_finger_preview" product="tablet">@drawable/accessibility_gesture_navigation_two_finger_preview_tablet</drawable>
-
-    <drawable name="a11y_gesture_navigation_three_finger_preview" product="default">@drawable/accessibility_gesture_navigation_three_finger_preview</drawable>
-    <drawable name="a11y_gesture_navigation_three_finger_preview" product="tablet">@drawable/accessibility_gesture_navigation_three_finger_preview_tablet</drawable>
-
-    <drawable name="a11y_button_preview_two_finger" product="default">@drawable/accessibility_button_preview_two_finger</drawable>
-    <drawable name="a11y_button_preview_two_finger" product="tablet">@drawable/accessibility_button_preview_two_finger_tablet</drawable>
-
-    <drawable name="a11y_button_preview_three_finger" product="default">@drawable/accessibility_button_preview_three_finger</drawable>
-    <drawable name="a11y_button_preview_three_finger" product="tablet">@drawable/accessibility_button_preview_three_finger_tablet</drawable>
-
     <drawable name="a11y_magnification_mode_fullscreen" product="default">@drawable/accessibility_magnification_mode_fullscreen</drawable>
     <drawable name="a11y_magnification_mode_fullscreen" product="tablet">@drawable/accessibility_magnification_mode_fullscreen_tablet</drawable>
 
diff --git a/res-product/values/strings.xml b/res-product/values/strings.xml
index 987548a..83963cb 100644
--- a/res-product/values/strings.xml
+++ b/res-product/values/strings.xml
@@ -338,23 +338,23 @@
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face. (default) [CHAR LIMIT=NONE] -->
     <string name="lock_screen_password_skip_face_message" product="default">A password is required to set up Face Unlock.\n\nA password protects the phone if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (tablet) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_pin_skip_biometrics_message" product="tablet">A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the tablet if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="tablet">A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the tablet if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (tablet) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet">A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the tablet if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="tablet">A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the tablet if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (tablet) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_password_skip_biometrics_message" product="tablet">A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the tablet if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="tablet">A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the tablet if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (device) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_pin_skip_biometrics_message" product="device">A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the device if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="device">A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the device if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (device) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_pattern_skip_biometrics_message" product="device">A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the device if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="device">A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the device if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (device) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_password_skip_biometrics_message" product="device">A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the device if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="device">A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the device if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (default) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_pin_skip_biometrics_message" product="default">A PIN is required to set up Face Unlock and Fingerprint Unlock.\n\nA PIN protects the phone if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_pin_skip_biometrics_message" product="default">A PIN is required to set up Fingerprint Unlock and Face Unlock.\n\nA PIN protects the phone if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (default) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_pattern_skip_biometrics_message" product="default">A pattern is required to set up Face Unlock and Fingerprint Unlock.\n\nA pattern protects the phone if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_pattern_skip_biometrics_message" product="default">A pattern is required to set up Fingerprint Unlock and Face Unlock.\n\nA pattern protects the phone if it\u2019s lost or stolen.</string>
     <!-- Dialog text shown when the user tries to skip setting up a screen lock, warning that they can't continue to set up face or fingerprint. (default) [CHAR LIMIT=NONE] -->
-    <string name="lock_screen_password_skip_biometrics_message" product="default">A password is required to set up Face Unlock and Fingerprint Unlock.\n\nA password protects the phone if it\u2019s lost or stolen.</string>
+    <string name="lock_screen_password_skip_biometrics_message" product="default">A password is required to set up Fingerprint Unlock and Face Unlock.\n\nA password protects the phone if it\u2019s lost or stolen.</string>
     <!-- Message shown in a dialog which asks the user to confirm when a single fingerprint gets deleted. [CHAR LIMIT=NONE]-->
     <string name="fingerprint_v2_delete_message" product="default">This deletes the fingerprint images and model associated with \'<xliff:g id="fingerprint_id" example="Fingerprint 2">%1$s</xliff:g>\' that are stored on your phone</string>
     <!-- Message shown in a dialog which asks the user to confirm when a single fingerprint gets deleted. [CHAR LIMIT=NONE]-->
diff --git a/res/color/modes_icon_selectable_background.xml b/res/color/modes_icon_selectable_background.xml
new file mode 100644
index 0000000..f9280c6
--- /dev/null
+++ b/res/color/modes_icon_selectable_background.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ 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.
+  -->
+
+<!-- Color list for the background in each item in the icon picker list. -->
+<selector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+
+    <item android:state_pressed="true" android:color="?androidprv:attr/materialColorPrimary" />
+    <item android:state_selected="true" android:color="?androidprv:attr/materialColorPrimary" />
+    <item android:color="?androidprv:attr/materialColorSecondaryContainer" />
+</selector>
diff --git a/res/color/modes_icon_selectable_icon.xml b/res/color/modes_icon_selectable_icon.xml
new file mode 100644
index 0000000..8a517d5
--- /dev/null
+++ b/res/color/modes_icon_selectable_icon.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ 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.
+  -->
+
+<!-- Color list for the icon in each item in the icon picker list. -->
+<selector
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+
+    <item android:state_pressed="true" android:color="?androidprv:attr/materialColorOnPrimary" />
+    <item android:state_selected="true" android:color="?androidprv:attr/materialColorOnPrimary" />
+    <item android:color="?androidprv:attr/materialColorOnSecondaryContainer" />
+</selector>
diff --git a/res/drawable-night/accessibility_button_navigation.xml b/res/drawable-night/accessibility_button_navigation.xml
deleted file mode 100644
index d6fd485..0000000
--- a/res/drawable-night/accessibility_button_navigation.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-  <path
-      android:pathData="M325.2,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7v-42.2h239V231.9z"
-      android:fillColor="#3D4043"/>
-  <path
-      android:pathData="M269.7,205.2c1.5,0 2.7,1.2 2.7,2.7s-1.2,2.7 -2.7,2.7c-1.5,0 -2.7,-1.2 -2.7,-2.7S268.2,205.2 269.7,205.2zM273.8,214.7v17.6H271v-8.1h-2.7v8.1h-2.7v-17.6c-2.7,-0.2 -5.6,-0.7 -8.1,-1.4l0.7,-2.7c3.5,0.9 7.7,1.4 11.5,1.4c3.8,0 8,-0.4 11.5,-1.4l0.7,2.7C279.4,214 276.5,214.5 273.8,214.7z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M205.7,219.7m-9.4,0a9.4,9.4 0,1 1,18.8 0a9.4,9.4 0,1 1,-18.8 0"
-      android:fillColor="#808589"/>
-  <path
-      android:pathData="M132.1,219.7l16,9.2l0,-18.5z"
-      android:fillColor="#808589"/>
-  <path
-      android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
-      android:fillColor="#808589"/>
-  <path
-      android:pathData="M269.7,255.3c-19.6,0 -35.6,-16 -35.6,-35.6s16,-35.6 35.6,-35.6s35.6,16 35.6,35.6S289.3,255.3 269.7,255.3zM269.7,187.1c-17.9,0 -32.5,14.6 -32.5,32.5c0,17.9 14.6,32.5 32.5,32.5s32.5,-14.6 32.5,-32.5C302.2,201.7 287.6,187.1 269.7,187.1z"
-      android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_navigation_tablet.xml b/res/drawable-night/accessibility_button_navigation_tablet.xml
deleted file mode 100644
index d92b144..0000000
--- a/res/drawable-night/accessibility_button_navigation_tablet.xml
+++ /dev/null
@@ -1,54 +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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M28,0L384,0A28,28 0,0 1,412 28L412,272A28,28 0,0 1,384 300L28,300A28,28 0,0 1,0 272L0,28A28,28 0,0 1,28 0z"
-      android:fillColor="#000000"/>
-  <group>
-    <clip-path
-        android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
-    <path
-        android:pathData="M46.23,204.14h320v48h-320z"
-        android:fillColor="#3D4043"/>
-    <path
-        android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
-        android:fillColor="#ffffff"/>
-    <path
-        android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
-        android:fillColor="#808589"/>
-    <path
-        android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
-        android:fillColor="#808589"/>
-  </group>
-  <path
-      android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
-      android:strokeWidth="3"
-      android:fillColor="#00000000"
-      android:strokeColor="#80868B"/>
-  <path
-      android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
-      android:fillColor="#729CEE"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable-night/accessibility_button_preview_large_floating_menu.xml b/res/drawable-night/accessibility_button_preview_large_floating_menu.xml
deleted file mode 100644
index 74ecbfc..0000000
--- a/res/drawable-night/accessibility_button_preview_large_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:pathData="M325.4,198.2h-40.9c-22.1,0 -40,-18 -40,-40s18,-40 40,-40h40.9v2.6h-40.9c-20.7,0 -37.5,16.8 -37.5,37.5s16.8,37.5 37.5,37.5h40.9V198.2z"
-        android:fillColor="#808589"/>
-    <path
-        android:pathData="M284.3,128.4c-16.5,0 -29.8,13.4 -29.8,29.8c0,16.5 13.4,29.8 29.8,29.8s29.8,-13.4 29.8,-29.8C314.2,141.7 300.9,128.4 284.3,128.4zM284.3,142.7c1.7,0 3.1,1.4 3.1,3.1c0,1.7 -1.4,3.1 -3.1,3.1s-3.1,-1.4 -3.1,-3.1C281.2,144.1 282.7,142.7 284.3,142.7zM289.1,153.7V174H286v-9.4h-3.1v9.4h-3.2v-20.3c-3.1,-0.3 -6.5,-0.8 -9.4,-1.5l0.8,-3.1c4.1,1 8.9,1.5 13.3,1.5s9.2,-0.5 13.3,-1.5l0.8,3.1C295.6,152.9 292.2,153.4 289.1,153.7z"
-        android:fillColor="#D9DBDF"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_large_floating_menu_tablet.xml b/res/drawable-night/accessibility_button_preview_large_floating_menu_tablet.xml
deleted file mode 100644
index 426403f..0000000
--- a/res/drawable-night/accessibility_button_preview_large_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M365.76,226.17h-27.68c-14.95,0 -27.07,-12.18 -27.07,-27.07s12.18,-27.07 27.07,-27.07h27.68v1.76h-27.68c-14.01,0 -25.37,11.37 -25.37,25.37s11.37,25.37 25.37,25.37h27.68v1.62Z"
-      android:fillColor="#80868b"/>
-  <path
-      android:pathData="M337.95,178.94c-11.16,0 -20.16,9.07 -20.16,20.16 0,11.16 9.07,20.16 20.16,20.16s20.16,-9.07 20.16,-20.16c0.07,-11.16 -8.93,-20.16 -20.16,-20.16ZM337.95,188.62c1.15,0 2.1,0.95 2.1,2.1 0,1.15 -0.95,2.1 -2.1,2.1s-2.1,-0.95 -2.1,-2.1c0,-1.15 1.02,-2.1 2.1,-2.1ZM341.2,196.06v13.74h-2.1v-6.36h-2.1v6.36h-2.17v-13.74c-2.1,-0.2 -4.4,-0.54 -6.36,-1.01l0.54,-2.1c2.77,0.68 6.02,1.01 9,1.01s6.23,-0.34 9,-1.01l0.54,2.1c-1.96,0.47 -4.26,0.81 -6.36,1.01Z"
-      android:fillColor="#d9dbdf"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_small_floating_menu.xml b/res/drawable-night/accessibility_button_preview_small_floating_menu.xml
deleted file mode 100644
index 4226086..0000000
--- a/res/drawable-night/accessibility_button_preview_small_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:pathData="M325.4,189.2h-31.7c-17.1,0 -31,-13.9 -31,-31s13.9,-31 31,-31h31.7v2h-31.7c-16,0 -29,13 -29,29s13,29 29,29h31.7V189.2z"
-        android:fillColor="#808589"/>
-    <path
-        android:pathData="M293.6,135.1c-12.8,0 -23.1,10.4 -23.1,23.1c0,12.8 10.4,23.1 23.1,23.1s23.1,-10.4 23.1,-23.1C316.7,145.4 306.4,135.1 293.6,135.1zM293.6,146.2c1.3,0 2.4,1.1 2.4,2.4s-1.1,2.4 -2.4,2.4s-2.4,-1.1 -2.4,-2.4S292.3,146.2 293.6,146.2zM297.3,154.7v15.7h-2.4v-7.3h-2.4v7.3H290v-15.7c-2.4,-0.2 -5,-0.6 -7.3,-1.2l0.6,-2.4c3.2,0.8 6.9,1.2 10.3,1.2s7.1,-0.4 10.3,-1.2l0.6,2.4C302.3,154.1 299.7,154.5 297.3,154.7z"
-        android:fillColor="#D9DBDF"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_small_floating_menu_tablet.xml b/res/drawable-night/accessibility_button_preview_small_floating_menu_tablet.xml
deleted file mode 100644
index b738d8f..0000000
--- a/res/drawable-night/accessibility_button_preview_small_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M365.88,219.24h-20.7c-5.38,0 -10.43,-2.09 -14.23,-5.9s-5.9,-8.86 -5.9,-14.23c0,-5.38 2.09,-10.43 5.9,-14.24 3.8,-3.8 8.86,-5.9 14.23,-5.9h20.7v1h-20.7c-5.11,0 -9.91,1.99 -13.53,5.6s-5.6,8.42 -5.6,13.53c0,5.11 1.99,9.91 5.6,13.53s8.42,5.6 13.53,5.6h20.7v1Z"
-      android:fillColor="#80868b"/>
-  <path
-      android:pathData="M345.19,184c-2.99,-0 -5.91,0.88 -8.4,2.54 -2.49,1.66 -4.43,4.02 -5.57,6.78s-1.45,5.8 -0.86,8.73c0.58,2.93 2.02,5.63 4.13,7.74 2.11,2.11 4.81,3.55 7.74,4.14 2.93,0.58 5.97,0.29 8.73,-0.86 2.76,-1.14 5.12,-3.08 6.78,-5.57 1.66,-2.49 2.55,-5.41 2.55,-8.4 0,-4.01 -1.59,-7.85 -4.42,-10.68 -2.83,-2.83 -6.67,-4.43 -10.68,-4.43ZM345.19,191.28c0.4,0.03 0.77,0.21 1.04,0.51 0.27,0.29 0.42,0.68 0.42,1.08 0,0.4 -0.15,0.79 -0.42,1.08 -0.27,0.29 -0.64,0.47 -1.04,0.51 -0.22,0.02 -0.44,-0.01 -0.65,-0.08 -0.21,-0.07 -0.4,-0.19 -0.56,-0.33 -0.16,-0.15 -0.29,-0.33 -0.38,-0.53 -0.09,-0.2 -0.13,-0.42 -0.13,-0.64 0,-0.22 0.05,-0.44 0.13,-0.64 0.09,-0.2 0.22,-0.38 0.38,-0.53 0.16,-0.15 0.35,-0.26 0.56,-0.33 0.21,-0.07 0.43,-0.1 0.65,-0.08ZM347.56,196.82v10.29h-1.58v-4.76h-1.59v4.75h-1.58v-10.28c-1.6,-0.12 -3.19,-0.39 -4.75,-0.79l0.4,-1.58c4.42,1.05 9.04,1.05 13.46,0l0.39,1.58c-1.57,0.41 -3.17,0.67 -4.79,0.79h0.04Z"
-      android:fillColor="#dadce0"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_three_finger.xml b/res/drawable-night/accessibility_button_preview_three_finger.xml
deleted file mode 100644
index 7afb0f7..0000000
--- a/res/drawable-night/accessibility_button_preview_three_finger.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-  <path
-      android:pathData="M242.5,226.9h-73.3c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h73.3c1.7,0 3.1,-1.4 3.1,-3.1S244.2,226.9 242.5,226.9z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M182.7,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C187.6,226.7 185.6,223.8 182.7,222.6z"
-      android:fillColor="#669DF6"/>
-  <path
-      android:pathData="M209,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C213.9,226.7 211.9,223.8 209,222.6z"
-      android:fillColor="#669DF6"/>
-  <path
-      android:pathData="M235.2,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C240,226.7 238,223.8 235.2,222.6z"
-      android:fillColor="#669DF6"/>
-  <path
-      android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
-      android:fillColor="#80868B"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_three_finger_tablet.xml b/res/drawable-night/accessibility_button_preview_three_finger_tablet.xml
deleted file mode 100644
index 5a0925c..0000000
--- a/res/drawable-night/accessibility_button_preview_three_finger_tablet.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#000000"
-        android:strokeColor="#80868B"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
-        android:fillColor="#669DF6"/>
-  </group>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_two_finger.xml b/res/drawable-night/accessibility_button_preview_two_finger.xml
deleted file mode 100644
index 05871d9..0000000
--- a/res/drawable-night/accessibility_button_preview_two_finger.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-  <path
-      android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M242.4,226.9h-9.3h-5.6h-43.4h-4.7h-10.2c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h10.2h3.9h45h4.8h9.3c1.7,0 3.1,-1.4 3.1,-3.1S244.1,226.9 242.4,226.9z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M194,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C197,225.4 195.6,224.2 194,223.5z"
-      android:fillColor="#669DF6"/>
-  <path
-      android:pathData="M223.7,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C226.6,225.4 225.3,224.2 223.7,223.5z"
-      android:fillColor="#669DF6"/>
-</vector>
diff --git a/res/drawable-night/accessibility_button_preview_two_finger_tablet.xml b/res/drawable-night/accessibility_button_preview_two_finger_tablet.xml
deleted file mode 100644
index ba9c771..0000000
--- a/res/drawable-night/accessibility_button_preview_two_finger_tablet.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#000000"
-        android:strokeColor="#80868B"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
-        android:fillColor="#669DF6"/>
-  </group>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview.xml b/res/drawable-night/accessibility_gesture_navigation_three_finger_preview.xml
deleted file mode 100644
index 593c3af..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-  <path
-      android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M176.7,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C183.4,212.6 180.4,209.6 176.7,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="176.75"
-          android:endY="209.6335"
-          android:endX="176.75"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-  <path
-      android:pathData="M206,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C212.6,212.6 209.7,209.6 206,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="206.05"
-          android:endY="209.6335"
-          android:endX="206.05"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-  <path
-      android:pathData="M235.3,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6H242v-24.6C241.9,212.6 239,209.6 235.3,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="235.35"
-          android:endY="209.6335"
-          android:endX="235.35"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview_tablet.xml b/res/drawable-night/accessibility_gesture_navigation_three_finger_preview_tablet.xml
deleted file mode 100644
index 1710fa4..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_three_finger_preview_tablet.xml
+++ /dev/null
@@ -1,80 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#000000"
-        android:strokeColor="#80868B"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M176.84,188.94C173.14,188.94 170.24,191.94 170.24,195.54V220.14H183.54V195.54C183.54,191.94 180.54,188.94 176.84,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="176.89"
-            android:startY="220.23"
-            android:endX="176.89"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#00669DF6"/>
-          <item android:offset="0.69" android:color="#FF669DF6"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-    <path
-        android:pathData="M206.14,188.94C202.44,188.94 199.54,191.94 199.54,195.54V220.14H212.84V195.54C212.74,191.94 209.84,188.94 206.14,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="206.19"
-            android:startY="220.23"
-            android:endX="206.19"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#00669DF6"/>
-          <item android:offset="0.69" android:color="#FF669DF6"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-    <path
-        android:pathData="M235.44,188.94C231.74,188.94 228.84,191.94 228.84,195.54V220.14H242.14V195.54C242.04,191.94 239.14,188.94 235.44,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="235.49"
-            android:startY="220.23"
-            android:endX="235.49"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#00669DF6"/>
-          <item android:offset="0.69" android:color="#FF669DF6"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-  </group>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview.xml b/res/drawable-night/accessibility_gesture_navigation_two_finger_preview.xml
deleted file mode 100644
index c95523b..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-  <path
-      android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M188.6,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C195.3,212.6 192.3,209.6 188.6,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="188.65"
-          android:endY="209.6335"
-          android:endX="188.65"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-  <path
-      android:pathData="M223.4,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6H230v-24.6C230,212.6 227.1,209.6 223.4,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="223.4"
-          android:endY="209.6335"
-          android:endX="223.4"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-</vector>
diff --git a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview_tablet.xml b/res/drawable-night/accessibility_gesture_navigation_two_finger_preview_tablet.xml
deleted file mode 100644
index 7a5cc48..0000000
--- a/res/drawable-night/accessibility_gesture_navigation_two_finger_preview_tablet.xml
+++ /dev/null
@@ -1,66 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#000000"
-        android:strokeColor="#80868B"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M188.15,188.94C184.45,188.94 181.55,191.94 181.55,195.54V220.14H194.85V195.54C194.85,191.94 191.85,188.94 188.15,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="188.2"
-            android:startY="220.23"
-            android:endX="188.2"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#00669DF6"/>
-          <item android:offset="0.69" android:color="#FF669DF6"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-    <path
-        android:pathData="M222.95,188.94C219.25,188.94 216.35,191.94 216.35,195.54V220.14H229.55V195.54C229.55,191.94 226.65,188.94 222.95,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="222.95"
-            android:startY="220.23"
-            android:endX="222.95"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#00669DF6"/>
-          <item android:offset="0.69" android:color="#FF669DF6"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-  </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_hardware.xml b/res/drawable-night/accessibility_shortcut_type_hardware.xml
deleted file mode 100644
index 9ef3664..0000000
--- a/res/drawable-night/accessibility_shortcut_type_hardware.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-  <path
-      android:pathData="M206.1,19.1c35,0 67.9,13.6 92.6,38.4C323.4,82.1 337,115 337,150s-13.6,67.9 -38.4,92.6C273.9,267.3 241,281 206,281s-67.9,-13.6 -92.6,-38.4C88.8,217.9 75.1,185 75.1,150s13.6,-67.9 38.4,-92.6S171.1,19.1 206.1,19.1M206.1,17.1c-73.4,0 -133,59.5 -133,132.9S132.6,282.9 206,282.9s133,-59.5 133,-132.9S279.5,17.1 206.1,17.1L206.1,17.1z"
-      android:fillColor="#3C4043"/>
-  <path
-      android:pathData="M287,187.8v-1.5h2.9v-13.7c0,-1.6 -1.3,-2.9 -2.9,-2.9v-23.2c1.6,0 2.9,-1.3 2.9,-2.9V132c0,-1.6 -1.3,-2.9 -2.9,-2.9V68.4c0,-8 -6.5,-14.5 -14.5,-14.5H139.4c-8,0 -14.5,6.5 -14.5,14.5v185.3c1,0.7 1.9,1.4 2.9,2.1V68.4c0,-6.4 5.2,-11.6 11.6,-11.6h133.1c6.4,0 11.6,5.2 11.6,11.6v188.7c1,-0.7 1.9,-1.4 2.9,-2.2v-50.5c1.6,0 2.9,-1.3 2.9,-2.9v-13.7H287z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M287,204.4c1.6,0 2.9,-1.3 2.9,-2.9v-14H287v-0.9h2.9v-14c0,-1.6 -1.3,-2.9 -2.9,-2.9"
-      android:fillColor="#669DF6"/>
-  <path
-      android:pathData="M825.7,300H469.3c-15.3,0 -27.8,-12.8 -27.8,-28.5v-243C441.5,12.8 454,0 469.3,0h356.5c15.2,0 27.7,12.8 27.7,28.5v243.2C853.5,287.2 841,300 825.7,300z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M728.5,187.8v-1.5h2.9v-13.7c0,-1.6 -1.3,-2.9 -2.9,-2.9v-23.2c1.6,0 2.9,-1.3 2.9,-2.9V132c0,-1.6 -1.3,-2.9 -2.9,-2.9V68.4c0,-8 -6.5,-14.5 -14.5,-14.5H580.9c-8,0 -14.5,6.5 -14.5,14.5v185.3c1,0.7 1.9,1.4 2.9,2.1V68.4c0,-6.4 5.2,-11.6 11.6,-11.6H714c6.4,0 11.6,5.2 11.6,11.6v188.7c1,-0.7 1.9,-1.4 2.9,-2.2v-50.5c1.6,0 2.9,-1.3 2.9,-2.9v-13.7H728.5z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M728.5,204.4c1.6,0 2.9,-1.3 2.9,-2.9v-14h-2.9v-0.9h2.9v-14c0,-1.6 -1.3,-2.9 -2.9,-2.9"
-      android:fillColor="#1A73E8"/>
-  <path
-      android:pathData="M648.2,19.1c35,0 67.9,13.6 92.6,38.4c24.7,24.6 38.3,57.5 38.3,92.5s-13.6,67.9 -38.4,92.6C716,267.3 683.1,281 648.1,281s-67.9,-13.6 -92.6,-38.4c-24.6,-24.7 -38.3,-57.6 -38.3,-92.6s13.6,-67.9 38.4,-92.6C580.4,32.7 613.2,19.1 648.2,19.1M648.2,17.1c-73.4,0 -133,59.5 -133,132.9s59.5,132.9 132.9,132.9s133,-59.5 133,-132.9S721.6,17.1 648.2,17.1L648.2,17.1z"
-      android:fillColor="#E8EAED"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_hardware_tablet.xml b/res/drawable-night/accessibility_shortcut_type_hardware_tablet.xml
deleted file mode 100644
index 1040d05..0000000
--- a/res/drawable-night/accessibility_shortcut_type_hardware_tablet.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M255.38,94.3C255.38,93.14 256.32,92.21 257.47,92.21L275.86,92.21C277.01,92.21 277.95,93.14 277.95,94.3L267.08,95.14L255.38,94.3Z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M340.09,110.17L340.09,248.55A14.5,14.5 0,0 1,325.59 263.05L88,263.05A14.5,14.5 0,0 1,73.5 248.55L73.5,110.17A14.5,14.5 0,0 1,88 95.67L325.59,95.67A14.5,14.5 0,0 1,340.09 110.17z"
-        android:strokeWidth="3"
-        android:fillColor="#000000"
-        android:strokeColor="#80868B"/>
-    <path
-        android:pathData="M295.77,94.3C295.77,93.14 296.7,92.21 297.86,92.21L305.38,92.21C306.53,92.21 307.46,93.14 307.46,94.3L302.45,95.14L295.77,94.3Z"
-        android:fillColor="#80868B"/>
-    <group>
-      <clip-path
-          android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"/>
-      <path
-          android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"
-          android:fillColor="#000000"/>
-      <path
-          android:pathData="M206.07,85.49C206.07,83.45 207.72,81.79 209.75,81.79L242.17,81.79C244.21,81.79 245.86,83.45 245.86,85.49L226.7,86.97L206.07,85.49Z"
-          android:fillColor="#669DF6"/>
-      <path
-          android:pathData="M345.84,101.25L345.84,369.73A14.25,14.25 0,0 1,331.59 383.98L-111.85,383.98A14.25,14.25 0,0 1,-126.1 369.73L-126.1,101.25A14.25,14.25 0,0 1,-111.85 87L331.59,87A14.25,14.25 0,0 1,345.84 101.25z"
-          android:strokeWidth="3.5"
-          android:fillColor="#000000"
-          android:strokeColor="#80868B"/>
-      <path
-          android:pathData="M266.77,85.49C266.77,83.45 268.42,81.79 270.46,81.79L283.72,81.79C285.75,81.79 287.4,83.45 287.4,85.49L278.56,86.97L266.77,85.49Z"
-          android:fillColor="#80868B"/>
-    </group>
-    <path
-        android:strokeWidth="1"
-        android:pathData="M274,30.5L274,30.5A92.5,92.5 0,0 1,366.5 123L366.5,123A92.5,92.5 0,0 1,274 215.5L274,215.5A92.5,92.5 0,0 1,181.5 123L181.5,123A92.5,92.5 0,0 1,274 30.5z"
-        android:fillColor="#00000000"
-        android:strokeColor="#80868B"/>
-  </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software.xml b/res/drawable-night/accessibility_shortcut_type_software.xml
deleted file mode 100644
index 8d55ae9..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"/>
-  <path
-      android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
-      android:fillColor="#80868b"/>
-  <path
-      android:pathData="M286.7,210.83a11.59,11.59 0,0 1,-11.58 11.58H142a11.59,11.59 0,0 1,-11.58 -11.58V183.26H286.7Z"
-      android:fillColor="#3c4043"/>
-  <path
-      android:pathData="M250.41,193.38a1.77,1.77 0,1 1,-1.78 1.77A1.77,1.77 0,0 1,250.41 193.38ZM253.07,199.58v11.53h-1.78v-5.32h-1.77v5.32h-1.77L247.75,199.58a30.78,30.78 0,0 1,-5.32 -0.89l0.44,-1.77a32.34,32.34 0,0 0,15.07 0l0.45,1.77A30.78,30.78 0,0 1,253.07 199.58Z"
-      android:fillColor="#fff"/>
-  <path
-      android:pathData="M208.55,202.84m-6.13,0a6.13,6.13 0,1 1,12.26 0a6.13,6.13 0,1 1,-12.26 0"
-      android:fillColor="#80868b"/>
-  <path
-      android:pathData="M250.41,202.84m-22.28,0a22.28,22.28 0,1 1,44.56 0a22.28,22.28 0,1 1,-44.56 0"
-      android:strokeWidth="2"
-      android:fillColor="#00000000"
-      android:strokeColor="#669df6"/>
-  <path
-      android:pathData="M160.45,202.84l10.43,6.02l0,-12.05l-10.43,6.03z"
-      android:fillColor="#80868b"/>
-  <path
-      android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
-      android:fillColor="#3c4043"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_floating.xml b/res/drawable-night/accessibility_shortcut_type_software_floating.xml
deleted file mode 100644
index 25d53ca..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_floating.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"/>
-  <path
-      android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
-      android:fillColor="#80868b"/>
-  <path
-      android:strokeWidth="1"
-      android:pathData="M286.7,144.13H266a19.63,19.63 0,1 0,0 39.26H286.7"
-      android:fillColor="#00000000"
-      android:strokeColor="#80868b"/>
-  <path
-      android:pathData="M266,148.65a15.11,15.11 0,1 0,15.1 15.11A15.11,15.11 0,0 0,266 148.65ZM266,155.93a1.59,1.59 0,0 1,0 3.17,1.59 1.59,0 1,1 0,-3.17ZM268.37,161.47v10.29h-1.58L266.79,167h-1.59v4.75h-1.58L263.62,161.47a27.23,27.23 0,0 1,-4.75 -0.79l0.4,-1.58a29.06,29.06 0,0 0,13.46 0l0.39,1.58A27.23,27.23 0,0 1,268.33 161.47Z"
-      android:fillColor="#dadce0"/>
-  <path
-      android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
-      android:fillColor="#3c4043"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_floating_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_floating_tablet.xml
deleted file mode 100644
index c0b562e..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_floating_tablet.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#000000"
-        android:strokeColor="#80868B"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#80868B"/>
-  </group>
-  <path
-      android:strokeWidth="1"
-      android:pathData="M365.64,179.48H344.94C339.74,179.48 334.74,181.54 331.06,185.23C327.38,188.91 325.31,193.9 325.31,199.11C325.31,204.31 327.38,209.3 331.06,212.99C334.74,216.67 339.74,218.74 344.94,218.74H365.64"
-      android:fillColor="#00000000"
-      android:strokeColor="#80868B"/>
-  <path
-      android:pathData="M344.95,184C341.96,183.99 339.04,184.88 336.55,186.54C334.06,188.2 332.12,190.56 330.98,193.32C329.83,196.08 329.53,199.12 330.11,202.05C330.7,204.98 332.14,207.67 334.25,209.79C336.36,211.9 339.05,213.34 341.98,213.93C344.92,214.51 347.95,214.21 350.72,213.07C353.48,211.92 355.84,209.99 357.5,207.5C359.16,205.02 360.05,202.1 360.05,199.11C360.05,195.1 358.46,191.26 355.62,188.43C352.79,185.59 348.95,184 344.95,184ZM344.95,191.28C345.35,191.31 345.72,191.49 345.99,191.78C346.26,192.08 346.41,192.46 346.41,192.86C346.41,193.26 346.26,193.65 345.99,193.94C345.72,194.23 345.35,194.41 344.95,194.45C344.73,194.46 344.51,194.43 344.3,194.36C344.09,194.29 343.9,194.18 343.74,194.03C343.58,193.88 343.45,193.7 343.36,193.5C343.28,193.3 343.23,193.08 343.23,192.86C343.23,192.64 343.28,192.43 343.36,192.22C343.45,192.02 343.58,191.84 343.74,191.69C343.9,191.54 344.09,191.43 344.3,191.36C344.51,191.29 344.73,191.26 344.95,191.28ZM347.32,196.82V207.11H345.74V202.35H344.15V207.1H342.57V196.82C340.96,196.69 339.37,196.43 337.82,196.03L338.22,194.45C342.64,195.5 347.25,195.5 351.68,194.45L352.07,196.03C350.5,196.43 348.89,196.7 347.28,196.82H347.32Z"
-      android:fillColor="#DADCE0"/>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture.xml
deleted file mode 100644
index ea19f74..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-    <path
-        android:pathData="M139.5,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7v166.4c0,6.4 -5.2,11.6 -11.6,11.6H139.5c-6.4,0 -11.6,-5.2 -11.6,-11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1v166.1C125.1,218.8 131.6,225.3 139.5,225.3z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M198.4,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C201.6,208.4 200.2,206.5 198.4,205.7z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M217.7,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C220.9,208.4 219.6,206.5 217.7,205.7z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M206.1,19.1c35,0 67.9,13.6 92.6,38.4c24.7,24.7 38.4,57.6 38.4,92.6s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4C88.8,217.9 75.1,185 75.1,150s13.6,-67.9 38.4,-92.6C138.2,32.7 171.1,19.1 206.1,19.1M206.1,17.1c-73.4,0 -133,59.5 -133,132.9S132.6,282.9 206,282.9S339,223.4 339,150S279.5,17.1 206.1,17.1L206.1,17.1z"
-        android:fillColor="#3C4043"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture_tablet.xml
deleted file mode 100644
index 129f13d..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture_tablet.xml
+++ /dev/null
@@ -1,46 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <group>
-        <clip-path
-            android:pathData="M0,0h412v300h-412z"/>
-        <path
-            android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-            android:fillColor="#80868B"/>
-        <path
-            android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-            android:strokeWidth="2.5"
-            android:fillColor="#000000"
-            android:strokeColor="#80868B"/>
-        <path
-            android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-            android:fillColor="#80868B"/>
-        <path
-            android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-            android:fillColor="#80868B"/>
-        <path
-            android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
-            android:fillColor="#669DF6"/>
-        <path
-            android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
-            android:fillColor="#669DF6"/>
-    </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback.xml
deleted file mode 100644
index bd9bf19..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"/>
-    <path
-        android:pathData="M138,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9V45.7c-1.9,-1.5 -3.8,-2.9 -5.8,-4.3v169.4c0,6.4 -5.2,11.6 -11.6,11.6H138c-6.4,0 -11.6,-5.2 -11.6,-11.6V43.5c-1,0.7 -1.9,1.5 -2.9,2.2v165C123.5,218.8 130,225.3 138,225.3z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M206,283.9c-73.9,0 -133.9,-60.1 -133.9,-133.9S132.1,16.1 206,16.1c73.9,0 133.9,60.1 133.9,133.9S279.9,283.9 206,283.9zM206,18.1C133.2,18.1 74.1,77.2 74.1,150S133.2,281.9 206,281.9S337.9,222.8 337.9,150S278.8,18.1 206,18.1z"
-        android:fillColor="#3C4043"/>
-    <path
-        android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M190.9,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C194.1,208.4 192.8,206.5 190.9,205.7z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M208,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C211.2,208.4 209.9,206.5 208,205.7z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M225.1,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C228.2,208.4 226.9,206.5 225.1,205.7z"
-        android:fillColor="#669DF6"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
deleted file mode 100644
index d113fff..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
+++ /dev/null
@@ -1,49 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <group>
-        <clip-path
-            android:pathData="M0,0h412v300h-412z"/>
-        <path
-            android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-            android:fillColor="#80868B"/>
-        <path
-            android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-            android:strokeWidth="2.5"
-            android:fillColor="#000000"
-            android:strokeColor="#80868B"/>
-        <path
-            android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-            android:fillColor="#80868B"/>
-        <path
-            android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-            android:fillColor="#80868B"/>
-        <path
-            android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
-            android:fillColor="#669DF6"/>
-        <path
-            android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
-            android:fillColor="#669DF6"/>
-        <path
-            android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
-            android:fillColor="#669DF6"/>
-    </group>
-</vector>
diff --git a/res/drawable-night/accessibility_shortcut_type_software_tablet.xml b/res/drawable-night/accessibility_shortcut_type_software_tablet.xml
deleted file mode 100644
index 49a2661..0000000
--- a/res/drawable-night/accessibility_shortcut_type_software_tablet.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
-    <path
-        android:pathData="M46.23,204.14h320v48h-320z"
-        android:fillColor="#3D4043"/>
-    <path
-        android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
-        android:fillColor="#ffffff"/>
-    <path
-        android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
-        android:fillColor="#808589"/>
-    <path
-        android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
-        android:fillColor="#808589"/>
-  </group>
-  <path
-      android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
-      android:strokeWidth="3"
-      android:fillColor="#00000000"
-      android:strokeColor="#80868B"/>
-  <path
-      android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-      android:fillColor="#80868B"/>
-  <path
-      android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
-      android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable-night/modes_interstitial_bedtime.xml b/res/drawable-night/modes_interstitial_bedtime.xml
new file mode 100644
index 0000000..f28bb01
--- /dev/null
+++ b/res/drawable-night/modes_interstitial_bedtime.xml
@@ -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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M392.38,173.12C392.38,147.42 371.58,126.86 346.11,126.86C326.79,126.86 310.39,138.61 303.29,155.25C296.43,148.15 286.64,143.75 276.11,143.75C260.2,143.75 246.51,153.54 240.88,167.74C237.21,166.03 233.29,165.05 229.13,165.05C224.66,165.05 220.48,166.11 216.79,167.99C211.35,170.77 213.35,179 219.46,179H386.55C389.77,179 392.39,176.4 392.39,173.18C392.39,173.16 392.39,173.14 392.39,173.12H392.38Z"
+        android:fillColor="#3C4043"/>
+    <path
+        android:pathData="M199.15,182.18C190.01,156.35 191.62,131.06 200.22,109.54C203.99,99.32 193.77,89.09 183.55,93.93C164.19,103.08 146.98,118.68 135.15,140.75C120.1,168.19 116.87,201.02 127.62,230.08C156.12,305.95 244.85,325.86 301.85,280.12C306.15,276.89 309.92,273.12 313.68,269.36C321.21,261.29 314.75,247.84 303.46,248.91C287.33,249.98 270.66,247.83 252.91,240.3C228.17,229.54 208.28,208.55 199.14,182.18H199.15Z"
+        android:fillColor="#F9AB00"/>
+    <path
+        android:pathData="M353.25,64.04C365.11,76.41 355.68,96.92 338.57,95.97L335.74,95.81C330.52,95.52 325.4,97.41 321.63,101.03L319.58,102.99C307.21,114.85 286.7,105.42 287.65,88.31L287.81,85.48C288.1,80.26 286.21,75.14 282.59,71.37L280.63,69.32C268.77,56.95 278.2,36.44 295.31,37.39L298.14,37.55C303.36,37.84 308.48,35.95 312.25,32.33L314.3,30.37C326.67,18.51 347.18,27.94 346.23,45.05L346.07,47.88C345.78,53.1 347.67,58.22 351.29,61.99L353.25,64.04Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#1A73E8"/>
+    <path
+        android:pathData="M79.5,311.95C96.63,312.45 104.3,333.67 91.44,345L89.31,346.87C85.38,350.33 83.07,355.26 82.92,360.49L82.84,363.32C82.34,380.45 61.12,388.12 49.79,375.26L47.92,373.13C44.46,369.2 39.53,366.89 34.3,366.74L31.47,366.66C14.34,366.16 6.67,344.94 19.53,333.61L21.66,331.74C25.59,328.28 27.9,323.35 28.05,318.12L28.13,315.29C28.63,298.16 49.85,290.49 61.18,303.35L63.05,305.48C66.51,309.41 71.44,311.72 76.67,311.87L79.5,311.95Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#D93025"/>
+    <path
+        android:pathData="M220.61,297.87C214.88,297.87 209.42,299.51 205.05,302.51C199.32,279.31 178.3,262.12 153.47,262.12C128.64,262.12 109.8,277.68 102.71,298.96C96.43,294.59 88.79,291.86 80.61,291.86C67.15,291.86 55.29,298.82 48.36,309.42C46.09,312.9 48.56,317.51 52.71,317.51H238.84C243.11,317.51 245.55,312.67 243.04,309.21C238.05,302.3 229.84,297.86 220.61,297.86V297.87Z"
+        android:fillColor="#3C4043"/>
+    <path
+        android:pathData="M99.26,237.27C107.22,244.78 101.87,258.15 90.93,258.1H89.12C85.78,258.08 82.58,259.45 80.29,261.88L79.05,263.2C71.54,271.16 58.17,265.81 58.22,254.87V253.06C58.24,249.72 56.87,246.52 54.44,244.23L53.12,242.99C45.16,235.48 50.51,222.11 61.45,222.16H63.26C66.6,222.18 69.8,220.81 72.09,218.38L73.33,217.06C80.84,209.1 94.21,214.45 94.16,225.39V227.2C94.14,230.54 95.51,233.74 97.94,236.03L99.26,237.27Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#1E8E3E"/>
+    <path
+        android:pathData="M381.01,335.46C388.11,341.2 384.52,352.66 375.41,353.32L373.9,353.43C371.12,353.63 368.55,354.97 366.8,357.14L365.85,358.31C360.11,365.41 348.65,361.82 347.99,352.71L347.88,351.2C347.68,348.42 346.34,345.85 344.17,344.1L343,343.15C335.9,337.41 339.49,325.95 348.6,325.29L350.11,325.18C352.89,324.98 355.46,323.64 357.21,321.47L358.16,320.3C363.9,313.2 375.36,316.79 376.02,325.9L376.13,327.41C376.33,330.19 377.67,332.76 379.84,334.51L381.01,335.46Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#1E8E3E"/>
+    <path
+        android:pathData="M86.28,44.32C98.91,46.65 102.15,63.25 91.33,70.16L89.54,71.3C86.24,73.41 83.96,76.8 83.24,80.65L82.85,82.74C80.52,95.37 63.92,98.61 57.01,87.79L55.87,86C53.76,82.7 50.37,80.42 46.52,79.7L44.43,79.31C31.8,76.98 28.56,60.38 39.38,53.47L41.17,52.33C44.47,50.22 46.75,46.83 47.47,42.98L47.86,40.89C50.19,28.26 66.79,25.02 73.7,35.84L74.84,37.63C76.95,40.93 80.34,43.21 84.19,43.93L86.28,44.32Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#F9AB00"/>
+  </group>
+</vector>
diff --git a/res/drawable-night/modes_interstitial_driving.xml b/res/drawable-night/modes_interstitial_driving.xml
new file mode 100644
index 0000000..6edbfe5
--- /dev/null
+++ b/res/drawable-night/modes_interstitial_driving.xml
@@ -0,0 +1,81 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M388.81,244.64L252.55,99.8H158.3L24.49,239.88C28.08,246.82 35.84,251.76 45.06,251.76H58.07C77.9,229.58 106.73,215.61 138.82,215.61C170.91,215.61 199.74,229.58 219.57,251.76H371.66C378.59,251.76 384.69,248.98 388.82,244.65H388.81V244.64Z"
+        android:fillColor="#3B4043"/>
+    <path
+        android:pathData="M393.91,227.39C395.23,233.88 393.06,240.11 388.73,244.65H388.72L252.46,99.8H378.33L393.91,227.39Z"
+        android:fillColor="#00752A"/>
+    <path
+        android:pathData="M374.88,71.5C372.89,61.71 363.49,54.6 352.53,54.6H278.07C275.33,62.01 268.23,67.3 259.87,67.3H159.58C151.22,67.3 144.12,62.01 141.38,54.6H67.58C56.59,54.6 47.17,61.74 45.22,71.57L41.13,99.8H378.33L374.88,71.5Z"
+        android:fillColor="#7EB5FE"/>
+    <path
+        android:pathData="M158.21,99.8L24.4,239.88C22.47,236.16 21.73,231.87 22.61,227.45L41.12,99.8H158.21Z"
+        android:fillColor="#00752A"/>
+    <path
+        android:pathData="M42.79,88.16L82.41,75.6C88.19,73.77 94.39,73.82 100.14,75.75L128.66,85.31C135.15,87.49 142.21,87.26 148.56,84.67C154.79,82.13 161.72,81.86 168.13,83.93L175.72,86.37C180.43,87.89 185.45,88.16 190.29,87.15L252.84,74.17C257.24,73.26 261.79,73.39 266.12,74.57L311.12,86.76C315.79,88.02 320.71,88.08 325.41,86.93L343.07,82.6C348.04,81.38 353.25,81.52 358.15,83L376.97,88.69L378.33,99.8H41.12L42.79,88.16Z"
+        android:fillColor="#1A73E8"/>
+    <path
+        android:pathData="M379.71,163.04L376.86,161.08C375.38,160.06 374.74,158.2 375.28,156.49L376.33,153.19C377.26,150.26 374.73,147.39 371.7,147.95L368.3,148.58C366.53,148.91 364.76,148.04 363.94,146.45L362.35,143.38C360.93,140.65 357.11,140.41 355.37,142.95L353.41,145.8C352.39,147.28 350.53,147.92 348.82,147.38L345.52,146.33C342.59,145.4 339.72,147.93 340.28,150.96L340.91,154.36C341.24,156.13 340.37,157.9 338.78,158.72L335.71,160.31C333.84,161.28 333.14,163.37 333.7,165.16H381.31C381.05,164.34 380.53,163.58 379.73,163.03L379.71,163.04Z"
+        android:fillColor="#006725"/>
+    <path
+        android:pathData="M315.4,116.73L313.97,115.75C313.23,115.24 312.91,114.31 313.18,113.45L313.7,111.8C314.17,110.33 312.9,108.9 311.38,109.18L309.68,109.5C308.8,109.66 307.91,109.23 307.5,108.43L306.7,106.89C305.99,105.52 304.08,105.41 303.21,106.68L302.23,108.11C301.72,108.85 300.79,109.17 299.93,108.9L298.28,108.38C296.81,107.91 295.38,109.18 295.66,110.7L295.98,112.4C296.14,113.28 295.71,114.17 294.91,114.58L293.37,115.38C292.44,115.86 292.09,116.91 292.36,117.8H316.17C316.04,117.39 315.78,117.01 315.38,116.73H315.4Z"
+        android:fillColor="#006725"/>
+    <path
+        android:pathData="M103.02,139.55L100.83,138.05C99.69,137.27 99.2,135.84 99.62,134.53L100.42,132C101.13,129.75 99.19,127.55 96.87,127.98L94.26,128.47C92.91,128.72 91.55,128.06 90.91,126.84L89.69,124.48C88.6,122.38 85.67,122.2 84.34,124.15L82.84,126.34C82.06,127.48 80.63,127.97 79.32,127.55L76.79,126.75C74.54,126.04 72.34,127.98 72.77,130.3L73.26,132.91C73.51,134.26 72.85,135.62 71.63,136.26L69.27,137.48C67.84,138.22 67.3,139.83 67.73,141.2H104.25C104.05,140.57 103.65,139.99 103.04,139.56L103.02,139.55Z"
+        android:fillColor="#006725"/>
+    <path
+        android:pathData="M32.95,156.15L30.46,173.36H67.91C67.68,172.61 67.2,171.91 66.46,171.41L63.85,169.62C62.5,168.69 61.91,166.99 62.41,165.42L63.37,162.4C64.22,159.72 61.9,157.1 59.14,157.61L56.03,158.19C54.42,158.49 52.8,157.7 52.04,156.24L50.58,153.43C49.29,150.93 45.8,150.72 44.2,153.04L42.41,155.65C41.48,157 39.78,157.59 38.21,157.09L35.19,156.13C34.41,155.88 33.63,155.91 32.93,156.13L32.95,156.15Z"
+        android:fillColor="#006725"/>
+    <path
+        android:pathData="M202.85,187.03L202.06,211.24H213.72L212.72,187.03H202.85Z"
+        android:fillColor="#7F868C"/>
+    <path
+        android:pathData="M211.45,156.23H203.85L203.23,175.43H212.24L211.45,156.23Z"
+        android:fillColor="#7F868C"/>
+    <path
+        android:pathData="M209.39,106.23L209.12,99.8H205.68L205.47,106.23H209.39Z"
+        android:fillColor="#7F868C"/>
+    <path
+        android:pathData="M211.09,147.45L210.4,130.86H204.67L204.13,147.45H211.09Z"
+        android:fillColor="#7F868C"/>
+    <path
+        android:pathData="M204.88,124.43H210.14L209.65,112.66H205.26L204.88,124.43Z"
+        android:fillColor="#7F868C"/>
+    <path
+        android:pathData="M214.45,225.55H201.71L201.42,235.5C206.98,239.76 212.53,243.92 217.69,249.69H218L214.44,225.55H214.45Z"
+        android:fillColor="#7F868C"/>
+    <path
+        android:pathData="M141.03,179.06C89.29,178.41 46.73,219.68 46.08,271.42C45.43,323.16 86.7,365.72 138.44,366.37C190.18,367.02 232.74,325.75 233.39,274.01C234.17,222.27 192.77,179.71 141.03,179.06ZM67.82,245.03C79.07,215.8 107.66,195.23 140.78,195.62C173.89,196.01 201.84,217.35 212.31,246.84C213.22,249.3 211.28,251.76 208.69,251.76L167.43,251.24C159.02,241.15 145.44,235.98 131.73,238.95C123.84,240.63 117.11,244.9 112.2,250.46L71.32,249.94C68.73,250.07 66.92,247.48 67.83,245.02L67.82,245.03ZM122.66,347.87C87.99,339.98 62.25,308.8 62.77,271.68V271.42C62.77,268.96 65.23,267.28 67.56,267.93L103.26,278.67C103.39,279.96 103.65,281.26 103.91,282.55C106.24,293.16 112.96,301.69 121.76,306.61L127.32,343.73C127.71,346.19 125.25,348.39 122.66,347.87ZM153.45,348.52C150.86,349.04 148.66,346.71 149.18,344.12L156.29,307.12C166.77,301.69 173.88,291.6 175.56,280.08L212.04,270.25C214.37,269.6 216.7,271.41 216.7,273.87C216.31,311.25 189.02,342.17 153.45,348.51V348.52Z"
+        android:fillColor="#1A73E8"/>
+    <path
+        android:strokeWidth="1"
+        android:pathData="M139.74,299.91C153.98,299.91 165.52,288.37 165.52,274.13C165.52,259.89 153.98,248.35 139.74,248.35C125.5,248.35 113.96,259.89 113.96,274.13C113.96,288.37 125.5,299.91 139.74,299.91Z"
+        android:fillColor="#00000000"
+        android:strokeColor="#005CC3"/>
+  </group>
+</vector>
diff --git a/res/drawable-night/modes_interstitial_immersive.xml b/res/drawable-night/modes_interstitial_immersive.xml
new file mode 100644
index 0000000..a29c474
--- /dev/null
+++ b/res/drawable-night/modes_interstitial_immersive.xml
@@ -0,0 +1,83 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M169.93,276.93C173.11,290.9 174.7,297.89 173.77,303.93C172.42,312.67 167.51,320.47 160.21,325.47C155.17,328.93 148.18,330.52 134.21,333.69L126.71,335.4C112.74,338.58 105.75,340.17 99.71,339.24C90.97,337.89 83.17,332.98 78.17,325.68C74.71,320.64 73.13,313.65 69.95,299.68L68.24,292.18C65.06,278.21 63.47,271.22 64.4,265.18C65.75,256.44 70.66,248.64 77.96,243.64C83,240.18 89.99,238.6 103.96,235.42L111.46,233.71C125.43,230.53 132.42,228.94 138.46,229.87C147.2,231.22 155,236.13 160,243.43C163.46,248.47 165.05,255.46 168.22,269.43L169.93,276.93Z"
+        android:fillColor="#00752A"/>
+    <path
+        android:pathData="M191.17,273.74C195.68,293.55 197.93,303.46 196.61,312.02C194.69,324.42 187.74,335.47 177.39,342.56C170.24,347.46 160.33,349.71 140.52,354.22L129.89,356.64C110.08,361.15 100.17,363.4 91.61,362.08C79.21,360.16 68.16,353.21 61.06,342.86C56.16,335.71 53.91,325.8 49.4,305.99L46.98,295.36C42.47,275.55 40.22,265.64 41.54,257.08C43.46,244.68 50.41,233.63 60.76,226.53C67.91,221.63 77.82,219.38 97.63,214.87L108.26,212.45C128.07,207.94 137.98,205.69 146.54,207.01C158.94,208.93 169.99,215.88 177.09,226.23C181.99,233.38 184.24,243.29 188.75,263.1L191.17,273.73V273.74Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#00AB47"/>
+    <path
+        android:pathData="M211.39,270.71C217.16,296.08 220.05,308.76 218.35,319.73C215.9,335.61 206.99,349.76 193.74,358.84C184.58,365.11 171.9,368 146.53,373.77L132.92,376.87C107.55,382.64 94.87,385.53 83.9,383.83C68.02,381.38 53.87,372.47 44.79,359.22C38.52,350.06 35.63,337.38 29.86,312.01L26.76,298.4C20.99,273.03 18.1,260.35 19.8,249.38C22.25,233.5 31.16,219.35 44.41,210.27C53.56,204 66.25,201.11 91.62,195.34L105.23,192.24C130.6,186.47 143.28,183.58 154.25,185.28C170.13,187.73 184.28,196.64 193.36,209.89C199.63,219.04 202.52,231.73 208.29,257.1L211.39,270.71Z"
+        android:strokeWidth="3"
+        android:fillColor="#00000000"
+        android:strokeColor="#81C995"/>
+    <path
+        android:pathData="M253.51,117.5C250.2,112.06 248.72,105.46 249.75,98.66C252.08,83.33 266.33,72.78 281.58,75.1C288.48,76.15 294.41,79.65 298.61,84.59C304.08,81.12 310.76,79.53 317.65,80.57C332.86,82.88 343.31,97.18 340.98,112.51C339.95,119.31 336.57,125.17 331.81,129.39C335.11,134.83 336.59,141.43 335.56,148.23C333.23,163.56 319.01,174.11 303.8,171.8C296.91,170.75 291.01,167.25 286.81,162.31C281.33,165.78 274.63,167.37 267.73,166.32C252.48,164 242,149.7 244.33,134.37C245.36,127.57 248.74,121.71 253.51,117.5Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M301.87,63.25C310.34,57.87 320.69,55.4 331.36,57.02C354.93,60.6 371.12,82.75 367.51,106.5C365.91,117.04 360.68,126.12 353.31,132.65C358.42,141.08 360.71,151.3 359.11,161.83C355.5,185.58 333.47,201.93 309.9,198.35C299.23,196.73 290.08,191.31 283.58,183.65C275.09,189.03 264.72,191.49 254.02,189.87C230.39,186.28 214.16,164.12 217.77,140.37C219.37,129.83 224.61,120.75 232,114.23C226.88,105.8 224.57,95.58 226.17,85.04C229.78,61.29 251.85,44.95 275.48,48.53C286.17,50.15 295.35,55.58 301.86,63.24L301.87,63.25Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#659CF5"
+        android:strokeLineCap="round"/>
+    <path
+        android:pathData="M305.14,41.91C316.62,34.62 330.64,31.28 345.09,33.48C377.02,38.33 398.94,68.34 394.06,100.5C391.89,114.77 384.81,127.07 374.82,135.92C381.74,147.33 384.85,161.18 382.68,175.45C377.8,207.62 347.95,229.77 316.02,224.92C301.57,222.73 289.17,215.38 280.37,205.01C268.87,212.3 254.82,215.63 240.33,213.43C208.33,208.57 186.34,178.55 191.23,146.38C193.4,132.11 200.49,119.81 210.5,110.97C203.56,99.55 200.44,85.71 202.61,71.43C207.49,39.26 237.4,17.12 269.4,21.98C283.88,24.18 296.32,31.53 305.13,41.91H305.14Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="3"
+        android:fillColor="#00000000"
+        android:strokeColor="#89B3F8"
+        android:strokeLineCap="round"/>
+    <path
+        android:pathData="M310.7,107.65L310.09,107.56L302.74,106.44L288.07,104.21L280.91,103.12L280.1,103C273.27,101.96 266.89,106.66 265.85,113.49L263.3,130.29C262.61,134.86 265.75,139.12 270.31,139.81C273,140.22 275.73,139.29 277.61,137.32L284.07,130.57L298.74,132.8L302.9,141.16C304.11,143.6 306.44,145.29 309.13,145.7C313.7,146.39 317.96,143.25 318.65,138.69L321.2,121.89C322.24,115.06 317.54,108.68 310.71,107.64L310.7,107.65Z"
+        android:fillColor="#171717"/>
+    <path
+        android:pathData="M276.2,122.42L280.3,123.05L280.92,118.95L285.02,119.57L285.64,115.47L281.54,114.85L282.16,110.75L278.07,110.13L277.45,114.23L273.35,113.61L272.73,117.7L276.82,118.33L276.2,122.42Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M303.34,126.02C304.95,126.02 306.26,124.71 306.26,123.1C306.26,121.49 304.95,120.18 303.34,120.18C301.73,120.18 300.42,121.49 300.42,123.1C300.42,124.71 301.73,126.02 303.34,126.02Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M309.97,120.81C311.58,120.81 312.89,119.5 312.89,117.89C312.89,116.28 311.58,114.97 309.97,114.97C308.35,114.97 307.05,116.28 307.05,117.89C307.05,119.5 308.35,120.81 309.97,120.81Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M110.86,311.33L100.08,263.97L142.68,279.18L110.85,311.33H110.86Z"
+        android:fillColor="#171717"/>
+    <path
+        android:pathData="M66.59,97.12C78.25,85.46 97.16,85.46 108.82,97.12C120.48,108.78 120.48,127.69 108.82,139.35L99.07,149.1C87.41,160.76 68.5,160.76 56.84,149.1C45.18,137.44 45.18,118.53 56.84,106.87L66.59,97.12Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M332.68,258.12C335.52,253.38 342.39,253.38 345.24,258.12L348.44,263.45C350.1,266.22 353.37,267.57 356.5,266.79L362.53,265.28C367.89,263.94 372.75,268.8 371.41,274.16L369.9,280.19C369.12,283.32 370.47,286.59 373.24,288.25L378.57,291.45C383.31,294.29 383.31,301.16 378.57,304.01L373.24,307.21C370.47,308.87 369.12,312.14 369.9,315.27L371.41,321.3C372.75,326.66 367.89,331.52 362.53,330.18L356.5,328.67C353.37,327.89 350.1,329.24 348.44,332.01L345.24,337.34C342.4,342.08 335.53,342.08 332.68,337.34L329.48,332.01C327.82,329.24 324.55,327.89 321.42,328.67L315.39,330.18C310.03,331.52 305.17,326.66 306.51,321.3L308.02,315.27C308.8,312.14 307.45,308.87 304.68,307.21L299.35,304.01C294.61,301.17 294.61,294.3 299.35,291.45L304.68,288.25C307.45,286.59 308.8,283.32 308.02,280.19L306.51,274.16C305.17,268.8 310.03,263.94 315.39,265.28L321.42,266.79C324.55,267.57 327.82,266.22 329.48,263.45L332.68,258.12Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+  </group>
+</vector>
diff --git a/res/drawable-night/modes_interstitial_managed.xml b/res/drawable-night/modes_interstitial_managed.xml
new file mode 100644
index 0000000..05f8f6a
--- /dev/null
+++ b/res/drawable-night/modes_interstitial_managed.xml
@@ -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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0.2H28C12.54,0.2 0,12.74 0,28.2V384.2C0,399.66 12.54,412.2 28,412.2H384C399.46,412.2 412,399.66 412,384.2V28.2C412,12.74 399.46,0.2 384,0.2Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M146.64,179.97C181.43,154.82 229.04,185.27 220.78,227.4L219.42,234.37C216.9,247.23 219.83,260.56 227.51,271.18L231.67,276.93C256.82,311.72 226.37,359.33 184.24,351.07L177.27,349.71C164.41,347.19 151.08,350.12 140.46,357.8L134.71,361.96C99.92,387.11 52.31,356.66 60.57,314.53L61.93,307.57C64.45,294.71 61.52,281.38 53.84,270.76L49.68,265.01C24.53,230.22 54.98,182.61 97.11,190.87L104.08,192.23C116.94,194.75 130.27,191.82 140.89,184.14L146.64,179.98V179.97Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M361.61,135.37C356.66,153.92 354.19,163.19 349.31,169.77C342.25,179.29 331.57,185.47 319.8,186.85C311.67,187.8 302.39,185.32 283.85,180.37L273.9,177.71C255.36,172.76 246.08,170.29 239.5,165.41C229.98,158.35 223.8,147.67 222.42,135.9C221.47,127.77 223.95,118.49 228.9,99.95L231.56,90C236.51,71.46 238.98,62.18 243.86,55.6C250.92,46.08 261.6,39.9 273.37,38.52C281.5,37.57 290.78,40.05 309.32,45L319.27,47.66C337.82,52.61 347.09,55.08 353.67,59.96C363.19,67.02 369.37,77.7 370.75,89.47C371.7,97.6 369.22,106.88 364.27,125.42L361.61,135.37Z"
+        android:fillColor="#F9AA00"/>
+    <path
+        android:pathData="M348.57,230.93C345.11,227.47 337.24,229.18 327.74,234.66C324.89,224.07 320.54,217.29 315.65,217.29C310.76,217.29 306.4,224.07 303.56,234.66C294.06,229.18 286.19,227.47 282.73,230.93C279.27,234.39 280.98,242.26 286.46,251.76C275.87,254.6 269.09,258.96 269.09,263.85C269.09,268.74 275.87,273.1 286.46,275.94C280.98,285.44 279.27,293.32 282.73,296.77C286.19,300.23 294.06,298.52 303.56,293.04C306.4,303.63 310.76,310.41 315.65,310.41C320.54,310.41 324.9,303.63 327.74,293.04C337.24,298.52 345.12,300.23 348.57,296.77C352.03,293.31 350.32,285.44 344.84,275.94C355.43,273.09 362.21,268.74 362.21,263.85C362.21,258.96 355.43,254.6 344.84,251.76C350.32,242.26 352.03,234.38 348.57,230.93Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:fillType="evenOdd"
+        android:strokeColor="#D83025"/>
+    <path
+        android:pathData="M194.81,56.17C203.12,68.34 199.99,84.94 187.83,93.25C175.66,101.56 159.06,98.43 150.75,86.27L143.81,76.1C135.5,63.93 138.63,47.33 150.79,39.02C162.96,30.71 179.56,33.84 187.87,46L194.81,56.17Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#1F8D3E"/>
+    <path
+        android:pathData="M130.96,158.11C130.5,159.35 130.27,159.97 130.01,160.47C128.02,164.37 123.61,166.39 119.35,165.37C118.8,165.24 118.18,165.01 116.94,164.55L75.56,149.24C74.32,148.78 73.7,148.55 73.2,148.29C69.3,146.3 67.28,141.89 68.3,137.63C68.43,137.08 68.66,136.46 69.12,135.22L76.78,114.53C83.1,97.45 102.06,88.73 119.14,95.05C136.22,101.37 144.94,120.33 138.62,137.41L130.96,158.1V158.11Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#D83025"/>
+    <path
+        android:pathData="M152.86,267.48C151.12,267.79 149.53,267.48 148.08,266.55C146.7,265.52 145.85,264.13 145.54,262.39C145.23,260.65 145.54,259.1 146.5,257.73C147.52,256.27 148.9,255.38 150.63,255.06C152.36,254.74 153.93,255.11 155.31,256.14C156.76,257.07 157.64,258.41 157.95,260.15C158.26,261.89 157.91,263.49 156.89,264.95C155.94,266.32 154.6,267.16 152.86,267.47V267.48ZM128.04,271.95C126.3,272.26 124.71,271.95 123.26,271.02C121.88,269.99 121.03,268.6 120.72,266.86C120.41,265.12 120.72,263.57 121.68,262.2C122.7,260.74 124.08,259.85 125.81,259.53C127.54,259.21 129.11,259.58 130.49,260.61C131.94,261.54 132.82,262.88 133.13,264.62C133.44,266.36 133.09,267.96 132.07,269.42C131.12,270.79 129.78,271.63 128.04,271.94V271.95ZM145.15,295.79C140.18,296.68 135.43,296.13 130.88,294.13C126.42,292.11 122.83,289.04 120.12,284.92L164.81,276.87C163.71,281.68 161.38,285.82 157.82,289.28C154.34,292.73 150.12,294.9 145.15,295.79ZM148.72,315.65C142.51,316.77 136.47,316.66 130.59,315.33C124.78,313.9 119.49,311.56 114.72,308.32C110.02,304.98 105.98,300.84 102.61,295.89C99.31,290.85 97.1,285.22 95.98,279.01C94.86,272.8 94.98,266.8 96.33,261.01C97.75,255.12 100.08,249.83 103.34,245.14C106.66,240.35 110.81,236.32 115.77,233.03C120.8,229.65 126.42,227.4 132.62,226.28C138.82,225.16 144.84,225.32 150.65,226.75C156.53,228.08 161.82,230.42 166.52,233.76C171.29,237 175.33,241.14 178.63,246.19C182,251.14 184.24,256.71 185.36,262.92C186.48,269.13 186.33,275.18 184.91,281.07C183.56,286.87 181.23,292.16 177.9,296.94C174.64,301.63 170.5,305.66 165.47,309.05C160.51,312.34 154.92,314.54 148.72,315.66V315.65ZM146.93,305.72C156.53,303.99 164.11,299.12 169.67,291.12C175.23,283.11 177.15,274.31 175.42,264.71C173.69,255.11 168.82,247.53 160.82,241.97C152.81,236.41 144.01,234.49 134.41,236.22L132.92,236.49C132.42,236.58 131.94,236.75 131.48,237.01C131.07,237.6 130.84,238.19 130.78,238.8C130.72,239.41 130.75,240.04 130.87,240.71C131.18,242.45 132.03,243.83 133.41,244.87C134.86,245.8 136.45,246.12 138.19,245.8C138.93,245.67 139.57,245.42 140.11,245.07C140.73,244.7 141.37,244.46 142.03,244.34C143.02,244.16 143.92,244.38 144.71,245.01C145.51,245.64 145.99,246.44 146.17,247.44C146.51,249.34 145.83,250.75 144.11,251.66C142.46,252.47 140.93,253 139.53,253.25C135.81,253.92 132.34,253.18 129.13,251.02C125.99,248.77 124.08,245.78 123.41,242.05L123.28,241.31C123.24,241.06 123.22,240.72 123.23,240.29C116.81,244.01 111.98,249.19 108.73,255.84C105.49,262.49 104.55,269.62 105.92,277.24C107.65,286.84 112.52,294.42 120.52,299.98C128.53,305.54 137.33,307.46 146.93,305.73V305.72Z"
+        android:fillColor="#004FAC"/>
+    <path
+        android:pathData="M293.93,132.47C301.29,134.5 308.23,133.67 314.75,129.97C321.28,126.21 325.56,120.68 327.58,113.37C328.05,111.67 328.36,110.01 328.51,108.39C328.67,106.72 328.66,105.06 328.46,103.41C326.72,103.93 324.96,104.22 323.17,104.26C321.38,104.3 319.61,104.08 317.86,103.59C314.89,102.77 312.27,101.34 310,99.29C307.8,97.2 306.18,94.69 305.16,91.75C302.77,93.75 300.07,95.08 297.06,95.72C294.11,96.33 291.16,96.22 288.19,95.4C286.43,94.92 284.8,94.2 283.28,93.25C281.76,92.3 280.4,91.15 279.17,89.81C278.16,91.13 277.29,92.54 276.58,94.06C275.88,95.52 275.3,97.11 274.83,98.81C272.81,106.12 273.65,113.06 277.33,119.63C281.09,126.16 286.62,130.44 293.93,132.46V132.47ZM289.27,110.78C290.42,111.1 291.49,110.98 292.47,110.42C293.52,109.82 294.21,108.95 294.52,107.79C294.83,106.63 294.69,105.56 294.08,104.56C293.54,103.52 292.69,102.85 291.54,102.53C290.39,102.21 289.28,102.35 288.23,102.95C287.25,103.51 286.6,104.36 286.28,105.52C285.96,106.67 286.07,107.77 286.62,108.81C287.23,109.81 288.11,110.46 289.27,110.78ZM309.05,116.24C310.2,116.56 311.27,116.44 312.25,115.88C313.3,115.28 313.99,114.41 314.3,113.25C314.61,112.09 314.47,111.02 313.86,110.02C313.32,108.98 312.47,108.31 311.32,107.99C310.17,107.67 309.06,107.81 308.01,108.41C307.03,108.97 306.38,109.82 306.06,110.98C305.74,112.14 305.85,113.23 306.4,114.27C307.01,115.27 307.89,115.92 309.05,116.24ZM290,88.81C293.19,89.69 296.22,89.31 299.09,87.68C301.96,86.05 303.84,83.64 304.72,80.45L305.13,78.97C301.27,78.38 297.51,78.61 293.85,79.67C290.19,80.73 286.9,82.45 284,84.85C284.81,85.78 285.71,86.59 286.7,87.28C287.69,87.97 288.79,88.48 290,88.81ZM319.67,97C320.88,97.33 322.08,97.49 323.27,97.46C324.47,97.38 325.67,97.12 326.86,96.68C325.59,93.14 323.65,89.97 321.05,87.19C318.5,84.42 315.4,82.29 311.72,80.8L311.31,82.28C310.43,85.47 310.81,88.5 312.44,91.37C314.07,94.24 316.48,96.12 319.67,97ZM257.98,136.74C256.06,136.21 254.63,135.05 253.71,133.26C252.79,131.47 252.67,129.63 253.37,127.75L265.32,96.01C267.03,91.52 269.46,87.54 272.6,84.09C275.79,80.65 279.39,77.92 283.38,75.89C287.44,73.82 291.76,72.52 296.33,72.01C300.98,71.46 305.63,71.83 310.3,73.11C314.97,74.4 319.13,76.46 322.78,79.3C326.5,82.1 329.55,85.42 331.91,89.27C334.35,93.08 336.03,97.27 336.96,101.84C337.94,106.43 338.02,111.09 337.18,115.83L331.17,149.2C330.8,151.17 329.77,152.69 328.05,153.75C326.33,154.81 324.52,155.08 322.6,154.55L257.98,136.73V136.74ZM292.11,139.06C285.24,137.17 279.58,133.57 275.13,128.26C270.7,122.9 268.07,116.88 267.25,110.21L259.8,130.15L324.42,147.97L328.24,127.03C324.12,132.34 318.78,136.16 312.22,138.49C305.73,140.78 299.03,140.97 292.11,139.06ZM292.11,139.06C299.03,140.97 305.21,142.67 310.65,144.17C316.14,145.69 320.13,146.78 322.6,147.47L324.41,147.97L259.79,130.15L261.6,130.65C264.07,131.33 268.06,132.43 273.55,133.95C279.04,135.47 285.23,137.17 292.09,139.06H292.11Z"
+        android:fillColor="#FFEEBE"/>
+  </group>
+</vector>
diff --git a/res/drawable-night/modes_interstitial_other.xml b/res/drawable-night/modes_interstitial_other.xml
new file mode 100644
index 0000000..2bbed99
--- /dev/null
+++ b/res/drawable-night/modes_interstitial_other.xml
@@ -0,0 +1,118 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M81.65,103.36C94.23,106.21 96.82,122.99 85.68,129.5L83.84,130.58C80.44,132.57 78.01,135.87 77.14,139.71L76.67,141.79C73.82,154.37 57.04,156.96 50.53,145.82L49.45,143.98C47.46,140.58 44.16,138.15 40.32,137.28L38.24,136.81C25.66,133.96 23.07,117.18 34.21,110.67L36.05,109.59C39.45,107.6 41.88,104.3 42.75,100.46L43.22,98.38C46.07,85.8 62.85,83.21 69.36,94.35L70.44,96.19C72.43,99.59 75.73,102.02 79.57,102.89L81.65,103.36Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#4285F4"/>
+    <path
+        android:pathData="M364.93,340.67C377.51,343.52 380.1,360.3 368.96,366.81L367.12,367.89C363.72,369.88 361.29,373.18 360.42,377.02L359.95,379.1C357.1,391.68 340.32,394.27 333.81,383.13L332.73,381.29C330.74,377.89 327.44,375.46 323.6,374.59L321.52,374.12C308.94,371.27 306.35,354.49 317.49,347.98L319.33,346.9C322.73,344.91 325.16,341.61 326.03,337.77L326.5,335.69C329.35,323.11 346.13,320.52 352.64,331.66L353.72,333.5C355.71,336.9 359.01,339.33 362.85,340.2L364.93,340.67Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M70.27,311.22C73.06,306.56 79.82,306.56 82.61,311.22L85.75,316.46C87.38,319.18 90.6,320.51 93.67,319.74L99.6,318.25C104.87,316.93 109.65,321.71 108.33,326.98L106.84,332.91C106.07,335.98 107.4,339.2 110.12,340.83L115.36,343.97C120.02,346.76 120.02,353.52 115.36,356.31L110.12,359.45C107.4,361.08 106.07,364.3 106.84,367.37L108.33,373.3C109.65,378.57 104.87,383.35 99.6,382.03L93.67,380.54C90.6,379.77 87.38,381.1 85.75,383.82L82.61,389.06C79.82,393.72 73.06,393.72 70.27,389.06L67.13,383.82C65.5,381.1 62.28,379.77 59.21,380.54L53.28,382.03C48.01,383.35 43.23,378.57 44.55,373.3L46.04,367.37C46.81,364.3 45.48,361.08 42.76,359.45L37.52,356.31C32.86,353.52 32.86,346.76 37.52,343.97L42.76,340.83C45.48,339.2 46.81,335.98 46.04,332.91L44.55,326.98C43.23,321.71 48.01,316.93 53.28,318.25L59.21,319.74C62.28,320.51 65.5,319.18 67.13,316.46L70.27,311.22Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M349.46,192.02C350.8,189.79 354.02,189.79 355.36,192.02L356.86,194.53C357.64,195.83 359.18,196.47 360.65,196.1L363.48,195.39C366,194.76 368.28,197.04 367.65,199.56L366.94,202.39C366.57,203.86 367.21,205.4 368.51,206.18L371.02,207.68C373.25,209.02 373.25,212.24 371.02,213.58L368.51,215.08C367.21,215.86 366.57,217.4 366.94,218.87L367.65,221.7C368.28,224.22 366,226.5 363.48,225.87L360.65,225.16C359.18,224.79 357.64,225.43 356.86,226.73L355.36,229.24C354.02,231.47 350.8,231.47 349.46,229.24L347.96,226.73C347.18,225.43 345.64,224.79 344.17,225.16L341.34,225.87C338.82,226.5 336.54,224.22 337.17,221.7L337.88,218.87C338.25,217.4 337.61,215.86 336.31,215.08L333.8,213.58C331.57,212.24 331.57,209.02 333.8,207.68L336.31,206.18C337.61,205.4 338.25,203.86 337.88,202.39L337.17,199.56C336.54,197.04 338.82,194.76 341.34,195.39L344.17,196.1C345.64,196.47 347.18,195.83 347.96,194.53L349.46,192.02Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#4285F4"/>
+    <path
+        android:pathData="M50.02,303.87L76.47,281.69C82,277.05 82.72,268.82 78.09,263.29C73.45,257.76 65.21,257.04 59.69,261.67L33.23,283.85C27.71,288.49 26.98,296.73 31.62,302.25C36.25,307.78 44.49,308.5 50.02,303.87Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#4285F4"/>
+    <path
+        android:pathData="M190.87,53.46L220.77,70.72C227.01,74.33 235,72.19 238.61,65.94C242.21,59.7 240.07,51.71 233.83,48.1L203.93,30.84C197.69,27.24 189.7,29.38 186.09,35.62C182.49,41.87 184.63,49.86 190.87,53.46Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#4285F4"/>
+    <path
+        android:pathData="M372.69,173.54C384.92,173.54 394.84,163.63 394.84,151.39C394.84,139.16 384.92,129.24 372.69,129.24C360.46,129.24 350.54,139.16 350.54,151.39C350.54,163.63 360.46,173.54 372.69,173.54Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M54.85,200.83C63.95,200.83 71.33,193.45 71.33,184.35C71.33,175.25 63.95,167.87 54.85,167.87C45.75,167.87 38.37,175.25 38.37,184.35C38.37,193.45 45.75,200.83 54.85,200.83Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M54.85,75.46C67.92,75.46 78.52,64.86 78.52,51.79C78.52,38.71 67.92,28.12 54.85,28.12C41.78,28.12 31.18,38.71 31.18,51.79C31.18,64.86 41.78,75.46 54.85,75.46Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M149.34,366.63C158.44,366.63 165.82,359.25 165.82,350.15C165.82,341.05 158.44,333.67 149.34,333.67C140.24,333.67 132.86,341.05 132.86,350.15C132.86,359.25 140.24,366.63 149.34,366.63Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M164.35,104.14C188.06,81.2 225.76,81.2 249.47,104.14C256.72,111.16 265.61,116.28 275.34,119.03C307.12,128.03 325.97,160.58 317.9,192.52C315.43,202.29 315.43,212.53 317.9,222.3C325.97,254.24 307.12,286.79 275.34,295.79C265.62,298.54 256.73,303.66 249.47,310.68C225.76,333.62 188.06,333.62 164.35,310.68C157.1,303.66 148.21,298.54 138.48,295.79C106.7,286.79 87.85,254.24 95.92,222.3C98.39,212.53 98.39,202.29 95.92,192.52C87.85,160.58 106.7,128.03 138.48,119.03C148.21,116.28 157.09,111.16 164.35,104.14Z"
+        android:fillColor="#1E8E3E"/>
+    <path
+        android:pathData="M291.79,39.71C294.08,44.56 295.22,46.98 295.37,49.27C295.58,52.57 294.42,55.82 292.16,58.24C290.6,59.91 288.17,61.05 283.32,63.34L280.72,64.57C275.87,66.86 273.45,68 271.16,68.15C267.86,68.36 264.61,67.2 262.19,64.94C260.52,63.38 259.38,60.95 257.09,56.1L255.86,53.5C253.57,48.65 252.43,46.23 252.28,43.94C252.07,40.64 253.23,37.39 255.49,34.97C257.05,33.3 259.48,32.16 264.33,29.87L266.93,28.64C271.78,26.35 274.2,25.21 276.49,25.06C279.79,24.85 283.04,26.01 285.46,28.27C287.13,29.83 288.27,32.26 290.56,37.11L291.79,39.71Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M275.06,336.34C281.73,338.9 285.07,340.18 287.32,342.24C290.57,345.23 292.44,349.42 292.49,353.84C292.52,356.89 291.24,360.23 288.68,366.9L287.31,370.48C284.75,377.15 283.47,380.49 281.41,382.74C278.42,385.99 274.23,387.86 269.81,387.91C266.76,387.94 263.42,386.66 256.75,384.1L253.17,382.73C246.5,380.17 243.16,378.89 240.91,376.83C237.66,373.84 235.79,369.65 235.74,365.23C235.71,362.18 236.99,358.84 239.55,352.17L240.92,348.59C243.48,341.92 244.76,338.58 246.82,336.33C249.81,333.08 254,331.21 258.42,331.16C261.47,331.13 264.81,332.41 271.48,334.97L275.06,336.34Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M56.34,227.85C58.63,232.7 59.77,235.12 59.92,237.41C60.13,240.71 58.97,243.96 56.71,246.38C55.15,248.05 52.72,249.19 47.87,251.48L45.27,252.71C40.42,255 38,256.14 35.71,256.29C32.41,256.5 29.16,255.34 26.74,253.08C25.07,251.52 23.93,249.09 21.64,244.24L20.41,241.64C18.12,236.79 16.98,234.37 16.83,232.08C16.62,228.78 17.78,225.53 20.04,223.11C21.6,221.44 24.03,220.3 28.88,218.01L31.48,216.78C36.33,214.49 38.75,213.35 41.04,213.2C44.34,212.99 47.59,214.15 50.01,216.41C51.68,217.97 52.82,220.4 55.11,225.25L56.34,227.85Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M319.04,100.31C314.11,99.32 309.47,96.66 306.06,92.42C298.38,82.87 299.86,68.93 309.37,61.29C313.67,57.83 318.88,56.26 324,56.46C324.9,51.42 327.55,46.68 331.84,43.23C341.32,35.61 355.23,37.18 362.91,46.73C366.32,50.97 367.92,56.07 367.83,61.09C372.76,62.08 377.39,64.75 380.8,68.98C388.48,78.53 387.01,92.46 377.53,100.08C373.24,103.53 368.04,105.1 362.92,104.89C362.01,109.94 359.35,114.68 355.05,118.14C345.55,125.78 331.62,124.22 323.94,114.67C320.53,110.43 318.93,105.33 319.03,100.3L319.04,100.31Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M183.62,383.49C180.85,382.54 178.39,380.64 176.76,377.93C173.09,371.82 175.03,363.91 181.1,360.26C183.85,358.61 186.97,358.11 189.91,358.62C190.82,355.79 192.72,353.26 195.46,351.61C201.52,347.96 209.41,349.95 213.09,356.06C214.72,358.77 215.25,361.83 214.8,364.72C217.56,365.68 220.02,367.58 221.65,370.28C225.32,376.39 223.39,384.29 217.33,387.94C214.59,389.59 211.47,390.09 208.54,389.57C207.62,392.41 205.72,394.93 202.97,396.59C196.9,400.25 188.99,398.26 185.32,392.16C183.69,389.45 183.17,386.39 183.62,383.5V383.49Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#4285F4"/>
+    <path
+        android:pathData="M136.6,94.6C135.54,95.43 135.01,95.85 134.53,96.14C130.73,98.45 125.84,97.87 122.7,94.72C122.3,94.32 121.88,93.79 121.05,92.73L93.38,57.49C92.55,56.43 92.13,55.9 91.84,55.42C89.53,51.62 90.11,46.73 93.26,43.6C93.66,43.2 94.19,42.78 95.25,41.95L112.87,28.12C127.41,16.7 148.46,19.24 159.88,33.78C171.3,48.32 168.76,69.37 154.22,80.79L136.6,94.62V94.6Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M389.79,270.19C390.52,270.96 390.89,271.34 391.16,271.7C393.26,274.5 393.17,278.38 390.94,281.08C390.65,281.43 390.27,281.79 389.5,282.52L363.96,306.89C363.19,307.62 362.81,307.99 362.45,308.26C359.65,310.36 355.77,310.27 353.07,308.04C352.72,307.75 352.36,307.37 351.63,306.6L339.44,293.83C329.38,283.29 329.78,266.59 340.31,256.54C350.85,246.48 367.55,246.88 377.6,257.41L389.79,270.18V270.19Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+  </group>
+</vector>
diff --git a/res/drawable-night/modes_interstitial_theater.xml b/res/drawable-night/modes_interstitial_theater.xml
new file mode 100644
index 0000000..d17b167
--- /dev/null
+++ b/res/drawable-night/modes_interstitial_theater.xml
@@ -0,0 +1,69 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M300.93,258.76C304.13,254.1 311.15,254.53 313.75,259.55L316.68,265.2C318.2,268.13 321.45,269.72 324.7,269.12L330.95,267.96C336.51,266.92 341.17,272.19 339.46,277.59L337.54,283.65C336.54,286.79 337.72,290.22 340.44,292.09L345.69,295.69C350.35,298.89 349.92,305.91 344.9,308.51L339.25,311.44C336.32,312.96 334.73,316.21 335.34,319.46L336.5,325.71C337.53,331.27 332.27,335.93 326.87,334.22L320.81,332.3C317.67,331.3 314.24,332.48 312.37,335.2L308.77,340.45C305.57,345.11 298.55,344.68 295.95,339.66L293.02,334.01C291.5,331.08 288.25,329.49 285,330.1L278.75,331.26C273.19,332.29 268.53,327.03 270.24,321.63L272.16,315.57C273.16,312.43 271.98,309 269.26,307.13L264.01,303.53C259.35,300.33 259.78,293.31 264.8,290.71L270.45,287.78C273.38,286.26 274.97,283.01 274.37,279.76L273.21,273.51C272.17,267.95 277.44,263.29 282.84,265L288.9,266.92C292.04,267.92 295.47,266.74 297.34,264.02L300.94,258.77L300.93,258.76Z"
+        android:fillColor="#4285F4"/>
+    <path
+        android:pathData="M77.66,50.23C76.29,45.91 76.37,41.09 78.22,36.56C82.41,26.34 94.04,21.44 104.2,25.6C108.8,27.49 112.31,30.91 114.39,35.03C118.76,33.54 123.65,33.57 128.24,35.45C138.38,39.61 143.21,51.26 139.02,61.47C137.16,66 133.84,69.49 129.84,71.61C131.21,75.93 131.12,80.74 129.27,85.28C125.08,95.5 113.47,100.41 103.33,96.26C98.74,94.38 95.24,90.96 93.17,86.84C88.79,88.32 83.89,88.3 79.29,86.41C69.13,82.24 64.28,70.59 68.47,60.37C70.33,55.84 73.65,52.35 77.66,50.24V50.23Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#C5221F"
+        android:strokeLineCap="round"/>
+    <path
+        android:pathData="M180.11,93.23C180.11,89.75 180.11,88.01 180.28,86.55C181.64,75.13 190.64,66.13 202.05,64.78C203.51,64.61 205.25,64.61 208.73,64.61H324.57C328.05,64.61 329.79,64.61 331.25,64.78C342.67,66.14 351.67,75.14 353.02,86.55C353.19,88.01 353.19,89.75 353.19,93.23V151.15C353.19,198.95 314.44,237.7 266.64,237.7C218.84,237.7 180.09,198.95 180.09,151.15V93.23H180.11Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#F29900"/>
+    <path
+        android:pathData="M228.49,100.85C219.06,100.85 211.26,107.82 209.95,116.89C209.74,118.31 210.86,119.59 212.3,119.59H244.69C246.13,119.59 247.24,118.31 247.04,116.89C245.73,107.82 237.93,100.85 228.5,100.85H228.49Z"
+        android:fillColor="#F29900"/>
+    <path
+        android:pathData="M304.85,100.85C295.42,100.85 287.62,107.82 286.31,116.89C286.1,118.31 287.22,119.59 288.66,119.59H321.05C322.49,119.59 323.6,118.31 323.4,116.89C322.09,107.82 314.29,100.85 304.86,100.85H304.85Z"
+        android:fillColor="#F29900"/>
+    <path
+        android:pathData="M266.67,172.93C253.45,172.93 242.5,182.7 240.67,195.42C240.38,197.42 241.94,199.21 243.96,199.21H289.38C291.4,199.21 292.96,197.42 292.67,195.42C290.83,182.7 279.89,172.93 266.67,172.93Z"
+        android:fillColor="#F29900"/>
+    <path
+        android:pathData="M55.38,166.77C55.38,163.29 55.38,161.55 55.55,160.09C56.91,148.67 65.91,139.67 77.32,138.32C78.78,138.15 80.52,138.15 84,138.15H199.84C203.32,138.15 205.06,138.15 206.52,138.32C217.94,139.68 226.94,148.68 228.29,160.09C228.46,161.55 228.46,163.29 228.46,166.77V224.69C228.46,272.49 189.71,311.24 141.91,311.24C94.11,311.24 55.36,272.49 55.36,224.69V166.77H55.38Z"
+        android:fillColor="#FFB900"/>
+    <path
+        android:pathData="M103.75,179.43C94.32,179.43 86.52,186.4 85.21,195.47C85,196.89 86.12,198.17 87.56,198.17H119.95C121.39,198.17 122.5,196.89 122.3,195.47C120.99,186.4 113.19,179.43 103.76,179.43H103.75Z"
+        android:fillColor="#1B1C16"/>
+    <path
+        android:pathData="M180.11,179.43C170.68,179.43 162.88,186.4 161.57,195.47C161.36,196.89 162.48,198.17 163.92,198.17H196.31C197.75,198.17 198.86,196.89 198.66,195.47C197.35,186.4 189.55,179.43 180.12,179.43H180.11Z"
+        android:fillColor="#1B1C16"/>
+    <path
+        android:pathData="M140.16,277.78C153.38,277.78 164.33,268.01 166.16,255.29C166.45,253.29 164.89,251.5 162.87,251.5H117.45C115.43,251.5 113.87,253.29 114.16,255.29C116,268.01 126.94,277.78 140.16,277.78Z"
+        android:fillColor="#1B1C16"/>
+    <path
+        android:pathData="M205.46,328.16C220.3,318.94 239.8,323.51 249.02,338.35C258.24,353.19 253.67,372.69 238.83,381.91L226.43,389.61C211.59,398.83 192.09,394.26 182.87,379.42C173.65,364.58 178.22,345.08 193.06,335.86L205.46,328.16Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#009132"/>
+  </group>
+</vector>
diff --git a/res/drawable-night/modes_interstitial_unknown.xml b/res/drawable-night/modes_interstitial_unknown.xml
new file mode 100644
index 0000000..4047e13
--- /dev/null
+++ b/res/drawable-night/modes_interstitial_unknown.xml
@@ -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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M147.09,65.18C149.2,72.23 150.26,75.75 149.99,78.88C149.6,83.41 147.36,87.57 143.79,90.39C141.33,92.34 137.8,93.39 130.75,95.51L126.97,96.64C119.92,98.75 116.4,99.81 113.27,99.54C108.74,99.15 104.58,96.91 101.76,93.34C99.81,90.88 98.76,87.35 96.64,80.3L95.51,76.52C93.4,69.47 92.34,65.95 92.61,62.82C93,58.29 95.24,54.13 98.81,51.31C101.27,49.36 104.8,48.31 111.85,46.19L115.63,45.06C122.68,42.95 126.2,41.89 129.33,42.16C133.86,42.55 138.02,44.79 140.84,48.36C142.79,50.82 143.84,54.35 145.96,61.4L147.09,65.18Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M222.58,377.9C217.67,383.38 215.21,386.12 212.4,387.52C208.33,389.55 203.61,389.81 199.35,388.23C196.41,387.14 193.67,384.68 188.19,379.77L185.25,377.13C179.77,372.22 177.03,369.76 175.63,366.95C173.6,362.88 173.34,358.16 174.92,353.9C176.01,350.96 178.47,348.22 183.38,342.74L186.02,339.8C190.93,334.32 193.39,331.58 196.2,330.18C200.27,328.15 204.99,327.89 209.25,329.47C212.19,330.56 214.93,333.02 220.41,337.93L223.35,340.57C228.83,345.48 231.57,347.94 232.97,350.75C235,354.82 235.26,359.54 233.68,363.8C232.59,366.74 230.13,369.48 225.22,374.96L222.58,377.9Z"
+        android:fillColor="#FFB900"/>
+    <path
+        android:pathData="M341,204.85C338.84,202.27 337.54,198.95 337.54,195.31C337.54,187.12 344.14,180.49 352.29,180.49C355.98,180.49 359.35,181.85 361.93,184.1C364.51,181.85 367.87,180.49 371.55,180.49C379.67,180.49 386.26,187.13 386.26,195.31C386.26,198.94 384.96,202.27 382.81,204.85C384.96,207.43 386.26,210.75 386.26,214.39C386.26,222.58 379.67,229.21 371.55,229.21C367.87,229.21 364.51,227.85 361.93,225.6C359.34,227.85 355.97,229.21 352.29,229.21C344.15,229.21 337.54,222.57 337.54,214.39C337.54,210.76 338.84,207.43 341,204.85Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M210.98,29.57C221.73,24.9 232.63,35.81 227.97,46.56L227.2,48.34C225.77,51.62 225.77,55.35 227.2,58.63L227.97,60.41C232.64,71.16 221.73,82.06 210.98,77.4L209.2,76.63C205.92,75.2 202.19,75.2 198.91,76.63L197.13,77.4C186.38,82.07 175.48,71.16 180.14,60.41L180.91,58.63C182.34,55.35 182.34,51.62 180.91,48.34L180.14,46.56C175.47,35.81 186.38,24.91 197.13,29.57L198.91,30.34C202.19,31.77 205.92,31.77 209.2,30.34L210.98,29.57Z"
+        android:fillColor="#4285F4"/>
+    <path
+        android:pathData="M112.23,310.56C117.35,305.61 125.49,305.61 130.6,310.56C132.17,312.08 134.08,313.18 136.18,313.77C143.04,315.71 147.11,322.74 145.37,329.63C144.84,331.74 144.84,333.95 145.37,336.06C147.11,342.95 143.04,349.98 136.18,351.92C134.08,352.51 132.16,353.62 130.6,355.13C125.48,360.08 117.34,360.08 112.23,355.13C110.66,353.61 108.75,352.51 106.65,351.92C99.79,349.98 95.72,342.95 97.46,336.06C97.99,333.95 97.99,331.74 97.46,329.63C95.72,322.74 99.79,315.71 106.65,313.77C108.75,313.18 110.67,312.07 112.23,310.56Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M371.12,285.88C371.35,286.8 371.47,287.26 371.52,287.66C371.92,290.76 370.14,293.73 367.21,294.85C366.84,294.99 366.38,295.11 365.46,295.34L334.88,303C333.96,303.23 333.5,303.35 333.1,303.4C330,303.8 327.03,302.02 325.91,299.09C325.77,298.72 325.65,298.26 325.42,297.34L321.59,282.05C318.43,269.43 326.09,256.64 338.71,253.48C351.33,250.32 364.12,257.98 367.28,270.6L371.11,285.89L371.12,285.88Z"
+        android:fillColor="#4285F4"/>
+    <path
+        android:pathData="M70.59,304.57C69.85,305.15 69.47,305.45 69.13,305.66C66.46,307.29 63.02,306.87 60.81,304.66C60.53,304.38 60.23,304 59.65,303.26L40.18,278.47C39.6,277.73 39.3,277.35 39.09,277.01C37.46,274.34 37.88,270.9 40.09,268.69C40.37,268.41 40.75,268.11 41.49,267.53L53.89,257.8C64.12,249.77 78.93,251.55 86.96,261.78C94.99,272.01 93.21,286.82 82.98,294.85L70.58,304.58L70.59,304.57Z"
+        android:fillColor="#4285F4"/>
+    <path
+        android:pathData="M313.19,71.34C313.19,85.75 301.51,97.44 287.09,97.44C272.67,97.44 260.99,85.76 260.99,71.34C260.99,56.93 272.67,45.24 287.09,45.24C301.5,45.24 313.19,56.92 313.19,71.34Z"
+        android:fillColor="#EA4335"/>
+    <path
+        android:pathData="M69.28,183.38C67.16,181.26 62.32,182.31 56.49,185.67C54.74,179.16 52.06,175 49.06,175C46.06,175 43.38,179.16 41.63,185.67C35.79,182.31 30.96,181.26 28.84,183.38C26.72,185.5 27.77,190.34 31.13,196.18C24.62,197.93 20.46,200.61 20.46,203.61C20.46,206.61 24.62,209.29 31.13,211.04C27.77,216.88 26.72,221.71 28.84,223.84C30.96,225.96 35.8,224.91 41.64,221.55C43.39,228.06 46.07,232.22 49.07,232.22C52.07,232.22 54.75,228.06 56.5,221.55C62.34,224.92 67.17,225.97 69.3,223.84C71.42,221.72 70.37,216.88 67.01,211.04C73.52,209.29 77.68,206.61 77.68,203.61C77.68,200.61 73.52,197.93 67.01,196.18C70.37,190.34 71.42,185.51 69.3,183.39L69.28,183.38Z"
+        android:fillColor="#FFB900"
+        android:fillType="evenOdd"/>
+    <path
+        android:pathData="M284.91,311.14C286.75,308.06 291.22,308.06 293.06,311.14L295.13,314.6C296.21,316.4 298.33,317.28 300.36,316.77L304.28,315.79C307.76,314.92 310.92,318.07 310.04,321.55L309.06,325.47C308.55,327.5 309.43,329.62 311.23,330.7L314.69,332.77C317.77,334.61 317.77,339.08 314.69,340.92L311.23,342.99C309.43,344.07 308.55,346.19 309.06,348.22L310.04,352.14C310.91,355.62 307.76,358.78 304.28,357.9L300.36,356.92C298.33,356.41 296.21,357.29 295.13,359.09L293.06,362.55C291.22,365.63 286.75,365.63 284.91,362.55L282.84,359.09C281.76,357.29 279.64,356.41 277.61,356.92L273.69,357.9C270.21,358.77 267.05,355.62 267.93,352.14L268.91,348.22C269.42,346.19 268.54,344.07 266.74,342.99L263.28,340.92C260.2,339.08 260.2,334.61 263.28,332.77L266.74,330.7C268.54,329.62 269.42,327.5 268.91,325.47L267.93,321.55C267.06,318.07 270.21,314.91 273.69,315.79L277.61,316.77C279.64,317.28 281.76,316.4 282.84,314.6L284.91,311.14Z"
+        android:fillColor="#EA4335"/>
+    <path
+        android:pathData="M325.48,106.56C333.84,98.2 347.38,98.2 355.74,106.56C364.1,114.92 364.1,128.46 355.74,136.82L348.76,143.8C340.4,152.16 326.86,152.16 318.5,143.8C310.14,135.44 310.14,121.9 318.5,113.54L325.48,106.56Z"
+        android:fillColor="#FFB900"/>
+    <path
+        android:pathData="M62.52,107.52C73.44,103.01 85.95,108.22 90.46,119.14C94.97,130.06 89.76,142.57 78.84,147.08L69.71,150.85C58.79,155.36 46.28,150.15 41.77,139.23C37.26,128.31 42.47,115.8 53.39,111.29L62.52,107.52Z"
+        android:fillColor="#EA4335"/>
+  </group>
+</vector>
diff --git a/res/drawable/accessibility_button_navigation.xml b/res/drawable/accessibility_button_navigation.xml
deleted file mode 100644
index 8fdb627..0000000
--- a/res/drawable/accessibility_button_navigation.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M325.2,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7v-42.2h239V231.9z"/>
-  <path
-      android:pathData="M269.7,205.2c1.5,0 2.7,1.2 2.7,2.7s-1.2,2.7 -2.7,2.7c-1.5,0 -2.7,-1.2 -2.7,-2.7S268.2,205.2 269.7,205.2zM273.8,214.7v17.6H271v-8.1h-2.7v8.1h-2.7v-17.6c-2.7,-0.2 -5.6,-0.7 -8.1,-1.4l0.7,-2.7c3.5,0.9 7.7,1.4 11.5,1.4c3.8,0 8,-0.4 11.5,-1.4l0.7,2.7C279.4,214 276.5,214.5 273.8,214.7z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M205.7,219.7m-9.4,0a9.4,9.4 0,1 1,18.8 0a9.4,9.4 0,1 1,-18.8 0"
-      android:fillColor="#BDC0C4"/>
-  <path
-      android:pathData="M132.1,219.7l16,9.2l0,-18.5z"
-      android:fillColor="#BDC0C4"/>
-  <path
-      android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M269.7,255.3c-19.6,0 -35.6,-16 -35.6,-35.6s16,-35.6 35.6,-35.6s35.6,16 35.6,35.6S289.3,255.3 269.7,255.3zM269.7,187.1c-17.9,0 -32.5,14.6 -32.5,32.5c0,17.9 14.6,32.5 32.5,32.5s32.5,-14.6 32.5,-32.5C302.2,201.7 287.6,187.1 269.7,187.1z"
-      android:fillColor="#3773DF"/>
-</vector>
diff --git a/res/drawable/accessibility_button_navigation_tablet.xml b/res/drawable/accessibility_button_navigation_tablet.xml
deleted file mode 100644
index d8ae503..0000000
--- a/res/drawable/accessibility_button_navigation_tablet.xml
+++ /dev/null
@@ -1,54 +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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M28,0L384,0A28,28 0,0 1,412 28L412,272A28,28 0,0 1,384 300L28,300A28,28 0,0 1,0 272L0,28A28,28 0,0 1,28 0z"
-      android:fillColor="#ffffff"/>
-  <group>
-    <clip-path
-        android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
-    <path
-        android:pathData="M46.23,204.14h320v48h-320z"
-        android:fillColor="#000000"/>
-    <path
-        android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
-        android:fillColor="#ffffff"/>
-    <path
-        android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
-        android:fillColor="#BDC0C4"/>
-    <path
-        android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
-        android:fillColor="#BDC0C4"/>
-  </group>
-  <path
-      android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
-      android:strokeWidth="3"
-      android:fillColor="#00000000"
-      android:strokeColor="#DADCE0"/>
-  <path
-      android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
-      android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_large_floating_menu.xml b/res/drawable/accessibility_button_preview_large_floating_menu.xml
deleted file mode 100644
index 794f3ca..0000000
--- a/res/drawable/accessibility_button_preview_large_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:pathData="M325.4,198.2h-40.9c-22.1,0 -40,-18 -40,-40s18,-40 40,-40h40.9v2.6h-40.9c-20.7,0 -37.5,16.8 -37.5,37.5s16.8,37.5 37.5,37.5h40.9V198.2z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M284.3,128.4c-16.5,0 -29.8,13.4 -29.8,29.8c0,16.5 13.4,29.8 29.8,29.8s29.8,-13.4 29.8,-29.8C314.2,141.7 300.9,128.4 284.3,128.4zM284.3,142.7c1.7,0 3.1,1.4 3.1,3.1c0,1.7 -1.4,3.1 -3.1,3.1s-3.1,-1.4 -3.1,-3.1C281.2,144.1 282.7,142.7 284.3,142.7zM289.1,153.7V174H286v-9.4h-3.1v9.4h-3.2v-20.3c-3.1,-0.3 -6.5,-0.8 -9.4,-1.5l0.8,-3.1c4.1,1 8.9,1.5 13.3,1.5s9.2,-0.5 13.3,-1.5l0.8,3.1C295.6,152.9 292.2,153.4 289.1,153.7z"
-        android:fillColor="#606368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_large_floating_menu_tablet.xml b/res/drawable/accessibility_button_preview_large_floating_menu_tablet.xml
deleted file mode 100644
index 99798d5..0000000
--- a/res/drawable/accessibility_button_preview_large_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M365.76,226.17h-27.68c-14.95,0 -27.07,-12.18 -27.07,-27.07s12.18,-27.07 27.07,-27.07h27.68v1.76h-27.68c-14.01,0 -25.37,11.37 -25.37,25.37s11.37,25.37 25.37,25.37h27.68v1.62Z"
-      android:fillColor="#dadce0"/>
-  <path
-      android:pathData="M337.95,178.94c-11.16,0 -20.16,9.07 -20.16,20.16 0,11.16 9.07,20.16 20.16,20.16s20.16,-9.07 20.16,-20.16c0.07,-11.16 -8.93,-20.16 -20.16,-20.16ZM337.95,188.62c1.15,0 2.1,0.95 2.1,2.1 0,1.15 -0.95,2.1 -2.1,2.1s-2.1,-0.95 -2.1,-2.1c0,-1.15 1.02,-2.1 2.1,-2.1ZM341.2,196.06v13.74h-2.1v-6.36h-2.1v6.36h-2.17v-13.74c-2.1,-0.2 -4.4,-0.54 -6.36,-1.01l0.54,-2.1c2.77,0.68 6.02,1.01 9,1.01s6.23,-0.34 9,-1.01l0.54,2.1c-1.96,0.47 -4.26,0.81 -6.36,1.01Z"
-      android:fillColor="#5f6368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_small_floating_menu.xml b/res/drawable/accessibility_button_preview_small_floating_menu.xml
deleted file mode 100644
index 670a516..0000000
--- a/res/drawable/accessibility_button_preview_small_floating_menu.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:pathData="M325.4,189.2h-31.7c-17.1,0 -31,-13.9 -31,-31s13.9,-31 31,-31h31.7v2h-31.7c-16,0 -29,13 -29,29s13,29 29,29h31.7V189.2z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M293.6,135.1c-12.8,0 -23.1,10.4 -23.1,23.1c0,12.8 10.4,23.1 23.1,23.1s23.1,-10.4 23.1,-23.1C316.7,145.4 306.4,135.1 293.6,135.1zM293.6,146.2c1.3,0 2.4,1.1 2.4,2.4s-1.1,2.4 -2.4,2.4s-2.4,-1.1 -2.4,-2.4S292.3,146.2 293.6,146.2zM297.3,154.7v15.7h-2.4v-7.3h-2.4v7.3H290v-15.7c-2.4,-0.2 -5,-0.6 -7.3,-1.2l0.6,-2.4c3.2,0.8 6.9,1.2 10.3,1.2s7.1,-0.4 10.3,-1.2l0.6,2.4C302.3,154.1 299.7,154.5 297.3,154.7z"
-        android:fillColor="#606368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_small_floating_menu_tablet.xml b/res/drawable/accessibility_button_preview_small_floating_menu_tablet.xml
deleted file mode 100644
index e31265c..0000000
--- a/res/drawable/accessibility_button_preview_small_floating_menu_tablet.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M365.88,219.24h-20.7c-5.38,0 -10.43,-2.09 -14.23,-5.9s-5.9,-8.86 -5.9,-14.23c0,-5.38 2.09,-10.43 5.9,-14.24 3.8,-3.8 8.86,-5.9 14.23,-5.9h20.7v1h-20.7c-5.11,0 -9.91,1.99 -13.53,5.6s-5.6,8.42 -5.6,13.53c0,5.11 1.99,9.91 5.6,13.53s8.42,5.6 13.53,5.6h20.7v1Z"
-      android:fillColor="#dadce0"/>
-  <path
-      android:pathData="M345.19,184c-2.99,-0 -5.91,0.88 -8.4,2.54 -2.49,1.66 -4.43,4.02 -5.57,6.78s-1.45,5.8 -0.86,8.73c0.58,2.93 2.02,5.63 4.13,7.74 2.11,2.11 4.81,3.55 7.74,4.14 2.93,0.58 5.97,0.29 8.73,-0.86 2.76,-1.14 5.12,-3.08 6.78,-5.57 1.66,-2.49 2.55,-5.41 2.55,-8.4 0,-4.01 -1.59,-7.85 -4.42,-10.68 -2.83,-2.83 -6.67,-4.43 -10.68,-4.43ZM345.19,191.28c0.4,0.03 0.77,0.21 1.04,0.51 0.27,0.29 0.42,0.68 0.42,1.08 0,0.4 -0.15,0.79 -0.42,1.08 -0.27,0.29 -0.64,0.47 -1.04,0.51 -0.22,0.02 -0.44,-0.01 -0.65,-0.08 -0.21,-0.07 -0.4,-0.19 -0.56,-0.33 -0.16,-0.15 -0.29,-0.33 -0.38,-0.53 -0.09,-0.2 -0.13,-0.42 -0.13,-0.64 0,-0.22 0.05,-0.44 0.13,-0.64 0.09,-0.2 0.22,-0.38 0.38,-0.53 0.16,-0.15 0.35,-0.26 0.56,-0.33 0.21,-0.07 0.43,-0.1 0.65,-0.08ZM347.56,196.82v10.29h-1.58v-4.76h-1.59v4.75h-1.58v-10.28c-1.6,-0.12 -3.19,-0.39 -4.75,-0.79l0.4,-1.58c4.42,1.05 9.04,1.05 13.46,0l0.39,1.58c-1.57,0.41 -3.17,0.67 -4.79,0.79h0.04Z"
-      android:fillColor="#5f6368"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_three_finger.xml b/res/drawable/accessibility_button_preview_three_finger.xml
deleted file mode 100644
index d18ce60..0000000
--- a/res/drawable/accessibility_button_preview_three_finger.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M242.5,226.9h-73.3c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h73.3c1.7,0 3.1,-1.4 3.1,-3.1S244.2,226.9 242.5,226.9z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M182.7,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C187.6,226.7 185.6,223.8 182.7,222.6z"
-      android:fillColor="#1A73E8"/>
-  <path
-      android:pathData="M209,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C213.9,226.7 211.9,223.8 209,222.6z"
-      android:fillColor="#1A73E8"/>
-  <path
-      android:pathData="M235.2,222.6v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-2.9,1.2 -4.9,4 -4.9,7.4c0,4.4 3.5,8 8,8c4.4,0 8,-3.5 8,-8C240,226.7 238,223.8 235.2,222.6z"
-      android:fillColor="#1A73E8"/>
-  <path
-      android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
-      android:fillColor="#DADCE0"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_three_finger_tablet.xml b/res/drawable/accessibility_button_preview_three_finger_tablet.xml
deleted file mode 100644
index a5590c4..0000000
--- a/res/drawable/accessibility_button_preview_three_finger_tablet.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#ffffff"
-        android:strokeColor="#DADCE0"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
-        android:fillColor="#1A73E8"/>
-    <path
-        android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
-        android:fillColor="#1A73E8"/>
-    <path
-        android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
-        android:fillColor="#1A73E8"/>
-  </group>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_two_finger.xml b/res/drawable/accessibility_button_preview_two_finger.xml
deleted file mode 100644
index bec95af..0000000
--- a/res/drawable/accessibility_button_preview_two_finger.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M325.4,231.9c0,9.8 -7.9,17.7 -17.7,17.7H103.9c-9.8,0 -17.7,-7.9 -17.7,-17.7V0h-4.4v231.9c0,12.2 9.9,22.2 22.1,22.2h203.8c12.2,0 22.1,-9.9 22.1,-22.2V14.8c2.4,0 4.4,-2 4.4,-4.4V0h-8.9V231.9z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M242.4,226.9h-9.3h-5.6h-43.4h-4.7h-10.2c-1.7,0 -3.1,1.4 -3.1,3.1s1.4,3.1 3.1,3.1h10.2h3.9h45h4.8h9.3c1.7,0 3.1,-1.4 3.1,-3.1S244.1,226.9 242.4,226.9z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M194,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C197,225.4 195.6,224.2 194,223.5z"
-      android:fillColor="#1A73E8"/>
-  <path
-      android:pathData="M223.7,223.5v-17.5h7.5l-10.6,-18.7l-10.6,18.7h7.5v17.5c-1.6,0.7 -2.9,1.9 -3.8,3.4c-0.7,1.2 -1.1,2.5 -1.1,4c0,0.7 0.1,1.5 0.3,2.2c0.9,3.3 4,5.8 7.7,5.8c3.6,0 6.7,-2.5 7.7,-5.8c0.2,-0.7 0.3,-1.4 0.3,-2.2c0,-1.5 -0.4,-2.8 -1.1,-4C226.6,225.4 225.3,224.2 223.7,223.5z"
-      android:fillColor="#1A73E8"/>
-</vector>
diff --git a/res/drawable/accessibility_button_preview_two_finger_tablet.xml b/res/drawable/accessibility_button_preview_two_finger_tablet.xml
deleted file mode 100644
index dbc5ad4..0000000
--- a/res/drawable/accessibility_button_preview_two_finger_tablet.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#ffffff"
-        android:strokeColor="#DADCE0"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
-        android:fillColor="#1A73E8"/>
-    <path
-        android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
-        android:fillColor="#1A73E8"/>
-  </group>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_three_finger_preview.xml b/res/drawable/accessibility_gesture_navigation_three_finger_preview.xml
deleted file mode 100644
index c14d744..0000000
--- a/res/drawable/accessibility_gesture_navigation_three_finger_preview.xml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M176.7,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C183.4,212.6 180.4,209.6 176.7,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="176.7163"
-          android:endY="209.6335"
-          android:endX="176.7163"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-  <path
-      android:pathData="M206,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C212.6,212.6 209.7,209.6 206,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="206"
-          android:endY="209.6335"
-          android:endX="206"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-  <path
-      android:pathData="M235.3,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C241.9,212.6 239,209.6 235.3,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="235.2837"
-          android:endY="209.6335"
-          android:endX="235.2837"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_three_finger_preview_tablet.xml b/res/drawable/accessibility_gesture_navigation_three_finger_preview_tablet.xml
deleted file mode 100644
index fab0853..0000000
--- a/res/drawable/accessibility_gesture_navigation_three_finger_preview_tablet.xml
+++ /dev/null
@@ -1,80 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#ffffff"
-        android:strokeColor="#DADCE0"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M176.84,188.94C173.14,188.94 170.24,191.94 170.24,195.54V220.14H183.54V195.54C183.54,191.94 180.54,188.94 176.84,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="176.89"
-            android:startY="220.23"
-            android:endX="176.89"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#001A73E8"/>
-          <item android:offset="0.69" android:color="#FF1A73E8"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-    <path
-        android:pathData="M206.14,188.94C202.44,188.94 199.54,191.94 199.54,195.54V220.14H212.84V195.54C212.74,191.94 209.84,188.94 206.14,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="206.19"
-            android:startY="220.23"
-            android:endX="206.19"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#001A73E8"/>
-          <item android:offset="0.69" android:color="#FF1A73E8"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-    <path
-        android:pathData="M235.44,188.94C231.74,188.94 228.84,191.94 228.84,195.54V220.14H242.14V195.54C242.04,191.94 239.14,188.94 235.44,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="235.49"
-            android:startY="220.23"
-            android:endX="235.49"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#001A73E8"/>
-          <item android:offset="0.69" android:color="#FF1A73E8"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-  </group>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_two_finger_preview.xml b/res/drawable/accessibility_gesture_navigation_two_finger_preview.xml
deleted file mode 100644
index 3ef4fd1..0000000
--- a/res/drawable/accessibility_gesture_navigation_two_finger_preview.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M274.9,97.7v-9.5c0,-1.3 -1.1,-2.4 -2.4,-2.4V35.9c0,-6.6 -5.3,-11.9 -11.9,-11.9H151.3c-6.6,0 -11.9,5.3 -11.9,11.9v228.2c0,6.6 5.3,11.9 11.9,11.9h109.4c6.6,0 11.9,-5.3 11.9,-11.9V147.6c1.3,0 2.4,-1.1 2.4,-2.4v-23.8c0,-1.3 -1.1,-2.4 -2.4,-2.4v-19C273.9,100.1 274.9,99 274.9,97.7zM270.2,264.1c0,5.2 -4.3,9.5 -9.5,9.5H151.3c-5.2,0 -9.5,-4.3 -9.5,-9.5V35.9c0,-5.2 4.3,-9.5 9.5,-9.5h109.4c5.2,0 9.5,4.3 9.5,9.5V264.1z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M188.6,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6h13.3v-24.6C195.3,212.6 192.3,209.6 188.6,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="188.65"
-          android:endY="209.6335"
-          android:endX="188.65"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-  <path
-      android:pathData="M223.4,209.6c-3.7,0 -6.6,3 -6.6,6.6v24.6H230v-24.6C230,212.6 227.1,209.6 223.4,209.6z">
-    <aapt:attr name="android:fillColor">
-      <gradient
-          android:startY="240.8954"
-          android:startX="223.4"
-          android:endY="209.6335"
-          android:endX="223.4"
-          android:type="linear">
-        <item android:offset="0" android:color="#00669DF6"/>
-        <item android:offset="0.695" android:color="#FF669DF6"/>
-      </gradient>
-    </aapt:attr>
-  </path>
-</vector>
diff --git a/res/drawable/accessibility_gesture_navigation_two_finger_preview_tablet.xml b/res/drawable/accessibility_gesture_navigation_two_finger_preview_tablet.xml
deleted file mode 100644
index f976f02..0000000
--- a/res/drawable/accessibility_gesture_navigation_two_finger_preview_tablet.xml
+++ /dev/null
@@ -1,66 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#ffffff"
-        android:strokeColor="#DADCE0"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M188.15,188.94C184.45,188.94 181.55,191.94 181.55,195.54V220.14H194.85V195.54C194.85,191.94 191.85,188.94 188.15,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="188.2"
-            android:startY="220.23"
-            android:endX="188.2"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#001A73E8"/>
-          <item android:offset="0.69" android:color="#FF1A73E8"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-    <path
-        android:pathData="M222.95,188.94C219.25,188.94 216.35,191.94 216.35,195.54V220.14H229.55V195.54C229.55,191.94 226.65,188.94 222.95,188.94Z">
-      <aapt:attr name="android:fillColor">
-        <gradient
-            android:startX="222.95"
-            android:startY="220.23"
-            android:endX="222.95"
-            android:endY="188.97"
-            android:type="linear">
-          <item android:offset="0" android:color="#001A73E8"/>
-          <item android:offset="0.69" android:color="#FF1A73E8"/>
-        </gradient>
-      </aapt:attr>
-    </path>
-  </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_hardware.xml b/res/drawable/accessibility_shortcut_type_hardware.xml
deleted file mode 100644
index b6b227b..0000000
--- a/res/drawable/accessibility_shortcut_type_hardware.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-      android:fillColor="#FFFFFF"/>
-  <path
-      android:pathData="M287,187.8v-1.5h2.9v-13.7c0,-1.6 -1.3,-2.9 -2.9,-2.9v-23.2c1.6,0 2.9,-1.3 2.9,-2.9V132c0,-1.6 -1.3,-2.9 -2.9,-2.9V68.4c0,-8 -6.5,-14.5 -14.5,-14.5H139.4c-8,0 -14.5,6.5 -14.5,14.5v185.3c1,0.7 1.9,1.4 2.9,2.1V68.4c0,-6.4 5.2,-11.6 11.6,-11.6h133.1c6.4,0 11.6,5.2 11.6,11.6v188.7c1,-0.7 1.9,-1.4 2.9,-2.2v-50.5c1.6,0 2.9,-1.3 2.9,-2.9v-13.7L287,187.8L287,187.8z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M287,204.4c1.6,0 2.9,-1.3 2.9,-2.9v-14H287v-0.9h2.9v-14c0,-1.6 -1.3,-2.9 -2.9,-2.9"
-      android:fillColor="#1A73E8"/>
-  <path
-      android:pathData="M206.7,19.1c35,0 67.9,13.6 92.6,38.4C324,82.1 337.6,115 337.6,150s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4C89.4,217.9 75.7,185 75.7,150s13.6,-67.9 38.4,-92.6C138.9,32.7 171.7,19.1 206.7,19.1M206.7,17.1c-73.4,0 -133,59.5 -133,132.9s59.5,132.9 132.9,132.9s133,-59.5 133,-132.9S280.1,17.1 206.7,17.1L206.7,17.1z"
-      android:fillColor="#E8EAED"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_hardware_tablet.xml b/res/drawable/accessibility_shortcut_type_hardware_tablet.xml
deleted file mode 100644
index db0906e..0000000
--- a/res/drawable/accessibility_shortcut_type_hardware_tablet.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M255.38,94.3C255.38,93.14 256.32,92.21 257.47,92.21L275.86,92.21C277.01,92.21 277.95,93.14 277.95,94.3L267.08,95.14L255.38,94.3Z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M340.09,110.17L340.09,248.55A14.5,14.5 0,0 1,325.59 263.05L88,263.05A14.5,14.5 0,0 1,73.5 248.55L73.5,110.17A14.5,14.5 0,0 1,88 95.67L325.59,95.67A14.5,14.5 0,0 1,340.09 110.17z"
-        android:strokeWidth="3"
-        android:fillColor="#ffffff"
-        android:strokeColor="#DADCE0"/>
-    <path
-        android:pathData="M295.77,94.3C295.77,93.14 296.7,92.21 297.86,92.21L305.38,92.21C306.53,92.21 307.46,93.14 307.46,94.3L302.45,95.14L295.77,94.3Z"
-        android:fillColor="#DADCE0"/>
-    <group>
-      <clip-path
-          android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"/>
-      <path
-          android:pathData="M274,30L274,30A93,93 0,0 1,367 123L367,123A93,93 0,0 1,274 216L274,216A93,93 0,0 1,181 123L181,123A93,93 0,0 1,274 30z"
-          android:fillColor="#ffffff"/>
-      <path
-          android:pathData="M206.07,85.49C206.07,83.45 207.72,81.79 209.75,81.79L242.17,81.79C244.21,81.79 245.86,83.45 245.86,85.49L226.7,86.97L206.07,85.49Z"
-          android:fillColor="#669DF6"/>
-      <path
-          android:pathData="M331.59,87C339.46,87 345.84,93.38 345.84,101.25L345.84,369.73C345.84,377.6 339.46,383.98 331.59,383.98L-111.85,383.98C-119.72,383.98 -126.1,377.6 -126.1,369.73L-126.1,101.25C-126.1,93.38 -119.72,87 -111.85,87L331.59,87Z"
-          android:strokeWidth="3.5"
-          android:fillColor="#ffffff"
-          android:strokeColor="#DADCE0"/>
-      <path
-          android:pathData="M266.77,85.49C266.77,83.45 268.42,81.79 270.46,81.79L283.72,81.79C285.75,81.79 287.4,83.45 287.4,85.49L278.56,86.97L266.77,85.49Z"
-          android:fillColor="#DADCE0"/>
-    </group>
-    <path
-        android:strokeWidth="1"
-        android:pathData="M274,30.5L274,30.5A92.5,92.5 0,0 1,366.5 123L366.5,123A92.5,92.5 0,0 1,274 215.5L274,215.5A92.5,92.5 0,0 1,181.5 123L181.5,123A92.5,92.5 0,0 1,274 30.5z"
-        android:fillColor="#00000000"
-        android:strokeColor="#DADCE0"/>
-  </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software.xml b/res/drawable/accessibility_shortcut_type_software.xml
deleted file mode 100644
index d0573aa..0000000
--- a/res/drawable/accessibility_shortcut_type_software.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"
-      android:fillColor="#fff"/>
-  <path
-      android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
-      android:fillColor="#dadce0"/>
-  <path
-      android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
-      android:fillColor="#e8eaed"/>
-  <path
-      android:fillColor="#FF000000"
-      android:pathData="M286.7,210.83a11.59,11.59 0,0 1,-11.58 11.58H142a11.59,11.59 0,0 1,-11.58 -11.58V183.26H286.7Z"/>
-  <path
-      android:pathData="M250.41,193.38a1.77,1.77 0,1 1,-1.78 1.77A1.77,1.77 0,0 1,250.41 193.38ZM253.07,199.58v11.53h-1.78v-5.32h-1.77v5.32h-1.77L247.75,199.58a30.78,30.78 0,0 1,-5.32 -0.89l0.44,-1.77a32.34,32.34 0,0 0,15.07 0l0.45,1.77A30.78,30.78 0,0 1,253.07 199.58Z"
-      android:fillColor="#fff"/>
-  <path
-      android:pathData="M208.55,202.84m-6.13,0a6.13,6.13 0,1 1,12.26 0a6.13,6.13 0,1 1,-12.26 0"
-      android:fillColor="#bdc1c6"/>
-  <path
-      android:pathData="M250.41,202.84m-22.28,0a22.28,22.28 0,1 1,44.56 0a22.28,22.28 0,1 1,-44.56 0"
-      android:strokeWidth="2"
-      android:fillColor="#00000000"
-      android:strokeColor="#1a73e8"/>
-  <path
-      android:pathData="M160.45,202.84l10.43,6.02l0,-12.05l-10.43,6.03z"
-      android:fillColor="#bdc1c6"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_floating.xml b/res/drawable/accessibility_shortcut_type_software_floating.xml
deleted file mode 100644
index 88ce42d..0000000
--- a/res/drawable/accessibility_shortcut_type_software_floating.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <path
-      android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5V28.5C0,12.8 12.5,0 27.8,0H384.3C399.5,0 412,12.8 412,28.5V271.7C412,287.2 399.5,300 384.2,300Z"
-      android:fillColor="#fff"/>
-  <path
-      android:pathData="M142,225.3H275.1a14.51,14.51 0,0 0,14.5 -14.5V69a2.9,2.9 0,0 0,2.9 -2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7V210.8a11.61,11.61 0,0 1,-11.6 11.6H142a11.61,11.61 0,0 1,-11.6 -11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1V210.9A14.62,14.62 0,0 0,142 225.3Z"
-      android:fillColor="#dadce0"/>
-  <path
-      android:strokeWidth="1"
-      android:pathData="M286.7,144.13H266a19.63,19.63 0,1 0,0 39.26H286.7"
-      android:fillColor="#00000000"
-      android:strokeColor="#dadce0"/>
-  <path
-      android:pathData="M266,148.65a15.11,15.11 0,1 0,15.1 15.11A15.11,15.11 0,0 0,266 148.65ZM266,155.93a1.59,1.59 0,0 1,0 3.17,1.59 1.59,0 1,1 0,-3.17ZM268.37,161.47v10.29h-1.58L266.79,167h-1.59v4.75h-1.58L263.62,161.47a27.23,27.23 0,0 1,-4.75 -0.79l0.4,-1.58a29.06,29.06 0,0 0,13.46 0l0.39,1.58A27.23,27.23 0,0 1,268.33 161.47Z"
-      android:fillColor="#5f6368"/>
-  <path
-      android:pathData="M207.4,19.1a131.11,131.11 0,0 1,131 131,131 131,0 0,1 -262,-0.1 130.94,130.94 0,0 1,131 -130.9m0,-2A132.9,132.9 0,1 0,340.3 150,133 133,0 0,0 207.4,17.1Z"
-      android:fillColor="#e8eaed"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_floating_tablet.xml b/res/drawable/accessibility_shortcut_type_software_floating_tablet.xml
deleted file mode 100644
index 4b04704..0000000
--- a/res/drawable/accessibility_shortcut_type_software_floating_tablet.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M0,0h412v300h-412z"/>
-    <path
-        android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-        android:strokeWidth="2.5"
-        android:fillColor="#ffffff"
-        android:strokeColor="#DADCE0"/>
-    <path
-        android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-        android:fillColor="#DADCE0"/>
-  </group>
-  <path
-      android:strokeWidth="1"
-      android:pathData="M365.64,179.48H344.94C339.74,179.48 334.74,181.54 331.06,185.23C327.38,188.91 325.31,193.9 325.31,199.11C325.31,204.31 327.38,209.3 331.06,212.99C334.74,216.67 339.74,218.74 344.94,218.74H365.64"
-      android:fillColor="#00000000"
-      android:strokeColor="#DADCE0"/>
-  <path
-      android:pathData="M344.95,184C341.96,183.99 339.04,184.88 336.55,186.54C334.06,188.2 332.12,190.56 330.98,193.32C329.83,196.08 329.53,199.12 330.11,202.05C330.7,204.98 332.14,207.67 334.25,209.79C336.36,211.9 339.05,213.34 341.98,213.93C344.92,214.51 347.95,214.21 350.72,213.07C353.48,211.92 355.84,209.99 357.5,207.5C359.16,205.02 360.05,202.1 360.05,199.11C360.05,195.1 358.46,191.26 355.62,188.43C352.79,185.59 348.95,184 344.95,184ZM344.95,191.28C345.35,191.31 345.72,191.49 345.99,191.78C346.26,192.08 346.41,192.46 346.41,192.86C346.41,193.26 346.26,193.65 345.99,193.94C345.72,194.23 345.35,194.41 344.95,194.45C344.73,194.46 344.51,194.43 344.3,194.36C344.09,194.29 343.9,194.18 343.74,194.03C343.58,193.88 343.45,193.7 343.36,193.5C343.28,193.3 343.23,193.08 343.23,192.86C343.23,192.64 343.28,192.43 343.36,192.22C343.45,192.02 343.58,191.84 343.74,191.69C343.9,191.54 344.09,191.43 344.3,191.36C344.51,191.29 344.73,191.26 344.95,191.28ZM347.32,196.82V207.11H345.74V202.35H344.15V207.1H342.57V196.82C340.96,196.69 339.37,196.43 337.82,196.03L338.22,194.45C342.64,195.5 347.25,195.5 351.68,194.45L352.07,196.03C350.5,196.43 348.89,196.7 347.28,196.82H347.32Z"
-      android:fillColor="#5F6368"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture.xml b/res/drawable/accessibility_shortcut_type_software_gesture.xml
deleted file mode 100644
index 2ded59f..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M842.3,299.9H485.9c-15.3,0 -27.8,-12.8 -27.8,-28.5v-243c0,-15.7 12.5,-28.5 27.8,-28.5h356.5c15.2,0 27.7,12.8 27.7,28.5v243.2C870.1,287.1 857.6,299.9 842.3,299.9z"/>
-    <path
-        android:pathData="M597.6,225.2h133.1c8,0 14.5,-6.5 14.5,-14.5V68.9c1.6,0 2.9,-1.3 2.9,-2.9V49c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7v166.4c0,6.4 -5.2,11.6 -11.6,11.6H597.6c-6.4,0 -11.6,-5.2 -11.6,-11.6V42.6c-1,0.7 -1.9,1.4 -2.9,2.1v166.1C583.2,218.7 589.7,225.2 597.6,225.2z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M688,207.8h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2H688c1.1,0 2,-0.9 2,-2S689.1,207.8 688,207.8z"
-        android:fillColor="#80868B"/>
-    <path
-        android:pathData="M656.5,205.6v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C659.7,208.3 658.3,206.4 656.5,205.6z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M675.8,205.6v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C679,208.3 677.7,206.4 675.8,205.6z"
-        android:fillColor="#669DF6"/>
-    <path
-        android:pathData="M664.2,19c35,0 67.9,13.6 92.6,38.4c24.7,24.7 38.4,57.6 38.4,92.6s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4c-24.7,-24.8 -38.4,-57.7 -38.4,-92.7s13.6,-67.9 38.4,-92.6C596.3,32.6 629.2,19 664.2,19M664.2,17c-73.4,0 -133,59.5 -133,132.9s59.5,132.9 132.9,132.9s133,-59.5 133,-132.9S737.6,17 664.2,17L664.2,17z"
-        android:fillColor="#3C4043"/>
-    <path
-        android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-        android:fillColor="#FFFFFF"/>
-    <path
-        android:pathData="M139.4,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9v-17c-1.9,-1.6 -3.8,-3.2 -5.8,-4.7v166.4c0,6.4 -5.2,11.6 -11.6,11.6H139.4c-6.4,0 -11.6,-5.2 -11.6,-11.6V42.7c-1,0.7 -1.9,1.4 -2.9,2.1v166.1C125,218.8 131.5,225.3 139.4,225.3z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M198.4,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C201.5,208.4 200.1,206.5 198.4,205.7z"
-        android:fillColor="#1A73E8"/>
-    <path
-        android:pathData="M217.6,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2s5.2,-2.3 5.2,-5.2C220.9,208.4 219.5,206.5 217.6,205.7z"
-        android:fillColor="#1A73E8"/>
-    <path
-        android:pathData="M206.1,19.1c35,0 67.9,13.6 92.6,38.4c24.7,24.7 38.4,57.6 38.4,92.6s-13.6,67.9 -38.4,92.6c-24.7,24.7 -57.6,38.4 -92.6,38.4s-67.9,-13.6 -92.6,-38.4S75.1,185 75.1,150s13.6,-67.9 38.4,-92.6C138.2,32.7 171.1,19.1 206.1,19.1M206.1,17.1c-73.4,0 -133,59.5 -133,132.9S132.6,282.9 206,282.9S339,223.4 339,150S279.5,17.1 206.1,17.1L206.1,17.1z"
-        android:fillColor="#E8EAED"/>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture_tablet.xml b/res/drawable/accessibility_shortcut_type_software_gesture_tablet.xml
deleted file mode 100644
index 2dccf2a..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture_tablet.xml
+++ /dev/null
@@ -1,46 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <group>
-        <clip-path
-            android:pathData="M0,0h412v300h-412z"/>
-        <path
-            android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-            android:fillColor="#DADCE0"/>
-        <path
-            android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-            android:strokeWidth="2.5"
-            android:fillColor="#ffffff"
-            android:strokeColor="#DADCE0"/>
-        <path
-            android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-            android:fillColor="#DADCE0"/>
-        <path
-            android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-            android:fillColor="#DADCE0"/>
-        <path
-            android:pathData="M198.35,229.14V217.74H203.25L196.35,205.54L189.45,217.74H194.35V229.14C192.45,229.94 191.15,231.74 191.15,233.94C191.15,236.84 193.45,239.14 196.35,239.14C199.25,239.14 201.55,236.84 201.55,233.94C201.55,231.84 200.15,229.94 198.35,229.14Z"
-            android:fillColor="#1A73E8"/>
-        <path
-            android:pathData="M217.65,229.14V217.74H222.55L215.65,205.54L208.75,217.74H213.65V229.14C211.75,229.94 210.45,231.74 210.45,233.94C210.45,236.84 212.75,239.14 215.65,239.14C218.55,239.14 220.85,236.84 220.85,233.94C220.85,231.84 219.55,229.94 217.65,229.14Z"
-            android:fillColor="#1A73E8"/>
-    </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture_talkback.xml b/res/drawable/accessibility_shortcut_type_software_gesture_talkback.xml
deleted file mode 100644
index 2de804c..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture_talkback.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2021 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <path
-        android:pathData="M384.2,300H27.8C12.5,300 0,287.2 0,271.5v-243C0,12.8 12.5,0 27.8,0h356.5C399.5,0 412,12.8 412,28.5v243.2C412,287.2 399.5,300 384.2,300z"
-        android:fillColor="#FFFFFF"/>
-    <path
-        android:pathData="M138,225.3h133.1c8,0 14.5,-6.5 14.5,-14.5V69c1.6,0 2.9,-1.3 2.9,-2.9V45.7c-1.9,-1.5 -3.8,-2.9 -5.8,-4.3v169.4c0,6.4 -5.2,11.6 -11.6,11.6H138c-6.4,0 -11.6,-5.2 -11.6,-11.6V43.5c-1,0.7 -1.9,1.5 -2.9,2.2v165C123.5,218.8 130,225.3 138,225.3z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M206,283.9c-73.9,0 -133.9,-60.1 -133.9,-133.9S132.1,16.1 206,16.1c73.9,0 133.9,60.1 133.9,133.9S279.9,283.9 206,283.9zM206,18.1C133.2,18.1 74.1,77.2 74.1,150S133.2,281.9 206,281.9S337.9,222.8 337.9,150S278.8,18.1 206,18.1z"
-        android:fillColor="#E8EAED"/>
-    <path
-        android:pathData="M229.9,207.9h-47.8c-1.1,0 -2,0.9 -2,2s0.9,2 2,2h47.8c1.1,0 2,-0.9 2,-2S231,207.9 229.9,207.9z"
-        android:fillColor="#DADCE0"/>
-    <path
-        android:pathData="M190.9,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C194.1,208.4 192.8,206.5 190.9,205.7z"
-        android:fillColor="#1A73E8"/>
-    <path
-        android:pathData="M208,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C211.2,208.4 209.9,206.5 208,205.7z"
-        android:fillColor="#1A73E8"/>
-    <path
-        android:pathData="M225.1,205.7v-11.4h4.9l-6.9,-12.2l-6.9,12.2h4.9v11.4c-1.9,0.8 -3.2,2.6 -3.2,4.8c0,2.9 2.3,5.2 5.2,5.2c2.9,0 5.2,-2.3 5.2,-5.2C228.2,208.4 226.9,206.5 225.1,205.7z"
-        android:fillColor="#1A73E8"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable/accessibility_shortcut_type_software_gesture_talkback_tablet.xml b/res/drawable/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
deleted file mode 100644
index e122ae1..0000000
--- a/res/drawable/accessibility_shortcut_type_software_gesture_talkback_tablet.xml
+++ /dev/null
@@ -1,49 +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.
--->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-    <group>
-        <clip-path
-            android:pathData="M0,0h412v300h-412z"/>
-        <path
-            android:pathData="M263.59,50.35C263.59,48.98 264.7,47.86 266.06,47.86L287.85,47.86C289.22,47.86 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-            android:fillColor="#DADCE0"/>
-        <path
-            android:pathData="M364.52,66.19L364.52,236.14A14.75,14.75 0,0 1,349.77 250.89L62.23,250.89A14.75,14.75 0,0 1,47.48 236.14L47.48,66.19A14.75,14.75 0,0 1,62.23 51.44L349.77,51.44A14.75,14.75 0,0 1,364.52 66.19z"
-            android:strokeWidth="2.5"
-            android:fillColor="#ffffff"
-            android:strokeColor="#DADCE0"/>
-        <path
-            android:pathData="M311.45,50.35C311.45,48.98 312.56,47.86 313.92,47.86L322.84,47.86C324.2,47.86 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-            android:fillColor="#DADCE0"/>
-        <path
-            android:pathData="M170.9,232.14L241.9,232.14A2,2 0,0 1,243.9 234.14L243.9,234.14A2,2 0,0 1,241.9 236.14L170.9,236.14A2,2 0,0 1,168.9 234.14L168.9,234.14A2,2 0,0 1,170.9 232.14z"
-            android:fillColor="#DADCE0"/>
-        <path
-            android:pathData="M188.7,229.14V217.74H193.6L186.7,205.54L179.8,217.74H184.7V229.14C182.8,229.94 181.5,231.74 181.5,233.94C181.5,236.84 183.8,239.14 186.7,239.14C189.6,239.14 191.9,236.84 191.9,233.94C191.9,231.84 190.5,229.94 188.7,229.14Z"
-            android:fillColor="#1A73E8"/>
-        <path
-            android:pathData="M208,229.14V217.74H212.9L206,205.54L199.1,217.74H204V229.14C202.1,229.94 200.8,231.74 200.8,233.94C200.8,236.84 203.1,239.14 206,239.14C208.9,239.14 211.2,236.84 211.2,233.94C211.2,231.84 209.9,229.94 208,229.14Z"
-            android:fillColor="#1A73E8"/>
-        <path
-            android:pathData="M227.29,229.14V217.74H232.2L225.29,205.54L218.4,217.74H223.29V229.14C221.4,229.94 220.1,231.74 220.1,233.94C220.1,236.84 222.4,239.14 225.29,239.14C228.2,239.14 230.49,236.84 230.49,233.94C230.49,231.84 229.2,229.94 227.29,229.14Z"
-            android:fillColor="#1A73E8"/>
-    </group>
-</vector>
diff --git a/res/drawable/accessibility_shortcut_type_software_tablet.xml b/res/drawable/accessibility_shortcut_type_software_tablet.xml
deleted file mode 100644
index 334344d..0000000
--- a/res/drawable/accessibility_shortcut_type_software_tablet.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="412dp"
-    android:height="300dp"
-    android:viewportWidth="412"
-    android:viewportHeight="300">
-  <group>
-    <clip-path
-        android:pathData="M62.23,50.19L349.77,50.19A16,16 0,0 1,365.77 66.19L365.77,236.14A16,16 0,0 1,349.77 252.14L62.23,252.14A16,16 0,0 1,46.23 236.14L46.23,66.19A16,16 0,0 1,62.23 50.19z"/>
-    <path
-        android:pathData="M46.23,204.14h320v48h-320z"
-        android:fillColor="#000000"/>
-    <path
-        android:pathData="M268.93,214.14C270.43,214.14 271.63,215.34 271.63,216.84C271.63,218.34 270.43,219.54 268.93,219.54C267.43,219.54 266.23,218.34 266.23,216.84C266.23,215.34 267.43,214.14 268.93,214.14ZM273.03,223.64V241.24H270.23V233.14H267.53V241.24H264.83V223.64C262.13,223.44 259.23,222.94 256.73,222.24L257.43,219.54C260.93,220.44 265.13,220.94 268.93,220.94C272.73,220.94 276.93,220.54 280.43,219.54L281.13,222.24C278.63,222.94 275.73,223.44 273.03,223.64Z"
-        android:fillColor="#ffffff"/>
-    <path
-        android:pathData="M206.23,238.04C211.42,238.04 215.63,233.83 215.63,228.64C215.63,223.45 211.42,219.24 206.23,219.24C201.04,219.24 196.83,223.45 196.83,228.64C196.83,233.83 201.04,238.04 206.23,238.04Z"
-        android:fillColor="#BDC0C4"/>
-    <path
-        android:pathData="M131.33,228.64L147.33,237.84V219.34L131.33,228.64Z"
-        android:fillColor="#BDC0C4"/>
-  </group>
-  <path
-      android:pathData="M62.23,51.69L349.77,51.69A14.5,14.5 0,0 1,364.27 66.19L364.27,236.14A14.5,14.5 0,0 1,349.77 250.64L62.23,250.64A14.5,14.5 0,0 1,47.73 236.14L47.73,66.19A14.5,14.5 0,0 1,62.23 51.69z"
-      android:strokeWidth="3"
-      android:fillColor="#00000000"
-      android:strokeColor="#DADCE0"/>
-  <path
-      android:pathData="M311.45,50.35C311.45,48.98 312.56,47.87 313.92,47.87L322.84,47.87C324.2,47.87 325.32,48.98 325.32,50.35L319.37,51.34L311.45,50.35Z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M263.59,50.35C263.59,48.98 264.7,47.87 266.06,47.87L287.85,47.87C289.22,47.87 290.33,48.98 290.33,50.35L277.45,51.34L263.59,50.35Z"
-      android:fillColor="#DADCE0"/>
-  <path
-      android:pathData="M268.93,259.69C251.31,259.69 236.93,245.3 236.93,227.69C236.93,210.07 251.31,195.69 268.93,195.69C286.55,195.69 300.93,210.07 300.93,227.69C300.93,245.3 286.55,259.69 268.93,259.69ZM268.93,198.38C252.84,198.38 239.72,211.51 239.72,227.6C239.72,243.69 252.84,256.81 268.93,256.81C285.02,256.81 298.14,243.69 298.14,227.6C298.14,211.51 285.02,198.38 268.93,198.38Z"
-      android:fillColor="#729CEE"/>
-</vector>
diff --git a/res/drawable/audio_sharing_rounded_bg.xml b/res/drawable/audio_sharing_rounded_bg.xml
index db1e1bb..35517ea 100644
--- a/res/drawable/audio_sharing_rounded_bg.xml
+++ b/res/drawable/audio_sharing_rounded_bg.xml
@@ -15,8 +15,10 @@
   ~ limitations under the License.
   -->
 
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
+<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="?android:colorButtonNormal" />
+    <solid android:color="?androidprv:attr/colorAccentPrimary" />
     <corners android:radius="12dp" />
 </shape>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_all_rounded_bg.xml b/res/drawable/battery_tips_all_rounded_bg.xml
deleted file mode 100644
index ba164b9..0000000
--- a/res/drawable/battery_tips_all_rounded_bg.xml
+++ /dev/null
@@ -1,22 +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"
-    android:shape="rectangle">
-    <solid android:color="@color/settingslib_materialColorSurfaceBright" />
-    <corners android:radius="@dimen/battery_tips_card_corner_radius_normal" />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_all_rounded_bg_ripple.xml b/res/drawable/battery_tips_all_rounded_bg_ripple.xml
deleted file mode 100644
index 3180570..0000000
--- a/res/drawable/battery_tips_all_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/battery_tips_all_rounded_bg"/>
-</ripple>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_half_rounded_bottom_bg.xml b/res/drawable/battery_tips_half_rounded_bottom_bg.xml
deleted file mode 100644
index 7766de6..0000000
--- a/res/drawable/battery_tips_half_rounded_bottom_bg.xml
+++ /dev/null
@@ -1,27 +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"
-    android:shape="rectangle">
-    <solid android:color="@color/settingslib_dialog_background"/>
-    <corners
-        android:topLeftRadius="@dimen/battery_tips_card_corner_radius_small"
-        android:topRightRadius="@dimen/battery_tips_card_corner_radius_small"
-        android:bottomLeftRadius="@dimen/battery_tips_card_corner_radius_normal"
-        android:bottomRightRadius="@dimen/battery_tips_card_corner_radius_normal"
-        />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/battery_tips_half_rounded_top_bg.xml b/res/drawable/battery_tips_half_rounded_top_bg.xml
deleted file mode 100644
index aba1a4f..0000000
--- a/res/drawable/battery_tips_half_rounded_top_bg.xml
+++ /dev/null
@@ -1,27 +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"
-    android:shape="rectangle">
-    <solid android:color="@color/settingslib_dialog_background"/>
-    <corners
-        android:topLeftRadius="@dimen/battery_tips_card_corner_radius_normal"
-        android:topRightRadius="@dimen/battery_tips_card_corner_radius_normal"
-        android:bottomLeftRadius="@dimen/battery_tips_card_corner_radius_small"
-        android:bottomRightRadius="@dimen/battery_tips_card_corner_radius_small"
-        />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/external_display_mirror_landscape.xml b/res/drawable/external_display_mirror_landscape.xml
new file mode 100644
index 0000000..4272ddb
--- /dev/null
+++ b/res/drawable/external_display_mirror_landscape.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="232.02106dp"
+    android:viewportHeight="214"
+    android:viewportWidth="380"
+    android:width="412dp">
+    <path
+        android:pathData="M16,0L364,0A16,16 0,0 1,380 16L380,198A16,16 0,0 1,364 214L16,214A16,16 0,0 1,0 198L0,16A16,16 0,0 1,16 0z"
+        android:fillColor="#00000000"/>
+    <path
+        android:pathData="M150.5,38L327.5,38A5.5,5.5 0,0 1,333 43.5L333,138.5A5.5,5.5 0,0 1,327.5 144L150.5,144A5.5,5.5 0,0 1,145 138.5L145,43.5A5.5,5.5 0,0 1,150.5 38z"
+        android:fillColor="#80868B"/>
+    <path
+        android:pathData="M150.58,39L327.42,39A4.58,4.58 0,0 1,332 43.58L332,138.42A4.58,4.58 0,0 1,327.42 143L150.58,143A4.58,4.58 0,0 1,146 138.42L146,43.58A4.58,4.58 0,0 1,150.58 39z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M254.25,144H223.75L221.52,173.34C221.48,173.82 221.08,174.18 220.6,174.18H211.37C211.25,174.18 211.12,174.21 211.01,174.26C210.11,174.65 210.39,176 211.37,176H266.63C267.61,176 267.89,174.65 266.99,174.26C266.88,174.21 266.75,174.18 266.63,174.18H257.4C256.92,174.18 256.52,173.82 256.48,173.34L254.25,144Z"
+        android:fillColor="#5F6368"/>
+    <path
+        android:pathData="M330,53L330,129A3,3 0,0 1,327 132L151,132A3,3 0,0 1,148 129L148,53A3,3 0,0 1,151 50L327,50A3,3 0,0 1,330 53z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#E0E994"/>
+    <path
+        android:pathData="M113,91.08V86.55C113,86.25 112.88,85.96 112.67,85.75C112.45,85.54 112.17,85.42 111.86,85.41V61.64C111.84,60.15 111.24,58.72 110.17,57.66C109.1,56.61 107.66,56.01 106.16,56H53.71C52.2,56.01 50.75,56.61 49.68,57.67C48.62,58.73 48.01,60.17 48,61.66V170.34C48.01,171.83 48.62,173.27 49.68,174.33C50.75,175.39 52.2,175.99 53.71,176H106.16C107.67,175.99 109.11,175.39 110.18,174.33C111.25,173.27 111.85,171.83 111.86,170.34V114.86C112.16,114.86 112.45,114.74 112.67,114.52C112.88,114.31 113,114.03 113,113.73V102.4C113,102.1 112.88,101.82 112.67,101.6C112.45,101.39 112.17,101.27 111.86,101.27V92.21C112.16,92.21 112.45,92.09 112.67,91.88C112.88,91.67 113,91.38 113,91.08ZM110.72,170.34C110.72,171.54 110.24,172.69 109.38,173.54C108.53,174.39 107.37,174.87 106.16,174.87H53.71C52.5,174.87 51.34,174.39 50.48,173.54C49.62,172.69 49.14,171.54 49.14,170.34V61.64C49.14,60.44 49.62,59.29 50.48,58.44C51.34,57.59 52.5,57.11 53.71,57.11H106.16C107.37,57.11 108.53,57.59 109.38,58.44C110.24,59.29 110.72,60.44 110.72,61.64V170.34Z"
+        android:fillColor="#80868B"/>
+    <path
+        android:pathData="M54,59L106,59A3,3 0,0 1,109 62L109,170A3,3 0,0 1,106 173L54,173A3,3 0,0 1,51 170L51,62A3,3 0,0 1,54 59z"
+        android:strokeColor="#E0E994"
+        android:strokeWidth="2"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M80,184.72V189.7C80,193.73 83.27,197 87.3,197H164.7C168.73,197 172,193.73 172,189.7V144"
+        android:strokeColor="#5F6368"
+        android:strokeWidth="0.684"
+        android:fillColor="#00000000"/>
+    <path
+        android:pathData="M77,176H83V184.09C83,184.59 82.59,185 82.09,185H77.91C77.41,185 77,184.59 77,184.09V176Z"
+        android:fillColor="#5F6368"/>
+</vector>
diff --git a/res/drawable/external_display_mirror_portrait.xml b/res/drawable/external_display_mirror_portrait.xml
new file mode 100644
index 0000000..0fe7f93
--- /dev/null
+++ b/res/drawable/external_display_mirror_portrait.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="232.02106dp"
+    android:viewportHeight="214"
+    android:viewportWidth="380"
+    android:width="412dp" >
+    <path
+        android:pathData="M16,0L364,0A16,16 0,0 1,380 16L380,198A16,16 0,0 1,364 214L16,214A16,16 0,0 1,0 198L0,16A16,16 0,0 1,16 0z"
+        android:fillColor="#00000000"/>
+    <path
+        android:pathData="M150.5,38L327.5,38A5.5,5.5 0,0 1,333 43.5L333,138.5A5.5,5.5 0,0 1,327.5 144L150.5,144A5.5,5.5 0,0 1,145 138.5L145,43.5A5.5,5.5 0,0 1,150.5 38z"
+        android:fillColor="#80868B"/>
+    <path
+        android:pathData="M150.58,39L327.42,39A4.58,4.58 0,0 1,332 43.58L332,138.42A4.58,4.58 0,0 1,327.42 143L150.58,143A4.58,4.58 0,0 1,146 138.42L146,43.58A4.58,4.58 0,0 1,150.58 39z"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M254.25,144H223.75L221.52,173.34C221.48,173.82 221.08,174.18 220.6,174.18H211.37C211.25,174.18 211.12,174.21 211.01,174.26C210.11,174.65 210.39,176 211.37,176H266.63C267.61,176 267.89,174.65 266.99,174.26C266.88,174.21 266.75,174.18 266.63,174.18H257.4C256.92,174.18 256.52,173.82 256.48,173.34L254.25,144Z"
+        android:fillColor="#5F6368"/>
+    <path
+        android:pathData="M216,41L262,41A3,3 0,0 1,265 44L265,138A3,3 0,0 1,262 141L216,141A3,3 0,0 1,213 138L213,44A3,3 0,0 1,216 41z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#E0E994"/>
+    <path
+        android:pathData="M113,91.08V86.55C113,86.25 112.88,85.96 112.67,85.75C112.45,85.54 112.17,85.42 111.86,85.41V61.64C111.84,60.15 111.24,58.72 110.17,57.66C109.1,56.61 107.66,56.01 106.16,56H53.71C52.2,56.01 50.75,56.61 49.68,57.67C48.62,58.73 48.01,60.17 48,61.66V170.34C48.01,171.83 48.62,173.27 49.68,174.33C50.75,175.39 52.2,175.99 53.71,176H106.16C107.67,175.99 109.11,175.39 110.18,174.33C111.25,173.27 111.85,171.83 111.86,170.34V114.86C112.16,114.86 112.45,114.74 112.67,114.52C112.88,114.31 113,114.03 113,113.73V102.4C113,102.1 112.88,101.82 112.67,101.6C112.45,101.39 112.17,101.27 111.86,101.27V92.21C112.16,92.21 112.45,92.09 112.67,91.88C112.88,91.67 113,91.38 113,91.08ZM110.72,170.34C110.72,171.54 110.24,172.69 109.38,173.54C108.53,174.39 107.37,174.87 106.16,174.87H53.71C52.5,174.87 51.34,174.39 50.48,173.54C49.62,172.69 49.14,171.54 49.14,170.34V61.64C49.14,60.44 49.62,59.29 50.48,58.44C51.34,57.59 52.5,57.11 53.71,57.11H106.16C107.37,57.11 108.53,57.59 109.38,58.44C110.24,59.29 110.72,60.44 110.72,61.64V170.34Z"
+        android:fillColor="#80868B"/>
+    <path
+        android:pathData="M54,59L106,59A3,3 0,0 1,109 62L109,170A3,3 0,0 1,106 173L54,173A3,3 0,0 1,51 170L51,62A3,3 0,0 1,54 59z"
+        android:strokeColor="#E0E994"
+        android:strokeWidth="2"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M80,184.72V189.7C80,193.73 83.27,197 87.3,197H164.7C168.73,197 172,193.73 172,189.7V144"
+        android:strokeColor="#5F6368"
+        android:strokeWidth="0.684"
+        android:fillColor="#00000000"/>
+    <path
+        android:pathData="M77,176H83V184.09C83,184.59 82.59,185 82.09,185H77.91C77.41,185 77,184.59 77,184.09V176Z"
+        android:fillColor="#5F6368"/>
+</vector>
diff --git a/res/drawable/ic_close.xml b/res/drawable/ic_close.xml
new file mode 100644
index 0000000..de2085c
--- /dev/null
+++ b/res/drawable/ic_close.xml
@@ -0,0 +1,24 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24.0dp"
+    android:height="24.0dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:pathData="M19.000000,6.400000l-1.400000,-1.400000 -5.600000,5.600000 -5.600000,-5.600000 -1.400000,1.400000 5.600000,5.600000 -5.600000,5.600000 1.400000,1.400000 5.600000,-5.600000 5.600000,5.600000 1.400000,-1.400000 -5.600000,-5.600000z"
+        android:fillColor="#FF000000"/>
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_do_not_disturb_on_24dp.xml b/res/drawable/ic_do_not_disturb_on_24dp.xml
deleted file mode 100644
index cace8d4..0000000
--- a/res/drawable/ic_do_not_disturb_on_24dp.xml
+++ /dev/null
@@ -1,28 +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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
-        android:tint="?android:attr/colorControlNormal">
-    <path
-        android:fillColor="#FFFFFFFF"
-        android:pathData="M12,2C6.48,2 2,6.48 2,12c0,5.52 4.48,10 10,10c5.52,0 10,-4.48 10,-10C22,6.48 17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8c0,-4.41 3.59,-8 8,-8c4.41,0 8,3.59 8,8C20,16.41 16.41,20 12,20z"/>
-    <path
-        android:fillColor="#FFFFFFFF"
-        android:pathData="M7,11h10v2h-10z"/>
-</vector>
diff --git a/res/drawable/ic_external_display_32dp.xml b/res/drawable/ic_external_display_32dp.xml
new file mode 100644
index 0000000..3e18282
--- /dev/null
+++ b/res/drawable/ic_external_display_32dp.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="32dp"
+    android:height="32dp"
+    android:viewportWidth="32"
+    android:viewportHeight="32">
+  <path
+      android:pathData="M16,16m-16,0a16,16 0,1 1,32 0a16,16 0,1 1,-32 0"
+      android:fillColor="#FAFBD8"/>
+  <group>
+    <clip-path
+        android:pathData="M5.333,5.332h21.333v21.333h-21.333z"/>
+    <path
+        android:pathData="M12.689,23.288V21.643H14.333V19.976H9C8.555,19.976 8.17,19.813 7.844,19.488C7.518,19.162 7.355,18.769 7.355,18.31V9.665C7.355,9.206 7.518,8.814 7.844,8.488C8.17,8.162 8.555,7.999 9,7.999H23C23.444,7.999 23.829,8.162 24.155,8.488C24.481,8.814 24.644,9.206 24.644,9.665V18.31C24.644,18.769 24.481,19.162 24.155,19.488C23.829,19.813 23.444,19.976 23,19.976H17.666V21.643H19.311V23.288H12.689ZM9,18.31H23V9.665H9V18.31ZM9,18.31V9.665V18.31Z"
+        android:fillColor="#8E964B"/>
+  </group>
+</vector>
diff --git a/res/drawable/ic_head_tracking.xml b/res/drawable/ic_head_tracking.xml
new file mode 100644
index 0000000..d4a44fd
--- /dev/null
+++ b/res/drawable/ic_head_tracking.xml
@@ -0,0 +1,26 @@
+<!--
+  ~ 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.
+  -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M480,520Q414,520 367,473Q320,426 320,360Q320,294 367,247Q414,200 480,200Q546,200 593,247Q640,294 640,360Q640,426 593,473Q546,520 480,520ZM160,840L160,728Q160,695 177,666Q194,637 224,622Q275,596 339,578Q403,560 480,560Q557,560 621,578Q685,596 736,622Q766,637 783,666Q800,695 800,728L800,840L160,840ZM240,760L720,760L720,728Q720,717 714.5,708Q709,699 700,694Q664,676 607.5,658Q551,640 480,640Q409,640 352.5,658Q296,676 260,694Q251,699 245.5,708Q240,717 240,728L240,760ZM480,440Q513,440 536.5,416.5Q560,393 560,360Q560,327 536.5,303.5Q513,280 480,280Q447,280 423.5,303.5Q400,327 400,360Q400,393 423.5,416.5Q447,440 480,440ZM39,200L39,120Q56,120 70,113.5Q84,107 95,96Q106,85 112,71Q118,57 118,40L199,40Q199,73 186.5,102Q174,131 152,153Q130,175 101,187.5Q72,200 39,200ZM39,361L39,281Q90,281 133.5,262Q177,243 209,210Q241,177 260,133.5Q279,90 279,40L360,40Q360,106 335,164.5Q310,223 266,267Q222,311 164,336Q106,361 39,361ZM920,361Q854,361 795.5,336Q737,311 693,267Q649,223 624,164.5Q599,106 599,40L679,40Q679,90 698,133.5Q717,177 750,210Q783,243 826.5,262Q870,281 920,281L920,361ZM920,200Q887,200 858,187.5Q829,175 807,153Q785,131 772.5,102Q760,73 760,40L840,40Q840,57 846.5,71Q853,85 864,96Q875,107 889,113.5Q903,120 920,120L920,200ZM480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360ZM480,760L480,760Q480,760 480,760Q480,760 480,760Q480,760 480,760Q480,760 480,760Q480,760 480,760Q480,760 480,760Q480,760 480,760Q480,760 480,760L480,760L480,760Z" />
+</vector>
diff --git a/res/drawable/ic_pan_tool_18dp.xml b/res/drawable/ic_pan_tool_18dp.xml
deleted file mode 100644
index e3b21fa..0000000
--- a/res/drawable/ic_pan_tool_18dp.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2019 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="18dp"
-        android:height="18dp"
-        android:viewportWidth="48"
-        android:viewportHeight="48"
-        android:tint="?android:attr/colorControlNormal">
-  <group>
-    <clip-path
-        android:pathData="M0,0h48v48H0z M 0,0"/>
-    <path
-        android:pathData="M46,11v29c0,4.4 -3.6,8 -8,8H23.4c-2.16,0 -4.2,-0.86 -5.7,-2.38L2,29.66s2.52,-2.46 2.6,-2.5c0.44,-0.38 0.98,-0.58 1.58,-0.58 0.44,0 0.84,0.12 1.2,0.32 0.08,0.02 8.62,4.92 8.62,4.92V8c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v14h2V3c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v19h2V5c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v17h2V11c0,-1.66 1.34,-3 3,-3s3,1.34 3,3z"
-        android:fillColor="#FFFFFF"/>
-  </group>
-</vector>
diff --git a/res/drawable/ic_spatial_audio.xml b/res/drawable/ic_spatial_audio.xml
new file mode 100644
index 0000000..0ee609a
--- /dev/null
+++ b/res/drawable/ic_spatial_audio.xml
@@ -0,0 +1,26 @@
+<!--
+  ~ 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.
+  -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M920,401Q848,401 782,373.5Q716,346 665,295Q614,244 586.5,178Q559,112 559,40L639,40Q639,97 660,148Q681,199 721,239Q761,279 812,300.5Q863,322 920,322L920,401ZM920,242Q879,242 842.5,227Q806,212 777,183Q748,154 733,117.5Q718,81 718,40L797,40Q797,65 806.5,87.5Q816,110 833,127Q850,144 872.5,153Q895,162 920,162L920,242ZM400,520Q334,520 287,473Q240,426 240,360Q240,294 287,247Q334,200 400,200Q466,200 513,247Q560,294 560,360Q560,426 513,473Q466,520 400,520ZM80,840L80,728Q80,695 97,666Q114,637 144,622Q195,596 259,578Q323,560 400,560Q477,560 541,578Q605,596 656,622Q686,637 703,666Q720,695 720,728L720,840L80,840ZM160,760L640,760L640,728Q640,717 634.5,708Q629,699 620,694Q584,676 527.5,658Q471,640 400,640Q329,640 272.5,658Q216,676 180,694Q171,699 165.5,708Q160,717 160,728L160,760ZM400,440Q433,440 456.5,416.5Q480,393 480,360Q480,327 456.5,303.5Q433,280 400,280Q367,280 343.5,303.5Q320,327 320,360Q320,393 343.5,416.5Q367,440 400,440ZM400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360ZM400,760L400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760L400,760L400,760Z" />
+</vector>
diff --git a/res/drawable/ic_spatial_audio_off.xml b/res/drawable/ic_spatial_audio_off.xml
new file mode 100644
index 0000000..c7d3272
--- /dev/null
+++ b/res/drawable/ic_spatial_audio_off.xml
@@ -0,0 +1,26 @@
+<!--
+  ~ 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.
+  -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M750,550L806,494Q766,454 743.5,402.5Q721,351 721,294Q721,237 743.5,186Q766,135 806,95L750,37Q699,88 670,155Q641,222 641,294Q641,366 670,432.5Q699,499 750,550ZM862,436L918,380Q901,363 891,341Q881,319 881,294Q881,269 891,247Q901,225 918,208L862,151Q833,180 817,216Q801,252 801,293Q801,334 817,371Q833,408 862,436ZM400,520Q334,520 287,473Q240,426 240,360Q240,294 287,247Q334,200 400,200Q466,200 513,247Q560,294 560,360Q560,426 513,473Q466,520 400,520ZM80,840L80,728Q80,695 97,666Q114,637 144,622Q195,596 259,578Q323,560 400,560Q477,560 541,578Q605,596 656,622Q686,637 703,666Q720,695 720,728L720,840L80,840ZM160,760L640,760L640,728Q640,717 634.5,708Q629,699 620,694Q584,676 527.5,658Q471,640 400,640Q329,640 272.5,658Q216,676 180,694Q171,699 165.5,708Q160,717 160,728L160,760ZM400,440Q433,440 456.5,416.5Q480,393 480,360Q480,327 456.5,303.5Q433,280 400,280Q367,280 343.5,303.5Q320,327 320,360Q320,393 343.5,416.5Q367,440 400,440ZM400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360Q400,360 400,360ZM400,760L400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760Q400,760 400,760L400,760L400,760Z" />
+</vector>
diff --git a/res/drawable/ic_zen_mode_category_apps.xml b/res/drawable/ic_zen_mode_category_apps.xml
new file mode 100644
index 0000000..f21fc6a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_apps.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M240,800Q207,800 183.5,776.5Q160,753 160,720Q160,687 183.5,663.5Q207,640 240,640Q273,640 296.5,663.5Q320,687 320,720Q320,753 296.5,776.5Q273,800 240,800ZM480,800Q447,800 423.5,776.5Q400,753 400,720Q400,687 423.5,663.5Q447,640 480,640Q513,640 536.5,663.5Q560,687 560,720Q560,753 536.5,776.5Q513,800 480,800ZM720,800Q687,800 663.5,776.5Q640,753 640,720Q640,687 663.5,663.5Q687,640 720,640Q753,640 776.5,663.5Q800,687 800,720Q800,753 776.5,776.5Q753,800 720,800ZM240,560Q207,560 183.5,536.5Q160,513 160,480Q160,447 183.5,423.5Q207,400 240,400Q273,400 296.5,423.5Q320,447 320,480Q320,513 296.5,536.5Q273,560 240,560ZM480,560Q447,560 423.5,536.5Q400,513 400,480Q400,447 423.5,423.5Q447,400 480,400Q513,400 536.5,423.5Q560,447 560,480Q560,513 536.5,536.5Q513,560 480,560ZM720,560Q687,560 663.5,536.5Q640,513 640,480Q640,447 663.5,423.5Q687,400 720,400Q753,400 776.5,423.5Q800,447 800,480Q800,513 776.5,536.5Q753,560 720,560ZM240,320Q207,320 183.5,296.5Q160,273 160,240Q160,207 183.5,183.5Q207,160 240,160Q273,160 296.5,183.5Q320,207 320,240Q320,273 296.5,296.5Q273,320 240,320ZM480,320Q447,320 423.5,296.5Q400,273 400,240Q400,207 423.5,183.5Q447,160 480,160Q513,160 536.5,183.5Q560,207 560,240Q560,273 536.5,296.5Q513,320 480,320ZM720,320Q687,320 663.5,296.5Q640,273 640,240Q640,207 663.5,183.5Q687,160 720,160Q753,160 776.5,183.5Q800,207 800,240Q800,273 776.5,296.5Q753,320 720,320Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_display.xml b/res/drawable/ic_zen_mode_category_display.xml
new file mode 100644
index 0000000..4771951
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_display.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M360,580L360,520L600,520L600,580L360,580ZM320,460L320,400L640,400L640,460L320,460ZM280,920Q247,920 223.5,896.5Q200,873 200,840L200,120Q200,87 223.5,63.5Q247,40 280,40L680,40Q713,40 736.5,63.5Q760,87 760,120L760,840Q760,873 736.5,896.5Q713,920 680,920L280,920ZM280,800L280,840Q280,840 280,840Q280,840 280,840L680,840Q680,840 680,840Q680,840 680,840L680,800L280,800ZM280,720L680,720L680,240L280,240L280,720ZM280,160L680,160L680,120Q680,120 680,120Q680,120 680,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,160L280,120Q280,120 280,120Q280,120 280,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,800L280,800L280,840Q280,840 280,840Q280,840 280,840L280,840Q280,840 280,840Q280,840 280,840L280,800Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_duration.xml b/res/drawable/ic_zen_mode_category_duration.xml
new file mode 100644
index 0000000..56d9c4a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_duration.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M360,120L360,40L600,40L600,120L360,120ZM440,560L520,560L520,320L440,320L440,560ZM480,880Q406,880 340.5,851.5Q275,823 226,774Q177,725 148.5,659.5Q120,594 120,520Q120,446 148.5,380.5Q177,315 226,266Q275,217 340.5,188.5Q406,160 480,160Q542,160 599,180Q656,200 706,238L762,182L818,238L762,294Q800,344 820,401Q840,458 840,520Q840,594 811.5,659.5Q783,725 734,774Q685,823 619.5,851.5Q554,880 480,880ZM480,800Q596,800 678,718Q760,636 760,520Q760,404 678,322Q596,240 480,240Q364,240 282,322Q200,404 200,520Q200,636 282,718Q364,800 480,800ZM480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_other.xml b/res/drawable/ic_zen_mode_category_other.xml
new file mode 100644
index 0000000..9a47523
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_other.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M560,829L560,747Q650,721 705,647Q760,573 760,479Q760,385 705,311Q650,237 560,211L560,129Q684,157 762,254.5Q840,352 840,479Q840,606 762,703.5Q684,801 560,829ZM120,600L120,360L280,360L480,160L480,800L280,600L120,600ZM560,640L560,318Q607,340 633.5,384Q660,428 660,480Q660,531 633.5,574.5Q607,618 560,640ZM400,354L314,440L200,440L200,520L314,520L400,606L400,354ZM300,480L300,480L300,480L300,480L300,480L300,480Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_category_people.xml b/res/drawable/ic_zen_mode_category_people.xml
new file mode 100644
index 0000000..e763c45
--- /dev/null
+++ b/res/drawable/ic_zen_mode_category_people.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M40,800L40,688Q40,654 57.5,625.5Q75,597 104,582Q166,551 230,535.5Q294,520 360,520Q426,520 490,535.5Q554,551 616,582Q645,597 662.5,625.5Q680,654 680,688L680,800L40,800ZM760,800L760,680Q760,636 735.5,595.5Q711,555 666,526Q717,532 762,546.5Q807,561 846,582Q882,602 901,626.5Q920,651 920,680L920,800L760,800ZM360,480Q294,480 247,433Q200,386 200,320Q200,254 247,207Q294,160 360,160Q426,160 473,207Q520,254 520,320Q520,386 473,433Q426,480 360,480ZM760,320Q760,386 713,433Q666,480 600,480Q589,480 572,477.5Q555,475 544,472Q571,440 585.5,401Q600,362 600,320Q600,278 585.5,239Q571,200 544,168Q558,163 572,161.5Q586,160 600,160Q666,160 713,207Q760,254 760,320ZM120,720L600,720L600,688Q600,677 594.5,668Q589,659 580,654Q526,627 471,613.5Q416,600 360,600Q304,600 249,613.5Q194,627 140,654Q131,659 125.5,668Q120,677 120,688L120,720ZM360,400Q393,400 416.5,376.5Q440,353 440,320Q440,287 416.5,263.5Q393,240 360,240Q327,240 303.5,263.5Q280,287 280,320Q280,353 303.5,376.5Q327,400 360,400ZM360,720L360,720L360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720Q360,720 360,720ZM360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Q360,320 360,320Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_aod.xml b/res/drawable/ic_zen_mode_display_aod.xml
new file mode 100644
index 0000000..9d60fb1
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_aod.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M820,932L28,140L84,84L876,876L820,932ZM200,257L280,337L280,720L664,720L760,816L760,840Q760,873 736.5,896.5Q713,920 680,920L280,920Q247,920 223.5,896.5Q200,873 200,840L200,257ZM280,800L280,840Q280,840 280,840Q280,840 280,840L680,840Q680,840 680,840Q680,840 680,840L680,800L280,800ZM353,240L274,160L680,160L680,120Q680,120 680,120Q680,120 680,120L234,120L234,120L206,92Q216,69 235.5,54.5Q255,40 280,40L680,40Q713,40 736.5,63.5Q760,87 760,120L760,646L680,566L680,240L353,240ZM480,800L480,800Q480,800 480,800Q480,800 480,800L480,800Q480,800 480,800Q480,800 480,800L480,800ZM457,160L457,160L457,160L457,160Q457,160 457,160Q457,160 457,160Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_dark_theme.xml b/res/drawable/ic_zen_mode_display_dark_theme.xml
new file mode 100644
index 0000000..43bc682
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_dark_theme.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M480,840Q347,840 253.5,747.5Q160,655 160,524Q160,458 185,402Q210,346 254,302L480,80L706,302Q750,346 775,402Q800,458 800,524Q800,655 706.5,747.5Q613,840 480,840ZM480,760L480,192L310,360Q275,393 257.5,434.5Q240,476 240,524Q240,621 310,690.5Q380,760 480,760Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_grayscale.xml b/res/drawable/ic_zen_mode_display_grayscale.xml
new file mode 100644
index 0000000..d7fe9ab
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_grayscale.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM480,800Q614,800 707,707Q800,614 800,480Q800,416 775.5,357.5Q751,299 706,254L254,706Q299,751 357.5,775.5Q416,800 480,800ZM480,640L480,580L680,580L680,640L480,640ZM320,460L380,460L380,380L460,380L460,320L380,320L380,240L320,240L320,320L240,320L240,380L320,380L320,460Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_display_wallpaper.xml b/res/drawable/ic_zen_mode_display_wallpaper.xml
new file mode 100644
index 0000000..27d169c
--- /dev/null
+++ b/res/drawable/ic_zen_mode_display_wallpaper.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M480,680Q463,680 451.5,668.5Q440,657 440,640Q440,623 451.5,611.5Q463,600 480,600Q497,600 508.5,611.5Q520,623 520,640Q520,657 508.5,668.5Q497,680 480,680ZM440,520L440,280L520,280L520,520L440,520ZM280,920Q247,920 223.5,896.5Q200,873 200,840L200,120Q200,87 223.5,63.5Q247,40 280,40L680,40Q713,40 736.5,63.5Q760,87 760,120L760,840Q760,873 736.5,896.5Q713,920 680,920L280,920ZM280,800L280,840Q280,840 280,840Q280,840 280,840L680,840Q680,840 680,840Q680,840 680,840L680,800L280,800ZM280,720L680,720L680,240L280,240L280,720ZM280,160L680,160L680,120Q680,120 680,120Q680,120 680,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,160L280,120Q280,120 280,120Q280,120 280,120L280,120Q280,120 280,120Q280,120 280,120L280,160ZM280,800L280,800L280,840Q280,840 280,840Q280,840 280,840L280,840Q280,840 280,840Q280,840 280,840L280,800Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_generic_contact.xml b/res/drawable/ic_zen_mode_generic_contact.xml
new file mode 100644
index 0000000..3721dc5
--- /dev/null
+++ b/res/drawable/ic_zen_mode_generic_contact.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M480,480Q414,480 367,433Q320,386 320,320Q320,254 367,207Q414,160 480,160Q546,160 593,207Q640,254 640,320Q640,386 593,433Q546,480 480,480ZM160,800L160,688Q160,654 177.5,625.5Q195,597 224,582Q286,551 350,535.5Q414,520 480,520Q546,520 610,535.5Q674,551 736,582Q765,597 782.5,625.5Q800,654 800,688L800,800L160,800ZM240,720L720,720L720,688Q720,677 714.5,668Q709,659 700,654Q646,627 591,613.5Q536,600 480,600Q424,600 369,613.5Q314,627 260,654Q251,659 245.5,668Q240,677 240,688L240,720ZM480,400Q513,400 536.5,376.5Q560,353 560,320Q560,287 536.5,263.5Q513,240 480,240Q447,240 423.5,263.5Q400,287 400,320Q400,353 423.5,376.5Q447,400 480,400ZM480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320Q480,320 480,320ZM480,720L480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720Q480,720 480,720L480,720Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_icon_cookie.xml b/res/drawable/ic_zen_mode_icon_cookie.xml
new file mode 100644
index 0000000..0e4bafb
--- /dev/null
+++ b/res/drawable/ic_zen_mode_icon_cookie.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="136dp"
+    android:height="136dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="136"
+    android:viewportWidth="136">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M58.0961 4.18448C58.326 3.95917 58.441 3.84652 58.5407 3.75268C63.8544 -1.25089 72.1456 -1.25089 77.4593 3.75268C77.559 3.84652 77.674 3.95917 77.9039 4.18448C78.0419 4.31967 78.1109 4.38727 78.1765 4.44986C81.5767 7.69486 86.3948 8.98588 90.962 7.87573C91.0501 7.85432 91.1436 7.83027 91.3307 7.78218C91.6425 7.70204 91.7984 7.66196 91.9317 7.63052C99.0352 5.95417 106.216 10.0998 108.316 17.0898C108.355 17.2209 108.398 17.376 108.485 17.6861C108.537 17.8722 108.563 17.9652 108.588 18.0522C109.91 22.5626 113.437 26.0897 117.948 27.4118C118.035 27.4373 118.128 27.4633 118.314 27.5152C118.624 27.6017 118.779 27.6449 118.91 27.6843C125.9 29.7844 130.046 36.9648 128.369 44.0684C128.338 44.2016 128.298 44.3575 128.218 44.6693C128.17 44.8564 128.146 44.9499 128.124 45.038C127.014 49.6052 128.305 54.4233 131.55 57.8235C131.613 57.8891 131.68 57.9581 131.816 58.0961C132.041 58.326 132.153 58.441 132.247 58.5407C137.251 63.8544 137.251 72.1456 132.247 77.4593C132.153 77.559 132.041 77.674 131.816 77.9039C131.68 78.0419 131.613 78.1109 131.55 78.1765C128.305 81.5767 127.014 86.3948 128.124 90.962C128.146 91.0501 128.17 91.1436 128.218 91.3307C128.298 91.6425 128.338 91.7984 128.369 91.9316C130.046 99.0352 125.9 106.216 118.91 108.316C118.779 108.355 118.624 108.398 118.314 108.485C118.128 108.537 118.035 108.563 117.948 108.588C113.437 109.91 109.91 113.437 108.588 117.948C108.563 118.035 108.537 118.128 108.485 118.314C108.398 118.624 108.355 118.779 108.316 118.91C106.216 125.9 99.0352 130.046 91.9316 128.369C91.7984 128.338 91.6425 128.298 91.3307 128.218C91.1436 128.17 91.0501 128.146 90.962 128.124C86.3948 127.014 81.5767 128.305 78.1765 131.55C78.1109 131.613 78.0419 131.68 77.9039 131.816C77.674 132.041 77.559 132.153 77.4593 132.247C72.1456 137.251 63.8544 137.251 58.5407 132.247C58.441 132.153 58.326 132.041 58.0961 131.816C57.9581 131.68 57.8891 131.613 57.8235 131.55C54.4233 128.305 49.6052 127.014 45.038 128.124C44.9499 128.146 44.8564 128.17 44.6693 128.218C44.3575 128.298 44.2016 128.338 44.0684 128.369C36.9648 130.046 29.7844 125.9 27.6843 118.91C27.6449 118.779 27.6017 118.624 27.5152 118.314C27.4633 118.128 27.4373 118.035 27.4118 117.948C26.0897 113.437 22.5626 109.91 18.0522 108.588C17.9652 108.563 17.8722 108.537 17.6861 108.485C17.376 108.398 17.2209 108.355 17.0898 108.316C10.0998 106.216 5.95417 99.0352 7.63052 91.9317C7.66196 91.7984 7.70204 91.6425 7.78218 91.3307C7.83027 91.1436 7.85432 91.0501 7.87573 90.962C8.98588 86.3948 7.69486 81.5767 4.44986 78.1765C4.38727 78.1109 4.31967 78.0419 4.18448 77.9039C3.95917 77.674 3.84652 77.559 3.75268 77.4593C-1.25089 72.1456 -1.25089 63.8544 3.75268 58.5407C3.84652 58.441 3.95917 58.326 4.18448 58.0961C4.31967 57.9581 4.38727 57.8891 4.44986 57.8235C7.69486 54.4233 8.98588 49.6052 7.87573 45.038C7.85432 44.9499 7.83027 44.8564 7.78218 44.6693C7.70204 44.3575 7.66196 44.2016 7.63052 44.0683C5.95417 36.9648 10.0998 29.7844 17.0898 27.6843C17.2209 27.6449 17.376 27.6017 17.6861 27.5152C17.8722 27.4633 17.9652 27.4373 18.0522 27.4118C22.5626 26.0897 26.0897 22.5626 27.4118 18.0522C27.4373 17.9652 27.4633 17.8722 27.5152 17.6861C27.6017 17.376 27.6449 17.2209 27.6843 17.0898C29.7844 10.0998 36.9648 5.95417 44.0683 7.63052C44.2016 7.66196 44.3575 7.70204 44.6693 7.78218C44.8564 7.83027 44.9499 7.85432 45.038 7.87573C49.6052 8.98588 54.4233 7.69486 57.8235 4.44986C57.8891 4.38727 57.9581 4.31967 58.0961 4.18448Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_action_change_icon.xml b/res/drawable/ic_zen_mode_new_option_custom.xml
similarity index 65%
rename from res/drawable/ic_zen_mode_action_change_icon.xml
rename to res/drawable/ic_zen_mode_new_option_custom.xml
index 4cf4167..c3a45cc 100644
--- a/res/drawable/ic_zen_mode_action_change_icon.xml
+++ b/res/drawable/ic_zen_mode_new_option_custom.xml
@@ -21,5 +21,5 @@
     android:viewportWidth="960">
     <path
         android:fillColor="@android:color/white"
-        android:pathData="M620,440Q645,440 662.5,422.5Q680,405 680,380Q680,355 662.5,337.5Q645,320 620,320Q595,320 577.5,337.5Q560,355 560,380Q560,405 577.5,422.5Q595,440 620,440ZM340,440Q365,440 382.5,422.5Q400,405 400,380Q400,355 382.5,337.5Q365,320 340,320Q315,320 297.5,337.5Q280,355 280,380Q280,405 297.5,422.5Q315,440 340,440ZM480,700Q548,700 603.5,661.5Q659,623 684,560L276,560Q301,623 356.5,661.5Q412,700 480,700ZM480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480ZM480,800Q614,800 707,707Q800,614 800,480Q800,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800Z" />
+        android:pathData="M620,440Q645,440 662.5,422.5Q680,405 680,380Q680,355 662.5,337.5Q645,320 620,320Q595,320 577.5,337.5Q560,355 560,380Q560,405 577.5,422.5Q595,440 620,440ZM340,440Q365,440 382.5,422.5Q400,405 400,380Q400,355 382.5,337.5Q365,320 340,320Q315,320 297.5,337.5Q280,355 280,380Q280,405 297.5,422.5Q315,440 340,440ZM480,700Q548,700 603.5,661.5Q659,623 684,560L618,560Q596,597 559.5,618.5Q523,640 480,640Q437,640 400.5,618.5Q364,597 342,560L276,560Q301,623 356.5,661.5Q412,700 480,700ZM480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480Q480,480 480,480ZM480,800Q614,800 707,707Q800,614 800,480Q800,346 707,253Q614,160 480,160Q346,160 253,253Q160,346 160,480Q160,614 253,707Q346,800 480,800Z" />
 </vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_people_all.xml b/res/drawable/ic_zen_mode_people_all.xml
new file mode 100644
index 0000000..c6194d5
--- /dev/null
+++ b/res/drawable/ic_zen_mode_people_all.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M0,720L0,657Q0,614 44,587Q88,560 160,560Q173,560 185,560.5Q197,561 208,563Q194,584 187,607Q180,630 180,655L180,720L0,720ZM240,720L240,655Q240,623 257.5,596.5Q275,570 307,550Q339,530 383.5,520Q428,510 480,510Q533,510 577.5,520Q622,530 654,550Q686,570 703,596.5Q720,623 720,655L720,720L240,720ZM780,720L780,655Q780,629 773.5,606Q767,583 754,563Q765,561 776.5,560.5Q788,560 800,560Q872,560 916,586.5Q960,613 960,657L960,720L780,720ZM325,640L636,640L636,640Q626,620 580.5,605Q535,590 480,590Q425,590 379.5,605Q334,620 325,640ZM160,520Q127,520 103.5,496.5Q80,473 80,440Q80,406 103.5,383Q127,360 160,360Q194,360 217,383Q240,406 240,440Q240,473 217,496.5Q194,520 160,520ZM800,520Q767,520 743.5,496.5Q720,473 720,440Q720,406 743.5,383Q767,360 800,360Q834,360 857,383Q880,406 880,440Q880,473 857,496.5Q834,520 800,520ZM480,480Q430,480 395,445Q360,410 360,360Q360,309 395,274.5Q430,240 480,240Q531,240 565.5,274.5Q600,309 600,360Q600,410 565.5,445Q531,480 480,480ZM480,400Q497,400 508.5,388.5Q520,377 520,360Q520,343 508.5,331.5Q497,320 480,320Q463,320 451.5,331.5Q440,343 440,360Q440,377 451.5,388.5Q463,400 480,400ZM481,640L481,640Q481,640 481,640Q481,640 481,640Q481,640 481,640Q481,640 481,640L481,640ZM480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Q480,360 480,360Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_people_calls.xml b/res/drawable/ic_zen_mode_people_calls.xml
new file mode 100644
index 0000000..6aacc03
--- /dev/null
+++ b/res/drawable/ic_zen_mode_people_calls.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M798,840Q673,840 551,785.5Q429,731 329,631Q229,531 174.5,409Q120,287 120,162Q120,144 132,132Q144,120 162,120L324,120Q338,120 349,129.5Q360,139 362,152L388,292Q390,308 387,319Q384,330 376,338L279,436Q299,473 326.5,507.5Q354,542 387,574Q418,605 452,631.5Q486,658 524,680L618,586Q627,577 641.5,572.5Q656,568 670,570L808,598Q822,602 831,612.5Q840,623 840,636L840,798Q840,816 828,828Q816,840 798,840ZM241,360L307,294Q307,294 307,294Q307,294 307,294L290,200Q290,200 290,200Q290,200 290,200L201,200Q201,200 201,200Q201,200 201,200Q206,241 215,281Q224,321 241,360ZM599,718Q638,735 678.5,745Q719,755 760,758Q760,758 760,758Q760,758 760,758L760,670Q760,670 760,670Q760,670 760,670L666,651Q666,651 666,651Q666,651 666,651L599,718ZM241,360Q241,360 241,360Q241,360 241,360Q241,360 241,360Q241,360 241,360L241,360Q241,360 241,360Q241,360 241,360L241,360Q241,360 241,360Q241,360 241,360ZM599,718L599,718Q599,718 599,718Q599,718 599,718L599,718Q599,718 599,718Q599,718 599,718L599,718Q599,718 599,718Q599,718 599,718Q599,718 599,718Q599,718 599,718Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_people_messages.xml b/res/drawable/ic_zen_mode_people_messages.xml
new file mode 100644
index 0000000..21db1f4
--- /dev/null
+++ b/res/drawable/ic_zen_mode_people_messages.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M240,560L560,560L560,480L240,480L240,560ZM240,440L720,440L720,360L240,360L240,440ZM240,320L720,320L720,240L240,240L240,320ZM80,880L80,160Q80,127 103.5,103.5Q127,80 160,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,640Q880,673 856.5,696.5Q833,720 800,720L240,720L80,880ZM206,640L800,640Q800,640 800,640Q800,640 800,640L800,160Q800,160 800,160Q800,160 800,160L160,160Q160,160 160,160Q160,160 160,160L160,685L206,640ZM160,640L160,640L160,160Q160,160 160,160Q160,160 160,160L160,160Q160,160 160,160Q160,160 160,160L160,640Q160,640 160,640Q160,640 160,640Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_alarms.xml b/res/drawable/ic_zen_mode_sound_alarms.xml
new file mode 100644
index 0000000..b2761ca
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_alarms.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M480,880Q405,880 339.5,851.5Q274,823 225.5,774.5Q177,726 148.5,660.5Q120,595 120,520Q120,445 148.5,379.5Q177,314 225.5,265.5Q274,217 339.5,188.5Q405,160 480,160Q555,160 620.5,188.5Q686,217 734.5,265.5Q783,314 811.5,379.5Q840,445 840,520Q840,595 811.5,660.5Q783,726 734.5,774.5Q686,823 620.5,851.5Q555,880 480,880ZM480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520Q480,520 480,520ZM592,688L648,632L520,504L520,320L440,320L440,536L592,688ZM224,94L280,150L110,320L54,264L224,94ZM736,94L906,264L850,320L680,150L736,94ZM480,800Q597,800 678.5,718.5Q760,637 760,520Q760,403 678.5,321.5Q597,240 480,240Q363,240 281.5,321.5Q200,403 200,520Q200,637 281.5,718.5Q363,800 480,800Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_events.xml b/res/drawable/ic_zen_mode_sound_events.xml
new file mode 100644
index 0000000..15035e4
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_events.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M580,720Q538,720 509,691Q480,662 480,620Q480,578 509,549Q538,520 580,520Q622,520 651,549Q680,578 680,620Q680,662 651,691Q622,720 580,720ZM200,880Q167,880 143.5,856.5Q120,833 120,800L120,240Q120,207 143.5,183.5Q167,160 200,160L240,160L240,80L320,80L320,160L640,160L640,80L720,80L720,160L760,160Q793,160 816.5,183.5Q840,207 840,240L840,800Q840,833 816.5,856.5Q793,880 760,880L200,880ZM200,800L760,800Q760,800 760,800Q760,800 760,800L760,400L200,400L200,800Q200,800 200,800Q200,800 200,800ZM200,320L760,320L760,240Q760,240 760,240Q760,240 760,240L200,240Q200,240 200,240Q200,240 200,240L200,320ZM200,320L200,240Q200,240 200,240Q200,240 200,240L200,240Q200,240 200,240Q200,240 200,240L200,320Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_media.xml b/res/drawable/ic_zen_mode_sound_media.xml
new file mode 100644
index 0000000..f2bedcb
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_media.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M400,840Q334,840 287,793Q240,746 240,680Q240,614 287,567Q334,520 400,520Q423,520 442.5,525.5Q462,531 480,542L480,120L720,120L720,280L560,280L560,680Q560,746 513,793Q466,840 400,840Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_reminders.xml b/res/drawable/ic_zen_mode_sound_reminders.xml
new file mode 100644
index 0000000..cd9490a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_reminders.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M260,320L300,320L300,280Q300,263 288.5,251.5Q277,240 260,240Q243,240 231.5,251.5Q220,263 220,280Q220,297 231.5,308.5Q243,320 260,320ZM440,320Q457,320 468.5,308.5Q480,297 480,280Q480,263 468.5,251.5Q457,240 440,240Q423,240 411.5,251.5Q400,263 400,280L400,320L440,320ZM502,620L502,620L502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620L502,620ZM419,880Q391,880 366.5,868Q342,856 325,834L107,557L126,537Q146,516 174,512Q202,508 226,523L300,568L300,400L260,400Q210,400 175,365Q140,330 140,280Q140,230 175,195Q210,160 260,160Q271,160 280.5,162Q290,164 300,167L300,120Q300,103 311.5,91.5Q323,80 340,80Q357,80 369,91.5Q381,103 381,120L381,176Q395,168 409.5,164Q424,160 440,160Q490,160 525,195Q560,230 560,280Q560,330 525,365Q490,400 440,400L381,400L381,712L284,652L388,785Q394,792 402,796Q410,800 419,800L640,800Q673,800 696.5,776.5Q720,753 720,720L720,560Q720,543 708.5,531.5Q697,520 680,520L461,520L461,440L680,440Q730,440 765,475Q800,510 800,560L800,720Q800,786 753,833Q706,880 640,880L419,880Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_sound_system.xml b/res/drawable/ic_zen_mode_sound_system.xml
new file mode 100644
index 0000000..2da05d8
--- /dev/null
+++ b/res/drawable/ic_zen_mode_sound_system.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M419,880Q391,880 366.5,868Q342,856 325,834L107,557L126,537Q146,516 174,512Q202,508 226,523L300,568L300,240Q300,223 311.5,211.5Q323,200 340,200Q357,200 369,211.5Q381,223 381,240L381,712L284,652L388,785Q394,792 402,796Q410,800 419,800L640,800Q673,800 696.5,776.5Q720,753 720,720L720,560Q720,543 708.5,531.5Q697,520 680,520L461,520L461,440L680,440Q730,440 765,475Q800,510 800,560L800,720Q800,786 753,833Q706,880 640,880L419,880ZM167,340Q154,318 147,292.5Q140,267 140,240Q140,157 198.5,98.5Q257,40 340,40Q423,40 481.5,98.5Q540,157 540,240Q540,267 533,292.5Q526,318 513,340L444,300Q452,286 456,271.5Q460,257 460,240Q460,190 425,155Q390,120 340,120Q290,120 255,155Q220,190 220,240Q220,257 224,271.5Q228,286 236,300L167,340ZM502,620L502,620L502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620Q502,620 502,620Q502,620 502,620L502,620L502,620Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_trigger_with_activity.xml b/res/drawable/ic_zen_mode_trigger_with_activity.xml
new file mode 100644
index 0000000..567f01a
--- /dev/null
+++ b/res/drawable/ic_zen_mode_trigger_with_activity.xml
@@ -0,0 +1,26 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960"
+    android:autoMirrored="true">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M200,840Q167,840 143.5,816.5Q120,793 120,760L120,600L200,600L200,760Q200,760 200,760Q200,760 200,760L760,760Q760,760 760,760Q760,760 760,760L760,200Q760,200 760,200Q760,200 760,200L200,200Q200,200 200,200Q200,200 200,200L200,360L120,360L120,200Q120,167 143.5,143.5Q167,120 200,120L760,120Q793,120 816.5,143.5Q840,167 840,200L840,760Q840,793 816.5,816.5Q793,840 760,840L200,840ZM420,680L364,622L466,520L120,520L120,440L466,440L364,338L420,280L620,480L420,680Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_zen_mode_trigger_without_activity.xml b/res/drawable/ic_zen_mode_trigger_without_activity.xml
new file mode 100644
index 0000000..11a97f1
--- /dev/null
+++ b/res/drawable/ic_zen_mode_trigger_without_activity.xml
@@ -0,0 +1,25 @@
+<!--
+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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:tint="?android:attr/colorControlNormal"
+    android:viewportHeight="960"
+    android:viewportWidth="960">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M352,840L200,840Q167,840 143.5,816.5Q120,793 120,760L120,608Q168,608 204,577.5Q240,547 240,500Q240,453 204,422.5Q168,392 120,392L120,240Q120,207 143.5,183.5Q167,160 200,160L360,160Q360,118 389,89Q418,60 460,60Q502,60 531,89Q560,118 560,160L720,160Q753,160 776.5,183.5Q800,207 800,240L800,400Q842,400 871,429Q900,458 900,500Q900,542 871,571Q842,600 800,600L800,760Q800,793 776.5,816.5Q753,840 720,840L568,840Q568,790 536.5,755Q505,720 460,720Q415,720 383.5,755Q352,790 352,840ZM200,760L285,760Q309,694 362,667Q415,640 460,640Q505,640 558,667Q611,694 635,760L720,760L720,520L800,520Q808,520 814,514Q820,508 820,500Q820,492 814,486Q808,480 800,480L720,480L720,240L480,240L480,160Q480,152 474,146Q468,140 460,140Q452,140 446,146Q440,152 440,160L440,240L200,240L200,328Q254,348 287,395Q320,442 320,500Q320,557 287,604Q254,651 200,672L200,760ZM460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500L460,500L460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500L460,500L460,500L460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500L460,500L460,500L460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Q460,500 460,500Z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/modes_interstitial_bedtime.xml b/res/drawable/modes_interstitial_bedtime.xml
new file mode 100644
index 0000000..24061ca
--- /dev/null
+++ b/res/drawable/modes_interstitial_bedtime.xml
@@ -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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M392.38,173.12C392.38,147.42 371.58,126.86 346.11,126.86C326.79,126.86 310.39,138.61 303.29,155.25C296.43,148.15 286.64,143.75 276.11,143.75C260.2,143.75 246.51,153.54 240.88,167.74C237.21,166.03 233.29,165.05 229.13,165.05C224.66,165.05 220.48,166.11 216.79,167.99C211.35,170.77 213.35,179 219.46,179H386.55C389.77,179 392.39,176.4 392.39,173.18C392.39,173.16 392.39,173.14 392.39,173.12H392.38Z"
+        android:fillColor="#DEDEDE"/>
+    <path
+        android:pathData="M199.15,182.18C190.01,156.35 191.62,131.06 200.22,109.54C203.99,99.32 193.77,89.09 183.55,93.93C164.19,103.08 146.98,118.68 135.15,140.75C120.1,168.19 116.87,201.02 127.62,230.08C156.12,305.95 244.85,325.86 301.85,280.12C306.15,276.89 309.92,273.12 313.68,269.36C321.21,261.29 314.75,247.84 303.46,248.91C287.33,249.98 270.66,247.83 252.91,240.3C228.17,229.54 208.28,208.55 199.14,182.18H199.15Z"
+        android:fillColor="#F9AB00"/>
+    <path
+        android:pathData="M353.25,64.04C365.11,76.41 355.68,96.92 338.57,95.97L335.74,95.81C330.52,95.52 325.4,97.41 321.63,101.03L319.58,102.99C307.21,114.85 286.7,105.42 287.65,88.31L287.81,85.48C288.1,80.26 286.21,75.14 282.59,71.37L280.63,69.32C268.77,56.95 278.2,36.44 295.31,37.39L298.14,37.55C303.36,37.84 308.48,35.95 312.25,32.33L314.3,30.37C326.67,18.51 347.18,27.94 346.23,45.05L346.07,47.88C345.78,53.1 347.67,58.22 351.29,61.99L353.25,64.04Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#1A73E8"/>
+    <path
+        android:pathData="M79.5,311.95C96.63,312.45 104.3,333.67 91.44,345L89.31,346.87C85.38,350.33 83.07,355.26 82.92,360.49L82.84,363.32C82.34,380.45 61.12,388.12 49.79,375.26L47.92,373.13C44.46,369.2 39.53,366.89 34.3,366.74L31.47,366.66C14.34,366.16 6.67,344.94 19.53,333.61L21.66,331.74C25.59,328.28 27.9,323.35 28.05,318.12L28.13,315.29C28.63,298.16 49.85,290.49 61.18,303.35L63.05,305.48C66.51,309.41 71.44,311.72 76.67,311.87L79.5,311.95Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#D93025"/>
+    <path
+        android:pathData="M220.61,297.87C214.88,297.87 209.42,299.51 205.05,302.51C199.32,279.31 178.3,262.12 153.47,262.12C128.64,262.12 109.8,277.68 102.71,298.96C96.43,294.59 88.79,291.86 80.61,291.86C67.15,291.86 55.29,298.82 48.36,309.42C46.09,312.9 48.56,317.51 52.71,317.51H238.84C243.11,317.51 245.55,312.67 243.04,309.21C238.05,302.3 229.84,297.86 220.61,297.86V297.87Z"
+        android:fillColor="#DEDEDE"/>
+    <path
+        android:pathData="M99.26,237.27C107.22,244.78 101.87,258.15 90.93,258.1H89.12C85.78,258.08 82.58,259.45 80.29,261.88L79.05,263.2C71.54,271.16 58.17,265.81 58.22,254.87V253.06C58.24,249.72 56.87,246.52 54.44,244.23L53.12,242.99C45.16,235.48 50.51,222.11 61.45,222.16H63.26C66.6,222.18 69.8,220.81 72.09,218.38L73.33,217.06C80.84,209.1 94.21,214.45 94.16,225.39V227.2C94.14,230.54 95.51,233.74 97.94,236.03L99.26,237.27Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#1E8E3E"/>
+    <path
+        android:pathData="M381.01,335.46C388.11,341.2 384.52,352.66 375.41,353.32L373.9,353.43C371.12,353.63 368.55,354.97 366.8,357.14L365.85,358.31C360.11,365.41 348.65,361.82 347.99,352.71L347.88,351.2C347.68,348.42 346.34,345.85 344.17,344.1L343,343.15C335.9,337.41 339.49,325.95 348.6,325.29L350.11,325.18C352.89,324.98 355.46,323.64 357.21,321.47L358.16,320.3C363.9,313.2 375.36,316.79 376.02,325.9L376.13,327.41C376.33,330.19 377.67,332.76 379.84,334.51L381.01,335.46Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#1E8E3E"/>
+    <path
+        android:pathData="M86.28,44.32C98.91,46.65 102.15,63.25 91.33,70.16L89.54,71.3C86.24,73.41 83.96,76.8 83.24,80.65L82.85,82.74C80.52,95.37 63.92,98.61 57.01,87.79L55.87,86C53.76,82.7 50.37,80.42 46.52,79.7L44.43,79.31C31.8,76.98 28.56,60.38 39.38,53.47L41.17,52.33C44.47,50.22 46.75,46.83 47.47,42.98L47.86,40.89C50.19,28.26 66.79,25.02 73.7,35.84L74.84,37.63C76.95,40.93 80.34,43.21 84.19,43.93L86.28,44.32Z"
+        android:strokeWidth="2.26997"
+        android:fillColor="#00000000"
+        android:strokeColor="#F9AB00"/>
+  </group>
+</vector>
diff --git a/res/drawable/modes_interstitial_driving.xml b/res/drawable/modes_interstitial_driving.xml
new file mode 100644
index 0000000..eba51f4
--- /dev/null
+++ b/res/drawable/modes_interstitial_driving.xml
@@ -0,0 +1,81 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M388.81,244.64L252.55,99.8H158.3L24.49,239.88C28.08,246.82 35.84,251.76 45.06,251.76H58.07C77.9,229.58 106.73,215.61 138.82,215.61C170.91,215.61 199.74,229.58 219.57,251.76H371.66C378.59,251.76 384.69,248.98 388.82,244.65H388.81V244.64Z"
+        android:fillColor="#5E6369"/>
+    <path
+        android:pathData="M393.91,227.39C395.23,233.88 393.06,240.11 388.73,244.65H388.72L252.46,99.8H378.33L393.91,227.39Z"
+        android:fillColor="#009132"/>
+    <path
+        android:pathData="M374.88,71.5C372.89,61.71 363.49,54.6 352.53,54.6H278.07C275.33,62.01 268.23,67.3 259.87,67.3H159.58C151.22,67.3 144.12,62.01 141.38,54.6H67.58C56.59,54.6 47.17,61.74 45.22,71.57L41.13,99.8H378.33L374.88,71.5Z"
+        android:fillColor="#7EB5FE"/>
+    <path
+        android:pathData="M158.21,99.8L24.4,239.88C22.47,236.16 21.73,231.87 22.61,227.45L41.12,99.8H158.21Z"
+        android:fillColor="#009132"/>
+    <path
+        android:pathData="M42.79,88.16L82.41,75.6C88.19,73.77 94.39,73.82 100.14,75.75L128.66,85.31C135.15,87.49 142.21,87.26 148.56,84.67C154.79,82.13 161.72,81.86 168.13,83.93L175.72,86.37C180.43,87.89 185.45,88.16 190.29,87.15L252.84,74.17C257.24,73.26 261.79,73.39 266.12,74.57L311.12,86.76C315.79,88.02 320.71,88.08 325.41,86.93L343.07,82.6C348.04,81.38 353.25,81.52 358.15,83L376.97,88.69L378.33,99.8H41.12L42.79,88.16Z"
+        android:fillColor="#659DF6"/>
+    <path
+        android:pathData="M379.71,163.04L376.86,161.08C375.38,160.06 374.74,158.2 375.28,156.49L376.33,153.19C377.26,150.26 374.73,147.39 371.7,147.95L368.3,148.58C366.53,148.91 364.76,148.04 363.94,146.45L362.35,143.38C360.93,140.65 357.11,140.41 355.37,142.95L353.41,145.8C352.39,147.28 350.53,147.92 348.82,147.38L345.52,146.33C342.59,145.4 339.72,147.93 340.28,150.96L340.91,154.36C341.24,156.13 340.37,157.9 338.78,158.72L335.71,160.31C333.84,161.28 333.14,163.37 333.7,165.16H381.31C381.05,164.34 380.53,163.58 379.73,163.03L379.71,163.04Z"
+        android:fillColor="#00822D"/>
+    <path
+        android:pathData="M315.4,116.73L313.97,115.75C313.23,115.24 312.91,114.31 313.18,113.45L313.7,111.8C314.17,110.33 312.9,108.9 311.38,109.18L309.68,109.5C308.8,109.66 307.91,109.23 307.5,108.43L306.7,106.89C305.99,105.52 304.08,105.41 303.21,106.68L302.23,108.11C301.72,108.85 300.79,109.17 299.93,108.9L298.28,108.38C296.81,107.91 295.38,109.18 295.66,110.7L295.98,112.4C296.14,113.28 295.71,114.17 294.91,114.58L293.37,115.38C292.44,115.86 292.09,116.91 292.36,117.8H316.17C316.04,117.39 315.78,117.01 315.38,116.73H315.4Z"
+        android:fillColor="#00822D"/>
+    <path
+        android:pathData="M103.02,139.55L100.83,138.05C99.69,137.27 99.2,135.84 99.62,134.53L100.42,132C101.13,129.75 99.19,127.55 96.87,127.98L94.26,128.47C92.91,128.72 91.55,128.06 90.91,126.84L89.69,124.48C88.6,122.38 85.67,122.2 84.34,124.15L82.84,126.34C82.06,127.48 80.63,127.97 79.32,127.55L76.79,126.75C74.54,126.04 72.34,127.98 72.77,130.3L73.26,132.91C73.51,134.26 72.85,135.62 71.63,136.26L69.27,137.48C67.84,138.22 67.3,139.83 67.73,141.2H104.25C104.05,140.57 103.65,139.99 103.04,139.56L103.02,139.55Z"
+        android:fillColor="#00822D"/>
+    <path
+        android:pathData="M32.95,156.15L30.46,173.36H67.91C67.68,172.61 67.2,171.91 66.46,171.41L63.85,169.62C62.5,168.69 61.91,166.99 62.41,165.42L63.37,162.4C64.22,159.72 61.9,157.1 59.14,157.61L56.03,158.19C54.42,158.49 52.8,157.7 52.04,156.24L50.58,153.43C49.29,150.93 45.8,150.72 44.2,153.04L42.41,155.65C41.48,157 39.78,157.59 38.21,157.09L35.19,156.13C34.41,155.88 33.63,155.91 32.93,156.13L32.95,156.15Z"
+        android:fillColor="#00822D"/>
+    <path
+        android:pathData="M202.85,187.03L202.06,211.24H213.72L212.72,187.03H202.85Z"
+        android:fillColor="#BCC1C7"/>
+    <path
+        android:pathData="M211.45,156.23H203.85L203.23,175.43H212.24L211.45,156.23Z"
+        android:fillColor="#BCC1C7"/>
+    <path
+        android:pathData="M209.39,106.23L209.12,99.8H205.68L205.47,106.23H209.39Z"
+        android:fillColor="#BCC1C7"/>
+    <path
+        android:pathData="M211.09,147.45L210.4,130.86H204.67L204.13,147.45H211.09Z"
+        android:fillColor="#BCC1C7"/>
+    <path
+        android:pathData="M204.88,124.43H210.14L209.65,112.66H205.26L204.88,124.43Z"
+        android:fillColor="#BCC1C7"/>
+    <path
+        android:pathData="M214.45,225.55H201.71L201.42,235.5C206.98,239.76 212.53,243.92 217.69,249.69H218L214.44,225.55H214.45Z"
+        android:fillColor="#BCC1C7"/>
+    <path
+        android:pathData="M141.03,179.06C89.29,178.41 46.73,219.68 46.08,271.42C45.43,323.16 86.7,365.72 138.44,366.37C190.18,367.02 232.74,325.75 233.39,274.01C234.17,222.27 192.77,179.71 141.03,179.06ZM67.82,245.03C79.07,215.8 107.66,195.23 140.78,195.62C173.89,196.01 201.84,217.35 212.31,246.84C213.22,249.3 211.28,251.76 208.69,251.76L167.43,251.24C159.02,241.15 145.44,235.98 131.73,238.95C123.84,240.63 117.11,244.9 112.2,250.46L71.32,249.94C68.73,250.07 66.92,247.48 67.83,245.02L67.82,245.03ZM122.66,347.87C87.99,339.98 62.25,308.8 62.77,271.68V271.42C62.77,268.96 65.23,267.28 67.56,267.93L103.26,278.67C103.39,279.96 103.65,281.26 103.91,282.55C106.24,293.16 112.96,301.69 121.76,306.61L127.32,343.73C127.71,346.19 125.25,348.39 122.66,347.87ZM153.45,348.52C150.86,349.04 148.66,346.71 149.18,344.12L156.29,307.12C166.77,301.69 173.88,291.6 175.56,280.08L212.04,270.25C214.37,269.6 216.7,271.41 216.7,273.87C216.31,311.25 189.02,342.17 153.45,348.51V348.52Z"
+        android:fillColor="#659DF6"/>
+    <path
+        android:strokeWidth="1"
+        android:pathData="M139.74,299.91C153.98,299.91 165.52,288.37 165.52,274.13C165.52,259.89 153.98,248.35 139.74,248.35C125.5,248.35 113.96,259.89 113.96,274.13C113.96,288.37 125.5,299.91 139.74,299.91Z"
+        android:fillColor="#00000000"
+        android:strokeColor="#004FAC"/>
+  </group>
+</vector>
diff --git a/res/drawable/modes_interstitial_immersive.xml b/res/drawable/modes_interstitial_immersive.xml
new file mode 100644
index 0000000..d901e23
--- /dev/null
+++ b/res/drawable/modes_interstitial_immersive.xml
@@ -0,0 +1,83 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M169.93,276.93C173.11,290.9 174.7,297.89 173.77,303.93C172.42,312.67 167.51,320.47 160.21,325.47C155.17,328.93 148.18,330.52 134.21,333.69L126.71,335.4C112.74,338.58 105.75,340.17 99.71,339.24C90.97,337.89 83.17,332.98 78.17,325.68C74.71,320.64 73.13,313.65 69.95,299.68L68.24,292.18C65.06,278.21 63.47,271.22 64.4,265.18C65.75,256.44 70.66,248.64 77.96,243.64C83,240.18 89.99,238.6 103.96,235.42L111.46,233.71C125.43,230.53 132.42,228.94 138.46,229.87C147.2,231.22 155,236.13 160,243.43C163.46,248.47 165.05,255.46 168.22,269.43L169.93,276.93Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M191.17,273.74C195.68,293.55 197.93,303.46 196.61,312.02C194.69,324.42 187.74,335.47 177.39,342.56C170.24,347.46 160.33,349.71 140.52,354.22L129.89,356.64C110.08,361.15 100.17,363.4 91.61,362.08C79.21,360.16 68.16,353.21 61.06,342.86C56.16,335.71 53.91,325.8 49.4,305.99L46.98,295.36C42.47,275.55 40.22,265.64 41.54,257.08C43.46,244.68 50.41,233.63 60.76,226.53C67.91,221.63 77.82,219.38 97.63,214.87L108.26,212.45C128.07,207.94 137.98,205.69 146.54,207.01C158.94,208.93 169.99,215.88 177.09,226.23C181.99,233.38 184.24,243.29 188.75,263.1L191.17,273.73V273.74Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#81C995"/>
+    <path
+        android:pathData="M211.39,270.71C217.16,296.08 220.05,308.76 218.35,319.73C215.9,335.61 206.99,349.76 193.74,358.84C184.58,365.11 171.9,368 146.53,373.77L132.92,376.87C107.55,382.64 94.87,385.53 83.9,383.83C68.02,381.38 53.87,372.47 44.79,359.22C38.52,350.06 35.63,337.38 29.86,312.01L26.76,298.4C20.99,273.03 18.1,260.35 19.8,249.38C22.25,233.5 31.16,219.35 44.41,210.27C53.56,204 66.25,201.11 91.62,195.34L105.23,192.24C130.6,186.47 143.28,183.58 154.25,185.28C170.13,187.73 184.28,196.64 193.36,209.89C199.63,219.04 202.52,231.73 208.29,257.1L211.39,270.71Z"
+        android:strokeWidth="3"
+        android:fillColor="#00000000"
+        android:strokeColor="#CEEAD6"/>
+    <path
+        android:pathData="M253.51,117.5C250.2,112.06 248.72,105.46 249.75,98.66C252.08,83.33 266.33,72.78 281.58,75.1C288.48,76.15 294.41,79.65 298.61,84.59C304.08,81.12 310.76,79.53 317.65,80.57C332.86,82.88 343.31,97.18 340.98,112.51C339.95,119.31 336.57,125.17 331.81,129.39C335.11,134.83 336.59,141.43 335.56,148.23C333.23,163.56 319.01,174.11 303.8,171.8C296.91,170.75 291.01,167.25 286.81,162.31C281.33,165.78 274.63,167.37 267.73,166.32C252.48,164 242,149.7 244.33,134.37C245.36,127.57 248.74,121.71 253.51,117.5Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M301.87,63.25C310.34,57.87 320.69,55.4 331.36,57.02C354.93,60.6 371.12,82.75 367.51,106.5C365.91,117.04 360.68,126.12 353.31,132.65C358.42,141.08 360.71,151.3 359.11,161.83C355.5,185.58 333.47,201.93 309.9,198.35C299.23,196.73 290.08,191.31 283.58,183.65C275.09,189.03 264.72,191.49 254.02,189.87C230.39,186.28 214.16,164.12 217.77,140.37C219.37,129.83 224.61,120.75 232,114.23C226.88,105.8 224.57,95.58 226.17,85.04C229.78,61.29 251.85,44.95 275.48,48.53C286.17,50.15 295.35,55.58 301.86,63.24L301.87,63.25Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#529FFD"
+        android:strokeLineCap="round"/>
+    <path
+        android:pathData="M305.14,41.91C316.62,34.62 330.64,31.28 345.09,33.48C377.02,38.33 398.94,68.34 394.06,100.5C391.89,114.77 384.81,127.07 374.82,135.92C381.74,147.33 384.85,161.18 382.68,175.45C377.8,207.62 347.95,229.77 316.02,224.92C301.57,222.73 289.17,215.38 280.37,205.01C268.87,212.3 254.82,215.63 240.33,213.43C208.33,208.57 186.34,178.55 191.23,146.38C193.4,132.11 200.49,119.81 210.5,110.97C203.56,99.55 200.44,85.71 202.61,71.43C207.49,39.26 237.4,17.12 269.4,21.98C283.88,24.18 296.32,31.53 305.13,41.91H305.14Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="3"
+        android:fillColor="#00000000"
+        android:strokeColor="#D2E3FC"
+        android:strokeLineCap="round"/>
+    <path
+        android:pathData="M310.7,107.65L310.09,107.56L302.74,106.44L288.07,104.21L280.91,103.12L280.1,103C273.27,101.96 266.89,106.66 265.85,113.49L263.3,130.29C262.61,134.86 265.75,139.12 270.31,139.81C273,140.22 275.73,139.29 277.61,137.32L284.07,130.57L298.74,132.8L302.9,141.16C304.11,143.6 306.44,145.29 309.13,145.7C313.7,146.39 317.96,143.25 318.65,138.69L321.2,121.89C322.24,115.06 317.54,108.68 310.71,107.64L310.7,107.65Z"
+        android:fillColor="#FFFAF0"/>
+    <path
+        android:pathData="M276.2,122.42L280.3,123.05L280.92,118.95L285.02,119.57L285.64,115.47L281.54,114.85L282.16,110.75L278.07,110.13L277.45,114.23L273.35,113.61L272.73,117.7L276.82,118.33L276.2,122.42Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M303.34,126.02C304.95,126.02 306.26,124.71 306.26,123.1C306.26,121.49 304.95,120.18 303.34,120.18C301.73,120.18 300.42,121.49 300.42,123.1C300.42,124.71 301.73,126.02 303.34,126.02Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M309.97,120.81C311.58,120.81 312.89,119.5 312.89,117.89C312.89,116.28 311.58,114.97 309.97,114.97C308.35,114.97 307.05,116.28 307.05,117.89C307.05,119.5 308.35,120.81 309.97,120.81Z"
+        android:fillColor="#1C73E7"/>
+    <path
+        android:pathData="M110.86,311.33L100.08,263.97L142.68,279.18L110.85,311.33H110.86Z"
+        android:fillColor="#FFFAF0"/>
+    <path
+        android:pathData="M66.59,97.12C78.25,85.46 97.16,85.46 108.82,97.12C120.48,108.78 120.48,127.69 108.82,139.35L99.07,149.1C87.41,160.76 68.5,160.76 56.84,149.1C45.18,137.44 45.18,118.53 56.84,106.87L66.59,97.12Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FDD663"/>
+    <path
+        android:pathData="M332.68,258.12C335.52,253.38 342.39,253.38 345.24,258.12L348.44,263.45C350.1,266.22 353.37,267.57 356.5,266.79L362.53,265.28C367.89,263.94 372.75,268.8 371.41,274.16L369.9,280.19C369.12,283.32 370.47,286.59 373.24,288.25L378.57,291.45C383.31,294.29 383.31,301.16 378.57,304.01L373.24,307.21C370.47,308.87 369.12,312.14 369.9,315.27L371.41,321.3C372.75,326.66 367.89,331.52 362.53,330.18L356.5,328.67C353.37,327.89 350.1,329.24 348.44,332.01L345.24,337.34C342.4,342.08 335.53,342.08 332.68,337.34L329.48,332.01C327.82,329.24 324.55,327.89 321.42,328.67L315.39,330.18C310.03,331.52 305.17,326.66 306.51,321.3L308.02,315.27C308.8,312.14 307.45,308.87 304.68,307.21L299.35,304.01C294.61,301.17 294.61,294.3 299.35,291.45L304.68,288.25C307.45,286.59 308.8,283.32 308.02,280.19L306.51,274.16C305.17,268.8 310.03,263.94 315.39,265.28L321.42,266.79C324.55,267.57 327.82,266.22 329.48,263.45L332.68,258.12Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#F28B82"/>
+  </group>
+</vector>
diff --git a/res/drawable/modes_interstitial_managed.xml b/res/drawable/modes_interstitial_managed.xml
new file mode 100644
index 0000000..c54aeae
--- /dev/null
+++ b/res/drawable/modes_interstitial_managed.xml
@@ -0,0 +1,57 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0.2H28C12.54,0.2 0,12.74 0,28.2V384.2C0,399.66 12.54,412.2 28,412.2H384C399.46,412.2 412,399.66 412,384.2V28.2C412,12.74 399.46,0.2 384,0.2Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M146.64,179.97C181.43,154.82 229.04,185.27 220.78,227.4L219.42,234.37C216.9,247.23 219.83,260.56 227.51,271.18L231.67,276.93C256.82,311.72 226.37,359.33 184.24,351.07L177.27,349.71C164.41,347.19 151.08,350.12 140.46,357.8L134.71,361.96C99.92,387.11 52.31,356.66 60.57,314.53L61.93,307.57C64.45,294.71 61.52,281.38 53.84,270.76L49.68,265.01C24.53,230.22 54.98,182.61 97.11,190.87L104.08,192.23C116.94,194.75 130.27,191.82 140.89,184.14L146.64,179.98V179.97Z"
+        android:fillColor="#529FFD"/>
+    <path
+        android:pathData="M361.61,135.37C356.66,153.92 354.19,163.19 349.31,169.77C342.25,179.29 331.57,185.47 319.8,186.85C311.67,187.8 302.39,185.32 283.85,180.37L273.9,177.71C255.36,172.76 246.08,170.29 239.5,165.41C229.98,158.35 223.8,147.67 222.42,135.9C221.47,127.77 223.95,118.49 228.9,99.95L231.56,90C236.51,71.46 238.98,62.18 243.86,55.6C250.92,46.08 261.6,39.9 273.37,38.52C281.5,37.57 290.78,40.05 309.32,45L319.27,47.66C337.82,52.61 347.09,55.08 353.67,59.96C363.19,67.02 369.37,77.7 370.75,89.47C371.7,97.6 369.22,106.88 364.27,125.42L361.61,135.37Z"
+        android:fillColor="#FCC934"/>
+    <path
+        android:pathData="M348.57,230.93C345.11,227.47 337.24,229.18 327.74,234.66C324.89,224.07 320.54,217.29 315.65,217.29C310.76,217.29 306.4,224.07 303.56,234.66C294.06,229.18 286.19,227.47 282.73,230.93C279.27,234.39 280.98,242.26 286.46,251.76C275.87,254.6 269.09,258.96 269.09,263.85C269.09,268.74 275.87,273.1 286.46,275.94C280.98,285.44 279.27,293.32 282.73,296.77C286.19,300.23 294.06,298.52 303.56,293.04C306.4,303.63 310.76,310.41 315.65,310.41C320.54,310.41 324.9,303.63 327.74,293.04C337.24,298.52 345.12,300.23 348.57,296.77C352.03,293.31 350.32,285.44 344.84,275.94C355.43,273.09 362.21,268.74 362.21,263.85C362.21,258.96 355.43,254.6 344.84,251.76C350.32,242.26 352.03,234.38 348.57,230.93Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:fillType="evenOdd"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M194.81,56.17C203.12,68.34 199.99,84.94 187.83,93.25C175.66,101.56 159.06,98.43 150.75,86.27L143.81,76.1C135.5,63.93 138.63,47.33 150.79,39.02C162.96,30.71 179.56,33.84 187.87,46L194.81,56.17Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#00AB47"/>
+    <path
+        android:pathData="M130.96,158.11C130.5,159.35 130.27,159.97 130.01,160.47C128.02,164.37 123.61,166.39 119.35,165.37C118.8,165.24 118.18,165.01 116.94,164.55L75.56,149.24C74.32,148.78 73.7,148.55 73.2,148.29C69.3,146.3 67.28,141.89 68.3,137.63C68.43,137.08 68.66,136.46 69.12,135.22L76.78,114.53C83.1,97.45 102.06,88.73 119.14,95.05C136.22,101.37 144.94,120.33 138.62,137.41L130.96,158.1V158.11Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EA4335"/>
+    <path
+        android:pathData="M152.86,267.48C151.12,267.79 149.53,267.48 148.08,266.55C146.7,265.52 145.85,264.13 145.54,262.39C145.23,260.65 145.54,259.1 146.5,257.73C147.52,256.27 148.9,255.38 150.63,255.06C152.36,254.74 153.93,255.11 155.31,256.14C156.76,257.07 157.64,258.41 157.95,260.15C158.26,261.89 157.91,263.49 156.89,264.95C155.94,266.32 154.6,267.16 152.86,267.47V267.48ZM128.04,271.95C126.3,272.26 124.71,271.95 123.26,271.02C121.88,269.99 121.03,268.6 120.72,266.86C120.41,265.12 120.72,263.57 121.68,262.2C122.7,260.74 124.08,259.85 125.81,259.53C127.54,259.21 129.11,259.58 130.49,260.61C131.94,261.54 132.82,262.88 133.13,264.62C133.44,266.36 133.09,267.96 132.07,269.42C131.12,270.79 129.78,271.63 128.04,271.94V271.95ZM145.15,295.79C140.18,296.68 135.43,296.13 130.88,294.13C126.42,292.11 122.83,289.04 120.12,284.92L164.81,276.87C163.71,281.68 161.38,285.82 157.82,289.28C154.34,292.73 150.12,294.9 145.15,295.79ZM148.72,315.65C142.51,316.77 136.47,316.66 130.59,315.33C124.78,313.9 119.49,311.56 114.72,308.32C110.02,304.98 105.98,300.84 102.61,295.89C99.31,290.85 97.1,285.22 95.98,279.01C94.86,272.8 94.98,266.8 96.33,261.01C97.75,255.12 100.08,249.83 103.34,245.14C106.66,240.35 110.81,236.32 115.77,233.03C120.8,229.65 126.42,227.4 132.62,226.28C138.82,225.16 144.84,225.32 150.65,226.75C156.53,228.08 161.82,230.42 166.52,233.76C171.29,237 175.33,241.14 178.63,246.19C182,251.14 184.24,256.71 185.36,262.92C186.48,269.13 186.33,275.18 184.91,281.07C183.56,286.87 181.23,292.16 177.9,296.94C174.64,301.63 170.5,305.66 165.47,309.05C160.51,312.34 154.92,314.54 148.72,315.66V315.65ZM146.93,305.72C156.53,303.99 164.11,299.12 169.67,291.12C175.23,283.11 177.15,274.31 175.42,264.71C173.69,255.11 168.82,247.53 160.82,241.97C152.81,236.41 144.01,234.49 134.41,236.22L132.92,236.49C132.42,236.58 131.94,236.75 131.48,237.01C131.07,237.6 130.84,238.19 130.78,238.8C130.72,239.41 130.75,240.04 130.87,240.71C131.18,242.45 132.03,243.83 133.41,244.87C134.86,245.8 136.45,246.12 138.19,245.8C138.93,245.67 139.57,245.42 140.11,245.07C140.73,244.7 141.37,244.46 142.03,244.34C143.02,244.16 143.92,244.38 144.71,245.01C145.51,245.64 145.99,246.44 146.17,247.44C146.51,249.34 145.83,250.75 144.11,251.66C142.46,252.47 140.93,253 139.53,253.25C135.81,253.92 132.34,253.18 129.13,251.02C125.99,248.77 124.08,245.78 123.41,242.05L123.28,241.31C123.24,241.06 123.22,240.72 123.23,240.29C116.81,244.01 111.98,249.19 108.73,255.84C105.49,262.49 104.55,269.62 105.92,277.24C107.65,286.84 112.52,294.42 120.52,299.98C128.53,305.54 137.33,307.46 146.93,305.73V305.72Z"
+        android:fillColor="#1967D2"/>
+    <path
+        android:pathData="M293.93,132.47C301.29,134.5 308.23,133.67 314.75,129.97C321.28,126.21 325.56,120.68 327.58,113.37C328.05,111.67 328.36,110.01 328.51,108.39C328.67,106.72 328.66,105.06 328.46,103.41C326.72,103.93 324.96,104.22 323.17,104.26C321.38,104.3 319.61,104.08 317.86,103.59C314.89,102.77 312.27,101.34 310,99.29C307.8,97.2 306.18,94.69 305.16,91.75C302.77,93.75 300.07,95.08 297.06,95.72C294.11,96.33 291.16,96.22 288.19,95.4C286.43,94.92 284.8,94.2 283.28,93.25C281.76,92.3 280.4,91.15 279.17,89.81C278.16,91.13 277.29,92.54 276.58,94.06C275.88,95.52 275.3,97.11 274.83,98.81C272.81,106.12 273.65,113.06 277.33,119.63C281.09,126.16 286.62,130.44 293.93,132.46V132.47ZM289.27,110.78C290.42,111.1 291.49,110.98 292.47,110.42C293.52,109.82 294.21,108.95 294.52,107.79C294.83,106.63 294.69,105.56 294.08,104.56C293.54,103.52 292.69,102.85 291.54,102.53C290.39,102.21 289.28,102.35 288.23,102.95C287.25,103.51 286.6,104.36 286.28,105.52C285.96,106.67 286.07,107.77 286.62,108.81C287.23,109.81 288.11,110.46 289.27,110.78ZM309.05,116.24C310.2,116.56 311.27,116.44 312.25,115.88C313.3,115.28 313.99,114.41 314.3,113.25C314.61,112.09 314.47,111.02 313.86,110.02C313.32,108.98 312.47,108.31 311.32,107.99C310.17,107.67 309.06,107.81 308.01,108.41C307.03,108.97 306.38,109.82 306.06,110.98C305.74,112.14 305.85,113.23 306.4,114.27C307.01,115.27 307.89,115.92 309.05,116.24ZM290,88.81C293.19,89.69 296.22,89.31 299.09,87.68C301.96,86.05 303.84,83.64 304.72,80.45L305.13,78.97C301.27,78.38 297.51,78.61 293.85,79.67C290.19,80.73 286.9,82.45 284,84.85C284.81,85.78 285.71,86.59 286.7,87.28C287.69,87.97 288.79,88.48 290,88.81ZM319.67,97C320.88,97.33 322.08,97.49 323.27,97.46C324.47,97.38 325.67,97.12 326.86,96.68C325.59,93.14 323.65,89.97 321.05,87.19C318.5,84.42 315.4,82.29 311.72,80.8L311.31,82.28C310.43,85.47 310.81,88.5 312.44,91.37C314.07,94.24 316.48,96.12 319.67,97ZM257.98,136.74C256.06,136.21 254.63,135.05 253.71,133.26C252.79,131.47 252.67,129.63 253.37,127.75L265.32,96.01C267.03,91.52 269.46,87.54 272.6,84.09C275.79,80.65 279.39,77.92 283.38,75.89C287.44,73.82 291.76,72.52 296.33,72.01C300.98,71.46 305.63,71.83 310.3,73.11C314.97,74.4 319.13,76.46 322.78,79.3C326.5,82.1 329.55,85.42 331.91,89.27C334.35,93.08 336.03,97.27 336.96,101.84C337.94,106.43 338.02,111.09 337.18,115.83L331.17,149.2C330.8,151.17 329.77,152.69 328.05,153.75C326.33,154.81 324.52,155.08 322.6,154.55L257.98,136.73V136.74ZM292.11,139.06C285.24,137.17 279.58,133.57 275.13,128.26C270.7,122.9 268.07,116.88 267.25,110.21L259.8,130.15L324.42,147.97L328.24,127.03C324.12,132.34 318.78,136.16 312.22,138.49C305.73,140.78 299.03,140.97 292.11,139.06ZM292.11,139.06C299.03,140.97 305.21,142.67 310.65,144.17C316.14,145.69 320.13,146.78 322.6,147.47L324.41,147.97L259.79,130.15L261.6,130.65C264.07,131.33 268.06,132.43 273.55,133.95C279.04,135.47 285.23,137.17 292.09,139.06H292.11Z"
+        android:fillColor="#F29900"/>
+  </group>
+</vector>
diff --git a/res/drawable/modes_interstitial_other.xml b/res/drawable/modes_interstitial_other.xml
new file mode 100644
index 0000000..096de39
--- /dev/null
+++ b/res/drawable/modes_interstitial_other.xml
@@ -0,0 +1,118 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M81.65,103.36C94.23,106.21 96.82,122.99 85.68,129.5L83.84,130.58C80.44,132.57 78.01,135.87 77.14,139.71L76.67,141.79C73.82,154.37 57.04,156.96 50.53,145.82L49.45,143.98C47.46,140.58 44.16,138.15 40.32,137.28L38.24,136.81C25.66,133.96 23.07,117.18 34.21,110.67L36.05,109.59C39.45,107.6 41.88,104.3 42.75,100.46L43.22,98.38C46.07,85.8 62.85,83.21 69.36,94.35L70.44,96.19C72.43,99.59 75.73,102.02 79.57,102.89L81.65,103.36Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#1A73E8"/>
+    <path
+        android:pathData="M364.93,340.67C377.51,343.52 380.1,360.3 368.96,366.81L367.12,367.89C363.72,369.88 361.29,373.18 360.42,377.02L359.95,379.1C357.1,391.68 340.32,394.27 333.81,383.13L332.73,381.29C330.74,377.89 327.44,375.46 323.6,374.59L321.52,374.12C308.94,371.27 306.35,354.49 317.49,347.98L319.33,346.9C322.73,344.91 325.16,341.61 326.03,337.77L326.5,335.69C329.35,323.11 346.13,320.52 352.64,331.66L353.72,333.5C355.71,336.9 359.01,339.33 362.85,340.2L364.93,340.67Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#ED050E"/>
+    <path
+        android:pathData="M70.27,311.22C73.06,306.56 79.82,306.56 82.61,311.22L85.75,316.46C87.38,319.18 90.6,320.51 93.67,319.74L99.6,318.25C104.87,316.93 109.65,321.71 108.33,326.98L106.84,332.91C106.07,335.98 107.4,339.2 110.12,340.83L115.36,343.97C120.02,346.76 120.02,353.52 115.36,356.31L110.12,359.45C107.4,361.08 106.07,364.3 106.84,367.37L108.33,373.3C109.65,378.57 104.87,383.35 99.6,382.03L93.67,380.54C90.6,379.77 87.38,381.1 85.75,383.82L82.61,389.06C79.82,393.72 73.06,393.72 70.27,389.06L67.13,383.82C65.5,381.1 62.28,379.77 59.21,380.54L53.28,382.03C48.01,383.35 43.23,378.57 44.55,373.3L46.04,367.37C46.81,364.3 45.48,361.08 42.76,359.45L37.52,356.31C32.86,353.52 32.86,346.76 37.52,343.97L42.76,340.83C45.48,339.2 46.81,335.98 46.04,332.91L44.55,326.98C43.23,321.71 48.01,316.93 53.28,318.25L59.21,319.74C62.28,320.51 65.5,319.18 67.13,316.46L70.27,311.22Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#ED050E"/>
+    <path
+        android:pathData="M349.46,192.02C350.8,189.79 354.02,189.79 355.36,192.02L356.86,194.53C357.64,195.83 359.18,196.47 360.65,196.1L363.48,195.39C366,194.76 368.28,197.04 367.65,199.56L366.94,202.39C366.57,203.86 367.21,205.4 368.51,206.18L371.02,207.68C373.25,209.02 373.25,212.24 371.02,213.58L368.51,215.08C367.21,215.86 366.57,217.4 366.94,218.87L367.65,221.7C368.28,224.22 366,226.5 363.48,225.87L360.65,225.16C359.18,224.79 357.64,225.43 356.86,226.73L355.36,229.24C354.02,231.47 350.8,231.47 349.46,229.24L347.96,226.73C347.18,225.43 345.64,224.79 344.17,225.16L341.34,225.87C338.82,226.5 336.54,224.22 337.17,221.7L337.88,218.87C338.25,217.4 337.61,215.86 336.31,215.08L333.8,213.58C331.57,212.24 331.57,209.02 333.8,207.68L336.31,206.18C337.61,205.4 338.25,203.86 337.88,202.39L337.17,199.56C336.54,197.04 338.82,194.76 341.34,195.39L344.17,196.1C345.64,196.47 347.18,195.83 347.96,194.53L349.46,192.02Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#1A73E8"/>
+    <path
+        android:pathData="M50.02,303.87L76.47,281.69C82,277.05 82.72,268.82 78.09,263.29C73.45,257.76 65.21,257.04 59.69,261.67L33.23,283.85C27.71,288.49 26.98,296.73 31.62,302.25C36.25,307.78 44.49,308.5 50.02,303.87Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#1A73E8"/>
+    <path
+        android:pathData="M190.87,53.46L220.77,70.72C227.01,74.33 235,72.19 238.61,65.94C242.21,59.7 240.07,51.71 233.83,48.1L203.93,30.84C197.69,27.24 189.7,29.38 186.09,35.62C182.49,41.87 184.63,49.86 190.87,53.46Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#1A73E8"/>
+    <path
+        android:pathData="M372.69,173.54C384.92,173.54 394.84,163.63 394.84,151.39C394.84,139.16 384.92,129.24 372.69,129.24C360.46,129.24 350.54,139.16 350.54,151.39C350.54,163.63 360.46,173.54 372.69,173.54Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#ED050E"/>
+    <path
+        android:pathData="M54.85,200.83C63.95,200.83 71.33,193.45 71.33,184.35C71.33,175.25 63.95,167.87 54.85,167.87C45.75,167.87 38.37,175.25 38.37,184.35C38.37,193.45 45.75,200.83 54.85,200.83Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#ED050E"/>
+    <path
+        android:pathData="M54.85,75.46C67.92,75.46 78.52,64.86 78.52,51.79C78.52,38.71 67.92,28.12 54.85,28.12C41.78,28.12 31.18,38.71 31.18,51.79C31.18,64.86 41.78,75.46 54.85,75.46Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#ED050E"/>
+    <path
+        android:pathData="M149.34,366.63C158.44,366.63 165.82,359.25 165.82,350.15C165.82,341.05 158.44,333.67 149.34,333.67C140.24,333.67 132.86,341.05 132.86,350.15C132.86,359.25 140.24,366.63 149.34,366.63Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M164.35,104.14C188.06,81.2 225.76,81.2 249.47,104.14C256.72,111.16 265.61,116.28 275.34,119.03C307.12,128.03 325.97,160.58 317.9,192.52C315.43,202.29 315.43,212.53 317.9,222.3C325.97,254.24 307.12,286.79 275.34,295.79C265.62,298.54 256.73,303.66 249.47,310.68C225.76,333.62 188.06,333.62 164.35,310.68C157.1,303.66 148.21,298.54 138.48,295.79C106.7,286.79 87.85,254.24 95.92,222.3C98.39,212.53 98.39,202.29 95.92,192.52C87.85,160.58 106.7,128.03 138.48,119.03C148.21,116.28 157.09,111.16 164.35,104.14Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M291.79,39.71C294.08,44.56 295.22,46.98 295.37,49.27C295.58,52.57 294.42,55.82 292.16,58.24C290.6,59.91 288.17,61.05 283.32,63.34L280.72,64.57C275.87,66.86 273.45,68 271.16,68.15C267.86,68.36 264.61,67.2 262.19,64.94C260.52,63.38 259.38,60.95 257.09,56.1L255.86,53.5C253.57,48.65 252.43,46.23 252.28,43.94C252.07,40.64 253.23,37.39 255.49,34.97C257.05,33.3 259.48,32.16 264.33,29.87L266.93,28.64C271.78,26.35 274.2,25.21 276.49,25.06C279.79,24.85 283.04,26.01 285.46,28.27C287.13,29.83 288.27,32.26 290.56,37.11L291.79,39.71Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#ED050E"/>
+    <path
+        android:pathData="M275.06,336.34C281.73,338.9 285.07,340.18 287.32,342.24C290.57,345.23 292.44,349.42 292.49,353.84C292.52,356.89 291.24,360.23 288.68,366.9L287.31,370.48C284.75,377.15 283.47,380.49 281.41,382.74C278.42,385.99 274.23,387.86 269.81,387.91C266.76,387.94 263.42,386.66 256.75,384.1L253.17,382.73C246.5,380.17 243.16,378.89 240.91,376.83C237.66,373.84 235.79,369.65 235.74,365.23C235.71,362.18 236.99,358.84 239.55,352.17L240.92,348.59C243.48,341.92 244.76,338.58 246.82,336.33C249.81,333.08 254,331.21 258.42,331.16C261.47,331.13 264.81,332.41 271.48,334.97L275.06,336.34Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M56.34,227.85C58.63,232.7 59.77,235.12 59.92,237.41C60.13,240.71 58.97,243.96 56.71,246.38C55.15,248.05 52.72,249.19 47.87,251.48L45.27,252.71C40.42,255 38,256.14 35.71,256.29C32.41,256.5 29.16,255.34 26.74,253.08C25.07,251.52 23.93,249.09 21.64,244.24L20.41,241.64C18.12,236.79 16.98,234.37 16.83,232.08C16.62,228.78 17.78,225.53 20.04,223.11C21.6,221.44 24.03,220.3 28.88,218.01L31.48,216.78C36.33,214.49 38.75,213.35 41.04,213.2C44.34,212.99 47.59,214.15 50.01,216.41C51.68,217.97 52.82,220.4 55.11,225.25L56.34,227.85Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M319.04,100.31C314.11,99.32 309.47,96.66 306.06,92.42C298.38,82.87 299.86,68.93 309.37,61.29C313.67,57.83 318.88,56.26 324,56.46C324.9,51.42 327.55,46.68 331.84,43.23C341.32,35.61 355.23,37.18 362.91,46.73C366.32,50.97 367.92,56.07 367.83,61.09C372.76,62.08 377.39,64.75 380.8,68.98C388.48,78.53 387.01,92.46 377.53,100.08C373.24,103.53 368.04,105.1 362.92,104.89C362.01,109.94 359.35,114.68 355.05,118.14C345.55,125.78 331.62,124.22 323.94,114.67C320.53,110.43 318.93,105.33 319.03,100.3L319.04,100.31Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M183.62,383.49C180.85,382.54 178.39,380.64 176.76,377.93C173.09,371.82 175.03,363.91 181.1,360.26C183.85,358.61 186.97,358.11 189.91,358.62C190.82,355.79 192.72,353.26 195.46,351.61C201.52,347.96 209.41,349.95 213.09,356.06C214.72,358.77 215.25,361.83 214.8,364.72C217.56,365.68 220.02,367.58 221.65,370.28C225.32,376.39 223.39,384.29 217.33,387.94C214.59,389.59 211.47,390.09 208.54,389.57C207.62,392.41 205.72,394.93 202.97,396.59C196.9,400.25 188.99,398.26 185.32,392.16C183.69,389.45 183.17,386.39 183.62,383.5V383.49Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#1A73E8"/>
+    <path
+        android:pathData="M136.6,94.6C135.54,95.43 135.01,95.85 134.53,96.14C130.73,98.45 125.84,97.87 122.7,94.72C122.3,94.32 121.88,93.79 121.05,92.73L93.38,57.49C92.55,56.43 92.13,55.9 91.84,55.42C89.53,51.62 90.11,46.73 93.26,43.6C93.66,43.2 94.19,42.78 95.25,41.95L112.87,28.12C127.41,16.7 148.46,19.24 159.88,33.78C171.3,48.32 168.76,69.37 154.22,80.79L136.6,94.62V94.6Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+    <path
+        android:pathData="M389.79,270.19C390.52,270.96 390.89,271.34 391.16,271.7C393.26,274.5 393.17,278.38 390.94,281.08C390.65,281.43 390.27,281.79 389.5,282.52L363.96,306.89C363.19,307.62 362.81,307.99 362.45,308.26C359.65,310.36 355.77,310.27 353.07,308.04C352.72,307.75 352.36,307.37 351.63,306.6L339.44,293.83C329.38,283.29 329.78,266.59 340.31,256.54C350.85,246.48 367.55,246.88 377.6,257.41L389.79,270.18V270.19Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FFB900"/>
+  </group>
+</vector>
diff --git a/res/drawable/modes_interstitial_theater.xml b/res/drawable/modes_interstitial_theater.xml
new file mode 100644
index 0000000..78356b4
--- /dev/null
+++ b/res/drawable/modes_interstitial_theater.xml
@@ -0,0 +1,77 @@
+<!--
+  ~ 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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:strokeWidth="1"
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#ffffff"
+        android:strokeColor="#FFFAF0"/>
+    <path
+        android:pathData="M300.93,258.76C304.13,254.1 311.15,254.53 313.75,259.55L316.68,265.2C318.2,268.13 321.45,269.72 324.7,269.12L330.95,267.96C336.51,266.92 341.17,272.19 339.46,277.59L337.54,283.65C336.54,286.79 337.72,290.22 340.44,292.09L345.69,295.69C350.35,298.89 349.92,305.91 344.9,308.51L339.25,311.44C336.32,312.96 334.73,316.21 335.34,319.46L336.5,325.71C337.53,331.27 332.27,335.93 326.87,334.22L320.81,332.3C317.67,331.3 314.24,332.48 312.37,335.2L308.77,340.45C305.57,345.11 298.55,344.68 295.95,339.66L293.02,334.01C291.5,331.08 288.25,329.49 285,330.1L278.75,331.26C273.19,332.29 268.53,327.03 270.24,321.63L272.16,315.57C273.16,312.43 271.98,309 269.26,307.13L264.01,303.53C259.35,300.33 259.78,293.31 264.8,290.71L270.45,287.78C273.38,286.26 274.97,283.01 274.37,279.76L273.21,273.51C272.17,267.95 277.44,263.29 282.84,265L288.9,266.92C292.04,267.92 295.47,266.74 297.34,264.02L300.94,258.77L300.93,258.76Z"
+        android:fillColor="#529FFD"/>
+    <path
+        android:pathData="M77.66,50.23C76.29,45.91 76.37,41.09 78.22,36.56C82.41,26.34 94.04,21.44 104.2,25.6C108.8,27.49 112.31,30.91 114.39,35.03C118.76,33.54 123.65,33.57 128.24,35.45C138.38,39.61 143.21,51.26 139.02,61.47C137.16,66 133.84,69.49 129.84,71.61C131.21,75.93 131.12,80.74 129.27,85.28C125.08,95.5 113.47,100.41 103.33,96.26C98.74,94.38 95.24,90.96 93.17,86.84C88.79,88.32 83.89,88.3 79.29,86.41C69.13,82.24 64.28,70.59 68.47,60.37C70.33,55.84 73.65,52.35 77.66,50.24V50.23Z"
+        android:strokeLineJoin="round"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#EF675C"
+        android:strokeLineCap="round"/>
+    <path
+        android:pathData="M180.11,93.23C180.11,89.75 180.11,88.01 180.28,86.55C181.64,75.13 190.64,66.13 202.05,64.78C203.51,64.61 205.25,64.61 208.73,64.61H324.57C328.05,64.61 329.79,64.61 331.25,64.78C342.67,66.14 351.67,75.14 353.02,86.55C353.19,88.01 353.19,89.75 353.19,93.23V151.15C353.19,198.95 314.44,237.7 266.64,237.7C218.84,237.7 180.09,198.95 180.09,151.15V93.23H180.11Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#FCC934"/>
+    <path
+        android:pathData="M228.49,100.85C219.06,100.85 211.26,107.82 209.95,116.89C209.74,118.31 210.86,119.59 212.3,119.59H244.69C246.13,119.59 247.24,118.31 247.04,116.89C245.73,107.82 237.93,100.85 228.5,100.85H228.49Z"
+        android:fillColor="#FCC934"/>
+    <path
+        android:pathData="M304.85,100.85C295.42,100.85 287.62,107.82 286.31,116.89C286.1,118.31 287.22,119.59 288.66,119.59H321.05C322.49,119.59 323.6,118.31 323.4,116.89C322.09,107.82 314.29,100.85 304.86,100.85H304.85Z"
+        android:fillColor="#FCC934"/>
+    <path
+        android:pathData="M266.67,172.93C253.45,172.93 242.5,182.7 240.67,195.42C240.38,197.42 241.94,199.21 243.96,199.21H289.38C291.4,199.21 292.96,197.42 292.67,195.42C290.83,182.7 279.89,172.93 266.67,172.93Z"
+        android:fillColor="#FCC934"/>
+    <path
+        android:pathData="M55.38,166.77C55.38,163.29 55.38,161.55 55.55,160.09C56.91,148.67 65.91,139.67 77.32,138.32C78.78,138.15 80.52,138.15 84,138.15H199.84C203.32,138.15 205.06,138.15 206.52,138.32C217.94,139.68 226.94,148.68 228.29,160.09C228.46,161.55 228.46,163.29 228.46,166.77V224.69C228.46,272.49 189.71,311.24 141.91,311.24C94.11,311.24 55.36,272.49 55.36,224.69V166.77H55.38Z"
+        android:fillColor="#F9AB00"/>
+    <path
+        android:strokeWidth="1"
+        android:pathData="M103.75,179.43C94.32,179.43 86.52,186.4 85.21,195.47C85,196.89 86.12,198.17 87.56,198.17H119.95C121.39,198.17 122.5,196.89 122.3,195.47C120.99,186.4 113.19,179.43 103.76,179.43H103.75Z"
+        android:fillColor="#FFFAF0"
+        android:strokeColor="#FFFAF0"/>
+    <path
+        android:strokeWidth="1"
+        android:pathData="M180.11,179.43C170.68,179.43 162.88,186.4 161.57,195.47C161.36,196.89 162.48,198.17 163.92,198.17H196.31C197.75,198.17 198.86,196.89 198.66,195.47C197.35,186.4 189.55,179.43 180.12,179.43H180.11Z"
+        android:fillColor="#FFFAF0"
+        android:strokeColor="#FFFAF0"/>
+    <path
+        android:strokeWidth="1"
+        android:pathData="M140.16,277.78C153.38,277.78 164.33,268.01 166.16,255.29C166.45,253.29 164.89,251.5 162.87,251.5H117.45C115.43,251.5 113.87,253.29 114.16,255.29C116,268.01 126.94,277.78 140.16,277.78Z"
+        android:fillColor="#FFFAF0"
+        android:strokeColor="#FFFAF0"/>
+    <path
+        android:pathData="M205.46,328.16C220.3,318.94 239.8,323.51 249.02,338.35C258.24,353.19 253.67,372.69 238.83,381.91L226.43,389.61C211.59,398.83 192.09,394.26 182.87,379.42C173.65,364.58 178.22,345.08 193.06,335.86L205.46,328.16Z"
+        android:strokeWidth="2"
+        android:fillColor="#00000000"
+        android:strokeColor="#26BC6D"/>
+  </group>
+</vector>
diff --git a/res/drawable/modes_interstitial_unknown.xml b/res/drawable/modes_interstitial_unknown.xml
new file mode 100644
index 0000000..a68f71a
--- /dev/null
+++ b/res/drawable/modes_interstitial_unknown.xml
@@ -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.
+  -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="412dp"
+    android:height="412dp"
+    android:viewportWidth="412"
+    android:viewportHeight="412">
+  <group>
+    <clip-path
+        android:pathData="M0,0h412v412h-412z"/>
+    <path
+        android:pathData="M384,0H28C12.54,0 0,12.54 0,28V384C0,399.46 12.54,412 28,412H384C399.46,412 412,399.46 412,384V28C412,12.54 399.46,0 384,0Z"
+        android:fillColor="#ffffff"/>
+    <path
+        android:pathData="M147.09,65.18C149.2,72.23 150.26,75.75 149.99,78.88C149.6,83.41 147.36,87.57 143.79,90.39C141.33,92.34 137.8,93.39 130.75,95.51L126.97,96.64C119.92,98.75 116.4,99.81 113.27,99.54C108.74,99.15 104.58,96.91 101.76,93.34C99.81,90.88 98.76,87.35 96.64,80.3L95.51,76.52C93.4,69.47 92.34,65.95 92.61,62.82C93,58.29 95.24,54.13 98.81,51.31C101.27,49.36 104.8,48.31 111.85,46.19L115.63,45.06C122.68,42.95 126.2,41.89 129.33,42.16C133.86,42.55 138.02,44.79 140.84,48.36C142.79,50.82 143.84,54.35 145.96,61.4L147.09,65.18Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M222.58,377.9C217.67,383.38 215.21,386.12 212.4,387.52C208.33,389.55 203.61,389.81 199.35,388.23C196.41,387.14 193.67,384.68 188.19,379.77L185.25,377.13C179.77,372.22 177.03,369.76 175.63,366.95C173.6,362.88 173.34,358.16 174.92,353.9C176.01,350.96 178.47,348.22 183.38,342.74L186.02,339.8C190.93,334.32 193.39,331.58 196.2,330.18C200.27,328.15 204.99,327.89 209.25,329.47C212.19,330.56 214.93,333.02 220.41,337.93L223.35,340.57C228.83,345.48 231.57,347.94 232.97,350.75C235,354.82 235.26,359.54 233.68,363.8C232.59,366.74 230.13,369.48 225.22,374.96L222.58,377.9Z"
+        android:fillColor="#FFB900"/>
+    <path
+        android:pathData="M341,204.85C338.84,202.27 337.54,198.95 337.54,195.31C337.54,187.12 344.14,180.49 352.29,180.49C355.98,180.49 359.35,181.85 361.93,184.1C364.51,181.85 367.87,180.49 371.55,180.49C379.67,180.49 386.26,187.13 386.26,195.31C386.26,198.94 384.96,202.27 382.81,204.85C384.96,207.43 386.26,210.75 386.26,214.39C386.26,222.58 379.67,229.21 371.55,229.21C367.87,229.21 364.51,227.85 361.93,225.6C359.34,227.85 355.97,229.21 352.29,229.21C344.15,229.21 337.54,222.57 337.54,214.39C337.54,210.76 338.84,207.43 341,204.85Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M210.98,29.57C221.73,24.9 232.63,35.81 227.97,46.56L227.2,48.34C225.77,51.62 225.77,55.35 227.2,58.63L227.97,60.41C232.64,71.16 221.73,82.06 210.98,77.4L209.2,76.63C205.92,75.2 202.19,75.2 198.91,76.63L197.13,77.4C186.38,82.07 175.48,71.16 180.14,60.41L180.91,58.63C182.34,55.35 182.34,51.62 180.91,48.34L180.14,46.56C175.47,35.81 186.38,24.91 197.13,29.57L198.91,30.34C202.19,31.77 205.92,31.77 209.2,30.34L210.98,29.57Z"
+        android:fillColor="#4285F4"/>
+    <path
+        android:pathData="M112.23,310.56C117.35,305.61 125.49,305.61 130.6,310.56C132.17,312.08 134.08,313.18 136.18,313.77C143.04,315.71 147.11,322.74 145.37,329.63C144.84,331.74 144.84,333.95 145.37,336.06C147.11,342.95 143.04,349.98 136.18,351.92C134.08,352.51 132.16,353.62 130.6,355.13C125.48,360.08 117.34,360.08 112.23,355.13C110.66,353.61 108.75,352.51 106.65,351.92C99.79,349.98 95.72,342.95 97.46,336.06C97.99,333.95 97.99,331.74 97.46,329.63C95.72,322.74 99.79,315.71 106.65,313.77C108.75,313.18 110.67,312.07 112.23,310.56Z"
+        android:fillColor="#00AB47"/>
+    <path
+        android:pathData="M371.12,285.88C371.35,286.8 371.47,287.26 371.52,287.66C371.92,290.76 370.14,293.73 367.21,294.85C366.84,294.99 366.38,295.11 365.46,295.34L334.88,303C333.96,303.23 333.5,303.35 333.1,303.4C330,303.8 327.03,302.02 325.91,299.09C325.77,298.72 325.65,298.26 325.42,297.34L321.59,282.05C318.43,269.43 326.09,256.64 338.71,253.48C351.33,250.32 364.12,257.98 367.28,270.6L371.11,285.89L371.12,285.88Z"
+        android:fillColor="#4285F4"/>
+    <path
+        android:pathData="M70.59,304.57C69.85,305.15 69.47,305.45 69.13,305.66C66.46,307.29 63.02,306.87 60.81,304.66C60.53,304.38 60.23,304 59.65,303.26L40.18,278.47C39.6,277.73 39.3,277.35 39.09,277.01C37.46,274.34 37.88,270.9 40.09,268.69C40.37,268.41 40.75,268.11 41.49,267.53L53.89,257.8C64.12,249.77 78.93,251.55 86.96,261.78C94.99,272.01 93.21,286.82 82.98,294.85L70.58,304.58L70.59,304.57Z"
+        android:fillColor="#4285F4"/>
+    <path
+        android:pathData="M313.19,71.34C313.19,85.75 301.51,97.44 287.09,97.44C272.67,97.44 260.99,85.76 260.99,71.34C260.99,56.93 272.67,45.24 287.09,45.24C301.5,45.24 313.19,56.92 313.19,71.34Z"
+        android:fillColor="#EA4335"/>
+    <path
+        android:pathData="M69.28,183.38C67.16,181.26 62.32,182.31 56.49,185.67C54.74,179.16 52.06,175 49.06,175C46.06,175 43.38,179.16 41.63,185.67C35.79,182.31 30.96,181.26 28.84,183.38C26.72,185.5 27.77,190.34 31.13,196.18C24.62,197.93 20.46,200.61 20.46,203.61C20.46,206.61 24.62,209.29 31.13,211.04C27.77,216.88 26.72,221.71 28.84,223.84C30.96,225.96 35.8,224.91 41.64,221.55C43.39,228.06 46.07,232.22 49.07,232.22C52.07,232.22 54.75,228.06 56.5,221.55C62.34,224.92 67.17,225.97 69.3,223.84C71.42,221.72 70.37,216.88 67.01,211.04C73.52,209.29 77.68,206.61 77.68,203.61C77.68,200.61 73.52,197.93 67.01,196.18C70.37,190.34 71.42,185.51 69.3,183.39L69.28,183.38Z"
+        android:fillColor="#FFB900"
+        android:fillType="evenOdd"/>
+    <path
+        android:pathData="M284.91,311.14C286.75,308.06 291.22,308.06 293.06,311.14L295.13,314.6C296.21,316.4 298.33,317.28 300.36,316.77L304.28,315.79C307.76,314.92 310.92,318.07 310.04,321.55L309.06,325.47C308.55,327.5 309.43,329.62 311.23,330.7L314.69,332.77C317.77,334.61 317.77,339.08 314.69,340.92L311.23,342.99C309.43,344.07 308.55,346.19 309.06,348.22L310.04,352.14C310.91,355.62 307.76,358.78 304.28,357.9L300.36,356.92C298.33,356.41 296.21,357.29 295.13,359.09L293.06,362.55C291.22,365.63 286.75,365.63 284.91,362.55L282.84,359.09C281.76,357.29 279.64,356.41 277.61,356.92L273.69,357.9C270.21,358.77 267.05,355.62 267.93,352.14L268.91,348.22C269.42,346.19 268.54,344.07 266.74,342.99L263.28,340.92C260.2,339.08 260.2,334.61 263.28,332.77L266.74,330.7C268.54,329.62 269.42,327.5 268.91,325.47L267.93,321.55C267.06,318.07 270.21,314.91 273.69,315.79L277.61,316.77C279.64,317.28 281.76,316.4 282.84,314.6L284.91,311.14Z"
+        android:fillColor="#EA4335"/>
+    <path
+        android:pathData="M325.48,106.56C333.84,98.2 347.38,98.2 355.74,106.56C364.1,114.92 364.1,128.46 355.74,136.82L348.76,143.8C340.4,152.16 326.86,152.16 318.5,143.8C310.14,135.44 310.14,121.9 318.5,113.54L325.48,106.56Z"
+        android:fillColor="#FFB900"/>
+    <path
+        android:pathData="M62.52,107.52C73.44,103.01 85.95,108.22 90.46,119.14C94.97,130.06 89.76,142.57 78.84,147.08L69.71,150.85C58.79,155.36 46.28,150.15 41.77,139.23C37.26,128.31 42.47,115.8 53.39,111.29L62.52,107.52Z"
+        android:fillColor="#EA4335"/>
+  </group>
+</vector>
diff --git a/res/layout/preference_spinner.xml b/res/drawable/preference_circular_icons_plus_item_background.xml
similarity index 62%
rename from res/layout/preference_spinner.xml
rename to res/drawable/preference_circular_icons_plus_item_background.xml
index 4129303..faaa1fd 100644
--- a/res/layout/preference_spinner.xml
+++ b/res/drawable/preference_circular_icons_plus_item_background.xml
@@ -1,5 +1,5 @@
 <!--
-  ~ Copyright (C) 2023 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.
@@ -14,11 +14,12 @@
   ~ limitations under the License.
   -->
 
-<Spinner
+<shape
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/spinner"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_marginStart="24dp"
-    android:layout_marginTop="8dp"
-    android:theme="@style/Widget.PopupWindow.Settings" />
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+    android:shape="oval">
+    <size
+        android:width="@dimen/zen_mode_circular_icon_diameter"
+        android:height="@dimen/zen_mode_circular_icon_diameter" />
+    <solid android:color="?androidprv:attr/materialColorSecondaryContainer" />
+</shape>
\ No newline at end of file
diff --git a/res/layout-land/bluetooth_audio_streams_qr_code.xml b/res/layout-land/bluetooth_audio_streams_qr_code.xml
new file mode 100644
index 0000000..432d75e
--- /dev/null
+++ b/res/layout-land/bluetooth_audio_streams_qr_code.xml
@@ -0,0 +1,62 @@
+<?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.
+  -->
+
+<androidx.core.widget.NestedScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:orientation="horizontal"
+            android:padding="25dp"
+            android:gravity="center">
+
+            <TextView
+                android:id="@android:id/summary"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                android:gravity="start"
+                android:textSize="15sp"
+                android:textColor="?android:attr/textColorPrimary"/>
+
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:layout_weight="1"
+                android:gravity="center">
+
+                <ImageView
+                    android:id="@+id/qrcode_view"
+                    android:layout_width="@dimen/qrcode_size"
+                    android:layout_height="@dimen/qrcode_size"
+                    android:contentDescription="@string/qr_code_content_description"
+                    android:focusable="true" />
+
+                <TextView
+                    android:id="@+id/password"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="15sp"
+                    android:textColor="?android:attr/textColorPrimary"
+                    android:gravity="center" />
+            </LinearLayout>
+    </LinearLayout>
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/res/layout-land/mode_interstitial_layout.xml b/res/layout-land/mode_interstitial_layout.xml
new file mode 100644
index 0000000..597196c
--- /dev/null
+++ b/res/layout-land/mode_interstitial_layout.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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.
+  -->
+<LinearLayout
+    android:id="@+id/interstitial_page"
+    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="match_parent"
+    android:fitsSystemWindows="true"
+    android:transitionGroup="true"
+    android:orientation="vertical">
+
+    <Toolbar
+        android:id="@+id/action_bar"
+        style="?android:attr/actionBarStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:theme="?android:attr/actionBarTheme"
+        android:elevation="0dp"
+        android:background="@android:color/transparent"/>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingTop="12dp"
+        android:paddingBottom="24dp"
+        android:paddingHorizontal="24dp"
+        android:clipChildren="true">
+
+        <ScrollView
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            app:layout_constrainedHeight="true"
+            app:layout_constraintBottom_toTopOf="@+id/enable_mode_button"
+            app:layout_constraintEnd_toStartOf="@+id/guideline"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:paddingEnd="12dp"
+                android:paddingStart="12dp">
+
+                <TextView
+                    android:id="@+id/mode_name_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:clickable="false"
+                    android:paddingVertical="12dp"
+                    android:textSize="36sp"
+                    android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title" />
+
+                <TextView
+                    android:id="@+id/mode_name_subtitle"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:clickable="false"
+                    android:paddingBottom="12dp"
+                    android:text="@string/zen_mode_setup_page_summary"
+                    android:textSize="18sp"
+                    android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead" />
+
+            </LinearLayout>
+
+        </ScrollView>
+
+        <Button
+            android:id="@+id/enable_mode_button"
+            style="@style/ActionPrimaryButton"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toStartOf="@+id/guideline"
+            android:paddingEnd="12dp" />
+
+        <!-- guideline to have text/button side & image side take up half the page each -->
+        <androidx.constraintlayout.widget.Guideline
+            android:id="@+id/guideline"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            app:layout_constraintGuide_percent="0.5" />
+
+        <FrameLayout
+            android:id="@+id/image_frame"
+            android:layout_height="0dp"
+            android:layout_width="0dp"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/guideline"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:paddingHorizontal="12dp">
+
+            <ImageView
+                android:id="@+id/image"
+                android:clickable="false"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:adjustViewBounds="true"
+                android:scaleType="fitCenter"
+                android:layout_gravity="center" />
+
+        </FrameLayout>
+
+ />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout-land/qrcode_scanner_fragment.xml b/res/layout-land/qrcode_scanner_fragment.xml
new file mode 100644
index 0000000..daad35d
--- /dev/null
+++ b/res/layout-land/qrcode_scanner_fragment.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2022 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<androidx.core.widget.NestedScrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="horizontal"
+        android:paddingTop="@dimen/audio_streams_qrcode_scanner_fragment_padding">
+
+        <TextView
+            android:id="@android:id/summary"
+            style="@style/QrCodeScanner"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:layout_weight="1"
+            android:gravity="center">
+            <TextureView
+                android:id="@+id/preview_view"
+                android:layout_width="@dimen/audio_streams_qrcode_preview_size"
+                android:layout_height="@dimen/audio_streams_qrcode_preview_size"
+                android:contentDescription="@string/audio_streams_qr_code_scanner_label"
+                android:focusable="true" />
+            <TextView
+                android:id="@+id/error_message"
+                style="@style/TextAppearance.ErrorText"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:visibility="gone"/>
+        </LinearLayout>
+
+    </LinearLayout>
+
+</androidx.core.widget.NestedScrollView>
diff --git a/res/layout/accessibility_edit_shortcut.xml b/res/layout/accessibility_edit_shortcut.xml
deleted file mode 100644
index d0c925e..0000000
--- a/res/layout/accessibility_edit_shortcut.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2019 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License
-  -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:clipChildren="true">
-
-    <ScrollView
-        android:id="@+id/container_layout"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:scrollbarStyle="outsideOverlay">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:padding="24dp">
-
-            <include android:id="@+id/software_shortcut"
-                layout="@layout/accessibility_edit_shortcut_component"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="32dp" />
-
-            <include android:id="@+id/hardware_shortcut"
-                layout="@layout/accessibility_edit_shortcut_component" />
-
-        </LinearLayout>
-    </ScrollView>
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/accessibility_edit_shortcut_component.xml b/res/layout/accessibility_edit_shortcut_component.xml
deleted file mode 100644
index d54fff6..0000000
--- a/res/layout/accessibility_edit_shortcut_component.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2019 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License
-  -->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
-
-    <LinearLayout
-        android:id="@+id/container"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="?android:attr/selectableItemBackground"
-        android:orientation="vertical">
-
-        <CheckBox
-            android:id="@+id/checkbox"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:minHeight="48dp"
-            android:background="@null"
-            android:clickable="false"
-            android:focusable="false"
-            android:focusableInTouchMode="false"
-            android:paddingStart="12dp"
-            android:saveEnabled="false"
-            android:textColor="?android:attr/textColorAlertDialogListItem"
-            android:textSize="16sp" />
-
-        <TextView
-            android:id="@+id/summary"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingBottom="8dp"
-            android:paddingStart="44dp"
-            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
-            android:textColor="?android:attr/textColorSecondary" />
-
-    </LinearLayout>
-
-    <include layout="@layout/accessibility_lottie_animation_view"
-             android:layout_width="match_parent"
-             android:layout_height="wrap_content"
-             android:layout_marginStart="44dp"/>
-
-</LinearLayout>
diff --git a/res/layout/accessibility_edit_shortcut_magnification.xml b/res/layout/accessibility_edit_shortcut_magnification.xml
deleted file mode 100644
index 0f30a01..0000000
--- a/res/layout/accessibility_edit_shortcut_magnification.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2019 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License
-  -->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:clipChildren="true">
-
-    <ScrollView
-        android:id="@+id/container_layout"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:scrollbarStyle="outsideOverlay">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:padding="24dp">
-
-            <include
-                android:id="@+id/software_shortcut"
-                layout="@layout/accessibility_edit_shortcut_component"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="32dp" />
-
-            <include
-                android:id="@+id/hardware_shortcut"
-                layout="@layout/accessibility_edit_shortcut_component"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="32dp" />
-
-            <include
-                android:id="@+id/two_finger_triple_tap_shortcut"
-                layout="@layout/accessibility_edit_shortcut_component"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginBottom="32dp"
-                android:visibility="gone" />
-
-            <LinearLayout
-                android:id="@+id/advanced_shortcut"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:minHeight="?android:attr/listPreferredItemHeightSmall"
-                android:orientation="horizontal">
-
-                <ImageView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center"
-                    android:contentDescription="@null"
-                    android:scaleType="centerCrop"
-                    android:src="@drawable/ic_keyboard_arrow_down" />
-
-                <TextView
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:gravity="center_vertical"
-                    android:paddingStart="12dp"
-                    android:text="@string/accessibility_shortcut_edit_dialog_title_advance"
-                    android:textAppearance="?android:attr/textAppearanceListItem"
-                    android:textColor="?android:attr/colorAccent"
-                    android:textSize="16sp" />
-
-            </LinearLayout>
-
-            <include
-                android:id="@+id/triple_tap_shortcut"
-                layout="@layout/accessibility_edit_shortcut_component"
-                android:visibility="gone" />
-
-        </LinearLayout>
-    </ScrollView>
-</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/advanced_bt_entity_header.xml b/res/layout/advanced_bt_entity_header.xml
index 833f6bd..37ae843 100644
--- a/res/layout/advanced_bt_entity_header.xml
+++ b/res/layout/advanced_bt_entity_header.xml
@@ -17,6 +17,7 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/entity_header"
     style="@style/EntityHeader"
     android:layout_width="match_parent"
@@ -25,15 +26,41 @@
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:orientation="vertical">
 
-    <TextView
-        android:id="@+id/entity_header_title"
-        style="@style/TextAppearance.EntityHeaderTitle"
-        android:layout_width="wrap_content"
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="center_horizontal"
-        android:gravity="center"
-        android:ellipsize="marquee"
-        android:textDirection="locale"/>
+        android:gravity="center">
+
+        <TextView
+            android:id="@+id/entity_header_title"
+            style="@style/TextAppearance.EntityHeaderTitle"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:ellipsize="marquee"
+            android:textDirection="locale"
+            android:layout_marginStart="48dp"
+            android:layout_marginEnd="48dp"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constrainedWidth="true" />
+        <ImageButton
+            android:id="@+id/rename_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="@dimen/min_tap_target_size"
+            android:minHeight="@dimen/min_tap_target_size"
+            android:background="@android:color/transparent"
+            android:src="@drawable/ic_mode_edit"
+            android:contentDescription="@string/bluetooth_rename_button"
+            android:tint="@color/settingslib_materialColorOnSurface"
+            app:layout_constraintStart_toEndOf="@+id/entity_header_title"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            android:visibility="gone" />
+    </androidx.constraintlayout.widget.ConstraintLayout>
 
     <TextView
         android:id="@+id/entity_header_summary"
diff --git a/res/layout/advanced_bt_entity_sub.xml b/res/layout/advanced_bt_entity_sub.xml
index d29c34f..dd8e43a 100644
--- a/res/layout/advanced_bt_entity_sub.xml
+++ b/res/layout/advanced_bt_entity_sub.xml
@@ -17,21 +17,43 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="0dp"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:focusable="true"
     android:orientation="vertical">
 
-    <ImageView
-        android:id="@+id/header_icon"
-        android:layout_width="72dp"
-        android:layout_height="72dp"
-        android:layout_gravity="center_horizontal"
-        android:antialias="true"
-        android:background="@drawable/circle_outline"
-        android:padding="8dp"
-        android:scaleType="fitCenter"/>
+    <FrameLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal">
+        <ImageView
+            android:id="@+id/header_icon"
+            android:layout_width="72dp"
+            android:layout_height="72dp"
+            android:layout_gravity="center"
+            android:antialias="true"
+            android:background="@drawable/circle_outline"
+            android:padding="8dp"
+            android:scaleType="fitCenter" />
+
+        <com.google.android.material.progressindicator.CircularProgressIndicator
+            android:id="@+id/battery_ring"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:indeterminate="false"
+            app:trackColor="@android:color/transparent"
+            app:indicatorColor="@color/settingslib_materialColorPrimary"
+            app:trackThickness="4dp"
+            app:indicatorSize="76dp"
+            app:indicatorInset="0dp"
+            app:trackCornerRadius="2dp"
+            android:max="100"
+            android:visibility="gone" />
+
+    </FrameLayout>
 
     <TextView
         android:id="@+id/header_title"
diff --git a/res/layout/audio_sharing_device_item.xml b/res/layout/audio_sharing_device_item.xml
index 04ecdd7..c1720e8 100644
--- a/res/layout/audio_sharing_device_item.xml
+++ b/res/layout/audio_sharing_device_item.xml
@@ -17,6 +17,7 @@
 
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical">
@@ -27,6 +28,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="4dp"
+        android:textColor="?androidprv:attr/textColorOnAccent"
         android:background="@drawable/audio_sharing_rounded_bg_ripple"
         android:textAlignment="center" />
 
diff --git a/res/layout/audio_sharing_password_dialog.xml b/res/layout/audio_sharing_password_dialog.xml
index f1a78bc..2bdf505 100644
--- a/res/layout/audio_sharing_password_dialog.xml
+++ b/res/layout/audio_sharing_password_dialog.xml
@@ -53,8 +53,8 @@
 
             <CheckBox
                 android:id="@+id/audio_sharing_stream_password_checkbox"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
+                android:layout_width="48dp"
+                android:layout_height="48dp"
                 android:layout_marginTop="24dp"
                 android:layout_marginEnd="20dp" />
         </LinearLayout>
diff --git a/res/layout/battery_tips_card.xml b/res/layout/battery_tips_card.xml
deleted file mode 100644
index 18c326f..0000000
--- a/res/layout/battery_tips_card.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:id="@+id/battery_tips_card"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
-    android:layout_marginEnd="?android:attr/listPreferredItemPaddingEnd"
-    android:background="@drawable/battery_tips_all_rounded_bg_ripple"
-    android:orientation="vertical"
-    android:padding="20dp">
-
-    <ImageView
-        android:id="@+id/icon"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical|start"
-        android:contentDescription="@string/battery_usage_anomaly_content_description"
-        android:src="@drawable/ic_battery_tips_lightbulb" />
-
-    <TextView
-        android:id="@+id/title"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="8dp"
-        android:textAlignment="viewStart"
-        android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
-        android:textColor="@color/settingslib_materialColorOnSurface" />
-
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="8dp"
-        android:gravity="end"
-        android:orientation="horizontal">
-
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/dismiss_button"
-            style="@style/Widget.Material3.Button.TextButton"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="end|center_vertical"
-            android:layout_marginEnd="8dp"
-            android:paddingHorizontal="16dp"
-            android:text="@string/battery_tips_card_dismiss_button"
-            android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle2"
-            android:textColor="@color/color_accent_selector" />
-
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/main_button"
-            style="@style/Widget.Material3.Button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="end|center_vertical"
-            android:paddingHorizontal="16dp"
-            android:text="@string/battery_tips_card_action_button"
-            android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle2"
-            android:textColor="@color/settingslib_materialColorOnPrimary"
-            app:backgroundTint="@color/color_accent_selector" />
-    </LinearLayout>
-</LinearLayout>
\ No newline at end of file
diff --git a/res/xml/bluetooth_audio_streams_qr_code.xml b/res/layout/bluetooth_audio_streams_qr_code.xml
similarity index 61%
rename from res/xml/bluetooth_audio_streams_qr_code.xml
rename to res/layout/bluetooth_audio_streams_qr_code.xml
index 5ec5505..ab61f50 100644
--- a/res/xml/bluetooth_audio_streams_qr_code.xml
+++ b/res/layout/bluetooth_audio_streams_qr_code.xml
@@ -15,7 +15,7 @@
   ~ limitations under the License.
   -->
 
-<LinearLayout
+<androidx.core.widget.NestedScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
@@ -23,10 +23,9 @@
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:clipToPadding="false"
         android:paddingLeft="25dp"
         android:paddingRight="25dp"
-        android:gravity="center_horizontal"
+        android:gravity="center"
         android:orientation="vertical">
 
         <TextView
@@ -35,28 +34,24 @@
             android:layout_height="wrap_content"
             android:gravity="start"
             android:textSize="15sp"
-            android:textColor="?android:attr/textColorPrimary"/>
+            android:textColor="?android:attr/textColorPrimary" />
 
-        <LinearLayout
-            android:layout_width="match_parent"
+        <ImageView
+            android:id="@+id/qrcode_view"
+            android:layout_width="@dimen/qrcode_size"
+            android:layout_height="@dimen/qrcode_size"
+            android:contentDescription="@string/qr_code_content_description"
+            android:focusable="true"
+            android:paddingTop="70dp"/>
+
+        <TextView
+            android:id="@+id/password"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:gravity="center"
-            android:orientation="vertical"
-            android:paddingTop="70dp">
-
-            <ImageView
-                android:id="@+id/qrcode_view"
-                android:layout_width="@dimen/qrcode_size"
-                android:layout_height="@dimen/qrcode_size"/>
-
-            <TextView
-                android:id="@+id/password"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textSize="15sp"
-                android:textColor="?android:attr/textColorPrimary"/>
-        </LinearLayout>
+            android:textSize="15sp"
+            android:textColor="?android:attr/textColorPrimary"
+            android:gravity="center" />
 
     </LinearLayout>
 
-</LinearLayout>
\ No newline at end of file
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/res/layout/bluetooth_find_broadcast_password_dialog.xml b/res/layout/bluetooth_find_broadcast_password_dialog.xml
index 938f103..d758f61 100644
--- a/res/layout/bluetooth_find_broadcast_password_dialog.xml
+++ b/res/layout/bluetooth_find_broadcast_password_dialog.xml
@@ -26,7 +26,8 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:minHeight="48dp"
-        android:textAlignment="viewStart"/>
+        android:textAlignment="viewStart"
+        android:textColor="?android:attr/textColorPrimary"/>
     <EditText
         android:id="@+id/broadcast_edit_text"
         android:layout_width="match_parent"
@@ -34,11 +35,4 @@
         android:maxLength="16"
         android:minHeight="48dp"
         android:textAlignment="viewStart"/>
-    <TextView
-        android:id="@+id/broadcast_error_message"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="6dp"
-        style="@style/TextAppearance.ErrorText"
-        android:visibility="invisible"/>
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/bluetooth_pin_confirm.xml b/res/layout/bluetooth_pin_confirm.xml
index fb3435b..9387d5d 100644
--- a/res/layout/bluetooth_pin_confirm.xml
+++ b/res/layout/bluetooth_pin_confirm.xml
@@ -20,13 +20,13 @@
 <ScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_height="match_parent"
-    android:layout_width="match_parent">
+    android:layout_width="match_parent"
+    android:paddingTop="@dimen/bluetooth_dialog_padding_top">
 
     <LinearLayout
         android:paddingStart="16dip"
         android:layout_height="match_parent"
         android:layout_width="match_parent"
-        android:layout_marginTop="@dimen/bluetooth_dialog_padding_top"
         android:orientation="vertical">
 
         <TextView
@@ -85,7 +85,7 @@
             android:orientation="horizontal">
             <LinearLayout
                 android:layout_height="wrap_content"
-                android:layout_width="wrap_content"
+                android:layout_width="0dp"
                 android:layout_weight="1"
                 android:layout_marginEnd="10dp"
                 android:orientation="vertical">
@@ -105,7 +105,6 @@
                 android:id="@+id/phonebook_sharing_message_confirm_pin"
                 android:layout_width="wrap_content"
                 android:layout_height="48dp"
-                android:layout_weight="0"
                 android:gravity="center_vertical"
                 android:contentDescription="@string/bluetooth_pairing_phonebook_toggle_text"
                 android:switchMinWidth="48dp" />
diff --git a/res/layout/dialog_custom_body_audio_sharing.xml b/res/layout/dialog_custom_body_audio_sharing.xml
index 388a4941..ba7f643 100644
--- a/res/layout/dialog_custom_body_audio_sharing.xml
+++ b/res/layout/dialog_custom_body_audio_sharing.xml
@@ -15,57 +15,67 @@
   ~ limitations under the License.
   -->
 
-<LinearLayout
+<ScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical"
-    android:paddingHorizontal="?android:dialogPreferredPadding"
-    android:paddingBottom="?android:dialogPreferredPadding">
+    android:scrollbars="none">
 
-    <TextView
-        android:id="@+id/description_text"
-        style="@style/DeviceAudioSharingText"
+    <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:paddingBottom="24dp"
-        android:visibility="gone" />
+        android:orientation="vertical"
+        android:paddingBottom="?android:dialogPreferredPadding"
+        android:paddingHorizontal="?android:dialogPreferredPadding">
 
-    <ImageView
-        android:id="@+id/description_image"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:contentDescription="@null"
-        android:visibility="gone" />
+        <TextView
+            android:id="@+id/description_text"
+            style="@style/DeviceAudioSharingText"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:paddingBottom="24dp"
+            android:visibility="gone" />
 
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/device_btn_list"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:nestedScrollingEnabled="false"
-        android:overScrollMode="never"
-        android:visibility="gone" />
+        <ImageView
+            android:id="@+id/description_image"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:contentDescription="@null"
+            android:paddingBottom="24dp"
+            android:visibility="gone" />
 
-    <Button
-        android:id="@+id/positive_btn"
-        style="@style/SettingsLibActionButton"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:layout_marginTop="4dp"
-        android:background="@drawable/audio_sharing_rounded_bg_ripple"
-        android:visibility="gone" />
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/device_btn_list"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:nestedScrollingEnabled="false"
+            android:overScrollMode="never"
+            android:visibility="gone" />
 
-    <Button
-        android:id="@+id/negative_btn"
-        style="@style/SettingsLibActionButton"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:layout_marginTop="4dp"
-        android:background="@drawable/audio_sharing_rounded_bg_ripple"
-        android:visibility="gone" />
-</LinearLayout>
\ No newline at end of file
+        <Button
+            android:id="@+id/positive_btn"
+            style="@style/SettingsLibActionButton"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginTop="4dp"
+            android:textColor="?androidprv:attr/textColorOnAccent"
+            android:background="@drawable/audio_sharing_rounded_bg_ripple"
+            android:visibility="gone" />
+
+        <Button
+            android:id="@+id/negative_btn"
+            style="@style/SettingsLibActionButton"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginTop="4dp"
+            android:textColor="?androidprv:attr/textColorOnAccent"
+            android:background="@drawable/audio_sharing_rounded_bg_ripple"
+            android:visibility="gone" />
+    </LinearLayout>
+</ScrollView>
\ No newline at end of file
diff --git a/res/layout/enable_accessibility_service_dialog_content.xml b/res/layout/enable_accessibility_service_dialog_content.xml
deleted file mode 100644
index 96989bb..0000000
--- a/res/layout/enable_accessibility_service_dialog_content.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2013 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.
--->
-
-<ScrollView
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="fill_parent"
-    android:layout_height="fill_parent"
-    android:textDirection="locale"
-    android:scrollbarStyle="outsideOverlay"
-    android:gravity="top">
-
-    <LinearLayout
-        android:accessibilityDataSensitive="yes"
-        style="@style/AccessibilityDialog">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:gravity="center_horizontal"
-            android:paddingLeft="24dp"
-            android:paddingRight="24dp">
-
-            <ImageView
-                android:id="@+id/permissionDialog_icon"
-                style="@style/AccessibilityDialogServiceIcon" />
-
-            <TextView
-                android:id="@+id/permissionDialog_title"
-                style="@style/AccessibilityDialogTitle" />
-
-            <TextView
-                android:id="@+id/permissionDialog_description"
-                android:text="@string/accessibility_service_warning_description"
-                style="@style/AccessibilityDialogDescription" />
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:layout_marginBottom="24dp" >
-
-                <ImageView
-                    android:id="@+id/controlScreen_icon"
-                    android:src="@drawable/ic_visibility_18dp"
-                    style="@style/AccessibilityDialogIcon" />
-
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical" >
-
-                    <TextView
-                        android:id="@+id/controlScreen_title"
-                        android:text="@string/accessibility_service_screen_control_title"
-                        style="@style/AccessibilityDialogPermissionTitle" />
-
-                    <TextView
-                        android:id="@+id/controlScreen_description"
-                        android:text="@string/accessibility_service_screen_control_description"
-                        style="@style/AccessibilityDialogPermissionDescription" />
-
-                </LinearLayout>
-
-            </LinearLayout>
-
-            <LinearLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:layout_marginBottom="24dp" >
-
-                <ImageView
-                    android:id="@+id/performAction_icon"
-                    android:src="@drawable/ic_pan_tool_18dp"
-                    style="@style/AccessibilityDialogIcon" />
-
-                <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="vertical" >
-
-                    <TextView
-                        android:id="@+id/performAction_title"
-                        android:text="@string/accessibility_service_action_perform_title"
-                        style="@style/AccessibilityDialogPermissionTitle" />
-
-                    <TextView
-                        android:id="@+id/performAction_description"
-                        android:text="@string/accessibility_service_action_perform_description"
-                        style="@style/AccessibilityDialogPermissionDescription" />
-
-                </LinearLayout>
-
-            </LinearLayout>
-
-        </LinearLayout>
-
-        <!-- Buttons on bottom of dialog -->
-        <LinearLayout
-            style="@style/AccessibilityDialogButtonList">
-
-            <Space
-                style="@style/AccessibilityDialogButtonBarSpace"/>
-
-            <Button
-                android:id="@+id/permission_enable_allow_button"
-                android:text="@string/accessibility_dialog_button_allow"
-                style="@style/AccessibilityDialogButton" />
-
-            <Button
-                android:id="@+id/permission_enable_deny_button"
-                android:text="@string/accessibility_dialog_button_deny"
-                style="@style/AccessibilityDialogButton" />
-
-            <Button
-                android:id="@+id/permission_enable_uninstall_button"
-                android:text="@string/uninstall_text"
-                android:visibility="gone"
-                style="@style/AccessibilityDialogButton" />
-        </LinearLayout>
-    </LinearLayout>
-
-</ScrollView>
diff --git a/res/layout/general_bt_entity_header.xml b/res/layout/general_bt_entity_header.xml
new file mode 100644
index 0000000..ec15b12
--- /dev/null
+++ b/res/layout/general_bt_entity_header.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/entity_header"
+    style="@style/EntityHeader"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_centerHorizontal="true"
+    android:gravity="center_horizontal"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/bt_header_icon"
+        android:importantForAccessibility="no"
+        style="@style/SettingsLibEntityHeaderIcon"/>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginTop="8dp"
+        android:gravity="center">
+        <TextView
+            android:id="@+id/bt_header_device_name"
+            style="@style/TextAppearance.EntityHeaderTitle"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:gravity="center"
+            android:ellipsize="marquee"
+            android:textDirection="locale"
+            android:layout_marginStart="48dp"
+            android:layout_marginEnd="48dp"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constrainedWidth="true" />
+        <ImageButton
+            android:id="@+id/rename_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="@dimen/min_tap_target_size"
+            android:minHeight="@dimen/min_tap_target_size"
+            android:background="@android:color/transparent"
+            android:src="@drawable/ic_mode_edit"
+            android:contentDescription="@string/bluetooth_rename_button"
+            android:tint="@color/settingslib_materialColorOnSurface"
+            app:layout_constraintStart_toEndOf="@+id/bt_header_device_name"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent" />
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+    <TextView
+        android:id="@+id/bt_header_connection_summary"
+        style="@style/TextAppearance.EntityHeaderSummary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dp"
+        android:singleLine="false"
+        android:textAlignment="center"/>
+</LinearLayout>
diff --git a/res/layout/le_audio_bt_entity_header.xml b/res/layout/le_audio_bt_entity_header.xml
index 460ae69..81911e9 100644
--- a/res/layout/le_audio_bt_entity_header.xml
+++ b/res/layout/le_audio_bt_entity_header.xml
@@ -17,6 +17,7 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/entity_header"
     style="@style/EntityHeader"
     android:layout_width="match_parent"
@@ -27,15 +28,42 @@
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:orientation="vertical">
 
-    <TextView
-        android:id="@+id/entity_header_title"
-        style="@style/TextAppearance.EntityHeaderTitle"
-        android:layout_width="wrap_content"
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="center_horizontal"
-        android:gravity="center"
-        android:ellipsize="marquee"
-        android:textDirection="locale"/>
+        android:gravity="center">
+        <TextView
+            android:id="@+id/entity_header_title"
+            style="@style/TextAppearance.EntityHeaderTitle"
+            android:layout_height="wrap_content"
+            android:layout_width="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:gravity="center"
+            android:ellipsize="marquee"
+            android:textDirection="locale"
+            android:layout_marginStart="48dp"
+            android:layout_marginEnd="48dp"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constrainedWidth="true" />
+        <ImageButton
+            android:id="@+id/rename_button"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:minWidth="@dimen/min_tap_target_size"
+            android:minHeight="@dimen/min_tap_target_size"
+            android:background="@android:color/transparent"
+            android:src="@drawable/ic_mode_edit"
+            android:contentDescription="@string/bluetooth_rename_button"
+            android:tint="@color/settingslib_materialColorOnSurface"
+            app:layout_constraintStart_toEndOf="@+id/entity_header_title"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            android:visibility="gone" />
+    </androidx.constraintlayout.widget.ConstraintLayout>
 
     <TextView
         android:id="@+id/entity_header_summary"
diff --git a/res/layout/mode_interstitial_layout.xml b/res/layout/mode_interstitial_layout.xml
new file mode 100644
index 0000000..2deaf9f
--- /dev/null
+++ b/res/layout/mode_interstitial_layout.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ 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.
+  -->
+<LinearLayout
+    android:id="@+id/interstitial_page"
+    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="match_parent"
+    android:fitsSystemWindows="true"
+    android:transitionGroup="true"
+    android:orientation="vertical">
+
+    <Toolbar
+        android:id="@+id/action_bar"
+        style="?android:attr/actionBarStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:theme="?android:attr/actionBarTheme"
+        android:elevation="0dp"
+        android:background="@android:color/transparent" />
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingTop="12dp"
+        android:paddingBottom="64dp"
+        android:paddingLeft="24dp"
+        android:paddingRight="24dp"
+        android:orientation="vertical">
+
+        <!-- image goes here -->
+        <FrameLayout
+            android:id="@+id/image_frame"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            app:layout_constraintBottom_toTopOf="@+id/mode_name_title"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <ImageView
+                android:id="@+id/image"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:adjustViewBounds="true"
+                android:clickable="false"
+                android:scaleType="fitCenter"
+                android:layout_gravity="center" />
+
+        </FrameLayout>
+
+        <TextView
+            android:id="@+id/mode_name_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:clickable="false"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
+            app:layout_constraintBottom_toTopOf="@+id/mode_name_subtitle"
+            android:textSize="36sp"
+            android:paddingVertical="12dp" />
+
+        <TextView
+            android:id="@+id/mode_name_subtitle"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:clickable="false"
+            android:text="@string/zen_mode_setup_page_summary"
+            android:textSize="18sp"
+            android:paddingBottom="18dp"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1"
+            app:layout_constraintBottom_toTopOf="@+id/enable_mode_button" />
+
+        <Button
+            android:id="@+id/enable_mode_button"
+            style="@style/ActionPrimaryButton"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingVertical="12dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintVertical_bias="1" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/modes_activation_button.xml b/res/layout/modes_activation_button.xml
index e8ed824..1441844 100644
--- a/res/layout/modes_activation_button.xml
+++ b/res/layout/modes_activation_button.xml
@@ -18,7 +18,8 @@
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    android:paddingVertical="8dp">
 
     <Button
         android:id="@+id/activate_mode"
diff --git a/res/layout/modes_edit_done_button.xml b/res/layout/modes_edit_done_button.xml
new file mode 100644
index 0000000..dc1f54d
--- /dev/null
+++ b/res/layout/modes_edit_done_button.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <Button
+        android:id="@+id/done"
+        android:text="@string/done"
+        style="@style/ActionPrimaryButton"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="end"
+        android:layout_marginEnd="20dp"
+        />
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/modes_edit_name.xml b/res/layout/modes_edit_name.xml
new file mode 100644
index 0000000..0b086c7
--- /dev/null
+++ b/res/layout/modes_edit_name.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+    <EditText
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:id="@android:id/edit"
+        android:maxLines="1"
+        android:inputType="text|textCapSentences"
+        android:imeOptions="actionDone"
+        android:selectAllOnFocus="true"
+        android:hint="@string/zen_mode_edit_name_hint" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/modes_icon_list.xml b/res/layout/modes_icon_list.xml
index 87e647e..f6f2202 100644
--- a/res/layout/modes_icon_list.xml
+++ b/res/layout/modes_icon_list.xml
@@ -24,7 +24,7 @@
 
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/icon_list"
-        android:layout_width="0dp"
+        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:clipToPadding="true"
         android:nestedScrollingEnabled="false"
diff --git a/res/layout/modes_icon_list_item.xml b/res/layout/modes_icon_list_item.xml
index aa45de3..df511ca 100644
--- a/res/layout/modes_icon_list_item.xml
+++ b/res/layout/modes_icon_list_item.xml
@@ -17,15 +17,14 @@
 
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
+    android:layout_width="@dimen/zen_mode_icon_list_item_size"
     android:layout_height="@dimen/zen_mode_icon_list_item_size"
     android:clickable="true">
-    <!-- width is match_parent to distribute remaining horizontal space -->
 
     <ImageView
         android:id="@+id/icon_image_view"
-        android:layout_width="@dimen/zen_mode_icon_list_circle_diameter"
-        android:layout_height="@dimen/zen_mode_icon_list_circle_diameter"
+        android:layout_width="@dimen/zen_mode_icon_list_item_circle_diameter"
+        android:layout_height="@dimen/zen_mode_icon_list_item_circle_diameter"
         android:importantForAccessibility="no"
         android:layout_gravity="center" />
 </FrameLayout>
diff --git a/res/layout/modes_set_schedule_layout.xml b/res/layout/modes_set_schedule_layout.xml
index 5758cfb..d53e2e4 100644
--- a/res/layout/modes_set_schedule_layout.xml
+++ b/res/layout/modes_set_schedule_layout.xml
@@ -30,63 +30,80 @@
     android:paddingBottom="24dp">
 
     <!-- Start time & end time row -->
-    <LinearLayout
+    <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:gravity="fill_horizontal"
         android:orientation="horizontal">
 
-        <!-- Start time: title (non-clickable preference), time setter -->
-        <LinearLayout
-            android:layout_width="0dp"
+        <!-- Start time title (non-clickable preference) -->
+        <TextView
+            android:id="@+id/start_time_label"
+            android:clickable="false"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:orientation="vertical">
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintEnd_toStartOf="@+id/guideline"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constrainedWidth="true"
+            app:layout_constraintHorizontal_bias="0"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
+            android:text="@string/zen_mode_start_time"
+            android:importantForAccessibility="no" />
 
-            <TextView
-                android:id="@+id/start_time_label"
-                android:clickable="false"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
-                android:text="@string/zen_mode_start_time" />
-
-            <TextView
-                android:id="@+id/start_time"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
-                android:textColor="?android:attr/colorAccent"
-                android:textSize="40sp" />
-
-        </LinearLayout>
-
-        <!-- End time: title (non-clickable preference), time setter -->
-        <LinearLayout
-            android:layout_width="0dp"
+        <!-- Start time display + setter -->
+        <TextView
+            android:id="@+id/start_time"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_weight="1"
-            android:orientation="vertical">
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/start_time_label"
+            app:layout_constraintEnd_toStartOf="@+id/guideline"
+            app:layout_constrainedWidth="true"
+            app:layout_constraintHorizontal_bias="0"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
+            android:textColor="?android:attr/colorAccent"
+            android:textSize="40sp" />
 
-            <TextView
-                android:id="@+id/end_time_label"
-                android:clickable="false"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
-                android:text="@string/zen_mode_end_time" />
+        <!-- Center boundary to make sure each only expands to take up at most half the space -->
+        <androidx.constraintlayout.widget.Guideline
+            android:id="@+id/guideline"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:orientation="vertical"
+            app:layout_constraintGuide_percent="0.5" />
 
-            <TextView
-                android:id="@+id/end_time"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
-                android:textColor="?android:attr/colorAccent"
-                android:textSize="40sp" />
+        <!-- End time title (non-clickable preference), left-aligned to edge of time display -->
+        <TextView
+            android:id="@+id/end_time_label"
+            android:clickable="false"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintStart_toStartOf="@+id/end_time"
+            app:layout_constraintStart_toEndOf="@+id/guideline"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constrainedWidth="true"
+            app:layout_constraintHorizontal_bias="0"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Medium"
+            android:text="@string/zen_mode_end_time"
+            android:importantForAccessibility="no" />
 
-        </LinearLayout>
+        <!-- End time setter; right-aligned -->
+        <TextView
+            android:id="@+id/end_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:layout_constraintTop_toBottomOf="@+id/end_time_label"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@+id/guideline"
+            app:layout_constrainedWidth="true"
+            app:layout_constraintHorizontal_bias="1"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Title"
+            android:textColor="?android:attr/colorAccent"
+            android:textSize="40sp" />
 
-    </LinearLayout>
+    </androidx.constraintlayout.widget.ConstraintLayout>
 
     <!-- Schedule duration display row -->
     <LinearLayout
diff --git a/res/layout/pointer_icon_stroke_style_layout.xml b/res/layout/pointer_icon_stroke_style_layout.xml
new file mode 100644
index 0000000..acf919a
--- /dev/null
+++ b/res/layout/pointer_icon_stroke_style_layout.xml
@@ -0,0 +1,60 @@
+<?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.
+  -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:orientation="vertical"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart">
+
+    <TextView
+        android:id="@+id/title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/pointer_stroke_style_padding"
+        android:text="@string/pointer_stroke_style"
+        android:textAlignment="viewStart"
+        android:textAppearance="?android:attr/textAppearanceListItem" />
+
+    <RadioGroup
+        android:id="@+id/button_holder"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:layout_marginTop="@dimen/pointer_stroke_style_padding"
+        android:layout_marginBottom="@dimen/pointer_stroke_style_padding"
+        android:padding="@dimen/pointer_stroke_style_padding">
+        <RadioButton android:id="@+id/stroke_style_white"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/pointer_stroke_style_padding"
+            android:text="@string/pointer_stroke_style_name_white"/>
+        <RadioButton android:id="@+id/stroke_style_black"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/pointer_stroke_style_padding"
+            android:text="@string/pointer_stroke_style_name_black"/>
+        <RadioButton android:id="@+id/stroke_style_none"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/pointer_stroke_style_padding"
+            android:text="@string/pointer_stroke_style_name_none"/>
+    </RadioGroup>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/preference_background.xml b/res/layout/preference_background.xml
index 129076a..51718b8 100644
--- a/res/layout/preference_background.xml
+++ b/res/layout/preference_background.xml
@@ -17,6 +17,7 @@
   -->
 
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_height="wrap_content"
     android:layout_width="match_parent"
@@ -64,7 +65,7 @@
                 android:layout_height="wrap_content"
                 android:singleLine="true"
                 android:textAppearance="?android:attr/textAppearanceListItem"
-                android:textColor="?android:attr/textColorPrimary"
+                android:textColor="?androidprv:attr/materialColorOnPrimaryContainer"
                 android:ellipsize="marquee"
                 android:fadingEdge="horizontal"
                 android:hyphenationFrequency="normalFast"
@@ -77,7 +78,7 @@
                 android:layout_alignStart="@android:id/title"
                 android:layout_alignLeft="@android:id/title"
                 android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorSecondary"
+                android:textColor="?androidprv:attr/materialColorOnPrimaryContainer"
                 android:hyphenationFrequency="normalFast"
                 android:lineBreakWordStyle="phrase"
                 android:maxLines="4"
diff --git a/res/layout/preference_circular_icons.xml b/res/layout/preference_circular_icons.xml
new file mode 100644
index 0000000..e1d7cfe
--- /dev/null
+++ b/res/layout/preference_circular_icons.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<!-- Based off preference_two_target.xml, with the added LinearLayout for the icons. -->
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="?android:attr/listPreferredItemHeightSmall"
+    android:gravity="center_vertical"
+    android:background="?android:attr/selectableItemBackground"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:clipToPadding="false">
+
+    <include layout="@layout/settingslib_icon_frame"/>
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:paddingTop="16dp"
+        android:paddingBottom="16dp">
+
+        <TextView
+            android:id="@android:id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:maxLines="2"
+            android:hyphenationFrequency="normalFast"
+            android:lineBreakWordStyle="phrase"
+            android:textAppearance="?android:attr/textAppearanceListItem"
+            android:ellipsize="marquee"/>
+
+        <TextView
+            android:id="@android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@android:id/title"
+            android:layout_alignStart="@android:id/title"
+            android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+            android:textColor="?android:attr/textColorSecondary"
+            android:hyphenationFrequency="normalFast"
+            android:lineBreakWordStyle="phrase"
+            android:maxLines="10"/>
+
+        <!-- Circular icons (32dp) will be ImageViews under this container -->
+        <com.android.settings.notification.modes.CircularIconsView
+            android:id="@+id/circles_container"
+            android:importantForAccessibility="noHideDescendants"
+            android:orientation="horizontal"
+            android:gravity="center_vertical"
+            android:layout_width="match_parent"
+            android:layout_height="48dp"
+            android:layout_below="@android:id/summary"
+            android:layout_alignStart="@android:id/title" />
+
+    </RelativeLayout>
+
+    <include layout="@layout/preference_two_target_divider" />
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout
+        android:id="@android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="@dimen/two_target_min_width"
+        android:gravity="center"
+        android:orientation="vertical" />
+
+</LinearLayout>
diff --git a/res/layout/preference_circular_icons_item.xml b/res/layout/preference_circular_icons_item.xml
new file mode 100644
index 0000000..e5656ce
--- /dev/null
+++ b/res/layout/preference_circular_icons_item.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<ImageView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="@dimen/zen_mode_circular_icon_diameter"
+    android:layout_height="@dimen/zen_mode_circular_icon_diameter"
+    android:layout_marginTop="@dimen/zen_mode_circular_icon_margin_vertical"
+    android:layout_marginBottom="@dimen/zen_mode_circular_icon_margin_vertical"
+    android:layout_marginEnd="@dimen/zen_mode_circular_icon_margin_between" />
\ No newline at end of file
diff --git a/res/layout/preference_circular_icons_plus_item.xml b/res/layout/preference_circular_icons_plus_item.xml
new file mode 100644
index 0000000..9882086
--- /dev/null
+++ b/res/layout/preference_circular_icons_plus_item.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  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.
+  -->
+
+<TextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+    android:layout_width="@dimen/zen_mode_circular_icon_diameter"
+    android:layout_height="@dimen/zen_mode_circular_icon_diameter"
+    android:layout_marginTop="@dimen/zen_mode_circular_icon_margin_vertical"
+    android:layout_marginBottom="@dimen/zen_mode_circular_icon_margin_vertical"
+    android:gravity="center"
+    android:padding="4dp"
+    android:drawablePadding="0dp"
+    android:background="@drawable/preference_circular_icons_plus_item_background"
+    android:textColor="?androidprv:attr/materialColorOnSecondaryContainer"
+    android:maxLines="1"
+    android:autoSizeTextType="uniform"
+    android:autoSizeMinTextSize="6sp" />
\ No newline at end of file
diff --git a/res/layout/preference_widget_arrow.xml b/res/layout/preference_widget_arrow.xml
index e7a3f82..f36f693 100644
--- a/res/layout/preference_widget_arrow.xml
+++ b/res/layout/preference_widget_arrow.xml
@@ -17,10 +17,11 @@
 
 <ImageView
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_gravity="center_vertical"
     android:contentDescription="@null"
     android:scaleType="center"
-    android:tint="?android:attr/textColorPrimary"
+    android:tint="?androidprv:attr/materialColorOnPrimaryContainer"
     android:src="@drawable/ic_arrow_forward" />
\ No newline at end of file
diff --git a/res/layout/private_space_education_screen.xml b/res/layout/private_space_education_screen.xml
index 4df92b7..3afe7f9 100644
--- a/res/layout/private_space_education_screen.xml
+++ b/res/layout/private_space_education_screen.xml
@@ -53,7 +53,7 @@
                 android:src="@drawable/counter_1_24dp" />
             <TextView
                 style="@style/PrivateSpaceBulletPointTextFontStyle"
-                android:layout_toRightOf="@+id/lockIcon"
+                android:layout_toEndOf="@+id/lockIcon"
                 android:text="@string/private_space_separate_account_text"/>
         </RelativeLayout>
         <RelativeLayout
@@ -64,7 +64,7 @@
                 android:src="@drawable/counter_2_24dp" />
             <TextView
                 style="@style/PrivateSpaceBulletPointTextFontStyle"
-                android:layout_toRightOf="@+id/bellIcon"
+                android:layout_toEndOf="@+id/bellIcon"
                 android:text="@string/private_space_protected_lock_text"/>
         </RelativeLayout>
         <RelativeLayout
@@ -77,7 +77,7 @@
                 android:src="@drawable/counter_3_24dp" />
             <TextView
                 style="@style/PrivateSpaceBulletPointTextFontStyle"
-                android:layout_toRightOf="@+id/appsIcon"
+                android:layout_toEndOf="@+id/appsIcon"
                 android:text="@string/private_space_install_apps_text"/>
         </RelativeLayout>
         <TextView
@@ -94,7 +94,7 @@
                 android:src="@drawable/ic_private_space_edu_icon" />
             <TextView
                 style="@style/PrivateSpaceBulletPointTextFontStyle"
-                android:layout_toRightOf="@+id/eduIcon"
+                android:layout_toEndOf="@+id/eduIcon"
                 android:text="@string/private_space_apps_stopped_text"/>
         </RelativeLayout>
         <Space
@@ -112,13 +112,13 @@
                 android:id="@+id/info"
                 style="@style/PrivateSpaceBulletPointTextFontStyle"
                 android:textSize = "14sp"
-                android:layout_toRightOf="@+id/infoIcon"
+                android:layout_toEndOf="@+id/infoIcon"
                 android:text="@string/private_space_apps_permission_text"/>
             <TextView
                 android:id="@+id/learn_more"
                 style="@style/PrivateSpaceSetupSubHeaderStyle"
                 android:layout_below="@id/info"
-                android:layout_alignLeft="@+id/info"
+                android:layout_alignStart="@+id/info"
                 android:paddingTop="24dp"
                 android:paddingLeft="16dp"
                 android:text="@string/private_space_learn_more_text"/>
diff --git a/res/layout/qrcode_scanner_fragment.xml b/res/layout/qrcode_scanner_fragment.xml
index 4f748c5..1526cf8 100644
--- a/res/layout/qrcode_scanner_fragment.xml
+++ b/res/layout/qrcode_scanner_fragment.xml
@@ -15,67 +15,41 @@
      limitations under the License.
 -->
 
-<LinearLayout
+<androidx.core.widget.NestedScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:orientation="vertical">
+    android:layout_height="wrap_content">
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_weight="3"
-        android:layout_marginBottom="55dp">
-        <LinearLayout
+        android:orientation="vertical"
+        android:gravity="center"
+        android:layout_margin="20dp">
+
+        <TextView
+            android:id="@android:id/summary"
+            style="@style/QrCodeScanner"
+            android:gravity="center"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:paddingStart="40dp"
-            android:paddingEnd="40dp"
-            android:layout_gravity="bottom"
-            android:gravity="center"
-            android:orientation="vertical">
-            <TextView
-                android:id="@android:id/summary"
-                style="@style/QrCodeScanner"
-                android:gravity="center"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="20dp"/>
-        </LinearLayout>
-    </LinearLayout>
+            android:layout_margin="40dp" />
 
-    <LinearLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_weight="7"
-        android:orientation="vertical">
-
-        <FrameLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="top"
-            android:gravity="center"
-            android:clipChildren="true">
-            <TextureView
-                android:id="@+id/preview_view"
-                android:layout_marginStart="@dimen/qrcode_preview_margin"
-                android:layout_marginEnd="@dimen/qrcode_preview_margin"
-                android:layout_width="match_parent"
-                android:layout_height="@dimen/qrcode_preview_size"/>
-        </FrameLayout>
+        <TextureView
+            android:id="@+id/preview_view"
+            android:layout_width="@dimen/audio_streams_qrcode_preview_size"
+            android:layout_height="@dimen/audio_streams_qrcode_preview_size"
+            android:contentDescription="@string/audio_streams_qr_code_scanner_label"
+            android:focusable="true" />
 
         <TextView
             android:id="@+id/error_message"
             style="@style/TextAppearance.ErrorText"
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginTop="16dp"
             android:gravity="center"
-            android:layout_gravity="center"
-            android:visibility="invisible"/>
-
+            android:visibility="gone"/>
     </LinearLayout>
 
-
-</LinearLayout>
+</androidx.core.widget.NestedScrollView>
 
diff --git a/res/layout/search_bar_unified_version.xml b/res/layout/search_bar_unified_version.xml
index a8ad6fc..e9b3c10 100644
--- a/res/layout/search_bar_unified_version.xml
+++ b/res/layout/search_bar_unified_version.xml
@@ -30,6 +30,7 @@
         android:orientation="horizontal"
         android:paddingStart="24dp"
         android:paddingEnd="24dp"
+        android:focusedByDefault="true"
         android:background="@drawable/search_bar_selected_background">
 
         <ImageView
@@ -43,8 +44,8 @@
             style="@style/TextAppearance.SearchBar"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:paddingStart="8dp"
+            android:layout_marginStart="8dp"
             android:paddingEnd="8dp"
-            android:text="@string/search_settings"/>
+            android:text="@string/homepage_search"/>
     </LinearLayout>
 </com.google.android.material.card.MaterialCardView>
diff --git a/res/layout/settings_homepage_container_v2.xml b/res/layout/settings_homepage_container_v2.xml
index 5ae5fbd..a67b743 100644
--- a/res/layout/settings_homepage_container_v2.xml
+++ b/res/layout/settings_homepage_container_v2.xml
@@ -70,7 +70,7 @@
             android:layout_height="wrap_content"
             android:orientation="horizontal"
             android:paddingTop="8dp"
-            android:paddingBottom="24dp"
+            android:paddingBottom="16dp"
             android:paddingStart="?android:attr/listPreferredItemPaddingStart"
             android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
 
diff --git a/res/layout/zen_mode_type_item.xml b/res/layout/zen_mode_type_item.xml
new file mode 100644
index 0000000..841ca00
--- /dev/null
+++ b/res/layout/zen_mode_type_item.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="?android:attr/selectableItemBackground"
+    android:gravity="center_vertical"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:paddingTop="8dp"
+    android:paddingBottom="8dp"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
+
+    <ImageView
+        android:id="@+id/icon"
+        android:layout_width="24dp"
+        android:layout_height="24dp"
+        android:layout_gravity="center" />
+
+    <RelativeLayout
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:paddingStart="16dp"
+        android:layout_weight="1">
+
+        <TextView
+            android:id="@+id/title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:ellipsize="marquee"
+            android:fadingEdge="horizontal"
+            android:singleLine="true"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1"
+            android:textSize="16sp" />
+
+        <TextView
+            android:id="@+id/subtitle"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignStart="@id/title"
+            android:layout_below="@id/title"
+            android:maxLines="2"
+            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead"
+            android:textColor="?android:attr/textColorSecondary"
+            android:textSize="14sp" />
+
+    </RelativeLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/navigation/privatespace_main_context_nav.xml b/res/navigation/privatespace_main_context_nav.xml
index 3eb57d3..e20eaff 100644
--- a/res/navigation/privatespace_main_context_nav.xml
+++ b/res/navigation/privatespace_main_context_nav.xml
@@ -35,6 +35,9 @@
         <action
             android:id="@+id/action_set_lock_fragment"
             app:destination="@id/ps_profile_lock_fragment"/>
+        <action
+            android:id="@+id/action_create_profile_error_restrict"
+            app:destination="@id/ps_profile_error_restricted_fragment"/>
     </fragment>
     <fragment android:id="@+id/ps_profile_error_fragment"
               android:name="com.android.settings.privatespace.PrivateProfileCreationError"
@@ -67,6 +70,9 @@
             android:id="@+id/action_lock_success_fragment"
             app:destination="@id/ps_pre_finish_delay_fragment"/>
     </fragment>
+    <fragment android:id="@+id/ps_profile_error_restricted_fragment"
+              android:name="com.android.settings.privatespace.PrivateProfileCreationRestrictedError"
+              android:label="fragment_ps_error_exit"/>
     <action android:id="@+id/action_pre_finish_delay_fragment"
             app:destination="@id/ps_pre_finish_delay_fragment"/>
     <action android:id="@+id/action_advance_login_error"
diff --git a/res/raw/accessibility_shortcut_type_triple_tap.json b/res/raw/accessibility_shortcut_type_triple_tap.json
deleted file mode 100644
index 870e671..0000000
--- a/res/raw/accessibility_shortcut_type_triple_tap.json
+++ /dev/null
@@ -1,1959 +0,0 @@
-{
-  "v": "5.6.5",
-  "fr": 60,
-  "ip": 0,
-  "op": 180,
-  "w": 412,
-  "h": 300,
-  "nm": "Triple_Tap_Screen",
-  "ddd": 0,
-  "assets": [
-    {
-      "id": "comp_0",
-      "layers": [
-        {
-          "ddd": 0,
-          "ind": 1,
-          "ty": 4,
-          "nm": ".white",
-          "cl": "white",
-          "hd": true,
-          "sr": 1,
-          "ks": {
-            "o": {
-              "a": 0,
-              "k": 100,
-              "ix": 11
-            },
-            "r": {
-              "a": 0,
-              "k": 0,
-              "ix": 10
-            },
-            "p": {
-              "a": 0,
-              "k": [
-                206,
-                150,
-                0
-              ],
-              "ix": 2
-            },
-            "a": {
-              "a": 0,
-              "k": [
-                0,
-                0,
-                0
-              ],
-              "ix": 1
-            },
-            "s": {
-              "a": 0,
-              "k": [
-                100,
-                100,
-                100
-              ],
-              "ix": 6
-            }
-          },
-          "ao": 0,
-          "shapes": [
-            {
-              "ty": "gr",
-              "it": [
-                {
-                  "ind": 0,
-                  "ty": "sh",
-                  "ix": 1,
-                  "ks": {
-                    "a": 0,
-                    "k": {
-                      "i": [
-                        [
-                          15.4,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          15.4
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          -15.4,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          -15.4
-                        ],
-                        [
-                          0,
-                          0
-                        ]
-                      ],
-                      "o": [
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          -15.4,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          -15.4
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          15.4,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          15.4
-                        ]
-                      ],
-                      "v": [
-                        [
-                          178,
-                          150
-                        ],
-                        [
-                          -178,
-                          150
-                        ],
-                        [
-                          -206,
-                          122
-                        ],
-                        [
-                          -206,
-                          -122
-                        ],
-                        [
-                          -178,
-                          -150
-                        ],
-                        [
-                          178,
-                          -150
-                        ],
-                        [
-                          206,
-                          -122
-                        ],
-                        [
-                          206,
-                          122
-                        ]
-                      ],
-                      "c": true
-                    },
-                    "ix": 2
-                  },
-                  "nm": "Path 1",
-                  "mn": "ADBE Vector Shape - Group",
-                  "hd": false
-                },
-                {
-                  "ty": "fl",
-                  "c": {
-                    "a": 0,
-                    "k": [
-                      1,
-                      1,
-                      1,
-                      1
-                    ],
-                    "ix": 4
-                  },
-                  "o": {
-                    "a": 0,
-                    "k": 100,
-                    "ix": 5
-                  },
-                  "r": 1,
-                  "bm": 0,
-                  "nm": "Fill 1",
-                  "mn": "ADBE Vector Graphic - Fill",
-                  "hd": false
-                },
-                {
-                  "ty": "tr",
-                  "p": {
-                    "a": 0,
-                    "k": [
-                      0,
-                      0
-                    ],
-                    "ix": 2
-                  },
-                  "a": {
-                    "a": 0,
-                    "k": [
-                      0,
-                      0
-                    ],
-                    "ix": 1
-                  },
-                  "s": {
-                    "a": 0,
-                    "k": [
-                      100,
-                      100
-                    ],
-                    "ix": 3
-                  },
-                  "r": {
-                    "a": 0,
-                    "k": 0,
-                    "ix": 6
-                  },
-                  "o": {
-                    "a": 0,
-                    "k": 100,
-                    "ix": 7
-                  },
-                  "sk": {
-                    "a": 0,
-                    "k": 0,
-                    "ix": 4
-                  },
-                  "sa": {
-                    "a": 0,
-                    "k": 0,
-                    "ix": 5
-                  },
-                  "nm": "Transform"
-                }
-              ],
-              "nm": "Group 1",
-              "np": 2,
-              "cix": 2,
-              "bm": 0,
-              "ix": 1,
-              "mn": "ADBE Vector Group",
-              "hd": false
-            }
-          ],
-          "ip": 0,
-          "op": 1800,
-          "st": 0,
-          "bm": 0
-        }
-      ]
-    }
-  ],
-  "layers": [
-    {
-      "ddd": 0,
-      "ind": 1,
-      "ty": 4,
-      "nm": ".grey200",
-      "cl": "grey200",
-      "sr": 1,
-      "ks": {
-        "o": {
-          "a": 0,
-          "k": 100,
-          "ix": 11
-        },
-        "r": {
-          "a": 0,
-          "k": 0,
-          "ix": 10
-        },
-        "p": {
-          "a": 0,
-          "k": [
-            206,
-            150,
-            0
-          ],
-          "ix": 2
-        },
-        "a": {
-          "a": 0,
-          "k": [
-            1.35,
-            0,
-            0
-          ],
-          "ix": 1
-        },
-        "s": {
-          "a": 0,
-          "k": [
-            100,
-            100,
-            100
-          ],
-          "ix": 6
-        }
-      },
-      "ao": 0,
-      "shapes": [
-        {
-          "ty": "gr",
-          "it": [
-            {
-              "ind": 0,
-              "ty": "sh",
-              "ix": 1,
-              "ks": {
-                "a": 0,
-                "k": {
-                  "i": [
-                    [
-                      0,
-                      0
-                    ],
-                    [
-                      0,
-                      -73.4
-                    ],
-                    [
-                      -73.4,
-                      0
-                    ],
-                    [
-                      0,
-                      73.4
-                    ],
-                    [
-                      73.4,
-                      0
-                    ]
-                  ],
-                  "o": [
-                    [
-                      -73.4,
-                      0
-                    ],
-                    [
-                      0,
-                      73.4
-                    ],
-                    [
-                      73.4,
-                      0
-                    ],
-                    [
-                      0,
-                      -73.4
-                    ],
-                    [
-                      0,
-                      0
-                    ]
-                  ],
-                  "v": [
-                    [
-                      1.4,
-                      -132.9
-                    ],
-                    [
-                      -131.6,
-                      0
-                    ],
-                    [
-                      1.3,
-                      132.9
-                    ],
-                    [
-                      134.3,
-                      0
-                    ],
-                    [
-                      1.4,
-                      -132.9
-                    ]
-                  ],
-                  "c": true
-                },
-                "ix": 2
-              },
-              "nm": "Path 1",
-              "mn": "ADBE Vector Shape - Group",
-              "hd": false
-            },
-            {
-              "ind": 1,
-              "ty": "sh",
-              "ix": 2,
-              "ks": {
-                "a": 0,
-                "k": {
-                  "i": [
-                    [
-                      0,
-                      0
-                    ],
-                    [
-                      -24.7,
-                      -24.8
-                    ],
-                    [
-                      0,
-                      -35
-                    ],
-                    [
-                      24.8,
-                      -24.7
-                    ],
-                    [
-                      35,
-                      0
-                    ],
-                    [
-                      24.7,
-                      24.8
-                    ],
-                    [
-                      0,
-                      35
-                    ],
-                    [
-                      -24.8,
-                      24.7
-                    ],
-                    [
-                      -35,
-                      0
-                    ]
-                  ],
-                  "o": [
-                    [
-                      35,
-                      0
-                    ],
-                    [
-                      24.7,
-                      24.7
-                    ],
-                    [
-                      0,
-                      35
-                    ],
-                    [
-                      -24.7,
-                      24.7
-                    ],
-                    [
-                      -35,
-                      0
-                    ],
-                    [
-                      -24.7,
-                      -24.8
-                    ],
-                    [
-                      0,
-                      -35
-                    ],
-                    [
-                      24.7,
-                      -24.7
-                    ],
-                    [
-                      0,
-                      0
-                    ]
-                  ],
-                  "v": [
-                    [
-                      1.4,
-                      -130.9
-                    ],
-                    [
-                      94,
-                      -92.5
-                    ],
-                    [
-                      132.4,
-                      0.1
-                    ],
-                    [
-                      94,
-                      92.7
-                    ],
-                    [
-                      1.4,
-                      131.1
-                    ],
-                    [
-                      -91.2,
-                      92.7
-                    ],
-                    [
-                      -129.6,
-                      0
-                    ],
-                    [
-                      -91.2,
-                      -92.6
-                    ],
-                    [
-                      1.4,
-                      -130.9
-                    ]
-                  ],
-                  "c": false
-                },
-                "ix": 2
-              },
-              "nm": "Path 2",
-              "mn": "ADBE Vector Shape - Group",
-              "hd": false
-            },
-            {
-              "ty": "fl",
-              "c": {
-                "a": 0,
-                "k": [
-                  0.909803926945,
-                  0.917647063732,
-                  0.929411768913,
-                  1
-                ],
-                "ix": 4
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 5
-              },
-              "r": 1,
-              "bm": 0,
-              "nm": "Fill 1",
-              "mn": "ADBE Vector Graphic - Fill",
-              "hd": false
-            },
-            {
-              "ty": "tr",
-              "p": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 2
-              },
-              "a": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 1
-              },
-              "s": {
-                "a": 0,
-                "k": [
-                  100,
-                  100
-                ],
-                "ix": 3
-              },
-              "r": {
-                "a": 0,
-                "k": 0,
-                "ix": 6
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 7
-              },
-              "sk": {
-                "a": 0,
-                "k": 0,
-                "ix": 4
-              },
-              "sa": {
-                "a": 0,
-                "k": 0,
-                "ix": 5
-              },
-              "nm": "Transform"
-            }
-          ],
-          "nm": "Group 1",
-          "np": 3,
-          "cix": 2,
-          "bm": 0,
-          "ix": 1,
-          "mn": "ADBE Vector Group",
-          "hd": false
-        }
-      ],
-      "ip": 0,
-      "op": 300,
-      "st": 0,
-      "bm": 0
-    },
-    {
-      "ddd": 0,
-      "ind": 2,
-      "ty": 4,
-      "nm": ".grey300",
-      "cl": "grey300",
-      "sr": 1,
-      "ks": {
-        "o": {
-          "a": 0,
-          "k": 100,
-          "ix": 11
-        },
-        "r": {
-          "a": 0,
-          "k": 0,
-          "ix": 10
-        },
-        "p": {
-          "a": 0,
-          "k": [
-            205,
-            150,
-            0
-          ],
-          "ix": 2
-        },
-        "a": {
-          "a": 0,
-          "k": [
-            0,
-            0,
-            0
-          ],
-          "ix": 1
-        },
-        "s": {
-          "a": 0,
-          "k": [
-            100,
-            100,
-            100
-          ],
-          "ix": 6
-        }
-      },
-      "ao": 0,
-      "shapes": [
-        {
-          "ty": "gr",
-          "it": [
-            {
-              "ty": "gr",
-              "it": [
-                {
-                  "ind": 0,
-                  "ty": "sh",
-                  "ix": 1,
-                  "ks": {
-                    "a": 0,
-                    "k": {
-                      "i": [
-                        [
-                          -7.9,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          8
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          1.6
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          2,
-                          1.5
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          6.4,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          6.4
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          1,
-                          -0.7
-                        ],
-                        [
-                          0,
-                          0
-                        ]
-                      ],
-                      "o": [
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          8,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          1.6,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          -1.9,
-                          -1.6
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0,
-                          6.4
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          -6.4,
-                          0
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          -1,
-                          0.7
-                        ],
-                        [
-                          0,
-                          0
-                        ],
-                        [
-                          0.1,
-                          7.9
-                        ]
-                      ],
-                      "v": [
-                        [
-                          -64,
-                          75.3
-                        ],
-                        [
-                          69.1,
-                          75.3
-                        ],
-                        [
-                          83.6,
-                          60.8
-                        ],
-                        [
-                          83.6,
-                          -81
-                        ],
-                        [
-                          86.5,
-                          -83.9
-                        ],
-                        [
-                          86.5,
-                          -100.9
-                        ],
-                        [
-                          80.7,
-                          -105.6
-                        ],
-                        [
-                          80.7,
-                          60.8
-                        ],
-                        [
-                          69.1,
-                          72.4
-                        ],
-                        [
-                          -64,
-                          72.4
-                        ],
-                        [
-                          -75.6,
-                          60.8
-                        ],
-                        [
-                          -75.6,
-                          -107.3
-                        ],
-                        [
-                          -78.5,
-                          -105.2
-                        ],
-                        [
-                          -78.5,
-                          60.9
-                        ]
-                      ],
-                      "c": true
-                    },
-                    "ix": 2
-                  },
-                  "nm": "Path 1",
-                  "mn": "ADBE Vector Shape - Group",
-                  "hd": false
-                },
-                {
-                  "ty": "fl",
-                  "c": {
-                    "a": 0,
-                    "k": [
-                      0.854901969433,
-                      0.86274510622,
-                      0.878431379795,
-                      1
-                    ],
-                    "ix": 4
-                  },
-                  "o": {
-                    "a": 0,
-                    "k": 100,
-                    "ix": 5
-                  },
-                  "r": 1,
-                  "bm": 0,
-                  "nm": "Fill 1",
-                  "mn": "ADBE Vector Graphic - Fill",
-                  "hd": false
-                },
-                {
-                  "ty": "tr",
-                  "p": {
-                    "a": 0,
-                    "k": [
-                      0,
-                      0
-                    ],
-                    "ix": 2
-                  },
-                  "a": {
-                    "a": 0,
-                    "k": [
-                      0,
-                      0
-                    ],
-                    "ix": 1
-                  },
-                  "s": {
-                    "a": 0,
-                    "k": [
-                      100,
-                      100
-                    ],
-                    "ix": 3
-                  },
-                  "r": {
-                    "a": 0,
-                    "k": 0,
-                    "ix": 6
-                  },
-                  "o": {
-                    "a": 0,
-                    "k": 100,
-                    "ix": 7
-                  },
-                  "sk": {
-                    "a": 0,
-                    "k": 0,
-                    "ix": 4
-                  },
-                  "sa": {
-                    "a": 0,
-                    "k": 0,
-                    "ix": 5
-                  },
-                  "nm": "Transform"
-                }
-              ],
-              "nm": "Group 1",
-              "np": 2,
-              "cix": 2,
-              "bm": 0,
-              "ix": 1,
-              "mn": "ADBE Vector Group",
-              "hd": false
-            },
-            {
-              "ty": "tr",
-              "p": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 2
-              },
-              "a": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 1
-              },
-              "s": {
-                "a": 0,
-                "k": [
-                  100,
-                  100
-                ],
-                "ix": 3
-              },
-              "r": {
-                "a": 0,
-                "k": 0,
-                "ix": 6
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 7
-              },
-              "sk": {
-                "a": 0,
-                "k": 0,
-                "ix": 4
-              },
-              "sa": {
-                "a": 0,
-                "k": 0,
-                "ix": 5
-              },
-              "nm": "Transform"
-            }
-          ],
-          "nm": "Group 1",
-          "np": 1,
-          "cix": 2,
-          "bm": 0,
-          "ix": 1,
-          "mn": "ADBE Vector Group",
-          "hd": false
-        }
-      ],
-      "ip": 0,
-      "op": 300,
-      "st": 0,
-      "bm": 0
-    },
-    {
-      "ddd": 0,
-      "ind": 3,
-      "ty": 4,
-      "nm": "cursor 5",
-      "sr": 1,
-      "ks": {
-        "o": {
-          "a": 1,
-          "k": [
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 36,
-              "s": [
-                0
-              ]
-            },
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 39.582,
-              "s": [
-                100
-              ]
-            },
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 44.953,
-              "s": [
-                100
-              ]
-            },
-            {
-              "t": 55.697265625,
-              "s": [
-                0
-              ]
-            }
-          ],
-          "ix": 11
-        },
-        "r": {
-          "a": 0,
-          "k": 0,
-          "ix": 10
-        },
-        "p": {
-          "a": 0,
-          "k": [
-            207.641,
-            154.48,
-            0
-          ],
-          "ix": 2
-        },
-        "a": {
-          "a": 0,
-          "k": [
-            -180.5,
-            -165.5,
-            0
-          ],
-          "ix": 1
-        },
-        "s": {
-          "a": 1,
-          "k": [
-            {
-              "i": {
-                "x": [
-                  0,
-                  0,
-                  0
-                ],
-                "y": [
-                  1,
-                  1,
-                  1
-                ]
-              },
-              "o": {
-                "x": [
-                  0.45,
-                  0.45,
-                  0.45
-                ],
-                "y": [
-                  0,
-                  0,
-                  0
-                ]
-              },
-              "t": 37.791,
-              "s": [
-                27.252,
-                27.252,
-                100
-              ]
-            },
-            {
-              "t": 59,
-              "s": [
-                56.661,
-                56.661,
-                100
-              ]
-            }
-          ],
-          "ix": 6
-        }
-      },
-      "ao": 0,
-      "shapes": [
-        {
-          "ty": "gr",
-          "it": [
-            {
-              "d": 1,
-              "ty": "el",
-              "s": {
-                "a": 0,
-                "k": [
-                  63.109,
-                  63.109
-                ],
-                "ix": 2
-              },
-              "p": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 3
-              },
-              "nm": "Ellipse Path 1",
-              "mn": "ADBE Vector Shape - Ellipse",
-              "hd": false
-            },
-            {
-              "ty": "st",
-              "c": {
-                "a": 0,
-                "k": [
-                  1,
-                  0.182245725744,
-                  0.894323072246,
-                  1
-                ],
-                "ix": 3
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 4
-              },
-              "w": {
-                "a": 0,
-                "k": 3,
-                "ix": 5
-              },
-              "lc": 1,
-              "lj": 1,
-              "ml": 4,
-              "bm": 0,
-              "nm": "Stroke 1",
-              "mn": "ADBE Vector Graphic - Stroke",
-              "hd": false
-            },
-            {
-              "ty": "fl",
-              "c": {
-                "a": 0,
-                "k": [
-                  1,
-                  0.522196631338,
-                  0.9762855081,
-                  1
-                ],
-                "ix": 4
-              },
-              "o": {
-                "a": 0,
-                "k": 50,
-                "ix": 5
-              },
-              "r": 1,
-              "bm": 0,
-              "nm": "Fill 1",
-              "mn": "ADBE Vector Graphic - Fill",
-              "hd": false
-            },
-            {
-              "ty": "tr",
-              "p": {
-                "a": 0,
-                "k": [
-                  -180.5,
-                  -165.5
-                ],
-                "ix": 2
-              },
-              "a": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 1
-              },
-              "s": {
-                "a": 0,
-                "k": [
-                  100,
-                  100
-                ],
-                "ix": 3
-              },
-              "r": {
-                "a": 0,
-                "k": 0,
-                "ix": 6
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 7
-              },
-              "sk": {
-                "a": 0,
-                "k": 0,
-                "ix": 4
-              },
-              "sa": {
-                "a": 0,
-                "k": 0,
-                "ix": 5
-              },
-              "nm": "Transform"
-            }
-          ],
-          "nm": "Ellipse 1",
-          "np": 3,
-          "cix": 2,
-          "bm": 0,
-          "ix": 1,
-          "mn": "ADBE Vector Group",
-          "hd": false
-        }
-      ],
-      "ip": 36,
-      "op": 59,
-      "st": -1,
-      "bm": 0
-    },
-    {
-      "ddd": 0,
-      "ind": 4,
-      "ty": 4,
-      "nm": "cursor 4",
-      "sr": 1,
-      "ks": {
-        "o": {
-          "a": 1,
-          "k": [
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 22,
-              "s": [
-                0
-              ]
-            },
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 25.58,
-              "s": [
-                100
-              ]
-            },
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 30.953,
-              "s": [
-                100
-              ]
-            },
-            {
-              "t": 41.697265625,
-              "s": [
-                0
-              ]
-            }
-          ],
-          "ix": 11
-        },
-        "r": {
-          "a": 0,
-          "k": 0,
-          "ix": 10
-        },
-        "p": {
-          "a": 0,
-          "k": [
-            207.641,
-            154.48,
-            0
-          ],
-          "ix": 2
-        },
-        "a": {
-          "a": 0,
-          "k": [
-            -180.5,
-            -165.5,
-            0
-          ],
-          "ix": 1
-        },
-        "s": {
-          "a": 1,
-          "k": [
-            {
-              "i": {
-                "x": [
-                  0,
-                  0,
-                  0
-                ],
-                "y": [
-                  1,
-                  1,
-                  1
-                ]
-              },
-              "o": {
-                "x": [
-                  0.45,
-                  0.45,
-                  0.45
-                ],
-                "y": [
-                  0,
-                  0,
-                  0
-                ]
-              },
-              "t": 23.789,
-              "s": [
-                27.252,
-                27.252,
-                100
-              ]
-            },
-            {
-              "t": 45,
-              "s": [
-                56.661,
-                56.661,
-                100
-              ]
-            }
-          ],
-          "ix": 6
-        }
-      },
-      "ao": 0,
-      "shapes": [
-        {
-          "ty": "gr",
-          "it": [
-            {
-              "d": 1,
-              "ty": "el",
-              "s": {
-                "a": 0,
-                "k": [
-                  63.109,
-                  63.109
-                ],
-                "ix": 2
-              },
-              "p": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 3
-              },
-              "nm": "Ellipse Path 1",
-              "mn": "ADBE Vector Shape - Ellipse",
-              "hd": false
-            },
-            {
-              "ty": "st",
-              "c": {
-                "a": 0,
-                "k": [
-                  1,
-                  0.182245725744,
-                  0.894323072246,
-                  1
-                ],
-                "ix": 3
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 4
-              },
-              "w": {
-                "a": 0,
-                "k": 3,
-                "ix": 5
-              },
-              "lc": 1,
-              "lj": 1,
-              "ml": 4,
-              "bm": 0,
-              "nm": "Stroke 1",
-              "mn": "ADBE Vector Graphic - Stroke",
-              "hd": false
-            },
-            {
-              "ty": "fl",
-              "c": {
-                "a": 0,
-                "k": [
-                  1,
-                  0.522196631338,
-                  0.9762855081,
-                  1
-                ],
-                "ix": 4
-              },
-              "o": {
-                "a": 0,
-                "k": 50,
-                "ix": 5
-              },
-              "r": 1,
-              "bm": 0,
-              "nm": "Fill 1",
-              "mn": "ADBE Vector Graphic - Fill",
-              "hd": false
-            },
-            {
-              "ty": "tr",
-              "p": {
-                "a": 0,
-                "k": [
-                  -180.5,
-                  -165.5
-                ],
-                "ix": 2
-              },
-              "a": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 1
-              },
-              "s": {
-                "a": 0,
-                "k": [
-                  100,
-                  100
-                ],
-                "ix": 3
-              },
-              "r": {
-                "a": 0,
-                "k": 0,
-                "ix": 6
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 7
-              },
-              "sk": {
-                "a": 0,
-                "k": 0,
-                "ix": 4
-              },
-              "sa": {
-                "a": 0,
-                "k": 0,
-                "ix": 5
-              },
-              "nm": "Transform"
-            }
-          ],
-          "nm": "Ellipse 1",
-          "np": 3,
-          "cix": 2,
-          "bm": 0,
-          "ix": 1,
-          "mn": "ADBE Vector Group",
-          "hd": false
-        }
-      ],
-      "ip": 22,
-      "op": 45,
-      "st": -3,
-      "bm": 0
-    },
-    {
-      "ddd": 0,
-      "ind": 5,
-      "ty": 4,
-      "nm": "cursor",
-      "sr": 1,
-      "ks": {
-        "o": {
-          "a": 1,
-          "k": [
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 8,
-              "s": [
-                0
-              ]
-            },
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 11.582,
-              "s": [
-                100
-              ]
-            },
-            {
-              "i": {
-                "x": [
-                  0.833
-                ],
-                "y": [
-                  0.833
-                ]
-              },
-              "o": {
-                "x": [
-                  0.167
-                ],
-                "y": [
-                  0.167
-                ]
-              },
-              "t": 16.953,
-              "s": [
-                100
-              ]
-            },
-            {
-              "t": 27.697265625,
-              "s": [
-                0
-              ]
-            }
-          ],
-          "ix": 11
-        },
-        "r": {
-          "a": 0,
-          "k": 0,
-          "ix": 10
-        },
-        "p": {
-          "a": 0,
-          "k": [
-            207.641,
-            154.48,
-            0
-          ],
-          "ix": 2
-        },
-        "a": {
-          "a": 0,
-          "k": [
-            -180.5,
-            -165.5,
-            0
-          ],
-          "ix": 1
-        },
-        "s": {
-          "a": 1,
-          "k": [
-            {
-              "i": {
-                "x": [
-                  0,
-                  0,
-                  0
-                ],
-                "y": [
-                  1,
-                  1,
-                  1
-                ]
-              },
-              "o": {
-                "x": [
-                  0.45,
-                  0.45,
-                  0.45
-                ],
-                "y": [
-                  0,
-                  0,
-                  0
-                ]
-              },
-              "t": 9.791,
-              "s": [
-                27.252,
-                27.252,
-                100
-              ]
-            },
-            {
-              "t": 31,
-              "s": [
-                56.661,
-                56.661,
-                100
-              ]
-            }
-          ],
-          "ix": 6
-        }
-      },
-      "ao": 0,
-      "shapes": [
-        {
-          "ty": "gr",
-          "it": [
-            {
-              "d": 1,
-              "ty": "el",
-              "s": {
-                "a": 0,
-                "k": [
-                  63.109,
-                  63.109
-                ],
-                "ix": 2
-              },
-              "p": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 3
-              },
-              "nm": "Ellipse Path 1",
-              "mn": "ADBE Vector Shape - Ellipse",
-              "hd": false
-            },
-            {
-              "ty": "st",
-              "c": {
-                "a": 0,
-                "k": [
-                  1,
-                  0.182245725744,
-                  0.894323072246,
-                  1
-                ],
-                "ix": 3
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 4
-              },
-              "w": {
-                "a": 0,
-                "k": 3,
-                "ix": 5
-              },
-              "lc": 1,
-              "lj": 1,
-              "ml": 4,
-              "bm": 0,
-              "nm": "Stroke 1",
-              "mn": "ADBE Vector Graphic - Stroke",
-              "hd": false
-            },
-            {
-              "ty": "fl",
-              "c": {
-                "a": 0,
-                "k": [
-                  1,
-                  0.522196631338,
-                  0.9762855081,
-                  1
-                ],
-                "ix": 4
-              },
-              "o": {
-                "a": 0,
-                "k": 50,
-                "ix": 5
-              },
-              "r": 1,
-              "bm": 0,
-              "nm": "Fill 1",
-              "mn": "ADBE Vector Graphic - Fill",
-              "hd": false
-            },
-            {
-              "ty": "tr",
-              "p": {
-                "a": 0,
-                "k": [
-                  -180.5,
-                  -165.5
-                ],
-                "ix": 2
-              },
-              "a": {
-                "a": 0,
-                "k": [
-                  0,
-                  0
-                ],
-                "ix": 1
-              },
-              "s": {
-                "a": 0,
-                "k": [
-                  100,
-                  100
-                ],
-                "ix": 3
-              },
-              "r": {
-                "a": 0,
-                "k": 0,
-                "ix": 6
-              },
-              "o": {
-                "a": 0,
-                "k": 100,
-                "ix": 7
-              },
-              "sk": {
-                "a": 0,
-                "k": 0,
-                "ix": 4
-              },
-              "sa": {
-                "a": 0,
-                "k": 0,
-                "ix": 5
-              },
-              "nm": "Transform"
-            }
-          ],
-          "nm": "Ellipse 1",
-          "np": 3,
-          "cix": 2,
-          "bm": 0,
-          "ix": 1,
-          "mn": "ADBE Vector Group",
-          "hd": false
-        }
-      ],
-      "ip": 8,
-      "op": 31,
-      "st": -5,
-      "bm": 0
-    },
-    {
-      "ddd": 0,
-      "ind": 6,
-      "ty": 0,
-      "nm": "BG_White",
-      "refId": "comp_0",
-      "sr": 1,
-      "ks": {
-        "o": {
-          "a": 0,
-          "k": 100,
-          "ix": 11
-        },
-        "r": {
-          "a": 0,
-          "k": 0,
-          "ix": 10
-        },
-        "p": {
-          "a": 0,
-          "k": [
-            206,
-            150,
-            0
-          ],
-          "ix": 2
-        },
-        "a": {
-          "a": 0,
-          "k": [
-            206,
-            150,
-            0
-          ],
-          "ix": 1
-        },
-        "s": {
-          "a": 0,
-          "k": [
-            100,
-            100,
-            100
-          ],
-          "ix": 6
-        }
-      },
-      "ao": 0,
-      "w": 412,
-      "h": 300,
-      "ip": 0,
-      "op": 1800,
-      "st": 0,
-      "bm": 0
-    }
-  ],
-  "markers": []
-}
\ No newline at end of file
diff --git a/res/raw/accessibility_shortcut_type_triple_tap_tablet.json b/res/raw/accessibility_shortcut_type_triple_tap_tablet.json
deleted file mode 100644
index b6a9b14..0000000
--- a/res/raw/accessibility_shortcut_type_triple_tap_tablet.json
+++ /dev/null
@@ -1 +0,0 @@
-{"v":"5.10.0","fr":60,"ip":0,"op":180,"w":412,"h":300,"nm":"Triple_Tap_Screen_Tablet-DT","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".grey600","cl":"grey600","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.999,149.375,0],"ix":2,"l":2},"a":{"a":0,"k":[205.999,149.375,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.367,0],[0,0],[0,-1.372],[0,0]],"o":[[0,-1.372],[0,0],[1.366,0],[0,0],[0,0]],"v":[[-6.933,0.746],[-4.457,-1.74],[4.457,-1.74],[6.933,0.746],[0.99,1.74]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[318.382,49.604],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Layer 3","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-1.367,0],[0,0],[0,-1.372],[0,0]],"o":[[0,-1.372],[0,0],[1.367,0],[0,0],[0,0]],"v":[[-13.37,0.746],[-10.894,-1.74],[10.894,-1.74],[13.37,0.746],[0.495,1.74]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[276.958,49.604],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Layer 2","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-8.146],[0,0],[8.146,0],[0,0],[0,8.146],[0,0],[-8.146,0],[0,0]],"o":[[0,0],[0,8.146],[0,0],[-8.146,0],[0,0],[0,-8.146],[0,0],[8.146,0]],"v":[[158.519,-84.974],[158.519,84.974],[143.769,99.724],[-143.769,99.724],[-158.519,84.974],[-158.519,-84.974],[-143.769,-99.724],[143.769,-99.724]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2.5,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[205.999,151.162],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Layer 1","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":180,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":36,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":39.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44.953,"s":[100]},{"t":55.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":37.791,"s":[27.252,27.252,100]},{"t":59,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":36,"op":59,"st":-1,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".blue800","cl":"blue800","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":36,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":39.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":44.953,"s":[100]},{"t":55.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":37.791,"s":[27.252,27.252,100]},{"t":59,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.094117647059,0.352941176471,0.737254901961,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":36,"op":59,"st":-1,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25.58,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30.953,"s":[100]},{"t":41.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":23.789,"s":[27.252,27.252,100]},{"t":45,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":45,"st":-3,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".blue800","cl":"blue800","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":22,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":25.58,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":30.953,"s":[100]},{"t":41.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":23.789,"s":[27.252,27.252,100]},{"t":45,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.094117647059,0.352941176471,0.737254901961,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":22,"op":45,"st":-3,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16.953,"s":[100]},{"t":27.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":9.791,"s":[27.252,27.252,100]},{"t":31,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":8,"op":31,"st":-5,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".blue800","cl":"blue800","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":11.582,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":16.953,"s":[100]},{"t":27.697265625,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.641,154.48,0],"ix":2,"l":2},"a":{"a":0,"k":[-180.5,-165.5,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.45,0.45,0.45],"y":[0,0,0]},"t":9.791,"s":[27.252,27.252,100]},{"t":31,"s":[56.661,56.661,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[63.109,63.109],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.094117647059,0.352941176471,0.737254901961,1],"ix":4},"o":{"a":0,"k":50,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-180.5,-165.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":8,"op":31,"st":-5,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.4,0],[0,0],[0,15.4],[0,0],[-15.4,0],[0,0],[0,-15.4],[0,0]],"o":[[0,0],[-15.4,0],[0,0],[0,-15.4],[0,0],[15.4,0],[0,0],[0,15.4]],"v":[[178,150],[-178,150],[-206,122],[-206,-122],[-178,-150],[178,-150],[206,-122],[206,122]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/res/raw/lottie_notification_cooldown.json b/res/raw/lottie_notification_cooldown.json
new file mode 100644
index 0000000..67658a1
--- /dev/null
+++ b/res/raw/lottie_notification_cooldown.json
@@ -0,0 +1 @@
+{"v":"5.12.1","fr":60,"ip":0,"op":720,"w":824,"h":600,"nm":"Panel v3 Lottie","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".cream","cl":"cream","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":270,"s":[60.438,75.468,0],"to":[0,0,0],"ti":[0,0,0]},{"t":300,"s":[58.188,65.718,0]}],"ix":2,"l":2},"a":{"a":0,"k":[30.219,37.734,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":270,"s":[200,200,100]},{"t":300,"s":[104.5,104.5,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.914,0],[-1.41,1.209],[-0.772,2.116],[0,2.62],[0.773,2.116],[1.444,1.209],[1.881,0],[1.41,-1.243],[0.773,-2.116],[0,-2.619],[-0.772,-2.116],[-1.411,-1.242]],"o":[[1.881,0],[1.444,-1.242],[0.773,-2.116],[0,-2.619],[-0.772,-2.116],[-1.41,-1.243],[-1.914,0],[-1.411,1.209],[-0.772,2.116],[0,2.62],[0.773,2.116],[1.41,1.209]],"v":[[0,13.955],[4.937,12.141],[8.262,7.104],[9.421,-0.001],[8.262,-7.104],[4.937,-12.09],[0,-13.955],[-4.987,-12.09],[-8.262,-7.104],[-9.42,-0.001],[-8.262,7.104],[-4.987,12.141]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[2.721,0],[2.116,1.578],[1.142,2.721],[0,3.359],[-1.109,2.72],[-2.082,1.579],[-2.754,0],[-2.082,-1.612],[-1.142,-2.754],[0,-3.358],[1.141,-2.754],[2.083,-1.612]],"o":[[-2.72,0],[-2.082,-1.612],[-1.109,-2.754],[0,-3.358],[1.142,-2.754],[2.082,-1.612],[2.721,0],[2.083,1.579],[1.141,2.72],[0,3.359],[-1.142,2.721],[-2.082,1.578]],"v":[[0,18.036],[-7.254,15.668],[-12.09,9.169],[-13.753,-0.001],[-12.09,-9.118],[-7.254,-15.618],[0,-18.036],[7.204,-15.618],[12.041,-9.118],[13.753,-0.001],[12.041,9.169],[7.204,15.668]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[111.033,55.77],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.116,0],[1.511,0.605],[1.242,1.276],[0.538,1.948],[0,0],[-1.277,-1.074],[-1.746,0],[-1.108,0.538],[-0.639,0.974],[0,1.209],[0.671,0.974],[1.142,0.537],[1.343,0],[0,0],[0,0],[0,0],[-1.242,1.041],[0,1.747],[1.209,0.974],[1.78,0],[1.008,-0.906],[0.437,-1.31],[0,0],[-1.713,1.444],[-2.72,0],[-1.612,-0.806],[-0.907,-1.444],[0,-1.78],[0.906,-1.242],[1.344,-0.705],[0,0],[-1.108,-1.478],[0,-1.982],[1.041,-1.612],[1.781,-0.907]],"o":[[-1.444,0],[-1.512,-0.604],[-1.209,-1.31],[0,0],[0.538,1.948],[1.309,1.075],[1.276,0],[1.108,-0.571],[0.671,-1.008],[0,-1.175],[-0.639,-0.974],[-1.108,-0.571],[0,0],[0,0],[0,0],[1.847,0],[1.243,-1.075],[0,-1.612],[-1.209,-0.974],[-1.746,0],[-0.974,0.907],[0,0],[0.604,-1.814],[1.746,-1.478],[2.015,0],[1.612,0.806],[0.941,1.444],[0,1.78],[-0.907,1.243],[0,0],[1.713,0.705],[1.108,1.444],[0,2.015],[-1.008,1.613],[-1.746,0.907]],"v":[[-0.176,18.035],[-4.609,17.128],[-8.74,14.307],[-11.36,9.42],[-7.481,7.808],[-4.76,12.342],[-0.176,13.954],[3.401,13.148],[6.021,10.831],[7.028,7.506],[6.021,4.282],[3.35,2.015],[-0.327,1.158],[-3.299,1.158],[-3.299,-2.821],[-0.629,-2.821],[4.005,-4.383],[5.869,-8.615],[4.056,-12.494],[-0.428,-13.955],[-4.559,-12.595],[-6.675,-9.27],[-10.604,-10.932],[-7.128,-15.819],[-0.428,-18.035],[5.013,-16.826],[8.791,-13.451],[10.202,-8.615],[8.842,-4.081],[5.466,-1.159],[5.466,-0.957],[9.698,2.317],[11.36,7.456],[9.799,12.896],[5.617,16.675]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[81.226,55.77],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605],[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638]],"o":[[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638],[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605]],"v":[[0.025,12.796],[-2.292,11.889],[-3.199,9.572],[-2.292,7.355],[0.025,6.398],[2.242,7.355],[3.199,9.572],[2.242,11.889]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605],[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638]],"o":[[-0.907,0],[-0.605,-0.638],[0,-0.873],[0.638,-0.638],[0.873,0],[0.638,0.605],[0,0.907],[-0.605,0.605]],"v":[[0.025,-6.398],[-2.292,-7.305],[-3.199,-9.622],[-2.292,-11.839],[0.025,-12.796],[2.242,-11.839],[3.199,-9.622],[2.242,-7.305]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[61.915,60.505],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.343,0],[-1.142,0.638],[-0.672,1.108],[0,1.343],[0.671,1.108],[1.175,0.638],[1.343,0],[1.142,-0.672],[0.672,-1.142],[0,-1.377],[-0.672,-1.142],[-1.108,-0.672]],"o":[[1.343,0],[1.175,-0.672],[0.671,-1.142],[0,-1.377],[-0.672,-1.142],[-1.142,-0.672],[-1.343,0],[-1.108,0.638],[-0.672,1.108],[0,1.343],[0.672,1.108],[1.142,0.638]],"v":[[-0.051,0.806],[3.678,-0.151],[6.449,-2.821],[7.456,-6.549],[6.449,-10.277],[3.678,-12.947],[-0.051,-13.955],[-3.779,-12.947],[-6.449,-10.277],[-7.457,-6.549],[-6.449,-2.821],[-3.779,-0.151]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[1.814,0],[1.679,0.974],[1.074,1.679],[0,2.082],[-1.075,1.746],[-1.78,1.075],[-2.082,0],[-1.78,-1.108],[-0.974,-1.78],[0,-1.948],[0.772,-1.713],[1.41,-2.083],[0,0]],"o":[[0,0],[0,0],[-1.176,0.806],[-1.746,0],[-1.68,-0.974],[-1.041,-1.713],[0,-2.015],[1.075,-1.78],[1.814,-1.075],[2.317,0],[1.814,1.108],[1.008,1.746],[0,1.847],[-0.739,1.679],[0,0],[0,0]],"v":[[-5.089,15.667],[3.628,3.526],[3.527,3.426],[-0.958,4.635],[-6.096,3.174],[-10.227,-0.806],[-11.788,-6.499],[-10.176,-12.141],[-5.895,-16.423],[-0.051,-18.035],[6.096,-16.373],[10.277,-12.04],[11.788,-6.499],[10.63,-1.159],[7.406,4.484],[-1.663,18.035]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.007,55.77],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":168.552,"ix":3},"y":{"a":0,"k":54.681,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":556,"s":[20,20,100]},{"t":586,"s":[50,50,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.428,-491.836],[14.758,-490.711],[22.933,-488.794],[30.879,-486.091],[38.523,-482.63],[45.798,-478.436],[52.619,-473.52],[58.782,-467.809],[64.461,-461.621],[69.338,-454.782],[73.871,-447.708],[78.192,-440.497],[82.517,-433.286],[86.839,-426.075],[91.16,-418.864],[95.482,-411.653],[99.804,-404.442],[104.126,-397.231],[108.483,-390.044],[113.214,-383.095],[118.623,-376.662],[124.659,-370.811],[131.256,-365.6],[138.343,-361.084],[145.852,-357.302],[153.702,-354.292],[161.813,-352.086],[170.105,-350.705],[178.493,-350.164],[186.896,-350.481],[195.21,-351.684],[203.407,-353.545],[211.562,-355.588],[219.718,-357.63],[227.872,-359.673],[236.027,-361.716],[244.181,-363.761],[252.338,-365.803],[260.492,-367.846],[268.646,-369.889],[276.914,-371.411],[285.269,-372.203],[293.657,-372.215],[302.017,-371.414],[310.252,-369.719],[318.231,-367.08],[325.908,-363.685],[333.216,-359.562],[340.096,-354.753],[346.486,-349.301],[352.314,-343.241],[357.412,-336.56],[361.837,-329.422],[365.549,-321.897],[368.509,-314.043],[370.689,-305.936],[372.039,-297.638],[372.361,-289.24],[372.004,-280.849],[370.621,-272.565],[368.824,-264.356],[366.781,-256.2],[364.736,-248.045],[362.693,-239.891],[360.651,-231.737],[358.608,-223.58],[356.565,-215.426],[354.522,-207.272],[352.518,-199.108],[350.948,-190.852],[350.222,-182.478],[350.352,-174.071],[351.328,-165.723],[353.146,-157.514],[355.778,-149.53],[359.199,-141.853],[363.374,-134.555],[368.261,-127.715],[373.81,-121.4],[379.976,-115.683],[386.704,-110.652],[393.816,-106.172],[401.027,-101.85],[408.238,-97.528],[415.449,-93.207],[422.657,-88.885],[429.868,-84.563],[437.079,-80.241],[444.29,-75.919],[451.501,-71.597],[458.424,-66.826],[464.892,-61.481],[470.836,-55.558],[476.182,-49.083],[480.806,-42.061],[484.584,-34.554],[487.613,-26.727],[489.868,-18.643],[491.334,-10.378],[492.001,-2.006],[491.837,6.399],[490.717,14.73],[488.802,22.906],[486.104,30.852],[482.645,38.498],[478.456,45.775],[473.541,52.596],[467.831,58.762],[461.649,64.443],[454.811,69.326],[447.737,73.86],[440.526,78.18],[433.315,82.501],[426.105,86.823],[418.894,91.145],[411.68,95.465],[404.469,99.786],[397.258,104.108],[390.069,108.463],[383.12,113.192],[376.687,118.601],[370.833,124.635],[365.62,131.228],[361.1,138.316],[357.315,145.823],[354.303,153.672],[352.094,161.784],[350.711,170.075],[350.167,178.464],[350.487,186.866],[351.683,195.181],[353.544,203.378],[355.589,211.532],[357.631,219.686],[359.674,227.843],[361.717,235.997],[363.762,244.151],[365.805,252.306],[367.847,260.462],[369.892,268.617],[371.413,276.884],[372.209,285.237],[372.224,293.628],[371.424,301.988],[369.729,310.223],[367.095,318.202],[363.7,325.879],[359.582,333.191],[354.775,340.071],[349.328,346.464],[343.269,352.292],[336.587,357.392],[329.452,361.82],[321.927,365.534],[314.075,368.499],[305.968,370.683],[297.67,372.031],[289.272,372.357],[280.883,372.005],[272.597,370.622],[264.388,368.83],[256.234,366.785],[248.077,364.742],[239.923,362.699],[231.769,360.657],[223.615,358.614],[215.458,356.571],[207.304,354.526],[199.14,352.521],[190.884,350.949],[182.51,350.221],[174.105,350.344],[165.754,351.32],[157.546,353.134],[149.562,355.763],[141.88,359.181],[134.582,363.354],[127.74,368.236],[121.423,373.785],[115.708,379.949],[110.672,386.673],[106.19,393.784],[101.868,400.995],[97.546,408.206],[93.224,415.417],[88.902,422.628],[84.581,429.839],[80.259,437.05],[75.937,444.261],[71.615,451.472],[66.846,458.394],[61.503,464.868],[55.583,470.811],[49.11,476.162],[42.088,480.786],[34.586,484.569],[26.758,487.6],[18.675,489.86],[10.412,491.328],[2.04,492],[-6.367,491.834],[-14.696,490.718],[-22.874,488.808],[-30.82,486.115],[-38.469,482.661],[-45.748,478.474],[-52.569,473.559],[-58.737,467.851],[-64.421,461.671],[-69.305,454.836],[-73.842,447.762],[-78.164,440.551],[-82.484,433.34],[-86.805,426.13],[-91.127,418.918],[-95.449,411.708],[-99.769,404.497],[-104.09,397.283],[-108.445,390.094],[-113.171,383.143],[-118.576,376.707],[-124.607,370.851],[-131.201,365.636],[-138.287,361.113],[-145.793,357.325],[-153.64,354.309],[-161.749,352.098],[-170.041,350.71],[-178.432,350.169],[-186.832,350.483],[-195.149,351.675],[-203.346,353.533],[-211.5,355.578],[-219.654,357.621],[-227.809,359.664],[-235.965,361.706],[-244.12,363.751],[-252.274,365.794],[-260.428,367.837],[-268.585,369.882],[-276.85,371.404],[-285.205,372.204],[-293.594,372.225],[-301.956,371.43],[-310.191,369.735],[-318.17,367.104],[-325.849,363.716],[-333.162,359.6],[-340.046,354.796],[-346.442,349.351],[-352.269,343.291],[-357.371,336.612],[-361.804,329.482],[-365.521,321.956],[-368.488,314.107],[-370.677,306],[-372.025,297.702],[-372.356,289.304],[-372.006,280.915],[-370.628,272.629],[-368.836,264.42],[-366.793,256.264],[-364.75,248.109],[-362.708,239.955],[-360.662,231.801],[-358.62,223.646],[-356.577,215.49],[-354.532,207.336],[-352.527,199.172],[-350.95,190.916],[-350.22,182.542],[-350.34,174.137],[-351.312,165.786],[-353.123,157.578],[-355.749,149.591],[-359.166,141.91],[-363.334,134.609],[-368.216,127.765],[-373.763,121.447],[-379.924,115.728],[-386.645,110.688],[-393.755,106.205],[-400.968,101.886],[-408.179,97.564],[-415.39,93.242],[-422.601,88.923],[-429.814,84.601],[-437.025,80.281],[-444.236,75.96],[-451.449,71.64],[-458.372,66.871],[-464.845,61.533],[-470.793,55.615],[-476.148,49.144],[-480.771,42.123],[-484.556,34.621],[-487.591,26.795],[-489.854,18.714],[-491.327,10.451],[-492.001,2.077],[-491.837,-6.328],[-490.724,-14.659],[-488.818,-22.835],[-486.128,-30.786],[-482.678,-38.434],[-478.496,-45.716],[-473.581,-52.537],[-467.878,-58.71],[-461.701,-64.396],[-454.868,-69.283],[-447.796,-73.822],[-440.586,-78.144],[-433.375,-82.463],[-426.161,-86.785],[-418.95,-91.107],[-411.739,-95.429],[-404.529,-99.751],[-397.318,-104.073],[-390.126,-108.425],[-383.172,-113.146],[-376.732,-118.549],[-370.874,-124.578],[-365.656,-131.167],[-361.128,-138.252],[-357.338,-145.757],[-354.319,-153.601],[-352.104,-161.71],[-350.714,-170.002],[-350.17,-178.393],[-350.482,-186.793],[-351.666,-195.11],[-353.525,-203.307],[-355.567,-211.461],[-357.61,-219.618],[-359.655,-227.772],[-361.698,-235.926],[-363.741,-244.081],[-365.783,-252.237],[-367.826,-260.391],[-369.871,-268.546],[-371.396,-276.813],[-372.202,-285.166],[-372.226,-293.555],[-371.436,-301.917],[-369.741,-310.152],[-367.117,-318.133],[-363.731,-325.815],[-359.617,-333.13],[-354.818,-340.017],[-349.378,-346.414],[-343.318,-352.242],[-336.642,-357.349],[-329.511,-361.784],[-321.991,-365.505],[-314.141,-368.475],[-306.037,-370.669],[-297.738,-372.017],[-289.34,-372.35],[-280.952,-372.005],[-272.665,-370.629],[-264.454,-368.839],[-256.3,-366.796],[-248.146,-364.754],[-239.989,-362.709],[-231.835,-360.666],[-223.681,-358.623],[-215.526,-356.581],[-207.372,-354.535],[-199.208,-352.528],[-190.953,-350.951],[-182.578,-350.216],[-174.174,-350.334],[-165.823,-351.306],[-157.612,-353.115],[-149.626,-355.736],[-141.942,-359.148],[-134.639,-363.314],[-127.794,-368.194],[-121.477,-373.74],[-115.753,-379.899],[-110.708,-386.616],[-106.225,-393.725],[-101.903,-400.936],[-97.582,-408.147],[-93.26,-415.36],[-88.94,-422.571],[-84.618,-429.782],[-80.297,-436.993],[-75.975,-444.204],[-71.584,-451.531],[-66.813,-458.453],[-61.463,-464.917],[-55.538,-470.858],[-49.058,-476.202],[-42.039,-480.826],[-34.53,-484.599],[-26.699,-487.623],[-18.616,-489.876],[-10.351,-491.337],[-1.977,-491.999]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":556,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":550,"s":[168.552]},{"t":580,"s":[226.447]}],"ix":3},"y":{"a":0,"k":54.681,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":466,"s":[20,20,100]},{"t":496,"s":[50,50,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":466,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":460,"s":[168.552]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":490,"s":[228.36]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[228.36]},{"t":578,"s":[286.255]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":376,"s":[20,20,100]},{"t":406,"s":[50,50,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.166,-494.001],[7.12,-493.774],[14.408,-493.545],[21.649,-492.74],[28.884,-491.832],[36.083,-490.728],[43.201,-489.145],[50.316,-487.56],[57.326,-485.578],[64.297,-483.437],[71.118,-480.865],[77.874,-478.138],[84.452,-474.996],[90.937,-471.679],[97.177,-467.909],[103.351,-464.041],[109.218,-459.713],[115.084,-455.382],[120.918,-451.015],[126.346,-446.147],[131.773,-441.278],[137.2,-436.408],[142.626,-431.541],[148.053,-426.671],[153.481,-421.804],[158.906,-416.935],[164.135,-411.855],[169.32,-406.728],[174.504,-401.604],[179.687,-396.478],[184.872,-391.352],[190.056,-386.225],[195.241,-381.101],[200.426,-375.975],[205.61,-370.849],[210.795,-365.722],[215.952,-360.568],[221.106,-355.413],[226.261,-350.259],[231.417,-345.102],[236.572,-339.948],[241.726,-334.793],[246.883,-329.637],[252.037,-324.482],[257.192,-319.328],[262.348,-314.171],[267.503,-309.017],[272.66,-303.86],[277.814,-298.706],[282.968,-293.551],[288.125,-288.395],[293.279,-283.24],[298.434,-278.086],[303.591,-272.929],[308.745,-267.775],[313.899,-262.62],[319.056,-257.464],[324.21,-252.309],[329.367,-247.155],[334.522,-241.998],[339.676,-236.844],[344.833,-231.687],[349.987,-226.533],[355.141,-221.378],[360.298,-216.222],[365.453,-211.067],[370.493,-205.798],[375.53,-200.53],[380.57,-195.261],[385.608,-189.99],[390.646,-184.721],[395.683,-179.452],[400.723,-174.181],[405.761,-168.912],[410.798,-163.644],[415.836,-158.372],[420.876,-153.104],[425.914,-147.835],[430.952,-142.564],[435.991,-137.295],[441.029,-132.026],[446.067,-126.755],[450.661,-121.106],[455.085,-115.312],[459.508,-109.516],[463.855,-103.668],[467.716,-97.482],[471.57,-91.295],[474.768,-84.743],[477.969,-78.192],[480.665,-71.43],[483.133,-64.569],[485.537,-57.689],[487.344,-50.625],[489.151,-43.564],[490.61,-36.427],[491.744,-29.226],[492.879,-22.024],[493.364,-14.752],[493.82,-7.476],[494.002,-0.195],[493.775,7.093],[493.546,14.379],[492.743,21.622],[491.835,28.854],[490.734,36.056],[489.151,43.171],[487.566,50.289],[485.586,57.299],[483.445,64.27],[480.873,71.091],[478.151,77.849],[475.007,84.427],[471.692,90.913],[467.924,97.152],[464.056,103.329],[459.728,109.196],[455.4,115.062],[451.034,120.898],[446.165,126.326],[441.295,131.751],[436.428,137.178],[431.558,142.606],[426.691,148.031],[421.822,153.458],[416.954,158.886],[411.875,164.115],[406.748,169.3],[401.624,174.482],[396.498,179.667],[391.371,184.852],[386.245,190.036],[381.119,195.221],[375.995,200.406],[370.868,205.591],[365.742,210.775],[360.587,215.932],[355.433,221.086],[350.279,226.241],[345.122,231.398],[339.968,236.552],[334.813,241.706],[329.657,246.863],[324.502,252.017],[319.348,257.172],[314.191,262.328],[309.037,267.483],[303.88,272.637],[298.726,277.794],[293.571,282.948],[288.414,288.105],[283.26,293.259],[278.106,298.414],[272.949,303.571],[267.795,308.725],[262.64,313.879],[257.483,319.036],[252.329,324.19],[247.172,329.345],[242.018,334.502],[236.864,339.656],[231.707,344.813],[226.553,349.967],[221.398,355.121],[216.241,360.278],[211.005,365.514],[205.734,370.554],[200.465,375.592],[195.197,380.63],[189.926,385.667],[184.657,390.707],[179.388,395.745],[174.117,400.783],[168.848,405.82],[163.577,410.86],[158.308,415.898],[153.04,420.936],[147.768,425.973],[142.5,431.013],[137.231,436.051],[131.96,441.089],[126.691,446.129],[121.035,450.713],[115.238,455.137],[109.444,459.561],[103.59,463.901],[97.406,467.759],[91.212,471.606],[84.662,474.805],[78.112,478.005],[71.344,480.692],[64.484,483.159],[57.602,485.559],[50.538,487.366],[43.476,489.173],[36.34,490.623],[29.138,491.759],[21.936,492.894],[14.662,493.37],[7.386,493.825],[0.105,494.001],[-7.183,493.772],[-14.469,493.545],[-21.71,492.733],[-28.944,491.825],[-36.144,490.716],[-43.259,489.133],[-50.377,487.548],[-57.387,485.562],[-64.355,483.421],[-71.176,480.846],[-77.93,478.115],[-84.508,474.973],[-90.991,471.648],[-97.231,467.881],[-103.403,464.006],[-109.269,459.678],[-115.136,455.35],[-120.967,450.977],[-126.392,446.108],[-131.82,441.24],[-137.247,436.373],[-142.675,431.504],[-148.1,426.636],[-153.527,421.767],[-158.955,416.899],[-164.179,411.817],[-169.364,406.691],[-174.549,401.565],[-179.733,396.441],[-184.918,391.314],[-190.103,386.188],[-195.288,381.062],[-200.472,375.937],[-205.657,370.811],[-210.842,365.685],[-215.996,360.53],[-221.153,355.376],[-226.307,350.219],[-231.462,345.065],[-236.619,339.908],[-241.773,334.754],[-246.927,329.599],[-252.084,324.443],[-257.238,319.288],[-262.393,314.132],[-267.547,308.977],[-272.704,303.823],[-277.858,298.666],[-283.013,293.512],[-288.169,288.355],[-293.324,283.201],[-298.478,278.044],[-303.635,272.889],[-308.789,267.735],[-313.944,262.578],[-319.098,257.424],[-324.255,252.267],[-329.409,247.113],[-334.564,241.956],[-339.72,236.802],[-344.875,231.647],[-350.029,226.491],[-355.186,221.336],[-360.34,216.18],[-365.495,211.025],[-370.535,205.756],[-375.572,200.488],[-380.61,195.216],[-385.65,189.948],[-390.688,184.679],[-395.725,179.408],[-400.765,174.139],[-405.803,168.87],[-410.84,163.599],[-415.88,158.331],[-420.918,153.062],[-425.956,147.793],[-430.993,142.522],[-436.033,137.253],[-441.071,131.984],[-446.109,126.713],[-450.698,121.059],[-455.122,115.265],[-459.546,109.469],[-463.888,103.616],[-467.747,97.433],[-471.596,91.242],[-474.794,84.689],[-477.992,78.139],[-480.684,71.371],[-483.151,64.513],[-485.551,57.631],[-487.358,50.567],[-489.167,43.505],[-490.619,36.369],[-491.754,29.167],[-492.888,21.966],[-493.369,14.692],[-493.824,7.415],[-494.002,0.134],[-493.773,-7.151],[-493.546,-14.44],[-492.739,-21.681],[-491.828,-28.915],[-490.722,-36.115],[-489.139,-43.23],[-487.554,-50.347],[-485.57,-57.358],[-483.431,-64.328],[-480.857,-71.147],[-478.128,-77.903],[-474.986,-84.484],[-471.666,-90.966],[-467.898,-97.206],[-464.028,-103.378],[-459.697,-109.245],[-455.369,-115.111],[-450.999,-120.945],[-446.13,-126.37],[-441.26,-131.798],[-436.393,-137.223],[-431.523,-142.65],[-426.654,-148.075],[-421.787,-153.503],[-416.917,-158.93],[-411.835,-164.157],[-406.711,-169.34],[-401.585,-174.524],[-396.458,-179.709],[-391.332,-184.894],[-386.205,-190.078],[-381.081,-195.263],[-375.955,-200.448],[-370.829,-205.63],[-365.702,-210.815],[-360.548,-215.972],[-355.393,-221.129],[-350.239,-226.283],[-345.082,-231.437],[-339.928,-236.594],[-334.774,-241.748],[-329.617,-246.905],[-324.462,-252.06],[-319.308,-257.214],[-314.154,-262.371],[-308.997,-267.525],[-303.843,-272.682],[-298.688,-277.836],[-293.532,-282.993],[-288.377,-288.147],[-283.223,-293.302],[-278.066,-298.458],[-272.912,-303.613],[-267.757,-308.769],[-262.603,-313.924],[-257.446,-319.081],[-252.292,-324.235],[-247.137,-329.389],[-241.981,-334.546],[-236.826,-339.7],[-231.672,-344.857],[-226.515,-350.011],[-221.361,-355.166],[-216.206,-360.323],[-211.052,-365.477],[-205.781,-370.517],[-200.512,-375.555],[-195.243,-380.592],[-189.972,-385.632],[-184.703,-390.67],[-179.435,-395.708],[-174.164,-400.745],[-168.895,-405.783],[-163.624,-410.823],[-158.355,-415.861],[-153.086,-420.898],[-147.815,-425.936],[-142.546,-430.976],[-137.275,-436.014],[-132.006,-441.051],[-126.738,-446.089],[-121.084,-450.681],[-115.29,-455.105],[-109.493,-459.528],[-103.643,-463.87],[-97.459,-467.731],[-91.269,-471.583],[-84.718,-474.781],[-78.168,-477.982],[-71.403,-480.676],[-64.542,-483.143],[-57.662,-485.545],[-50.598,-487.352],[-43.534,-489.159],[-36.4,-490.616],[-29.199,-491.75],[-21.997,-492.885],[-14.723,-493.368],[-7.447,-493.823]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":376,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[167,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":60,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":70,"s":[105,105,100]},{"t":80,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":80,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[167,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":82,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":92,"s":[105,105,100]},{"t":102,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-12.15],[12.15,0],[0,12.15],[-12.15,0]],"o":[[0,12.15],[-12.15,0],[0,-12.15],[12.15,0]],"v":[[22,0],[0,22],[-22,0],[0,-22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":82,"op":150,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":150,"s":[0]},{"t":180,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[167.116]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":300,"s":[167.595]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":370,"s":[167.595]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":400,"s":[227.643]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":458,"s":[227.643]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":488,"s":[287.451]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":546,"s":[287.451]},{"t":576,"s":[348.217]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50,50,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":150,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.419,-496.632],[11.147,-496.256],[18.878,-495.883],[26.606,-495.507],[34.334,-495.132],[42.064,-494.758],[49.739,-493.839],[57.397,-492.716],[65.053,-491.594],[72.709,-490.474],[80.365,-489.352],[88.023,-488.232],[95.594,-486.684],[103.108,-484.832],[110.622,-482.977],[118.135,-481.125],[125.647,-479.273],[133.16,-477.422],[140.563,-475.196],[147.865,-472.639],[155.169,-470.079],[162.471,-467.521],[169.773,-464.961],[177.077,-462.401],[184.232,-459.48],[191.262,-456.243],[198.291,-453.009],[205.321,-449.772],[212.35,-446.538],[219.378,-443.302],[226.21,-439.684],[232.907,-435.807],[239.604,-431.932],[246.302,-428.055],[252.999,-424.178],[259.696,-420.303],[266.124,-416.009],[272.436,-411.53],[278.746,-407.053],[285.058,-402.573],[291.367,-398.097],[297.679,-393.617],[303.632,-388.683],[309.506,-383.645],[315.38,-378.607],[321.251,-373.569],[327.125,-368.531],[332.998,-363.493],[338.412,-357.966],[343.799,-352.41],[349.187,-346.857],[354.574,-341.301],[359.963,-335.747],[365.307,-330.155],[370.165,-324.13],[375.02,-318.107],[379.877,-312.082],[384.732,-306.056],[389.59,-300.033],[394.326,-293.921],[398.608,-287.474],[402.89,-281.03],[407.172,-274.585],[411.454,-268.138],[415.736,-261.694],[419.82,-255.129],[423.488,-248.316],[427.153,-241.501],[430.821,-234.688],[434.486,-227.873],[438.154,-221.057],[441.554,-214.117],[444.569,-206.989],[447.582,-199.863],[450.595,-192.734],[453.61,-185.608],[456.623,-178.48],[459.325,-171.238],[461.651,-163.859],[463.977,-156.478],[466.304,-149.099],[468.63,-141.718],[470.956,-134.339],[472.967,-126.876],[474.579,-119.307],[476.19,-111.738],[477.798,-104.169],[479.409,-96.6],[481.021,-89.033],[482.413,-81.425],[483.41,-73.753],[484.409,-66.078],[485.408,-58.405],[486.251,-50.718],[486.624,-42.99],[487,-35.26],[487.374,-27.532],[487.749,-19.801],[488.125,-12.073],[488.498,-4.345],[488.132,3.385],[487.759,11.113],[487.383,18.844],[487.01,26.572],[486.634,34.302],[486.258,42.03],[485.341,49.708],[484.221,57.363],[483.099,65.019],[481.979,72.675],[480.857,80.333],[479.735,87.989],[478.191,95.563],[476.339,103.074],[474.487,110.588],[472.633,118.102],[470.781,125.615],[468.929,133.129],[466.708,140.532],[464.148,147.834],[461.588,155.135],[459.031,162.44],[456.471,169.742],[453.913,177.046],[450.992,184.201],[447.758,191.23],[444.521,198.26],[441.287,205.29],[438.05,212.319],[434.816,219.349],[431.199,226.181],[427.324,232.878],[423.447,239.576],[419.57,246.273],[415.695,252.97],[411.817,259.667],[407.526,266.098],[403.049,272.407],[398.57,278.719],[394.093,285.029],[389.614,291.341],[385.137,297.65],[380.204,303.606],[375.167,309.479],[370.126,315.353],[365.088,321.227],[360.05,327.098],[355.012,332.972],[349.488,338.388],[343.934,343.775],[338.378,349.162],[332.825,354.55],[327.269,359.939],[321.679,365.286],[315.654,370.143],[309.631,374.998],[303.606,379.855],[297.58,384.71],[291.557,389.568],[285.445,394.307],[279.001,398.589],[272.556,402.871],[266.11,407.153],[259.665,411.435],[253.218,415.716],[246.656,419.803],[239.843,423.471],[233.028,427.136],[226.215,430.804],[219.399,434.469],[212.586,438.137],[205.646,441.54],[198.517,444.555],[191.392,447.568],[184.263,450.58],[177.137,453.596],[170.009,456.608],[162.77,459.313],[155.388,461.639],[148.01,463.965],[140.628,466.292],[133.25,468.62],[125.868,470.947],[118.405,472.958],[110.836,474.569],[103.269,476.18],[95.7,477.791],[88.131,479.402],[80.562,481.013],[72.957,482.405],[65.284,483.405],[57.609,484.402],[49.937,485.401],[42.25,486.246],[34.519,486.622],[26.791,486.995],[19.063,487.371],[11.333,487.744],[3.605,488.12],[-4.249,488.5],[-11.977,488.127],[-19.707,487.752],[-27.435,487.376],[-35.166,487.003],[-42.894,486.627],[-50.624,486.254],[-58.299,485.326],[-65.955,484.204],[-73.611,483.084],[-81.269,481.962],[-88.925,480.84],[-96.581,479.72],[-104.152,478.164],[-111.666,476.312],[-119.179,474.461],[-126.691,472.609],[-134.204,470.757],[-141.718,468.905],[-149.119,466.675],[-156.42,464.115],[-163.725,461.557],[-171.026,458.997],[-178.331,456.437],[-185.632,453.88],[-192.787,450.951],[-199.814,447.715],[-206.844,444.48],[-213.874,441.246],[-220.903,438.01],[-227.933,434.775],[-234.76,431.151],[-241.458,427.274],[-248.155,423.399],[-254.852,419.521],[-261.55,415.647],[-268.247,411.769],[-274.672,407.471],[-280.984,402.991],[-287.294,398.514],[-293.606,394.035],[-299.915,389.558],[-306.225,385.079],[-312.178,380.142],[-318.049,375.101],[-323.923,370.064],[-329.797,365.025],[-335.67,359.987],[-341.542,354.95],[-346.953,349.418],[-352.34,343.864],[-357.727,338.308],[-363.115,332.755],[-368.502,327.199],[-373.843,321.605],[-378.701,315.58],[-383.556,309.557],[-388.413,303.531],[-393.268,297.506],[-398.125,291.483],[-402.858,285.366],[-407.14,278.921],[-411.421,272.477],[-415.703,266.03],[-419.985,259.586],[-424.267,253.139],[-428.346,246.574],[-432.014,239.759],[-435.68,232.943],[-439.347,226.13],[-443.015,219.315],[-446.68,212.502],[-450.076,205.557],[-453.091,198.431],[-456.104,191.303],[-459.116,184.177],[-462.132,177.048],[-465.144,169.922],[-467.841,162.678],[-470.168,155.297],[-472.494,147.918],[-474.821,140.537],[-477.147,133.158],[-479.473,125.777],[-481.477,118.311],[-483.088,110.744],[-484.699,103.176],[-486.31,95.606],[-487.921,88.037],[-489.532,80.468],[-490.917,72.863],[-491.917,65.188],[-492.914,57.515],[-493.913,49.843],[-494.751,42.153],[-495.127,34.425],[-495.5,26.697],[-495.876,18.967],[-496.249,11.239],[-496.625,3.508],[-496.998,-4.22],[-496.627,-11.95],[-496.254,-19.678],[-495.878,-27.406],[-495.502,-35.137],[-495.129,-42.865],[-494.754,-50.595],[-493.831,-58.27],[-492.709,-65.926],[-491.589,-73.584],[-490.467,-81.24],[-489.345,-88.896],[-488.225,-96.552],[-486.674,-104.126],[-484.82,-111.637],[-482.968,-119.151],[-481.116,-126.664],[-479.264,-134.178],[-477.412,-141.692],[-475.184,-149.092],[-472.624,-156.394],[-470.067,-163.698],[-467.507,-171],[-464.949,-178.304],[-462.389,-185.606],[-459.463,-192.761],[-456.229,-199.79],[-452.992,-206.82],[-449.758,-213.847],[-446.524,-220.877],[-443.287,-227.906],[-439.665,-234.736],[-435.79,-241.434],[-431.913,-248.131],[-428.038,-254.828],[-424.161,-261.526],[-420.284,-268.223],[-415.987,-274.65],[-411.51,-280.96],[-407.031,-287.272],[-402.554,-293.582],[-398.075,-299.894],[-393.598,-306.203],[-388.661,-312.156],[-383.623,-318.03],[-378.585,-323.901],[-373.547,-329.775],[-368.507,-335.649],[-363.469,-341.522],[-357.942,-346.934],[-352.386,-352.321],[-346.832,-357.708],[-341.277,-363.095],[-335.723,-368.485],[-330.129,-373.826],[-324.103,-378.684],[-318.08,-383.539],[-312.055,-388.396],[-306.03,-393.251],[-300.007,-398.109],[-293.892,-402.843],[-287.448,-407.125],[-281.001,-411.407],[-274.556,-415.689],[-268.11,-419.971],[-261.665,-424.252],[-255.1,-428.334],[-248.285,-432.002],[-241.472,-435.667],[-234.657,-439.335],[-227.844,-443.003],[-221.029,-446.668],[-214.086,-450.066],[-206.96,-453.081],[-199.831,-456.094],[-192.705,-459.107],[-185.577,-462.122],[-178.451,-465.135],[-171.207,-467.834],[-163.828,-470.161],[-156.447,-472.487],[-149.068,-474.813],[-141.687,-477.14],[-134.308,-479.466],[-126.842,-481.472],[-119.273,-483.083],[-111.704,-484.694],[-104.138,-486.306],[-96.569,-487.917],[-88.999,-489.528],[-81.392,-490.917],[-73.719,-491.914],[-66.046,-492.914],[-58.371,-493.911],[-50.684,-494.751],[-42.956,-495.127],[-35.226,-495.5],[-27.498,-495.876],[-19.77,-496.251],[-12.039,-496.625],[-4.311,-497]],"c":true}]},{"t":180,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.652,-437.366],[8.33,-437.659],[17.312,-437.953],[26.249,-438.778],[35.158,-439.948],[44.07,-441.114],[52.848,-442.998],[61.602,-445.033],[70.348,-447.09],[78.906,-449.835],[87.432,-452.668],[95.787,-455.975],[104.114,-459.352],[112.356,-462.932],[120.6,-466.51],[128.842,-470.088],[137.086,-473.668],[145.494,-476.842],[153.901,-480.013],[162.309,-483.184],[170.98,-485.538],[179.663,-487.853],[188.349,-490.149],[197.221,-491.579],[206.092,-493.009],[214.984,-494.276],[223.954,-494.806],[232.926,-495.333],[241.897,-495.501],[250.877,-495.127],[259.857,-494.753],[268.778,-493.782],[277.678,-492.525],[286.574,-491.265],[295.31,-489.158],[304.044,-487.043],[312.697,-484.654],[321.19,-481.719],[329.683,-478.781],[337.963,-475.306],[346.144,-471.59],[354.301,-467.824],[362.109,-463.379],[369.919,-458.93],[377.531,-454.173],[384.91,-449.042],[392.286,-443.909],[399.256,-438.244],[406.146,-432.478],[412.915,-426.575],[419.27,-420.22],[425.623,-413.867],[431.614,-407.178],[437.38,-400.286],[443.14,-393.391],[448.274,-386.013],[453.404,-378.636],[458.262,-371.087],[462.71,-363.279],[467.158,-355.469],[471.032,-347.367],[474.745,-339.186],[478.338,-330.954],[481.276,-322.461],[484.212,-313.968],[486.723,-305.35],[488.838,-296.616],[490.956,-287.883],[492.333,-279.009],[493.59,-270.109],[494.694,-261.198],[495.065,-252.221],[495.439,-243.241],[495.406,-234.267],[494.88,-225.295],[494.35,-216.325],[493.216,-207.421],[491.786,-198.549],[490.356,-189.678],[488.193,-180.962],[485.878,-172.278],[483.559,-163.597],[480.481,-155.159],[477.307,-146.752],[474.136,-138.342],[470.618,-130.075],[467.038,-121.833],[463.46,-113.589],[459.882,-105.347],[456.543,-97.007],[453.374,-88.597],[450.208,-80.187],[447.684,-71.571],[445.361,-62.891],[443.04,-54.21],[441.544,-45.348],[440.087,-36.481],[438.775,-27.597],[438.19,-18.63],[437.605,-9.663],[437.362,-0.691],[437.653,8.291],[437.947,17.273],[438.77,26.21],[439.939,35.121],[441.105,44.031],[442.987,52.812],[445.022,61.566],[447.074,70.312],[449.819,78.87],[452.649,87.395],[455.956,95.753],[459.333,104.08],[462.911,112.322],[466.488,120.566],[470.069,128.808],[473.646,137.052],[476.823,145.458],[479.994,153.865],[483.165,162.275],[485.521,170.943],[487.84,179.627],[490.138,188.313],[491.568,197.184],[492.998,206.056],[494.27,214.945],[494.799,223.917],[495.326,232.887],[495.497,241.861],[495.123,250.838],[494.752,259.818],[493.783,268.742],[492.524,277.641],[491.267,286.538],[489.162,295.274],[487.047,304.008],[484.661,312.664],[481.725,321.156],[478.787,329.649],[475.315,337.926],[471.599,346.11],[467.838,354.267],[463.39,362.077],[458.944,369.885],[454.19,377.502],[449.059,384.879],[443.925,392.255],[438.263,399.227],[432.497,406.117],[426.596,412.888],[420.241,419.241],[413.888,425.596],[407.202,431.588],[400.31,437.356],[393.415,443.119],[386.039,448.252],[378.663,453.383],[371.113,458.243],[363.305,462.691],[355.498,467.14],[347.396,471.016],[339.215,474.732],[330.985,478.327],[322.492,481.265],[314,484.2],[305.381,486.714],[296.648,488.832],[287.914,490.947],[279.04,492.327],[270.143,493.586],[261.231,494.693],[252.252,495.067],[243.275,495.44],[234.298,495.41],[225.328,494.883],[216.356,494.354],[207.452,493.225],[198.581,491.795],[189.709,490.365],[180.993,488.207],[172.309,485.889],[163.628,483.573],[155.188,480.495],[146.781,477.323],[138.373,474.152],[130.106,470.634],[121.862,467.057],[113.62,463.476],[105.376,459.899],[97.036,456.559],[88.626,453.39],[80.216,450.224],[71.603,447.695],[62.922,445.374],[54.241,443.054],[45.382,441.553],[36.515,440.095],[27.631,438.781],[18.664,438.196],[9.697,437.612],[0.723,437.363],[-8.259,437.654],[-17.239,437.948],[-26.178,438.768],[-35.088,439.935],[-43.999,441.104],[-52.781,442.981],[-61.534,445.016],[-70.283,447.065],[-78.839,449.81],[-87.367,452.638],[-95.721,455.945],[-104.048,459.319],[-112.293,462.897],[-120.535,466.477],[-128.779,470.055],[-137.021,473.633],[-145.429,476.811],[-153.836,479.983],[-162.243,483.154],[-170.912,485.515],[-179.595,487.831],[-188.281,490.134],[-197.153,491.564],[-206.025,492.994],[-214.914,494.269],[-223.883,494.798],[-232.855,495.325],[-241.827,495.501],[-250.807,495.127],[-259.786,494.753],[-268.711,493.789],[-277.607,492.53],[-286.507,491.273],[-295.243,489.173],[-303.976,487.056],[-312.632,484.674],[-321.125,481.737],[-329.618,478.801],[-337.897,475.331],[-346.079,471.615],[-354.241,467.854],[-362.048,463.409],[-369.856,458.96],[-377.473,454.211],[-384.85,449.078],[-392.229,443.947],[-399.201,438.287],[-406.093,432.518],[-412.865,426.62],[-419.22,420.265],[-425.572,413.912],[-431.566,407.228],[-437.334,400.336],[-443.1,393.444],[-448.231,386.068],[-453.364,378.689],[-458.226,371.145],[-462.675,363.334],[-467.123,355.526],[-471.002,347.428],[-474.718,339.246],[-478.316,331.017],[-481.254,322.524],[-484.192,314.031],[-486.708,305.415],[-488.823,296.682],[-490.941,287.948],[-492.323,279.074],[-493.582,270.177],[-494.694,261.265],[-495.068,252.286],[-495.439,243.309],[-495.417,234.332],[-494.887,225.362],[-494.36,216.39],[-493.234,207.486],[-491.804,198.614],[-490.374,189.743],[-488.218,181.024],[-485.9,172.343],[-483.584,163.66],[-480.511,155.22],[-477.34,146.812],[-474.168,138.405],[-470.651,130.138],[-467.07,121.896],[-463.49,113.652],[-459.91,105.41],[-456.568,97.072],[-453.402,88.66],[-450.235,80.25],[-447.704,71.637],[-445.383,62.956],[-443.062,54.275],[-441.562,45.416],[-440.104,36.549],[-438.785,27.665],[-438.2,18.698],[-437.618,9.731],[-437.365,0.759],[-437.658,-8.223],[-437.949,-17.205],[-438.767,-26.145],[-439.934,-35.054],[-441.103,-43.963],[-442.977,-52.747],[-445.012,-61.498],[-447.059,-70.249],[-449.804,-78.805],[-452.631,-87.333],[-455.936,-95.69],[-459.31,-104.017],[-462.891,-112.259],[-466.468,-120.503],[-470.046,-128.745],[-473.684,-137.12],[-476.855,-145.53],[-480.027,-153.938],[-483.198,-162.345],[-485.546,-171.019],[-487.865,-179.699],[-490.153,-188.388],[-491.583,-197.26],[-493.013,-206.131],[-494.277,-215.023],[-494.807,-223.993],[-495.334,-232.965],[-495.497,-241.936],[-495.123,-250.916],[-494.752,-259.896],[-493.776,-268.817],[-492.516,-277.717],[-491.259,-286.613],[-489.149,-295.349],[-487.032,-304.083],[-484.641,-312.734],[-481.703,-321.227],[-478.767,-329.722],[-475.287,-337.996],[-471.572,-346.181],[-467.803,-354.335],[-463.357,-362.143],[-458.909,-369.953],[-454.149,-377.565],[-449.019,-384.941],[-443.885,-392.318],[-438.218,-399.285],[-432.452,-406.177],[-426.546,-412.944],[-420.193,-419.296],[-413.838,-425.652],[-407.147,-431.638],[-400.257,-437.406],[-393.358,-443.164],[-385.981,-448.295],[-378.605,-453.428],[-371.053,-458.283],[-363.245,-462.731],[-355.435,-467.177],[-347.334,-471.048],[-339.149,-474.764],[-330.917,-478.354],[-322.425,-481.29],[-313.932,-484.228],[-305.314,-486.734],[-296.58,-488.852],[-287.846,-490.967],[-278.97,-492.342],[-270.073,-493.599],[-261.161,-494.7],[-252.182,-495.072],[-243.202,-495.445],[-234.228,-495.41],[-225.258,-494.883],[-216.286,-494.354],[-207.382,-493.217],[-198.51,-491.787],[-189.639,-490.357],[-180.925,-488.192],[-172.242,-485.874],[-163.558,-483.558],[-155.123,-480.475],[-146.716,-477.301],[-138.306,-474.129],[-130.041,-470.609],[-121.797,-467.029],[-113.555,-463.449],[-105.313,-459.871],[-96.971,-456.534],[-88.561,-453.368],[-80.151,-450.199],[-71.535,-447.678],[-62.854,-445.357],[-54.171,-443.036],[-45.312,-441.543],[-36.445,-440.086],[-27.561,-438.778],[-18.594,-438.194],[-9.624,-437.609]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":150,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[221,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":66,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":76,"s":[105,105,100]},{"t":86,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":86,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":156,"s":[0]},{"t":186,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[221]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":300,"s":[225.785]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[225.785]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":398,"s":[288.943]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":456,"s":[288.943]},{"t":486,"s":[349.708]}],"ix":3},"y":{"a":0,"k":56,"ix":4}},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":88,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":98,"s":[105,105,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":108,"s":[100,100,100]},{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":540,"s":[100,100,100]},{"t":552,"s":[20,20,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":156,"s":[22]},{"t":186,"s":[15]}],"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":88,"op":552,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":72,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":82,"s":[105,105,100]},{"t":92,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":92,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[275,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":94,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":104,"s":[105,105,100]},{"t":114,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":94,"op":162,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":162,"s":[0]},{"t":192,"s":[90]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[275.262]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":300,"s":[286.267]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":366,"s":[286.267]},{"t":396,"s":[349.664]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":450,"s":[50,50,100]},{"t":462,"s":[20,20,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":162,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.419,-496.632],[11.147,-496.256],[18.878,-495.883],[26.606,-495.507],[34.334,-495.132],[42.064,-494.758],[49.739,-493.839],[57.397,-492.716],[65.053,-491.594],[72.709,-490.474],[80.365,-489.352],[88.023,-488.232],[95.594,-486.684],[103.108,-484.832],[110.622,-482.977],[118.135,-481.125],[125.647,-479.273],[133.16,-477.422],[140.563,-475.196],[147.865,-472.639],[155.169,-470.079],[162.471,-467.521],[169.773,-464.961],[177.077,-462.401],[184.232,-459.48],[191.262,-456.243],[198.291,-453.009],[205.321,-449.772],[212.35,-446.538],[219.378,-443.302],[226.21,-439.684],[232.907,-435.807],[239.604,-431.932],[246.302,-428.055],[252.999,-424.178],[259.696,-420.303],[266.124,-416.009],[272.436,-411.53],[278.746,-407.053],[285.058,-402.573],[291.367,-398.097],[297.679,-393.617],[303.632,-388.683],[309.506,-383.645],[315.38,-378.607],[321.251,-373.569],[327.125,-368.531],[332.998,-363.493],[338.412,-357.966],[343.799,-352.41],[349.187,-346.857],[354.574,-341.301],[359.963,-335.747],[365.307,-330.155],[370.165,-324.13],[375.02,-318.107],[379.877,-312.082],[384.732,-306.056],[389.59,-300.033],[394.326,-293.921],[398.608,-287.474],[402.89,-281.03],[407.172,-274.585],[411.454,-268.138],[415.736,-261.694],[419.82,-255.129],[423.488,-248.316],[427.153,-241.501],[430.821,-234.688],[434.486,-227.873],[438.154,-221.057],[441.554,-214.117],[444.569,-206.989],[447.582,-199.863],[450.595,-192.734],[453.61,-185.608],[456.623,-178.48],[459.325,-171.238],[461.651,-163.859],[463.977,-156.478],[466.304,-149.099],[468.63,-141.718],[470.956,-134.339],[472.967,-126.876],[474.579,-119.307],[476.19,-111.738],[477.798,-104.169],[479.409,-96.6],[481.021,-89.033],[482.413,-81.425],[483.41,-73.753],[484.409,-66.078],[485.408,-58.405],[486.251,-50.718],[486.624,-42.99],[487,-35.26],[487.374,-27.532],[487.749,-19.801],[488.125,-12.073],[488.498,-4.345],[488.132,3.385],[487.759,11.113],[487.383,18.844],[487.01,26.572],[486.634,34.302],[486.258,42.03],[485.341,49.708],[484.221,57.363],[483.099,65.019],[481.979,72.675],[480.857,80.333],[479.735,87.989],[478.191,95.563],[476.339,103.074],[474.487,110.588],[472.633,118.102],[470.781,125.615],[468.929,133.129],[466.708,140.532],[464.148,147.834],[461.588,155.135],[459.031,162.44],[456.471,169.742],[453.913,177.046],[450.992,184.201],[447.758,191.23],[444.521,198.26],[441.287,205.29],[438.05,212.319],[434.816,219.349],[431.199,226.181],[427.324,232.878],[423.447,239.576],[419.57,246.273],[415.695,252.97],[411.817,259.667],[407.526,266.098],[403.049,272.407],[398.57,278.719],[394.093,285.029],[389.614,291.341],[385.137,297.65],[380.204,303.606],[375.167,309.479],[370.126,315.353],[365.088,321.227],[360.05,327.098],[355.012,332.972],[349.488,338.388],[343.934,343.775],[338.378,349.162],[332.825,354.55],[327.269,359.939],[321.679,365.286],[315.654,370.143],[309.631,374.998],[303.606,379.855],[297.58,384.71],[291.557,389.568],[285.445,394.307],[279.001,398.589],[272.556,402.871],[266.11,407.153],[259.665,411.435],[253.218,415.716],[246.656,419.803],[239.843,423.471],[233.028,427.136],[226.215,430.804],[219.399,434.469],[212.586,438.137],[205.646,441.54],[198.517,444.555],[191.392,447.568],[184.263,450.58],[177.137,453.596],[170.009,456.608],[162.77,459.313],[155.388,461.639],[148.01,463.965],[140.628,466.292],[133.25,468.62],[125.868,470.947],[118.405,472.958],[110.836,474.569],[103.269,476.18],[95.7,477.791],[88.131,479.402],[80.562,481.013],[72.957,482.405],[65.284,483.405],[57.609,484.402],[49.937,485.401],[42.25,486.246],[34.519,486.622],[26.791,486.995],[19.063,487.371],[11.333,487.744],[3.605,488.12],[-4.249,488.5],[-11.977,488.127],[-19.707,487.752],[-27.435,487.376],[-35.166,487.003],[-42.894,486.627],[-50.624,486.254],[-58.299,485.326],[-65.955,484.204],[-73.611,483.084],[-81.269,481.962],[-88.925,480.84],[-96.581,479.72],[-104.152,478.164],[-111.666,476.312],[-119.179,474.461],[-126.691,472.609],[-134.204,470.757],[-141.718,468.905],[-149.119,466.675],[-156.42,464.115],[-163.725,461.557],[-171.026,458.997],[-178.331,456.437],[-185.632,453.88],[-192.787,450.951],[-199.814,447.715],[-206.844,444.48],[-213.874,441.246],[-220.903,438.01],[-227.933,434.775],[-234.76,431.151],[-241.458,427.274],[-248.155,423.399],[-254.852,419.521],[-261.55,415.647],[-268.247,411.769],[-274.672,407.471],[-280.984,402.991],[-287.294,398.514],[-293.606,394.035],[-299.915,389.558],[-306.225,385.079],[-312.178,380.142],[-318.049,375.101],[-323.923,370.064],[-329.797,365.025],[-335.67,359.987],[-341.542,354.95],[-346.953,349.418],[-352.34,343.864],[-357.727,338.308],[-363.115,332.755],[-368.502,327.199],[-373.843,321.605],[-378.701,315.58],[-383.556,309.557],[-388.413,303.531],[-393.268,297.506],[-398.125,291.483],[-402.858,285.366],[-407.14,278.921],[-411.421,272.477],[-415.703,266.03],[-419.985,259.586],[-424.267,253.139],[-428.346,246.574],[-432.014,239.759],[-435.68,232.943],[-439.347,226.13],[-443.015,219.315],[-446.68,212.502],[-450.076,205.557],[-453.091,198.431],[-456.104,191.303],[-459.116,184.177],[-462.132,177.048],[-465.144,169.922],[-467.841,162.678],[-470.168,155.297],[-472.494,147.918],[-474.821,140.537],[-477.147,133.158],[-479.473,125.777],[-481.477,118.311],[-483.088,110.744],[-484.699,103.176],[-486.31,95.606],[-487.921,88.037],[-489.532,80.468],[-490.917,72.863],[-491.917,65.188],[-492.914,57.515],[-493.913,49.843],[-494.751,42.153],[-495.127,34.425],[-495.5,26.697],[-495.876,18.967],[-496.249,11.239],[-496.625,3.508],[-496.998,-4.22],[-496.627,-11.95],[-496.254,-19.678],[-495.878,-27.406],[-495.502,-35.137],[-495.129,-42.865],[-494.754,-50.595],[-493.831,-58.27],[-492.709,-65.926],[-491.589,-73.584],[-490.467,-81.24],[-489.345,-88.896],[-488.225,-96.552],[-486.674,-104.126],[-484.82,-111.637],[-482.968,-119.151],[-481.116,-126.664],[-479.264,-134.178],[-477.412,-141.692],[-475.184,-149.092],[-472.624,-156.394],[-470.067,-163.698],[-467.507,-171],[-464.949,-178.304],[-462.389,-185.606],[-459.463,-192.761],[-456.229,-199.79],[-452.992,-206.82],[-449.758,-213.847],[-446.524,-220.877],[-443.287,-227.906],[-439.665,-234.736],[-435.79,-241.434],[-431.913,-248.131],[-428.038,-254.828],[-424.161,-261.526],[-420.284,-268.223],[-415.987,-274.65],[-411.51,-280.96],[-407.031,-287.272],[-402.554,-293.582],[-398.075,-299.894],[-393.598,-306.203],[-388.661,-312.156],[-383.623,-318.03],[-378.585,-323.901],[-373.547,-329.775],[-368.507,-335.649],[-363.469,-341.522],[-357.942,-346.934],[-352.386,-352.321],[-346.832,-357.708],[-341.277,-363.095],[-335.723,-368.485],[-330.129,-373.826],[-324.103,-378.684],[-318.08,-383.539],[-312.055,-388.396],[-306.03,-393.251],[-300.007,-398.109],[-293.892,-402.843],[-287.448,-407.125],[-281.001,-411.407],[-274.556,-415.689],[-268.11,-419.971],[-261.665,-424.252],[-255.1,-428.334],[-248.285,-432.002],[-241.472,-435.667],[-234.657,-439.335],[-227.844,-443.003],[-221.029,-446.668],[-214.086,-450.066],[-206.96,-453.081],[-199.831,-456.094],[-192.705,-459.107],[-185.577,-462.122],[-178.451,-465.135],[-171.207,-467.834],[-163.828,-470.161],[-156.447,-472.487],[-149.068,-474.813],[-141.687,-477.14],[-134.308,-479.466],[-126.842,-481.472],[-119.273,-483.083],[-111.704,-484.694],[-104.138,-486.306],[-96.569,-487.917],[-88.999,-489.528],[-81.392,-490.917],[-73.719,-491.914],[-66.046,-492.914],[-58.371,-493.911],[-50.684,-494.751],[-42.956,-495.127],[-35.226,-495.5],[-27.498,-495.876],[-19.77,-496.251],[-12.039,-496.625],[-4.311,-497]],"c":true}]},{"t":192,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.428,-491.836],[14.758,-490.711],[22.933,-488.794],[30.879,-486.091],[38.523,-482.63],[45.798,-478.436],[52.619,-473.52],[58.782,-467.809],[64.461,-461.621],[69.338,-454.782],[73.871,-447.708],[78.192,-440.497],[82.517,-433.286],[86.839,-426.075],[91.16,-418.864],[95.482,-411.653],[99.804,-404.442],[104.126,-397.231],[108.483,-390.044],[113.214,-383.095],[118.623,-376.662],[124.659,-370.811],[131.256,-365.6],[138.343,-361.084],[145.852,-357.302],[153.702,-354.292],[161.813,-352.086],[170.105,-350.705],[178.493,-350.164],[186.896,-350.481],[195.21,-351.684],[203.407,-353.545],[211.562,-355.588],[219.718,-357.63],[227.872,-359.673],[236.027,-361.716],[244.181,-363.761],[252.338,-365.803],[260.492,-367.846],[268.646,-369.889],[276.914,-371.411],[285.269,-372.203],[293.657,-372.215],[302.017,-371.414],[310.252,-369.719],[318.231,-367.08],[325.908,-363.685],[333.216,-359.562],[340.096,-354.753],[346.486,-349.301],[352.314,-343.241],[357.412,-336.56],[361.837,-329.422],[365.549,-321.897],[368.509,-314.043],[370.689,-305.936],[372.039,-297.638],[372.361,-289.24],[372.004,-280.849],[370.621,-272.565],[368.824,-264.356],[366.781,-256.2],[364.736,-248.045],[362.693,-239.891],[360.651,-231.737],[358.608,-223.58],[356.565,-215.426],[354.522,-207.272],[352.518,-199.108],[350.948,-190.852],[350.222,-182.478],[350.352,-174.071],[351.328,-165.723],[353.146,-157.514],[355.778,-149.53],[359.199,-141.853],[363.374,-134.555],[368.261,-127.715],[373.81,-121.4],[379.976,-115.683],[386.704,-110.652],[393.816,-106.172],[401.027,-101.85],[408.238,-97.528],[415.449,-93.207],[422.657,-88.885],[429.868,-84.563],[437.079,-80.241],[444.29,-75.919],[451.501,-71.597],[458.424,-66.826],[464.892,-61.481],[470.836,-55.558],[476.182,-49.083],[480.806,-42.061],[484.584,-34.554],[487.613,-26.727],[489.868,-18.643],[491.334,-10.378],[492.001,-2.006],[491.837,6.399],[490.717,14.73],[488.802,22.906],[486.104,30.852],[482.645,38.498],[478.456,45.775],[473.541,52.596],[467.831,58.762],[461.649,64.443],[454.811,69.326],[447.737,73.86],[440.526,78.18],[433.315,82.501],[426.105,86.823],[418.894,91.145],[411.68,95.465],[404.469,99.786],[397.258,104.108],[390.069,108.463],[383.12,113.192],[376.687,118.601],[370.833,124.635],[365.62,131.228],[361.1,138.316],[357.315,145.823],[354.303,153.672],[352.094,161.784],[350.711,170.075],[350.167,178.464],[350.487,186.866],[351.683,195.181],[353.544,203.378],[355.589,211.532],[357.631,219.686],[359.674,227.843],[361.717,235.997],[363.762,244.151],[365.805,252.306],[367.847,260.462],[369.892,268.617],[371.413,276.884],[372.209,285.237],[372.224,293.628],[371.424,301.988],[369.729,310.223],[367.095,318.202],[363.7,325.879],[359.582,333.191],[354.775,340.071],[349.328,346.464],[343.269,352.292],[336.587,357.392],[329.452,361.82],[321.927,365.534],[314.075,368.499],[305.968,370.683],[297.67,372.031],[289.272,372.357],[280.883,372.005],[272.597,370.622],[264.388,368.83],[256.234,366.785],[248.077,364.742],[239.923,362.699],[231.769,360.657],[223.615,358.614],[215.458,356.571],[207.304,354.526],[199.14,352.521],[190.884,350.949],[182.51,350.221],[174.105,350.344],[165.754,351.32],[157.546,353.134],[149.562,355.763],[141.88,359.181],[134.582,363.354],[127.74,368.236],[121.423,373.785],[115.708,379.949],[110.672,386.673],[106.19,393.784],[101.868,400.995],[97.546,408.206],[93.224,415.417],[88.902,422.628],[84.581,429.839],[80.259,437.05],[75.937,444.261],[71.615,451.472],[66.846,458.394],[61.503,464.868],[55.583,470.811],[49.11,476.162],[42.088,480.786],[34.586,484.569],[26.758,487.6],[18.675,489.86],[10.412,491.328],[2.04,492],[-6.367,491.834],[-14.696,490.718],[-22.874,488.808],[-30.82,486.115],[-38.469,482.661],[-45.748,478.474],[-52.569,473.559],[-58.737,467.851],[-64.421,461.671],[-69.305,454.836],[-73.842,447.762],[-78.164,440.551],[-82.484,433.34],[-86.805,426.13],[-91.127,418.918],[-95.449,411.708],[-99.769,404.497],[-104.09,397.283],[-108.445,390.094],[-113.171,383.143],[-118.576,376.707],[-124.607,370.851],[-131.201,365.636],[-138.287,361.113],[-145.793,357.325],[-153.64,354.309],[-161.749,352.098],[-170.041,350.71],[-178.432,350.169],[-186.832,350.483],[-195.149,351.675],[-203.346,353.533],[-211.5,355.578],[-219.654,357.621],[-227.809,359.664],[-235.965,361.706],[-244.12,363.751],[-252.274,365.794],[-260.428,367.837],[-268.585,369.882],[-276.85,371.404],[-285.205,372.204],[-293.594,372.225],[-301.956,371.43],[-310.191,369.735],[-318.17,367.104],[-325.849,363.716],[-333.162,359.6],[-340.046,354.796],[-346.442,349.351],[-352.269,343.291],[-357.371,336.612],[-361.804,329.482],[-365.521,321.956],[-368.488,314.107],[-370.677,306],[-372.025,297.702],[-372.356,289.304],[-372.006,280.915],[-370.628,272.629],[-368.836,264.42],[-366.793,256.264],[-364.75,248.109],[-362.708,239.955],[-360.662,231.801],[-358.62,223.646],[-356.577,215.49],[-354.532,207.336],[-352.527,199.172],[-350.95,190.916],[-350.22,182.542],[-350.34,174.137],[-351.312,165.786],[-353.123,157.578],[-355.749,149.591],[-359.166,141.91],[-363.334,134.609],[-368.216,127.765],[-373.763,121.447],[-379.924,115.728],[-386.645,110.688],[-393.755,106.205],[-400.968,101.886],[-408.179,97.564],[-415.39,93.242],[-422.601,88.923],[-429.814,84.601],[-437.025,80.281],[-444.236,75.96],[-451.449,71.64],[-458.372,66.871],[-464.845,61.533],[-470.793,55.615],[-476.148,49.144],[-480.771,42.123],[-484.556,34.621],[-487.591,26.795],[-489.854,18.714],[-491.327,10.451],[-492.001,2.077],[-491.837,-6.328],[-490.724,-14.659],[-488.818,-22.835],[-486.128,-30.786],[-482.678,-38.434],[-478.496,-45.716],[-473.581,-52.537],[-467.878,-58.71],[-461.701,-64.396],[-454.868,-69.283],[-447.796,-73.822],[-440.586,-78.144],[-433.375,-82.463],[-426.161,-86.785],[-418.95,-91.107],[-411.739,-95.429],[-404.529,-99.751],[-397.318,-104.073],[-390.126,-108.425],[-383.172,-113.146],[-376.732,-118.549],[-370.874,-124.578],[-365.656,-131.167],[-361.128,-138.252],[-357.338,-145.757],[-354.319,-153.601],[-352.104,-161.71],[-350.714,-170.002],[-350.17,-178.393],[-350.482,-186.793],[-351.666,-195.11],[-353.525,-203.307],[-355.567,-211.461],[-357.61,-219.618],[-359.655,-227.772],[-361.698,-235.926],[-363.741,-244.081],[-365.783,-252.237],[-367.826,-260.391],[-369.871,-268.546],[-371.396,-276.813],[-372.202,-285.166],[-372.226,-293.555],[-371.436,-301.917],[-369.741,-310.152],[-367.117,-318.133],[-363.731,-325.815],[-359.617,-333.13],[-354.818,-340.017],[-349.378,-346.414],[-343.318,-352.242],[-336.642,-357.349],[-329.511,-361.784],[-321.991,-365.505],[-314.141,-368.475],[-306.037,-370.669],[-297.738,-372.017],[-289.34,-372.35],[-280.952,-372.005],[-272.665,-370.629],[-264.454,-368.839],[-256.3,-366.796],[-248.146,-364.754],[-239.989,-362.709],[-231.835,-360.666],[-223.681,-358.623],[-215.526,-356.581],[-207.372,-354.535],[-199.208,-352.528],[-190.953,-350.951],[-182.578,-350.216],[-174.174,-350.334],[-165.823,-351.306],[-157.612,-353.115],[-149.626,-355.736],[-141.942,-359.148],[-134.639,-363.314],[-127.794,-368.194],[-121.477,-373.74],[-115.753,-379.899],[-110.708,-386.616],[-106.225,-393.725],[-101.903,-400.936],[-97.582,-408.147],[-93.26,-415.36],[-88.94,-422.571],[-84.618,-429.782],[-80.297,-436.993],[-75.975,-444.204],[-71.584,-451.531],[-66.813,-458.453],[-61.463,-464.917],[-55.538,-470.858],[-49.058,-476.202],[-42.039,-480.826],[-34.53,-484.599],[-26.699,-487.623],[-18.616,-489.876],[-10.351,-491.337],[-1.977,-491.999]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":162,"op":462,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[329,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.18,0.18,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[-0.009,-0.009,0]},"t":78,"s":[100,100,100]},{"i":{"x":[0.325,0.325,0.667],"y":[1,1,1]},"o":{"x":[0.678,0.678,0.333],"y":[0,0,0]},"t":88,"s":[105,105,100]},{"t":98,"s":[40,40,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":98,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[329,56,0],"ix":2,"l":2},"a":{"a":0,"k":[-83.117,-32.398,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.178,0.178,0.667],"y":[1,1,1]},"o":{"x":[0.562,0.562,0.333],"y":[0,0,0]},"t":100,"s":[40,40,100]},{"i":{"x":[0.351,0.351,0.667],"y":[1,1,1]},"o":{"x":[0.762,0.762,0.333],"y":[0,0,0]},"t":110,"s":[105,105,100]},{"t":120,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[44,44],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":22,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-83.117,-32.398],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":100,"op":168,"st":-10,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":168,"s":[0]},{"t":198,"s":[180]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[329.262]},{"t":300,"s":[348.401]}],"ix":3},"y":{"a":0,"k":56.117,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":360,"s":[50,50,100]},{"t":372,"s":[20,20,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":168,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[3.419,-496.632],[11.147,-496.256],[18.878,-495.883],[26.606,-495.507],[34.334,-495.132],[42.064,-494.758],[49.739,-493.839],[57.397,-492.716],[65.053,-491.594],[72.709,-490.474],[80.365,-489.352],[88.023,-488.232],[95.594,-486.684],[103.108,-484.832],[110.622,-482.977],[118.135,-481.125],[125.647,-479.273],[133.16,-477.422],[140.563,-475.196],[147.865,-472.639],[155.169,-470.079],[162.471,-467.521],[169.773,-464.961],[177.077,-462.401],[184.232,-459.48],[191.262,-456.243],[198.291,-453.009],[205.321,-449.772],[212.35,-446.538],[219.378,-443.302],[226.21,-439.684],[232.907,-435.807],[239.604,-431.932],[246.302,-428.055],[252.999,-424.178],[259.696,-420.303],[266.124,-416.009],[272.436,-411.53],[278.746,-407.053],[285.058,-402.573],[291.367,-398.097],[297.679,-393.617],[303.632,-388.683],[309.506,-383.645],[315.38,-378.607],[321.251,-373.569],[327.125,-368.531],[332.998,-363.493],[338.412,-357.966],[343.799,-352.41],[349.187,-346.857],[354.574,-341.301],[359.963,-335.747],[365.307,-330.155],[370.165,-324.13],[375.02,-318.107],[379.877,-312.082],[384.732,-306.056],[389.59,-300.033],[394.326,-293.921],[398.608,-287.474],[402.89,-281.03],[407.172,-274.585],[411.454,-268.138],[415.736,-261.694],[419.82,-255.129],[423.488,-248.316],[427.153,-241.501],[430.821,-234.688],[434.486,-227.873],[438.154,-221.057],[441.554,-214.117],[444.569,-206.989],[447.582,-199.863],[450.595,-192.734],[453.61,-185.608],[456.623,-178.48],[459.325,-171.238],[461.651,-163.859],[463.977,-156.478],[466.304,-149.099],[468.63,-141.718],[470.956,-134.339],[472.967,-126.876],[474.579,-119.307],[476.19,-111.738],[477.798,-104.169],[479.409,-96.6],[481.021,-89.033],[482.413,-81.425],[483.41,-73.753],[484.409,-66.078],[485.408,-58.405],[486.251,-50.718],[486.624,-42.99],[487,-35.26],[487.374,-27.532],[487.749,-19.801],[488.125,-12.073],[488.498,-4.345],[488.132,3.385],[487.759,11.113],[487.383,18.844],[487.01,26.572],[486.634,34.302],[486.258,42.03],[485.341,49.708],[484.221,57.363],[483.099,65.019],[481.979,72.675],[480.857,80.333],[479.735,87.989],[478.191,95.563],[476.339,103.074],[474.487,110.588],[472.633,118.102],[470.781,125.615],[468.929,133.129],[466.708,140.532],[464.148,147.834],[461.588,155.135],[459.031,162.44],[456.471,169.742],[453.913,177.046],[450.992,184.201],[447.758,191.23],[444.521,198.26],[441.287,205.29],[438.05,212.319],[434.816,219.349],[431.199,226.181],[427.324,232.878],[423.447,239.576],[419.57,246.273],[415.695,252.97],[411.817,259.667],[407.526,266.098],[403.049,272.407],[398.57,278.719],[394.093,285.029],[389.614,291.341],[385.137,297.65],[380.204,303.606],[375.167,309.479],[370.126,315.353],[365.088,321.227],[360.05,327.098],[355.012,332.972],[349.488,338.388],[343.934,343.775],[338.378,349.162],[332.825,354.55],[327.269,359.939],[321.679,365.286],[315.654,370.143],[309.631,374.998],[303.606,379.855],[297.58,384.71],[291.557,389.568],[285.445,394.307],[279.001,398.589],[272.556,402.871],[266.11,407.153],[259.665,411.435],[253.218,415.716],[246.656,419.803],[239.843,423.471],[233.028,427.136],[226.215,430.804],[219.399,434.469],[212.586,438.137],[205.646,441.54],[198.517,444.555],[191.392,447.568],[184.263,450.58],[177.137,453.596],[170.009,456.608],[162.77,459.313],[155.388,461.639],[148.01,463.965],[140.628,466.292],[133.25,468.62],[125.868,470.947],[118.405,472.958],[110.836,474.569],[103.269,476.18],[95.7,477.791],[88.131,479.402],[80.562,481.013],[72.957,482.405],[65.284,483.405],[57.609,484.402],[49.937,485.401],[42.25,486.246],[34.519,486.622],[26.791,486.995],[19.063,487.371],[11.333,487.744],[3.605,488.12],[-4.249,488.5],[-11.977,488.127],[-19.707,487.752],[-27.435,487.376],[-35.166,487.003],[-42.894,486.627],[-50.624,486.254],[-58.299,485.326],[-65.955,484.204],[-73.611,483.084],[-81.269,481.962],[-88.925,480.84],[-96.581,479.72],[-104.152,478.164],[-111.666,476.312],[-119.179,474.461],[-126.691,472.609],[-134.204,470.757],[-141.718,468.905],[-149.119,466.675],[-156.42,464.115],[-163.725,461.557],[-171.026,458.997],[-178.331,456.437],[-185.632,453.88],[-192.787,450.951],[-199.814,447.715],[-206.844,444.48],[-213.874,441.246],[-220.903,438.01],[-227.933,434.775],[-234.76,431.151],[-241.458,427.274],[-248.155,423.399],[-254.852,419.521],[-261.55,415.647],[-268.247,411.769],[-274.672,407.471],[-280.984,402.991],[-287.294,398.514],[-293.606,394.035],[-299.915,389.558],[-306.225,385.079],[-312.178,380.142],[-318.049,375.101],[-323.923,370.064],[-329.797,365.025],[-335.67,359.987],[-341.542,354.95],[-346.953,349.418],[-352.34,343.864],[-357.727,338.308],[-363.115,332.755],[-368.502,327.199],[-373.843,321.605],[-378.701,315.58],[-383.556,309.557],[-388.413,303.531],[-393.268,297.506],[-398.125,291.483],[-402.858,285.366],[-407.14,278.921],[-411.421,272.477],[-415.703,266.03],[-419.985,259.586],[-424.267,253.139],[-428.346,246.574],[-432.014,239.759],[-435.68,232.943],[-439.347,226.13],[-443.015,219.315],[-446.68,212.502],[-450.076,205.557],[-453.091,198.431],[-456.104,191.303],[-459.116,184.177],[-462.132,177.048],[-465.144,169.922],[-467.841,162.678],[-470.168,155.297],[-472.494,147.918],[-474.821,140.537],[-477.147,133.158],[-479.473,125.777],[-481.477,118.311],[-483.088,110.744],[-484.699,103.176],[-486.31,95.606],[-487.921,88.037],[-489.532,80.468],[-490.917,72.863],[-491.917,65.188],[-492.914,57.515],[-493.913,49.843],[-494.751,42.153],[-495.127,34.425],[-495.5,26.697],[-495.876,18.967],[-496.249,11.239],[-496.625,3.508],[-496.998,-4.22],[-496.627,-11.95],[-496.254,-19.678],[-495.878,-27.406],[-495.502,-35.137],[-495.129,-42.865],[-494.754,-50.595],[-493.831,-58.27],[-492.709,-65.926],[-491.589,-73.584],[-490.467,-81.24],[-489.345,-88.896],[-488.225,-96.552],[-486.674,-104.126],[-484.82,-111.637],[-482.968,-119.151],[-481.116,-126.664],[-479.264,-134.178],[-477.412,-141.692],[-475.184,-149.092],[-472.624,-156.394],[-470.067,-163.698],[-467.507,-171],[-464.949,-178.304],[-462.389,-185.606],[-459.463,-192.761],[-456.229,-199.79],[-452.992,-206.82],[-449.758,-213.847],[-446.524,-220.877],[-443.287,-227.906],[-439.665,-234.736],[-435.79,-241.434],[-431.913,-248.131],[-428.038,-254.828],[-424.161,-261.526],[-420.284,-268.223],[-415.987,-274.65],[-411.51,-280.96],[-407.031,-287.272],[-402.554,-293.582],[-398.075,-299.894],[-393.598,-306.203],[-388.661,-312.156],[-383.623,-318.03],[-378.585,-323.901],[-373.547,-329.775],[-368.507,-335.649],[-363.469,-341.522],[-357.942,-346.934],[-352.386,-352.321],[-346.832,-357.708],[-341.277,-363.095],[-335.723,-368.485],[-330.129,-373.826],[-324.103,-378.684],[-318.08,-383.539],[-312.055,-388.396],[-306.03,-393.251],[-300.007,-398.109],[-293.892,-402.843],[-287.448,-407.125],[-281.001,-411.407],[-274.556,-415.689],[-268.11,-419.971],[-261.665,-424.252],[-255.1,-428.334],[-248.285,-432.002],[-241.472,-435.667],[-234.657,-439.335],[-227.844,-443.003],[-221.029,-446.668],[-214.086,-450.066],[-206.96,-453.081],[-199.831,-456.094],[-192.705,-459.107],[-185.577,-462.122],[-178.451,-465.135],[-171.207,-467.834],[-163.828,-470.161],[-156.447,-472.487],[-149.068,-474.813],[-141.687,-477.14],[-134.308,-479.466],[-126.842,-481.472],[-119.273,-483.083],[-111.704,-484.694],[-104.138,-486.306],[-96.569,-487.917],[-88.999,-489.528],[-81.392,-490.917],[-73.719,-491.914],[-66.046,-492.914],[-58.371,-493.911],[-50.684,-494.751],[-42.956,-495.127],[-35.226,-495.5],[-27.498,-495.876],[-19.77,-496.251],[-12.039,-496.625],[-4.311,-497]],"c":true}]},{"t":198,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":168,"op":372,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".cream","cl":"cream","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[375]},{"t":300,"s":[396.531]}],"ix":3},"y":{"a":0,"k":56,"ix":4}},"a":{"a":0,"k":[196.283,-128.858,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.113,0.113,0.667],"y":[1,1,1]},"o":{"x":[0.353,0.353,0.333],"y":[0,0,0]},"t":174,"s":[40,40,100]},{"i":{"x":[0.311,0.311,0.667],"y":[1,1,1]},"o":{"x":[0.813,0.813,0.333],"y":[0,0,0]},"t":189,"s":[105,105,100]},{"t":204,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[18,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[196.283,-128.858],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":174,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[352,240,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-1.317],[0.602,-1.186],[0.979,-0.753],[0.338,0.151],[0,0.376],[0,0],[-0.32,0.151],[-0.301,-0.188],[-0.603,-1.185]],"o":[[0,1.317],[-0.603,1.166],[-0.32,0.188],[-0.32,-0.188],[0,0],[0,-0.376],[0.338,-0.188],[0.979,0.79],[0.602,1.186]],"v":[[2.353,0.038],[1.449,3.801],[-0.904,6.661],[-1.882,6.717],[-2.352,5.871],[-2.352,-5.891],[-1.882,-6.681],[-0.904,-6.681],[1.449,-3.727]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[353.047,240.118],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[100]},{"t":578,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[352,240,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[1.374,2.145],[2.315,1.054],[0.226,0.452],[-0.15,0.47],[-0.471,0.226],[-0.508,-0.226],[-1.807,-2.785],[0,-3.387],[1.825,-2.785],[3.03,-1.336],[0.508,0.226],[0.169,0.489],[-0.226,0.452],[-0.47,0.226],[-1.373,2.126],[0,2.597]],"o":[[0,-2.597],[-1.373,-2.165],[-0.47,-0.226],[-0.226,-0.47],[0.188,-0.508],[0.508,-0.226],[3.049,1.355],[1.825,2.766],[0,3.387],[-1.826,2.767],[-0.508,0.226],[-0.471,-0.226],[-0.15,-0.47],[0.226,-0.47],[2.315,-1.072],[1.374,-2.164],[0,0]],"v":[[2.577,0.029],[0.507,-7.084],[-5.044,-11.921],[-6.079,-12.919],[-6.173,-14.329],[-5.194,-15.421],[-3.689,-15.421],[3.594,-9.212],[6.322,0.01],[3.594,9.268],[-3.689,15.421],[-5.194,15.421],[-6.173,14.348],[-6.079,12.975],[-5.044,11.939],[0.507,7.141],[2.577,-0.009]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[357.528,240.098],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":578,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[100]},{"t":398,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[352,240,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,5.231],[2.804,4.253],[4.685,2.088],[0.282,0],[0.282,-0.132],[0.226,-0.583],[-0.263,-0.546],[-0.564,-0.263],[-2.314,-3.613],[0,-4.347],[2.315,-3.613],[3.877,-1.769],[0.264,-0.546],[-0.169,-0.527],[-0.527,-0.244],[-0.264,0],[-0.282,0.131],[-2.804,4.253]],"o":[[2.804,-4.309],[0,-5.231],[-2.804,-4.309],[-0.282,-0.132],[-0.282,0],[-0.508,0.244],[-0.169,0.489],[0.245,0.489],[3.877,1.788],[2.296,3.557],[0,4.347],[-2.314,3.576],[-0.545,0.264],[-0.245,0.508],[0.207,0.546],[0.263,0.113],[0.263,0],[4.685,-2.089],[0,0]],"v":[[5.005,14.388],[9.239,0.011],[5.005,-14.291],[-6.304,-23.925],[-7.132,-24.114],[-7.96,-23.925],[-9.052,-22.721],[-8.92,-21.178],[-7.716,-20.049],[1.599,-11.92],[5.081,-0.008],[1.599,11.979],[-7.716,20.033],[-8.92,21.238],[-9.033,22.743],[-7.941,23.928],[-7.132,24.098],[-6.304,23.91],[5.005,14.35]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[363.834,240.098],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"3","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":398,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":".blue400","cl":"blue400","parent":21,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[352]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":398,"s":[357]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[357]},{"t":578,"s":[360.25]}],"ix":3},"y":{"a":0,"k":240,"ix":4}},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.357,0.338],[0,0.546],[0,0],[-0.358,0.338],[-0.527,0],[0,0],[0,0],[-0.753,-0.339],[0,-0.847],[0,0],[0.771,-0.339],[0.583,0.583]],"o":[[0,0],[-0.527,0],[-0.339,-0.377],[0,0],[0,-0.527],[0.376,-0.377],[0,0],[0,0],[0.602,-0.602],[0.79,0.32],[0,0],[0,0.847],[-0.753,0.32],[0,0]],"v":[[-0.931,5.636],[-6.576,5.636],[-7.931,5.128],[-8.458,3.754],[-8.458,-3.773],[-7.931,-5.09],[-6.576,-5.655],[-0.931,-5.655],[5.279,-11.865],[7.293,-12.241],[8.459,-10.51],[8.459,10.472],[7.293,12.26],[5.279,11.846]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[338.458,240.172],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"main","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":".blue100","cl":"blue100","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-88.83,14.117,0],"ix":2,"l":2},"a":{"a":0,"k":[352,240,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0,0,0]},"t":285,"s":[40,40,100]},{"t":315,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-10.693],[1.577,-4.275],[7.003,-2.584],[10.693,0],[4.275,1.577],[2.584,7.003],[0,10.693],[-1.577,4.275],[-7.003,2.584],[-10.693,0],[-4.275,-1.577],[-2.584,-7.003]],"o":[[0,10.693],[-2.584,7.003],[-4.275,1.577],[-10.693,0],[-7.003,-2.584],[-1.577,-4.275],[0,-10.693],[2.584,-7.003],[4.275,-1.577],[10.693,0],[7.003,2.584],[1.577,4.275]],"v":[[37,0],[35.423,20.315],[20.315,35.423],[0,37],[-20.315,35.423],[-35.423,20.315],[-37,0],[-35.423,-20.315],[-20.315,-35.423],[0,-37],[20.315,-35.423],[35.423,-20.315]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529471603,0.89019613827,0.988235353956,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[352,240],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"matte","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":285,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-288.83,-95.383,0],"ix":2,"l":2},"a":{"a":0,"k":[2.19,-41.445,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[223,29],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[113.69,-41.445],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-288.83,-65.383,0],"ix":2,"l":2},"a":{"a":0,"k":[2.19,-41.445,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[290,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.219,-37.89],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-384.858,-4.438,0],"ix":2,"l":2},"a":{"a":0,"k":[2.19,-41.445,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[98,20],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.219,-37.89],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":".grey800","cl":"grey800","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":368,"s":[0]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":398,"s":[90]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":456,"s":[90]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":486,"s":[180]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":548,"s":[180]},{"t":578,"s":[270]}],"ix":10},"p":{"s":true,"x":{"a":0,"k":-349.354,"ix":3},"y":{"a":0,"k":-81.358,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[50.682,50.682,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":368,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.652,-437.366],[8.33,-437.659],[17.312,-437.953],[26.249,-438.778],[35.158,-439.948],[44.07,-441.114],[52.848,-442.998],[61.602,-445.033],[70.348,-447.09],[78.906,-449.835],[87.432,-452.668],[95.787,-455.975],[104.114,-459.352],[112.356,-462.932],[120.6,-466.51],[128.842,-470.088],[137.086,-473.668],[145.494,-476.842],[153.901,-480.013],[162.309,-483.184],[170.98,-485.538],[179.663,-487.853],[188.349,-490.149],[197.221,-491.579],[206.092,-493.009],[214.984,-494.276],[223.954,-494.806],[232.926,-495.333],[241.897,-495.501],[250.877,-495.127],[259.857,-494.753],[268.778,-493.782],[277.678,-492.525],[286.574,-491.265],[295.31,-489.158],[304.044,-487.043],[312.697,-484.654],[321.19,-481.719],[329.683,-478.781],[337.963,-475.306],[346.144,-471.59],[354.301,-467.824],[362.109,-463.379],[369.919,-458.93],[377.531,-454.173],[384.91,-449.042],[392.286,-443.909],[399.256,-438.244],[406.146,-432.478],[412.915,-426.575],[419.27,-420.22],[425.623,-413.867],[431.614,-407.178],[437.38,-400.286],[443.14,-393.391],[448.274,-386.013],[453.404,-378.636],[458.262,-371.087],[462.71,-363.279],[467.158,-355.469],[471.032,-347.367],[474.745,-339.186],[478.338,-330.954],[481.276,-322.461],[484.212,-313.968],[486.723,-305.35],[488.838,-296.616],[490.956,-287.883],[492.333,-279.009],[493.59,-270.109],[494.694,-261.198],[495.065,-252.221],[495.439,-243.241],[495.406,-234.267],[494.88,-225.295],[494.35,-216.325],[493.216,-207.421],[491.786,-198.549],[490.356,-189.678],[488.193,-180.962],[485.878,-172.278],[483.559,-163.597],[480.481,-155.159],[477.307,-146.752],[474.136,-138.342],[470.618,-130.075],[467.038,-121.833],[463.46,-113.589],[459.882,-105.347],[456.543,-97.007],[453.374,-88.597],[450.208,-80.187],[447.684,-71.571],[445.361,-62.891],[443.04,-54.21],[441.544,-45.348],[440.087,-36.481],[438.775,-27.597],[438.19,-18.63],[437.605,-9.663],[437.362,-0.691],[437.653,8.291],[437.947,17.273],[438.77,26.21],[439.939,35.121],[441.105,44.031],[442.987,52.812],[445.022,61.566],[447.074,70.312],[449.819,78.87],[452.649,87.395],[455.956,95.753],[459.333,104.08],[462.911,112.322],[466.488,120.566],[470.069,128.808],[473.646,137.052],[476.823,145.458],[479.994,153.865],[483.165,162.275],[485.521,170.943],[487.84,179.627],[490.138,188.313],[491.568,197.184],[492.998,206.056],[494.27,214.945],[494.799,223.917],[495.326,232.887],[495.497,241.861],[495.123,250.838],[494.752,259.818],[493.783,268.742],[492.524,277.641],[491.267,286.538],[489.162,295.274],[487.047,304.008],[484.661,312.664],[481.725,321.156],[478.787,329.649],[475.315,337.926],[471.599,346.11],[467.838,354.267],[463.39,362.077],[458.944,369.885],[454.19,377.502],[449.059,384.879],[443.925,392.255],[438.263,399.227],[432.497,406.117],[426.596,412.888],[420.241,419.241],[413.888,425.596],[407.202,431.588],[400.31,437.356],[393.415,443.119],[386.039,448.252],[378.663,453.383],[371.113,458.243],[363.305,462.691],[355.498,467.14],[347.396,471.016],[339.215,474.732],[330.985,478.327],[322.492,481.265],[314,484.2],[305.381,486.714],[296.648,488.832],[287.914,490.947],[279.04,492.327],[270.143,493.586],[261.231,494.693],[252.252,495.067],[243.275,495.44],[234.298,495.41],[225.328,494.883],[216.356,494.354],[207.452,493.225],[198.581,491.795],[189.709,490.365],[180.993,488.207],[172.309,485.889],[163.628,483.573],[155.188,480.495],[146.781,477.323],[138.373,474.152],[130.106,470.634],[121.862,467.057],[113.62,463.476],[105.376,459.899],[97.036,456.559],[88.626,453.39],[80.216,450.224],[71.603,447.695],[62.922,445.374],[54.241,443.054],[45.382,441.553],[36.515,440.095],[27.631,438.781],[18.664,438.196],[9.697,437.612],[0.723,437.363],[-8.259,437.654],[-17.239,437.948],[-26.178,438.768],[-35.088,439.935],[-43.999,441.104],[-52.781,442.981],[-61.534,445.016],[-70.283,447.065],[-78.839,449.81],[-87.367,452.638],[-95.721,455.945],[-104.048,459.319],[-112.293,462.897],[-120.535,466.477],[-128.779,470.055],[-137.021,473.633],[-145.429,476.811],[-153.836,479.983],[-162.243,483.154],[-170.912,485.515],[-179.595,487.831],[-188.281,490.134],[-197.153,491.564],[-206.025,492.994],[-214.914,494.269],[-223.883,494.798],[-232.855,495.325],[-241.827,495.501],[-250.807,495.127],[-259.786,494.753],[-268.711,493.789],[-277.607,492.53],[-286.507,491.273],[-295.243,489.173],[-303.976,487.056],[-312.632,484.674],[-321.125,481.737],[-329.618,478.801],[-337.897,475.331],[-346.079,471.615],[-354.241,467.854],[-362.048,463.409],[-369.856,458.96],[-377.473,454.211],[-384.85,449.078],[-392.229,443.947],[-399.201,438.287],[-406.093,432.518],[-412.865,426.62],[-419.22,420.265],[-425.572,413.912],[-431.566,407.228],[-437.334,400.336],[-443.1,393.444],[-448.231,386.068],[-453.364,378.689],[-458.226,371.145],[-462.675,363.334],[-467.123,355.526],[-471.002,347.428],[-474.718,339.246],[-478.316,331.017],[-481.254,322.524],[-484.192,314.031],[-486.708,305.415],[-488.823,296.682],[-490.941,287.948],[-492.323,279.074],[-493.582,270.177],[-494.694,261.265],[-495.068,252.286],[-495.439,243.309],[-495.417,234.332],[-494.887,225.362],[-494.36,216.39],[-493.234,207.486],[-491.804,198.614],[-490.374,189.743],[-488.218,181.024],[-485.9,172.343],[-483.584,163.66],[-480.511,155.22],[-477.34,146.812],[-474.168,138.405],[-470.651,130.138],[-467.07,121.896],[-463.49,113.652],[-459.91,105.41],[-456.568,97.072],[-453.402,88.66],[-450.235,80.25],[-447.704,71.637],[-445.383,62.956],[-443.062,54.275],[-441.562,45.416],[-440.104,36.549],[-438.785,27.665],[-438.2,18.698],[-437.618,9.731],[-437.365,0.759],[-437.658,-8.223],[-437.949,-17.205],[-438.767,-26.145],[-439.934,-35.054],[-441.103,-43.963],[-442.977,-52.747],[-445.012,-61.498],[-447.059,-70.249],[-449.804,-78.805],[-452.631,-87.333],[-455.936,-95.69],[-459.31,-104.017],[-462.891,-112.259],[-466.468,-120.503],[-470.046,-128.745],[-473.684,-137.12],[-476.855,-145.53],[-480.027,-153.938],[-483.198,-162.345],[-485.546,-171.019],[-487.865,-179.699],[-490.153,-188.388],[-491.583,-197.26],[-493.013,-206.131],[-494.277,-215.023],[-494.807,-223.993],[-495.334,-232.965],[-495.497,-241.936],[-495.123,-250.916],[-494.752,-259.896],[-493.776,-268.817],[-492.516,-277.717],[-491.259,-286.613],[-489.149,-295.349],[-487.032,-304.083],[-484.641,-312.734],[-481.703,-321.227],[-478.767,-329.722],[-475.287,-337.996],[-471.572,-346.181],[-467.803,-354.335],[-463.357,-362.143],[-458.909,-369.953],[-454.149,-377.565],[-449.019,-384.941],[-443.885,-392.318],[-438.218,-399.285],[-432.452,-406.177],[-426.546,-412.944],[-420.193,-419.296],[-413.838,-425.652],[-407.147,-431.638],[-400.257,-437.406],[-393.358,-443.164],[-385.981,-448.295],[-378.605,-453.428],[-371.053,-458.283],[-363.245,-462.731],[-355.435,-467.177],[-347.334,-471.048],[-339.149,-474.764],[-330.917,-478.354],[-322.425,-481.29],[-313.932,-484.228],[-305.314,-486.734],[-296.58,-488.852],[-287.846,-490.967],[-278.97,-492.342],[-270.073,-493.599],[-261.161,-494.7],[-252.182,-495.072],[-243.202,-495.445],[-234.228,-495.41],[-225.258,-494.883],[-216.286,-494.354],[-207.382,-493.217],[-198.51,-491.787],[-189.639,-490.357],[-180.925,-488.192],[-172.242,-485.874],[-163.558,-483.558],[-155.123,-480.475],[-146.716,-477.301],[-138.306,-474.129],[-130.041,-470.609],[-121.797,-467.029],[-113.555,-463.449],[-105.313,-459.871],[-96.971,-456.534],[-88.561,-453.368],[-80.151,-450.199],[-71.535,-447.678],[-62.854,-445.357],[-54.171,-443.036],[-45.312,-441.543],[-36.445,-440.086],[-27.561,-438.778],[-18.594,-438.194],[-9.624,-437.609]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":398,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.166,-494.001],[7.12,-493.774],[14.408,-493.545],[21.649,-492.74],[28.884,-491.832],[36.083,-490.728],[43.201,-489.145],[50.316,-487.56],[57.326,-485.578],[64.297,-483.437],[71.118,-480.865],[77.874,-478.138],[84.452,-474.996],[90.937,-471.679],[97.177,-467.909],[103.351,-464.041],[109.218,-459.713],[115.084,-455.382],[120.918,-451.015],[126.346,-446.147],[131.773,-441.278],[137.2,-436.408],[142.626,-431.541],[148.053,-426.671],[153.481,-421.804],[158.906,-416.935],[164.135,-411.855],[169.32,-406.728],[174.504,-401.604],[179.687,-396.478],[184.872,-391.352],[190.056,-386.225],[195.241,-381.101],[200.426,-375.975],[205.61,-370.849],[210.795,-365.722],[215.952,-360.568],[221.106,-355.413],[226.261,-350.259],[231.417,-345.102],[236.572,-339.948],[241.726,-334.793],[246.883,-329.637],[252.037,-324.482],[257.192,-319.328],[262.348,-314.171],[267.503,-309.017],[272.66,-303.86],[277.814,-298.706],[282.968,-293.551],[288.125,-288.395],[293.279,-283.24],[298.434,-278.086],[303.591,-272.929],[308.745,-267.775],[313.899,-262.62],[319.056,-257.464],[324.21,-252.309],[329.367,-247.155],[334.522,-241.998],[339.676,-236.844],[344.833,-231.687],[349.987,-226.533],[355.141,-221.378],[360.298,-216.222],[365.453,-211.067],[370.493,-205.798],[375.53,-200.53],[380.57,-195.261],[385.608,-189.99],[390.646,-184.721],[395.683,-179.452],[400.723,-174.181],[405.761,-168.912],[410.798,-163.644],[415.836,-158.372],[420.876,-153.104],[425.914,-147.835],[430.952,-142.564],[435.991,-137.295],[441.029,-132.026],[446.067,-126.755],[450.661,-121.106],[455.085,-115.312],[459.508,-109.516],[463.855,-103.668],[467.716,-97.482],[471.57,-91.295],[474.768,-84.743],[477.969,-78.192],[480.665,-71.43],[483.133,-64.569],[485.537,-57.689],[487.344,-50.625],[489.151,-43.564],[490.61,-36.427],[491.744,-29.226],[492.879,-22.024],[493.364,-14.752],[493.82,-7.476],[494.002,-0.195],[493.775,7.093],[493.546,14.379],[492.743,21.622],[491.835,28.854],[490.734,36.056],[489.151,43.171],[487.566,50.289],[485.586,57.299],[483.445,64.27],[480.873,71.091],[478.151,77.849],[475.007,84.427],[471.692,90.913],[467.924,97.152],[464.056,103.329],[459.728,109.196],[455.4,115.062],[451.034,120.898],[446.165,126.326],[441.295,131.751],[436.428,137.178],[431.558,142.606],[426.691,148.031],[421.822,153.458],[416.954,158.886],[411.875,164.115],[406.748,169.3],[401.624,174.482],[396.498,179.667],[391.371,184.852],[386.245,190.036],[381.119,195.221],[375.995,200.406],[370.868,205.591],[365.742,210.775],[360.587,215.932],[355.433,221.086],[350.279,226.241],[345.122,231.398],[339.968,236.552],[334.813,241.706],[329.657,246.863],[324.502,252.017],[319.348,257.172],[314.191,262.328],[309.037,267.483],[303.88,272.637],[298.726,277.794],[293.571,282.948],[288.414,288.105],[283.26,293.259],[278.106,298.414],[272.949,303.571],[267.795,308.725],[262.64,313.879],[257.483,319.036],[252.329,324.19],[247.172,329.345],[242.018,334.502],[236.864,339.656],[231.707,344.813],[226.553,349.967],[221.398,355.121],[216.241,360.278],[211.005,365.514],[205.734,370.554],[200.465,375.592],[195.197,380.63],[189.926,385.667],[184.657,390.707],[179.388,395.745],[174.117,400.783],[168.848,405.82],[163.577,410.86],[158.308,415.898],[153.04,420.936],[147.768,425.973],[142.5,431.013],[137.231,436.051],[131.96,441.089],[126.691,446.129],[121.035,450.713],[115.238,455.137],[109.444,459.561],[103.59,463.901],[97.406,467.759],[91.212,471.606],[84.662,474.805],[78.112,478.005],[71.344,480.692],[64.484,483.159],[57.602,485.559],[50.538,487.366],[43.476,489.173],[36.34,490.623],[29.138,491.759],[21.936,492.894],[14.662,493.37],[7.386,493.825],[0.105,494.001],[-7.183,493.772],[-14.469,493.545],[-21.71,492.733],[-28.944,491.825],[-36.144,490.716],[-43.259,489.133],[-50.377,487.548],[-57.387,485.562],[-64.355,483.421],[-71.176,480.846],[-77.93,478.115],[-84.508,474.973],[-90.991,471.648],[-97.231,467.881],[-103.403,464.006],[-109.269,459.678],[-115.136,455.35],[-120.967,450.977],[-126.392,446.108],[-131.82,441.24],[-137.247,436.373],[-142.675,431.504],[-148.1,426.636],[-153.527,421.767],[-158.955,416.899],[-164.179,411.817],[-169.364,406.691],[-174.549,401.565],[-179.733,396.441],[-184.918,391.314],[-190.103,386.188],[-195.288,381.062],[-200.472,375.937],[-205.657,370.811],[-210.842,365.685],[-215.996,360.53],[-221.153,355.376],[-226.307,350.219],[-231.462,345.065],[-236.619,339.908],[-241.773,334.754],[-246.927,329.599],[-252.084,324.443],[-257.238,319.288],[-262.393,314.132],[-267.547,308.977],[-272.704,303.823],[-277.858,298.666],[-283.013,293.512],[-288.169,288.355],[-293.324,283.201],[-298.478,278.044],[-303.635,272.889],[-308.789,267.735],[-313.944,262.578],[-319.098,257.424],[-324.255,252.267],[-329.409,247.113],[-334.564,241.956],[-339.72,236.802],[-344.875,231.647],[-350.029,226.491],[-355.186,221.336],[-360.34,216.18],[-365.495,211.025],[-370.535,205.756],[-375.572,200.488],[-380.61,195.216],[-385.65,189.948],[-390.688,184.679],[-395.725,179.408],[-400.765,174.139],[-405.803,168.87],[-410.84,163.599],[-415.88,158.331],[-420.918,153.062],[-425.956,147.793],[-430.993,142.522],[-436.033,137.253],[-441.071,131.984],[-446.109,126.713],[-450.698,121.059],[-455.122,115.265],[-459.546,109.469],[-463.888,103.616],[-467.747,97.433],[-471.596,91.242],[-474.794,84.689],[-477.992,78.139],[-480.684,71.371],[-483.151,64.513],[-485.551,57.631],[-487.358,50.567],[-489.167,43.505],[-490.619,36.369],[-491.754,29.167],[-492.888,21.966],[-493.369,14.692],[-493.824,7.415],[-494.002,0.134],[-493.773,-7.151],[-493.546,-14.44],[-492.739,-21.681],[-491.828,-28.915],[-490.722,-36.115],[-489.139,-43.23],[-487.554,-50.347],[-485.57,-57.358],[-483.431,-64.328],[-480.857,-71.147],[-478.128,-77.903],[-474.986,-84.484],[-471.666,-90.966],[-467.898,-97.206],[-464.028,-103.378],[-459.697,-109.245],[-455.369,-115.111],[-450.999,-120.945],[-446.13,-126.37],[-441.26,-131.798],[-436.393,-137.223],[-431.523,-142.65],[-426.654,-148.075],[-421.787,-153.503],[-416.917,-158.93],[-411.835,-164.157],[-406.711,-169.34],[-401.585,-174.524],[-396.458,-179.709],[-391.332,-184.894],[-386.205,-190.078],[-381.081,-195.263],[-375.955,-200.448],[-370.829,-205.63],[-365.702,-210.815],[-360.548,-215.972],[-355.393,-221.129],[-350.239,-226.283],[-345.082,-231.437],[-339.928,-236.594],[-334.774,-241.748],[-329.617,-246.905],[-324.462,-252.06],[-319.308,-257.214],[-314.154,-262.371],[-308.997,-267.525],[-303.843,-272.682],[-298.688,-277.836],[-293.532,-282.993],[-288.377,-288.147],[-283.223,-293.302],[-278.066,-298.458],[-272.912,-303.613],[-267.757,-308.769],[-262.603,-313.924],[-257.446,-319.081],[-252.292,-324.235],[-247.137,-329.389],[-241.981,-334.546],[-236.826,-339.7],[-231.672,-344.857],[-226.515,-350.011],[-221.361,-355.166],[-216.206,-360.323],[-211.052,-365.477],[-205.781,-370.517],[-200.512,-375.555],[-195.243,-380.592],[-189.972,-385.632],[-184.703,-390.67],[-179.435,-395.708],[-174.164,-400.745],[-168.895,-405.783],[-163.624,-410.823],[-158.355,-415.861],[-153.086,-420.898],[-147.815,-425.936],[-142.546,-430.976],[-137.275,-436.014],[-132.006,-441.051],[-126.738,-446.089],[-121.084,-450.681],[-115.29,-455.105],[-109.493,-459.528],[-103.643,-463.87],[-97.459,-467.731],[-91.269,-471.583],[-84.718,-474.781],[-78.168,-477.982],[-71.403,-480.676],[-64.542,-483.143],[-57.662,-485.545],[-50.598,-487.352],[-43.534,-489.159],[-36.4,-490.616],[-29.199,-491.75],[-21.997,-492.885],[-14.723,-493.368],[-7.447,-493.823]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":456,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-0.166,-494.001],[7.12,-493.774],[14.408,-493.545],[21.649,-492.74],[28.884,-491.832],[36.083,-490.728],[43.201,-489.145],[50.316,-487.56],[57.326,-485.578],[64.297,-483.437],[71.118,-480.865],[77.874,-478.138],[84.452,-474.996],[90.937,-471.679],[97.177,-467.909],[103.351,-464.041],[109.218,-459.713],[115.084,-455.382],[120.918,-451.015],[126.346,-446.147],[131.773,-441.278],[137.2,-436.408],[142.626,-431.541],[148.053,-426.671],[153.481,-421.804],[158.906,-416.935],[164.135,-411.855],[169.32,-406.728],[174.504,-401.604],[179.687,-396.478],[184.872,-391.352],[190.056,-386.225],[195.241,-381.101],[200.426,-375.975],[205.61,-370.849],[210.795,-365.722],[215.952,-360.568],[221.106,-355.413],[226.261,-350.259],[231.417,-345.102],[236.572,-339.948],[241.726,-334.793],[246.883,-329.637],[252.037,-324.482],[257.192,-319.328],[262.348,-314.171],[267.503,-309.017],[272.66,-303.86],[277.814,-298.706],[282.968,-293.551],[288.125,-288.395],[293.279,-283.24],[298.434,-278.086],[303.591,-272.929],[308.745,-267.775],[313.899,-262.62],[319.056,-257.464],[324.21,-252.309],[329.367,-247.155],[334.522,-241.998],[339.676,-236.844],[344.833,-231.687],[349.987,-226.533],[355.141,-221.378],[360.298,-216.222],[365.453,-211.067],[370.493,-205.798],[375.53,-200.53],[380.57,-195.261],[385.608,-189.99],[390.646,-184.721],[395.683,-179.452],[400.723,-174.181],[405.761,-168.912],[410.798,-163.644],[415.836,-158.372],[420.876,-153.104],[425.914,-147.835],[430.952,-142.564],[435.991,-137.295],[441.029,-132.026],[446.067,-126.755],[450.661,-121.106],[455.085,-115.312],[459.508,-109.516],[463.855,-103.668],[467.716,-97.482],[471.57,-91.295],[474.768,-84.743],[477.969,-78.192],[480.665,-71.43],[483.133,-64.569],[485.537,-57.689],[487.344,-50.625],[489.151,-43.564],[490.61,-36.427],[491.744,-29.226],[492.879,-22.024],[493.364,-14.752],[493.82,-7.476],[494.002,-0.195],[493.775,7.093],[493.546,14.379],[492.743,21.622],[491.835,28.854],[490.734,36.056],[489.151,43.171],[487.566,50.289],[485.586,57.299],[483.445,64.27],[480.873,71.091],[478.151,77.849],[475.007,84.427],[471.692,90.913],[467.924,97.152],[464.056,103.329],[459.728,109.196],[455.4,115.062],[451.034,120.898],[446.165,126.326],[441.295,131.751],[436.428,137.178],[431.558,142.606],[426.691,148.031],[421.822,153.458],[416.954,158.886],[411.875,164.115],[406.748,169.3],[401.624,174.482],[396.498,179.667],[391.371,184.852],[386.245,190.036],[381.119,195.221],[375.995,200.406],[370.868,205.591],[365.742,210.775],[360.587,215.932],[355.433,221.086],[350.279,226.241],[345.122,231.398],[339.968,236.552],[334.813,241.706],[329.657,246.863],[324.502,252.017],[319.348,257.172],[314.191,262.328],[309.037,267.483],[303.88,272.637],[298.726,277.794],[293.571,282.948],[288.414,288.105],[283.26,293.259],[278.106,298.414],[272.949,303.571],[267.795,308.725],[262.64,313.879],[257.483,319.036],[252.329,324.19],[247.172,329.345],[242.018,334.502],[236.864,339.656],[231.707,344.813],[226.553,349.967],[221.398,355.121],[216.241,360.278],[211.005,365.514],[205.734,370.554],[200.465,375.592],[195.197,380.63],[189.926,385.667],[184.657,390.707],[179.388,395.745],[174.117,400.783],[168.848,405.82],[163.577,410.86],[158.308,415.898],[153.04,420.936],[147.768,425.973],[142.5,431.013],[137.231,436.051],[131.96,441.089],[126.691,446.129],[121.035,450.713],[115.238,455.137],[109.444,459.561],[103.59,463.901],[97.406,467.759],[91.212,471.606],[84.662,474.805],[78.112,478.005],[71.344,480.692],[64.484,483.159],[57.602,485.559],[50.538,487.366],[43.476,489.173],[36.34,490.623],[29.138,491.759],[21.936,492.894],[14.662,493.37],[7.386,493.825],[0.105,494.001],[-7.183,493.772],[-14.469,493.545],[-21.71,492.733],[-28.944,491.825],[-36.144,490.716],[-43.259,489.133],[-50.377,487.548],[-57.387,485.562],[-64.355,483.421],[-71.176,480.846],[-77.93,478.115],[-84.508,474.973],[-90.991,471.648],[-97.231,467.881],[-103.403,464.006],[-109.269,459.678],[-115.136,455.35],[-120.967,450.977],[-126.392,446.108],[-131.82,441.24],[-137.247,436.373],[-142.675,431.504],[-148.1,426.636],[-153.527,421.767],[-158.955,416.899],[-164.179,411.817],[-169.364,406.691],[-174.549,401.565],[-179.733,396.441],[-184.918,391.314],[-190.103,386.188],[-195.288,381.062],[-200.472,375.937],[-205.657,370.811],[-210.842,365.685],[-215.996,360.53],[-221.153,355.376],[-226.307,350.219],[-231.462,345.065],[-236.619,339.908],[-241.773,334.754],[-246.927,329.599],[-252.084,324.443],[-257.238,319.288],[-262.393,314.132],[-267.547,308.977],[-272.704,303.823],[-277.858,298.666],[-283.013,293.512],[-288.169,288.355],[-293.324,283.201],[-298.478,278.044],[-303.635,272.889],[-308.789,267.735],[-313.944,262.578],[-319.098,257.424],[-324.255,252.267],[-329.409,247.113],[-334.564,241.956],[-339.72,236.802],[-344.875,231.647],[-350.029,226.491],[-355.186,221.336],[-360.34,216.18],[-365.495,211.025],[-370.535,205.756],[-375.572,200.488],[-380.61,195.216],[-385.65,189.948],[-390.688,184.679],[-395.725,179.408],[-400.765,174.139],[-405.803,168.87],[-410.84,163.599],[-415.88,158.331],[-420.918,153.062],[-425.956,147.793],[-430.993,142.522],[-436.033,137.253],[-441.071,131.984],[-446.109,126.713],[-450.698,121.059],[-455.122,115.265],[-459.546,109.469],[-463.888,103.616],[-467.747,97.433],[-471.596,91.242],[-474.794,84.689],[-477.992,78.139],[-480.684,71.371],[-483.151,64.513],[-485.551,57.631],[-487.358,50.567],[-489.167,43.505],[-490.619,36.369],[-491.754,29.167],[-492.888,21.966],[-493.369,14.692],[-493.824,7.415],[-494.002,0.134],[-493.773,-7.151],[-493.546,-14.44],[-492.739,-21.681],[-491.828,-28.915],[-490.722,-36.115],[-489.139,-43.23],[-487.554,-50.347],[-485.57,-57.358],[-483.431,-64.328],[-480.857,-71.147],[-478.128,-77.903],[-474.986,-84.484],[-471.666,-90.966],[-467.898,-97.206],[-464.028,-103.378],[-459.697,-109.245],[-455.369,-115.111],[-450.999,-120.945],[-446.13,-126.37],[-441.26,-131.798],[-436.393,-137.223],[-431.523,-142.65],[-426.654,-148.075],[-421.787,-153.503],[-416.917,-158.93],[-411.835,-164.157],[-406.711,-169.34],[-401.585,-174.524],[-396.458,-179.709],[-391.332,-184.894],[-386.205,-190.078],[-381.081,-195.263],[-375.955,-200.448],[-370.829,-205.63],[-365.702,-210.815],[-360.548,-215.972],[-355.393,-221.129],[-350.239,-226.283],[-345.082,-231.437],[-339.928,-236.594],[-334.774,-241.748],[-329.617,-246.905],[-324.462,-252.06],[-319.308,-257.214],[-314.154,-262.371],[-308.997,-267.525],[-303.843,-272.682],[-298.688,-277.836],[-293.532,-282.993],[-288.377,-288.147],[-283.223,-293.302],[-278.066,-298.458],[-272.912,-303.613],[-267.757,-308.769],[-262.603,-313.924],[-257.446,-319.081],[-252.292,-324.235],[-247.137,-329.389],[-241.981,-334.546],[-236.826,-339.7],[-231.672,-344.857],[-226.515,-350.011],[-221.361,-355.166],[-216.206,-360.323],[-211.052,-365.477],[-205.781,-370.517],[-200.512,-375.555],[-195.243,-380.592],[-189.972,-385.632],[-184.703,-390.67],[-179.435,-395.708],[-174.164,-400.745],[-168.895,-405.783],[-163.624,-410.823],[-158.355,-415.861],[-153.086,-420.898],[-147.815,-425.936],[-142.546,-430.976],[-137.275,-436.014],[-132.006,-441.051],[-126.738,-446.089],[-121.084,-450.681],[-115.29,-455.105],[-109.493,-459.528],[-103.643,-463.87],[-97.459,-467.731],[-91.269,-471.583],[-84.718,-474.781],[-78.168,-477.982],[-71.403,-480.676],[-64.542,-483.143],[-57.662,-485.545],[-50.598,-487.352],[-43.534,-489.159],[-36.4,-490.616],[-29.199,-491.75],[-21.997,-492.885],[-14.723,-493.368],[-7.447,-493.823]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":486,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.05,"y":0},"t":548,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[1.906,-488.758],[9.421,-487.243],[16.936,-485.728],[24.451,-484.213],[31.966,-482.698],[39.333,-480.59],[46.677,-478.385],[54.02,-476.18],[61.363,-473.975],[68.706,-471.77],[75.88,-469.081],[82.983,-466.201],[90.087,-463.319],[97.193,-460.436],[104.297,-457.556],[111.241,-454.323],[118.039,-450.782],[124.84,-447.241],[131.641,-443.702],[138.442,-440.161],[145.129,-436.429],[151.56,-432.254],[157.991,-428.079],[164.422,-423.907],[170.853,-419.732],[177.281,-415.554],[183.356,-410.878],[189.431,-406.2],[195.508,-401.524],[201.409,-396.642],[207.087,-391.489],[212.765,-386.336],[218.443,-381.184],[224.118,-376.031],[229.796,-370.878],[235.22,-365.461],[240.642,-360.04],[246.063,-354.618],[251.485,-349.197],[256.906,-343.775],[262.328,-338.354],[267.749,-332.932],[273.171,-327.513],[278.592,-322.092],[284.011,-316.671],[289.433,-311.249],[294.854,-305.828],[300.276,-300.406],[305.697,-294.985],[311.118,-289.563],[316.54,-284.142],[321.961,-278.72],[327.383,-273.299],[332.804,-267.88],[338.226,-262.458],[343.645,-257.037],[349.066,-251.615],[354.488,-246.194],[359.909,-240.772],[365.331,-235.351],[370.752,-229.929],[375.907,-224.256],[381.06,-218.578],[386.213,-212.9],[391.366,-207.222],[396.516,-201.547],[401.359,-195.612],[405.938,-189.462],[410.515,-183.315],[415.094,-177.165],[419.674,-171.015],[424.132,-164.785],[428.099,-158.223],[432.066,-151.662],[436.03,-145.1],[439.997,-138.539],[443.964,-131.978],[447.335,-125.097],[450.658,-118.187],[453.981,-111.277],[457.304,-104.369],[460.628,-97.459],[463.476,-90.348],[466.136,-83.158],[468.794,-75.967],[471.451,-68.776],[474.109,-61.583],[476.396,-54.274],[478.371,-46.868],[480.348,-39.459],[482.323,-32.051],[484.301,-24.645],[485.992,-17.176],[487.277,-9.617],[488.56,-2.058],[489.845,5.5],[491.128,13.059],[492.207,20.644],[492.793,28.287],[493.377,35.933],[493.962,43.576],[494.546,51.222],[495.001,58.87],[494.882,66.535],[494.766,74.203],[494.65,81.868],[494.531,89.533],[494.354,97.196],[493.536,104.819],[492.718,112.441],[491.9,120.065],[491.082,127.689],[490.264,135.31],[488.766,142.828],[487.248,150.345],[485.733,157.86],[484.218,165.375],[482.703,172.89],[480.597,180.258],[478.392,187.601],[476.188,194.944],[473.983,202.287],[471.778,209.63],[469.094,216.804],[466.211,223.908],[463.331,231.014],[460.448,238.117],[457.566,245.223],[454.337,252.167],[450.796,258.966],[447.255,265.767],[443.714,272.568],[440.173,279.369],[436.444,286.059],[432.269,292.489],[428.096,298.92],[423.921,305.351],[419.749,311.781],[415.571,318.21],[410.895,324.285],[406.219,330.362],[401.541,336.437],[396.661,342.34],[391.509,348.018],[386.356,353.696],[381.203,359.372],[376.05,365.05],[370.815,370.817],[365.139,375.97],[359.461,381.123],[353.783,386.276],[348.105,391.429],[342.43,396.579],[336.49,401.415],[330.34,405.994],[324.19,410.573],[318.04,415.15],[311.893,419.729],[305.658,424.182],[299.097,428.147],[292.535,432.114],[285.974,436.078],[279.412,440.045],[272.851,444.012],[265.965,447.376],[259.055,450.699],[252.145,454.022],[245.238,457.345],[238.328,460.668],[231.215,463.51],[224.024,466.167],[216.831,468.827],[209.64,471.485],[202.449,474.142],[195.138,476.42],[187.729,478.397],[180.323,480.372],[172.915,482.349],[165.506,484.324],[158.035,486.011],[150.476,487.294],[142.917,488.577],[135.359,489.862],[127.8,491.145],[120.217,492.217],[112.572,492.8],[104.928,493.386],[97.283,493.972],[89.639,494.555],[81.989,495],[74.324,494.884],[66.659,494.766],[58.991,494.649],[51.326,494.533],[43.663,494.347],[36.042,493.529],[28.418,492.711],[20.796,491.893],[13.173,491.075],[5.549,490.257],[-1.966,488.749],[-9.484,487.234],[-16.999,485.718],[-24.514,484.203],[-32.029,482.686],[-39.396,480.575],[-46.737,478.371],[-54.08,476.166],[-61.423,473.961],[-68.767,471.754],[-75.938,469.062],[-83.042,466.18],[-90.148,463.299],[-97.251,460.417],[-104.357,457.534],[-111.296,454.296],[-118.097,450.757],[-124.898,447.216],[-131.697,443.676],[-138.498,440.135],[-145.183,436.398],[-151.613,432.223],[-158.044,428.05],[-164.477,423.875],[-170.908,419.702],[-177.332,415.518],[-183.406,410.842],[-189.484,406.166],[-195.559,401.49],[-201.457,396.601],[-207.135,391.45],[-212.813,386.298],[-218.489,381.145],[-224.167,375.992],[-229.845,370.839],[-235.266,365.42],[-240.688,359.999],[-246.109,354.577],[-251.531,349.156],[-256.952,343.734],[-262.374,338.313],[-267.795,332.894],[-273.216,327.472],[-278.638,322.051],[-284.057,316.629],[-289.478,311.208],[-294.9,305.786],[-300.321,300.365],[-305.743,294.943],[-311.164,289.522],[-316.586,284.101],[-322.007,278.679],[-327.429,273.26],[-332.85,267.839],[-338.272,262.417],[-343.691,256.996],[-349.112,251.574],[-354.534,246.153],[-359.955,240.731],[-365.377,235.31],[-370.798,229.888],[-375.951,224.213],[-381.104,218.535],[-386.257,212.857],[-391.409,207.181],[-396.56,201.503],[-401.398,195.566],[-405.977,189.416],[-410.554,183.266],[-415.133,177.116],[-419.712,170.969],[-424.166,164.734],[-428.132,158.175],[-432.099,151.613],[-436.064,145.052],[-440.031,138.49],[-443.998,131.929],[-447.364,125.043],[-450.687,118.134],[-454.01,111.226],[-457.333,104.316],[-460.656,97.406],[-463.5,90.295],[-466.158,83.102],[-468.818,75.911],[-471.475,68.721],[-474.133,61.53],[-476.413,54.218],[-478.39,46.81],[-480.365,39.404],[-482.342,31.995],[-484.317,24.587],[-486.007,17.118],[-487.289,9.559],[-488.572,2],[-489.857,-5.558],[-491.14,-13.117],[-492.215,-20.702],[-492.798,-28.348],[-493.384,-35.991],[-493.969,-43.637],[-494.553,-51.28],[-495,-58.928],[-494.884,-66.596],[-494.768,-74.261],[-494.65,-81.926],[-494.533,-89.593],[-494.352,-97.254],[-493.534,-104.877],[-492.716,-112.499],[-491.895,-120.123],[-491.077,-127.747],[-490.259,-135.368],[-488.756,-142.886],[-487.239,-150.401],[-485.723,-157.918],[-484.208,-165.433],[-482.693,-172.948],[-480.583,-180.316],[-478.378,-187.659],[-476.173,-195],[-473.968,-202.343],[-471.763,-209.686],[-469.072,-216.86],[-466.192,-223.963],[-463.309,-231.067],[-460.426,-238.173],[-457.546,-245.277],[-454.31,-252.218],[-450.77,-259.019],[-447.229,-265.82],[-443.688,-272.619],[-440.149,-279.42],[-436.412,-286.107],[-432.24,-292.538],[-428.065,-298.968],[-423.892,-305.399],[-419.717,-311.83],[-415.537,-318.256],[-410.859,-324.331],[-406.183,-330.408],[-401.507,-336.483],[-396.62,-342.384],[-391.47,-348.062],[-386.317,-353.737],[-381.164,-359.415],[-376.011,-365.093],[-370.859,-370.771],[-365.185,-375.927],[-359.51,-381.079],[-353.832,-386.232],[-348.154,-391.385],[-342.476,-396.535],[-336.541,-401.376],[-330.394,-405.955],[-324.244,-410.532],[-318.094,-415.111],[-311.944,-419.69],[-305.714,-424.146],[-299.152,-428.113],[-292.591,-432.08],[-286.03,-436.044],[-279.468,-440.011],[-272.907,-443.978],[-266.023,-447.347],[-259.113,-450.67],[-252.203,-453.993],[-245.296,-457.316],[-238.386,-460.639],[-231.275,-463.486],[-224.084,-466.146],[-216.891,-468.803],[-209.701,-471.461],[-202.51,-474.118],[-195.198,-476.403],[-187.792,-478.378],[-180.384,-480.355],[-172.975,-482.33],[-165.569,-484.308],[-158.097,-485.997],[-150.539,-487.282],[-142.98,-488.565],[-135.422,-489.85],[-127.863,-491.133],[-120.28,-492.21],[-112.635,-492.793],[-104.991,-493.379],[-97.346,-493.965],[-89.702,-494.548],[-82.054,-495.001],[-74.387,-494.882],[-66.721,-494.766],[-59.056,-494.647],[-51.389,-494.531],[-43.729,-494.352],[-36.105,-493.534],[-28.481,-492.716],[-20.859,-491.898],[-13.235,-491.079],[-5.614,-490.262]],"c":true}]},{"t":578,"s":[{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[6.428,-491.836],[14.758,-490.711],[22.933,-488.794],[30.879,-486.091],[38.523,-482.63],[45.798,-478.436],[52.619,-473.52],[58.782,-467.809],[64.461,-461.621],[69.338,-454.782],[73.871,-447.708],[78.192,-440.497],[82.517,-433.286],[86.839,-426.075],[91.16,-418.864],[95.482,-411.653],[99.804,-404.442],[104.126,-397.231],[108.483,-390.044],[113.214,-383.095],[118.623,-376.662],[124.659,-370.811],[131.256,-365.6],[138.343,-361.084],[145.852,-357.302],[153.702,-354.292],[161.813,-352.086],[170.105,-350.705],[178.493,-350.164],[186.896,-350.481],[195.21,-351.684],[203.407,-353.545],[211.562,-355.588],[219.718,-357.63],[227.872,-359.673],[236.027,-361.716],[244.181,-363.761],[252.338,-365.803],[260.492,-367.846],[268.646,-369.889],[276.914,-371.411],[285.269,-372.203],[293.657,-372.215],[302.017,-371.414],[310.252,-369.719],[318.231,-367.08],[325.908,-363.685],[333.216,-359.562],[340.096,-354.753],[346.486,-349.301],[352.314,-343.241],[357.412,-336.56],[361.837,-329.422],[365.549,-321.897],[368.509,-314.043],[370.689,-305.936],[372.039,-297.638],[372.361,-289.24],[372.004,-280.849],[370.621,-272.565],[368.824,-264.356],[366.781,-256.2],[364.736,-248.045],[362.693,-239.891],[360.651,-231.737],[358.608,-223.58],[356.565,-215.426],[354.522,-207.272],[352.518,-199.108],[350.948,-190.852],[350.222,-182.478],[350.352,-174.071],[351.328,-165.723],[353.146,-157.514],[355.778,-149.53],[359.199,-141.853],[363.374,-134.555],[368.261,-127.715],[373.81,-121.4],[379.976,-115.683],[386.704,-110.652],[393.816,-106.172],[401.027,-101.85],[408.238,-97.528],[415.449,-93.207],[422.657,-88.885],[429.868,-84.563],[437.079,-80.241],[444.29,-75.919],[451.501,-71.597],[458.424,-66.826],[464.892,-61.481],[470.836,-55.558],[476.182,-49.083],[480.806,-42.061],[484.584,-34.554],[487.613,-26.727],[489.868,-18.643],[491.334,-10.378],[492.001,-2.006],[491.837,6.399],[490.717,14.73],[488.802,22.906],[486.104,30.852],[482.645,38.498],[478.456,45.775],[473.541,52.596],[467.831,58.762],[461.649,64.443],[454.811,69.326],[447.737,73.86],[440.526,78.18],[433.315,82.501],[426.105,86.823],[418.894,91.145],[411.68,95.465],[404.469,99.786],[397.258,104.108],[390.069,108.463],[383.12,113.192],[376.687,118.601],[370.833,124.635],[365.62,131.228],[361.1,138.316],[357.315,145.823],[354.303,153.672],[352.094,161.784],[350.711,170.075],[350.167,178.464],[350.487,186.866],[351.683,195.181],[353.544,203.378],[355.589,211.532],[357.631,219.686],[359.674,227.843],[361.717,235.997],[363.762,244.151],[365.805,252.306],[367.847,260.462],[369.892,268.617],[371.413,276.884],[372.209,285.237],[372.224,293.628],[371.424,301.988],[369.729,310.223],[367.095,318.202],[363.7,325.879],[359.582,333.191],[354.775,340.071],[349.328,346.464],[343.269,352.292],[336.587,357.392],[329.452,361.82],[321.927,365.534],[314.075,368.499],[305.968,370.683],[297.67,372.031],[289.272,372.357],[280.883,372.005],[272.597,370.622],[264.388,368.83],[256.234,366.785],[248.077,364.742],[239.923,362.699],[231.769,360.657],[223.615,358.614],[215.458,356.571],[207.304,354.526],[199.14,352.521],[190.884,350.949],[182.51,350.221],[174.105,350.344],[165.754,351.32],[157.546,353.134],[149.562,355.763],[141.88,359.181],[134.582,363.354],[127.74,368.236],[121.423,373.785],[115.708,379.949],[110.672,386.673],[106.19,393.784],[101.868,400.995],[97.546,408.206],[93.224,415.417],[88.902,422.628],[84.581,429.839],[80.259,437.05],[75.937,444.261],[71.615,451.472],[66.846,458.394],[61.503,464.868],[55.583,470.811],[49.11,476.162],[42.088,480.786],[34.586,484.569],[26.758,487.6],[18.675,489.86],[10.412,491.328],[2.04,492],[-6.367,491.834],[-14.696,490.718],[-22.874,488.808],[-30.82,486.115],[-38.469,482.661],[-45.748,478.474],[-52.569,473.559],[-58.737,467.851],[-64.421,461.671],[-69.305,454.836],[-73.842,447.762],[-78.164,440.551],[-82.484,433.34],[-86.805,426.13],[-91.127,418.918],[-95.449,411.708],[-99.769,404.497],[-104.09,397.283],[-108.445,390.094],[-113.171,383.143],[-118.576,376.707],[-124.607,370.851],[-131.201,365.636],[-138.287,361.113],[-145.793,357.325],[-153.64,354.309],[-161.749,352.098],[-170.041,350.71],[-178.432,350.169],[-186.832,350.483],[-195.149,351.675],[-203.346,353.533],[-211.5,355.578],[-219.654,357.621],[-227.809,359.664],[-235.965,361.706],[-244.12,363.751],[-252.274,365.794],[-260.428,367.837],[-268.585,369.882],[-276.85,371.404],[-285.205,372.204],[-293.594,372.225],[-301.956,371.43],[-310.191,369.735],[-318.17,367.104],[-325.849,363.716],[-333.162,359.6],[-340.046,354.796],[-346.442,349.351],[-352.269,343.291],[-357.371,336.612],[-361.804,329.482],[-365.521,321.956],[-368.488,314.107],[-370.677,306],[-372.025,297.702],[-372.356,289.304],[-372.006,280.915],[-370.628,272.629],[-368.836,264.42],[-366.793,256.264],[-364.75,248.109],[-362.708,239.955],[-360.662,231.801],[-358.62,223.646],[-356.577,215.49],[-354.532,207.336],[-352.527,199.172],[-350.95,190.916],[-350.22,182.542],[-350.34,174.137],[-351.312,165.786],[-353.123,157.578],[-355.749,149.591],[-359.166,141.91],[-363.334,134.609],[-368.216,127.765],[-373.763,121.447],[-379.924,115.728],[-386.645,110.688],[-393.755,106.205],[-400.968,101.886],[-408.179,97.564],[-415.39,93.242],[-422.601,88.923],[-429.814,84.601],[-437.025,80.281],[-444.236,75.96],[-451.449,71.64],[-458.372,66.871],[-464.845,61.533],[-470.793,55.615],[-476.148,49.144],[-480.771,42.123],[-484.556,34.621],[-487.591,26.795],[-489.854,18.714],[-491.327,10.451],[-492.001,2.077],[-491.837,-6.328],[-490.724,-14.659],[-488.818,-22.835],[-486.128,-30.786],[-482.678,-38.434],[-478.496,-45.716],[-473.581,-52.537],[-467.878,-58.71],[-461.701,-64.396],[-454.868,-69.283],[-447.796,-73.822],[-440.586,-78.144],[-433.375,-82.463],[-426.161,-86.785],[-418.95,-91.107],[-411.739,-95.429],[-404.529,-99.751],[-397.318,-104.073],[-390.126,-108.425],[-383.172,-113.146],[-376.732,-118.549],[-370.874,-124.578],[-365.656,-131.167],[-361.128,-138.252],[-357.338,-145.757],[-354.319,-153.601],[-352.104,-161.71],[-350.714,-170.002],[-350.17,-178.393],[-350.482,-186.793],[-351.666,-195.11],[-353.525,-203.307],[-355.567,-211.461],[-357.61,-219.618],[-359.655,-227.772],[-361.698,-235.926],[-363.741,-244.081],[-365.783,-252.237],[-367.826,-260.391],[-369.871,-268.546],[-371.396,-276.813],[-372.202,-285.166],[-372.226,-293.555],[-371.436,-301.917],[-369.741,-310.152],[-367.117,-318.133],[-363.731,-325.815],[-359.617,-333.13],[-354.818,-340.017],[-349.378,-346.414],[-343.318,-352.242],[-336.642,-357.349],[-329.511,-361.784],[-321.991,-365.505],[-314.141,-368.475],[-306.037,-370.669],[-297.738,-372.017],[-289.34,-372.35],[-280.952,-372.005],[-272.665,-370.629],[-264.454,-368.839],[-256.3,-366.796],[-248.146,-364.754],[-239.989,-362.709],[-231.835,-360.666],[-223.681,-358.623],[-215.526,-356.581],[-207.372,-354.535],[-199.208,-352.528],[-190.953,-350.951],[-182.578,-350.216],[-174.174,-350.334],[-165.823,-351.306],[-157.612,-353.115],[-149.626,-355.736],[-141.942,-359.148],[-134.639,-363.314],[-127.794,-368.194],[-121.477,-373.74],[-115.753,-379.899],[-110.708,-386.616],[-106.225,-393.725],[-101.903,-400.936],[-97.582,-408.147],[-93.26,-415.36],[-88.94,-422.571],[-84.618,-429.782],[-80.297,-436.993],[-75.975,-444.204],[-71.584,-451.531],[-66.813,-458.453],[-61.463,-464.917],[-55.538,-470.858],[-49.058,-476.202],[-42.039,-480.826],[-34.53,-484.599],[-26.699,-487.623],[-18.616,-489.876],[-10.351,-491.337],[-1.977,-491.999]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[8.9,8.9],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Material shape","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":".grey700","cl":"grey700","parent":27,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-349.33,-81.383,0],"ix":2,"l":2},"a":{"a":0,"k":[-212.824,66.939,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[77,77],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":772,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549019608,0.388235294118,0.407843137255,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-212.824,66.939],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":".grey800","cl":"grey800","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0],"y":[1]},"o":{"x":[0.05],"y":[0]},"t":270,"s":[1256]},{"t":300,"s":[476]}],"ix":3},"y":{"a":0,"k":342,"ix":4}},"a":{"a":0,"k":[-202.83,-54.883,0],"ix":1,"l":2},"s":{"a":0,"k":[200,200,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[420,190],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":38,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294117647,0.250980392157,0.262745098039,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-202.83,-54.883],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":270,"op":720,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[412,300,0],"ix":2,"l":2},"a":{"a":0,"k":[-46.322,-74.951,0],"ix":1,"l":2},"s":{"a":0,"k":[200,200,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[412,300],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":28,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-46.322,-74.951],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":720,"st":0,"ct":1,"bm":0}],"markers":[{"tm":360,"cm":"1","dr":0},{"tm":450,"cm":"2","dr":0},{"tm":540,"cm":"3","dr":0}],"props":{}}
\ No newline at end of file
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 7c1ae53..c292ba0 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Slaaptyd"</item>
-    <item msgid="4152450357280759894">"Bestuur"</item>
-    <item msgid="7096549258219399423">"Meesleurend"</item>
-    <item msgid="2760716776980432977">"Bestuur"</item>
-    <item msgid="601734478369121764">"Ster"</item>
-    <item msgid="6243809315432780521">"Kalender"</item>
-    <item msgid="4913577903148415331">"Tyd"</item>
-    <item msgid="3653377604690057780">"Teater"</item>
-    <item msgid="3843711267408385410">"Blom"</item>
+    <item msgid="2750940760340557109">"Halfmaan"</item>
+    <item msgid="8513969636586738035">"Motor"</item>
+    <item msgid="957392343846370509">"Persoon se gedagtes"</item>
+    <item msgid="6734164279667121348">"Kalender"</item>
+    <item msgid="4139559120353528558">"Horlosie"</item>
+    <item msgid="5157711296814769020">"Strandsambreel"</item>
+    <item msgid="6635328761318954115">"Tent"</item>
+    <item msgid="1711994778883392255">"Filmspoel"</item>
+    <item msgid="9097658401859604879">"Speletjiebeheerder"</item>
+    <item msgid="755931364157422565">"Gimnasiumhandgewig"</item>
+    <item msgid="8894207806795738429">"Persoon wat ’n bal gooi"</item>
+    <item msgid="2274801572149555103">"Persoon wat skop"</item>
+    <item msgid="8795037201506843325">"Swem"</item>
+    <item msgid="3558421426169430451">"Persoon wat voetslaan"</item>
+    <item msgid="7455070421232184932">"Gholf"</item>
+    <item msgid="5841773092449126508">"Werkswinkelgereedskap"</item>
+    <item msgid="4595330511709890409">"Aktetas"</item>
+    <item msgid="8352738347856724389">"Ster"</item>
+    <item msgid="7082783098151998721">"Egiptiese waterlelie"</item>
+    <item msgid="5772220259409264724">"Toesighouer"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 4b560a8..bbb38bd 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Afgelas"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Onbekend"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Voorskou"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-kode"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Maak kleiner"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Maak groter"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Altyd"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Gehoortoestelinstellings"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Kortpad, gehoortoestel-versoenbaarheid"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Voorafstelling"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Geen voorafstellings deur jou oudioloog geprogrammeer nie"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Kon nie voorafstelling opdateer nie"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Oudio-uitvoer"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Meer oor oudio-uitvoer"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Taalkeuse vir hierdie program is nie in Instellings beskikbaar nie."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Taal kan verskil van tale wat in die program beskikbaar is. Sommige programme steun dalk nie hierdie instelling nie."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Stel die taal vir elke app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Jou stelsel, apps en webwerwe gebruik die eerste gesteunde taal uit jou voorkeurtale."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Jou toestel, apps en webwerwe gebruik die eerste gesteunde taal uit jou voorkeurtaallys.\n\nBaie apps sal ook die streek van jou voorkeurtaal gebruik om datums, getalle en eenhede te formateer. Voeg ’n taal by en kies dan jou voorkeurstreek as jy jou streek wil verander."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Gaan na apptaalinstellings vir elke app om ’n taal te kies."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Meer inligting oor apptale"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Verander stelseltaal na %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Af"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aan/# app het toegang tot ligging}other{Aan/# apps het toegang tot ligging}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laai tans …"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps met die Toestelle in die Omtrek-toestemming kan die relatiewe posisie van gekoppelde toestelle bepaal."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps met die Toestelle in die Omtrek-toestemming kan die relatiewe posisie van gekoppelde toestelle bepaal."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Liggingtoegang is af vir apps en dienste. Jou toestelligging kan steeds aan nooddienste gestuur word wanneer jy \'n noodnommer bel of \'n SMS daarheen stuur."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Meer inligting oor ligginginstellings"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Gaan na ChromeOS-instellings &gt; Privaatheid en sekuriteit &gt; Privaatheidkontroles &gt; Liggingtoegang om dit te verander"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gesig en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gesig, vingerafdruk en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gesig, vingerafdrukke en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator-ontsluiting"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Horlosie is bygevoeg"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Stel jou horlosie op"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Kom meer te wete oor Horlosieontsluiting"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Voeg horlosie by"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Verwyder horlosie"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Gesig- en Vingerafdrukslot"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Gesigslot en vingerafdrukslot"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Gesig- en Vingerafdrukslot vir werk"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Opstelling is nodig"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Gesig en vingerafdrukke is bygevoeg"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Stel tans privaat ruimte op …"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Kon nie privaat ruimte opstel nie"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Probeer weer"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Gaan uit"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privaat ruimte is nie beskikbaar nie.\nBekyk moontlike oorsake"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Bekyk moontlike oorsake"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Wil jy ’n nuwe slot vir privaat ruimte kies?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Jy kan ’n nuwe slot net vir privaat ruimte stel, of dieselfde slot gebruik wat jy gebruik om jou toestel te ontsluit"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gebruik skermslot"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Herbegin toestel?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Gedetailleerde NFC-loglêers is slegs vir ontwikkelingdoeleindes bedoel. Bykomende NFC-data is by foutverslae ingesluit, wat privaat inligting kan bevat. Herbegin jou toestel om hierdie instelling te verander."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Herbegin"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Aan"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Af"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Eksterne skerm"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Gebruik eksterne skerm"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Skermresolusie"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Eksterne skerm is ontkoppel"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotasie"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standaard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"As jy rotasie of resolusie verander, kan dit enige apps stop wat tans gebruik word"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Jou toestel moet aan ’n eksterne skerm gekoppel wees om jou skerm te weerspieël"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Meer opsies"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Saai uit"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"weerspieël"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Aktiveer draadlose skermdeling"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Aanpasbaar"</string>
     <string name="brightness" msgid="6216871641021779698">"Helderheidsvlak"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Aanpasbare helderheid"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Meer oor aanpasbare helderheid"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Jou skermhelderheid sal outomaties by jou omgewing en aktiwiteite aanpas. Jy kan die glyer self skuif om aanpasbare helderheid te help om te leer wat jy verkies."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Aan"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Af"</string>
@@ -1744,7 +1766,7 @@
     <string name="controls_label" msgid="8671492254263626383">"Kontroles"</string>
     <string name="force_stop" msgid="2681771622136916280">"Verplig stop"</string>
     <string name="archive" msgid="9074663845068632127">"Argiveer"</string>
-    <string name="restore" msgid="7622486640713967157">"Stel terug"</string>
+    <string name="restore" msgid="7622486640713967157">"Laai terug"</string>
     <string name="restoring_step_one" msgid="3465050101254272874">"Stel tans terug"</string>
     <string name="restoring_step_two" msgid="140484846432595108">"Stel tans terug."</string>
     <string name="restoring_step_three" msgid="3712883580876329811">"Stel tans terug …"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opsies"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Toeganklikheid"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fisiese sleutelbord"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Gebruik skermsleutelbord"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Hou dit op die skerm terwyl fisieke sleutelbord aktief is"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Hopsleutels"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Die sleutelbord ignoreer drukke van dieselfde sleutel wat binne <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms vinnig herhaal word"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Stadige sleutels"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Dit verstel die tyd wat dit neem vir ’n sleuteldruk om geaktiveer te word na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms toe"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Gebruik die fisieke sleutelbord om die muis te beheer."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Verander wyserinvulstyl na geel"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Verander wyserinvulstyl na pienk"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Verander wyserinvulstyl na blou"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Styl van wyser se haal"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Wit"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Swart"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Geen"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Leer raakpaneelgebare"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"stuurpaneel, stuurpaneel, muis, skermpyltjie, rollees, swiep, regsklik, klik, wyser"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"regsklik, tik"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Gebruikergekose: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Spraak"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Wyserspoed"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Wyserskaal"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Verklein wyserskaal"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Vergroot wyserskaal"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Speletjiekontroleerder"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Herlei vibrasie"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Stuur vibrasie na speletjiebeheerder wanneer dit gekoppel is"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Gaan in elk geval voort"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Kanselleer"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Vergrotinginstellings"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Beeldrol met een vinger"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Skuif vergrootglas met 1 vinger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Sleep 1 vinger om op die skerm rond te beweeg"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Skuif die vergrotingarea deur een vinger te sleep."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Skuif die vergrotingarea deur twee vingers te sleep."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Onbeskikbaar terwyl net ’n deel van die skerm vergroot word"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tik op \'n knoppie om te zoem"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoem vinnig op die skerm in om inhoud groter te maak"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Zoem só in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gebruik kortpad om vergroting te begin&lt;br/&gt; {1,number,integer}. Tik op die skerm&lt;br/&gt; {2,number,integer}. Sleep 2 vingers om op die skerm rond te beweeg&lt;br/&gt; {3,number,integer}. Knyp met 2 vingers om die zoem te verstel&lt;br/&gt; {4,number,integer}. Gebruik kortpad om vergroting te stop&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Zoem só tydelik in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Maak seker dat jou vergrotingtipe op volskerm gestel is&lt;br/&gt; {1,number,integer}. Gebruik kortpad om vergroting te begin&lt;br/&gt; {2,number,integer}. Raak en hou enige plek op die skerm&lt;br/&gt; {3,number,integer}. Sleep vinger om op die skerm rond te beweeg&lt;br/&gt; {4,number,integer}. Lig vinger om vergroting te stop"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Zoem só in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gebruik kortpad om vergroting te begin&lt;br/&gt; {1,number,integer}. Tik op die skerm&lt;br/&gt; {2,number,integer}. Sleep 2 vingers om op die skerm rond te beweeg&lt;br/&gt; {3,number,integer}. Knyp met 2 vingers om die zoem te verstel&lt;br/&gt; {4,number,integer}. Gebruik kortpad om vergroting te stop&lt;br/&gt;&lt;br/&gt; Jy kan ook tydelik en meer inzoem."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Zoem só in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gebruik kortpad om vergroting te begin&lt;br/&gt; {1,number,integer}. Tik op die skerm&lt;br/&gt; {2,number,integer}. Sleep 1 of 2 vingers om op die skerm rond te beweeg&lt;br/&gt; {3,number,integer}. Knyp met 2 vingers om die zoem te verstel&lt;br/&gt; {4,number,integer}. Gebruik kortpad om vergroting te stop&lt;br/&gt;&lt;br/&gt; Jy kan ook tydelik en meer inzoem."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Wanneer vergroting aangeskakel is, kan jy op jou skerm inzoem.\n\n"<b>"Om te zoem"</b>", moet jy vergroting begin en dan op enige plek op die skerm tik.\n"<ul><li>"Sleep 2 of meer vingers om te rollees"</li>\n<li>"Knyp 2 of meer vingers om zoem te verstel"</li></ul>\n\n<b>"Om tydelik te zoem"</b>", moet jy vergroting begin en dan enige plek op die skerm raak en hou.\n"<ul><li>"Sleep om op die skerm rond te beweeg"</li>\n<li>"Lig jou vinger op om uit te zoem"</li></ul>\n\n"Jy kan nie op die sleutelbord of die navigasiebalk inzoem nie."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Bladsy <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> van <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Toeganklikheidknoppiekortpad"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tik op die swewende knoppie"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Toeganklikheidsgebaar"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tik op die toeganklikheidknoppie <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> onderaan jou skerm. Raak en hou die toeganklikheidknoppie om tussen kenmerke te wissel."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swiep met 2 vingers van die onderkant van die skerm af op.\n\nSwiep op met 2 vingers en hou om tussen kenmerke te wissel."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swiep met 3 vingers van die onderkant van die skerm af op.\n\nSwiep op met 3 vingers en hou om tussen kenmerke te wissel."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swiep van die onderkant van jou skerm af op. Swiep op en hou om tussen kenmerke te wissel.}other{Swiep met # vingers van die onderkant van jou skerm af op. Swiep met # vingers op en hou om tussen kenmerke te wissel.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Meer opsies"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Kom meer te wete oor <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volumesleutels"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"Volumesleutels"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Druk en hou albei volumesleutels"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tweevinger-dubbeltik op skerm"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-vinger-dubbeltik"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tik vinnig twee keer op die skerm met %1$d vingers."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tripeltik"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tik vinnig %1$d keer op die skerm. Dit kan jou toestel stadiger maak"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-vinger-dubbeltik"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tik vinnig {0,number,integer} keer op die skerm met twee vingers"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tik 3 keer op skerm"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"Tripeltik"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tik {0,number,integer} keer vinnig op skerm. Hierdie kortpad kan jou toestel stadiger maak"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Gevorderd"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Die Toeganklikheidsknoppie is gestel op <xliff:g id="SERVICE">%1$s</xliff:g>. Raak en hou die Toeganklikheidsknoppie en kies vergroting as jy vergroting wil gebruik."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Die toeganklikheidgebaar is gestel op die <xliff:g id="SERVICE">%1$s</xliff:g>. Swiep met twee vingers op van die onderkant van die skerm af en hou om vergroting te gebruik. Kies dan vergroting."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Hierdie diens werk nie."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Toeganklikheidkortpaaie"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Wys in Vinnige instellings"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rooi-groen"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rooi-groen"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rooi-groen, groen is swak"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rooi-groen, rooi is swak"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blou-geel"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grysskaal"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiteit"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Groen swak, deuteranomalie"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rooi swak, protanomalie"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Onbeskikbaar vir grysskaalmodus of wanneer kleurregstelling gedeaktiveer is"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalie"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalie"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Ekstra flou"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Maak skerm ekstra donker"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Siaan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Geel"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Gee <xliff:g id="SERVICE">%1$s</xliff:g> volle beheer oor jou toestel?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> moet:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Instellings kan nie jou antwoord verifieer nie omdat \'n program \'n toestemmingversoek verberg."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> versoek tans volle beheer van hierdie toestel. Die diens kan die skerm lees en namens gebruikers met toeganklikheidsbehoeftes optree. Hierdie vlak van beheer is nie vir die meeste programme toepaslik nie."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Volle beheer is gepas vir apps wat jou help met toeganklikheidsbehoeftes, maar nie vir die meeste apps nie."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Bekyk en beheer skerm"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Dit kan alle inhoud op die skerm lees en inhoud bo-oor ander apps vertoon."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Bekyk en voer handelinge uit"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dit kan jou interaksies met \'n app of \'n hardewaresensor naspoor en namens jou met apps interaksie hê."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Laat toe"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weier"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Skakel af"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Geen}=1{1 skedule gestel}other{# skedules gestel}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Moenie Steur Nie"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioriteitmodusse"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Voeg ’n modus by"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Verminder afleidings en neem beheer oor jou aandag met modusse vir slaap, werk, bestuur en alles tussenin."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Skep jou eie modus"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Word net deur belangrike mense en apps in kennis gestel"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Stel ’n skedule"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Skedule gebaseer op"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dag en tyd"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00-17:00 weeksdae\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalendergeleenthede"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} is aktief}=2{{mode_1} en {mode_2} is aktief}=3{{mode_1}, {mode_2} en {mode_3} is aktief}other{{mode_1}, {mode_2} en nog # is aktief}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modus kan outomaties aanskakel}other{# modusse kan outomaties aanskakel}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AAN"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nie gestel nie"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Gedeaktiveer"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Skep ’n modus"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Gepasmaak"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Skakel nou aan"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Skakel af"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modus nie gevind nie"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Beperk onderbrekings"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokkeer onderbrekings en afleidings"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Stel <xliff:g id="MODE">%1$s</xliff:g> op"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Skakel Moenie steur nie aan"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Wekkers en mediaklanke kan onderbreek"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Skedules"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Vee skedules uit"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Vee uit"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Hernoem"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Vee uit"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vee “<xliff:g id="MODE">%1$s</xliff:g>”-modus uit?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Wysig"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Skedules"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Skedule"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Skakel outomaties aan"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Voeg ’n kalender by"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Gebruik jou kalender"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Skedule"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Stel ’n skedule"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Wanneer om outomaties aan te skakel"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Geleentheidskedule"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Skakel aan tydens geleenthede vir"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Waar uitnodigingantwoord die volgende is"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Tydskedule"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Skedule"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> uur, <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Skedule"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Laat onderbrekings wat klanke maak toe"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokkeer visuele steurings"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Laat visuele tekens toe"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Kennisgewings wat jou kan bereik"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Bykomende handelinge"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Kennisgewingfilters"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Nog instellings"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Af}=1{Af / 1 modus kan automaties aanskakel}other{Af / # modusse kan automaties aanskakel}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Vertooninstellings"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Vertoon opsies"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Grysskaal"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"aktiveer donkertema"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Wissel die bedryfstelsel en apps om ligte teks op ’n donker agtergrond te verkies, wat makliker vir die oë kan wees en aansienlike batterybesparings op sekere toestelle bied"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Geen skermveranderinge nie}=1{{effect_1}}=2{{effect_1} en {effect_2}}=3{{effect_1}, {effect_2} en {effect_3}}other{{effect_1}, {effect_2}, en nog #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Beperk wat vir jou kennisgewings kan stuur"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Geen onderbrekings is gefilter nie"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Vertoonopsies vir gefiltreerde kennisgewings"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Wanneer Moenie Steur Nie aan is"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Geen klank van kennisgewings af nie"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"maak kennisgewing oop"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Laat toe dat kennisgewings gesluimer word"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Kennisgewingkol op appikoon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Kennisgewingbondels"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Borrels"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Borrels"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Laat hierdie gesprek in \'n borrel verskyn"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Hierdie program steun nie verbeterde instellings nie"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Meer instellings"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Meer instellings is binne hierdie app beskikbaar"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Aanpasbare kennisgewings"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gebruik aanpasbare kennisgewings"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Wanneer jy binne ’n kort tydperk baie kennisgewings kry, sal jou foon vir tot twee minute die volume sagter stel en opspringers op die skerm minimeer. Oproepe, wekkers en prioriteitgesprekke vibreer steeds, maak ’n geluid of wys op die skerm, en alle kennisgewings is maklik om te kry wanneer jy van die bokant van die skerm af trek."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Kennisgewingbedaring"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gebruik kennisgewingdemping"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Wanneer jy binne ’n kort tydperk baie kennisgewings kry, sal jou toestel vir tot 2 minute die volume sagter stel en waarskuwings minimeer. Oproepe, wekkers en prioriteitgesprekke word nie geraak nie. \n\nKennisgewings wat jy tydens demping kry, kan gekry word deur van die bokant van die skerm af te trek."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Pas toe op werkprofiele"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Pas toe op werkprofielapps"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-helperdienste"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorieë"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Ander"</string>
     <string name="no_channels" msgid="4716199078612071915">"Hierdie program het nie enige kennisgewings geplaas nie"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Wys ongebruikte kategorieë"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Bykomende instellings in die app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Wys ongebruikte kategorieë"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Versteek ongebruikte kategorieë"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Gesprekke"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Alle gesprekke"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"alle gesprekke"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioriteitgesprekke"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioriteitgesprekke"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Geen"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps wat kan onderbreek"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Geselekteerde apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Geen"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alles"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Geen apps kan onderbreek nie}=1{{app_1} kan onderbreek}=2{{app_1} en {app_2} kan onderbreek}=3{{app_1}, {app_2} en {app_3} kan onderbreek}other{{app_1}, {app_2} en nog # kan onderbreek}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Werk)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Bereken tans …"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Laat programme toe om te ignoreer"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programme wat kan onderbreek"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Kies meer apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niks kan onderbreek nie"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Niemand kan onderbreek nie"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Sekere mense kan onderbreek"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Herhaalbellers kan onderbreek"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Alle mense kan onderbreek"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Herhaalbellers"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Laat herhaalbellers toe"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Verandering aan wekkers vir slegs een uur tot {time}}other{Verandering aan wekkers vir slegs # uur tot {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Verander tot <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> na net wekkers"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Verander na onderbreek altyd"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Hernoem"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Verander ikoon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Verander ikoon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Wysig modus"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Skep ’n modus"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Gepasmaakte modus"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Modusnaam"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendergeleenthede"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Slaaptydroetine"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Terwyl jy bestuur"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Appinstellings"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Inligting en instellings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Bestuur deur <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Deaktiveer <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Hierdie modus sal nooit aanskakel wanneer dit gedeaktiveer is nie"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktiveer"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Aktiveer <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Hierdie modus kan dalk outomaties aanskakel, afhangende van die instellings"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktiveer"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Stel ’n modus wat ’n gereelde skedule volg"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Stel ’n modus om met kalendergeleenthede en antwoorde op uitnodigings te sinkroniseer"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Ontwerp ’n kalmerende slaaproetine. Stel wekkers, verdof die skerm en blokkeer kennisgewings."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritiseer veiligheid op die pad vir ’n gefokusde en afleidingsvrye rit"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokkeer afleidings of onderbrekings van jou toestel af om fokus te verkry"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimineer alle afleidings vir ’n stil omgewing"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personaliseer toestelervarings en -instellings vir verskillende gebruikers"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimaliseer onderbrekings deur slegs belangrike mense en apps toe te laat om jou te bereik"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Waarskuwing"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Maak toe"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Stuur terugvoer oor hierdie toestel"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Houer"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Instellingspaneel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Dwangrekenaarmodus"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Verplig eksperimentele rekenaarmodus op sekondêre skerms"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktiveer vryevormvensters"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Aktiveer vryevormvensters op sekondêre skerm"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktiveer nieveranderbare grootte in multivenster"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Laat programme met nieveranderbare grootte toe in multivenster"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Ignoreer gedwonge donkermodus"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiele data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Om toestelervaring te verbeter, kan apps en dienste steeds enige tyd na wi‑fi-netwerke soek, selfs wanneer wi‑fi af is. Dit kan byvoorbeeld gebruik word om ligginggegronde kenmerke en dienste te verbeter. Jy kan dit in Wi-fi-opsporinginstellings verander."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Verander"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Gekoppel"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tydelik gekoppel"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Gebruik <xliff:g id="SUBNAME">%1$s</xliff:g> tydelik"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Gebruik appvasspeld"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Gebruik ontwikkelaaropsies"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Gebruik drukdiens"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Laat veelvuldige gebruikers toe"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Laat gebruikerwisseling toe"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"laat toe, veelvuldig, gebruiker, baie"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"veelvuldige, gebruikers, profiele, mense, rekeninge, wissel, baie"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Gebruik draadlose ontfouting"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Kies wat jy op jou skerm sal sien wanneer jou tablet gedok is. Jou toestel kan meer energie gebruik wanneer ’n sluimerskerm gebruik word."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Pasmaak"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Pasmaak <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"\'n Herselflaai word vereis om vryevormsteun te aktiveer."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"\'n Herselflaai word vereis om rekenaarmodus vir sekondêre skerms te verplig."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"’n Herselflaai word vereis om vryevormvenstersteun te aktiveer."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"’n Herselflaai word vereis om die beskikbaarheid van vryevormvensters op te dateer."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"’n Herselflaai word vereis om vryevormvensters op sekondêre skerms te aktiveer."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Herselflaai nou"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Herselflaai later"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Ruimtelike Oudio"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Roos"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Pers"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Klaar"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Stoor"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Kanselleer"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Verstek"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Aan"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Af"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Aan"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Oudio %1$d%% links, %2$d%% regs"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Oudio %1$d%% regs, %2$d%% links"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Jou toestelnaam is sigbaar vir apps wat jy geïnstalleer het. Ander mense sal dit dalk ook kan sien as jy aan Bluetooth-toestelle koppel, aan ’n wi-fi-netwerk koppel, of ’n wi-fi-warmkol opstel."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatikale geslag"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Kies grammatikale geslag"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Luister na stroom"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skandeer ’n oudiostroom-QR-kode om op <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te luister"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kan nie wagwoord wysig terwyl daar gedeel word nie. Skakel eers oudiodeling af om die wagwoord te verander."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kodeskandeerder"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Soekinstellings"</string>
 </resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index c777d50..c105a3e 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"የመኝታ ሰዓት"</item>
-    <item msgid="4152450357280759894">"በመንዳት ላይ"</item>
-    <item msgid="7096549258219399423">"መሳጭ"</item>
-    <item msgid="2760716776980432977">"የሚተዳደር"</item>
-    <item msgid="601734478369121764">"ኮከብ"</item>
-    <item msgid="6243809315432780521">"ቀን መቁጠሪያ"</item>
-    <item msgid="4913577903148415331">"ጊዜ"</item>
-    <item msgid="3653377604690057780">"ቲያትር"</item>
-    <item msgid="3843711267408385410">"አበባ"</item>
+    <item msgid="2750940760340557109">"ግማሽ ጨረቃ"</item>
+    <item msgid="8513969636586738035">"መኪና"</item>
+    <item msgid="957392343846370509">"የሰው ጭንቅላት"</item>
+    <item msgid="6734164279667121348">"ቀን መቁጠሪያ"</item>
+    <item msgid="4139559120353528558">"ሰዓት"</item>
+    <item msgid="5157711296814769020">"የባህር ዳርቻ ዣንጥላ"</item>
+    <item msgid="6635328761318954115">"ድንኳን"</item>
+    <item msgid="1711994778883392255">"የፊልም ሪል"</item>
+    <item msgid="9097658401859604879">"የጨዋታ መቆጣጠሪያ"</item>
+    <item msgid="755931364157422565">"የጂም ዳምቤል"</item>
+    <item msgid="8894207806795738429">"ኳስ የሚወረውር ሰው"</item>
+    <item msgid="2274801572149555103">"የሚማታ ሰው"</item>
+    <item msgid="8795037201506843325">"ዋና"</item>
+    <item msgid="3558421426169430451">"ተራራ የሚወጣ ሰው"</item>
+    <item msgid="7455070421232184932">"ጎልፍ"</item>
+    <item msgid="5841773092449126508">"የሥራ ቦታ መሣሪያዎች"</item>
+    <item msgid="4595330511709890409">"የሥራ ቦርሳ"</item>
+    <item msgid="8352738347856724389">"ኮከብ"</item>
+    <item msgid="7082783098151998721">"የሎተስ አበባ"</item>
+    <item msgid="5772220259409264724">"ተቆጣጣሪ"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 7427239..a962308 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"ታግዷል"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"ያልታወቀ"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"ቅድመ-ዕይታ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR ኮድ"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"አነስ አድርግ"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ተለቅ አድርግ"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ሁልጊዜ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"የመስማት ችሎታ መሣሪያ ቅንብሮች"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"አቋራጭ፣ የመስሚያ ረዳት ተኳዃኝነት"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ቅድመ-ቅምጥ"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"በኦዲዮሎጂስትዎ ፕሮግራም የተደረጉ ምንም ቅድመ-ቅምጦች የሉም"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"ቅድመ-ቅምጥን ማዘመን አልተቻለም"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"የኦዲዮ ውጽዓት"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ስለኦዲዮ ውፅዓት"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ለዚህ መተግበሪያ የቋንቋ መረጣ ከቅንብሮች አይገኝም።"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ቋንቋ በመተግበሪያው ውስጥ ካሉ ቋንቋዎች ሊለያይ ይችላል። አንዳንድ መተግበሪያዎች ይህን ቅንብር ላይደግፉ ይችላሉ።"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ለእያንዳንዱ መተግበሪያ ቋንቋውን ያቀናብሩ።"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"የእርስዎ ስርዓት፣ መተግበሪያዎች እና ድር ጣቢያዎች ከእርስዎ የተመረጡ ቋንቋዎች ውስጥ የመጀመሪያውን የተደገፈ ቋንቋ ይጠቀማሉ።"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"የእርስዎ መሣሪያ፣ መተግበሪያዎች እና ድር ጣቢያዎች ከእርስዎ የተመረጠ ቋንቋ ዝርዝር ውስጥ የመጀመሪያውን የተደገፈ ቋንቋ ይጠቀማሉ።\n\nእንዲሁም ብዙ መተግበሪያዎች ለቀኖች፣ ቁጥሮች እና አሃዶች ቅርጸት እርስዎ ከመረጡት ቋንቋ ክልሉን ይጠቀማሉ። ክልልዎን ለመለወጥ፣ ቋንቋ ያክሉ ከዚያም የመረጡትን ክልል ይምረጡ።"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ለእያንዳንዱ መተግበሪያ ቋንቋ ለመምረጥ ወደ መተግበሪያ ቋንቋ ቅንብሮች ይሂዱ።"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ስለ መተግበሪያ ቋንቋዎች የበለጠ ይወቁ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"የሥርዓት ቋንቋ ወደ %s ይለወጥ ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ጠፍቷል"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{በርቷል / # መተግበሪያ የአካባቢ መዳረሻ አለው}one{በርቷል / # መተግበሪያ የአካባቢ መዳረሻ አለው}other{በርቷል / # መተግበሪያዎች የአካባቢ መዳረሻ አላቸው}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"በመጫን ላይ…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"በአቅራቢያ ያሉ የመሣሪያዎች ፈቃድ ያላቸው መተግበሪያዎች የተገናኙ መሣሪያዎችን አንጻራዊ አቀማመጥ ማወቅ ይችላሉ።"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"በአቅራቢያ ያሉ የመሣሪያዎች ፈቃድ ያላቸው መተግበሪያዎች የተገናኙ መሣሪያዎችን አንጻራዊ አቀማመጥ መወሰን ይችላሉ።"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ለመተግበሪያዎች እና ለአገልግሎቶች የአካባቢ መዳረሻ ጠፍቷል። ወደ የአደጋ ጊዜ ቁጥር ሲደውሉ ወይም የጽሑፍ መልዕክት ሲልኩ የመሣሪያዎ አካባቢ አሁንም ወደ የድንገተኛ ጊዜ አደጋ ምላሽ ሰጪዎች ሊላክ ይችላል።"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ስለ የአካባቢ ቅንብሮች የበለጠ ይወቁ"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ለመለወጥ ወደ ChromeOS ቅንብሮች &gt; ግላዊነት እና ደህንነት &gt; የግላዊነት ቁጥጥሮች &gt; የቦታ መዳረሻ ይሂዱ"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"መልክ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"መልክ፣ የጣት አሻራ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"መልክ፣ የጣት አሻራዎች እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"የርቀት መቆጣጠሪያ ማረጋገጫ ተከፍቷል"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"የእጅ ሰዓት ታክሏል"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"የእጅ ሰዓትዎን ያዋቅሩ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ስለ በእጅ ሰዓት መክፈቻ የበለጠ ይወቁ"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"የእጅ ሰዓትን አክል"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"የእጅ ሰዓትን አስወግድ"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"የጣት አሻራ እና በመልክ መክፈት"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"በመልክ እና በጣት አሻራ መክፈት"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"በመልክ እና በጣት አሻራ መክፈቻ ለሥራ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ውቅረት ያስፈልጋል"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"መልክ እና የጣት አሻራዎች ታክለዋል"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"የግል ቦታን በማዋቀር ላይ…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"የግል ቦታን ማዋቀር አልተቻለም"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"እንደገና ይሞክሩ"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ውጣ"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"የግል ቦታ አይገኝም።\nሊሆኑ የሚችሉ መንስዔዎችን ይመልከቱ"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ሊሆኑ የሚችሉ መንስዔዎችን ይመልከቱ"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ለግል ቦታ አዲስ ቁልፍ ይመርጣሉ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"ለግል ቦታ ብቻ አዲስ ቁልፍ ማቀናበር፣ ወይም መሣሪያዎን ለመክፈት የሚጠቀሙትን ተመሳሳይ ቁልፍ መጠቀም ይችላሉ"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ማያ ገጽ መቆለፊያን ይጠቀሙ"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"መሣሪያ እንደገና ይጀምር?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ዝርዝር የኤንኤፍሲ ምዝግብ ማስታወሻ ለግንባታ ዓላማዎች ብቻ የታሰበ ነው። በሳንካ ሪፖርቶች ውስጥ የግል መረጃን ሊይዝ የሚችል ተጨማሪ የኤንኤፍሲ ውሂብ ተካትቷል። ይህን ቅንብር ለመለወጥ መሣሪያዎን እንደገና ያስጀምሩ።"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ዳግም አስጀምር"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"በርቷል"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ጠፍቷል"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ውጫዊ ማሳያ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ውጫዊ ማሳያ ይጠቀሙ"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"የማሳያ ጥራት"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"የውጫዊ ማሳያ ግንኙነት ተቋርጧል"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"ማዞር"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"መደበኛ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ማዞር ወይም ጥራትን መለወጥ በአሁኑ ጊዜ እየሄዱ ያሉ ማናቸውንም መተግበሪያዎች ሊያቆም ይችላል"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"ማያ ገፅዎን ለማንጸባረቅ መሣሪያዎ ከውጫዊ ማሳያ ጋር መገናኘት አለበት"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ተጨማሪ አማራጮች"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"መስታወት"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ገመድ-አልባ ማሳየትን ያንቁ"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"ተለማማጅ"</string>
     <string name="brightness" msgid="6216871641021779698">"የብሩህነት ደረጃ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"ተለማማጅ ብሩህነት"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"ስለ ተለዋዋጭ ብሩህነት"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"የማያዎ ብሩህነት በራስ-ሰር ከእርስዎ አካባቢ እና እንቅስቃሴዎች ጋር ጋር ይስተካከላል። ተለማማጅ ብሩህነት ምርጫዎችዎን እንዲያውቅ ለማገዝ ተንሸራታቹን ራስዎ ማንቀሳቀስ ይችላሉ።"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"አብራ"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ጠፍቷል"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"አማራጮች"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ተደራሽነት"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"አካላዊ ቁልፍ ሰሌዳ"</string>
-    <string name="show_ime" msgid="4334255501724746849">"የማያ ገፅ የቁልፍ ሰሌዳ ይጠቀሙ"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"አካላዊ የቁልፍ ሰሌዳ ገቢር ሆኖ ሳለ በማያ ገፅ ላይ አቆየው"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"የመንጠሪያ ቁልፎች"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"ቁልፍ ሰሌዳው በ<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ሚሊሰከንድ ውስጥ ተመሳሳዩ ቁልፍ በፍጥነት መጫኑን ችላ ይላል"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ቀርፋፋ ቁልፎች"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"የቁልፍ መጫን ለማግበር የሚወስደውን ጊዜ ወደ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ሚሊሰከንድ ያስተካክላል"</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="2396247040177734245">"መዳፊቱን ለመቆጣጠር አካላዊ የቁልፍ ሰሌዳውን ይጠቀሙ።"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"የጠቋሚ ሙሌት ቅጥን ወደ ቢጫ ይለውጡ"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"የጠቋሚ ሙሌት ቅጥን ወደ ሮዝ ይለውጡ"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"የጠቋሚ ሙሌት ቅጥን ወደ ሰማያዊ ይለውጡ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"የጠቋሚ ጭረት ቅጥ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ነጭ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ጥቁር"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ምንም"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"የመዳሰሻ ሰሌዳ ምልክቶችን ይወቁ"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"የመከታተያ ፓድ፣ የትራክ ፓድ፣ መዳፊት፣ ጠቋሚ፣ ሸብልል፣ ማንሸራተት፣ የቀኝ ጠቅታ፣ ጠቅ ያድርጉ፣ ጠቋሚ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"የቀኝ ጠቅታ፣ መታ ያድርጉ"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"የተመረጠው ተጠቃሚ፦ <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"ንግግር"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"የጠቋሚ ፍጥነት"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"የጠቋሚ መለኪያ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"የጠቋሚ መለኪያን ይቀንሱ"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"የጠቋሚ መለኪያን ይጨምሩ"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"የጨዋታ መቆጣጠሪያ"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ንዝረትን አዙር"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"ሲገናኝ ንዝረትን ወደ የጨዋታ መቆጣጠሪያ ላክ"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ለማንኛውም ቀጥል"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ይቅር"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"የማጉያ ቅንብሮች"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"በአንድ ጣት መጎተት"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ማጉያን በ1 ጣት ያንቀሳቅሱ"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"በማያ ገጹ አካባቢ ለመንቀሳቀስ 1 ጣት ይጎትቱ"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"አንድ ጣትን በመጎተት የማጉያ ቦታውን ያንቀሳቅሱ።"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ሁለት ጣቶችን በመጎተት የማጉያ ቦታውን ያንቀሳቅሱ።"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"የተወሰነ የማያ ገጹን ክፍል ብቻ በማጉላት ላይ ሳለ አይገኝም"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ለማጉላት አንድ አዝራር መታ ያድርጉ"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ይዘቱን ትልቅ ለማድረግ በፍጥነት በማያ ገጹ ላይ ያጉሉ"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ለማጉላት፦&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ማጉላትን ለመጀመር አቋራጭ ይጠቀሙ&lt;br/&gt; {1,number,integer}. በማያ ገፅ ላይ መታ ያድርጉ&lt;br/&gt; {2,number,integer}. በማያ ገጹ ዙሪያ ላይ ለመንቀሳቀስ በ2 ጣቶች ይጎትቱ&lt;br/&gt; {3,number,integer}. ማጉላትን ለማስተካከል በ2 ጣቶች ይቆንጥጡ&lt;br/&gt; {4,number,integer}. ማጉላትን ለማስቆም አቋራጭ ይጠቀሙ&lt;br/&gt;&lt;br/&gt; &lt;b&gt;ለጊዜው ለማጉላት፡-&lt;/b&gt;&lt;br/&gt; {0,number,integer}. የእርስዎ የማጉላት ዓይነት ወደ ሙሉ ማያ ገፅ መቀናበሩን ያረጋግጡ&lt;br/&gt; {1,number,integer}. ማጉላትን ለመጀመር አቋራጭ ይጠቀሙ&lt;br/&gt; {2,number,integer}. በማያ ገጹ ማንኛውም ቦታ ላይ ነክተው ይያዙ&lt;br/&gt; {3,number,integer}. በማያ ገጹ ዙሪያ ላይ ለመንቀሳቀስ በጣት ይጎትቱ&lt;br/&gt; {4,number,integer}. ማጉላትን ለማስቆም ጣት ያንሱ"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ለማጉላት፦&lt;/b&gt;&lt;br/&gt; {0,number,integer}። ማጉላትን ለመጀመር አቋራጭ ይጠቀሙ&lt;br/&gt; {1,number,integer}። በማያ ገጽ ላይ መታ ያድርጉ&lt;br/&gt; {2,number,integer}። በማያ ገፁ ዙሪያ ለመንቀሳቀስ 2 ጣቶች ይጎትቱ&lt;br/&gt; {3,number,integer}። ማጉላትን ለማስተካከል በ2 ጣቶች ይቆንጥጡ&lt;br/&gt; {4,number,integer}። ማጉላት ለማቆም አቋራጭ ይጠቀሙ&lt;br/&gt;&lt;br/&gt; እንዲሁም በጊዜያዊነት ማጉላት እና ሌሎችንም ማድረግ ይችላሉ።"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ለማጉላት፦&lt;/b&gt;&lt;br/&gt; {0,number,integer}። ማጉላትን ለመጀመር አቋራጭ ይጠቀሙ&lt;br/&gt; {1,number,integer}። በማያ ገጽ ላይ መታ ያድርጉ&lt;br/&gt; {2,number,integer}። በማያ ገፁ ዙሪያ ለመንቀሳቀስ 1 ወይም 2 ጣቶች ይጎትቱ&lt;br/&gt; {3,number,integer}። ማጉላትን ለማስተካከል በ2 ጣቶች ይቆንጥጡ&lt;br/&gt; {4,number,integer}። ማጉላት ለማቆም አቋራጭ ይጠቀሙ&lt;br/&gt;&lt;br/&gt; እንዲሁም በጊዜያዊነት ማጉላት እና ሌሎችንም ማድረግ ይችላሉ።"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ማጉያ ሲበራ ማያ ገጽዎን ማጉላት ይችላሉ።\n\n"<b>"ለማጉላት"</b>"፣ ማጉያን ያስጀምሩ፣ ከዚያ በማያ ገጹ ማንኛውም ክፍል ላይ መታ ያድርጉ።\n"<ul><li>"ለማሸብለል 2 ወይም ተጨማሪ ጣቶችን ይጎትቱ"</li>\n<li>"ማጉላትን ለማስተካከል በ2 ወይም ተጨማሪ ጣቶችን ይቆንጥጡ"</li></ul>\n\n<b>"ለጊዜው ለማጉላት"</b>"፣ ማጉላትን ይጀምሩ፣ በመቀጠል በማያ ገጹ ላይ በማናቸውም ቦታ ላይ ነካ ያድርጉ እና ይያዙ።\n"<ul><li>"በማያ ገጹ ላይ ለማንቀሳቀስ ይጎትቱ"</li>\n<li>"ከማጉላት ለመውጣት ጣትን ያንሡ"</li></ul>\n\n"ቁልፍ ሰሌዳውን ወይም የአሰሳ አሞሌውን ማጉላት አይችሉም።"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"ገፅ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> ከ<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"የተደራሽነት አዝራር አቋራጭ"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"በ2 ጣቶች ከማያ ገጹ ግርጌ ላይ በጣት ወደ ላይ ጠረግ ያድርጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ2 ጣቶች ወደ ላይ ጠረግ ያድርጉ እና ይያዙ።"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"በ3 ጣቶች ከማያ ገጹ ግርጌ ላይ በጣት ወደ ላይ ጠረግ ያድርጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ3 ጣቶች ወደ ላይ ጠረግ ያድርጉ እና ይያዙ።"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ከማያ ገጽዎ የታችኛው ክፍል ወደ ላይ ያንሸራትቱ። በባህሪያት መካከል ለመቀያየር፣ ወደ ላይ ያንሸራትቱ እና ይያዙ።}one{ከማያ ገጽዎ የታችኛው ክፍል ሆነው በ# ጣት ወደ ላይ ያንሸራትቱ። በባህሪያት መካከል ለመቀያየር፣ በ# ጣት ወደ ላይ ያንሸራትቱ እና ይያዙ።}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ማያ ገጽን በሁለት ጣት ሁለቴ መታ ያድርጉ"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ማያ ገጹን %1$d ጊዜ በፍጥነት መታ ያድርጉ። ይህ መሣሪያዎን ሊያዘገየው ይችላል።"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"በ%1$d-ጣት ሁለቴ መታ ያድርጉ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ማያ ገጽን {0፣ቁጥር፣ኢንቲጀር} ጊዜያት በሁለት ጣቶች በፍጥነት መታ ያድርጉ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ማያ ገጽን ሦስቴ መታ ያድርጉ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ሦስቴ መታ ማድረግ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ማያ ገጹን በፍጥነት {0,number,integer} ጊዜዎችን መታ ያድርጉ። ይህ አቋራጭ መሣሪያዎን ሊያንቀራፍፈው ይችላል።"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"የላቀ"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"የተደራሽነት አዝራሩ ወደ <xliff:g id="SERVICE">%1$s</xliff:g> ተቀናብሯል። ማጉላትን ለመጠቀም የተደራሽነት አዛሩን ነክተው ይያዙ፣ ከዚያ ማጉላትን ይምረጡ።"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"የተደራሽነት ጣት ምልክት ወደ <xliff:g id="SERVICE">%1$s</xliff:g> ተቀናብሯል። ማጉላትን ልለመጠቀም በሁለት ጣቶች ከማያ ገጹ ግርጌ ወደ ላይ ጠርገው ይያዙ። ከዚያ ማጉላትን ይምረጡ።"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ይህ አገልግሎት በአግባቡ እየሰራ አይደለም።"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"የተደራሽነት አቋራጮች"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"በፈጣን ቅንብሮች ውስጥ አሳይ"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ቀይ-አረንጓዴ"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ቀይ-አረንጓዴ"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ቀይ-አረንጓዴ፣ አረንጓዴ ደካማ"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ቀይ-አረንጓዴ፣ ቀይ ደካማ"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ሰማያዊ-ቢጫ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ግርጥነት"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ጥንካሬ"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"አረንጓዴ ደካማ፣ ዲዩቴራኖማሊ"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ቀይ ደካማ፣ ፕሮታኖማሊ"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ለግርጥነት ሁነታ ወይም የቀለም ማስተካከያ ሲሰናከል አይገኝም"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ዲውተራኖማሊ"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ፕሮታኖማሊ"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ትራይታኖማሊ"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ተጨማሪ ደብዛዛ"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ማያ ተጨማሪ ደብዛዛ ያድርጉ"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ሳያን"</string>
     <string name="color_yellow" msgid="5957551912912679058">"ቢጫ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ማጀንታ"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> ሙሉ የመሣሪያዎ ቁጥጥር እንዲኖረው ይፈቀድለት?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ይህን ማድረግ አለበት፦"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"አንድ መተግበሪያ የፍቃድ ጥያቄ እያገደ ስለሆነ ቅንብሮች ጥያቄዎን ማረጋገጥ አይችሉም።"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ሙሉ የዚህ መሣሪያ ቁጥጥር እየጠየቀ ነው። አገልግሎቱ የተደራሽነት ፍላጎቶች ያላቸውን ተጠቃሚዎች ወክሎ ማያ ገጹን ማንበብ እና ለእነሱ መስራት ይችላል። ይህ የቁጥጥር ደረጃ ለአብዛኛዎቹ መተግበሪያዎች አግባብ አይደለም።"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ሙሉ ቁጥጥር ከተደራሽነት ፍላጎቶች ጋር እርስዎን ለሚያግዝዎት መተግበሪያዎች ተገቢ ነው ሆኖም ግን ለአብዛኛዎቹ መተግበሪያዎች አይሆንም።"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ማያ ገጽን ይመልከቱ እና ይቆጣጠሩ"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"በማያ ገጹ ላይ ሁሉንም ይዘት ሊያነብ እና በሌሎች መተግበሪያዎች ላይ ይዘትን ሊያሳይ ይችላል።"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ይመልከቱ እና እርምጃዎችን ይውሰዱ"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ከመተግበሪያ ጋር ወይም የሃርድዌር ዳሳሽ ጋር እርስዎ ያልዎትን መስተጋብሮች ዱካ መከታተል እና በእርስዎ ምትክ ከመተግበሪያዎች ጋር መስተጋብር መፈጸም ይችላል።"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ፍቀድ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ከልክል"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"አጥፋ"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ምንም}=1{1 መርሐግብር ተቀናብሯል}one{# መርሐግብሮች ተቀናብረዋል}other{# መርሐግብሮች ተቀናብረዋል}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"አይረብሹ"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ቅድሚያ ሁነታዎች"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ሁነታ ያክሉ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"የሚያዘናጉ ነገሮችን ይቀንሱ እና በእንቅልፍ፣ በሥራ፣ በማሽከርከር እና በመካከላቸው ያሉትን ነገሮች ሁሉ በመጠቀም ትኩረትዎን ይቆጣጠሩ።"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"የራስዎን ሁነታ ይፍጠሩ"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"በአስፈላጊ ሰዎች እና መተግበሪያዎች ብቻ ማሳወቂያን ያግኙ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"መርሐግብር ያቀናብሩ"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"መርሐግብር የተመሰረተው በ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ቀን እና ጊዜ"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"«9 ጠዋት - 5 ከሰዓት የሥራ ቀናት»"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"የቀን መቁጠሪያ ክስተቶች"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ገቢር ነው}=2{{mode_1} እና {mode_2} ገቢር ናቸው}=3{{mode_1}፣ {mode_2} እና {mode_3} ገቢር ናቸው}one{{mode_1}፣ {mode_2} እና # ተጨማሪ ገቢር ናቸው}other{{mode_1}፣ {mode_2} እና # ተጨማሪ ገቢር ናቸው}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 ሁነታ በራስ ሰር መብራት ይችላል}one{# ሁነታ በራስ ሰር መብራት ይችላል}other{# ሁነታዎች በራስ ሰር መብራት ይችላሉ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"በርቷል"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"አልተቀናበረም"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"ተሰናክሏል"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"ሁነታ ይፍጠሩ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ብጁ"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"አሁን አብራ"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"አጥፋ"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ሁነታ አይገኝም"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"መቆራረጦችን ይገድቡ"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"መቋረጦች እና መስተጓጎሎችን ያግዱ"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> አዋቅር"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"አትረብሽን አብራ"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ማንቂያዎች እና የሚዲያ ድምፆች ሊያቋርጡ ይችላሉ"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"መርሐግብሮች"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"መርሐግብሮችን ሰርዝ"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ሰርዝ"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"እንደገና ሰይም"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ሰርዝ"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"«<xliff:g id="MODE">%1$s</xliff:g>» ሁነታ ይሰረዝ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"አርትዕ"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"መርሐግብሮች"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"መርሐግብር"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"በራስ-ሰር አብራ"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"ቀን መቁጠሪያ ያክሉ"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ቀን መቁጠሪያዎን ይጠቀሙ"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"መርሐግብር"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"መርሐግብር ያቀናብሩ"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"በራስ-ሰር መቼ እንደሚበራ"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"የክስተት መርሐግብር"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"በክስተቶች ጊዜ ያብሩ ለ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"የግብዣ ምላሽ የት እንደሆነ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"የጊዜ መርሐግብር"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"መርሐግብር"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ሰዓት፣ <xliff:g id="MINUTES">%2$d</xliff:g> ደ"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"መርሐግብር"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ድምፅ የሚፈጥሩ ረብሻዎችን ፍጠር"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ምስላዊ ረብሻዎችን አግድ"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ምስላዊ ምልክቶችን ፍቀድ"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"እርስዎ ጋር መድረስ የሚችሉ ማሳወቂያዎች"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"ተጨማሪ እርምጃዎች"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"የማሳወቂያ ማጣሪያዎች"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"ተጨማሪ ቅንብሮች"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ጠፍቷል}=1{ጠፍቷል / 1 ሁነታ በራስ-ሰር መብራት ይችላል}one{ጠፍቷል / # ሁነታ በራስ-ሰር መብራት ይችላል}other{ጠፍቷል / # ሁነታዎች በራስ-ሰር መብራት ይችላሉ}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"የማሳያ ቅንብሮች"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"የማሳያ አማራጮች"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ግርጥነት"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ጥቁር ገጽታ አንቃ"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"በጨለማ ዳራ ላይ ብርሃን ጽሁፍን ለመምረጥ ሥርዓተ ክወናውን እና መተግበሪያዎችን ይቀይሩ፣ ይህም ለዓይኖች ቀላል እና በአንዳንድ መሣሪያዎች ላይ ጉልህ የሆነ የባትሪ ኃይል ቁጠባ ይሰጣል"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ምንም የማሳያ ለውጦች የሉም}=1{{effect_1}}=2{{effect_1} እና {effect_2}}=3{{effect_1}፣ {effect_2}፣ እና {effect_3}}one{{effect_1}፣ {effect_2} እና # ተጨማሪ}other{{effect_1}፣ {effect_2} እና # ተጨማሪ}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"ለእርስዎ ሊያሳውቅዎ የሚችለውን ይገድቡ"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"ምንም መቆራረጦች አልተጣሩም"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ለተጣሩ ማሳወቂያዎች ያሉ የማሳያ አማራጮች"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"አትረብሽ ሲበራ"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ከማሳወቂያዎች ምንም ድምፅ የለም"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"ማሳወቂያን ክፈት"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"የማሳወቂያ ማሸለብን ፍቀድ"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"የማሳወቂያ ነቁጥ በመተግበሪያ አዶ ላይ"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"የማሳወቂያ ቅርቅቦች"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"አረፋዎች"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"አረፋዎች"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ይህን ውይይት በአረፋ አድርግ"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"ተስማሚ ማሳወቂያዎች"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ተስማሚ ማሳወቂያዎችን ይጠቀሙ"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"በአጭር ጊዜ ውስጥ ብዙ ማሳወቂያዎች ሲያገኙ ስልክዎ እስከ ሁለት ደቂቃዎች ድረስ የድምፅ መጠን ይቀንሳል እና በማያ ገፅ ላይ ብቅ ባዮችን ያሳንሳል። ጥሪዎች፣ ማንቂያዎች እና የቅድሚያ ውይይቶች አሁንም ንዝረት ይኖራቸዋል፣ ድምፅ ያሰማሉ ወይም ማያ ገፁ ላይ ይታያሉ እና ከማያ ገፁ አናት ላይ ወደታች ሲጎትቱ ሁሉም ማሳወቂያዎች ለማግኘት ቀላል ናቸው።"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ለሥራ መገለጫ መተግበሪያዎች ያመልክቱ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"የምናባዊ ዕውነታ አጋዥ አገልግሎቶች"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"ምድቦች"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"ሌላ"</string>
     <string name="no_channels" msgid="4716199078612071915">"ይህ መተግበሪያ ምንም ማሳወቂያዎችን አልለጠፈም"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"ጥቅም ላይ ያልዋሉ ምድቦችን አሳይ"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"በመተግበሪያው ውስጥ ያሉ ተጨማሪ ቅንብሮች"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"ጥቅም ላይ ያልዋሉ ምድቦችን አሳይ"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ጥቅም ላይ ያልዋሉ ምድቦችን ደብቅ"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"ውይይቶች"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"ሁሉም ውይይቶች"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"ሁሉም ውይይቶች"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"የቅድሚያ ውይይቶች"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ቅድሚያ የሚሰጣቸው ውይይቶች"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ምንም"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"አቋርጠው መግባት የሚችሉ መተግበሪያዎች"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"የተመረጡ መተግበሪያዎች"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ምንም"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ሁሉም"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ምንም መተግበሪያዎች ማቋረጥ አይችሉም}=1{{app_1} ማቋረጥ ይችላል}=2{{app_1} እና {app_2} ማቋረጥ ይችላሉ}=3{{app_1}፣ {app_2} እና {app_3} ማቋረጥ ይችላሉ}one{{app_1}፣ {app_2} እና # ተጨማሪ ማቋረጥ ይችላሉ}other{{app_1}፣ {app_2} እና # ተጨማሪ ማቋረጥ ይችላሉ}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ሥራ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"በማስላት ላይ…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"መተግበሪያዎች እንዲሽሩ ይፍቀዱ"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"አቋርጠው መግባት የሚችሉ መተግበሪያዎች"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ተጨማሪ መተግበሪያዎችን ይምረጡ"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"ደጋግሞ ደዋዮች ማቋረጥ ይችላሉ"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"ሁሉም ሰዎች ማቋረጥ ይችላሉ"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ደዋዮችን ድገም"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ተደጋጋሚ ደዋዮችን ፍቀድ"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{እስከ {time} ድረስ ለአንድ ሰዓት ብቻ ወደ ማንቂያዎች ይለውጡ}one{እስከ {time} ድረስ ለ# ሰዓት ብቻ ወደ ማንቂያዎች ይለውጡ}other{እስከ {time} ድረስ ለ# ሰዓታት ብቻ ወደ ማንቂያዎች ይለውጡ}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"እስከ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ድረስ ብቻ ወደ ማንቂያዎች ይቀይሩ"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ወደ ሁልጊዜ አቋርጥ ለውጥ"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"እንደገና ሰይም"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"አዶ ለውጥ"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"አዶ ለውጥ"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"የአርትዖት ሁነታ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"ሁነታ ይፍጠሩ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ብጁ ሁነታ"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"የሁነታ ስም"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"የቀን መቁጠሪያ ክስተቶች"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"የመኝታ ሰዓት የዕለት ተዕለት ተግባር"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"እየነዱ ሳለ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"የመተግበሪያ ቅንብሮች"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"መረጃ እና ቅንብሮች <xliff:g id="APP_NAME">%1$s</xliff:g> ውስጥ"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"በ<xliff:g id="APP_NAME">%1$s</xliff:g> የሚተዳደር"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ይሰናከል?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"ይህ ሁነታ ሲሰናከል በጭራሽ አይበራም"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"አሰናክል"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ይንቃ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ይህ ሁነታ በቅንብሮች ላይ በመመስረት በራስ-ሰር ሊበራ ይችላል"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"አንቃ"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"መደበኛ መርሐግብርን የሚከተል ሁነታን ያቀናብሩ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"ከቀን መቁጠሪያ ክስተቶች ጋር ለማስመር ሁነታን ያቀናብሩ እና ምላሾችን ይጋብዙ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"የሚያረጋጋ የእንቅልፍ የዕለት ተዕለት ተግባር ይንደፉ። ማንቂያዎችን ያቀናብሩ፣ ማያ ገፁን ያደበዝዙ እና ማሳወቂያዎችን ያግዱ።"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ትኩረት ያለው እና ከመዘናጋት ነፃ ሆኖ ለማሽከርከር በመንገድ ላይ ደህንነትን ያስቀድሙ"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"ማስጠንቀቂያ"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"ዝጋ"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ስለዚህ መሣሪያ ግብረመልስ ላክ"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"መያዣ"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ባትሪ"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"የቅንብሮች ፓነል"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"የዴስክቶፕ ሁነታን አስገድድ"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"በሁለተኛ ማሳያዎች ላይ የሙከራ ዴስክቶፕ ሁነታን አስገድድ"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"የነጻ ቅርጽ መስኮቶችን ያንቁ"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"በሁለተኛ ማሳያ ላይ ነፃ ቅርጽ መስኮቶችን ያንቁ"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"በብዝሃ-መስኮት ውስጥ መጠን መቀየር የማይቻለውን አንቃ"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"መጠን መቀየር የማይቻሉትን መተግበሪያዎች በብዝሃ-መስኮት ውስጥ እንዲሆኑ ይፈቅዳል"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"አስገዳጅ ጨለማን ሻር"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"የመሣሪያ ተምክሮን ለማሻሻል መተግበሪያዎች እና አገልግሎቶች አሁንም በማንኛውም ሰዓት፣ Wi-Fi ጠፍቶም እንኳ የWi-Fi አውታረ መረቦችን መቃኘት ይችላሉ። ይህም ለምሳሌ አካባቢ ላይ የተመሠረቱ ባህሪያትን እና አገልግሎቶችን ለማሻሻል ሥራ ላይ ሊውል ይችላል። ይህን በWi‑Fi ቅኝት ቅንብሮች ውስጥ መቀየር ይችላሉ።"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"ቀይር"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"ተገናኝቷል"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"በጊዜያዊነት ተገናኝቷል"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g>ን በጊዜያዊነት በመጠቀም ላይ"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"መተግበሪያን መሰካትን ይጠቀሙ"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"የገንቢ አማራጮችን ይጠቀሙ"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"የህትመት አገልግሎትን ይጠቀሙ"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"በርካታ ተጠቃሚዎችን ይፍቀዱ"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"የተጠቃሚ መቀያየርን ይፍቀዱ"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ፍቀድ፣ በርካታ፣ ተጠቃሚ፣ ፈቃድ፣ ብዙ"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ብዙ፣ ተጠቃሚዎች፣ መገለጫዎች፣ ሰዎች፣ መለያዎች፣ መቀየሪያ፣ በርካታ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ገመድ አልባ ማረምን ይጠቀሙ"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ጡባዊዎ ሲተከል በማያ ገፅዎ ላይ የሚያዩትን ይምረጡ። የማያ ገፅ ማቆያ ሥራ ላይ ሲውል መሣሪያዎ የበለጠ ኃይል ሊጠቀም ይችላል።"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"አብጅ"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> አብጅ"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"የነጻ ቅርጽ ድጋፍን ለማንቃት ዳግም ማስነሳት ያስፈልጋል።"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"የዴስክቶፕ ሁነታን በሁለተኛ ደረጃ ማሳያዎች ላይ ለማስገደድ ዳግም ማስነሳት ያስፈልጋል።"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"የነጻ ቅርጽ ድጋፍ መስኮትን ለማንቃት ዳግም ማስነሳት ያስፈልጋል።"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"የነፃ ቅርጽ መስኮቶችን ለማዘመን ዳግም ማስነሳት ያስፈልጋል።"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"በሁለተኛ ማሳያዎች ላይ ነፃ ቅርጽን ለማንቃት ዳግም ማስነሳት ያስፈልጋል።"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ዳግም አስነሳ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"በኋላ ዳግም አስነሳ"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ከባቢያዊ ኦዲዮ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ሮዝ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ማጀንታ"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ሐምራዊ"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"ተከናውኗል"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"አስቀምጥ"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ይቅር"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ነባሪ"</string>
     <string name="contrast_medium" msgid="384414510709285811">"መካከለኛ"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"በርቷል"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ጠፍቷል"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"በርቷል"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ኦዲዮ %1$d%% ግራ፣ %2$d%% ቀኝ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ኦዲዮ %1$d%% ቀኝ፣ %2$d%% ግራ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"የመሣሪያዎ ስም በጫኗቸው መተግበሪያዎች ላይ ይታያል። እንዲሁም ከብሉቱዝ መሣሪያዎች ጋር ሲገናኙ፣ ከWi-Fi አውታረ መረብ ሲገናኙ ወይም የWi-Fi መገናኛ ነጥብን ሲያዋቅሩ በሌሎች ሰዎች ሊታይ ይችላል።"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ሰዋሰዋዊ ጾታ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ሰዋሰዋዊ ጾታ ይምረጡ"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ዥረት ያዳምጡ"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"በ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ለማዳመጥ የኦዲዮ ዥረት QR ኮድ ይቃኙ"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"እያጋሩ እያለ የይለፍ ቃልን ማርተዕ አልተቻለም። የይለፍ ቃሉን ለመቀየር በቅድሚያ የድምፅ ማጋራትን ያጥፉ።"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"የQR ኮድ መቃኛ"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ቅንብሮች ውስጥ ይፈልጉ"</string>
 </resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 3235758..23d700d 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"وقت النوم"</item>
-    <item msgid="4152450357280759894">"القيادة"</item>
-    <item msgid="7096549258219399423">"تجربة غامرة"</item>
-    <item msgid="2760716776980432977">"تجربة مُدارة"</item>
-    <item msgid="601734478369121764">"نجمة"</item>
-    <item msgid="6243809315432780521">"التقويم"</item>
-    <item msgid="4913577903148415331">"الوقت"</item>
-    <item msgid="3653377604690057780">"مسرح"</item>
-    <item msgid="3843711267408385410">"زهرة"</item>
+    <item msgid="2750940760340557109">"نصف بدر"</item>
+    <item msgid="8513969636586738035">"سيارة"</item>
+    <item msgid="957392343846370509">"عقل شخص"</item>
+    <item msgid="6734164279667121348">"التقويم"</item>
+    <item msgid="4139559120353528558">"ساعة"</item>
+    <item msgid="5157711296814769020">"مظلة شاطئ"</item>
+    <item msgid="6635328761318954115">"خيمة"</item>
+    <item msgid="1711994778883392255">"بكرة فيلم"</item>
+    <item msgid="9097658401859604879">"ذراع التحكّم في الألعاب"</item>
+    <item msgid="755931364157422565">"دمبل في صالة رياضية"</item>
+    <item msgid="8894207806795738429">"شخص يرمي كرة"</item>
+    <item msgid="2274801572149555103">"شخص يركل"</item>
+    <item msgid="8795037201506843325">"سباحة"</item>
+    <item msgid="3558421426169430451">"شخص يتنزه في الطبيعة"</item>
+    <item msgid="7455070421232184932">"غولف"</item>
+    <item msgid="5841773092449126508">"أدوات ورشة عمل"</item>
+    <item msgid="4595330511709890409">"حقيبة يد"</item>
+    <item msgid="8352738347856724389">"نجمة"</item>
+    <item msgid="7082783098151998721">"زهرة لوتس"</item>
+    <item msgid="5772220259409264724">"مشرف"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index ba902d8..4493a73 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"معلق"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"غير معروف"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"معاينة"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"رمز الاستجابة السريعة"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"تصغير"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"تكبير"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"دائمًا"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"إعدادات سماعات الأذن الطبية"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"الاختصار، التوافق مع السماعات الطبية"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"الإعدادات المسبقة"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"لا يوجد أي إعداد مسبق مُبرمج من قِبَل أخصائي السمعيات"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"تعذَّر تعديل الإعداد المسبق"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"مصدر إخراج الصوت"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"لمحة عن إخراج الصوت"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"لا تتوفَّر إمكانية اختيار لغة لهذا التطبيق من الإعدادات."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"قد تختلف اللغة عن اللغات المتوفّرة في التطبيق. قد لا تدعم بعض التطبيقات هذا الإعداد."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ضبط اللغة لكل تطبيق"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"يستخدم النظام والتطبيقات والمواقع الإلكترونية أول لغة متوافقة من اللغات المفضّلة."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"يستخدم جهازك وتطبيقاتك والمواقع الإلكترونية التي تزورها أول لغة متاحة في قائمة لغاتك المفضّلة.\n\nوستستخدم معظم التطبيقات أيضًا منطقة لغتك المفضّلة لتنسيق التواريخ والأرقام والوحدات. لتغيير منطقتك، أضِف لغة ثمّ اختَر منطقتك المفضّلة."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"لاختيار لغة لكل تطبيق، انتقِل إلى إعدادات لغة التطبيق."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"مزيد من المعلومات عن لغات التطبيقات"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏هل تريد تغيير لغة النظام إلى %s ؟"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"خدمة الموقع الجغرافي غير مفعّلة."</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{الخدمة مفعّلة - يملك تطبيق واحد إذن الوصول إلى بيانات الموقع الجغرافي}zero{الخدمة مفعّلة - يملك # تطبيق إذن الوصول إلى بيانات الموقع الجغرافي}two{الخدمة مفعّلة - يملك تطبيقان إذن الوصول إلى بيانات الموقع الجغرافي}few{الخدمة مفعّلة - تملك # تطبيقات إذن الوصول إلى بيانات الموقع الجغرافي}many{الخدمة مفعّلة - يمتلك # تطبيقًا إذن الوصول إلى بيانات الموقع الجغرافي}other{الخدمة مفعّلة - يملك # تطبيق إذن الوصول إلى بيانات الموقع الجغرافي}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"جارٍ التحميل..."</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"يمكن للتطبيقات التي لديها إذن بالوصول إلى الأجهزة المجاورة تحديد الموضع النسبي للأجهزة المتصلة بجهازك."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"يمكن للتطبيقات التي لديها إذن بالوصول إلى الأجهزة المجاورة تحديد الموضع النسبي للأجهزة المتصلة بجهازك."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ميزة وصول التطبيقات والخدمات إلى الموقع الجغرافي غير مفّعلة. قد يستمر إرسال الموقع الجغرافي لجهازك إلى مسؤولي الاستجابة لحالات الطوارئ عند الاتصال برقم طوارئ أو مراسلته نصيًا."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مزيد من المعلومات حول إعدادات الموقع الجغرافي"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"‏لتغيير الإعداد، انتقِل إلى \"إعدادات ChromeOS‏\" &gt; \"الخصوصية والأمان\" &gt; \"عناصر التحكّم في الخصوصية\" &gt; \"الوصول إلى الموقع الجغرافي\""</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"تمت إضافة وجه و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"تمت إضافة وجه وبصمة إصبع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"تمت إضافة وجه وبصمات أصابع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"‏فتح قفل Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"تمت إضافة الساعة"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ضبط إعدادات ساعتك"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"مزيد من المعلومات عن ميزة \"فتح الهاتف من الساعة\""</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"إضافة ساعة"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"إزالة ساعة"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"فتح الجهاز ببصمة الوجه وبصمة الإصبع"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"فتح الجهاز ببصمة الوجه وببصمة الإصبع"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"فتح قفل ملف العمل ببصمة الإصبع وببصمة الوجه"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"يجب ضبط الإعدادات"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"تمت إضافة وجه وبصمات أصابع."</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"جارٍ إعداد المساحة الخاصة…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"تعذَّر إعداد مساحة خاصة"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"إعادة المحاولة"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"خروج"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"المساحة الخاصّة غير متاحة.\nعرض الأسباب المُحتمَلة"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"عرض الأسباب المُحتمَلة"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"هل تريد اختيار طريقة جديدة لقفل المساحة الخاصة؟"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"يمكنك ضبط طريقة جديدة لقفل المساحة الخاصة أو استخدام القفل نفسه المستخدَم لفتح قفل الجهاز"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"استخدام قفل الشاشة"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"هل تريد إعادة تشغيل الجهاز؟"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"‏تسجيل الدخول عبر اتصال قصير المدى (NFC) مفصَّل مصمَّم لأغراض التطوير فقط. يتم تضمين بيانات إضافية عن الاتصال القصير المدى (NFC) في تقارير الأخطاء وقد تحتوي على معلومات خاصة. عليك إعادة تشغيل جهازك لتغيير هذا الخيار."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"إعادة التشغيل"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"مشغَّلة"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"مطفأة"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"الشاشة الخارجية"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"استخدام الشاشة الخارجية"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"دقة الشاشة"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"الشاشة الخارجية غير متصلة"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"الدوران"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"عادي"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"‫90 درجة"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"‫180 درجة"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"‫270 درجة"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"عند تغيير زاوية الدوران أو درجة الدقة، قد تتوقف أي تطبيقات تعمل حاليًا"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"يجب توصيل جهازك بشاشة خارجية لنسخ محتوى شاشتك بشكل مطابق"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"خيارات إضافية"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"البث"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"انعكاس"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"تفعيل عرض شاشة لاسلكي"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"توافقية"</string>
     <string name="brightness" msgid="6216871641021779698">"مستوى السطوع"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"السطوع التكيُّفي"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"لمحة عن ميزة \"السطوع التكيُّفي\""</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"سيتم ضبط سطوع الشاشة تلقائيًا حسب البيئة المحيطة والأنشطة. ويمكنك تحريك شريط التمرير يدويًا لضبط السطوع التكيُّفي حسبما تفضّل."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"مفعّل"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"غير مفعّل"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"الخيارات"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"تسهيل الاستخدام"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"لوحة المفاتيح الخارجية"</string>
-    <string name="show_ime" msgid="4334255501724746849">"استخدام لوحة المفاتيح على الشاشة"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"استمرار عرضها على الشاشة عندما تكون لوحة المفاتيح الخارجية متصلة"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"تجاهُل النقرات المتكرّرة"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"تتجاهل لوحة المفاتيح الضغطات المتكررة بسرعة على المفتاح نفسه خلال <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ملي ثانية"</string>
     <string name="slow_keys" msgid="2891452895499690837">"المفاتيح البطيئة"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"لضبط المهلة قبل أن يعمل المفتاح عند الضغط عليه على <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ملي ثانية"</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="2396247040177734245">"استخدِم لوحة المفاتيح الخارجية للتحكّم في مؤشر الماوس"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"تغيير نمط منتصف المؤشر إلى الأصفر"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"تغيير نمط منتصف المؤشر إلى الوردي"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"تغيير نمط منتصف المؤشر إلى الأزرق"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"نمط نقرة المؤشر"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"أبيض"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"أسود"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"بدون نمط"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"التعرّف على إيماءات لوحة اللمس"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"لوحة اللمس، لوحة لمس، ماوس، مؤشر، الانتقال للأسفل أو للأعلى، تمرير سريع، النقر بزر الماوس الأيمن، نقرة، مؤشر"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"النقر بزر الماوس الأيمن، النقر"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"تنسيق محدَّد من المستخدم: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"الكلام"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"سرعة المؤشر"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"حجم المؤشر"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"تصغير حجم المؤشر"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"تكبير حجم المؤشر"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"وحدة التحكم في الألعاب"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"إعادة توجيه الاهتزاز"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"إرسال الاهتزاز إلى وحدة التحكم في الألعاب عند الاتصال"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"المتابعة على أيّ حال"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"إلغاء"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"إعدادات التكبير"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"التحريك بإصبع واحد"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"حرِّك المكبِّر بإصبع واحد"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"اسحب بإصبع واحد للتنقل على الشاشة"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"يمكنك نقل منطقة التكبير عن طريق سحب إصبع واحد."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"يمكنك نقل منطقة التكبير عن طريق سحب إصبعين."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"لا تتوفّر هذه الميزة عند تكبير جزء من الشاشة فقط"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"انقر على أحد الأزرار للتكبير"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"يمكنك تكبير الشاشة بسرعة لتكبير المحتوى"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"‏&lt;b&gt;لتكبير الشاشة، نفِّذ الخطوات التالية:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. استخدِم الاختصار المخصّص لبدء تكبير المحتوى&lt;br/&gt; {1,number,integer}. انقر على الشاشة&lt;br/&gt; {2,number,integer}. اسحب إصبعين للتنقّل على الشاشة&lt;br/&gt; {3,number,integer}. باعِد أو قارِب بإصبعين لتعديل مستوى التكبير/التصغير&lt;br/&gt; {4,number,integer}. استخدِم الاختصار المخصّص لإيقاف تكبير المحتوى&lt;br/&gt;&lt;br/&gt;&lt;b&gt;لتكبير المحتوى مؤقتًا، نفِّذ الخطوات التالية:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. تأكّد من ضبط نوع التكبير على وضع ملء الشاشة&lt;br/&gt; {1,number,integer}. استخدِم الاختصار المخصّص لبدء تكبير المحتوى&lt;br/&gt; {2,number,integer}. انقر مع الاستمرار على أي مكان على الشاشة&lt;br/&gt; {3,number,integer}. اسحب إصبعك للتنقّل على الشاشة&lt;br/&gt; {4,number,integer}. ارفع إصبعك لإيقاف تكبير الشاشة"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"‏&lt;b&gt;لتكبير الشاشة:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. استخدِم الاختصار المخصّص لبدء التكبير&lt;br/&gt; {1,number,integer}. انقر على الشاشة&lt;br/&gt; {2,number,integer}. اسحب بإصبعين للتنقّل على الشاشة&lt;br/&gt; {3,number,integer}. باعِد أو قارِب بإصبعين لتعديل مستوى التكبير أو التصغير&lt;br/&gt; {4,number,integer}. استخدِم الاختصار المخصَّص لإيقاف التكبير&lt;br/&gt;&lt;br/&gt; يمكنك أيضًا التكبير بشكل مؤقت وغير ذلك."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"‏&lt;b&gt;لتكبير الشاشة:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. استخدِم الاختصار المخصّص لبدء التكبير&lt;br/&gt; {1,number,integer}. انقر على الشاشة&lt;br/&gt; {2,number,integer}. اسحب بإصبع واحد أو إصبعين للتنقّل على الشاشة&lt;br/&gt; {3,number,integer}. باعِد أو قارِب بإصبعين لتعديل مستوى التكبير أو التصغير&lt;br/&gt; {4,number,integer}. استخدِم الاختصار المخصَّص لإيقاف التكبير&lt;br/&gt;&lt;br/&gt; يمكنك أيضًا التكبير بشكل مؤقت وغير ذلك."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"عند تفعيل ميزة \"التكبير\"، يمكنك تكبير حجم المحتوى على الشاشة.\n\n"<b>"للتكبير"</b>"، يمكنك تفعيل ميزة \"التكبير\" والنقر بعد ذلك على أي مكان في الشاشة.\n"<ul><li>"يمكنك سحب إصبعين أو أكثر للتمرير."</li>\n<li>"يمكنك ضمّ إصبعين أو أكثر لتعديل حجم المحتوى."</li></ul>\n\n<b>"للتكبير مؤقتًا"</b>"، يمكنك تفعيل ميزة التكبير والنقر مع الاستمرار على أي مكان في الشاشة.\n"<ul><li>"يمكنك السحب للتنقّل داخل الشاشة."</li>\n<li>"يمكنك رفع إصبعك للتصغير."</li></ul>\n\n"لن يكون بإمكانك التكبير على لوحة المفاتيح أو شريط التنقل."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"الصفحة <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> من <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"اختصار زر أدوات تسهيل الاستخدام"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"مرِّر سريعًا من أسفل الشاشة للأعلى بإصبعين.\n\nللتبديل بين الميزات، مرِّر سريعًا للأعلى بإصبعين مع تثبيتهما."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"مرِّر سريعًا من أسفل الشاشة للأعلى بثلاثة أصابع.\n\nللتبديل بين الميزات، مرِّر سريعًا للأعلى بثلاثة أصابع مع تثبيتها."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{مرِّر سريعًا من أسفل الشاشة إلى أعلاها. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار.}zero{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام # إصبع. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام # إصبع.}two{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام إصبعين. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام إصبعين.}few{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام # أصابع. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام # أصابع.}many{مرِّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام # إصبعًا. للتبديل بين الميزات، مرِّر سريعًا من أسفل الشاشة إلى أعلاها واضغط مع الاستمرار باستخدام # إصبعًا.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"النقر على الشاشة مرّتين باستخدام إصبعين"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"النقر مرّتين باستخدام إصبعين"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"انقر سريعًا على الشاشة مرّتين باستخدام إصبعين"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"النقر ثلاث مرّات"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"‏انقر سريعًا على الشاشة %1$d مرّات. قد يؤدي ذلك إلى إبطاء جهازك."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"النقر مرّتين باستخدام إصبعين"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏انقر سريعًا على الشاشة مرّتَين {0,number,integer} باستخدام إصبعين."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"النقر ثلاث مرات على الشاشة"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"النقر ثلاث مرّات"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏انقر على الشاشة {0,number,integer} مرة. يمكن أن يؤدي استخدام هذا الاختصار إلى إبطاء الجهاز."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"خيارات متقدمة"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"تم ضبط زر \"سهولة الاستخدام\" لخدمة <xliff:g id="SERVICE">%1$s</xliff:g>. لاستخدام التكبير، المس زر \"سهولة الاستخدام\" مع الاستمرار ثم اختَر التكبير."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"تم ضبط إيماءة تمكين الوصول على <xliff:g id="SERVICE">%1$s</xliff:g>. للتكبير، مرّر سريعًا من أسفل الشاشة إلى أعلاها باستخدام إصبعين مع تثبيتهما. ثم اختَر التكبير."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"هذه الخدمة مُعطَّلة."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"اختصارات تسهيل الاستخدام"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"إظهار في الإعدادات السريعة"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"الأحمر والأخضر"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"الأحمر والأخضر"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"عَمَى الأحمر والأخضر، عَمَى الأخضر"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"عَمَى الأحمر والأخضر، عَمَى الأحمر"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"الأزرق والأصفر"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"تدرّج الرمادي"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"كثافة اللون"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ضعف إبصار الأخضر، عَمَى الأخضر والأحمر"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ضعف إبصار الأحمر، عَمَى الأحمر"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"غير متوفّر في وضع \"تدرّج الرمادي\" أو في حال إيقاف ميزة \"تصحيح الألوان\""</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"شذوذ إبصار الأخضر والأحمر"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"غطش الأحمر"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"غمش الأزرق"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"زيادة تعتيم الشاشة"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"زيادة تعتيم الشاشة"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"سماوي"</string>
     <string name="color_yellow" msgid="5957551912912679058">"أصفر"</string>
     <string name="color_magenta" msgid="8943538189219528423">"أرجواني"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"هل تريد السماح لـ \"<xliff:g id="SERVICE">%1$s</xliff:g>\"  بالتحكّم الكامل في جهازك؟"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"خدمة <xliff:g id="SERVICE">%1$s</xliff:g> تحتاج إلى:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"نظرًا لأن هناك تطبيقًا يحجب طلب الإذن، لا تستطيع الإعدادات التحقق من ردك."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"تطلب خدمة <xliff:g id="SERVICE">%1$s</xliff:g> الحصول على تحكم كامل في هذا الجهاز. ويمكن للخدمة قراءة الشاشة والتصرف بالنيابة عن المستخدمين ذوي الاحتياجات المتعلقة بإمكانية الوصول. ولا يناسب هذا المستوى من التحكم معظم التطبيقات."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"إنّ التحكّم الكامل ليس ملائمًا لمعظم التطبيقات، باستثناء التطبيقات المعنية بتسهيل الاستخدام."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"قراءة محتوى الشاشة والتحكم به"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"يمكنها قراءة كل المحتوى على الشاشة وعرض المحتوى فوق تطبيقات أخرى."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"عرض الإجراءات وتنفيذها"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"قد يؤدي ذلك إلى السماح للميزة بتتبّع تفاعلاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"سماح"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"رفض"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"إيقاف"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ما من جداول زمنية}=1{تم ضبط جدول زمني واحد}two{تم ضبط جدولين زمنيين}few{تم ضبط # جداول زمنية}many{تم ضبط # جدولاً زمنيًا}other{تم ضبط # جدول زمني}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"وضع \"عدم الإزعاج\""</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"الأوضاع ذات الأولوية"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"إضافة وضع"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"يمكنك تقليل مصادر التشتيت والحفاظ على انتباهك باستخدام أوضاع مخصّصة للنوم والعمل والقيادة وغير ذلك."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"إنشاء الوضع الخاص بك"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"ستصلك الإشعارات من الأشخاص المهمّين والتطبيقات المهمّة فقط"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"ضبط جدول زمني"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"الجدولة استنادًا إلى"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"اليوم والوقت"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"أيام الأسبوع من 9 صباحًا إلى 5 بعد الظهر\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"أحداث التقويم"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{تمّ تفعيل الوضع \"{mode_1}\"}=2{تمّ تفعيل الوضعَين \"{mode_1}\" و\"{mode_2}\"}=3{تمّ تفعيل الأوضاع \"{mode_1}\" و\"{mode_2}\" و\"{mode_3}\"}few{تمّ تفعيل الوضعَين \"{mode_1}\" و\"{mode_2}\" و# أوضاع أخرى}many{تمّ تفعيل الوضعَين \"{mode_1}\" و\"{mode_2}\" و# وضعًا آخرًا}other{تمّ تفعيل الوضعَين \"{mode_1}\" و\"{mode_2}\" و# وضع آخر}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{يمكن تفعيل وضع واحد تلقائيًا}two{يمكن تفعيل وضعَين تلقائيًا}few{يمكن تفعيل # أوضاع تلقائيًا}many{يمكن تفعيل # وضعًا تلقائيًا}other{يمكن تفعيل # وضع تلقائيًا}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"مفعَّل"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"لم يتم ضبط الوضع"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"غير مفعَّل"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"إنشاء وضع"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"مخصَّص"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"التفعيل الآن"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"إيقاف"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"لم يتم العثور على الوضع"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"الحد من المقاطعات"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"حظر مصادر الإزعاج والتشتيت"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"ضبط \"<xliff:g id="MODE">%1$s</xliff:g>\""</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"تفعيل ميزة \"عدم الإزعاج\""</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"السماح للمنبهات وأصوات الوسائط بمقاطعة عمل الميزة"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"الجداول الزمنية"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"حذف الجداول الزمنية"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"حذف"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"إعادة التسمية"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"حذف"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"هل تريد حذف وضع \"<xliff:g id="MODE">%1$s</xliff:g>\"؟"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"تعديل"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"الجداول الزمنية"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"الجدول الزمني"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"التفعيل تلقائيًا"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"إضافة تقويم"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"استخدام التقويم"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"وفقًا للجدول الزمني"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ضبط جدول زمني"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"شروط تفعيل القاعدة تلقائيًا"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"الجدول الزمني للحدث"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"تفعيل القاعدة خلال أحداث"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"بناءً على حالة الرد على الدعوة"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"الجدول الزمني"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"الجدول الزمني"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"‫<xliff:g id="HOURS">%1$d</xliff:g> ساعة و<xliff:g id="MINUTES">%2$d</xliff:g> دقيقة"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"الجدول الزمني"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"السماح بالمقاطعات التي تصدر صوتًا"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"حظر الإشعارات المرئية"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"السماح بالإشارات المرئية"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"الإشعارات التي يمكنها الوصول إليك"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"الإجراءات الإضافية"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"فلاتر الإشعارات"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"إعدادات إضافية"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{غير مفعَّلة}=1{غير مفعّلة / يمكن تفعيل وضع واحد تلقائيًا}two{غير مفعّلة / يمكن تفعيل وضعين تلقائيًا}few{غير مفعّلة / يمكن تفعيل # أوضاع تلقائيًا}many{غير مفعّلة / يمكن تفعيل # وضعًا تلقائيًا}other{غير مفعّلة / يمكن تفعيل # وضع تلقائيًا}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"إعدادات العرض"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"خيارات العرض"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"تدرّج الرمادي"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"تفعيل المظهر الداكن"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"يتم تبديل نظام التشغيل والتطبيقات إلى تفضيل النص الفاتح على الخلفية الداكنة لإراحة العين وتوفير شحن البطارية بشكل ملحوظ في بعض الأجهزة"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{لم تحدث تغيرات بالعرض}=1{{effect_1}}=2{{effect_1} و{effect_2}}=3{{effect_1} و{effect_2} و{effect_3}}few{{effect_1} و{effect_2} و# تغييرات أخرى}many{{effect_1} و{effect_2} و# تغييرًا آخر}other{{effect_1} و{effect_2} و# تغيير آخر}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"الحد من الإشعارات التي تصلك"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"لا تتم فلترة مصادر الإزعاج"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"خيارات العرض للإشعارات المفلتَرة"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"عندما تكون ميزة \"عدم الإزعاج\" مفعّلة"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"بدون تنبيهات صوتية من الإشعارات"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"فتح الإشعار"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"السماح بتأجيل الإشعارات"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"نقطة الإشعار على رموز التطبيقات"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"حِزم الإشعارات"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"فقاعات المحادثات"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"فقاعات المحادثات"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"إظهار هذه المحادثة كفقاعة"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"الإشعارات التكيّفية"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"استخدام الإشعارات التكيّفية"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"عند تلقّي عدد كبير من الإشعارات خلال فترة قصيرة، سيخفِّض هاتفك مستوى الصوت ويصغِّر النوافذ المنبثقة على الشاشة لمدة دقيقتين بحد أقصى. وستظل المكالمات والمنبهات والمحادثات ذات الأولوية تصدر اهتزازًا أو صوتًا أو تظهر على الشاشة، وسيسهُل عليك العثور على كل الإشعارات عند السحب من أعلى الشاشة."</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_work" msgid="8823596456640216391">"التطبيق على ملفات العمل"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"يسري على تطبيقات ملف العمل"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"خدمات تحسّن تجربة الواقع الافتراضي"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"الفئات"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"غير ذلك"</string>
     <string name="no_channels" msgid="4716199078612071915">"لم ينشر هذا التطبيق أي إشعارات."</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"عرض الفئات غير المستخدَمة"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"الإعدادات الإضافية في التطبيق"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"عرض الفئات غير المستخدَمة"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"إخفاء الفئات غير المستخدَمة"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"المحادثات"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"كل المحادثات"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"كل المحادثات"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"المحادثات ذات الأولوية"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"المحادثات ذات الأولوية"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"غير مسموح بأي محادثات"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"التطبيقات التي يمكنها إيقاف الوضع"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"التطبيقات المحدَّدة"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ما مِن تطبيقات"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"كل التطبيقات"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{عدم السماح لأي تطبيقات بتخطّي وضع \"عدم الإزعاج\"}=1{بإمكان \"{app_1}\" تخطّي وضع \"عدم الإزعاج\"}=2{بإمكان \"{app_1}\" و\"{app_2}\" تخطّي وضع \"عدم الإزعاج\"}=3{بإمكان \"{app_1}\" و\"{app_2}\" و\"{app_3}\" تخطّي وضع \"عدم الإزعاج\"}few{بإمكان \"{app_1}\" و\"{app_2}\" و# تطبيقات إضافية تخطّي وضع \"عدم الإزعاج\"}many{بإمكان \"{app_1}\" و\"{app_2}\" و# تطبيقًا إضافيًا تخطّي وضع \"عدم الإزعاج\"}other{بإمكان \"{app_1}\" و\"{app_2}\" و# تطبيق إضافي تخطّي وضع \"عدم الإزعاج\"}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"‫<xliff:g id="APP_LABEL">%s</xliff:g> (ملف العمل)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"جارٍ الحساب…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"‫+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"السماح للتطبيقات بإلغاء وضع \"عدم الإزعاج\""</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"التطبيقات التي يمكنها مقاطعة عمل الميزة"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"اختيار مزيد من التطبيقات"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"بإمكان المتصلين المتكرّرين تخطّي وضع \"عدم الإزعاج\""</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"السماح لكل المستخدمين بمقاطعة عمل الميزة"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"المتصلون المتكرّرون"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"السماح بالمتصلين المتكررين"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{التغيير إلى التنبيهات لمدة ساعة واحدة فقط حتى {time}}zero{التغيير إلى التنبيهات لمدة # ساعة فقط حتى {time}}two{التغيير إلى التنبيهات لمدة ساعتَين فقط حتى {time}}few{التغيير إلى التنبيهات لمدة # ساعات فقط حتى {time}}many{التغيير إلى التنبيهات لمدة # ساعة فقط حتى {time}}other{التغيير إلى التنبيهات لمدة # ساعة فقط حتى {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"التغيير إلى التنبيهات فقط حتى <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"تغيير إلى المقاطعة دائمًا"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"إعادة التسمية"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"تغيير الرمز"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"تغيير الرمز"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"تعديل الوضع"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"إنشاء وضع"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"وضع مخصّص"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"اسم الوضع"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"أحداث في التقويم"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"سلسلة إجراءات \"وقت النوم\""</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"أثناء القيادة"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"إعدادات التطبيق"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"المعلومات والإعدادات في \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"تحت إدارة \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"هل تريد إيقاف \"<xliff:g id="MODE_NAME">%1$s</xliff:g>\"؟"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"لن يتم مطلقًا تفعيل هذا الوضع في حال إيقافه"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"إيقاف"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"هل تريد تفعيل \"<xliff:g id="MODE_NAME">%1$s</xliff:g>\"؟"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"قد يتم تفعيل هذا الوضع تلقائيًا بناءً على إعداداته"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"تفعيل"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"يمكن إعداد وضع لتفعيله وفق جدول زمني منتظم"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"يمكن إعداد وضع لمزامنة إعداداته مع الأحداث في التقويم والردّ على الدعوات"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"يمكنك إعداد نظام هادئ للنوم يتضمّن ضبط المنبّهات وتعتيم الشاشة وحظر الإشعارات."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"يمكن منْح الأولوية للسلامة من أجل الحفاظ على تركيزك وعدم التشتت أثناء القيادة"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"تحذير"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"إغلاق"</string>
     <string name="device_feedback" msgid="5351614458411688608">"إرسال ملاحظات حول هذا الجهاز"</string>
@@ -4233,8 +4304,8 @@
     <string name="long_background_tasks_title" msgid="3272230637974707490">"المهام الطويلة في الخلفية"</string>
     <string name="long_background_tasks_footer_title" msgid="9117342254914743097">"سيتم السماح لهذا التطبيق بتشغيل مهام طويلة في الخلفية. يسمح هذا للتطبيق بتشغيل مهام قد يستغرق اكتمالها أكثر من بضع دقائق، مثلاً عمليات التنزيل والتحميل. \n\nإذا تم رفض هذا الإذن، سيفرض النظام قيودًا على المدة التي يستغرقها التطبيق لتنفيذ مثل هذه المهام في الخلفية."</string>
     <string name="keywords_long_background_tasks" msgid="5788956269136054574">"وظائف طويلة، نقل البيانات، مهام في الخلفية"</string>
-    <string name="reset_shortcut_manager_throttling" msgid="2183940254903144298">"‏إعادة ضبط تقييد المعدّل في ShortcutManager"</string>
-    <string name="reset_shortcut_manager_throttling_complete" msgid="8949943009096885470">"‏تمت إعادة ضبط تقييد المعدّل في ShortcutManager."</string>
+    <string name="reset_shortcut_manager_throttling" msgid="2183940254903144298">"‏إعادة ضبط الحد الأقصى لتحديث الاختصارات في ShortcutManager"</string>
+    <string name="reset_shortcut_manager_throttling_complete" msgid="8949943009096885470">"‏تمت إعادة ضبط الحد الأقصى لتحديث الاختصارات في ShortcutManager."</string>
     <string name="notification_suggestion_title" msgid="6309263655965785411">"التحكم في المعلومات على شاشة القفل"</string>
     <string name="notification_suggestion_summary" msgid="7615611244249276113">"إظهار محتوى الإشعار أو إخفاؤه"</string>
     <string name="page_tab_title_support" msgid="3235725053332345773">"النصائح والدعم"</string>
@@ -4791,10 +4862,10 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"الحافظة"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"البطارية"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"لوحة الإعدادات"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"فرض وضع سطح المكتب"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"فرض وضع سطح المكتب التجريبي على شاشات العرض الثانوية"</string>
-    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"استخدام التطبيقات التي لا يتغير حجمها في النوافذ المتعددة"</string>
-    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"السماح باستخدام التطبيقات التي لا يتغير حجمها في النوافذ المتعددة"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"تفعيل النوافذ الحرة"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"تفعيل عرض النوافذ الحرة على شاشة ثانوية"</string>
+    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"عرض التطبيقات التي لا يتغيّر حجمها على شاشة متعدّدة النوافذ"</string>
+    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"السماح بعرض التطبيقات التي لا يتغيّر حجمها على شاشة متعدّدة النوافذ"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"إلغاء ميزة فرض تعتيم الشاشة"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"لإلغاء ميزة فرض تعتيم الشاشة بحيث يتم تفعيلها دائمًا"</string>
     <string name="privacy_dashboard_title" msgid="6845403825611829558">"الخصوصية"</string>
@@ -4971,7 +5042,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"بيانات الجوّال"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"‏لتحسين تجربة استخدامك للجهاز، يظل بإمكان التطبيقات والخدمات البحث عن شبكات Wi‑Fi في أي وقت، حتى عند إيقاف ميزة Wi‑Fi. ويمكن استخدام هذا الإجراء لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي مثلاً. وبإمكانك تغيير هذا الخيار في إعدادات البحث عن شبكات Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"تغيير"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"متصلة بالإنترنت"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"متصلة مؤقتًا"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"استخدام \"<xliff:g id="SUBNAME">%1$s</xliff:g>\" مؤقتًا"</string>
@@ -5003,7 +5073,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"استخدام ميزة \"تثبيت الشاشة على تطبيق معيّن\""</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"استخدام ميزة \"خيارات المطورين\""</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"استخدام خدمة الطباعة"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"السماح لمستخدمين متعددين"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"السماح بتبديل المستخدمين"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"السماح، متعدد، مستخدم، سماح، عديد"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"مستخدمون متعددون، مستخدمون، ملفات شخصية، أشخاص، حسابات، تبديل، غير ذلك"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"استخدام ميزة \"تصحيح الأخطاء اللاسلكي\""</string>
@@ -5117,8 +5187,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"اختَر ما تريد أن يظهر على شاشتك عندما يكون جهازك اللوحي في حالة إرساء. قد يستهلك جهازك قدرًا أكبر من الطاقة عند استخدام شاشة الاستراحة."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"تخصيص"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"تخصيص <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"يجب إعادة التشغيل لتفعيل النوافذ الحرة."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"يجب إعادة التشغيل لفرض وضع الكمبيوتر المكتبي على الشاشات الثانوية."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"يجب إعادة التشغيل لتفعيل عرض النوافذ الحرة."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"يجب إعادة التشغيل لتعديل مدى توفّر عرض النوافذ الحرة."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"يجب إعادة التشغيل لتفعيل عرض النوافذ الحرة على الشاشات الثانوية."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"إعادة التشغيل الآن"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"إعادة التشغيل لاحقًا"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"الصوت المكاني"</string>
@@ -5141,7 +5212,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"إيقاف القيود المفروضة على العمليات الثانوية"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"إيقاف القيود المفروضة على استخدام موارد النظام لعمليات التطبيق الثانوية"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"فرض تفعيل دور \"الملاحظات\""</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"‏يؤدي هذا الإجراء إلى إتاحة عمليات دمج نظام تدوين الملاحظات من خلال الدور Notes (تدوين الملاحظات). إذا كان قد سبق وتم تفعيل الدور Notes (تدوين الملاحظات)، لن يكون لهذا الإجراء أي تأثير. يتطلّب تنفيذ هذا الإجراء إعادة التشغيل."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"‏يتيح هذا الخيار دمج نظام تدوين الملاحظات من خلال دور \"الملاحظات\" (Notes). إذا سبق وفعّلت هذا الدور، لن يكون لهذا الخيار أي تأثير. يجب إعادة تشغيل الجهاز."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"البث"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"بث تطبيق <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"يمكنك الاستماع إلى محتوى يتم بثّه بالقرب منك."</string>
@@ -5215,7 +5286,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"وردي"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"أرجواني"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"بنفسجي"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"تم"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"حفظ"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"إلغاء"</string>
     <string name="contrast_default" msgid="8918545965525226966">"تلقائي"</string>
     <string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
@@ -5236,6 +5307,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"الخيار مفعَّل"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"الميزة غير مفعَّلة"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"الميزة مفعَّلة"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"‏الصوت: %1$d%% جهة اليسار، %2$d%% جهة اليمين"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"‏الصوت: %1$d%% جهة اليمين، %2$d%% جهة اليسار"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"‏يظهر اسم جهازك للتطبيقات التي تم تثبيتها. وقد يظهر أيضًا للمستخدمين الآخرين عند الاتصال بأجهزة تتضمّن بلوتوث أو بشبكة Wi-Fi أو عند إعداد نقطة اتصال Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"صيغة المخاطبة المناسبة نحويًا"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"اختيار صيغة مخاطبة مناسبة نحويًا"</string>
@@ -5347,4 +5420,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"الاستماع إلى البث"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"عليك أن تمسح ضوئيًا رمز الاستجابة السريعة للبث الصوتي للاستماع إليه باستخدام \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"لا يمكن تعديل كلمة المرور أثناء المشاركة. ولتعديلها، عليك أولاً إيقاف ميزة \"مشاركة الصوت\"."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"الماسح الضوئي لرمز الاستجابة السريعة"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"البحث في \"الإعدادات\""</string>
 </resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index cda1d13..b8bc209 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"বেডটাইম"</item>
-    <item msgid="4152450357280759894">"গাড়ী চলোৱা"</item>
-    <item msgid="7096549258219399423">"ইমাৰ্ছিভ"</item>
-    <item msgid="2760716776980432977">"পৰিচালিত"</item>
-    <item msgid="601734478369121764">"তৰা"</item>
-    <item msgid="6243809315432780521">"কেলেণ্ডাৰ"</item>
-    <item msgid="4913577903148415331">"সময়"</item>
-    <item msgid="3653377604690057780">"থিয়েটাৰ"</item>
-    <item msgid="3843711267408385410">"ফুল"</item>
+    <item msgid="2750940760340557109">"অৰ্ধ-চন্দ্ৰ"</item>
+    <item msgid="8513969636586738035">"গাড়ী"</item>
+    <item msgid="957392343846370509">"ব্যক্তিৰ মন"</item>
+    <item msgid="6734164279667121348">"কেলেণ্ডাৰ"</item>
+    <item msgid="4139559120353528558">"ঘড়ী"</item>
+    <item msgid="5157711296814769020">"সমুদ্ৰতীৰৰ ছাতি"</item>
+    <item msgid="6635328761318954115">"তম্বু"</item>
+    <item msgid="1711994778883392255">"ফিল্মৰ ৰীল"</item>
+    <item msgid="9097658401859604879">"গে’ম নিয়ন্ত্ৰক"</item>
+    <item msgid="755931364157422565">"ব্যায়ামাগাৰৰ ডাম্বেল"</item>
+    <item msgid="8894207806795738429">"বল দলিয়াই থকা ব্যক্তি"</item>
+    <item msgid="2274801572149555103">"গোৰ মাৰি থকা ব্যক্তি"</item>
+    <item msgid="8795037201506843325">"সাঁতোৰ"</item>
+    <item msgid="3558421426169430451">"পাহাৰ বগাই থকা ব্যক্তি"</item>
+    <item msgid="7455070421232184932">"গল্ফ"</item>
+    <item msgid="5841773092449126508">"কৰ্মশালাৰ সঁজুলি"</item>
+    <item msgid="4595330511709890409">"ব্ৰিফকেছ"</item>
+    <item msgid="8352738347856724389">"তৰাচিহ্ন"</item>
+    <item msgid="7082783098151998721">"পদুম ফুল"</item>
+    <item msgid="5772220259409264724">"তদাৰক কৰোঁতা"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index b5a4d9e..51bd0cf 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"স্থগিত"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"অজ্ঞাত"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"পূৰ্বদৰ্শন"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"কিউআৰ ক’ড"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"সৰু কৰক"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ডাঙৰ কৰক"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"সদায়"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"শুনাৰ ডিভাইচৰ ছেটিং"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"শ্বৰ্টকাট, শ্ৰৱণ যন্ত্ৰৰ সুসংগতা"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"প্ৰিছেট"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"আপোনাৰ অডিঅ’লজিষ্টে প্ৰ’গ্ৰাম কৰা কোনো প্ৰিছেট নাই"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"প্ৰিছেট আপডে’ট কৰিব পৰা নগ’ল"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"অডিঅ’ আউটপুট"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"অডিঅ’ আউটপুটৰ বিষয়ে"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"এই এপ্‌টোৰ বাবে ছেটিঙৰ পৰা ভাষা বাছনি কৰাৰ সুবিধা উপলব্ধ নহয়।"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ভাষাটো এপ্‌টোত উপলব্ধ ভাষাসমূহতকৈ পৃথক হ’ব পাৰে। কিছুমান এপে এই ছেটিংটো সমৰ্থন নকৰিব পাৰে।"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"প্ৰতিটো এপৰ বাবে ভাষাটো ছেট কৰক।"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"আপোনাৰ ছিষ্টেম, এপ্‌ আৰু ৱেবছাইটসমূহে আপুনি অগ্ৰাধিকাৰ দিয়া ভাষাসমূহৰ পৰা প্ৰথম সমৰ্থিত ভাষাটো ব্যৱহাৰ কৰে।"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"আপোনাৰ ডিভাইচ, এপ্‌ আৰু ৱেবছাইটে আপুনি অগ্ৰাধিকাৰ দিয়া ভাষাৰ সূচীৰ পৰা প্ৰথম সমৰ্থিত ভাষাটো ব্যৱহাৰ কৰে।\n\nবহুতো এপে তাৰিখ, সংখ্যা আৰু এককসমূহ ফৰ্মেট কৰিবলৈ আপুনি অগ্ৰাধিকাৰ দিয়া ভাষাৰ পৰা অঞ্চলটো ব্যৱহাৰ কৰিব। আপোনাৰ অঞ্চলটো সলনি কৰিবলৈ, কোনো ভাষা যোগ দিয়ক আৰু তাৰ পাছত আপুনি অগ্ৰাধিকাৰ দিয়া অঞ্চলটো বাছনি কৰক।"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"প্ৰতিটো এপৰ বাবে এটা ভাষা বাছনি কৰিবলৈ এপৰ ভাষাৰ ছেটিঙলৈ যাওক।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"এপৰ ভাষাসমূহৰ বিষয়ে অধিক জানক"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ছিষ্টেমৰ ভাষা %sলৈ সলনি কৰিবনে?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"অফ আছে"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}one{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}other{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ল’ড হৈ আছে…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"নিকটৱৰ্তী ডিভাইচৰ সৈতে যোগাযোগ কৰিব পৰাৰ অনুমতি থকা এপ্‌সমূহে সংযুক্ত হৈ থকা ডিভাইচৰ আপেক্ষিক স্থান নিৰ্ধাৰণ কৰিব পাৰে।"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"নিকটৱৰ্তী ডিভাইচৰ সৈতে যোগাযোগ কৰিব পৰাৰ অনুমতি থকা এপ্‌সমূহে সংযুক্ত হৈ থকা ডিভাইচৰ আপেক্ষিক স্থান নিৰ্ধাৰণ কৰিব পাৰে।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"এপ্‌ আৰু সেৱাৰ বাবে অৱস্থানৰ এক্সেছ অফ কৰা আছে। আপুনি কোনো জৰুৰীকালীন নম্বৰলৈ কল কৰিলে অথবা বাৰ্তা পঠিয়ালে আপোনাৰ ডিভাইচৰ অৱস্থান তথাপি জৰুৰীকালীন পৰিস্থিতিত সঁহাৰি দিয়া লোকলৈ পঠিওৱা হ’ব পাৰে।"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"অৱস্থানৰ ছেটিঙৰ বিষয়ে অধিক জানক"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"সলনি কৰিবলৈ ChromeOS ছেটিং &gt; গোপনীয়তা আৰু সুৰক্ষা &gt; গোপনীয়তাৰ নিয়ন্ত্ৰণ &gt; অৱস্থানৰ এক্সেছলৈ যাওক"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"মুখাৱয়ব আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"পৰিচয় পৰীক্ষা অন আছে"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticatorৰ দ্বাৰা দূৰৰ পৰা আনলক কৰা"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ঘড়ী যোগ দিয়া হৈছে"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"আপোনাৰ ঘড়ীটো ছেট আপ কৰক"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটোৰ বিষয়ে অধিক জানক"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ঘড়ী যোগ দিয়ক"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ঘড়ীটো আঁতৰাওক"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ফিংগাৰপ্ৰিণ্ট আৰু ফে’চ আনলক কৰাৰ সুবিধা"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ফেচ আৰু ফিংগাৰপ্ৰিন্ট আনলক"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"কাৰ্যৰ বাবে ফে’চ আৰু ফিংগাৰপ্ৰিন্ট আনলক"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ছেটআপৰ আৱশ্যক"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"মুখাৱয়ব আৰু ফিংগাৰপ্ৰিণ্ট যোগ দিয়া হ’ল"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"প্ৰাইভেট স্পে\'চ ছেট আপ কৰি থকা হৈছে…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"কোনো প্ৰাইভেট স্পে\'চ ছেট আপ কৰিব পৰা নগ’ল"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"পুনৰ চেষ্টা কৰক"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"বাহিৰ হওক"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"প্ৰাইভেট স্পেচ উপলব্ধ নহয়।\nসম্ভাব্য কাৰণসমূহ চাওক"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"সম্ভাব্য কাৰণসমূহ চাওক"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"প্ৰাইভেট স্পে’চৰ বাবে নতুন লক বাছনি কৰিবনে?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"আপুনি এটা নতুন লক কেৱল প্ৰাইভেট স্পে’চৰ বাবে ছেট কৰিব পাৰে বা আপুনি আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ ব্যৱহাৰ কৰা একেটা লক ব্যৱহাৰ কৰিব পাৰে"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"স্ক্ৰীন লক ব্যৱহাৰ কৰক"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ডিভাইচটো ৰিষ্টাৰ্ট কৰিবনে?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"সবিশেষ NFC লগিং কেৱল বিকাশৰ উদ্দেশ্যে কৰা হয়। অতিৰিক্ত NFC ডেটা বাগ ৰিপ’ৰ্টসমূহত অন্তৰ্ভুক্ত কৰা হয়, য’ত ব্যক্তিগত তথ্য থাকিব পাৰে। এই ছেটিং সলনি কৰিবলৈ আপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰক।"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ৰিষ্টাৰ্ট কৰক"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"অন আছে"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"অফ আছে"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"বাহ্যিক ডিছপ্লে’"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"বাহ্যিক ডিছপ্লে’ ব্যৱহাৰ কৰক"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ডিছপ্লে’ৰ ৰিজ’লিউশ্বন"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"বাহ্যিক ডিছপ্লে’ বিচ্ছিন্ন কৰা হৈছে"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"ঘূৰ্ণন"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"মানক"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"৯০°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"১৮০°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"২৭০°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ঘূৰ্ণন বা ৰিজ’লিউশ্বন সলনি কৰিলে বৰ্তমান চলি থকা যিকোনো এপ্‌ বন্ধ হ’ব পাৰে"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"আপোনাৰ স্ক্ৰীনখনৰ প্ৰতিবিম্বকৰণ কৰিবলৈ আপোনাৰ ডিভাইচটো এখন বাহ্যিক ডিছপ্লে’ৰ সৈতে সংযোগ কৰিবই লাগিব"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"অধিক বিকল্প"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"কাষ্ট"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"আইনা"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"বেতাঁৰ ডিছপ্লে’ সক্ষম কৰক"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"অভিযোজিত"</string>
     <string name="brightness" msgid="6216871641021779698">"উজ্জ্বলতাৰ স্তৰ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"অভিযোজিত উজ্জ্বলতা"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"অভিযোজিত উজ্জ্বলতাৰ বিষয়ে"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"আপোনাৰ স্ক্ৰীনৰ উজ্জ্বলতা আপোনাৰ পৰিৱেশ আৰু কাৰ্যকলাপবোৰৰ লগত স্ৱয়ংক্ৰিয়ভাৱে খাপ খায়। আপুনি অভিযোজিত উজ্জ্বলতাক আপোনাৰ অগ্ৰাধিকাৰসমূহ বুজাত সহায় কৰাৰ বাবে শ্লাইডাৰ মেনুৱেলভাৱে স্থানান্তৰ কৰিব পাৰে।"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"অন আছে"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"অফ হৈ আছে"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"বিকল্পসমূহ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"সাধ্য সুবিধা"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"কায়িক কীব\'ৰ্ড"</string>
-    <string name="show_ime" msgid="4334255501724746849">"অন-স্ক্ৰীন কীব’ৰ্ড ব্যৱহাৰ কৰক"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"কায়িক কীব’ৰ্ড সক্ৰিয় হৈ থাকিলে ইয়াক স্ক্ৰীনত ৰাখিব"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"বাউন্স কী"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"কীব’ৰ্ডে <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> এমএছৰ ভিতৰত একেটা কী ক্ষিপ্ৰতাৰে বাৰে বাৰে টিপাটো উপেক্ষা কৰে"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ধীৰ গতিৰ কী"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> এমএছ সক্ৰিয় কৰিবলৈ এটা কী টিপাৰ বাবে লগা সময় মিলাওক"</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="2396247040177734245">"মাউছটো নিয়ন্ত্ৰণ কৰিবলৈ কায়িক কীব\'ৰ্ড ব্যৱহাৰ কৰক।"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"পইণ্টাৰ পূৰ কৰাৰ শৈলী হালধীয়া কৰক"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"পইণ্টাৰ পূৰ কৰাৰ শৈলী গুলপীয়া কৰক"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"পইণ্টাৰ পূৰ কৰাৰ শৈলী নীলা কৰক"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"পইণ্টাৰ ষ্ট্ৰোকৰ শৈলী"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"বগা"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ক’লা"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"নাই"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"টাচ্চপেডৰ নিৰ্দেশসমূহ শিকক"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ট্ৰেকপেড, ট্ৰেক পেড, মাউছ, কাৰ্ছৰ, স্ক্ৰ’ল কৰক, ছোৱাইপ কৰক, ৰাইট ক্লিক কৰক, ক্লিক কৰক, পইণ্টাৰ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ৰাইট ক্লিক কৰক, টিপক"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ব্যৱহাৰকাৰীয়ে বাছনি কৰা: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"কথন"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"পইণ্টাৰৰ বেগ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"পইণ্টাৰ স্কে’ল"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"পইণ্টাৰ স্কে’ল কমাওক"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"পইণ্টাৰ স্কে’ল বঢ়াওক"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"গেইম নিয়ন্ত্ৰক"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"কম্পনক পুনৰ নিৰ্দেশিত কৰক"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"গেইম নিয়ন্ত্ৰক সংযোজিত হ\'লে তালৈ কম্পন পঠিয়াওক"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"যি হ’লেও অব্যাহত ৰাখক"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"বাতিল কৰক"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"বিবৰ্ধন কৰাৰ ছেটিং"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"এটা আঙুলিৰে পেনিং কৰা"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"১ টা আঙুলিৰে বিবৰ্ধক স্থানান্তৰ কৰক"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"স্ক্ৰীনত ইফাল-সিফাল কৰিবলৈ ১ টা আঙুলিৰে টানি আনি এৰক"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"এটা আঙুলিৰে টানি আনি এৰি দি বিবৰ্ধন কৰা অংশটো লৰচৰ কৰক।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"দুটা আঙুলিৰে টানি আনি এৰি দি বিবৰ্ধন কৰা অংশটো লৰচৰ কৰক।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"স্ক্ৰীনখনৰ কেৱল এটা অংশ বিবৰ্ধন কৰাৰ সময়ত উপলব্ধ নহয়"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"জুম কৰিবলৈ এটা বুটাম টিপক"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"সমলৰ আকাৰ ডাঙৰ কৰিবলৈ স্ক্ৰীনখনত ক্ষিপ্ৰভাৱে জুম ইন কৰক"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;জুম ইন কৰিবলৈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}। বিবৰ্ধনৰ সুবিধাটো আৰম্ভ কৰিবলৈ শ্বৰ্টকাট ব্যৱহাৰ কৰক&lt;br/&gt; {1,number,integer}। স্ক্ৰীনখনত টিপক&lt;br/&gt; {2,number,integer}। স্ক্ৰীনৰ চাৰিওফালে ইফাল-সিফাল কৰিবলৈ ২ টা আঙুলিৰে টানি আনি এৰক&lt;br/&gt; {3,number,integer}। জুম মিলাবলৈ ২ টা আঙুলিৰে পিঞ্চ কৰক&lt;br/&gt; {4,number,integer}। বিবৰ্ধনৰ সুবিধাটো বন্ধ কৰিবলৈ শ্বৰ্টকাট ব্যৱহাৰ কৰক&lt;br/&gt;&lt;br/&gt;&lt;b&gt;সাময়িকভাৱে জুম ইন কৰিবলৈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}। আপোনাৰ বিবৰ্ধনৰ প্ৰকাৰটো সম্পূৰ্ণ স্ক্ৰীনলৈ ছেট কৰাটো নিশ্চিত কৰক&lt;br/&gt; {1,number,integer}। বিবৰ্ধনৰ সুবিধাটো আৰম্ভ কৰিবলৈ শ্বৰ্টকাট ব্যৱহাৰ কৰক&lt;br/&gt; {2,number,integer}। স্ক্ৰীনখনৰ যিকোনো স্থানত স্পৰ্শ কৰি ধৰি ৰাখক&lt;br/&gt; {3,number,integer}। স্ক্ৰীনৰ চাৰিওফালে ইফাল-সিফাল কৰিবলৈ আঙুলিৰে টানি আনি এৰক&lt;br/&gt; {4,number,integer}। বিবৰ্ধনৰ সুবিধাটো বন্ধ কৰিবলৈ আঙুলি উঠাওক"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;জুম ইন কৰিবলৈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}। বিবৰ্ধনৰ সুবিধাটো আৰম্ভ কৰিবলৈ শ্বৰ্টকাট ব্যৱহাৰ কৰক&lt;br/&gt; {1,number,integer}। স্ক্ৰীনখনত টিপক&lt;br/&gt; {2,number,integer}। স্ক্ৰীনত ইফাল-সিফাল কৰিবলৈ ২ টা আঙুলিৰে টানি আনি এৰক&lt;br/&gt; {3,number,integer}। জুম মিলাবলৈ ২ টা আঙুলিৰে পিঞ্চ কৰক&lt;br/&gt; {4,number,integer}। বিবৰ্ধন বন্ধ কৰিবলৈ শ্বৰ্টকাট ব্যৱহাৰ কৰক&lt;br/&gt;&lt;br/&gt; আপুনি সাময়িকভাৱে জুম ইন কৰাৰ লগতে আৰু বহুতো কাৰ্য কৰিব পাৰে।"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;জুম ইন কৰিবলৈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}। বিবৰ্ধনৰ সুবিধাটো আৰম্ভ কৰিবলৈ শ্বৰ্টকাট ব্যৱহাৰ কৰক&lt;br/&gt; {1,number,integer}। স্ক্ৰীনখনত টিপক&lt;br/&gt; {2,number,integer}। স্ক্ৰীনত ইফাল-সিফাল কৰিবলৈ ১ টা বা ২ টা আঙুলিৰে টানি আনি এৰক&lt;br/&gt; {3,number,integer}। জুম মিলাবলৈ ২ টা আঙুলিৰে পিঞ্চ কৰক&lt;br/&gt; {4,number,integer}। বিবৰ্ধন বন্ধ কৰিবলৈ শ্বৰ্টকাট ব্যৱহাৰ কৰক&lt;br/&gt;&lt;br/&gt; আপুনি সাময়িকভাৱে জুম ইন কৰাৰ লগতে আৰু বহুতো কাৰ্য কৰিব পাৰে।"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"বিৱৰ্ধন অন কৰা থাকিলে আপুনি নিজৰ স্ক্রীনখনত জুম ইন কৰিব পাৰে।\n\n"<b>"জুম কৰিবলৈ"</b>", বিৱৰ্ধন আৰম্ভ কৰক আৰু তাৰ পাছত স্ক্রীনখনৰ যিকোনো ঠাইত টিপক।\n"<ul><li>"স্ক্ৰ’ল কৰিবলৈ ২টা অথবা ততোধিক আঙুলি স্ক্ৰীনত পিছলাওক"</li>\n<li>"জুম মিলাবলৈ স্ক্ৰীনত ২টা অথবা অধিক আঙুলিৰে টিপক"</li></ul>\n\n<b>"সাময়িকভাৱে জুম কৰিবলৈ"</b>"বিৱৰ্ধন আৰম্ভ কৰক, তাৰ পাছত স্ক্ৰীনৰ যিকোনো অংশত স্পৰ্শ কৰি হেঁচি ধৰক।\n"<ul><li>"স্ক্ৰীনখন ইফালে-সিফালে নিবলৈ আঙুলিৰে টানক"</li>\n<li>"জুম আউট কৰিবলৈ আঙুলি উঠাওক"</li></ul>\n\n"আপুনি কীব’ৰ্ড অথবা নেভিগেশ্বন বাৰ জুম কৰিব নোৱাৰে।"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> পৃষ্ঠাৰ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> নম্বৰ পৃষ্ঠা"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"সাধ্য সুবিধা বুটামৰ শ্বৰ্টকাট"</string>
@@ -2149,8 +2180,6 @@
     <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_software_gesture" msgid="8292555254353761635">"একেবাৰে তলিৰ পৰা ওপৰলৈ ২ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসেৱাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ২ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"একেবাৰে তলিৰ পৰা ওপৰলৈ ৩ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসেৱাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ৩ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{আপোনাৰ স্ক্ৰীনৰ একেবাৰে তলৰ অংশৰ পৰা ওপৰলৈ ছোৱাইপ কৰক। সুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ, ওপৰলৈ ছোৱাইপ কৰি কিছু সময় ধৰি থাকক।}one{আপোনাৰ স্ক্ৰীনৰ একেবাৰে তলৰ অংশৰ পৰা ওপৰলৈ # টা আঙুলিৰে ছোৱাইপ কৰক। সুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ # টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।}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>
@@ -2161,16 +2190,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"দুটা আঙুলিৰে স্ক্ৰীনত দুবাৰ টিপা"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"স্ক্ৰীনখন ক্ষিপ্ৰভাৱে %1$d বাৰ টিপক। এইটোৱে আপোনাৰ ডিভাইচটো লেহেমীয়া কৰিব পাৰে।"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-টা আঙুলিৰে দুবাৰ টিপক"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"দুটা আঙুলিৰে স্ক্ৰীনখনত খৰতকীয়াকৈ {0,number,integer} বাৰ টিপক"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"স্ক্রীনখনত তিনিবাৰ টিপক"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"তিনিবাৰ টিপক"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্ৰীনখনত ক্ষিপ্ৰতাৰে {0,number,integer} বাৰ টিপক। এই শ্বৰ্টকাটটোৱে আপোনাৰ ডিভাইচটো লেহেমীয়া কৰিব পাৰে"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"উচ্চখাপৰ"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"দিব্যাংগসকলৰ সুবিধাৰ বুটামটো <xliff:g id="SERVICE">%1$s</xliff:g> হিচাপে ছেট কৰা হৈ আছে। বিবৰ্ধন ব্যৱহাৰ কৰিবলৈ বুটামটো হেঁচি ৰাখক আৰু তাৰ পাছত বিবৰ্ধন বাছনি কৰক।"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"সাধ্য সুবিধাৰ নিৰ্দেশ <xliff:g id="SERVICE">%1$s</xliff:g>ত ছেট কৰা হৈছে। বিবৰ্ধন ব্যৱহাৰ কৰিবলৈ দুটা আঙুলিৰে স্ক্ৰীনৰ তলৰ পৰা ওপৰলৈ ছোৱাইপ কৰক আৰু ধৰি ৰাখক। তাৰপাছত বিবৰ্ধন বাছনি কৰক।"</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"এই সেৱাএ ভালকৈ কাম কৰা নাই।"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"সাধ্য সুবিধাৰ শ্বৰ্টকাট"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"ক্ষিপ্ৰ ছেটিঙত দেখুৱাওক"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ৰঙা-সেউজীয়া"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ৰঙা-সেউজীয়া"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ৰঙা-সেউজীয়া, সেউজীয়া দুৰ্বল"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ৰঙা-সেউজীয়া, ৰঙা দুৰ্বল"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"নীলা-হালধীয়া"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"গ্ৰে’স্কে’ল"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"তীব্ৰতা"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"সেউজীয়া দুৰ্বল, ডিউটাৰএন’মেলী"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ৰঙা দুৰ্বল, প্ৰ’টান’মেলী"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"গ্ৰে’স্কে’ল ম\'ডৰ বাবে বা ৰং শুধৰণী অক্ষম কৰি থোৱা থাকিলে উপলব্ধ নহয়"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ডিউটাৰএন\'মেলী"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"প্ৰ’টানোমালি"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ট্ৰাইটান\'মেলী"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"অতিৰিক্তভাৱে পোহৰ কমোৱাৰ সুবিধা"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"স্ক্ৰীনৰ উজ্জ্বলতা অতিৰিক্তভাৱে হ্ৰাস কৰক"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"চাইয়ান"</string>
     <string name="color_yellow" msgid="5957551912912679058">"হালধীয়া"</string>
     <string name="color_magenta" msgid="8943538189219528423">"মেজেণ্টা"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>ক আপোনাৰ ডিভাইচৰ সম্পূর্ণ নিয়ন্ত্ৰণ দিবনে?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>ক নিম্নোক্ত অনুমতিকেইটাৰ আৱশ্যক:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"যিহেতু এটা এপে অনুমতি বিচাৰি কৰা অনুৰোধ ঢাকি ধৰিছে, Settingsএ আপোনাৰ উত্তৰ সত্যাপন কৰিব পৰা নাই।"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>এ এই ডিভাইচটোৰ সম্পূৰ্ণ নিয়ন্ত্ৰণ বিচাৰিছে। এই সেৱাটোৱে স্ক্ৰীন পঢ়িব পাৰে আৰু ব্যৱহাৰকাৰীৰ হৈ সাধ্য সুবিধাৰ প্ৰয়োজন অনুসৰি কাম কৰিব পাৰে। বেছিভাগ এপৰ ক্ষেত্ৰত এই নিয়ন্ত্ৰণৰ স্তৰ সঠিক নহয়।"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"আপোনাক সাধ্য সুবিধাৰ প্ৰয়োজনসমূহৰ জৰিয়তে সহায় কৰা এপ্‌সমূহৰ বাবে সম্পূর্ণ নিয়ন্ত্ৰণৰ সুবিধাটো সঠিক যদিও অধিকাংশ এপৰ বাবে এয়া সঠিক নহয়।"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"চাওক আৰু স্ক্ৰীন নিয়ন্ত্ৰণ কৰক"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ই স্ক্ৰীনৰ আটাইবোৰ সমল পঢ়িব পাৰে আৰু অন্য এপ্‌সমূহৰ ওপৰত সমল প্ৰদর্শন কৰিব পাৰে।"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"কার্যসমূহ চাওক আৰু কৰক"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ই আপুনি কোনো এপ্ বা হার্ডৱেৰ ছেন্সৰৰ সৈতে কৰা ভাব-বিনিময় আৰু আপোনাৰ হৈ অন্য কোনো লোকে এপৰ সৈতে কৰা ভাব-বিনিময় ট্ৰেক কৰিব পাৰে।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিয়ক"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"অস্বীকাৰ কৰক"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"অফ কৰক"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{এটাও নাই}=1{1 খন সময়সূচী ছেট কৰা হৈছে}one{# খন সময়সূচী ছেট কৰা হৈছে}other{# খন সময়সূচী ছেট কৰা হৈছে}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"অসুবিধা নিদিব"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"অগ্ৰাধিকাৰপ্ৰাপ্ত ম’ড"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"এটা ম’ড যোগ দিয়ক"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ব্যাঘাত কমাওক আৰু শোৱাৰ সময়, কাম, গাড়ী চলোৱা আৰু ইয়াৰ মাজৰ আটাইবোৰ কামৰ ম’ডসমূহৰ জড়িয়তে নিজৰ মনৰ ওপৰত নিয়ন্ত্ৰণ আনক।"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"আপোনাৰ নিজৰ ম’ড সৃষ্টি কৰক"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"কেৱল গুৰুত্বপূর্ণ লোক আৰু এপ্‌সমূহৰ পৰা জাননী পাওক"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"সময়সূচী ছেট কৰক"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"সময়সূচীৰ ভিত্তি"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"দিন আৰু সময়"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"কৰ্মদিনত পুৱা ৯ বজা - সন্ধিয়া ৫ বজা\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"কেলেণ্ডাৰৰ অনুষ্ঠান"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} সক্ৰিয় আছে}=2{{mode_1} আৰু {mode_2} সক্ৰিয় আছে}=3{{mode_1}, {mode_2}, আৰু {mode_3} সক্ৰিয় আছে}one{{mode_1}, {mode_2}, আৰু # টা সক্ৰিয় আছে}other{{mode_1}, {mode_2}, আৰু # টা সক্ৰিয় আছে}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{১ টা ম’ড স্বয়ংক্ৰিয়ভাৱে অন হ’ব পাৰে}one{# টা ম’ড স্বয়ংক্ৰিয়ভাৱে অন হ’ব পাৰে}other{# টা ম’ড স্বয়ংক্ৰিয়ভাৱে অন হ’ব পাৰে}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"অন আছে"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"ছেট কৰা হোৱা নাই"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"অক্ষম কৰা আছে"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"এটা ম’ড সৃষ্টি কৰক"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"কাষ্টম"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"এতিয়াই অন কৰক"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"অফ কৰক"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ম’ডটো বিচাৰি পোৱা নাই"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"বাধাবোৰ সীমিত কৰক"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"ব্যাঘাত আৰু বিভ্ৰান্তি অৱৰোধ কৰক"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> ছেট আপ কৰক"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"অসুবিধা নিদিব অন কৰক"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"এলাৰ্ম আৰু মিডিয়া ধ্বনিসমূহে ব্যাঘাত জন্মাব পাৰে"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"সময়সূচী"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"নিৰ্ধাৰিত সূচী মচক"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"মচক"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"নতুন নাম দিয়ক"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"মচক"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" ম’ড মচিবনে?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"সম্পাদনা কৰক"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"সময়সূচী"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"সময়সূচী"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"স্বয়ংক্ৰিয়ভাৱে অন কৰক"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"এখন কেলেণ্ডাৰ যোগ দিয়ক"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"আপোনাৰ কেলেণ্ডাৰ ব্যৱহাৰ কৰক"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"সময়সূচী"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"সময়সূচী ছেট কৰক"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"স্বয়ংক্ৰিয়ভাৱে অন কৰাৰ সময়"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"অনুষ্ঠানৰ সময়সূচী"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ইয়াৰ বাবে অনুষ্ঠানৰ মাজত অন কৰক"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"আমন্ত্ৰণ জনালে প্ৰত্যুত্তৰ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"সময়সূচী"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"সময়সূচী"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ঘণ্টা, <xliff:g id="MINUTES">%2$d</xliff:g> মিনিট"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"সময়সূচী"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ধ্বনিৰ সৃষ্টি কৰা বাধাসমূহৰ বাবে অনুমতি দিয়ক"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"দৃশ্যমান বিঘিনি প্ৰতিৰোধ কৰক"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"দৃশ্যমান সংকেতৰ অনুমতি দিয়ক"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"আপোনাৰ সৈতে সম্পৰ্ক স্থাপন কৰিব পৰা জাননীসমূহ"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"অতিৰিক্ত কাৰ্য"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"জাননীৰ ফিল্টাৰ"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"অধিক ছেটিং"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{অফ আছে}=1{অফ আছে / ১ টা ম’ড স্বয়ংক্ৰিয়ভাৱে অন কৰিব পাৰি}one{অফ আছে / # টা ম’ড স্বয়ংক্ৰিয়ভাৱে অন কৰিব পাৰি}other{অফ আছে / # টা ম’ড স্বয়ংক্ৰিয়ভাৱে অন কৰিব পাৰি}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ডিছপ্লে’ ছেটিং"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ডিছপ্লে’ৰ বিকল্পসমূহ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"গ্ৰে’স্কে’ল"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"গাঢ় ৰঙৰ থীম সক্ষম কৰক"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"OS আৰু এপ্‌সমূহক গাঢ় ৰঙৰ পটভূমিত পাতল ৰঙৰ পাঠ পছন্দ কৰিবলৈ সলনি কৰক, যি চকুৰ বাবে সহজ হ’ব পাৰে আৰু কিছুমান ডিভাইচত যথেষ্ট বেটাৰি সঞ্চয় কৰিবলৈ দিয়ে"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{কোনো ডিছপ্লে’ সম্পৰ্কীয় সালসলনি নাই}=1{{effect_1}}=2{{effect_1} আৰু {effect_2}}=3{{effect_1}, {effect_2} আৰু {effect_3}}one{{effect_1}, {effect_2} আৰু # অধিক}other{{effect_1}, {effect_2} আৰু # অধিক}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"আপোনাক কিহে জাননী দিয়ে সেয়া সীমিত কৰক"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"কোনো বাধা ফিল্টাৰ কৰা নহয়"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ফিল্টাৰ কৰা জাননীৰ বাবে ডিছপ্লে’ বিকল্পসমূহ"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"অসুবিধা নিদিব ম’ডটো অন হৈ থাকিলে"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"জাননীৰ পৰা কোনো ধ্বনি নাই"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"জাননী খোলক"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"জাননী স্নুজ কৰাৰ অনুমতি দিয়ক"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"এপ্‌ চিহ্নত জাননী বিন্দু"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"জাননীৰ বাণ্ডল"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"এই বাৰ্তালাপটো বাবল কৰক"</string>
@@ -3608,9 +3652,9 @@
     <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="4737150709382859870">"অভিযোজিত জাননী"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"অভিযোজিত জাননী ব্যৱহাৰ কৰক"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"আপুনি কম সময়ৰ ভিতৰতে বহুতো জাননী পালে, আপোনাৰ ফ’নটোৱে ভলিউম হ্ৰাস কৰিব আৰু দুই মিনিটলৈকে স্ক্ৰীনত ওলোৱা পপ-আপ হ্ৰাস কৰিব। কল, এলাৰ্ম আৰু অগ্ৰাধিকাৰপ্ৰাপ্ত বাৰ্তালাপসমূহৰ বাবে তেতিয়াও কম্পন হ’ব, শব্দ কৰিব বা সেয়া স্ক্ৰীনত দেখা পোৱা যাব আৰু আপুনি স্ক্ৰীনখনৰ একেবাৰে ওপৰৰ পৰা তললৈ টানিলে আটাইবোৰ জাননী বিচাৰি পোৱাটো সহজ হ’ব।"</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_work" msgid="8823596456640216391">"কৰ্মস্থানৰ প্ৰ’ফাইলত প্ৰয়োগ কৰক"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"কৰ্মস্থানৰ প্ৰ’ফাইলৰ এপত প্ৰয়োগ কৰক"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ভিআৰ সহায়ক সেৱা"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"শ্ৰেণী"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"অন্যান্য"</string>
     <string name="no_channels" msgid="4716199078612071915">"এই এপটোৱে এটাও জাননী দিয়া নাই"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"অব্যৱহৃত শিতানসমূহ দেখুৱাওক"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"এপত থকা অতিৰিক্ত ছেটিং"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"অব্যৱহৃত শিতানসমূহ দেখুৱাওক"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"অব্যৱহৃত শিতানসমূহ লুকুৱাওক"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"বাৰ্তালাপ"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"আটাইবোৰ বাৰ্তালাপ"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"আটাইবোৰ বাৰ্তালাপ"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"অগ্ৰাধিকাৰপ্ৰাপ্ত বার্তালাপসমূহ"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"অগ্ৰাধিকাৰপ্ৰাপ্ত বাৰ্তালাপ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"একো নাই"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"ব্যাঘাত জন্মাব পৰা এপ্‌"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"বাছনি কৰা এপ্‌"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"এটাও নহয়"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"আটাইবোৰ"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{কোনো এপে ব্যাঘাত জন্মাব নোৱাৰে}=1{{app_1}এ ব্যাঘাত জন্মাব পাৰে}=2{{app_1} আৰু {app_2}এ ব্যাঘাত জন্মাব পাৰে}=3{{app_1}, {app_2} আৰু {app_3}এ ব্যাঘাত জন্মাব পাৰে}one{{app_1}, {app_2} আৰু # টাই ব্যাঘাত জন্মাব পাৰে}other{{app_1}, {app_2} আৰু # টাই ব্যাঘাত জন্মাব পাৰে}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (কৰ্মস্থান)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"গণনা কৰি থকা হৈছে…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"এপক অ\'ভাৰৰাইডৰ অনুমতি দিয়ক"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ব্যাঘাত জন্মাব পৰা এপ্‌সমূহ"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"অধিক এপ্‌ বাছনি কৰক"</string>
@@ -3784,6 +3832,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"বাৰে বাৰে কল কৰোঁতাই ব্যাঘাত জন্মাব পাৰে"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"সকলো মানুহে ব্যাঘাত জন্মাব পাৰে"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"পুনৰাই কল কৰা লোকসকল"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"পুনৰাই কল কৰা লোকসকলক অনুমতি দিয়ক"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} পৰ্যন্ত কেৱল এঘণ্টাৰ বাবে এলাৰ্মলৈ সলনি কৰক}one{{time} পৰ্যন্ত কেৱল # ঘণ্টাৰ বাবে এলাৰ্মলৈ সলনি কৰক}other{{time} পৰ্যন্ত কেৱল # ঘণ্টাৰ বাবে এলাৰ্মলৈ সলনি কৰক}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"কেৱল <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> পৰ্যন্ত এলাৰ্ম সলনি কৰক"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"সদায় ব্যাঘাত জন্মোৱা ছেটিঙলৈ সলনি কৰক"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"নতুন নাম দিয়ক"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"চিহ্ন সলনি কৰক"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"চিহ্ন সলনি কৰক"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ম’ড যোগ দিয়ক"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"এটা ম’ড সৃষ্টি কৰক"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"কাষ্টম ক’ড"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ম’ডৰ নাম"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"কেলেণ্ডাৰৰ অনুষ্ঠান"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"শোৱাৰ সময়ৰ ৰুটিন"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"গাড়ী চলাই থাকোঁতে"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"এপৰ ছেটিং"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>ত তথ্য আৰু ছেটিং"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ পৰিচালনা কৰা"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> অক্ষম কৰিবনে?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"এই ম’ডটো অক্ষম কৰিলে ই কেতিয়াও অন নহয়"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"অক্ষম কৰক"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> সক্ষম কৰিবনে?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"এই ম’ডটোৰ ছেটিঙৰ ভিত্তিত ই স্বয়ংক্ৰিয়ভাৱে অন হ’ব পাৰে"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"সক্ষম কৰক"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"নিয়মীয়া সময়সূচী অনুসৰণ কৰা এটা ম’ড ছেট কৰক"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"কেলেণ্ডাৰৰ অনুষ্ঠান আৰু আমন্ত্ৰণৰ সঁহাৰিৰ সৈতে ছিংক কৰিবলৈ এটা ম’ড ছেট কৰক"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"টোপনিৰ এক শান্তিদায়ক ৰুটিন ডিজাইন কৰক। এলাৰ্ম ছেট কৰক, স্ক্ৰীনৰ পোহৰ কমাওক আৰু জাননী অৱৰোধ কৰক।"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"এক ফ’কাছড আৰু বিভ্ৰান্তি-মুক্ত গাড়ী চালনাৰ বাবে পথত সুৰক্ষাক অগ্ৰাধিকাৰ দিয়ক"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"সকীয়নি"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"বন্ধ কৰক"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ডিভাইচটো ব্যৱহাৰ কৰি কেনে লাগিছে জনাওক"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"কে’ছ"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"বেটাৰী"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ছেটিঙৰ পেনেল"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"বলপূৰ্বক ডেস্কটপ ম’ড"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"দ্বিতীয় ডিছপ্লে’ত পৰীক্ষামূলক ডেস্কটপ ম’ড বলপূৰ্বকভাৱে প্ৰয়োগ কৰক"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ফ্ৰীফৰ্ম ৱিণ্ড’ সক্ষম কৰক"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"গৌণ ডিছপ্লে’ত ফ্ৰীফৰ্ম ৱিণ্ড’ সক্ষম কৰক"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"একাধিক ৱিণ্ড’ত আকাৰ সলনি কৰিব নোৱৰা সুবিধাটো সক্ষম কৰক"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"আকাৰ সলনি কৰিব নোৱৰা এপক একাধিক ৱিণ্ড’ত থকাৰ অনুমতি দিয়ে"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"বলপূর্বকভাৱে গাঢ় ৰঙৰ থীম ব্যৱহাৰ কৰা সুবিধাটো অ\'ভাৰৰাইড কৰক"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ম’বাইল ডেটা"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ডিভাইচৰ ব্যৱহাৰৰ অভিজ্ঞতা উন্নত কৰিবলৈ এপ্‌ আৰু সেৱাসমূহে তথাপি যিকোনো সময়ত, আনকি ৱাই-ফাই বন্ধ হৈ থাকিলেও ৱাই-ফাই নেটৱৰ্ক বিচাৰিবলৈ স্কেন কৰিব পাৰে। এয়া অৱস্থানভিত্তিক সুবিধা আৰু সেৱা উন্নত কৰা আদিৰ দৰে কাৰ্যৰ বাবে ব্যৱহাৰ কৰিব পাৰি। আপুনি ৱাই-ফাই স্কেনিঙৰ ছেটিঙত এইটো সলনি কৰিব পাৰে।"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"সলনি কৰক"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"সংযোজিত হৈ আছে"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"অস্থায়ীভাৱে সংযোগ কৰা হৈছে"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"অস্থায়ীভাৱে <xliff:g id="SUBNAME">%1$s</xliff:g> ব্যৱহাৰ কৰা হৈছে"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"এপ্‌ পিন কৰাৰ সুবিধাটো ব্যৱহাৰ কৰক"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"বিকাশকৰ্তাৰ বিকল্পসমূহ ব্যৱহাৰ কৰক"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"প্ৰিণ্ট সেৱা ব্যৱহাৰ কৰক"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"একাধিক ব্যৱহাৰকাৰীৰ অনুমতি দিয়ক"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ব্যৱহাৰকাৰী সলনি কৰাৰ অনুমতি দিয়ক"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"অনুমতি দিয়ক, একাধিক,ব্যৱহাৰকাৰী, অনুমতি, বহুত"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"একাধিক, ব্যৱহাৰকাৰী, প্ৰ’ফাইল, লোকসকল, একাউণ্ট, ছুইচ, বহুত"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ৱায়াৰলেচ ডি’বাগিং ব্যৱহাৰ কৰক"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"আপোনাৰ টেবলেটটো লক হৈ থাকিলে আপুনি সেইটোৰ স্ক্ৰীনত কি দেখা পাব সেয়া বাছনি কৰক। স্ক্ৰীন ছেভাৰ ব্যৱহাৰ কৰাৰ সময়ত আপোনাৰ ডিভাইচটোৱে হয়তো অধিক শক্তি ব্যৱহাৰ কৰিব।"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"কাষ্টমাইজ কৰক"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> কাষ্টমাইজ কৰক"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ফ্ৰীফৰ্ম সমৰ্থন সক্ষম কৰিবৰ বাবে ৰিবুটৰ প্ৰয়োজন।"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"গৌণ ডিছপ্লেত ডেস্কটপ ম’ড সক্ষম কৰিবৰ বাবে ৰিবুটৰ প্ৰয়োজন।"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ফ্ৰীফৰ্ম ৱিণ্ড’ সমৰ্থন সক্ষম কৰিবৰ বাবে এবাৰ ৰিবুট কৰাৰ প্ৰয়োজন।"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ফ্ৰীফৰ্ম ৱিণ্ড’ৰ উপলব্ধতা আপডে’ট কৰিবলৈ এবাৰ ৰিবুট কৰাৰ প্ৰয়োজন।"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"গৌণ ডিছপ্লে’ত ফ্ৰীফৰ্ম ৱিণ্ড’ সক্ষম কৰিবৰ বাবে এবাৰ ৰিবুট কৰাৰ প্ৰয়োজন।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"এতিয়াই ৰিবুট কৰক"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"পাছত ৰিবুট কৰক"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"প্ৰকৃত অভিজ্ঞতা প্ৰদান কৰা অডিঅ’"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"গোলাপ ফুল"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"মেজেণ্টা"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"বেঙুনীয়া"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"কৰা হ’ল"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"ছেভ কৰক"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"বাতিল কৰক"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ডিফ’ল্ট"</string>
     <string name="contrast_medium" msgid="384414510709285811">"মধ্যমীয়া"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"অন আছে"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"অফ আছে"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"অন আছে"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"অডিঅ’ %1$d%% বাওঁ, %2$d%% সোঁ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"অডিঅ’ %1$d%% সোঁ, %2$d%% বাওঁ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"আপোনাৰ ডিভাইচৰ নাম আপুনি ইনষ্টল কৰা এপত দেখা পোৱা যায়। আপুনি ব্লুটুথ ডিভাইচৰ সৈতে সংযোগ কৰিলে, ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযোগ কৰিলে অথবা ৱাই-ফাই হটস্পট ছেট আপ কৰিলে এইটো অন্য লোকেও দেখা পাব পাৰে।"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ব্যাকৰণ বিষয়ক লিংগ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ব্যাকৰণ বিষয়ক লিংগ বাছনি কৰক"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ষ্ট্ৰীম শুনক"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ জৰিয়তে শুনিবলৈ অডিঅ’ ষ্ট্ৰীমৰ কিউআৰ ক’ড এটা স্কেন কৰক"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"শ্বেয়াৰ কৰি থকা সময়ত পাছৱৰ্ড সম্পাদনা কৰিব নোৱাৰি। পাছৱৰ্ডটো সলনি কৰিবলৈ, প্ৰথমে অডিঅ’ শ্বেয়াৰিং অফ কৰক।"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"কিউআৰ ক’ড স্কেনাৰ"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"সন্ধানৰ ছেটিংসমূহ"</string>
 </resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index 0f47a8c..b26e36d 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Yuxu vaxtı"</item>
-    <item msgid="4152450357280759894">"Sürücülük"</item>
-    <item msgid="7096549258219399423">"İmmersiv"</item>
-    <item msgid="2760716776980432977">"İdarə edilən"</item>
-    <item msgid="601734478369121764">"Ulduz"</item>
-    <item msgid="6243809315432780521">"Təqvim"</item>
-    <item msgid="4913577903148415331">"Vaxt"</item>
-    <item msgid="3653377604690057780">"Teatr"</item>
-    <item msgid="3843711267408385410">"Çiçək"</item>
+    <item msgid="2750940760340557109">"Yarım ay"</item>
+    <item msgid="8513969636586738035">"Avtomobil"</item>
+    <item msgid="957392343846370509">"İnsan zehni"</item>
+    <item msgid="6734164279667121348">"Təqvim"</item>
+    <item msgid="4139559120353528558">"Saat"</item>
+    <item msgid="5157711296814769020">"Çimərlik çətiri"</item>
+    <item msgid="6635328761318954115">"Çadır"</item>
+    <item msgid="1711994778883392255">"Kinolent"</item>
+    <item msgid="9097658401859604879">"Oyun kontrolleri"</item>
+    <item msgid="755931364157422565">"İdman zalı qanteli"</item>
+    <item msgid="8894207806795738429">"Top atan insan"</item>
+    <item msgid="2274801572149555103">"Təpik vuran insan"</item>
+    <item msgid="8795037201506843325">"Üzgüçülük"</item>
+    <item msgid="3558421426169430451">"Haykinq edən insan"</item>
+    <item msgid="7455070421232184932">"Qolf"</item>
+    <item msgid="5841773092449126508">"Emalatxana alətləri"</item>
+    <item msgid="4595330511709890409">"Portfel"</item>
+    <item msgid="8352738347856724389">"Ulduz"</item>
+    <item msgid="7082783098151998721">"Lotus çiçəyi"</item>
+    <item msgid="5772220259409264724">"Supervayzer"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index bcd3472..4362f7e 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Dayandırılıb"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Naməlum"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Önizləmə"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kodu"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kiçildin"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Böyüdün"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Həmişə"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Eşitmə cihazı ayarları"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Qısayol, eşitmə cihazı uyğunluğu"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Hazır ayar"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Audioloq tərəfindən proqramlaşdırılmış hazır ayar yoxdur"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Hazır ayar güncəllənmədi"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio çıxışı"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Audio çıxışı haqqında"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Bu tətbiq üçün dil seçimini Ayarlardan etmək olmur."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Dil tətbiqdə əlçatan dillərdən fərqli ola bilər. Bəzi tətbiqlər bu ayarı dəstəkləməyə bilər."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Hər tətbiq üçün dil ayarlayın."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sisteminiz, tətbiqləriniz və vebsaytlarınız tərcih etdiyiniz dillərdən ilk dəstəklənən dildən istifadə edir."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Cihaz, tətbiq və veb-saytlar üstünlük verdiyiniz dil siyahısındakı ilk dəstəklənən dildən istifadə edir.\n\nBir çox tətbiq də tarix, nömrə və vahidləri formatlamaq üçün seçdiyiniz dil üzrə regiondan istifadə edəcək. Regionu dəyişmək üçün dil əlavə edin, sonra üstünlük verdiyiniz regionu seçin."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Hər tətbiqə dil seçmək üçün tətbiq dili ayarlarına keçin."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Tətbiq dilləri haqqında daha ətraflı"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sistem dili %s olsun?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Deaktiv"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktiv / # tətbiqin məkana girişi var}other{Aktiv / # tətbiqin məkana girişi var}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yüklənir…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"\"Yaxınlıqdakı cihazlar\" icazəsi olan tətbiqlər qoşulmuş cihazların nisbi mövqeyini təyin edə bilər."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Yaxınlıqdakı cihazlar icazəsi olan tətbiqlər qoşulmuş cihazların nisbi mövqeyini təyin edə bilər."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Tətbiqlər və xidmətlər üçün məkan girişi deaktivdir. Təcili yardım nömrəsinə zəng etdikdə və ya mesaj göndərdikdə cihazınızın məkanı hələ də təcili yardım əməkdaşlarına göndərilə bilər."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Məkan ayarları haqqında ətraflı məlumat"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Dəyişmək üçün ChromeOS ayarları &gt; Məxfilik və güvənlik &gt; Məxfilik nizamlayıcıları &gt; Məkana giriş bölməsinə keçin"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Üz və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Üz, barmaq izi və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Üz, barmaq izləri və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Uzaqdan doğrulayıcı kilidaçması"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Saat əlavə edildi"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Saatı ayarlayın"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saatla Kilidaçma haqqında ətraflı məlumat"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Saat əlavə edin"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Saatı silin"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Barmaq İzi və Üz ilə Kiliddən Açma"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Üz və barmaq izi ilə kiliddən çıxarma"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"İş üçün Üz və Barmaq izi ilə kiliddən çıxarma"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Ayarlamaq lazımdır"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Üz və barmaq izləri əlavə edildi"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Məxfi yer ayarlanır…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Şəxsi sahə ayarlanmadı"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Yenidən cəhd edin"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Çıxın"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Şəxsi sahə əlçatan deyil.\nMümkün səbəblərə baxın"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Mümkün səbəblərə baxın"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Şəxsi sahə üçün yeni kilid seçilsin?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Yalnız şəxsi sahə üçün yeni kilid təyin edə və ya cihaz kilidini açdığınız kiliddən istifadə edə bilərsiniz"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Ekran kilidi istifadə edin"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Cihaz yenidən başladılsın?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detallı NFC qeydi yalnız inkişaf məqsədləri üçün nəzərdə tutulub. Əlavə NFC məlumatları şəxsi məlumatları ehtiva edə bilən baq hesabatlarına daxil edilir. Bu ayarı dəyişmək üçün cihazı yenidən başladın."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Yenidən başladın"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Aktiv"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Deaktiv"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Xarici displey"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Xarici displeyi istifadə edin"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Displeyin ayırdetmə dəqiqliyi"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Xarici displeyin əlaqəsi kəsilib"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Fırlanma"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standart"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Fırlanma və ya ayırdetmə dəqiqliyinin dəyişdirilməsi hazırda işləyən tətbiqləri dayandıra bilər"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Ekranı əks etdirmək üçün cihaz xarici displeyə qoşulmalıdır"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Digər seçimlər"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Yayım"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"güzgü"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Naqilsiz displeyi aktivləşdirin"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptiv"</string>
     <string name="brightness" msgid="6216871641021779698">"Parlaqlıq səviyyəsi"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptiv parlaqlıq"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Adaptiv parlaqlıq haqqında"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Ekran parlaqlığı avtomatik olaraq ətraf mühitə və fəaliyyətlrinizə görə tənzimlənəcək. Ayarlana bilən parlaqlığın təcihlərinizi öyrənməsi üçün slayderi əlinizlə hərəkət etdirin."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Aktiv"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Deaktiv"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Seçimlər"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Əlçatımlıq"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziki klaviatura"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Ekran klaviaturası istifadə edin"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Fiziki klaviatura aktiv olanda görünsün"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Sıçrama düymələri"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Klaviatura <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ərzində eyni düymənin tez-tez basılmasını nəzərə almır"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Asta düymələr"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Düymənin aktivləşdirilməsi vaxtını <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms-ə 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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Mausu idarə etmək üçün fiziki klaviaturadan 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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Poynter doldurma üslubunu sarıya dəyişin"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Poynter doldurma üslubunu çəhrayıya dəyişin"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Poynter doldurma üslubunu maviyə dəyişin"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Poynterin vuruş tərzi"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Ağ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Qara"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Yoxdur"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Taçped jestlərini öyrənin"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trekped, trek ped, maus, kursor, sürüşdürün, çəkin, sağ düymə ilə toxunun, klikləyin, poynter"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"sağ düymə ilə toxunun, basın"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"İstifadəçi seçib: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Nitq"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Kursor sürəti"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Poynter miqyası"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Poynter miqyasını azaldın"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Poynter miqyasını artırın"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Oyun Kontrolleri"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Vibrasiyanı yenidən yönləndirin"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Qoşulduqda oyun nəzarətinə vibrasiya göndərin"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Yenə də davam edin"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ləğv edin"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Böyütmə ayarları"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Bir barmaqla hərəkət"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 barmaq ilə böyüdücünü hərəkət etdirin"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Ekranda hərəkət üçün 1 barmağı sürüşdürün"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Bir barmaqla sürüşdürməklə böyütmə sahəsini hərəkət etdirin."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"İki barmaqla sürüşdürməklə böyütmə sahəsini hərəkət etdirin."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Yalnız ekranın bir hissəsini böyüdərkən əlçatan deyil"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Yaxınlaşdırmaq üçün düyməyə klikləyin"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Məzmunu böyütmək üçün ekranı sürətlə yaxınlaşdırın"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Yaxınlaşdırmaq üçün:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin&lt;br/&gt; {1,number,integer}. Ekrana toxunun&lt;br/&gt; {2,number,integer}. Ekranın ətrafında hərəkət etmək üçün 2 barmağınızı sürüşdürün&lt;br/&gt; {3,number,integer}. Miqyası tənzimləmək üçün 2 barmaqla yaxınlaşdırıb-uzaqlaşdırın&lt;br/&gt; {4,number,integer}. Böyütməni dayandırmaq üçün qısayoldan istifadə edin&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Müvəqqəti böyütmək üçün:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Böyütmə növünün tam ekrana ayarlandığına əmin olun&lt;br/&gt; {1,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin&lt;br/&gt; {2,number,integer}. Ekranın istənilən yerinə toxunub saxlayın&lt;br/&gt; {3,number,integer}. Ekranın ətrafında hərəkət etmək üçün barmağınızı sürüşdürün&lt;br/&gt; {4,number,integer}. Böyütməni dayandırmaq üçün barmağınızı qaldırın"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Yaxınlaşdırmaq üçün:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin&lt;br/&gt; {1,number,integer}. Ekrana toxunun&lt;br/&gt; {2,number,integer}. Ekranda hərəkət etmək üçün 2 barmağı sürüşdürün&lt;br/&gt; {3,number,integer}. Miqyası tənzimləmək üçün 2 barmaqla yaxınlaşdırıb-uzaqlaşdırın&lt;br/&gt; {4,number,integer}. Böyütməni dayandırmaq üçün qısayoldan istifadə edin&lt;br/&gt;&lt;br/&gt; Həmçinin müvəqqəti böyüdə və s. əməliyyatları edə bilərsiniz."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Yaxınlaşdırmaq üçün:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Böyütməyə başlamaq üçün qısayoldan istifadə edin&lt;br/&gt; {1,number,integer}. Ekrana toxunun&lt;br/&gt; {2,number,integer}. Ekranda hərəkət etmək üçün 1 və ya 2 barmağı sürüşdürün&lt;br/&gt; {3,number,integer}. Miqyası tənzimləmək üçün 2 barmaqla yaxınlaşdırıb-uzaqlaşdırın&lt;br/&gt; {4,number,integer}. Böyütməni dayandırmaq üçün qısayoldan istifadə edin&lt;br/&gt;&lt;br/&gt; Həmçinin müvəqqəti böyüdə və s. əməliyyatları edə bilərsiniz."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Böyütmə aktiv edildikdə ekranda yaxınlaşdıra bilərsiniz.\n\n"<b>"Miqyası dəyişmək üçün"</b>" böyütməni başlatdıqdan sonra ekranda istənilən yerə toxunun.\n"<ul><li>"Sürüşdürmək üçün ən azı 2 barmağınızla çəkin"</li>\n<li>"Miqyası tənzimləmək üçün ən azı 2 barmağınızla sürüşdürərək yaxınlaşdırın"</li></ul>\n\n<b>"Miqyası müvəqqəti dəyişmək üçün"</b>" böyütməni başladıb ekranda istənilən yerə basın &amp; saxlayın.\n"<ul><li>"Ekranda hərəkət etmək üçün çəkin"</li>\n<li>"Uzaqlaşdırmaq üçün barmağınızı qaldırın"</li></ul>\n\n"Klaviatura və ya naviqasiya panelində yaxınlaşdıra bilməzsiniz."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Səhifə <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Xüsusi imkanlar düyməsi qısayolu"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Üzən düyməyə toxunun"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Əlçatımlılıq jesti"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekranın aşağısında xüsusi imkanlar düyməsinə <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> toxunun Funksiyalar arasında keçid üçün xüsusi imkanlar düyməsinə toxunub saxlayın."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 barmaq ilə ekranın aşağısından yuxarı doğru sürüşdürün\n\nFunksiyalar arasında keçid etmək üçün 2 barmaq ilə yuxarı doğru sürüşdürüb saxlayın."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 barmaq ilə ekranın aşağısından yuxarı doğru sürüşdürün.\n\nFunksiyalar arasında keçid etmək üçün 3 barmaq ilə yuxarı sürüşdürüb saxlayın."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Ekranın aşağısından yuxarı çəkin. Funksiyalar arasında keçid üçün yuxarı çəkib saxlayın.}other{Ekranın aşağısından # barmaqla yuxarı çəkin. Funksiyalar arasında keçid üçün # barmaqla yuxarı çəkib saxlayın.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Digər seçimlər"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> haqqında ətraflı məlumat"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Səs düymələri"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"səs düymələri"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Hər iki səs düyməsini basıb saxlayın"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ekrana iki barmaqla iki dəfə toxunun"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d barmaqla iki dəfə toxunun"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ekrana %1$d barmaqla iki dəfə cəld toxunun"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Üç dəfə toxunun"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ekrana %1$d dəfə cəld toxunun. Cihaz yavaşlaya bilər."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d barmaqla iki dəfə toxunun"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ekrana iki barmaqla {0,number,integer} dəfə cəld toxunun"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrana üç dəfə toxunun"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"üç dəfə toxunun"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ekrana {0,number,integer} dəfə cəld toxunun. Bu qısayol cihazınızı yavaşlada bilər"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Qabaqcıl"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Əlçatımlılıq düyməsi <xliff:g id="SERVICE">%1$s</xliff:g> xidmətinə ayarlanıb. Böyütməni istifadə etmək üçün Əlçatımlılıq düyməsinə toxunaraq basıb saxlayın, daha sonra böyütmə seçin."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Əlçatımlılıq jesti <xliff:g id="SERVICE">%1$s</xliff:g> funksiyasına ayarlanıb. Miqyasdan istifadə etmək üçün ekranın yuxarısndan iki barmağınızla sürüşdürüb saxlayın. Sonra miqyası seçin."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Xidmətdə problem var."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Xüsusi imkanlar qısayolları"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Sürətli Ayarlarda Göstər"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Qırmızı-yaşıl"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Qırmızı-yaşıl"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Qırmızı-yaşıl, yaşıl zəif"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Qırmızı-yaşıl, qırmızı zəif"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Mavi-sarı"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Ağ-qara"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"İntensivlik"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Yaşıl zəif, deuteranomaliya"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Qırmızı zəif, protanomaliya"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Boz çalarlı rejim üçün və ya rəng korreksiyası deaktiv olduqda əlçatan deyil"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deyteranomaliya"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaliya"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaliya"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Əlavə tündləşmə"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Parlaqlıq daha da azaldılsın"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Mavi"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Sarı"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> xidmətinin cihaza tam nəzarət etməsinə icazə vermək istəyirsiniz?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> etməlidir:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Çünki, tətbiq icazə sorğusunu anlaşılmaz edir. Ayarlar cavabınızı doğrulaya bilməz."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> cihaza tam nəzarət istəyir. Məlumatları ekrandan oxuya, xüsusi imkanlara ehtiyacı olan istifadəçilərin adından iş görə bilər. Tətbiqlərin çoxuna bu səviyyədə icazə vermək tövsiyə olunmur."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Tam nəzarət icazəsi xüsusi imkanlara dair yardım edən tətbiqlərə lazımdır, digər tətbiqlərə lazım deyil."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Baxış və nəzarət ekranı"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ekrandakı bütün kontenti oxuya və kontenti digər tətbiqlərin üzərində göstərə bilər."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Əməliyyatlara baxın və icra edin"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tətbiq və sensorlarla əlaqələrinizi izləyib tətbiqlərə adınızdan əmrlər verə bilər"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İcazə verin"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"İmtina edin"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Deaktiv"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Heç biri}=1{1 cədvəl ayarlanıb}other{# cədvəl ayarlanıb}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Narahat etməyin"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritet rejimləri"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Rejim əlavə edin"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Yuxu, iş, sürücülük və s. üçün rejimlər ilə diqqətinizi yayındıran amilləri minimuma endirin və fikrinizi cəmləyin."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Öz rejiminizi yaradın"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Yalnız vacib şəxs və tətbiqlərdən bildiriş alın."</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Cədvəl ayarlayın"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Buna əsasən planlaşdırın"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Gün və saat"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"09:00 - 17:00 həftəiçi\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Təqvim tədbirləri"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} aktivdir}=2{{mode_1} və {mode_2} aktivdir}=3{{mode_1}, {mode_2} və {mode_3} aktivdir}other{{mode_1}, {mode_2} və daha # rejim aktivdir}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 rejim avtomatik işə düşə bilər}other{# rejim avtomatik işə düşə bilər}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AKTİV"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ayarlanmayıb"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Deaktiv"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Rejim yaradın"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Fərdi"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"İndi yandırın"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Söndürün"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Rejim tapılmadı"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Kəsintiləri məhdudlaşdırın"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Fasilə və diqqəti yayındıran amilləri bloklayın"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> quraşdırın"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\"Narahat Etməyin\" rejimini aktiv edin"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Siqnallar və media səsləri narahat edə bilər"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Cədvəllər"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Rejimləri silin"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Silin"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Yenidən adlandırın"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Silin"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" rejimi silinsin?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redaktə edin"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Cədvəllər"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Rejim"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Avtomatik yandırın"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Təqvim əlavə edin"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Təqvim istifadə edin"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Cədvəl"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Cədvəl ayarlayın"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Avtomatik yandırma vaxtı"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Tədbir cədvəli"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Tədbir ərzində aktiv edin"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Dəvət cavabının yeri"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Vaxt cədvəli"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Cədvəl"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> saat <xliff:g id="MINUTES">%2$d</xliff:g> dəq"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Rutin"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Səsli xəbərdarlıqlara icazə verin"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Vizual fəsadları blok edin"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Görünən siqnallara icazə verin"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Sizə gələ biləcək bildirişlər"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Əlavə əməliyyatlar"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Bildiriş filtrləri"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Digər ayarlar"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Sönülü}=1{Sönülü / 1 rejim avtomatik işə düşə bilər}other{Sönülü / # rejim avtomatik işə düşə bilər}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Displey ayarları"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Displey seçimləri"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Boz çalarlı"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"tünd temanı aktivləşdirin"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Qaranlıq arxa fonda açıq mətnə üstünlük vermək üçün ƏS və tətbiqləri dəyişin. Bu, gözləri daha az yora bilər və bəzi cihazlarda əhəmiyyətli enerji qənaəti təmin edir."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Displey dəyişikliyi yoxdur}=1{{effect_1}}=2{{effect_1} və {effect_2}}=3{{effect_1}, {effect_2} və {effect_3}}other{{effect_1}, {effect_2} və daha # effekt}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Bildiriş göndərən tətbiqləri məhdudlaşdırın"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Kəsinti filtrlənməyib"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Filtrlənmiş bildirişlər üzrə seçimləri göstərin"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"\"Narahat Etməyin\" rejimi aktiv olduqda"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Bildirişlər səssiz olsun"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"bildirişi açın"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Bildirişin ertələnməsinə icazə verin"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Tətbiq ikonunda bildiriş nöqtəsi"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Bildiriş paketləri"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Köpüklər"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Köpüklər"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Söhbət üzə çıxsın"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Bu tətbiq geniş ayarları dəstəkləmir"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Digər ayarlar"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Bu tətbiqdə başqa ayarlar da var"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptiv bildirişlər"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Adaptiv bildirişlərdən istifadə edin"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Qısa müddətdə çoxlu bildiriş alanda telefon iki dəqiqəyədək səsi azaldacaq və ekrandakı popapları minimuma endirəcək. Zəng, alarm və prioritet söhbətlər yenə də vibrasiya edir, səs çıxarır və ya ekranda görünür. Ekranın yuxarısından aşağı çəkəndə bütün bildirişləri tapmaq olar."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Bildiriş səsinin azaldılması"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bildiriş gözləmə müddətindən istifadə edin"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Qısa müddətdə çoxlu bildiriş alanda cihaz 2 dəqiqəyədək səsi azaldacaq və xəbərdarlıqları minimuma endirəcək. Zənglər, alarmlar və prioritet söhbətlər təsirə məruz qalmır. \n\nFasilə zamanı qəbul edilən bildirişləri ekranın yuxarısından aşağı çəkərək tapmaq olar."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"İş profillərinə tətbiq edin"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"İş profili tətbiqlərinə tətbiq edin"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR köməkçi xidmətləri"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kateqoriyalar"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Digər"</string>
     <string name="no_channels" msgid="4716199078612071915">"Bu tətbiq heç bir bildiriş paylaşmayıb"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"İstifadəsiz kateqoriyaları göstərin"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Tətbiqdə əlavə ayarlar"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"İstifadəsiz kateqoriyaları göstərin"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"İstifadəsiz kateqoriyaları gizlədin"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Söhbətlər"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Bütün söhbətlər"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"bütün söhbətlər"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Önəmli söhbətlər"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritet söhbətlər"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Heç biri"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Mane ola biləcək tətbiqlər"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Seçilmiş tətbiqlər"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Heç biri"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Hamısı"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Heç bir tətbiq bildiriş göndərə bilməz}=1{{app_1} bildiriş göndərə bilər}=2{{app_1} və {app_2} bildiriş göndərə bilər}=3{{app_1}, {app_2} və {app_3} bildiriş göndərə bilər}other{{app_1}, {app_2} və daha # tətbiq bildiriş göndərə bilər}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (İş)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Hesablanır…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tətbiqlərin rejimdən imtina etməsinə icazə verin"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Narahat etmiş sayılmayan tətbiqlər"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Daha çox tətbiq seçin"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Heç nə narahat edə bilməz"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Heç kim narahat edə bilməz"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Bəzi şəxslər narahat edə bilər"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Təkrar zəng edənlər mane ola bilər"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Bütün şəxslər narahat edə bilər"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Təkrar zəng edənlər"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Təkrarlanan zənglərə icazə verin"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Yalnız bu vaxtadək bir saatlıq xəbərdarlıqlara dəyişin: {time}}other{Yalnız bu vaxtadək # saatlıq xəbərdarlıqlara dəyişin: {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Yalnız <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> vaxtınadək xəbərdarlıqları dəyişin"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Həmişə fasiləyə dəyişin"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Adını dəyişin"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"İkonanı dəyişin"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"İkonanı dəyişin"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Redaktə rejimi"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Rejim yaradın"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Fərdi rejim"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Rejim adı"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Təqvim tədbirləri"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Yuxu vaxtı rejimi"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Avtomobil sürərkən"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Tətbiq ayarları"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> tətbiqində məlumat və ayarlar"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> tərəfindən idarə edilir"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> deaktiv edilsin?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Deaktiv olduqda bu rejim yandırılmayacaq"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktiv edin"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> aktivləşdirilsin?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Bu rejim ayarlarına əsasən avtomatik aktivləşə bilər"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktiv edin"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Müntəzəm cədvələ uyğun rejim qurun"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Təqvim tədbirləri və dəvət cavabları ilə sinxronlaşdırmaq üçün rejim təyin edin"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Sakitləşdirici yuxu rejimi hazırlayın. Alarmlar ayarlayın, ekranı tutqunlaşdırın və bildirişləri bloklayın."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Fokuslu və diqqəti yayındırmayan sürücülük üçün yolda təhlükəsizliyə üstünlük verin"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Diqqəti cəmləmək üçün cihazda diqqəti yayındıran amilləri və ya fasilələri bloklayın"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Sakit mühit üçün diqqətinizi yayındıran bütün amilləri aradan qaldırın"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Müxtəlif istifadəçilər üçün cihaz təcrübələri və ayarlarını fərdiləşdirin"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Yalnız vacib insan və tətbiqlərin sizinlə əlaqə saxlamasına icazə verməklə fasilələri minimuma endirin"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Xəbərdarlıq"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Bağlayın"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Bu cihaz haqqında fikrinizi bildirin"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Qutu"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batareya"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Ayarlar Paneli"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Masaüstü rejiminə keçid məcburi olsun"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Əlavə ekranlarda masaüstünün eksperimental rejiminə keçid məcburi olsun"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Sərbəst ölçülü pəncərələri aktiv edin"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Köməkçi displeydə sərbəst formalı pəncərələri aktivləşdirin"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Dəyişməyən miqyas çoxpəncərəli rejimdə açılsın"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Miqyası dəyişməyən tətbiqləri çoxpəncərəli rejimdə açır"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"icbari qaranlıq rejim etibarsız edilsin"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobil data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Cihaz təcrübəsini yaxşılaşdırmaq üçün Wi-Fi deaktiv olduqda belə, tətbiqlər və xidmətlər Wi-Fi şəbəkəsini axtara biləcək. Bununla da məkan haqqında məlumata ehtiyacı olan funksiya və xidmətlərin iş keyfiyyəti artmış olur. Bunu Wi-Fi axtarışı ayarlarında dəyişə bilərsiniz."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Dəyişin"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Qoşulub"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Müvəqqəti qoşulub"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Müvəqqəti olaraq <xliff:g id="SUBNAME">%1$s</xliff:g> istifadə edir"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Tətbiq bərkidilməsi"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Developer seçimlərini işlədin"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Çap xidməti"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Bir neçə istifadəçiyə icazə verin"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"İstifadəçi keçiricisinə icazə verin"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"icazə, çox sayda, istifadəçi, icazə, çox"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"çoxsaylı, istifadəçilər, profillər, insanlar, hesablar, keçirici, çoxlu"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Wi-Fi vasitəsilə sazlayın"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Planşet doka yerləşdirildikdə ekranda nə görəcəyinizi seçin. Ekran qoruyucusu istifadə edildikdə cihazınız daha çox enerji sərf edə bilər."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Fərdiləşdirin"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Fərdiləşdirin: <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Sərbəst forma dəstəyini aktivləşdirmək üçün yenidən başlatma tələb olunur."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"İkinci dərəcəli displeylərdə masaüstü rejimini məcburi aktiv etmək üçün yenidən başlatma tələb olunur."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Sərbəst pəncərə dəstəyini aktivləşdirmək üçün yenidən başlatma tələb olunur."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Sərbəst formalı pəncərələrin əlçatanlığını yeniləmək üçün yenidən yükləmə tələb olunur."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Köməkçi displeylərdə sərbəst formalı pəncərələri aktivləşdirmək üçün yenidən yükləmə tələb olunur."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"İndi yenidən başladın"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Sonra yeniden başladın"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Uzaysal Audio"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Qızılgül rəngi"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Madjenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Bənövşəyi"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Hazırdır"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Yadda saxlayın"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Ləğv edin"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Defolt"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Orta"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Aktiv"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Deaktiv"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Aktiv"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% sol, %2$d%% sağ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% sağ, %2$d%% sol"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Cihaz adı quraşdırdığınız tətbiqlərə görünür. Bluetooth cihazlarına, Wi-Fi şəbəkəsinə qoşulduqda və ya Wi-Fi hotspotu ayarladıqda digər şəxslər də onu görə bilər."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Cins (qrammatika)"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Cins (qrammatika) seçin"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Yayımı dinləyin"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ilə dinləmək üçün audio yayımı QR kodunu skanlayın"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Paylaşarkən parolu redaktə etmək olmur. Parolu dəyişmək üçün əvvəlcə audio paylaşmanı deaktiv edin."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kod skaneri"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Axtarış Ayarları"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index d64e7b5..a1e4b7b 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Vreme za spavanje"</item>
-    <item msgid="4152450357280759894">"Vožnja"</item>
-    <item msgid="7096549258219399423">"Imerzivno"</item>
-    <item msgid="2760716776980432977">"Upravljano"</item>
-    <item msgid="601734478369121764">"Zvezda"</item>
-    <item msgid="6243809315432780521">"Kalendar"</item>
-    <item msgid="4913577903148415331">"Vreme"</item>
-    <item msgid="3653377604690057780">"Pozorište"</item>
-    <item msgid="3843711267408385410">"Cvet"</item>
+    <item msgid="2750940760340557109">"Polumesec"</item>
+    <item msgid="8513969636586738035">"Automobil"</item>
+    <item msgid="957392343846370509">"Ljudski mozak"</item>
+    <item msgid="6734164279667121348">"Kalendar"</item>
+    <item msgid="4139559120353528558">"Sat"</item>
+    <item msgid="5157711296814769020">"Suncobran"</item>
+    <item msgid="6635328761318954115">"Šator"</item>
+    <item msgid="1711994778883392255">"Rolna filma"</item>
+    <item msgid="9097658401859604879">"Kontroler za igre"</item>
+    <item msgid="755931364157422565">"Teg za teretanu"</item>
+    <item msgid="8894207806795738429">"Osoba koja baca loptu"</item>
+    <item msgid="2274801572149555103">"Osoba koja šutira"</item>
+    <item msgid="8795037201506843325">"Plivanje"</item>
+    <item msgid="3558421426169430451">"Osoba koja pešači"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Alat iz radionice"</item>
+    <item msgid="4595330511709890409">"Aktovka"</item>
+    <item msgid="8352738347856724389">"Zvezda"</item>
+    <item msgid="7082783098151998721">"Cvet lotosa"</item>
+    <item msgid="5772220259409264724">"Supervizor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 95d33fe..705c939 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Obustavljeno"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Nepoznato"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pregled"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kôd"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Umanji"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Uvećaj"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Uvek"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Podešavanja slušnog aparata"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Prečica, kompatibilnost sa slušnim aparatima"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Zadata podešavanja"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Ne postoje zadata podešavanja koja je programirao audiolog"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Ažuriranje zadatih podešavanja nije uspelo"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio izlaz"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"O audio izlazu"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Izbor jezika za ovu aplikaciju nije dostupan iz Podešavanja."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Jezik može da se razlikuje od jezika dostupnih u aplikaciji. Neke aplikacije možda ne podržavaju ovo podešavanje."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Podesite jezik za svaku aplikaciju."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistem, aplikacije i veb-sajtovi koriste prvi podržani jezik iz željenih jezika."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Uređaj, aplikacije i veb-sajtovi koriste prvi podržani jezik sa liste željenih jezika.\n\nMnoge aplikacije formatiraju datume, brojeve i jedinice na osnovu regiona željenog jezika. Da biste promenili region, dodajte jezik, pa izaberite željeni region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Da biste izabrali jezik za svaku aplikaciju, idite u podešavanja jezika aplikacije."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saznajte više o jezicima aplikacija"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Želite da jezik sistema od sada bude %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno/# aplikacija ima pristup lokaciji}one{Uključeno/# aplikacija ima pristup lokaciji}few{Uključeno/# aplikacije imaju pristup lokaciji}other{Uključeno/# aplikacija ima pristup lokaciji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitava se…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije sa dozvolom za uređaje u blizini mogu da odrede približan položaj povezanih uređaja."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije sa dozvolom za uređaje u blizini mogu da odrede približni položaj povezanih uređaja."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji je isključen za aplikacije i usluge. Lokacija uređaja može i dalje da se šalje ekipama hitnih službi kada pozovete broj za hitne slučajeve ili pošaljete SMS na njega."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o podešavanjima lokacije"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Da biste to promenili, na ChromeOS-u otvorite Podešavanja &gt; Bezbednost i privatnost &gt; Kontrole privatnosti &gt; Pristup lokaciji"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodati su lice i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodati su lice, otisak prsta i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodati su lice, otisci prstiju i <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Otključavanje uz Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Sat je dodat"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Podesite sat"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o otključavanju sata"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ukloni sat"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Otključavanje licem i otiskom prsta"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za posao"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Treba da podesite"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Lice i otisci prsta su dodati"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Podešava se privatni prostor…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Podešavanje privatnog prostora nije uspelo"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Probaj ponovo"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Zatvori"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privatan prostor nije dostupan.\nPogledajte moguće uzroke"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Pogledajte moguće uzroke"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Želite da odaberete novo otključavanje za privatan prostor?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Možete da podesite novo otključavanje samo za privatan prostor ili da koristite ono isto koje koristite za otključavanje uređaja"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Koristi otključavanje ekrana"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Želite da restartujete uređaj?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC evidentiranje detalja je namenjeno samo u svrhe programiranja. Dodatni NFC podaci uvršteni su u izveštaje o greškama, koji mogu da sadrže privatne podatke. Restartujte uređaj da biste promenili ovo podešavanje."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restartuj"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Uključeno"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Isključeno"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Spoljni ekran"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Koristi spoljni ekran"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Rezolucija ekrana"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Spoljni ekran je isključen"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotacija"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standardno"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Promena rotacije ili rezolucije može da zaustavi sve aplikacije koje su trenutno aktivne"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Uređaj mora da bude povezan sa spoljnim ekranom da bi se preslikao ceo ekran"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Još opcija"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Prebacivanje"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"preslikati"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Omogući bežični prikaz"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Prilagodljivo"</string>
     <string name="brightness" msgid="6216871641021779698">"Nivo osvetljenosti"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Prilagodljiva osvetljenost"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"O priladoljivoj osvetljenosti"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Osvetljenost ekrana će se automatski prilagođavati okruženju i aktivnostima. Možete ručno da pomerate klizač da bi prilagodljivo podešavanje osvetljenosti naučilo šta vam odgovara."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Uključeno"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Isključeno"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tastatura"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Koristi tastaturu na ekranu"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na ekranu dok je fizička tastatura aktivna"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Duži odziv tastera"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatura zanemaruje brze pritiske istog tastera koji se ponavljaju u roku od <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Spori tasteri"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Priladite vreme potrebno da se taster aktivira posle pritiska na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Koristite fizičku tastaturu da biste upravljali mišem."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Promenite stil popune u žuto"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Promenite stil popune u roze"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Promenite stil popune u plavo"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil poteza pokazivača"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Belo"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Crno"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ništa"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučite pokrete za tačped"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"dodirna tabla, miš, kursor, skrolovanje, prevlačenje, desni klik, klik, pokazivač"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"desni klik, dodir"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Izabrao je korisnik: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Govor"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Brzina pokazivača"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Veličina pokazivača"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Smanjite veličinu pokazivača"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Povećajte veličinu pokazivača"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Kontroler za igre"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Preusmeri vibraciju"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Preusmeri vibraciju na kontroler za igre kada je povezan"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Otkaži"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Podešavanja uvećanja"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Pomeranje jednim prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Pomerite lupu 1 prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Prevlačite 1 prst za kretanje po ekranu"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pomerajte oblast za uvećanje prevlačenjem jednog prsta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pomerajte oblast za uvećanje prevlačenjem dva prsta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nije dostupno kada se uvećava samo deo ekrana"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Dodirnite dugme da biste zumirali"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Brzo uvećajte ekran da bi sadržaj bio veći"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Da biste uvećali:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Koristite prečicu da biste pokrenuli uvećanje&lt;br/&gt; {1,number,integer}. Dodirnite ekran&lt;br/&gt; {2,number,integer}. Prevlačite pomoću 2 prsta da biste se kretali po ekranu&lt;br/&gt; {3,number,integer}. Skupite 2 prsta da biste prilagodili zumiranje&lt;br/&gt; {4,number,integer}. Koristite prečicu da biste zaustavili uvećanje&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Da biste privremeno uvećali:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Uverite se da je tip uvećanja podešen na ceo ekran&lt;br/&gt; {1,number,integer}. Koristite prečicu da biste pokrenuli uvećanje&lt;br/&gt; {2,number,integer}. Dodirnite i zadržite bilo koji deo ekrana&lt;br/&gt; {3,number,integer}. Prevlačite prst da biste se kretali po ekranu&lt;br/&gt; {4,number,integer}. Podignite prst da biste zaustavili uvećanje"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Da biste uvećali:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Koristite prečicu da biste pokrenuli uvećanje&lt;br/&gt; {1,number,integer}. Dodirnite ekran&lt;br/&gt; {2,number,integer}. Prevlačite pomoću 2 prsta da biste se kretali po ekranu&lt;br/&gt; {3,number,integer}. Skupite 2 prsta da biste prilagodili zumiranje&lt;br/&gt; {4,number,integer}. Koristite prečicu da biste zaustavili uvećanje&lt;br/&gt;&lt;br/&gt; Možete privremeno da zumirate i drugo."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Da biste uvećali:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Koristite prečicu da biste pokrenuli uvećanje&lt;br/&gt; {1,number,integer}. Dodirnite ekran&lt;br/&gt; {2,number,integer}. Prevlačite 1 ili 2 prsta da biste se kretali po ekranu &lt;br/&gt; {3,number,integer}. Skupite 2 prsta da biste prilagodili zumiranje&lt;br/&gt; {4,number,integer}. Koristite prečicu da biste zaustavili uvećanje&lt;br/&gt;&lt;br/&gt; Možete privremeno da zumirate i drugo."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kada je uvećanje uključeno, možete da uvećate ekran.\n\n"<b>"Da biste zumirali"</b>", pokrenite uvećanje, pa dodirnite bilo koji deo ekrana.\n"<ul><li>"Prevlačite pomoću 2 ili više prstiju da biste pomerali prikaz"</li>\n<li>"Skupite 2 ili više prstiju da biste prilagodili zumiranje"</li></ul>\n\n<b>"Za privremeno zumiranje"</b>" pokrenite uvećanje, pa dodirnite i zadržite bilo koji deo ekrana.\n"<ul><li>"Prevlačite da biste se kretali po ekranu"</li>\n<li>"Podignite prst da biste umanjili prikaz"</li></ul>\n\n"Ne možete da uvećavate tastaturu ili traku za navigaciju."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. stranica od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Prečica za dugme Pristupačnost"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dodirnite plutajuće dugme"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pokret za pristupačnost"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dodirnite dugme Pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> u dnu ekrana. Da biste prelazili sa jedne funkcije na drugu, dodirnite i zadržite dugme Pristupačnost."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Prevucite nagore od dna ekrana pomoću 2 prsta.\n\nDa biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću 2 prsta i zadržite."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Prevucite nagore od dna ekrana pomoću 3 prsta.\n\nDa biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću 3 prsta i zadržite."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Prevucite nagore od dna ekrana. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore i zadržite.}one{Prevucite nagore od dna ekrana pomoću # prsta. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću # prsta i zadržite.}few{Prevucite nagore od dna ekrana pomoću # prsta. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću # prsta i zadržite.}other{Prevucite nagore od dna ekrana pomoću # prstiju. Da biste prelazili sa jedne funkcije na drugu, prevucite nagore pomoću # prstiju i zadržite.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Još opcija"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saznajte više o: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tasteri za jačinu zvuka"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tasteri za jačinu zvuka"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite i zadržite oba tastera za jačinu zvuka"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvaput dodirnite ekran pomoću dva prsta"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvaput dodirnite pomoću %1$d prsta"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Brzo dodirnite ekran dvaput pomoću %1$d prsta"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Dodirnite triput"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Brzo dodirnite ekran %1$d puta. Ovo može da uspori uređaj."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"dvaput dodirnite pomoću %1$d prsta"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite ekran {0,number,integer} puta pomoću dva prsta"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dodirnite ekran triput"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"dodirnite triput"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Brzo dodirnite ekran {0,number,integer} puta. Ova prečica može da uspori uređaj"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Napredno"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Dugme za pristupačnost je podešeno na <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste koristili uvećanje, dodirnite i zadržite dugme za pristupačnost, pa izaberite uvećanje."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pokret za pristupačnost je podešen na funkciju <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste koristili uvećanje, prevlačite nagore od dna ekrana pomoću dva prsta i zadržite. Zatim odaberite uvećanje."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ova usluga nije ispravna."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Prečice za pristupačnost"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Prikaži u Brzim podešavanjima"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Crveno-zeleno"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Crveno-zeleno"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Crvena/zelena, delimično slepilo za zelenu"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Crvena/zelena, delimično slepilo za crvenu"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Plavo-žuto"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Sivilo"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitet"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Delimično slepilo za zelenu, deuteranomalija"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Delimično slepilo za crvenu, protanomalija"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nije dostupno za režim sivila ili kada je onemogućena korekcija boja"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalija"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalija"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Dodatno zatamni"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Dodatno zatamni ekran"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Tirkizna"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Žuta"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Želite li da dozvolite da <xliff:g id="SERVICE">%1$s</xliff:g> ima potpunu kontrolu nad uređajem?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> treba:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Pošto aplikacija skriva zahtev za dozvolu, Podešavanja ne mogu da verifikuju odgovor."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> traži potpunu kontrolu nad ovim uređajem. Usluga može da čita sadržaj sa ekrana i da obavlja razne zadatke za korisnike usluga pristupačnosti. Ovaj nivo kontrole nije odgovarajući za većinu aplikacija."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Potpuna kontrola je primerena za aplikacije koje vam pomažu kod usluga pristupačnosti, ali ne i za većinu aplikacija."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Pregledaj i kontroliši ekran"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Može da čita sav sadržaj na ekranu i prikazuje ga u drugim aplikacijama."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Pregledaj i obavljaj radnje"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može da prati interakcije sa aplikacijom ili senzorom hardvera i koristi aplikacije umesto vas."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nijedan}=1{1 raspored je podešen}one{# raspored je podešen}few{# rasporeda su podešena}other{# rasporeda je podešeno}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ne uznemiravaj"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritetni režimi"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Dodaj režim"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Smanjite ometanja i preuzmite kontrolu nad pažnjom pomoću režima za spavanje, rad, vožnju i sve ostalo."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Napravite svoj režim"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Dobijajte obaveštenja samo od važnih osoba i aplikacija"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Podesite raspored"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Raspored zasnovan na"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dan i vreme"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"9:00–17:00 radnim danima"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Događaji u kalendaru"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Aktivan je {mode_1}}=2{Aktivni su {mode_1} i {mode_2}}=3{Aktivni su {mode_1}, {mode_2} i {mode_3}}one{Aktivni su {mode_1}, {mode_2} i još # režim}few{Aktivni su {mode_1}, {mode_2} i još # režima}other{Aktivni su {mode_1}, {mode_2} i još # režima}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 režim može da se uključuje automatski}one{# režim može da se uključuje automatski}few{# režima mogu da se uključuju automatski}other{# režima može da se uključuje automatski}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"UKLJUČENO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nije podešeno"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Onemogućeno"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Napravite režim"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Prilagođeno"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Uključi"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Isključi"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Režim nije pronađen"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograničite prekide"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokirajte prekide i ometanja"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Podesite <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Uključite režim Ne uznemiravaj"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Zvukovi alarma i medija mogu da prekinu"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Rasporedi"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Izbriši rasporede"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Izbriši"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Preimenuj"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Izbriši"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Želite da izbrišete režim <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Izmeni"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Rasporedi"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Raspored"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automatski uključi"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Dodajte kalendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Koristite svoj kalendar"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Raspored"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Podesite raspored"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kada se isključuje automatski"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Raspored događaja"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Uključite tokom događaja za"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kada je odgovor na poziv"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Vremenski raspored"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Raspored"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> s, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Raspored"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Omogućite prekide koji proizvode zvuk"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokiraj vizuelna ometanja"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Dozvoli vizuelne signale"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Obaveštenja koja dozvoljavate"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Dodatne radnje"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filteri za obaveštenja"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Još podešavanja"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Isključeno}=1{Isključeno/1 režim može da se uključuje automatski}one{Isključeno/# režim može da se uključuje automatski}few{Isključeno/# režima mogu da se uključuju automatski}other{Isključeno/# režima može da se uključuje automatski}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Podešavanja prikaza"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opcije prikaza"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Sivilo"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"omogući tamnu temu"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Prebacite OS i aplikacije na svetao tekst na tamnoj pozadini. To može da bude lakše za oči i dovodi do znatne uštede baterije na nekim uređajima"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nema promena ekrana}=1{{effect_1}}=2{{effect_1} i {effect_2}}=3{{effect_1}, {effect_2} i {effect_3}}one{{effect_1}, {effect_2} i još #}few{{effect_1}, {effect_2} i još #}other{{effect_1}, {effect_2} i još #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ograničite šta može da vas obaveštava"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nijedan prekid se ne filtrira"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opcije prikaza za filtrirana obaveštenja"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kada je uključen režim Ne uznemiravaj"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Bez zvučnog signala za obaveštenja"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"otvaranje obaveštenja"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Omogući odlaganje obaveštenja"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Tačka za obaveštenja na ikoni aplikacije"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Skupovi obaveštenja"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Oblačići"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblačići"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ovu konverzaciju u oblačiću"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ova aplikacija ne podržava poboljšana podešavanja"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Još podešavanja"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Dostupno je još podešavanja u aplikaciji"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Prilagodljiva obaveštenja"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Koristite prilagodljiva obaveštenja"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kada dobijete mnogo obaveštenja u kratkom periodu, telefon će utišati zvuk i smanjiti broj iskačućih prozora na ekranu na najviše dva minuta. Za pozive, alarme i prioritetne konverzacije ćete i dalje dobijati obaveštenja putem vibracije, zvuka ili prikaza na ekranu, a sva obaveštenja možete lako da pronađete kada prevučete nadole sa vrha ekrana."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Utišavanje obaveštenja"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Koristi utišavanje obaveštenja"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kada primite mnogo obaveštenja u kratkom periodu, uređaj će utišati zvuk i smanjiti broj upozorenja na najviše dva minuta. To ne utiče na pozive, alarme ni prioritetne konverzacije. \n\nObaveštenja koja dobijete tokom utišavanja možete da pronađete povlačenjem nadole od vrha ekrana."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Primeni na poslovne profile"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Primenite na aplikacije poslovnog profila"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Usluge pomagača za virtuelnu realnost"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorije"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Drugo"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ova aplikacija nije postavila nijedno obaveštenje"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Prikaži nekorišćene kategorije"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Dodatna podešavanja u aplikaciji"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Prikaži nekorišćene kategorije"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Sakrij nekorišćene kategorije"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Konverzacije"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Sve konverzacije"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"sve konverzacije"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioritetne konverzacije"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritetne konverzacije"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ništa"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikacije koje mogu da prekinu funkciju Ne uznemiravaj"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Izabrane aplikacije"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nijedna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Sve"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nijedna aplikacija ne može da prekine}=1{{app_1} može da prekine}=2{{app_1} i {app_2} mogu da prekinu}=3{{app_1}, {app_2} i {app_3} mogu da prekinu}one{{app_1}, {app_2} i još # mogu da prekinu}few{{app_1}, {app_2} i još # mogu da prekinu}other{{app_1}, {app_2} i još # mogu da prekinu}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (posao)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Izračunava se…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dozvoli da aplikacije zanemaruju"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje mogu da prekidaju"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Izaberite još aplikacija"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ništa ne može da prekine"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Niko ne može da prekine"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Neki ljudi mogu da prekinu"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Ponovni pozivaoci mogu da prekidaju"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Svi ljudi mogu da prekinu"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Ponovni pozivaoci"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dozvoli ponovne pozivaoce"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Pređite samo na alarme na jedan sat sve do {time}}one{Pređite samo na alarme na # sat sve do {time}}few{Pređite samo na alarme na # sata sve do {time}}other{Pređite samo na alarme na # sati sve do {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Prebacuje u režim samo sa alarmima do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Prebacuje u režim uvek prekidaj"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Preimenuj"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Promeni ikonu"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Promeni ikonu"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Izmenite režim"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Napravite režim"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Prilagođeni režim"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naziv režima"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Događaji u kalendaru"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina vremena za spavanje"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Tokom vožnje"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Podešavanja aplikacije"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacije i podešavanja u aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Onemogućavate <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ovaj režim se nikada neće uključiti kada je onemogućen"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogući"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Omogućavate <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ovaj režim može da se uključi automatski na osnovu podešavanja"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogući"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Podesite režim koji prati redovan raspored"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Podesite režim za sinhronizaciju sa događajima u kalendaru i odgovorima na pozive"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Osmislite smirujuću rutinu spavanja. Podesite alarme, zatamnite ekran i blokirajte obaveštenja."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dajte prednost bezbednosti na putu za fokusiranu vožnju bez ometanja"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokirajte ometanja ili prekide sa svog uređaja za bolji fokus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminišite svaku mogućnost ometanja za tiho okruženje"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizujte doživljaj uređaja i podešavanja za različite korisnike"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Smanjite mogućnost prekida tako što ćete dozvoliti da vas kontaktiraju samo važne osobe i aplikacije"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Upozorenje"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Zatvori"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Šalji povratne informacije o uređaju"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Futrola"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Tabla sa podešavanjima"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Nametni režim računara"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Nameće eksperimentalni režim računara na sekundarnim ekranima"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogući prozore proizvoljnog formata"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Omogući prozore proizv. formata na sekund. ekranu"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogući aplikacije nepromenjive veličine u više prozora"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogućava da aplikacije nepromenjive veličine budu u više prozora"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Zameni funkciju nametanja tamne teme"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilni podaci"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Radi boljeg doživljaja, aplikacije i usluge mogu i dalje da traže WiFi mreže u bilo kom trenutku, čak i kada je WiFi isključen. To može da se koristi, na primer, za poboljšavanje funkcija i usluga zasnovanih na lokaciji. To možete da promenite u podešavanjima WiFi skeniranja."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Promeni"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Privremeno povezano"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Privremeno se koristi <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Koristi kačenje aplikacija"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Koristi opcije za programere"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Koristi uslugu štampanja"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Dozvoli više korisnika"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Omogući promenu korisnika"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"omogućiti, više, korisnik, dozvoliti, mnogo"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"više, korisnici, profili, ljudi, nalozi, promena, veliki broj"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Koristi bežično otklanjanje grešaka"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Izaberite šta ćete videti na ekranu kada je tablet na baznoj stanici. Uređaj može da troši više energije kada se koristi čuvar ekrana."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Prilagodi"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Prilagodite <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Morate da restartujete da biste omogućili podršku za slobodan oblik."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Morate da restartujete da biste prinudno omogućili režim za računare na sekundarnim ekranima."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Morate da restartujete da biste omogućili podršku za prozore proizvoljnog formata."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Morate da restartujete da biste ažurirali dostupnost prozora proizvoljnog formata."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Morate da restartujete da biste omogućili prozore proizvoljnog formata na sekundarnim ekranima."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Restartuj"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Restartuj kasnije"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorni zvuk"</string>
@@ -5136,9 +5207,9 @@
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurišite ograničenje brzine preuzimanja na mreži"</string>
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"Bez ograničenja"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Onemogući ograničenja za podređene procese"</string>
-    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Onemogućite ograničenja korišćenja resursa sistema za podređene procese aplikacije"</string>
+    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Onemogućava ograničenja korišćenja resursa sistema za podređene procese aplikacije"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Prinudno omogući ulogu Beleške"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Omogućite integracije pravljenja beležaka u sistemu pomoću uloge Beleške. Ako je uloga Beleške već omogućena, ne preduzimajte ništa. Zahteva restartovanje."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Omogućava integracije pravljenja beležaka u sistemu pomoću uloge Beleške. Ako je uloga Beleške već omogućena, ništa se ne dešava. Zahteva restartovanje."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Emitujte"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Emitujte <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Slušajte emitovanja koja se puštaju u blizini"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ruža"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Ljubičasta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Gotovo"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Sačuvaj"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Otkaži"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Podrazumevano"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Srednje"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Uključeno"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Isključeno"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Uključeno"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvuk: %1$d%% levo, %2$d%% desno"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvuk: %1$d%% desno, %2$d%% levo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Aplikacije koje ste instalirali mogu da vide naziv uređaja. I drugi ljudi mogu da vide naziv uređaja kada se povežete sa Bluetooth uređajima ili WiFi mrežom ili podesite WiFi hotspot."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatički rod"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Izaberite gramatički rod"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Slušajte strim"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenirajte QR kôd audio strima da biste slušali pomoću: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Lozinka ne može da se menja tokom deljenja. Da biste promenili lozinku, prvo isključite deljenje zvuka."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skener QR koda"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Podešavanja pretrage"</string>
 </resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 900449d..ec87de3 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Час сну"</item>
-    <item msgid="4152450357280759894">"За рулём"</item>
-    <item msgid="7096549258219399423">"З эфектам прысутнасці"</item>
-    <item msgid="2760716776980432977">"Пад кіраваннем"</item>
-    <item msgid="601734478369121764">"Зорка"</item>
-    <item msgid="6243809315432780521">"Каляндар"</item>
-    <item msgid="4913577903148415331">"Час"</item>
-    <item msgid="3653377604690057780">"Тэатр"</item>
-    <item msgid="3843711267408385410">"Кветка"</item>
+    <item msgid="2750940760340557109">"Паўмесяц"</item>
+    <item msgid="8513969636586738035">"Аўтамабіль"</item>
+    <item msgid="957392343846370509">"Розум чалавека"</item>
+    <item msgid="6734164279667121348">"Каляндар"</item>
+    <item msgid="4139559120353528558">"Гадзіннік"</item>
+    <item msgid="5157711296814769020">"Пляжны парасон"</item>
+    <item msgid="6635328761318954115">"Палатка"</item>
+    <item msgid="1711994778883392255">"Кінаплёнка"</item>
+    <item msgid="9097658401859604879">"Гульнявы кантролер"</item>
+    <item msgid="755931364157422565">"Трэнажорная гантэль"</item>
+    <item msgid="8894207806795738429">"Чалавек кідае мяч"</item>
+    <item msgid="2274801572149555103">"Чалавек б’е нагой"</item>
+    <item msgid="8795037201506843325">"Плаванне"</item>
+    <item msgid="3558421426169430451">"Чалавек у паходзе"</item>
+    <item msgid="7455070421232184932">"Гольф"</item>
+    <item msgid="5841773092449126508">"Інструменты майстэрні"</item>
+    <item msgid="4595330511709890409">"Партфель"</item>
+    <item msgid="8352738347856724389">"Зорка"</item>
+    <item msgid="7082783098151998721">"Кветка лотаса"</item>
+    <item msgid="5772220259409264724">"Наглядчык"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 6de3abd..c33f361 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -26,7 +26,7 @@
     <string name="device_info_protected_single_press" msgid="3810785480060743677">"Націсніце для паказу інфармацыі"</string>
     <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Каб стаць распрацоўшчыкам, вам засталося выканаць # крок.}one{Каб стаць распрацоўшчыкам, вам засталося выканаць # крок.}few{Каб стаць распрацоўшчыкам, вам засталося выканаць # крокі.}many{Каб стаць распрацоўшчыкам, вам засталося выканаць # крокаў.}other{Каб стаць распрацоўшчыкам, вам засталося выканаць # кроку.}}"</string>
     <string name="show_dev_on" msgid="2840850085134853754">"Цяпер вы - распрацоўшчык!"</string>
-    <string name="show_dev_already" msgid="7041756429707644630">"Не трэба, вы ўжо з\'яўляецеся распрацоўшчыкам."</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"Не трэба, вы ўжо з’яўляецеся распрацоўшчыкам."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Спачатку ўключыце параметры распрацоўшчыка."</string>
     <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Налады для распрацоўшчыкаў даступныя толькі адміністратарам."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Сістэма"</string>
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Прыпынена"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Невядома"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Перадпрагляд"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-код"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Паменшыць"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Павялічыць"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Заўсёды"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Налады слыхавога апарата"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Хуткае ўключэнне спецыяльных магчымасцей, сумяшчальнасць са слыхавымі апаратамі"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Набор налад"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Ваш сурдолаг не запраграмаваў ніякіх набораў налад"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Не ўдалося абнавіць набор налад"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аўдыявыхад"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Пра аўдыявыхад"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Выбар мовы для гэтай праграмы недаступны ў Наладах."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Мова можа адрознівацца ад моў, даступных у праграме. Некаторыя праграмы могуць не падтрымліваць гэту наладу."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Задаць мову для кожнай праграмы."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Ваша сістэма, праграмы і вэб-сайты выкарыстоўваюць першую з выбраных вамі моў, якая падтрымліваецца."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Ваша прылада, праграмы і вэб-сайты выкарыстоўваюць першую са спіса выбраных вамі моў, якая падтрымліваецца.\n\nТаксама многія праграмы будуць выкарыстоўваць фармат дат, лікаў і адзінак, прыняты ў рэгіёне выбранай вамі мовы. Каб змяніць рэгіён, дадайце мову, а потым выберыце патрэбны рэгіён."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Каб выбраць мову для кожнай праграмы, адкрыйце налады мовы."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Даведацца больш пра мовы, даступныя ў праграме"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Змяніць мову сістэмы на наступную: %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Выкл."</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Уключана – # праграма мае доступ да даных месцазнаходжання}one{Уключана – # праграма мае доступ да даных месцазнаходжання}few{Уключана – # праграмы маюць доступ да даных месцазнаходжання}many{Уключана – # праграм маюць доступ да даных месцазнаходжання}other{Уключана – # праграмы маюць доступ да даных месцазнаходжання}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ідзе загрузка…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Праграмы з дазволам на доступ да прылад паблізу могуць вызначаць прыблізнае месцазнаходжанне падключаных прылад."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Праграмы з дазволам на доступ да прылад паблізу могуць вызначаць прыблізнае месцазнаходжанне падключаных прылад"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Для праграм і сэрвісаў доступ да геаданых выключаны. Інфармацыя пра месцазнаходжанне вашай прылады можа адпраўляцца экстранным службам, калі вы робіце выклік на іх нумар ці адпраўляеце ім SMS."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Даведацца больш пра налады месцазнаходжання"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Каб змяніць, у ChromeOS перайдзіце ў раздзел \"Налады &gt; Прыватнасць і бяспека &gt; Налады прыватнасці &gt; Доступ да даных геалакацыі\""</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Твар і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Твар, адбітак пальца і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Твар, адбіткі пальцаў і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Разблакіраваць Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Гадзіннік дададзены"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Наладжванне гадзінніка"</string>
@@ -418,7 +422,7 @@
     <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Яшчэ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Як гэта працуе"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Гадзіннік павінен быць разблакіраваны і знаходзіцца на вашым запясці і побач з тэлефонам. Пакуль гадзіннік знаходзіцца на руцэ, яго не трэба будзе разблакіраваць зноў."</string>
-    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Калі тэлефон будзе разблакіраваны, на гадзінніку з\'явіцца апавяшчэнне. Вы можаце націснуць на яго, калі хочаце зноў заблакіраваць тэлефон."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Калі тэлефон будзе разблакіраваны, на гадзінніку з’явіцца апавяшчэнне. Вы можаце націснуць на яго, калі хочаце зноў заблакіраваць тэлефон."</string>
     <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Усё пад кантролем"</string>
     <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Вы можаце ў любы час выдаліць функцыю разблакіроўкі гадзіннікам праз Налады"</string>
     <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Націсніце на апавяшчэнне"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Даведацца больш пра разблакіроўку гадзіннікам"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Дадаць гадзіннік"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Выдаліць гадзіннік"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Разблакіроўка тварам і адбіткам пальца"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Распазнаванне твару і разблакіроўка адбіткам пальца"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Разблакіроўка тварам і адбіткам пальца для працоўнага профілю"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Патрабуецца наладжванне"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Дададзены твар і адбіткі пальцаў"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Ідзе наладжванне прыватнай прасторы…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Не ўдалося наладзіць прыватную прастору"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Паўтарыць спробу"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Выйсці"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Прыватная прастора недаступная.\nПраглядзець магчымыя прычыны"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Праглядзець магчымыя прычыны"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Выбраць новы спосаб разблакіроўкі прыватнай прасторы?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Вы можаце задаць спосаб разблакіроўкі асобна для прыватнай прасторы або выкарыстоўваць той, з дапамогай якога вы выконваеце разблакіроўку прылады"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Выкарыстоўваць спосаб, выбраны для экрана"</string>
@@ -787,7 +794,7 @@
     <string name="lockpassword_password_requires_numeric" msgid="3886918493600507548">"{count,plural, =1{Пароль павінен змяшчаць як мінімум 1 лічбу}one{Пароль павінен змяшчаць як мінімум # лічбу}few{Пароль павінен змяшчаць як мінімум # лічбы}many{Пароль павінен змяшчаць як мінімум # лічбаў}other{Пароль павінен змяшчаць як мінімум # лічбы}}"</string>
     <string name="lockpassword_password_requires_symbols" msgid="2904870551002210131">"{count,plural, =1{Пароль павінен змяшчаць як мінімум 1 спецыяльны сімвал}one{Пароль павінен змяшчаць як мінімум # спецыяльны сімвал}few{Пароль павінен змяшчаць як мінімум # спецыяльныя сімвалы}many{Пароль павінен змяшчаць як мінімум # спецыяльных сімвалаў}other{Пароль павінен змяшчаць як мінімум # спецыяльнага сімвала}}"</string>
     <string name="lockpassword_password_requires_nonletter" msgid="1185342065898300006">"{count,plural, =1{Пароль павінен змяшчаць як мінімум 1 сімвал, які не з’яўляецца літарай}one{Пароль павінен змяшчаць як мінімум # сімвал, які не з’яўляецца літарай}few{Пароль павінен змяшчаць як мінімум # сімвалы, якія не з’яўляюцца літарамі}many{Пароль павінен змяшчаць як мінімум # сімвалаў, якія не з’яўляюцца літарамі}other{Пароль павінен змяшчаць як мінімум # сімвала, якія не з’яўляюцца літарамі}}"</string>
-    <string name="lockpassword_password_requires_nonnumerical" msgid="389687423482993365">"{count,plural, =1{Пароль павінен змяшчаць як мінімум 1 сімвал, які не з\'яўляецца лічбай}one{Пароль павінен змяшчаць як мінімум # сімвал, які не з\'яўляецца лічбай}few{Пароль павінен змяшчаць як мінімум # сімвалы, якія не з\'яўляюцца лічбамі}many{Пароль павінен змяшчаць як мінімум # сімвалаў, якія не з\'яўляюцца лічбамі}other{Пароль павінен змяшчаць як мінімум # сімвала, якія не з\'яўляюцца лічбамі}}"</string>
+    <string name="lockpassword_password_requires_nonnumerical" msgid="389687423482993365">"{count,plural, =1{Пароль павінен змяшчаць як мінімум 1 сімвал, які не з’яўляецца лічбай}one{Пароль павінен змяшчаць як мінімум # сімвал, які не з’яўляецца лічбай}few{Пароль павінен змяшчаць як мінімум # сімвалы, якія не з’яўляюцца лічбамі}many{Пароль павінен змяшчаць як мінімум # сімвалаў, якія не з’яўляюцца лічбамі}other{Пароль павінен змяшчаць як мінімум # сімвала, якія не з’яўляюцца лічбамі}}"</string>
     <string name="lockpassword_password_recently_used" msgid="5341218079730167191">"Адміністратар прылады не дазваляе выкарыстоўваць апошні пароль"</string>
     <string name="lockpassword_pin_no_sequential_digits" msgid="5843639256988031272">"Забаронена ўводзіць узрастаючую, убываючую або паўторную паслядоўнасць лічбаў"</string>
     <string name="lockpassword_confirm_label" msgid="560897521093566777">"Пацвердзіць"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Перазапусціць прыладу?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Падрабязнае вядзенне журналаў NFC прызначана толькі для мэт распрацоўкі. У справаздачы пра памылкі ўключаюцца дадатковыя даныя NFC, якія могуць утрымліваць прыватную інфармацыю. Перазапусціце прыладу, каб змяніць гэту наладу."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Перазапусціць"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Уключаны"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Выключаны"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Знешні дысплэй"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Выкарыстоўваць знешні дысплэй"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Раздзяляльнасць дысплэя"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Знешні дысплэй адключаны"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Паварот"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Стандартна"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Змяненне налад павароту або раздзяляльнасці можа прывесці да спынення актыўных праграм"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Для дубліравання экрана неабходна падключыць прыладу да знешняга дысплэя"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Дадатковыя параметры"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Трансляцыя"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"адлюстраванне"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Уключыць бесправадны дысплей"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Адаптыўныя"</string>
     <string name="brightness" msgid="6216871641021779698">"Узровень яркасці"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Адаптыўная яркасць"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Інфармацыя пра адаптыўную яркасць"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Яркасць экрана будзе мяняцца аўтаматычна, у залежнасці ад наваколля і вашых дзеянняў. Можна пераключаць паўзунок уручную, каб дастасаваць функцыю да вашых параметраў."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Уключана"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Выключана"</string>
@@ -1394,14 +1416,14 @@
     <string name="storage_unmount_failure" msgid="3796912279003790607">"Не атрымалася бяспечна выняць <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="storage_rename_title" msgid="5911285992205282312">"Пераймянуйце сховішча"</string>
     <string name="storage_dialog_unmountable" msgid="1761107904296941687">"Гэта <xliff:g id="NAME_0">^1</xliff:g> пашкоджана. \n\nКаб выкарыстоўваць <xliff:g id="NAME_1">^1</xliff:g>, спачатку трэба яе наладзіць."</string>
-    <string name="storage_internal_format_details" msgid="2399034372813686846">"Вы можаце адфармаціраваць гэту SD-карту і захаваць на яе фота, відэа, музыку і іншае змесціва, каб атрымліваць да яго доступ з іншых прылад. \n\n"<b>"Усе даныя на гэтай SD-карце будуць сцёрты."</b>" \n\n"<b>"Перш чым пачаць фармаціраванне"</b>" \n\n"<b>"Стварыце рэзервовыя копіі фота і іншых мультымедыйных файлаў."</b>" \nПерамясціце файлы мультымедыя ў іншае сховішча на гэтай прыладзе ці праз кабель USB – на камп\'ютар. \n\n"<b>"Стварыце рэзервовыя копіі праграм."</b>" \nУсе праграмы, захаваныя на носьбіце \"<xliff:g id="NAME">^1</xliff:g>\", будуць выдалены, а іх даныя – сцёрты. Каб захаваць праграмы, перамясціце іх у іншае сховішча на гэтай прыладзе."</string>
+    <string name="storage_internal_format_details" msgid="2399034372813686846">"Вы можаце адфармаціраваць гэту SD-карту і захаваць на яе фота, відэа, музыку і іншае змесціва, каб атрымліваць да яго доступ з іншых прылад. \n\n"<b>"Усе даныя на гэтай SD-карце будуць сцёрты."</b>" \n\n"<b>"Перш чым пачаць фармаціраванне"</b>" \n\n"<b>"Стварыце рэзервовыя копіі фота і іншых мультымедыйных файлаў."</b>" \nПерамясціце файлы мультымедыя ў іншае сховішча на гэтай прыладзе ці праз кабель USB – на камп’ютар. \n\n"<b>"Стварыце рэзервовыя копіі праграм."</b>" \nУсе праграмы, захаваныя на носьбіце \"<xliff:g id="NAME">^1</xliff:g>\", будуць выдалены, а іх даныя – сцёрты. Каб захаваць праграмы, перамясціце іх у іншае сховішча на гэтай прыладзе."</string>
     <string name="storage_internal_unmount_details" msgid="487689543322907311"><b>"Калі вы вымеце гэту <xliff:g id="NAME_0">^1</xliff:g>, дадаткі, якія захоўваюцца на ёй, перастануць працаваць, а медыя-файлы, якія захоўваюцца на ёй, не будуць даступныя, пакуль сховішча не будзе ўстаўлена паўторна."</b>\n\n"Гэта <xliff:g id="NAME_1">^1</xliff:g> адфарматавана для працы толькі на гэтай прыладзе. Яна не будзе працаваць з іншымі прыладамі."</string>
     <string name="storage_internal_forget_details" msgid="5606507270046186691">"Каб выкарыстоўваць дадаткі, фатаграфіі або даныя на гэтай <xliff:g id="NAME">^1</xliff:g>, устаўце яе паўторна. \n\nАкрамя таго, вы можаце ігнараваць гэта сховішча, калі прылада недаступна. \n\nКалі вы праігнаруеце гэту прыладу, усе даныя на ёй будуць страчаныя назаўсёды. \n\nВы можаце пераўсталяваць дадаткі пазней, але іх даныя, якія захоўваліся на гэтай прыладзе, будуць страчаныя."</string>
     <string name="storage_internal_forget_confirm_title" msgid="379238668153099015">"Ігнараваць <xliff:g id="NAME">^1</xliff:g>?"</string>
     <string name="storage_internal_forget_confirm" msgid="5752634604952674123">"Усе дадаткі, фатаграфіі і даныя, якія захоўваюцца на гэтай <xliff:g id="NAME">^1</xliff:g>, будуць страчаны назаўсёды."</string>
     <string name="storage_detail_dialog_system" msgid="7461009051858709479">"Сістэмныя файлы ўключаюць у сябе файлы, неабходныя для працы Android <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="storage_os_detail_dialog_system" msgid="1423073052313067844">"Сюды ўваходзіць аперацыйная сістэма і файлы, неабходныя для ўстойлівай работы тэлефона. Каб захаваць цэласнасць гэтых файлаў, доступ да іх забаронены."</string>
-    <string name="storage_other_files_detail_dialog_system" msgid="8241153880150866635">"Сюды ўваходзяць кэш і іншыя часовыя файлы, неабходныя для работы аперацыйнай сістэмы. З часам аб\'ём сховішча, які выкарыстоўваецца, можа змяняцца."</string>
+    <string name="storage_other_files_detail_dialog_system" msgid="8241153880150866635">"Сюды ўваходзяць кэш і іншыя часовыя файлы, неабходныя для работы аперацыйнай сістэмы. З часам аб’ём сховішча, які выкарыстоўваецца, можа змяняцца."</string>
     <string name="storage_system_label" msgid="8320948583086758295">"Сістэма"</string>
     <string name="storage_wizard_guest" msgid="5813419895687733649">"У гасцявым рэжыме нельга фармаціраваць SD-карты"</string>
     <string name="storage_wizard_format_progress_title" msgid="9170393018855949774">"Фарматаванне <xliff:g id="NAME">^1</xliff:g>…"</string>
@@ -1465,7 +1487,7 @@
     <string name="carrier_enabled" msgid="664074151573150130">"Уключыць/выключыць APN"</string>
     <string name="carrier_enabled_summaryOn" msgid="5212067975273903381">"APN уключаны"</string>
     <string name="carrier_enabled_summaryOff" msgid="8541959867953738521">"APN адключаны"</string>
-    <string name="bearer" msgid="3231443241639159358">"Прад\'яўнік"</string>
+    <string name="bearer" msgid="3231443241639159358">"Прад’яўнік"</string>
     <string name="network_type" msgid="748590707422733595">"Тып сеткі"</string>
     <string name="network_type_unspecified" msgid="7756349656194518725">"Не ўказана"</string>
     <string name="mvno_type" msgid="4734654257494971247">"Тып MVNO"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Іншыя версіі"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Спецыяльныя магчымасці"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Фізічная клавіятура"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Выкарыстоўваць экранную клавіятуру"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Захоўваць яе на экране ў той час, калі фізічная клавіятура актыўная"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ігнараванне паўторнага націскання"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Паўторныя націсканні адной і той жа клавішы, ажыццёўленыя на працягу <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс, ігнаруюцца"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Запавольванне рэакцыі на націсканне"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Рэгістрацыя націскання клавішы ажыццяўляецца пасля заканчэння зададзенага часу: <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс"</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="2396247040177734245">"Выкарыстоўвайце фізічную клавіятуру, каб кіраваць мышшу"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Змяніць стыль заліўкі на жоўты"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Змяніць стыль заліўкі на ружовы"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Змяніць стыль заліўкі на сіні"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Контур паказальніка"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Белы"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Чорны"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Няма"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Даведацца пра жэсты сэнсарнай панэлі"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"сэнсарная панэль, мыш, курсор, прагартаць, правесці пальцам, націснуць правай кнопкай мышы, націснуць, націсканне, паказальнік"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"націснуць правай кнопкай мышы, дакрануцца, націснуць, дотык"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Выбрана карыстальнікам: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Маўленне"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Хуткасць указальніка"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Памер паказальніка"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Паменшыць памер паказальніка"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Павялічыць памер паказальніка"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Прылада кiравання гульнёй"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Перанакіраванне вібрасігналу"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Адпраўляць вібрасігнал на гульнявы кантролер пры падключэнні."</string>
@@ -2029,7 +2058,7 @@
     <string name="display_category_title" msgid="6638191682294461408">"Дысплэй"</string>
     <string name="accessibility_color_and_motion_title" msgid="2323301706545305874">"Колер і рух"</string>
     <string name="accessibility_color_contrast_title" msgid="5757724357142452378">"Кантраснасць колераў"</string>
-    <string name="accessibility_color_contrast_intro" msgid="7795090401101214930">"Чым вышэйшы кантраст, тым больш прыметнымі з\'яўляюцца тэкст, кнопкі і значкі. Падбярыце такі кантраст, які найбольш падыходзіць вам."</string>
+    <string name="accessibility_color_contrast_intro" msgid="7795090401101214930">"Чым вышэйшы кантраст, тым больш прыметнымі з’яўляюцца тэкст, кнопкі і значкі. Падбярыце такі кантраст, які найбольш падыходзіць вам."</string>
     <string name="color_contrast_note" msgid="7592686603372566198">"Некаторыя праграмы могуць пакуль што не падтрымліваць усе налады кантрасту колераў і тэксту"</string>
     <string name="color_contrast_preview" msgid="6791430227535363883">"Перадпрагляд"</string>
     <string name="color_contrast_preview_sender_name" msgid="8641943417589238147">"Алена, Адам"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Усё роўна працягнуць"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Скасаваць"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Налады павелічэння"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Зрушэнне адным пальцам"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Перамяшчайце лупу адным пальцам"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Для перамяшчэння па экране перасоўвайце адзін палец"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Вобласць павелічэння перацягваецца адным пальцам."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Вобласць павелічэння перацягваецца двума пальцамі."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Недаступна, калі павялічваецца толькі частка экрана"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Дакраніцеся да кнопкі, каб павялічыць маштаб"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Хутка павялічвайце маштаб экрана"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Каб павялічыць маштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Скарыстайце хуткі доступ для запуску функцыі павелічэння&lt;br/&gt; {1,number,integer}. Націсніце на экран&lt;br/&gt; {2,number,integer}. Каб перамясціць выяву, перацягніце яе двума пальцамі&lt;br/&gt; {3,number,integer}. Звядзіце ці развядзіце два пальцы для змены маштабу&lt;br/&gt; {4,number,integer}. Скарыстайце хуткі доступ, каб выключыць функцыю павелічэння&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Каб часова павялічыць маштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Упэўніцеся, што ў якасці тыпу павелічэння выбраны поўнаэкранны рэжым&lt;br/&gt; {1,number,integer}. Скарыстайце хуткі доступ для запуску функцыі павелічэння&lt;br/&gt; {2,number,integer}. Утрымлівайце палец націснутым у любым месцы экрана&lt;br/&gt; {3,number,integer}. Каб перамясціць выяву, перацягніце яе пальцам&lt;br/&gt; {4,number,integer}. Падніміце палец, каб спыніць функцыю павелічэння"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Каб павялічыць маштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Скарыстайце хуткі доступ для запуску функцыі павелічэння&lt;br/&gt; {1,number,integer}. Націсніце на экран&lt;br/&gt; {2,number,integer}. Для перамяшчэння па экране перасоўвайце два пальцы&lt;br/&gt; {3,number,integer}. Звядзіце ці развядзіце два пальцы для змены маштабу&lt;br/&gt; {4,number,integer}. Скарыстайце хуткі доступ для выключэння функцыі павелічэння&lt;br/&gt;&lt;br/&gt; Таксама вы можаце часова павялічыць маштаб і выканаць іншыя дзеянні."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Каб павялічыць маштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Скарыстайце хуткі доступ для запуску функцыі павелічэння&lt;br/&gt; {1,number,integer}. Націсніце на экран&lt;br/&gt; {2,number,integer}. Для перамяшчэння па экране перасоўвайце адзін або два пальцы&lt;br/&gt; {3,number,integer}. Звядзіце ці развядзіце два пальцы для змены маштабу&lt;br/&gt; {4,number,integer}. Скарыстайце хуткі доступ для выключэння функцыі павелічэння&lt;br/&gt;&lt;br/&gt; Таксама вы можаце часова павялічыць маштаб і выканаць іншыя дзеянні."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Калі ўключана функцыя павелічэння, вы можаце павялічыць маштаб на экране.\n\n"<b>"Для гэтага"</b>" запусціце функцыю павелічэння, а пасля націсніце ў любым месцы экрана.\n"<ul><li>"Каб прагартаць, перацягніце пальцамі (двума ці больш)."</li>\n<li>"Каб адрэгуляваць маштаб, звядзіце ці развядзіце пальцы (два ці больш)."</li></ul>\n\n<b>"Каб часова змяніць маштаб"</b>", запусціце функцыю павелічэння, потым утрымлівайце націснутым любое месца на экране.\n"<ul><li>"Перацягніце для навігацыі па экране."</li>\n<li>"Падыміце палец, каб паменшыць маштаб."</li></ul>\n\n"Павелічэнне маштабу клавіятуры ці панэлі навігацыі не прадугледжана."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Старонка <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> з <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Хуткае ўключэнне: кнопка спецыяльных магчымасцей"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Правядзіце па экране двума пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце двума пальцамі ўверх і ўтрымлівайце іх на экране."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Правядзіце па экране трыма пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце трыма пальцамі ўверх і ўтрымлівайце іх на экране."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Правядзіце пальцам уверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце пальцам знізу ўверх і ўтрымлівайце яго на экране.}one{Правядзіце # пальцам уверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце # пальцам знізу ўверх і ўтрымлівайце іх на экране.}few{Правядзіце # пальцамі ўверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце # пальцамі знізу ўверх і ўтрымлівайце іх на экране.}many{Правядзіце # пальцамі ўверх ад ніжняга краю экрана. Каб пераключыцца паміж функцыямі, правядзіце # пальцамі знізу ўверх і ўтрымлівайце іх на экране.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Двойчы націсніце на экран двума пальцамі"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Хутка дакраніцеся да экрана %1$d разы. Гэта можа запаволіць работу прылады."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двайны дотык %1$d пальцамі"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Хутка націсніце на экран {0,number,integer} разы двума пальцамі"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройчы націснуць на экран"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"трайны дотык"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Хутка націсніце на экран некалькі разоў ({0,number,integer}). Выкарыстанне гэтай каманды можа запаволіць працу прылады"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Пашыраныя налады"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Для кнопкі \"Спецыяльныя магчымасці\" зададзена наступнае: <xliff:g id="SERVICE">%1$s</xliff:g>. Каб павялічваць маштаб з яе дапамогай, краніце і ўтрымлівайце кнопку \"Спецыяльныя магчымасці\", а потым выберыце функцыю павелічэння."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Жэст спецыяльных магчымасцей усталяваны для службы \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Каб выкарыстоўваць функцыю павелічэння, правядзіце двума пальцамі па экране знізу ўверх і затрымайце іх. Пасля выберыце функцыю павелічэння."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Сэрвіс працуе некарэктна."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Хуткія каманды спецыяльных магчымасцей"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Паказваць у хуткіх наладах"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Чырвоны-зялёны"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Чырвоны-зялёны"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Чырвоны-зялёны, горшае ўспрыманне зялёнага"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Чырвоны-зялёны, горшае ўспрыманне чырвонага"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Сіні-жоўты"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Адценні шэрага"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Інтэнсіўнасць"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Парушанае ўспрыманне зялёнага, дэйтаранамалія"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Парушанае ўспрыманне чырвонага, протанамалія"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недаступна ў рэжыме \"Адценні шэрага\", ці калі выключана карэкцыя колераў"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Дэйтэранамалія"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Пратанамалія"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Трытанамалія"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Дадатковае памяншэнне яркасці"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Дадаткова паменшыць яркасць экрана"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Блакітны"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Жоўты"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Пурпурны"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>: дазволіць сэрвісу мець поўны кантроль над вашай прыладай?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> патрабуе:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Паверх запыту дазволу адлюстроўваецца дадатак, таму ваш адказ не можа быць правераны ў Наладах."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Праграма <xliff:g id="SERVICE">%1$s</xliff:g> запытвае поўны кантроль над гэтай прыладай. Яна можа чытаць змесціва экрана і дзейнічаць ад імя карыстальнікаў, якім патрабуюцца спецыяльныя магчымасці. Такі ўзровень доступу не прызначаны для большасці праграм."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Поўны кантроль прызначаны для сэрвісаў спецыяльных магчымасцей, аднак не падыходзіць для большасці праграм."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Прагляд экрана і кіраванне ім"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Функцыя можа распазнаваць усё змесціва на экране і адлюстроўваць яго паверх іншых праграм."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Прагляд і выкананне дзеянняў"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Гэта функцыя можа адсочваць вашы ўзаемадзеянні з праграмай ці датчыкам апаратнага забеспячэння і ўзаемадзейнічаць з праграмамі ад вашага імя."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дазволіць"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Адмовіць"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Выключыць"</string>
@@ -2612,7 +2632,7 @@
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Усяго: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"У фонавым рэжыме: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_screen_time" msgid="3973865893520804115">"Час карыстання прыладай: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <string name="battery_usage_screen_footer_empty" msgid="3301144846133808193">"Даныя пра выкарыстанне зараду з\'явяцца праз некалькі гадзін пасля поўнай зарадкі"</string>
+    <string name="battery_usage_screen_footer_empty" msgid="3301144846133808193">"Даныя пра выкарыстанне зараду з’явяцца праз некалькі гадзін пасля поўнай зарадкі"</string>
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"цяпер"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>-<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_timestamps_content_description" msgid="1927748134271595985">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
@@ -2633,7 +2653,7 @@
     <string name="battery_cycle_count_footer" msgid="3642121059800373545">"У сувязі з праверкай якасці перад адпраўкай колькасць цыклаў можа не быць нулявой пры першым выкарыстанні"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"Статыстыка працэсаў"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Падрабязная статыстыка запушчаных працэсаў"</string>
-    <string name="app_memory_use" msgid="7559666138324410666">"Аб\'ём выкарыстання памяці"</string>
+    <string name="app_memory_use" msgid="7559666138324410666">"Аб’ём выкарыстання памяці"</string>
     <string name="process_stats_total_duration" msgid="3898635541254636618">"<xliff:g id="USEDRAM">%1$s</xliff:g> з <xliff:g id="TOTALRAM">%2$s</xliff:g> выкарыстана за апошнія <xliff:g id="TIMEDURATION">%3$s</xliff:g>"</string>
     <string name="process_stats_total_duration_percentage" msgid="4391502694312709148">"<xliff:g id="PERCENT">%1$s</xliff:g> аператыўнай памяці выкарыстана за <xliff:g id="TIMEDURATION">%2$s</xliff:g>"</string>
     <string name="process_stats_type_background" msgid="4094034441562453522">"Фонавыя"</string>
@@ -3066,7 +3086,7 @@
     <string name="user_picture_title" msgid="7176437495107563321">"Iдэнтыфiкатар фота"</string>
     <string name="extreme_threats_title" msgid="1098958631519213856">"Надзвычайныя пагрозы"</string>
     <string name="extreme_threats_summary" msgid="3560742429496902008">"Атрымліваць абвесткі аб надзвыч. пагрозах для жыцця і маёмасці"</string>
-    <string name="severe_threats_title" msgid="8962959394373974324">"Сур\'ёзныя пагрозы"</string>
+    <string name="severe_threats_title" msgid="8962959394373974324">"Сур’ёзныя пагрозы"</string>
     <string name="severe_threats_summary" msgid="4982256198071601484">"Атрым. абвесткі аб сур’ёзных пагрозах для жыцця і маёмасці"</string>
     <string name="amber_alerts_title" msgid="5238275758191804575">"Абвесткі сістэмы AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Атрымліваць бюлетэні пра выкраданні дзяцей"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ніводнага}=1{Зададзены 1 расклад}one{Зададзены # расклад}few{Зададзена # расклады}many{Зададзена # раскладаў}other{Зададзена # раскладу}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Не турбаваць"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Прыярытэтныя рэжымы"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Дадаць рэжым"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Рэжымы для сну, працы, ваджэння і іншыя дапамогуць звесці да мінімуму ўсё, што адцягвае ўвагу, і засяродзіцца на тым, што важна ў гэты момант."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Стварыце ўласны рэжым"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Атрымліваць апавяшчэнні толькі ад важных людзей і праграм"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Задаць расклад"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Расклад заснаваны на:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Дзень і час"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"з 9:00 да 17:00 па будных днях\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Падзеі ў календары"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Рэжым \"{mode_1}\" актыўны}=2{Рэжымы \"{mode_1}\" і \"{mode_2}\" актыўныя}=3{Рэжымы \"{mode_1}\", \"{mode_2}\" і \"{mode_3}\" актыўныя}one{Рэжымы \"{mode_1}\", \"{mode_2}\" і яшчэ # актыўныя}few{Рэжымы \"{mode_1}\", \"{mode_2}\" і яшчэ # актыўныя}many{Рэжымы \"{mode_1}\", \"{mode_2}\" і яшчэ # актыўныя}other{Рэжымы \"{mode_1}\", \"{mode_2}\" і яшчэ # актыўныя}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Можна аўтаматычна ўключыць 1 рэжым}one{Можна аўтаматычна ўключыць # рэжым}few{Можна аўтаматычна ўключыць # рэжымы}many{Можна аўтаматычна ўключыць # рэжымаў}other{Можна аўтаматычна ўключыць # рэжыму}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"УКЛЮЧАНА"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Не зададзена"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Адключана"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Стварыць рэжым"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Карыстальніцкі"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Уключыць"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Выключыць"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Рэжым не знойдзены"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Абмежаванне колькасці непатрэбных апавяшчэнняў"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Заблакіраваць усё, што перашкаджае і адцягвае ўвагу"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Наладзіць рэжым \"<xliff:g id="MODE">%1$s</xliff:g>\""</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Уключэнне рэжыму \"Не турбаваць\""</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Гэты рэжым не распаўсюджваецца на сігналы будзільнікаў і гукі мультымедыя"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Расклады"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Выдаліць расклады"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Выдаліць"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Перайменаваць"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Выдаліць"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Выдаліць рэжым \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Змяніць"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Расклады"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Расклад"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Уключаць аўтаматычна"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Дадайце каляндар"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Перайсці да календара"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Па раскладзе"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Задаць расклад"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Калі ўключаць аўтаматычна:"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Расклад падзеі"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Уключаць падчас падзей:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Калі адказ на запрашэнне:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Расклад па часе"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Расклад"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> гадз <xliff:g id="MINUTES">%2$d</xliff:g> хв"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Расклад"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Дазволіць гукавыя апавяшчэнні"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Блакіроўка візуальных апавяшчэнняў"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Дазволіць візуальныя сігналы"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Апавяшчэнні, якія будуць адлюстроўвацца"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Дадатковыя дзеянні"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Фільтры апавяшчэнняў"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Дадатковыя налады"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Выключана}=1{Выключана / аўтаматычна можна ўключыць 1 рэжым}one{Выключана / аўтаматычна можна ўключыць # рэжым}few{Выключана / аўтаматычна можна ўключыць # рэжымы}many{Выключана / аўтаматычна можна ўключыць # рэжымаў}other{Выключана / аўтаматычна можна ўключыць # рэжыму}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Налады адлюстравання"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Параметры адлюстравання"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Адценні шэрага"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"уключыць цёмную тэму"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Пераключэнне АС і праграм на адлюстраванне светлага тэксту на цёмным фоне, што дазваляе знізіць нагрузку на зрок і на некаторых прыладах значна эканоміць зарад акумулятара"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Няма змен у адлюстраванні}=1{{effect_1}}=2{{effect_1} і {effect_2}}=3{{effect_1}, {effect_2} і {effect_3}}one{{effect_1}, {effect_2} і яшчэ #}few{{effect_1}, {effect_2} і яшчэ #}many{{effect_1}, {effect_2} і яшчэ #}other{{effect_1}, {effect_2} і яшчэ #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Вы можаце абмежаваць атрыманне апавяшчэнняў"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Апавяшчэнні не адфільтроўваюцца"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Параметры адлюстравання для адфільтраваных апавяшчэнняў"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Калі рэжым \"Не турбаваць\" уключаны"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Апавяшчэнні без гуку"</string>
@@ -3431,7 +3475,7 @@
     <string name="zen_custom_settings_notifications_header" msgid="7635280645171095398">"Апавяшчэнні"</string>
     <string name="zen_custom_settings_duration_header" msgid="5065987827522064943">"Працягласць"</string>
     <string name="zen_msg_event_reminder_title" msgid="5362025129007417554">"Паведамленні, падзеі і напаміны"</string>
-    <string name="zen_msg_event_reminder_footer" msgid="2700459146293750387">"Калі ўключаны рэжым \"Не турбаваць\", выключаецца гук для паведамленняў, напамінаў і падзей, акрамя выбраных вышэй элементаў. Вы можаце змяніць налады паведамленняў, каб дазволіць сябрам, членам сям\'і і іншым кантактам звязацца з вамі."</string>
+    <string name="zen_msg_event_reminder_footer" msgid="2700459146293750387">"Калі ўключаны рэжым \"Не турбаваць\", выключаецца гук для паведамленняў, напамінаў і падзей, акрамя выбраных вышэй элементаў. Вы можаце змяніць налады паведамленняў, каб дазволіць сябрам, членам сям’і і іншым кантактам звязацца з вамі."</string>
     <string name="zen_onboarding_ok" msgid="8764248406533833392">"Гатова"</string>
     <string name="zen_onboarding_settings" msgid="2815839576245114342">"Налады"</string>
     <string name="zen_onboarding_new_setting_title" msgid="8813308612916316657">"Апавяшчэнні без візуальных элементаў і гуку"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"адкрыць апавяшчэнне"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Дазволіць адкладванне апавяшчэнняў"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Значок апавяшчэнняў на значку праграмы"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Групы апавяшчэнняў"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Усплывальныя чаты"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Усплывальныя чаты"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Паказваць гэту размову ў выглядзе ўсплывальных апавяшчэнняў"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Адаптыўныя апавяшчэнні"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Выкарыстоўваць адаптыўныя апавяшчэнні"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Пры атрыманні мноства апавяшчэнняў за кароткі час тэлефон паменшыць іх гучнасць і абмяжуе ўсплывальныя вокны на экране на перыяд да дзвюх хвілін. Для выклікаў, будзільнікаў і прыярытэтных размоў будуць па-ранейшаму ўключаны вібрацыя, гукавы сігнал або адлюстраванне на экране. Усе атрыманыя апавяшчэнні будзе лёгка знайсці, правёўшы пальцам уніз ад верхняга краю экрана."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Прымяняць да праграм працоўнага профілю"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Дапаможныя VR-сэрвісы"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Катэгорыі"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Іншае"</string>
     <string name="no_channels" msgid="4716199078612071915">"Гэта праграма не размяшчала ніякіх апавяшчэнняў"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Паказаць катэгорыі, якія не выкарыстоўваюцца"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Дадатковыя налады ў праграме"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Паказаць неўжывальныя катэгорыі"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Схаваць неўжывальныя катэгорыі"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Размовы"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Усе размовы"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"усе размовы"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Прыярытэтныя размовы"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"прыярытэтныя размовы"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ніякія"</string>
@@ -3723,7 +3770,7 @@
     <string name="zen_mode_calls_list" msgid="5044730950895749093">"выклікі"</string>
     <string name="zen_mode_calls_header" msgid="8379225445095856726">"Гэты рэжым не распаўсюджваецца на наступныя выклікі"</string>
     <string name="zen_mode_calls_footer" msgid="2008079711083701243">"Каб прылада апавяшчала пра дазволеныя выклікі гукавым сігналам, праверце адпаведную наладу"</string>
-    <string name="zen_mode_custom_calls_footer" msgid="6521283204577441053">"Для раскладу \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\" прыём выклікаў заблакіраваны. Вы можаце змяніць налады, каб дазволіць сябрам, членам сям\'і і іншым кантактам звязвацца з вамі."</string>
+    <string name="zen_mode_custom_calls_footer" msgid="6521283204577441053">"Для раскладу \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\" прыём выклікаў заблакіраваны. Вы можаце змяніць налады, каб дазволіць сябрам, членам сям’і і іншым кантактам звязвацца з вамі."</string>
     <string name="zen_mode_starred_contacts_title" msgid="630299631659575589">"Пазначаныя кантакты"</string>
     <string name="zen_mode_starred_contacts_summary_contacts" msgid="1629467178444895094">"{count,plural,offset:2 =0{Ніводнага}=1{{contact_1}}=2{{contact_1} і {contact_2}}=3{{contact_1}, {contact_2} і {contact_3}}one{{contact_1}, {contact_2} і яшчэ #}few{{contact_1}, {contact_2} і яшчэ #}many{{contact_1}, {contact_2} і яшчэ #}other{{contact_1}, {contact_2} і яшчэ #}}"</string>
     <string name="zen_mode_starred_contacts_empty_name" msgid="2906404745550293688">"(Без назвы)"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Гэты рэжым не распаўсюджваецца на наступныя праграмы"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Выбраныя праграмы"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ніякія"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Усе"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Рэжым \"Не турбаваць\" распаўсюджваецца на ўсе праграмы}=1{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграму \"{app_1}\"}=2{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\" і \"{app_2}\"}=3{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і \"{app_3}\"}one{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграму}few{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграмы}many{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграм}other{Рэжым \"Не турбаваць\" не распаўсюджваецца на праграмы \"{app_1}\", \"{app_2}\" і яшчэ на # праграмы}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (праца)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Вядзецца падлік…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дазволіць праграмам перавызначаць"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Гэты рэжым не распаўсюджваецца на наступныя праграмы"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Выбраць іншыя праграмы"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Рэжым \"Не турбаваць\" не распаўсюджваецца на паўторныя выклікі"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Гэты рэжым не распаўсюджваецца на людзей"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Паўторныя выклікі"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дазволіць паўторныя выклікі"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Пераключэнне на рэжым \"Толькі будзільнікі\" на адну гадзіну да {time}}one{Пераключэнне на рэжым \"Толькі будзільнікі\" на # гадзіну да {time}}few{Пераключэнне на рэжым \"Толькі будзільнікі\" на # гадзіны да {time}}many{Пераключэнне на рэжым \"Толькі будзільнікі\" на # гадзін да {time}}other{Пераключэнне на рэжым \"Толькі будзільнікі\" на # гадзіны да {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Пераключыцца на рэжым «толькі будзільнікі» да <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Уключыць усе апавяшчэнні"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Перайменаваць"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Змяніць значок"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Змяніць значок"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Змяніць рэжым"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Стварыць рэжым"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Карыстальніцкі рэжым"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Назва рэжыму"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Падзеі ў календары"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Парадак дзеянняў перад сном"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"За рулём"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Налады праграмы"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Інфармацыя і налады ў праграме \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Пад кіраваннем праграмы \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Адключыць рэжым \"<xliff:g id="MODE_NAME">%1$s</xliff:g>\"?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Калі гэты рэжым выключаны, ён ніколі не будзе ўключацца"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Адключыць"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Уключыць рэжым \"<xliff:g id="MODE_NAME">%1$s</xliff:g>\"?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Гэты рэжым можа ўключацца аўтаматычна ў адпаведнасці з наладамі"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Уключыць"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Наладзьце рэжым, які адпавядае звычайнаму раскладу"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Наладзьце рэжым для сінхранізацыі з падзеямі календара і адказамі на запрашэнні"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Распрацуйце дзеянні, якія будуць дапамагаць супакоіцца перад сном. Наладзьце будзільнікі, паменшыце яркасць экрана і заблакіруйце апавяшчэнні."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Для ўважлівага і засяроджанага ваджэння пастаўце на першае месца бяспеку на дарозе"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Заўвага"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Закрыць"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Адправіць водгук пра гэту прыладу"</string>
@@ -4221,7 +4292,7 @@
     <string name="notification_log_details_alerted" msgid="5285078967825048406">"апавяшчэнне з гукам"</string>
     <string name="notification_log_channel" msgid="3406738695621767204">"версія"</string>
     <string name="notification_log_details_ranking_null" msgid="6607596177723101524">"Аб’ект ранжыравання адсутнічае."</string>
-    <string name="notification_log_details_ranking_none" msgid="2484105338466675261">"Аб\'ект ранжыравання не ўтрымлівае гэты сімвал."</string>
+    <string name="notification_log_details_ranking_none" msgid="2484105338466675261">"Аб’ект ранжыравання не ўтрымлівае гэты сімвал."</string>
     <string name="display_cutout_emulation" msgid="1421648375408281244">"Выраз на экране"</string>
     <string name="display_cutout_emulation_keywords" msgid="4506580703807358127">"выраз дысплея, выемка"</string>
     <string name="overlay_option_device_default" msgid="7986355499809313848">"Стандартная налада"</string>
@@ -4310,7 +4381,7 @@
     <string name="one_handed_action_pull_down_screen_title" msgid="9187194533815438150">"Перацягнуць экран у зону доступу"</string>
     <string name="one_handed_action_pull_down_screen_summary" msgid="7582432473450036628">"Верхняя частка экрана перамесціцца ў зону доступу вялікага пальца."</string>
     <string name="one_handed_action_show_notification_title" msgid="8789305491485437130">"Паказаць апавяшчэнні"</string>
-    <string name="one_handed_action_show_notification_summary" msgid="8281689861222000436">"З\'явяцца апавяшчэнні і налады."</string>
+    <string name="one_handed_action_show_notification_summary" msgid="8281689861222000436">"З’явяцца апавяшчэнні і налады."</string>
     <string name="ambient_display_summary" msgid="2650326740502690434">"Каб праверыць час, апавяшчэнні і іншую інфармацыю, двойчы дакраніцеся да экрана."</string>
     <string name="ambient_display_wake_screen_title" msgid="7637678749035378085">"Абудзіць экран"</string>
     <string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"Каб праверыць час, апавяшчэнні і іншую інфармацыю, дакраніцеся да экрана."</string>
@@ -4523,7 +4594,7 @@
     <!-- no translation found for graphics_driver_app_preference_values:2 (5391218026495225599) -->
     <!-- no translation found for graphics_driver_app_preference_values:3 (2586045835780389650) -->
     <string name="enable_angle_as_system_driver" msgid="4648827560023949786">"Уключыць ANGLE (эксперыментальная функцыя)"</string>
-    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Папярэджанне. Уключыце ANGLE як стандартны драйвер OpenGL ES. Гэта функцыя з\'яўляецца эксперыментальнай і можа быць несумяшчальнай з некаторымі праграмамі для камер і відэа."</string>
+    <string name="enable_angle_as_system_driver_summary" msgid="2170215556348477481">"Папярэджанне. Уключыце ANGLE як стандартны драйвер OpenGL ES. Гэта функцыя з’яўляецца эксперыментальнай і можа быць несумяшчальнай з некаторымі праграмамі для камер і відэа."</string>
     <string name="reboot_dialog_enable_angle_as_system_driver" msgid="2619263039763150810">"Каб змяніць сістэмны драйвер OpenGL ES, патрабуецца перазагрузка"</string>
     <string name="platform_compat_dashboard_title" msgid="1323980546791790236">"Змяненні ў сумяшчальнасці праграм"</string>
     <string name="platform_compat_dashboard_summary" msgid="4036546607938791337">"Пераключыць на змяненні ў сумяшчальнасці праграм"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Чахол"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Акумулятар"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Панель налад"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Прымусова ўключаць рэжым працоўнага стала"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Прымусова ўключаць эксперыментальны рэжым працоўнага стала на дадатковых экранах"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Уключыць адвольную форму вокнаў"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Уключыць вокны адвольнай формы на другасным дысплэі"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"У рэжыме некалькіх вокнаў уключыць нязменны памер"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Дазваляе выкарыстоўваць праграмы, якія маюць нязменны памер, у рэжыме некалькіх вокнаў"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Перавызначэнне ўключэння цёмнай тэмы"</string>
@@ -4969,7 +5040,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мабільная перадача даных"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Каб палепшыць працу прылады, вы можаце дазволіць праграмам і сэрвісам шукаць сеткі Wi-Fi, нават калі Wi‑Fi выключаны. Дзякуючы гэтаму палепшыцца праца функцый і сэрвісаў, звязаных з геалакацыяй. Змяніць гэты рэжым можна ў наладах пошуку сетак Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Змяніць"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Падключана"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Падключана часова"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Часова выкарыстоўваецца трафік аператара \"<xliff:g id="SUBNAME">%1$s</xliff:g>\""</string>
@@ -5001,7 +5071,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Выкарыстоўваць замацаванне праграмы"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Выкарыстоўваць параметры распрацоўшчыка"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Скарыстаць сэрвіс друку"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Дазволіць некалькі карыстальнікаў"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Дазволіць пераключэнне карыстальнікаў"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"дазволіць, некалькі, карыстальнік, дазволіць, шмат"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"некалькі, карыстальнікі, профілі, людзі, уліковыя запісы, пераключыць, многа"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Выкарыстоўваць адладку па Wi-Fi"</string>
@@ -5107,7 +5177,7 @@
     <string name="dream_preview_button_title" msgid="6637456541851795952">"Прагледзець"</string>
     <string name="dream_picker_category" msgid="7726447836872744867">"Выберыце экранную застаўку"</string>
     <string name="dream_complications_toggle_title" msgid="4273232303027449163">"Паказваць дадатковую інфармацыю"</string>
-    <string name="dream_complications_toggle_summary" msgid="8088911054987524904">"Паказваць час, надвор\'е і іншую інфармацыю на экраннай застаўцы"</string>
+    <string name="dream_complications_toggle_summary" msgid="8088911054987524904">"Паказваць час, надвор’е і іншую інфармацыю на экраннай застаўцы"</string>
     <string name="dream_home_controls_toggle_title" msgid="706799741564479248">"Паказваць кнопку кіравання домам"</string>
     <string name="dream_home_controls_toggle_summary" msgid="4102519907917430579">"Паказваць кнопку кіравання домам на экраннай застаўцы"</string>
     <string name="dream_more_settings_category" msgid="3119192146760773748">"Дадатковыя налады"</string>
@@ -5115,8 +5185,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Выберыце змесціва, якое будзе паказвацца на экране, калі планшэт падключаны да док-станцыі. Пры выкарыстанні экраннай застаўкі прылада можа спажываць больш энергіі."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Наладзіць"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Наладзіць застаўку \"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>\""</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Каб уключыць падтрымку адвольнай формы, патрабуецца перазагрузка."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Каб прымусова ўключыць на дадатковых дысплэях рэжым працоўнага стала, патрабуецца перазагрузка."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Каб уключыць падтрымку вокнаў у адвольнай форме, патрабуецца перазагрузка."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Каб абнавіць даступнасць вокнаў адвольнай формы, патрабуецца перазагрузка."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Каб уключыць вокны адвольнай формы на другасным дысплэі, патрабуецца перазагрузка."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перазагрузіць зараз"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перазагрузіць пазней"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Прасторавае гучанне"</string>
@@ -5213,7 +5284,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ружовы"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Пурпурны"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Фіялетавы"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Гатова"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Захаваць"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Скасаваць"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Стандартнае значэнне"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Сярэдняя"</string>
@@ -5234,6 +5305,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Уключана"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Выключана"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Уключана"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Гук: %1$d%% злева, %2$d%% справа"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Гук: %1$d%% справа, %2$d%% злева"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Назва прылады даступная для ўсталяваных вамі праграм. Яе таксама могуць пабачыць іншыя людзі, калі вы падключыцеся да прылад з Bluetooth або да сеткі Wi-Fi ці наладзіце хот-спот Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Граматычны род"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Выберыце граматычны род"</string>
@@ -5345,4 +5418,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слухаць плынь"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Адсканіруйце QR-код аўдыяплыні для праслухоўвання на прыладзе \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Калі ажыццяўляецца абагульванне, змяняць пароль нельга. Каб змяніць пароль, выключыце абагульванне аўдыя."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Сканер QR-кодаў"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Шукаць у наладах"</string>
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 548f09e..872bb69 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Време за сън"</item>
-    <item msgid="4152450357280759894">"Шофиране"</item>
-    <item msgid="7096549258219399423">"Реалистично"</item>
-    <item msgid="2760716776980432977">"Управлявано"</item>
-    <item msgid="601734478369121764">"Звезда"</item>
-    <item msgid="6243809315432780521">"Календар"</item>
-    <item msgid="4913577903148415331">"Време"</item>
-    <item msgid="3653377604690057780">"Театър"</item>
-    <item msgid="3843711267408385410">"Цвете"</item>
+    <item msgid="2750940760340557109">"Полумесец"</item>
+    <item msgid="8513969636586738035">"Автомобил"</item>
+    <item msgid="957392343846370509">"Човешки ум"</item>
+    <item msgid="6734164279667121348">"Календар"</item>
+    <item msgid="4139559120353528558">"Часовник"</item>
+    <item msgid="5157711296814769020">"Плажен чадър"</item>
+    <item msgid="6635328761318954115">"Палатка"</item>
+    <item msgid="1711994778883392255">"Филмов видеоколаж"</item>
+    <item msgid="9097658401859604879">"Контролер за игри"</item>
+    <item msgid="755931364157422565">"Гира за фитнес"</item>
+    <item msgid="8894207806795738429">"Човек, хвърлящ топка"</item>
+    <item msgid="2274801572149555103">"Ритащ човек"</item>
+    <item msgid="8795037201506843325">"Плуване"</item>
+    <item msgid="3558421426169430451">"Човек на пешеходен туризъм"</item>
+    <item msgid="7455070421232184932">"Голф"</item>
+    <item msgid="5841773092449126508">"Инструменти за работилница"</item>
+    <item msgid="4595330511709890409">"Куфарче"</item>
+    <item msgid="8352738347856724389">"Звезда"</item>
+    <item msgid="7082783098151998721">"Лотос"</item>
+    <item msgid="5772220259409264724">"Ръководител"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 64e2380..7e79ccc 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Прекъсната"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Неизвестно"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Визуализация"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR код"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Намаляване на размера"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Увеличаване на размера"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Винаги"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Настройки за слуховия апарат"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Пряк път, съвместимост със слухови апарати"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Предварително зададено"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Няма предвар. зададени стойности, програмирани от аудиолога"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Предварително зададените настройки не бяха актуализирани"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудиоизход"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Всичко за аудиоизхода"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Избирането на език за това приложение не е налице от настройките."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Езикът може да се различава от езиците, налични в приложението. Възможно е някои приложения да не поддържат тази настройка."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Задайте език за всяко приложение."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Системата, приложенията и уебсайтовете използват първия поддържан език от тези, които предпочитате."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Устройството ви, приложенията и уебсайтовете използват първия поддържан език от тези, които предпочитате.\n\nМного приложения ще използват и региона от предпочитания ви език, за да форматират датата, цифрите и единиците. За да промените региона си, добавете език, след което изберете предпочитания от вас регион."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"За да изберете език за всяко отделно приложение, отворете настройките за език на приложенията."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Научете повече за езиците на приложенията"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Искате ли да промените системния език на %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Изкл."</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Включено/# приложение има достъп до местоположението}other{Включено/# приложения имат достъп до местоположението}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Зарежда се…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложенията с разрешението за устройства в близост могат да определят относителната позиция на свързаните устройства."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Приложенията с разрешението за устройства в близост могат да определят относителната позиция на свързаните устройства."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Достъпът до местоположението е изключен за приложенията и услугите. Местоположението на устройството ви пак може да се изпраща до органите за бързо реагиране, когато се обадите на номер за спешни случаи или изпратите SMS до такъв."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Научете повече за настройките за местоположението"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"За промяна отворете настройките на ChromeOS &gt; „Поверителност и сигурност &gt; Контроли за поверителност &gt; Достъп до местоположението“"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Лицето и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Лицето, отпечатъкът и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Лицето, отпечатъците и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Проверката на самоличността е включена"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Отключване с Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Добавихте часовник"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Настройване на часовника ви"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Научете повече за „Отключване чрез часовника“"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Добавяне на часовник"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Премахване на часовника"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отключване с лице и отпечатък"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Отключване с лице и отпечатък"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Отключване с лице и отпечатък за служебни цели"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Необходимо е настройване"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Добавени са лице и отпечатъци"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Частното пространство се настройва…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Не бе настроено частно пространство"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Нов опит"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Изход"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Частното пространство не е налице.\nПреглед на възможните причини"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Преглед на възможните причини"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Искате ли да зададете нова опция за заключване на частното пространство?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Можете да зададете нова опция за заключване специално за частното пространство или да използвате тази, с която отключвате устройството си"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Използване на закл. на екрана"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Да се рестартира ли устройството?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Подробното записване в регистрационни файлове посредством NFC е предназначено само за програмни цели. В сигналите за програмни грешки, които може да съдържат лична информация, са включени допълнителни данни от NFC. За да промените тази настройка, рестартирайте устройството си."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Рестартиране"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Вкл."</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Изкл."</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Външен екран"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Използване на външен екран"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Разделителна способност на екрана"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Връзката с външния екран е прекратена"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Завъртане"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Стандартно"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Промяната на настройката за завъртане или разделителна способност може да спре някои от приложенията, които се изпълняват в момента"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Устройството ви трябва да е свързано с външен екран, за да дублирате съдържанието на екрана си"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Още опции"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Предаване"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"дублиране"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Активир. на безжичния дисплей"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Адаптивни"</string>
     <string name="brightness" msgid="6216871641021779698">"Ниво на яркостта"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Адаптивна яркост"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Всичко за адаптивната яркост"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Яркостта на екрана ще се коригира автоматично спрямо средата и активностите ви. Можете да преместите плъзгача ръчно, за да помогнете на функцията за адаптивна яркост да научи предпочитанията ви."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Вкл."</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Изключено"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опции"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Достъпност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физическа клавиатура"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Използване на екранната клавиатура"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Показва се на екрана, докато физическата клавиатура е активна"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Игнориране на многократ. натискане"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Клавиатурата пренебрегва бързите натискания на един и същ клавиш, повтарящи се в рамките на <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мсек"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Забавяне на сигнала от клавишите"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Коригира времето, необходимо за активиране след натискане на даден клавиш, на <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мсек"</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="2396247040177734245">"Използвайте физическата клавиатура, за да управлявате мишката."</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Запълване на курсора в жълто"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Запълване на курсора в розово"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Запълване на курсора в синьо"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Стил на контура на курсора"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Бяло"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Черно"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Без"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Жестове със сензорния панел: Урок"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"тракпад, мишка, курсор, превъртане, плъзгане, кликване с десния бутон, кликване, показалец"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"кликване с десния бутон, докосване"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Избрано от потребителя: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Говор"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Скорост на курсора"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Мащаб на курсора"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Намаляване на мащаба на курсора"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Увеличаване на мащаба на курсора"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Контролер за игри"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Пренасочване на вибрирането"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Пренасочване на вибрирането към контролера за игри, когато е свързан"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Напред въпреки това"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Отказ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Настройки за увеличението"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Преместване с един пръст"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Преместете лупата с 1 пръст"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Плъзнете с пръст, за да се придвижвате на екрана."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Преместете областта за увеличаване, като плъзнете 1 пръст."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Преместете областта за увеличаване, като плъзнете 2 пръста."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Не е налице, когато се увеличава само част от екрана"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Променяйте мащаба с докосване на бутон"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Бързо увеличавайте мащаба на екрана, за да уголемите съдържанието"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;За да увеличите мащаба&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. Използвайте прекия път за стартиране на увеличението.&lt;br/&gt; {1,number,integer}. Докоснете екрана.&lt;br/&gt; {2,number,integer}. Плъзнете с 2 пръста, за да се придвижите по екрана.&lt;br/&gt; {3,number,integer}. Съберете 2 пръста, за да коригирате мащаба.&lt;br/&gt; {4,number,integer}. Използвайте прекия път за спиране на увеличението.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;За временно увеличаване на мащаба&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. За типа увеличение трябва да зададете „Цял екран“.&lt;br/&gt; {1,number,integer}. Използвайте прекия път за стартиране на увеличението.&lt;br/&gt; {2,number,integer}. Докоснете и задръжте произволно място на екрана.&lt;br/&gt; {3,number,integer}. Плъзнете пръст, за да се придвижите по екрана.&lt;br/&gt; {4,number,integer}. Вдигнете пръста си, за да спрете увеличението."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;За да увеличите мащаба&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. Използвайте прекия път за стартиране на увеличението.&lt;br/&gt; {1,number,integer}. Докоснете екрана.&lt;br/&gt; {2,number,integer}. Плъзнете с 2 пръста, за да се придвижите по екрана.&lt;br/&gt; {3,number,integer}. Съберете 2 пръста, за да коригирате мащаба.&lt;br/&gt; {4,number,integer}. Използвайте прекия път, за да спрете увеличението.&lt;br/&gt;&lt;br/&gt; Можете също да приближавате временно и още много други неща."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;За да увеличите мащаба&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. Използвайте прекия път за стартиране на увеличението.&lt;br/&gt; {1,number,integer}. Докоснете екрана.&lt;br/&gt; {2,number,integer}. Плъзнете с 1 или 2 пръста, за да се придвижите по екрана.&lt;br/&gt; {3,number,integer}. Съберете 2 пръста, за да коригирате мащаба.&lt;br/&gt; {4,number,integer}. Използвайте прекия път, за да спрете увеличението.&lt;br/&gt;&lt;br/&gt; Можете също да приближавате временно и още много други неща."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Когато функцията за увеличение е включена, можете да увеличавате мащаба на екрана.\n\n"<b>"За да промените мащаба"</b>", стартирайте функцията за увеличение, след което докоснете произволно място на екрана.\n"<ul><li>"Плъзнете 2 или повече пръсти, за да превъртите."</li>\n<li>"Съберете или разтворете 2 или повече пръсти, за да коригирате мащаба."</li></ul>\n\n<b>"За да промените временно мащаба"</b>", стартирайте функцията за увеличение, след което докоснете и задръжте произволно място на екрана.\n"<ul><li>"Плъзнете пръста си, за да се придвижите на екрана."</li>\n<li>"Вдигнете пръста си, за да намалите мащаба."</li></ul>\n\n"Не можете да увеличавате мащаба на клавиатурата или лентата за навигация."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Страница <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> от <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Пряк път чрез бутона за достъпност"</string>
@@ -2149,8 +2180,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Плъзнете два пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите плъзнете два пръста нагоре и задръжте."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Прекарайте три пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите прекарайте три пръста нагоре и задръжте."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Плъзнете пръст нагоре от долната част на екрана. За превключване между функциите плъзнете пръст нагоре и задръжте.}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>
@@ -2161,16 +2190,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Двукратно докосване на екрана с два пръста"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Докоснете бързо екрана %1$d пъти. Това може да забави работата на устройството ви."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двукратно докосване с %1$d пръста."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Бързо докоснете екрана {0,number,integer} пъти с два пръста"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Трикратно докосване на екрана"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"трикратно докосване."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Бързо докоснете екрана {0,number,integer} пъти. Този пряк път може да забави работата на устройството ви."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Разширени"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Бутонът за достъпност е настроен за <xliff:g id="SERVICE">%1$s</xliff:g>. За да използвате функцията за увеличение, докоснете и задръжте бутона за достъпност, след което я изберете."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"За жеста за достъпност е зададено „<xliff:g id="SERVICE">%1$s</xliff:g>“. За да използвате функцията за увеличение, прекарайте два пръста нагоре от долната част на екрана и задръжте. След това изберете опцията."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Услугата не функционира правилно."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Преки пътища към достъпността"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Показване в „Бързи настройки“"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Червено-зелено"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Червено-зелено"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Червено-зелено, нарушено възприем. на зелено"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Червено-зелено, нарушено възприем. на червено"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Синьо-жълто"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сива скала"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Наситеност"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Нарушено възприем. на зелено, деутераномалия"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Нарушено възприемане на червено, протаномалия"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Не е налице в режим на сива скала или когато корекцията на цветове е деактивирана"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Деутераномалия"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномалия"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Допълнително затъмняване"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Допълнително затъмняване на екрана"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Синьо-зелено"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Жълто"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Пурпурен"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Искате ли да разрешите на <xliff:g id="SERVICE">%1$s</xliff:g> да има пълен контрол над устройството ви?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> изисква:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"От Настройки не може да се получи потвърждение за отговора ви, защото заявката за разрешение се прикрива от приложение."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> иска пълен контрол над това устройство. Услугата може да чете екрана и да действа от името на потребителите с увреждания. Това ниво на контрол не е подходящо за повечето приложения."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Пълният контрол е подходящ за приложенията, които помагат на потребителите със специални нужди, но не и за повечето приложения."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Преглед и управление на екрана"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Услугата може да чете цялото съдържание на екрана и да показва такова върху други приложения."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Преглед и извършване на действия"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Услугата може да проследява взаимодействията ви с дадено приложение или хардуерен сензор, както и да взаимодейства с приложенията от ваше име."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешаване"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отказ"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Изключване"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Нито един}=1{Зададен е 1 график}other{Зададени са # графика}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Не безпокойте"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Приоритетни режими"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Добавяне на режим"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Сведете разсейващите фактори до минимум и се съсредоточете върху важните неща с режими за сън, работа, шофиране и всичко останало."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Създаване на ваш собствен режим"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Получаване на известия само от важни хора и приложения"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Задаване на график"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"График въз основа на"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Ден и час"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„9:00 – 17:00 ч. в делнични дни“"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Събития в календара"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Режимът „{mode_1}“ е активен}=2{Режимите „{mode_1}“ и „{mode_2}“ са активни}=3{Режимите „{mode_1}“, „{mode_2}“ и „{mode_3}“ са активни}other{Режимите „{mode_1}“, „{mode_2}“ и още # са активни}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 режим може да се включва автоматично}other{# режима могат да се включват автоматично}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ВКЛ."</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Не е зададено"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Деактивирано"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Създаване на режим"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Персонализирано"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Включване сега"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Изключване"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Режимът не е намерен"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ограничаване на прекъсванията"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Блокиране на прекъсванията и разсейванията"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Настройване на <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Включване на режима „Не безпокойте“"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Будилниците и звуците на мултимедийното съдържание могат да прекъсват режима"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Графици"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Изтриване на графиците"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Изтриване"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Преименуване"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Изтриване"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Да се изтрие ли режимът „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Редактиране"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Графици"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"График"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Автоматично включване"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Добавяне на календар"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Използване на календара ви"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"График"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Задаване на график"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Кога да се включва автоматично"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"График за събития"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Включване при събития за"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Когато отговорът на поканата е"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Времеви график"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"График"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ч и <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"График"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Разрешаване на звуковите прекъсвания"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Виз. предупрежд.: Блокиране"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Визуални сигнали: Разрешаване"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Известия, които могат да достигнат до вас"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Допълнителни действия"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Филтри за известията"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Още настройки"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Изкл.}=1{Изкл./1 режим може да се включва автоматично}other{Изкл./# режима могат да се включват автоматично}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Настройки за показване"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Опции за показване"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Сива скала"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"активиране на тъмната тема"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Превключете предпочитанията за операционната система и приложенията така, че да дадете предимство на светлия текст на тъмен фон. Това може да е по-щадящо за очите и да доведе до значителна икономия на батерията на някои устройства"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Няма промени в настройките за показване}=1{{effect_1}}=2{{effect_1} и {effect_2}}=3{{effect_1}, {effect_2} и {effect_3}}other{{effect_1}, {effect_2} и още #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ограничете източниците на известия"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Прекъсванията не се филтрират"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Опции за показване на филтрираните известия"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Когато режимът „Не безпокойте“ е включен"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Без звук от известията"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"отваряне на известието"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Разрешаване на отлагането на известията"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Точка за известия в иконата на прил."</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Групи известия"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Балончета"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Балончета"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Показване на балонче за този разговор"</string>
@@ -3608,9 +3652,9 @@
     <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="4737150709382859870">"Адаптивни известия"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Използване на адаптивни известия"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Когато получавате много известия за кратък период от време, телефонът ви ще намали силата на звука и ще сведе до минимум изскачащите прозорци на екрана за период до две минути. При обаждания, будилници и разговори с приоритет устройството ви ще вибрира, ще издава звук или те ще се показват на екрана. Всички известия могат да бъдат намерени лесно, като плъзнете надолу от горната част на екрана."</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_work" msgid="8823596456640216391">"Прилагане към служебните потребителски профили"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Прилагане за приложенията в служебния потребителски профил"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Помощни услуги за VR"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Категории"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Други"</string>
     <string name="no_channels" msgid="4716199078612071915">"Все още няма публикувани известия от това приложение"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Показване на неизползваните категории"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Допълнителни настройки в приложението"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Показване на неизползв. категории"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Скриване на неизползв. категории"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"от <xliff:g id="START">%1$s</xliff:g> до <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Разговори"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Всички разговори"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"всички разговори"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Разговори с приоритет"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"разговори с приоритет"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Никакви"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Приложения, които могат да прекъсват режима"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Избрани приложения"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Никои"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Всички"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Нито едно приложение не може да прекъсва режима}=1{{app_1} може да прекъсва режима}=2{{app_1} и {app_2} могат да прекъсват режима}=3{{app_1}, {app_2} и {app_3} могат да прекъсват режима}other{{app_1}, {app_2} и още # могат да прекъсват режима}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (служ.)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Изчислява се…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Разрешаване на приложения да отменят режима"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Приложения, които могат да прекъсват режима"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Избиране на още приложения"</string>
@@ -3784,6 +3832,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Повторно обаждащите се могат да прекъсват"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Всички хора могат да прекъсват режима"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Повторно обаждащи се"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Разрешаване на повторно обаждащи се"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Активиране на режима „Само будилници“ за един час (до {time})}other{Активиране на режима „Само будилници“ за # часа (до {time})}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Активиране на режима „Само будилници“ до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Активиране на режима „Прекъсване винаги“"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Преименуване"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Промяна на иконата"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Промяна на иконата"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Редактир. на режима"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Създаване на режим"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Персонализиран режим"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Име на режима"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Събития от календара"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Час на лягане и ставане"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"По време на шофиране"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Настройки за приложения"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Информация и настройки в(ъв) <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Управлява се от <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Деактивиране на „<xliff:g id="MODE_NAME">%1$s</xliff:g>“?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Този режим няма да се включва, след като бъде деактивиран"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Деактивиране"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Активиране на „<xliff:g id="MODE_NAME">%1$s</xliff:g>“?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Този режим може да се включва автоматично въз основа на настройките му"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Активиране"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Изберете режим, който следва редовен график"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Изберете режим за синхронизиране със събитията от календара и отговорите на поканите"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Създайте успокояваща поредица за сън. Задайте будилници, затъмнете екрана и блокирайте известията."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Приоритизирайте безопасността на пътя с цел шофиране без разсейване"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Предупреждение"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Затваряне"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Отзиви за устройството"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Калъф"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерия"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Панел за настройки"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Принудително задаване на настолен режим"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Принудително задаване на експерименталния настолен режим на алтернативни дисплеи"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Активиране на прозорците в свободна форма"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Актив. на проз. в своб. форма на вторични дисплеи"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Активиране на непреоразмерими елементи в „Няколко прозореца“"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Разрешава на приложенията, които не могат да се преоразмеряват, да бъдат в режим за няколко прозореца"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Отмяна на налагането на тъмен режим"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилни данни"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"С цел подобряване на практическата работа с устройството приложенията и услугите пак могат да сканират за Wi‑Fi мрежи по всяко време дори когато функцията за Wi‑Fi e изключена. Това може да послужи например за подобряване на базиращите се на местоположението функции и услуги. Можете да промените съответното поведение от настройките за сканиране за Wi‑Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Промяна"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Свързано"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Установена е временна връзка"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Временно се използва <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Използване на функцията за фиксиране на приложение"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Използване на опциите за програмисти"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Използване на услуга за отпечатване"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Разрешаване на използването от няколко потребители"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Разрешаване на превключването на потребителя"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"разрешаване, няколко, потребител, позволяване, много"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"няколко, потребители, потребителски профили, хора, профили, превключване, много"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Използване на безжичното отстраняване на грешки"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Изберете какво да се показва на екрана, когато таблетът ви е свързан с докинг станция. Устройството ви може да изразходва повече енергия при използването на скрийнсейвър."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Персонализиране"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Персонализиране на <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"За да се активира поддръжката в свободна форма, се изисква рестартиране."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"За да се зададе принудително настолният режим на алтернативни дисплеи, се изисква рестартиране."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"За да се активира поддръжката за прозорци в свободна форма, се изисква рестартиране."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"За да се актуализира наличността на прозорците в свободна форма, се изисква рестартиране."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"За да се активират прозорците в свободна форма на вторични дисплеи, се изисква рестартиране."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартиране сега"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартиране по-късно"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Пространствено аудио"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Розово"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Пурпурно"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Виолетово"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Готово"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Запазване"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Отказ"</string>
     <string name="contrast_default" msgid="8918545965525226966">"По подразбиране"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Среден"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Вкл."</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Изкл."</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Вкл."</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: ляво %1$d%%, дясно %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: дясно %1$d%%, ляво %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Името на устройството ви е видимо за инсталираните от вас приложения. То може да се вижда и от други хора, когато се свържете с устройства с Bluetooth или с Wi-Fi мрежа или настроите точка за достъп до Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Граматически род"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Изберете граматически род"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слушане на потока"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Сканирайте QR кода за даден аудиопоток, за да го слушате на <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Паролата не може да се редактира по време на споделяне. За да я промените, първо изключете функцията за споделяне на звука."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Скенер за QR кодове"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Търсене в настройките"</string>
 </resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index a3fbc78..3b02ecf 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"বেডটাইম"</item>
-    <item msgid="4152450357280759894">"ড্রাইভ করার সময়"</item>
-    <item msgid="7096549258219399423">"ইমারসিভ"</item>
-    <item msgid="2760716776980432977">"ম্যানেজ করা"</item>
-    <item msgid="601734478369121764">"স্টার"</item>
-    <item msgid="6243809315432780521">"ক্যালেন্ডার"</item>
-    <item msgid="4913577903148415331">"সময়"</item>
-    <item msgid="3653377604690057780">"থিয়েটার"</item>
-    <item msgid="3843711267408385410">"ফুল"</item>
+    <item msgid="2750940760340557109">"হাফ-মুন"</item>
+    <item msgid="8513969636586738035">"গাড়ি"</item>
+    <item msgid="957392343846370509">"ব্যক্তির মন"</item>
+    <item msgid="6734164279667121348">"ক্যালেন্ডার"</item>
+    <item msgid="4139559120353528558">"ঘড়ি"</item>
+    <item msgid="5157711296814769020">"বিচ আমব্রেলা"</item>
+    <item msgid="6635328761318954115">"তাঁবু"</item>
+    <item msgid="1711994778883392255">"ফিল্ম রিল"</item>
+    <item msgid="9097658401859604879">"গেম কন্ট্রোলার"</item>
+    <item msgid="755931364157422565">"জিম ডাম্বেল"</item>
+    <item msgid="8894207806795738429">"বল ছুঁড়ছেন এমন ব্যক্তি"</item>
+    <item msgid="2274801572149555103">"কিক মারছেন এমন ব্যক্তি"</item>
+    <item msgid="8795037201506843325">"সাঁতার কাটা"</item>
+    <item msgid="3558421426169430451">"হাইকিং করছেন এমন ব্যক্তি"</item>
+    <item msgid="7455070421232184932">"গল্ফ খেলা"</item>
+    <item msgid="5841773092449126508">"ওয়ার্কশপ টুল"</item>
+    <item msgid="4595330511709890409">"ব্রিফকেস"</item>
+    <item msgid="8352738347856724389">"স্টার"</item>
+    <item msgid="7082783098151998721">"পদ্ম ফুল"</item>
+    <item msgid="5772220259409264724">"সুপারভাইজার"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 33dcd1b..3093b7b 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"স্থগিত করা হয়েছে"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"অজানা"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"প্রিভিউ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR কোড"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"আরো ছোট করুন"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"আরো বড় করুন"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"সবসময়"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"হিয়ারিং ডিভাইস সংক্রান্ত সেটিংস"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"শর্টকাট, হিয়ারিং এড কম্প্যাটিবিলিটি"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"প্রিসেট"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"আপনার অডিওলজিস্ট কোনও প্রিসেট প্রোগ্রাম করে রাখেননি"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"প্রিসেট আপডেট করা যায়নি"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"অডিও আউটপুট"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"অডিও আউটপুট সম্পর্কে"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"এই অ্যাপের জন্য \'সেটিংস\' থেকে ভাষা বেছে নেওয়ার সুবিধা উপলভ্য নেই।"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"অ্যাপে উপলভ্য থাকা ভাষা আলাদা হতে পারে। কিছু অ্যাপে এই সেটিং কাজ নাও করতে পারে।"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"প্রতিটি অ্যাপের জন্য ভাষা সেট করুন।"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"আপনার বেছে নেওয়া পছন্দের ভাষা থেকে কাজ করবে এমন প্রথম ভাষাটি, সিস্টেম, অ্যাপ ও ওয়েবসাইট ব্যবহার করে।"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"আপনার ডিভাইস, অ্যাপ ও ওয়েবসাইট সেই ভাষা ব্যবহার করবে যা আপনি বেছে নেওয়া পছন্দের ভাষায় প্রথম ভাষা হিসেবে রেখেছেন।\n\nএছাড়া, একাধিক অ্যাপ তারিখ, নম্বর ও ইউনিট সেই জায়গা অনুযায়ী ফর্ম্যাট করবে যেখানে আপনার পছন্দের ভাষা বলা হয়। আপনার অঞ্চল পরিবর্তন করতে, ভাষা যোগ করুন, তারপর আপনার পছন্দের জায়গা বেছে নিন।"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"প্রতিটি অ্যাপের জন্য ভাষা বেছে নিতে, অ্যাপের ভাষা সংক্রান্ত সেটিংসে যান।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"অ্যাপের ভাষা সম্পর্কে আরও জানুন"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"সিস্টেমের ভাষা %s ভাষায় বদল করবেন ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"বন্ধ আছে"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}one{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}other{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"লোড হচ্ছে…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"আশেপাশের ডিভাইসের অনুমতি থাকা অ্যাপগুলি কানেক্ট করা ডিভাইসের আপেক্ষিক অবস্থান নির্ণয় করতে পারে।"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"কাছাকাছি ডিভাইসের অনুমতি থাকা অ্যাপ, কানেক্ট করা ডিভাইসের আপেক্ষিক অবস্থান নির্ণয় করতে পারে।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"অ্যাপ ও পরিষেবার লোকেশন অ্যাক্সেস বন্ধ রয়েছে। জরুরি নম্বরে কল অথবা টেক্সট করলে সাহায্যকারীর কাছে আপনার ডিভাইসের লোকেশন এখনও পাঠানো হতে পারে।"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"\'লোকেশন সেটিংস\' সম্পর্কে আরও জানুন"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"পরিবর্তন করতে, \'ChromeOS সেটিংস &gt; গোপনীয়তা ও সুরক্ষা &gt; গোপনীয়তা নিয়ন্ত্রণ &gt; লোকেশন অ্যাক্সেস\' বিকল্পে যান"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ফেস ও <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"রিমোট Authenticator আনলক করুন"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"স্মার্টওয়াচ যোগ করা হয়েছে"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"আপনার ঘড়ি সেট-আপ করুন"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"\'ঘড়ি আনলক করুন\' ফিচার সম্পর্কে আরও জানুন"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ঘড়ি যোগ করুন"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ঘড়ি সরান"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ফিঙ্গারপ্রিন্ট ও ফেস আনলক"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ফেস ও ফিঙ্গারপ্রিন্ট আনলক"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"অফিস প্রোফালের জন্য \'ফেস ও ফিঙ্গারপ্রিন্ট আনলক\' ফিচার"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"সেট-আপ করতে হবে"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"ফেস এবং আঙ্গুলের ছাপ যোগ করা হয়েছে"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"প্রাইভেট স্পেস সেট-আপ করা হচ্ছে…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"কোনও প্রাইভেট স্পেস সেট-আপ করা যায়নি"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"আবার চেষ্টা করুন"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"বেরিয়ে আসুন"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"প্রাইভেট স্পেস উপলভ্য নেই।\nসম্ভাব্য কারণগুলি দেখুন"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"সম্ভাব্য কারণগুলি দেখুন"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"প্রাইভেট স্পেসের জন্য নতুন লক বেছে নেবেন?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"আপনি শুধুমাত্র প্রাইভেট স্পেসের জন্য একটি নতুন লক সেট করতে পারবেন অথবা আপনার ডিভাইস আনলক করতে যে লকটি ব্যবহার করেন সেটি ব্যবহার করা যাবে।"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"স্ক্রিন লক ব্যবহার করুন"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ডিভাইস রিস্টার্ট করবেন?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"শুধুমাত্র উন্নতির উদ্দেশ্যে বিস্তারিত NFC লগিং করা হয়েছে। NFC সংক্রান্ত অতিরিক্ত ডেটা সমস্যার রিপোর্টে অন্তর্ভুক্ত করা হয়েছে, যার মধ্যে ব্যক্তিগত তথ্যও থাকতে পারে। এই সেটিং পরিবর্তন করতে, আপনার ডিভাইস রিস্টার্ট করুন।"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"রিস্টার্ট করুন"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"চালু আছে"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"বন্ধ আছে"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"এক্সটার্নাল ডিসপ্লে"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"এক্সটার্নাল ডিসপ্লে ব্যবহার করুন"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ডিসপ্লে রেজোলিউশন"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"এক্সটার্নাল ডিসপ্লে ডিসকানেক্ট হয়ে গেছে"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"রোটেশন"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"স্ট্যান্ডার্ড"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"৯০°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"১৮০°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"২৭০°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"রোটেশন বা রেজোলিউশন পরিবর্তন করা হলে, বর্তমানে চালু থাকা যেকোনও অ্যাপ বন্ধ হয়ে যেতে পারে"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"আপনার স্ক্রিন মিরর করার জন্য আপনার ডিভাইসকে কোনও এক্সটার্নাল ডিসপ্লের সাথে কানেক্ট করা থাকতে হবে"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"আরও বিকল্প"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"কাস্ট করুন"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"মিরর"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ওয়্যারলেস প্রদর্শন সক্ষম করুন"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"অভিযোজিত"</string>
     <string name="brightness" msgid="6216871641021779698">"উজ্জ্বলতার স্তর"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"পরিবেশের আলো অনুযায়ী উজ্জ্বলতা"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"পরিবেশের আলো অনুযায়ী উজ্জ্বলতা সম্পর্কে"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"আপনার পারিপার্শ্বিক অবস্থা এবং অ্যাক্টিভিটি অনুযায়ী স্ক্রিনের উজ্জ্বলতা নিজে থেকেই অ্যাডজাস্ট করে নেওয়া হবে। স্ক্রিন কতখানি উজ্জ্বল হলে আপনার সুবিধা হয়, তা আপনি স্লাইডারের মাধ্যমে নির্দিষ্ট করে দিতে পারেন।"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"চালু আছে"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"বন্ধ আছে"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"বিকল্প"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"অ্যাক্সেসিবিলিটি"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ফিজিক্যাল কীবোর্ড"</string>
-    <string name="show_ime" msgid="4334255501724746849">"অন-স্ক্রিন কীবোর্ড ব্যবহার করুন"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"ফিজিক্যাল কীবোর্ড সক্রিয় থাকার সময় এটিকে স্ক্রীনে রাখুন"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"বাউন্স \'কী\'"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> মিলি সেকেন্ডের মধ্যে একই কী বারবার প্রেস করলে তা কীবোর্ড উপেক্ষা করে"</string>
     <string name="slow_keys" msgid="2891452895499690837">"স্লো \'কী\'"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"কোনও কী প্রেস করলে সেটি অ্যাক্টিভেট হতে যে সময় লাগে তা <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> মিলি সেকেন্ডে অ্যাডজাস্ট হয়"</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="2396247040177734245">"মাউস কন্ট্রোল করতে ফিজিক্যাল কীবোর্ড ব্যবহার করুন।"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"পয়েন্টার ফিল স্টাইল বদলে হলুদ করুন"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"পয়েন্টার ফিল স্টাইল বদলে গোলাপি করুন"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"পয়েন্টার ফিল স্টাইল বদলে নীল করুন"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"পয়েন্টার স্ট্রোক স্টাইল"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"সাদা"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"কালো"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"কোনওটিই নয়"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"টাচপ্যাডের জেসচার সম্পর্কে জানুন"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ট্র্যাকপ্যাড, ট্র্যাক প্যাড, মাউস, কার্সর, স্ক্রল, সোয়াইপ, ডানদিকের বোতামে ক্লিক, ক্লিক, পয়েন্টার"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ডানদিকের বোতামে ক্লিক, ট্যাপ"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ব্যবহারকারী বেছে নেওয়া হয়েছে: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"স্পিচ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"পয়েন্টারের গতি"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"পয়েন্টার স্কেল"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"পয়েন্টার স্কেল ছোট করুন"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"পয়েন্টার স্কেল বড় করুন"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"গেম নিয়ন্ত্রক"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ইনপুট ডিভাইসে ভাইব্রেশন হতে দিন"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"গেমের কন্ট্রোলার কানেক্ট করা থাকলে সেটিতে ভাইব্রেশন হতে দিন"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"তা সত্ত্বেও চালিয়ে যান"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"বাতিল করুন"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"বড় করে দেখার সেটিংস"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"একটি আঙুল দিয়ে প্যান করা"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"১টি আঙুল দিয়ে ম্যাগনিফায়ার সরান"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"স্ক্রিনের মধ্যে যে কোনও জায়গায় সরাতে ১টি আঙুল দিয়ে টেনে আনুন"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"\'বড় করে দেখা\' এলাকা একটি আঙুল দিয়ে টেনে সরান।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"\'বড় করে দেখা\' এলাকা দুটি আঙুল দিয়ে টেনে সরান।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"শুধুমাত্র স্ক্রিনের বড় করে দেখানো অংশে উপলভ্য থাকে না"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"জুম করার জন্য বোতামে ট্যাপ করুন"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"কন্টেন্ট আরও বড় সাইজে দেখার জন্য, স্ক্রিনে দ্রুত জুম-ইন করুন"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;জুম ইন করতে:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. \'বড় করে দেখা\' ফিচার চালু করার জন্য শর্টকাট ব্যবহার করুন&lt;br/&gt; {1,number,integer}। স্ক্রিনে ট্যাপ করুন&lt;br/&gt; {2,number,integer}। স্ক্রিনের চারদিকে ঘোরাতে ২টি আঙুল দিয়ে টেনে আনুন&lt;br/&gt; {3,number,integer}। জুম অ্যাডজাস্ট করার জন্য ২টি আঙুল দিয়ে পিঞ্চ করুন&lt;br/&gt; {4,number,integer}। \'বড় করে দেখা\' ফিচার বন্ধ করার জন্য শর্টকাট ব্যবহার করুন&lt;br/&gt;&lt;br/&gt; &lt;b&gt;সাময়িকভাবে জুম ইন করতে:&lt;/b&gt;&lt;br/&gt; {0,number,integer}। আপনার \'বড় করে দেখা\' ফিচারের ধরন ফুল স্ক্রিনে সেট হয়েছে কিনা ভাল করে দেখে নিন&lt;br/&gt; {1,number,integer}। \'বড় করে দেখা\' ফিচার চালু করতে শর্টকাট ব্যবহার করুন&lt;br/&gt; {2,number,integer}। স্ক্রিনের যেকোনও জায়গা টাচ করে ধরে থাকুন&lt;br/&gt; {3,number,integer}। স্ক্রিনের চারদিকে ঘোরাতে আঙুল দিয়ে টেনে আনুন&lt;br/&gt; {4,number,integer}। \'বড় করে দেখা\' ফিচার বন্ধ করতে স্ক্রিনের উপর থেকে আঙুল সরিয়ে নিন"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;জুম-ইন করতে:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. \'বড় করে দেখা\' ফিচার চালু করতে শর্টকাট ব্যবহার করুন&lt;br/&gt; {1,number,integer}. স্ক্রিনে ট্যাপ করুন&lt;br/&gt; {2,number,integer}. স্ক্রিনের মধ্যে যে কোনও জায়গায় সরাতে ২টি আঙুল দিয়ে টেনে আনুন&lt;br/&gt; {3,number,integer}. জুম অ্যাডজাস্ট করার জন্য ২টি আঙুল দিয়ে পিঞ্চ করুন zoom&lt;br/&gt; {4,number,integer}. \'বড় করে দেখা\' ফিচার বন্ধ করতে শর্টকাট ব্যবহার করুন&lt;br/&gt;&lt;br/&gt; এছাড়াও সাময়িকভাবে জুম-ইন এবং আরও অনেক কিছু করুন।"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;জুম-ইন করতে:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. \'বড় করে দেখা\' ফিচার চালু করতে শর্টকাট ব্যবহার করুন&lt;br/&gt; {1,number,integer}. স্ক্রিনে ট্যাপ করুন&lt;br/&gt; {2,number,integer}. স্ক্রিনের মধ্যে যে কোনও জায়গায় সরাতে ১টি অথবা ২টি আঙুল দিয়ে টেনে আনুন&lt;br/&gt; {3,number,integer}. জুম অ্যাডজাস্ট করার জন্য ২টি আঙুল দিয়ে পিঞ্চ করুন zoom&lt;br/&gt; {4,number,integer}. \'বড় করে দেখা\' ফিচার বন্ধ করতে শর্টকাট ব্যবহার করুন&lt;br/&gt;&lt;br/&gt; এছাড়াও সাময়িকভাবে জুম-ইন এবং আরও অনেক কিছু করুন।"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ম্যাগনিফিকেশন চালু করা থাকলে, আপনি স্ক্রিনে জুম বাড়াতে পারবেন।\n\n"<b>"জুম করতে"</b>", ম্যাগনিফিকেশন চালু করে স্ক্রিনের যেকোনও জায়গায় ট্যাপ করুন।\n"<ul><li>"• স্ক্রল করতে ২ বা তার বেশি আঙ্গুল দিয়ে টানুন"</li>\n<li>"• জুম অ্যাডজাস্ট করতে ২ বা তার বেশি আঙ্গুল দিয়ে পিঞ্চ করুন"</li></ul>\n\n<b>"সাময়িকভাবে জুম করতে"</b>", ম্যাগনিফিকেশন চালু করে স্ক্রিনের যেকোনও জায়গায় টাচ করে ধরে থাকুন।\n"<ul><li>"• টেনে স্ক্রিনের বিভিন্ন জায়গায় সরান"</li>\n<li>"• জুম কমাতে স্ক্রিন থেকে আঙ্গুল তুলে নিন"</li></ul>\n\n"কীবোর্ড বা নেভিগেশন বারে আপনি জুম করতে পারবেন না।"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>টি মধ্যে <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> নম্বর পৃষ্ঠা"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"অ্যাক্সেসিবিলিটি বোতামের শর্টকার্ট"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"স্ক্রিনের নিচ থেকে উপরের দিকে দুটি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, দুটি আঙ্গুল দিয়ে নিচ থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"স্ক্রিনের নিচ থেকে উপরের দিকে তিনটি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, তিনটি আঙ্গুল দিয়ে নিচ থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{আপনার স্ক্রিনের একেবারে নিচ থেকে সোয়াইপ করুন। একটি ফিচার থেকে অন্যটিতে পাল্টে নিতে, উপরের দিকে সোয়াইপ করে ধরে রাখুন।}one{#টি আঙ্গুল দিয়ে আপনার স্ক্রিনের একেবারে নিচ থেকে উপরের দিকে সোয়াইপ করুন। একটি ফিচার থেকে অন্যটিতে পাল্টে নিতে, #টি আঙ্গুল দিয়ে উপরের দিকে সোয়াইপ করে ধরে থাকুন।}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"দুই আঙুল দিয়ে স্ক্রিনে ডবল ট্যাপ করুন"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"স্ক্রিনে দ্রুত %1$d বার ট্যাপ করুন। এটি আপনার ডিভাইসের স্পিড কমিয়ে দিতে পারে।"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-টি আঙুল দিয়ে ডবল ট্যাপ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"দুই আঙুল দিয়ে স্ক্রিনে দ্রুত {0,number,integer} বার ট্যাপ করুন"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ট্রিপল-ট্যাপ স্ক্রিন"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ট্রিপল ট্যাপ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্রিনে ঝটপট {0,number,integer} বার ট্যাপ করুন। এই শর্টকাট ব্যবহারের ফলে আপনার ডিভাইসের স্পিড কমে যেতে পারে"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"উন্নত"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"অ্যাক্সেসযোগ্যতা বোতামটি <xliff:g id="SERVICE">%1$s</xliff:g> এর সাথে সেট করা আছে। ম্যাগনিফিকেশন ব্যবহার করার জন্য অ্যাক্সেসযোগ্যতা বোতামটি স্পর্শ করে টিপে ধরুন, তারপর ম্যাগনিফিকেশন বেছে নিন।"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"অ্যাক্সেসিবিলিটি জেসচার <xliff:g id="SERVICE">%1$s</xliff:g>-এ সেট করা আছে। ম্যাগনিফিকেশন ব্যবহার করার জন্য, স্ক্রিনের নিচ থেকে দুটি আঙুল দিয়ে উপরের দিকে সোয়াইপ করুন এবং ধরে থাকুন। তার পরে ম্যাগনিফিকেশন বেছে নিন।"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"এই পরিষেবাটি ঠিকভাবে কাজ করছে না।"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"অ্যাক্সেসিবিলিটি শর্টকার্ট"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"দ্রুত সেটিংসে দেখান"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"লাল-সবুজ"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"লাল-সবুজ"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"লাল-সবুজ, হালকা সবুজ"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"লাল-সবুজ, হালকা লাল"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"নীল-হলুদ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"গ্রেস্কেল"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ইন্টেন্সিটি"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"এমন সমস্যা যেখানে সবুজ রঙ লাল হিসেবে দেখা যায়"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"এমন সমস্যা যেখানে লাল রঙ সবুজ হিসেবে দেখা যায়"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"গ্রেস্কেল মোডের জন্য অথবা রঙ সংশোধন করার ফিচার বন্ধ থাকলে উপলভ্য হয় না"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ডিউটারনোম্যালি"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"প্রোটানোম্যালি"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ট্রিট্যানোম্যালি"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"অতিরিক্ত কম উজ্জ্বলতা"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"স্ক্রিন অতিরিক্ত কম উজ্জ্বল করুন"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"নীলাভ রঙ"</string>
     <string name="color_yellow" msgid="5957551912912679058">"হলুদ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"রাণী রঙ"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> অ্যাপটিকে আপনার ডিভাইসে সম্পূর্ণ নিয়ন্ত্রণের অনুমতি দিতে চান?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> কে এটি করতে হবে:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"একটি অ্যাপ্লিকেশান কোনো অনুমোদনের অনুরোধকে অস্পষ্ট করছে, তাই সেটিংস আপনার প্রতিক্রিয়া যাচাই করতে পারেনি৷"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"এই ডিভাইসের সম্পূর্ণ নিয়ন্ত্রণ পেতে <xliff:g id="SERVICE">%1$s</xliff:g>-এর তরফে অনুরোধ জানানো হচ্ছে। পরিষেবাটি স্ক্রিন পড়তে পারে এবং ব্যবহারকারীর পক্ষ থেকে অ্যাক্সেসিবিলিটির প্রয়োজন অুযায়ী কাজ করতে পারে। বেশিরভাগ অ্যাপের জন্যই লেভেলের নিয়ন্ত্রণ ঠিক নয়।"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"যে অ্যাপগুলি আপনাকে অ্যাক্সেসিবিলিটির প্রয়োজন মেটাতে সাহায্য করে সেই অ্যাপগুলির জন্য সম্পূর্ণ নিয়ন্ত্রণের বিষয়টি উপযুক্ত, কিন্তু তা বলে সমস্ত অ্যাপের জন্য নয়।"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"স্ক্রিন দেখে নিয়ন্ত্রণ করা"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"এটি স্ক্রিনের সমস্ত কন্টেন্ট পড়তে এবং অন্য অ্যাপেও কন্টেন্ট ডিসপ্লে করতে পারে।"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"দেখুন এবং কাজটি করুন"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"এটি কোনও একটি অ্যাপের সাথে অথবা হার্ডওয়্যার সেন্সরের সাথে আপনার ইন্টার‍্যাকশন ট্র্যাক করতে এবং আপনার হয়ে বিভিন্ন অ্যাপের সাথে ইন্টার‍্যাক্ট করতে পারে।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিন"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"খারিজ করুন"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"বন্ধ করুন"</string>
@@ -3134,7 +3154,7 @@
     <string name="sim_signal_strength" msgid="6351052821700294501">"<xliff:g id="DBM">%1$d</xliff:g> dBm <xliff:g id="ASU">%2$d</xliff:g> asu"</string>
     <string name="sim_notification_title" msgid="6839556577405929262">"আপনার সিম কার্ড পরিবর্তন করা হয়েছে"</string>
     <string name="sim_notification_summary" msgid="5593339846307029991">"সেট-আপ করার জন্য আলতো চাপুন"</string>
-    <string name="sim_calls_ask_first_prefs_title" msgid="3077694594349657933">"প্রতিবার জিজ্ঞাসা করুন"</string>
+    <string name="sim_calls_ask_first_prefs_title" msgid="3077694594349657933">"প্রতিবার জিজ্ঞাসা করা হবে"</string>
     <string name="sim_selection_required_pref" msgid="231437651041498359">"নির্বাচন করার প্রয়োজন"</string>
     <string name="sim_selection_channel_title" msgid="3193666315607572484">"সিম বেছে নেওয়া"</string>
     <string name="dashboard_title" msgid="5660733037244683387">"সেটিংস"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{একটিও নেই}=1{১টি শিডিউল সেট করা হয়েছে}one{#টি শিডিউল সেট করা হয়েছে}other{#টি শিডিউল সেট করা হয়েছে}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"বিরক্ত করবে না"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"অগ্রাধিকার মোড"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"মোড যোগ করুন"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"মনোযোগে ব্যাঘাত ঘটানো কমান এবং ঘুম, কাজ, ড্রাইভ করা এবং আরও অনেক কিছুর জন্য মোড ব্যবহার করে মনোযোগ বজায় রাখুন।"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"আপনার নিজস্ব মোড তৈরি করুন"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"শুধু গুরুত্বপূর্ণ লোকজন এবং অ্যাপ থেকে বিজ্ঞপ্তি পান"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"শিডিউল সেট করুন"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"এর ভিত্তিতে শিডিউল করুন"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"দিন ও সময়"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"কাজের দিন ৯ AM - ৫ PM\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"ক্যালেন্ডার ইভেন্ট"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} চালু আছে}=2{{mode_1} ও {mode_2} চালু আছে}=3{{mode_1}, {mode_2} ও {mode_3} চালু আছে}one{{mode_1}, {mode_2} ও আরও #টি মোড চালু আছে}other{{mode_1}, {mode_2} ও আরও #টি মোড চালু আছে}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{১টি মোড অটোমেটিক চালু হতে পারে}one{#টি মোড অটোমেটিক চালু হতে পারে}other{#টি মোড অটোমেটিক চালু হতে পারে}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"চালু আছে"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"সেট করা নেই"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"বন্ধ করা হয়েছে"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"মোড তৈরি করুন"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"কাস্টম"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"এখনই চালু করুন"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"বন্ধ করুন"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"মোড খুঁজে পাওয়া যায়নি"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"বিরক্তিকর কন্টেন্ট বন্ধ করা"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"বিঘ্ন ও মনোযোগে ব্যাঘাত ঘটায় এমন জিনিস ব্লক করুন"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> সেট আপ করুন"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'বিরক্ত করবে না\' মোড চালু করুন"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"অ্যালার্ম ও মিডিয়া সাউন্ড বাধা দিতে পারবে"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"সময়সূচি"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"সময়সূচি মুছে দিন"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"মুছে দিন"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"নাম পরিবর্তন করুন"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"মুছুন"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" মোড মুছতে চান?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"এডিট করুন"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"সময়সূচি"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"সময়সূচি"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"অটোমেটিক চালু করা হয়"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"একটি ক্যালেন্ডার যোগ করুন"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"আপনার ক্যালেন্ডার ব্যবহার করুন"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"শিডিউল করুন"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"একটি শিডিউল সেট করুন"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"কখন অটোমেটিক চালু হবে"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ইভেন্টের শিডিউল"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"এই ইভেন্ট চলাকালীন চালু করুন"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"যেখানে আমন্ত্রণের উত্তর"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"সময়ের শিডিউল"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"শিডিউল করুন"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ঘণ্টা, <xliff:g id="MINUTES">%2$d</xliff:g> মিনিট"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"সময়সূচি"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"যেসব বিজ্ঞপ্তি এলে আওয়াজ হয় সেগুলিকে অনুমতি দিন"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ভিজ্যুয়াল ব্যাঘাতগুলিকে ব্লক করুন"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ভিজুয়াল সঙ্কেতগুলি চালু করুন"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"আপনাকে দেখানো হবে এমন বিজ্ঞপ্তি"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"অতিরিক্ত অ্যাকশন"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"বিজ্ঞপ্তির ফিল্টার"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"আরও সেটিংস"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{বন্ধ আছে}=1{বন্ধ আছে / ১টি মোড অটোমেটিক চালু হতে পারে}one{বন্ধ আছে / #টি মোড অটোমেটিক চালু হতে পারে}other{বন্ধ আছে / #টি মোড অটোমেটিক চালু হতে পারে}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ডিসপ্লে সেটিংস"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ডিসপ্লে বিকল্প"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"গ্রেস্কেল"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ডার্ক থিম চালু করুন"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"ডার্ক ব্যাকগ্রাউন্ডের উপর হালকা টেক্সট পড়তে OS ও অ্যাপের থিমে পরিবর্তন করুন, এটি চোখের পক্ষে আরামদায়ক হতে পারে এবং কিছু ডিভাইসে যথেষ্ট ব্যাটারি সাশ্রয় করতে পারে"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ডিসপ্লেতে কোনও পরিবর্তন হয়নি}=1{{effect_1}}=2{{effect_1} ও {effect_2}}=3{{effect_1}, {effect_2} ও {effect_3}}one{{effect_1}, {effect_2} ও আরও #টি}other{{effect_1}, {effect_2} ও আরও #টি}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"আপনি কোন বিষয়ে বিজ্ঞপ্তি পাবেন তা সীমিত করুন"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"কোনও ইন্টারাপশন, ফিল্টার করা হয়নি"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ফিল্টার করা বিজ্ঞপ্তির জন্য ডিসপ্লে বিকল্প"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"যখন \'বিরক্ত করবে না\' চালু থাকবে"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"বিজ্ঞপ্তি থেকে কোনও সাউন্ড হবে না"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"বিজ্ঞপ্তি খুলুন"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"বিজ্ঞপ্তি স্নুজ করার অনুমতি দিন"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"অ্যাপ আইকনে বিজ্ঞপ্তির ডট"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"বিজ্ঞপ্তির বান্ডেল"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"বাবল"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"বাবল"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"বাবল আইকন হিসেবে হোম স্ক্রিনে কথোপকথন যোগ করা"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"অ্যাডাপ্টিভ বিজ্ঞপ্তি"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"অ্যাডাপ্টিভ বিজ্ঞপ্তি ব্যবহার করুন"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"অল্প সময়ের মধ্যে আপনার কাছে অনেক বেশি বিজ্ঞপ্তি আসলে, আপনার ফোন দুই মিনিটের জন্য ভলিউম কমিয়ে দেবে এবং স্ক্রিনে আসা পপ-আপ মিনিমাইজ করবে। এরপরেও কল, অ্য়ালার্ম ও গুরুত্বপূর্ণ কথোপকথনের জন্য ফোনে ভাইব্রেশন, সাউন্ড হবে অথবা স্ক্রিনে তা দেখা যাবে। আপনি ফোনের স্ক্রিন উপর থেকে নিচের দিকে সোয়াইপ করলে সহজেই সবকটি বিজ্ঞপ্তি দেখতে পারবেন।"</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_work" msgid="8823596456640216391">"অফিস প্রোফাইলে প্রয়োগ করুন"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"অফিস প্রোফাইল অ্যাপে প্রয়োগ করুন"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ভিআর(VR) সহায়তাকারী পরিষেবা"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"বিভাগগুলি"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"অন্যান্য"</string>
     <string name="no_channels" msgid="4716199078612071915">"এই অ্যাপটি দ্বারা কোন বিজ্ঞপ্তি পোস্ট করা হয়নি"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"অব্যবহৃত বিভাগ দেখুন"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"অ্যাপের আরও সেটিংস"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"অব্যবহৃত বিভাগ দেখান"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"অব্যবহৃত বিভাগ লুকান"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"কথোপকথন"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"সমস্ত কথোপকথন"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"সব কথোপকথন"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"গুরুত্বপূর্ণ কথোপকথন"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"গুরুত্বপূর্ণ কথোপকথন"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"এমন কেউ নেই"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"যেসব অ্যাপ বিরক্ত করবে না মোড এড়িয়ে নিজের কাজ করতে পারে"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"বেছে নেওয়া অ্যাপ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"কোনওটিই নয়"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"সব"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{কোনও অ্যাপ বিঘ্ন ঘটাতে পারবে না}=1{{app_1} অ্যাপ বিঘ্ন ঘটাতে পারবে}=2{{app_1} ও {app_2} অ্যাপ বিঘ্ন ঘটাতে পারবে}=3{{app_1}, {app_2} ও {app_3} অ্যাপ বিঘ্ন ঘটাতে পারবে}one{{app_1}, {app_2}, ও আরও #টি অ্যাপ বিঘ্ন ঘটাতে পারবে}other{{app_1}, {app_2}, ও আরও #টি অ্যাপ বিঘ্ন ঘটাতে পারবে}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (অফিস)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"গণনা করা হচ্ছে…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"অ্যাপ ওভাররাইডের অনুমতি দিন"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"যে অ্যাপগুলি \'বিরক্ত করবে না\' মোড এড়িয়ে নিজের কাজ করতে পারে"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"আরও অ্যাপ বেছে নিন"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"রিপিট কলার বিঘ্ন ঘটাতে পারে"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"সবাই বাধা দিতে পারবে"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"রিপিট কলার"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"রিপিট কলারদের অনুমতি দিন"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} পর্যন্ত এক ঘণ্টার জন্য অ্যালার্ম পরিবর্তন করুন}one{{time} পর্যন্ত # ঘণ্টার জন্য অ্যালার্ম পরিবর্তন করুন}other{{time} পর্যন্ত # ঘণ্টার জন্য অ্যালার্ম পরিবর্তন করুন}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"শুধুমাত্র <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> পর্যন্ত অ্যালার্মগুলি পরিবর্তন করুন"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"সর্বদা বাধা দেওয়াতে পরিবর্তন করুন"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"নাম পরিবর্তন করুন"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"আইকন পরিবর্তন করুন"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"আইকন পরিবর্তন করুন"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"মোড এডিট করুন"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"মোড তৈরি করুন"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"কাস্টম মোড"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"মোডের নাম"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ক্যালেন্ডার ইভেন্ট"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"বেডটাইম রুটিন"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ড্রাইভ করার সময়"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"অ্যাপের সেটিংস"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> অ্যাপে তথ্য ও সেটিংস"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ম্যানেজ করে"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> বন্ধ করবেন?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"বন্ধ করা থাকলে, এই মোড কখনই চালু হবে না"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"বন্ধ করুন"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> চালু করবেন?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"মোডের সেটিংসের উপর নির্ভর করে এটি অটোমেটিক চালু হতে পারে"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"চালু করুন"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"নিয়মিত শিডিউল অনুসরণ করে এমন একটি মোড সেট করুন"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"ক্যালেন্ডার ইভেন্ট ও আমন্ত্রণের উত্তরের সাথে সিঙ্ক করতে কোনও একটি মোড সেট করুন"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"নিশ্চিন্তে ঘুমের জন্য রুটিন ডিজাইন করুন। অ্যালার্ম সেট করুন, স্ক্রিনের আলো কম করুন এবং বিজ্ঞপ্তি ব্লক করুন।"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"মনোসংযোগে বিঘ্ন না ঘটিয়ে ও ফোকাস নিয়ে গাড়ি চালানোর সময় রাস্তায় সুরক্ষার দিকটি নজর দিন"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"সতর্কতা"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"বন্ধ করুন"</string>
     <string name="device_feedback" msgid="5351614458411688608">"এই ডিভাইসের সম্পর্কে মতামত পাঠান"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"কেস"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ব্যাটারি"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"সেটিংস প্যানেল"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ফোর্স ডেস্কটপ মোড"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"সেকেন্ডারি ডিসপ্লেতে ফোর্স এক্সপেরিমেন্টাল ডেস্কটপ মোড চালু করা আছে"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ফ্রিফর্ম উইন্ডো চালু করুন"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"সেকেন্ডারি ডিসপ্লেতে ফ্রিফর্ম উইন্ডো চালু করুন"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ছোট বড় করা যায় না এমন একাধিক উইন্ডো চালু করুন"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"একাধিক উইন্ডোয় ছোট বড় করা যায় না এমন অ্যাপের অনুমতি দিন"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ফোর্স-ডার্ক ফিচার ওভাররাইড করুন"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"মোবাইল ডেটা"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ডিভাইস সংক্রান্ত অভিজ্ঞতা আরও ভাল করতে, অ্যাপ ও পরিষেবা যেকোনও সময় আপনার ওয়াই-ফাই নেটওয়ার্ক স্ক্যান করতে পারবে, এমনকি ডিভাইসের ওয়াই-ফাই বন্ধ করা থাকলেও। যেমন, এটি লোকেশন-ভিত্তিক ফিচার ও পরিষেবার উন্নতির জন্য ব্যবহার করা যাবে। আপনি \'ওয়াই-ফাই স্ক্যানিং\' সেটিংস থেকে এটি পরিবর্তন করতে পারবেন।"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"পরিবর্তন করুন"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"কানেক্ট করা আছে"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"সাময়িকভাবে কানেক্ট করা হয়েছে"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"সাময়িকভাবে <xliff:g id="SUBNAME">%1$s</xliff:g> ব্যবহার করা হচ্ছে"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"অ্যাপ পিন বিকল্প ব্যবহার করুন"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ডেভেলপার বিকল্প ব্যবহার করুন"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"প্রিন্ট পরিষেবা ব্যবহার করুন"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"একাধিক ব্যবহারকারীকে অনুমতি দিন"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ব্যবহারকারী পরিবর্তনের অনুমতি দিন"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"অনুমতি, একাধিক, ব্যবহারকারী, অনুমতি, অনেক"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"একাধিক, ব্যবহারকারী, প্রোফাইল, লোকজন, অ্যাকাউন্ট, পরিবর্তন করুন, অনেক"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ওয়্যারলেস ডিবাগিং বিকল্প ব্যবহার করুন"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ট্যাবলেট ডক করা থাকলে, আপনি স্ক্রিনে কী কী দেখবেন তা বেছে নিন। স্ক্রিন সেভার ব্যবহার করার সময়, আপনার ডিভাইস ব্যাটারির চার্জ বেশি ব্যবহার করতে পারে।"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"কাস্টমাইজ করুন"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> কাস্টমাইজ করুন"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ফ্রিফর্ম সহায়তা চালু করার জন্য, ডিভাইস রিবুট করতে হবে।"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"সেকেন্ডারি ডিসপ্লেতে ডেস্কটপ মোড জোর করে চালানোর জন্য রিবুট করতে হবে।"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ফ্রিফর্ম উইন্ডো সংক্রান্ত সহায়তা চালু করার জন্য ডিভাইস রিবুট করতে হবে।"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ফ্রিফর্ম উইন্ডো উপলভ্যতা আপডেট করতে রিবুট করতে হবে।"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"সেকেন্ডারি ডিসপ্লেতে ফ্রিফর্ম উইন্ডো চালু করার জন্য রিবুট করতে হবে।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"এখনই রিবুট করুন"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"পরে রিবুট করুন"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"স্পেশিয়ল অডিও"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"গোলাপ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ম্যাজেন্টা"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"বেগুনি"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"হয়ে গেছে"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"সেভ করুন"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"বাতিল করুন"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ডিফল্ট"</string>
     <string name="contrast_medium" msgid="384414510709285811">"মিডিয়াম"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"চালু আছে"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"বন্ধ আছে"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"চালু আছে"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"অডিও %1$d%% বাঁদিক, %2$d%% ডানদিক"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"অডিও %1$d%% ডানদিক, %2$d%% বাঁদিক"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"আপনার ইনস্টল করা অ্যাপে আপনার ডিভাইসের নাম দেখা যাচ্ছে। আপনি ব্লুটুথ ডিভাইস বা কোনও ওয়াই-ফাই নেটওয়ার্কে কানেক্ট অথবা ওয়াই-ফাই হটস্পট সেট-আপ করলে অন্য লোকজনও এটি দেখতে পেতে পারেন।"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ব্যাকরণগতভাবে লিঙ্গ পরিচয়"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ব্যাকরণগতভাবে লিঙ্গ পরিচয় বেছে নিন"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"স্ট্রিম শুনুন"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এর মাধ্যমে শুনতে অডিও স্ট্রিম QR কোড স্ক্যান করুন"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"শেয়ারিং চলাকালীন পাসওয়ার্ড এডিট করতে পারবেন না। পাসওয়ার্ড পরিবর্তন করতে, প্রথমে অডিও শেয়ারিং বন্ধ করুন।"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR কোড স্ক্যানার"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"সেটিংস সার্চ করুন"</string>
 </resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 104d05b..23ae5a3 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Vrijeme za spavanje"</item>
-    <item msgid="4152450357280759894">"Vožnja"</item>
-    <item msgid="7096549258219399423">"Uvjerljivo"</item>
-    <item msgid="2760716776980432977">"Upravljano"</item>
-    <item msgid="601734478369121764">"Zvijezda"</item>
-    <item msgid="6243809315432780521">"Kalendar"</item>
-    <item msgid="4913577903148415331">"Vrijeme"</item>
-    <item msgid="3653377604690057780">"Pozorište"</item>
-    <item msgid="3843711267408385410">"Cvijet"</item>
+    <item msgid="2750940760340557109">"Polumjesec"</item>
+    <item msgid="8513969636586738035">"Automobil"</item>
+    <item msgid="957392343846370509">"Um osobe"</item>
+    <item msgid="6734164279667121348">"Kalendar"</item>
+    <item msgid="4139559120353528558">"Sat"</item>
+    <item msgid="5157711296814769020">"Suncobran"</item>
+    <item msgid="6635328761318954115">"Šator"</item>
+    <item msgid="1711994778883392255">"Filmska traka"</item>
+    <item msgid="9097658401859604879">"Kontroler za igre"</item>
+    <item msgid="755931364157422565">"Bučica za teretanu"</item>
+    <item msgid="8894207806795738429">"Osoba baca loptu"</item>
+    <item msgid="2274801572149555103">"Osoba udara"</item>
+    <item msgid="8795037201506843325">"Plivanje"</item>
+    <item msgid="3558421426169430451">"Osoba pješači"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Alati radionice"</item>
+    <item msgid="4595330511709890409">"Aktovka"</item>
+    <item msgid="8352738347856724389">"Zvijezda"</item>
+    <item msgid="7082783098151998721">"Cvijet lotosa"</item>
+    <item msgid="5772220259409264724">"Nadzornik"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 122d8c8..3a0f3e7 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Obustavljeno"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Nepoznato"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pregled"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kôd"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Napravi manji"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Napravi veći"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Uvijek"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Postavke slušnog aparata"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Prečica, kompatibilnost sa slušnim aparatom"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Zadana postavka"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Nema zadanih postavki koje je programirao vaš audiolog"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Ažuriranje zadanih postavki nije uspjelo"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Izlaz zvuka"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Informacije o izlazu zvuka"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Odabir jezika za ovu aplikaciju nije dostupan u Postavkama."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Jezik se može razlikovati od jezika dostupnih u aplikaciji. Neke aplikacije možda neće podržavati ovu postavku."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Postavite jezik za svaku aplikaciju."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Vaš sistem, apikacije i web lokacije koriste prvi preferirani jezik koji je podržan."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Vaš uređaj, aplikacije i web lokacije koriste prvi podržani jezik s vaše liste željenih jezika.\n\nMnoge aplikacije će koristiti i regiju na osnovu vašeg željenog jezika da odaberu format datuma, brojeva i jedinica. Da promijenite regiju, dodajte jezik, a zatim odaberite željenu regiju."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Da odaberete jezik za svaku aplikaciju, idite u postavke jezika aplikacije."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saznajte više o jezicima aplikacije"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Promijeniti jezik sistema u %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno / # aplikacija ima pristup lokaciji}one{Uključeno / # aplikacija ima pristup lokaciji}few{Uključeno / # aplikacije imaju pristup lokaciji}other{Uključeno / # aplikacija ima pristup lokaciji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitavanje…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije s odobrenjem za Uređaje u blizini mogu otkriti relativan položaj povezanih uređaja."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije s odobrenjem za uređaje u blizini mogu otkrivati relativan položaj povezanih uređaja."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji je isključen za aplikacije i usluge. Lokacija uređaja se i dalje može slati hitnim službama kada pozovete broj za hitne slučajeve ili pošaljete SMS na njega."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Da to promijenite, idite u Postavke ChromeOS-a &gt; Privatnost i sigurnost &gt; Kontrole privatnosti &gt; Pristup lokaciji"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodani su lice i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodani su lice, otisak prsta i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodani su lice, otisci prstiju i <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Otključavanje udaljenog autentifikatora"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Sat je dodan"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Postavite sat"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o Otključavanju pomoću sata"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Uklanjanje sata"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otključavanje otiskom prsta i licem"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Otključavanje licem i otiskom prsta"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za radni profil"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebno je postavljanje"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Lice i otisci prstiju su dodani"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Postavljanje privatnog prostora…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Postavljanje privatnog prostora nije uspjelo"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Pokušaj ponovo"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Izađi"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privatni prostor nije dostupan.\nPogledajte moguće uzroke"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Pogledajte moguće uzroke"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Odabrati novo zaključavanje privatnog prostora?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Možete postaviti novo zaključavanje samo za privatni prostor ili koristiti isto zaključavanje koje koristite za otključavanje uređaja"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Koristi zaključavanje ekrana"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Ponovo pokrenuti uređaj?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljno zapisivanje NFC podataka je namijenjeno samo za svrhe programiranja. Dodatni NFC podaci su uključeni u izvještaje o greškama, koji mogu sadržavati privatne podatke. Ponovo pokrenite uređaj da promijenite ovu postavku."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Ponovo pokreni"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Uključeno"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Isključeno"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Vanjski ekran"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Koristi vanjski ekran"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Rezolucija ekrana"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Veza s vanjskim ekranom je prekinuta"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotacija"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standardno"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Promjena rotacije ili rezolucije može zaustaviti sve trenutno pokrenute aplikacije"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Da preslikate ekran, uređaj mora biti povezan s vanjskim ekranom"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Više opcija"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Emitiranje"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"preslikavanje"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Omogući bežični prikaz"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Prilagodljive"</string>
     <string name="brightness" msgid="6216871641021779698">"Nivo osvijetljenosti"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Prilagodljiva osvijetljenost"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"O prilagodljivoj osvijetljenosti"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Osvijetljenost ekrana će se automatski prilagođavati vašem okruženju i aktivnostima. Klizač možete ručno pomjerati kako bi prilagodljiva osvijetljenost zapamtila vaše postavke."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Uključeno"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Isključeno"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tastatura"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Koristi tastaturu na ekranu"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na ekranu dok je fizička tastatura aktivna"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Slučajni pritisci tipki"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatura zanemaruje brzo ponavljana pritiskanja iste tipke u rasponu od <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Sporo reagiranje tipki"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Prilagođava vrijeme potrebno za aktiviranje pritiskanja tipke na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Koristite fizičku tastaturu da upravljate mišem."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Promjena ispune pokazivača u žutu"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Promjena ispune pokazivača u ružičastu"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Promjena ispune pokazivača u plavu"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil poteza pokazivačem"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bijela"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Crna"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ništa"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučite pokrete dodirne podloge"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"dodirna tabla, tabla na dodir, miš, kursor, klizanje, prevlačenje, desni klik, klik, pokazivač"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"desni klik, dodir"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Korisnički odabrano: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Govor"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Brzina pokazivača"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Veličina pokazivača"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Smanjivanje veličine pokazivača"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Povećavanje veličine pokazivača"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Kontroler za igre"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Preusmjeravanje vibracije"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Pošalji vibraciju na kontroler za igre kada je povezan."</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Otkaži"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Postavke uvećavanja"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Pomicanjem prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Premjestite povećalo s 1 prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Prevlačite s 1 prstom da se krećete na ekranu"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pomaknite područje uvećanja prevlačenjem prstom."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pomaknite područje uvećavanja prevlačenjem s dva prsta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nije dostupno dok se uvećava samo dio ekrana"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Dodirnite dugme da zumirate"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Brzo uvećajte ekran da se uveća sadržaj"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Da uvećate:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Koristite prečicu da pokrenete uvećavanje.&lt;br/&gt; {1,number,integer}. Dodirnite ekran.&lt;br/&gt; {2,number,integer}. Prevlačite s 2 prsta da se krećete po ekranu.&lt;br/&gt; {3,number,integer}. Uhvatite s 2 prsta da podesite zumiranje.&lt;br/&gt; {4,number,integer}. Koristite prečicu da zaustavite uvećavanje.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Da uvećate privremeno:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Provjerite je li vrsta uvećavanja postavljena na prikaz preko cijelog ekrana.&lt;br/&gt; {1,number,integer}. Koristite prečicu da pokrenete uvećavanje.&lt;br/&gt; {2,number,integer}. Dodirnite i zadržite bilo gdje na ekranu.&lt;br/&gt; {3,number,integer}. Prevlačite prstom da se krećete po ekranu.&lt;br/&gt; {4,number,integer}. Podignite prst da zaustavite uvećavanje."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Da uvećate:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Upotrijebite prečicu da pokrenete uvećavanje&lt;br/&gt; {1,number,integer}. Dodirnite ekran&lt;br/&gt; {2,number,integer}. Prevlačite s 2 prsta da se krećete na ekranu&lt;br/&gt; {3,number,integer}. Spojite 2 prsta da podesite zumiranje&lt;br/&gt; {4,number,integer}. Upotrijebite prečicu da zaustavite uvećavanje&lt;br/&gt;&lt;br/&gt; Možete i privremeno uvećavati i drugo."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Da uvećate:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Upotrijebite prečicu da pokrenete uvećavanje&lt;br/&gt; {1,number,integer}. Dodirnite ekran&lt;br/&gt; {2,number,integer}. Prevlačite s 1 ili 2 prsta da se krećete na ekranu&lt;br/&gt; {3,number,integer}. Spojite 2 prsta da podesite zumiranje&lt;br/&gt; {4,number,integer}. Upotrijebite prečicu da zaustavite uvećavanje&lt;br/&gt;&lt;br/&gt; Možete i privremeno uvećavati i drugo."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kada je uvećavanje uključeno, možete uvećavati sadržaj na ekranu.\n\n"<b>"Da zumirate"</b>", pokrenite uvećavanje, a zatim dodirnite ekran bilo gdje.\n"<ul><li>"Prevucite dva ili više prstiju za klizanje"</li>\n<li>"Uhvatite s dva ili više prstiju za podešavanje zumiranja"</li></ul>\n\n<b>"Za privremeno zumiranje"</b>" pokrenite uvećanje, a zatim dodirnite ekran bilo gdje i zadržite.\n"<ul><li>"Prevucite za kretanje po ekranu"</li>\n<li>"Podignite prst za umanjivanje"</li></ul>\n\n"Nije moguće uvećati na tastaturi ili traci za navigaciju."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Stranica <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Prečica dugmeta za pristupačnost"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dodirnite plutajuće dugme"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pokret za pristupačnost"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dodirnite dugme za pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na dnu ekrana. Da prebacujete između funkcija, dodirnite i zadržite dugme za pristupačnost."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Prevucite s dva prsta prema gore s dna ekrana.\n\nDa prebacujete između funkcija, s dva prsta prevucite prema gore i zadržite."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Prevucite s tri prsta prema gore s dna ekrana.\n\nDa prebacujete između funkcija, prevucite s tri prsta prema gore i zadržite."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Prevucite s dna ekrana nagore. Da prebacujete između funkcija, prevucite nagore i zadržite.}one{Prevucite s dna ekrana nagore s # prstom. Da prebacujete između funkcija, prevucite nagore s # prstom i zadržite.}few{Prevucite s dna ekrana nagore s # prsta. Da prebacujete između funkcija, prevucite nagore s # prsta i zadržite.}other{Prevucite s dna ekrana nagore sa # prstiju. Da prebacujete između funkcija, prevucite nagore sa # prstiju i zadržite.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Više opcija"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> – saznajte više"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tipke za jačinu zvuka"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tipke za jačinu zvuka"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite i zadržite obje tipke za jačinu zvuka"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvostruki dodir ekrana s dva prsta"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvostruki dodir s %1$d prsta"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Brzo dodirnite ekran dvaput s %1$d prsta"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trostruki dodir"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Brzo dodirnite ekran %1$d puta. Ovo može usporiti uređaj."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvostruki dodir s %1$d prsta"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite ekran {0,number,integer} put(a) s dva prsta"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dodirnite ekran triput"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trostruki dodir"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Brzo dodirnite ekran sljedeći broj puta: {0,number,integer}. Ova prečica može usporiti uređaj"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Napredno"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Dugme Pirstupačnost podešeno je za aktiviranje usluge <xliff:g id="SERVICE">%1$s</xliff:g>. Da koristite uvećavanje, dodirnite i držite dugme Pristupačnost, zatim odaberite uvećavanje."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pokret za pristupačnost je postavljen na <xliff:g id="SERVICE">%1$s</xliff:g>. Za korištenje uvećavanja prevucite s dva prsta prema gore s dna ekrana i zadržite. Nakon toga odaberite uvećavanje."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ova usluga ne radi ispravno."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Prečice za pristupačnost"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Prikaži u Brzim postavkama"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Crveno-zeleno"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Crveno-zeleno"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Crveno-zeleno, slabo prepoznavanje zelene"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Crveno-zeleno, slabo prepoznavanje crvene"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Plavo-žuto"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nijanse sive"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitet"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Slabo prepoznavanje zelene, deuteranomalija"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Slabo prepoznavanje crvene, protanomalija"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nije dostupno za način rada za nijanse sive ili kada je ispravka boja onemogućena"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalija"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalija"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Dodatno zatamnjenje"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Dodatno zatamni ekran"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cijan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Žuta"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Dozvoliti da usluga <xliff:g id="SERVICE">%1$s</xliff:g> ima punu kontrolu nad vašim uređajem?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"Usluga <xliff:g id="SERVICE">%1$s</xliff:g> mora:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Aplikacija nije dala odobrenje za zahtjev pa postavke ne mogu potvrditi vaš odgovor."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Usluga <xliff:g id="SERVICE">%1$s</xliff:g> zahtijeva potpunu kontrolu ovog uređaja. Usluga može čitati sadržaj ekrana i djelovati u ime korisnika s potrebama za pristupačnost. Ovaj nivo kontrole nije prikladan za većinu aplikacija."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Puna kontrola je prikladna za aplikacije koje vam pomažu kod potreba pristupačnosti, ali nije za većinu aplikacija."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Prikaz i kontrola ekrana"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Može čitati sav sadržaj na ekranu i prikazivati sadržaj preko drugih aplikacija."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Prikaz i izvršavanje radnji"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijom ili hardverskim senzorom te ostvariti interakciju s aplikacijama umjesto vas."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nema}=1{Postavljen je 1 raspored}one{Postavljen je # raspored}few{Postavljena su # rasporeda}other{Postavljeno je # rasporeda}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ne ometaj"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritetni načini rada"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Dodajte način rada"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimizirajte ometanja i preuzmite kontrolu nad svojom pažnjom uz načine rada za spavanje, posao, vožnju i sve ostalo."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Kreirajte vlastiti način rada"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Primajte obavještenja samo od važnih osoba i aplikacija"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Postavite raspored"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Raspored se zasniva na"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dan i vrijeme"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00–17:00 radnim danima\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Događaji u kalendaru"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Način rada {mode_1} je aktivan}=2{Načini rada {mode_1} i {mode_2} su aktivni}=3{Načini rada {mode_1}, {mode_2} i {mode_3} su aktivni}one{Načini rada {mode_1} i {mode_2} te još # način rada su aktivni}few{Načini rada {mode_1} i {mode_2} te još # načina rada su aktivni}other{Načini rada {mode_1} i {mode_2} te još # načina rada su aktivni}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 način rada se može automatski uključivati}one{# način rada se može automatski uključivati}few{# načina rada se mogu automatski uključivati}other{# načina rada se može automatski uključivati}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"UKLJUČENO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nije postavljeno"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Onemogućeno"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Kreirajte način rada"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Prilagođeno"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Uključi sada"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Isključi"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Način rada nije pronađen"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograničite ometanja"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokirajte prekide i ometanja"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Postavite način rada <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Uključi način rada Ne ometaj"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Zvuci alarma i medija mogu prekinuti"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Rasporedi"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Izbrišite rasporede"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Izbriši"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Promijenite naziv"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Izbriši"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Izbrisati način rada \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Uredi"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Rasporedi"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Raspored"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automatski uključi"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Dodajte kalendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Koristite kalendar"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Raspored"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Postavite raspored"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kada uključiti automatski"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Raspored događaja"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Uključite tokom događaja za"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kada je odgovor na poziv"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Vremenski raspored"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Raspored"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Raspored"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Dozvoli ometanja koja proizvode zvuk"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokiranje vizuelnih ometanja"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Dozvolite vizualnu signalizaciju"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Obavještenja koja vam se mogu prikazivati"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Dodatne radnje"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filteri obavještenja"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Više postavki"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Isključeno}=1{Isključeno / 1 način rada se može automatski uključivati}one{Isključeno / # način rada se može automatski uključivati}few{Isključeno / # načina rada se mogu automatski uključivati}other{Isključeno / # načina rada se mogu automatski uključivati}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Postavke ekrana"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opcije ekrana"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Nijanse sive"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"omogući tamnu temu"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Postavite OS i aplikacije da preferiraju svijetli tekst na tamnoj pozadini jer to može biti lakše za oči, a na nekim uređajima omogućava i značajne uštede baterije"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nema promjena prikaza}=1{{effect_1}}=2{{effect_1} i {effect_2}}=3{{effect_1}, {effect_2} i {effect_3}}one{{effect_1}, {effect_2} i još #}few{{effect_1}, {effect_2} i još #}other{{effect_1}, {effect_2} i još #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ograničite šta vas može obavještavati"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Prekidi se ne filtriraju"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opcije prikaza filtriranih obavještenja"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kada je uključena funkcija Ne ometaj"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Bez zvuka obavještenja"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"otvaranje obavještenja"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Dozvoli odgađanje obavještenja"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Tačka za obavještenja na ikoni aplikacije"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paketi obavještenja"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Oblačići"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblačići"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ovaj razgovor u oblačiću"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ova aplikacija ne podržava poboljšane postavke"</string>
     <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="4737150709382859870">"Prilagodljiva obavještenja"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Koristite prilagodljiva obavještenja"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kada unutar kratkog vremenskog raspona dobijete mnogo obavještenja, telefon će smanjiti jačinu zvuka i minimizirati skočne prozore na ekranu do dvije minute. Pozivi, alarmi i prioritetni razgovori će i dalje vibrirati, zvoniti ili se prikazivati na ekranu, a sva obavještenja ćete moći lako pronaći kada prevučete s vrha ekrana nadolje."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Stišavanje obavještenja"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Koristite stišavanje obavještenja"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kada unutar kratkog vremenskog raspona primite mnogo obavještenja, uređaj će smanjiti jačinu zvuka i minimizirati obavještenja do 2 minute. Ovo ne utiče na pozive, alarme i prioritetne razgovore. \n\nObavještenja primljena tokom stišavanja možete pronaći povlačenjem nadolje s vrha ekrana."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Primijeni na poslovne profile"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Primijenite na aplikacije radnog profila"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Usluge pomagača za VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorije"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Ostalo"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ova aplikacija nije objavila nikakva obavještenja"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Prikaži kategorije koje se ne koriste"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Dodatne postavke u aplikaciji"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Prikaži kategorije koje se ne koriste"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Sakrij kategorije koje se ne koriste"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Razgovori"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Svi razgovori"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"svi razgovori"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioritetni razgovori"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritetni razgovori"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nema"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikacije koje vas mogu prekinuti"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Odabrane aplikacije"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nijedna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Sve"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nijedna aplikacija ne može prekinuti}=1{Aplikacija {app_1} može prekinuti}=2{Aplikacije {app_1} i {app_2} mogu prekinuti}=3{Aplikacije {app_1}, {app_2} i {app_3} mogu prekinuti}one{Aplikacije {app_1}, {app_2} i još # mogu prekinuti}few{Aplikacije {app_1}, {app_2} i još # mogu prekinuti}other{Aplikacije {app_1}, {app_2} i još # mogu prekinuti}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (radno)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Računanje…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"još <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dozvolite aplikacijama da zanemaruju"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje vas mogu prekinuti"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Odaberite još aplikacija"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ništa ne može prekinuti"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Niko ne može prekinuti"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Neke osobe mogu prekinuti"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Ponovni pozivaoci mogu ometati"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Sve osobe mogu prekinuti"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Ponovni pozivaoci"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dozvoli ponovne pozivaoce"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Promjena na alarme samo na jedan sat do {time}}one{Promjena na alarme samo na # sat do {time}}few{Promjena na alarme samo na # sata do {time}}other{Promjena na alarme samo na # sati do {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Pređi na postavku Samo alarmi do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Promijeniti u uvijek prekini"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Promijenite naziv"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Promijenite ikonu"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Promijenite ikonu"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Uredite način rada"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Kreirajte način rada"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Prilagođeni način rada"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naziv načina rada"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Događaji u kalendaru"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina vremena za spavanje"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"U toku vožnje"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Postavke aplikacije"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacije i postavke u aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Onemogućiti nač. rada <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ovaj način rada se nikada neće uključiti kada je onemogućen"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogući"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Omogućiti način rada <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ovaj način rada će se možda automatski uključiti na osnovu postavki"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogući"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Postavite način rada koji je u skladu s redovnim rasporedom"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Postavite način rada da sinhronizirate s događajima u kalendaru i odgovorima na pozive"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Dizajnirajte opuštajuću rutinu za spavanje. Postavite alarme, zatamnite ekran i blokirajte obavještenja."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dajte prioritet sigurnosti na putu radi fokusirane vožnje bez ometanja"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokirajte ometanja ili prekide s uređaja radi fokusiranja"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminirajte sva ometanja radi tihog okruženja"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizirajte iskustva i postavke uređaja za razne korisnike"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimizirajte prekide dozvoljavanjem samo važnim osobama i aplikacijama da vas kontaktiraju"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Upozorenje"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Zatvori"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Slanje povratnih informacija o uređaju"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Maska"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Ploča s postavkama"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Nametni način rada na računaru"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Nametanje eksperimentalnog načina rada na računaru na sekundarnim ekranima"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogući prilagodljive prozore"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Omogući prilagodljive prozore na sekundarnom ekranu"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogući aplikacije nepromjenjive veličine u više prozora"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogućava prikaz aplikacija nepromjenjive veličine u više prozora"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Nadjačaj nametanje tamne teme"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"prijenos podataka na mobilnoj mreži"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Radi poboljšanja iskustva s uređajem aplikacije i usluge i dalje mogu u bilo kojem trenutku skenirati WiFi mreže, čak i kada je WiFi isključen. Ovim se, naprimjer, mogu poboljšati funkcije i usluge zasnovane na lokaciji. Ovo možete promijeniti u postavkama Skeniranja WiFi mreže."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Izmijenite"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Privremeno povezano"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Privremeno se koristi <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Koristi kačenje aplikacije"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Koristi opcije za programere"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Koristi uslugu štampanja"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Dozvoli više korisnika"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Dozvoli prebacivanje između korisnika"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"dozvoliti, višestruko, korisnik, dopustiti, mnogo"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"više, korisnici, profili, osobe, računi, promjena, mnogo"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Koristi bežično otklanjanje grešaka"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Odaberite šta će se prikazivati na ekranu kada je tablet na priključnoj stanici. Uređaj može trošiti više energije kada se koristi čuvar ekrana."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Prilagodite"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Prilagodite <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Potrebno je ponovno pokretanje da se omogući podrška za slobodni oblik."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Potrebno je ponovno pokretanje da se nametne način rada računara na sekundarnim ekranima."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Potrebno je ponovno pokretanje da se omogući podrška za prilagodljive prozore."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Potrebno je ponovno pokretanje da se ažurira dostupnost prilagodljivih prozora."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Potrebno je ponovno pokretanje da se omoguće prilagodljivi prozori na sekundarnim ekranima."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Ponovo pokreni sada"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Ponovo pokreni kasnije"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorni zvuk"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ružičasta"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Ljubičasta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Gotovo"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Sačuvaj"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Otkaži"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Zadano"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Srednje"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Uključeno"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Isključeno"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Uključeno"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% lijevo, %2$d%% desno"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% desno, %2$d%% lijevo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Naziv uređaja je vidljiv aplikacijama koje ste instalirali. Također će ga moći vidjeti druge osobe prilikom povezivanja s Bluetooth uređajima i WiFi mrežom ili postavljanja WiFi pristupne tačke."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatički rod"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Odaberite gramatički rod"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Slušajte prijenos"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenirajte QR kôd prijenosa zvuka da slušate s uređaja <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Nije moguće urediti lozinku tokom dijeljenja. Da promijenite lozinku, prvo isključite dijeljenje zvuka."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skener QR koda"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Pretražite postavke"</string>
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index a2398b8..3a85e92 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Hora de dormir"</item>
-    <item msgid="4152450357280759894">"Conducció"</item>
-    <item msgid="7096549258219399423">"Immersiu"</item>
-    <item msgid="2760716776980432977">"Gestionat"</item>
-    <item msgid="601734478369121764">"Estrella"</item>
-    <item msgid="6243809315432780521">"Calendari"</item>
-    <item msgid="4913577903148415331">"Hora"</item>
-    <item msgid="3653377604690057780">"Teatre"</item>
-    <item msgid="3843711267408385410">"Flor"</item>
+    <item msgid="2750940760340557109">"Mitja lluna"</item>
+    <item msgid="8513969636586738035">"Cotxe"</item>
+    <item msgid="957392343846370509">"Ment d\'una persona"</item>
+    <item msgid="6734164279667121348">"Calendari"</item>
+    <item msgid="4139559120353528558">"Rellotge"</item>
+    <item msgid="5157711296814769020">"Para-sol"</item>
+    <item msgid="6635328761318954115">"Tenda de campanya"</item>
+    <item msgid="1711994778883392255">"Rodet de pel·lícula"</item>
+    <item msgid="9097658401859604879">"Comandament de joc"</item>
+    <item msgid="755931364157422565">"Pesa de gimnàs"</item>
+    <item msgid="8894207806795738429">"Persona que llança una pilota"</item>
+    <item msgid="2274801572149555103">"Persona que fa una puntada de peu"</item>
+    <item msgid="8795037201506843325">"Natació"</item>
+    <item msgid="3558421426169430451">"Persona que fa excursionisme"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Eines d\'un taller"</item>
+    <item msgid="4595330511709890409">"Maletí"</item>
+    <item msgid="8352738347856724389">"Estrella"</item>
+    <item msgid="7082783098151998721">"Flor de lotus"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 123fa70..8aca80c 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspesa"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Desconegut"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Previsualització"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Codi QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Redueix"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Amplia"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Configuració de l\'audiòfon"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Drecera, compatibilitat amb audiòfons"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Valors predefinits"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"L\'audiòleg no ha programat cap valor predefinit"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"No s\'ha pogut actualitzar el valor predefinit"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Sortida d\'àudio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Sobre la sortida d\'àudio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La selecció d\'idioma per a aquesta aplicació no està disponible des de Configuració."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"És possible que l\'idioma no coincideixi amb els que hi ha disponibles a l\'aplicació. Algunes aplicacions no admeten aquesta opció de configuració."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Configura l\'idioma per a cada aplicació."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"El sistema, les aplicacions i els llocs web utilitzen el primer idioma admès dels teus idiomes preferits."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"El dispositiu, les aplicacions i els llocs web utilitzen el primer idioma admès de la teva llista d\'idiomes preferits.\n\nMoltes aplicacions també utilitzen la regió del teu idioma preferit per formatar les dates, els números i les unitats. Per canviar la regió, afegeix un idioma i, a continuació, tria la regió que prefereixis."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Per seleccionar un idioma per a cada aplicació, ves a la configuració d\'idioma de l\'aplicació."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Més informació sobre els idiomes de les aplicacions"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vols canviar l\'idioma del sistema a %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivat"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada (# aplicació té accés a la ubicació)}other{Activada (# aplicacions tenen accés a la ubicació)}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregant…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Les aplicacions amb permís per trobar dispositius propers poden determinar la posició relativa dels dispositius connectats."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Les aplicacions que tenen el permís de dispositius propers poden determinar la posició relativa dels dispositius connectats."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accés a la ubicació està desactivat per a aplicacions i serveis. Tanmateix, la ubicació del dispositiu es pot continuar enviant als serveis d\'emergències quan truquis o enviïs un missatge de text a un número d\'emergència."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Més informació sobre la configuració d\'ubicació"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Per canviar-ho, ves a Configuració de ChromeOS &gt; Privadesa i seguretat &gt; Controls de privadesa &gt; Accés a la ubicació"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Cara i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Cara, empremta digital i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Empremtes digitals, cara i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueig de Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Rellotge afegit"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura el rellotge"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Més informació sobre Desbloqueig amb rellotge"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Afegeix un rellotge"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Suprimeix el rellotge"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueig facial i amb empremta digital"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Desbloqueig facial i amb empremta digital"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueig facial i amb empremta digital per a la feina"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cal fer la configuració"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Cara i empremtes digitals afegides"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"S\'està configurant l\'espai privat…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"No s\'ha pogut configurar un espai privat"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Torna-ho a provar"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Surt"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"L\'espai privat no està disponible.\nConsulta les causes possibles."</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Consulta les causes possibles"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Vols triar un bloqueig nou per a l\'espai privat?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Pots definir un bloqueig nou només per a l\'espai privat o utilitzar el mateix que fas servir per desbloquejar el dispositiu"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Utilitza el bloqueig de pantalla"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vols reiniciar el dispositiu?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"El registre detallat de l\'NFC només està indicat per a activitats de desenvolupament. Les dades de l\'NFC addicionals estan incloses als informes d\'errors, que poden contenir informació privada. Reinicia el dispositiu per canviar aquesta configuració."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reinicia"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Activat"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desactivat"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Utilitza la pantalla externa"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolució de la pantalla"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"La pantalla externa està desconnectada"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotació"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Estàndard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Canviar la rotació o la resolució pot aturar les aplicacions que s\'estiguin executant ara mateix"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"El dispositiu ha d\'estar connectat a una pantalla externa per duplicar la pantalla"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Més opcions"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Emet"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"duplicar"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Activa pantalla sense fil"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptatius"</string>
     <string name="brightness" msgid="6216871641021779698">"Nivell de brillantor"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Brillantor adaptativa"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Sobre la brillantor adaptativa"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"La brillantor de la pantalla s\'ajustarà automàticament al teu entorn i a la teva activitat. Pots moure el control lliscant manualment perquè la brillantor adaptativa aprengui les teves preferències."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activat"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desactivat"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcions"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilitat"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclat físic"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Utilitza el teclat en pantalla"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Mantén-lo en pantalla mentre el teclat físic està actiu"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tecles de rebot"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"El teclat ignora les pulsacions repetides ràpidament de la mateixa tecla en un interval de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tecles lentes"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta el temps que tarda la pulsació d\'una tecla en activar-se a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Utilitza el teclat físic per controlar el ratolí."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Canvia emplenament del punter a groc"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Canvia emplenament del punter a rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Canvia emplenament del punter a blau"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Estil de traç de punter"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanc"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negre"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Cap"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprèn els gestos del ratolí tàctil"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ratolí tàctil, ratolí, cursor, desplaçar-se, lliscar, fer clic amb el botó dret, fer clic, punter"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"fer clic amb el botó dret, tocar"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Seleccionat per l\'usuari: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Parla"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocitat del punter"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Escala del punter"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Redueix l\'escala del punter"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Augmenta l\'escala del punter"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Controlador de joc"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirigeix la vibració"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Envia la vibració al controlador de joc quan estigui connectat"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continua igualment"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel·la"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuració de l\'ampliació"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Desplaçament amb un dit"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mou la lupa amb 1 dit"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrossega 1 dit per moure\'t per la pantalla"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mou l\'àrea d\'ampliació arrossegant un dit."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mou l\'àrea d\'ampliació arrossegant dos dits."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"No està disponible mentre només s\'amplia una part de la pantalla"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toca un botó per fer zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Amplia la pantalla ràpidament per engrandir el contingut"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Per ampliar&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. Utilitza la drecera per iniciar l\'ampliació.&lt;br/&gt; {1,number,integer}. Toca la pantalla.&lt;br/&gt; {2,number,integer}. Arrossega 2 dits per moure\'t per la pantalla.&lt;br/&gt; {3,number,integer}. Pinça amb 2 dits per ajustar el zoom.&lt;br/&gt; {4,number,integer}. Utilitza la drecera per aturar l\'ampliació.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Per ampliar temporalment&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. Assegura\'t que el tipus d\'ampliació estigui definit com a pantalla completa.&lt;br/&gt; {1,number,integer}. Utilitza la drecera per iniciar l\'ampliació.&lt;br/&gt; {2,number,integer}. Mantén premut qualsevol punt de la pantalla.&lt;br/&gt; {3,number,integer}. Arrossega un dit per moure\'t per la pantalla.&lt;br/&gt; {4,number,integer}. Aixeca el dit per aturar l\'ampliació."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Per ampliar&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. Utilitza una drecera per iniciar l\'ampliació.&lt;br/&gt; {1,number,integer}. Toca la pantalla.&lt;br/&gt; {2,number,integer}. Arrossega 2 dits per moure\'t per la pantalla.&lt;br/&gt; {3,number,integer}. Pinça amb 2 dits per ajustar el zoom.&lt;br/&gt; {4,number,integer}. Utilitza la drecera per aturar l\'ampliació.&lt;br/&gt;&lt;br/&gt; També pots ampliar temporalment i més."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Per ampliar&lt;/b&gt;:&lt;br/&gt; {0,number,integer}. Utilitza una drecera per iniciar l\'ampliació.&lt;br/&gt; {1,number,integer}. Toca la pantalla.&lt;br/&gt; {2,number,integer}. Arrossega 1 o 2 dits per moure\'t per la pantalla.&lt;br/&gt; {3,number,integer}. Pinça amb 2 dits per ajustar el zoom.&lt;br/&gt; {4,number,integer}. Utilitza la drecera per aturar l\'ampliació.&lt;br/&gt;&lt;br/&gt; També pots ampliar temporalment i més."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Quan l\'opció d\'ampliació està activada, pots ampliar la pantalla.\n\n"<b>"Per ampliar-la"</b>", activa l\'opció i toca qualsevol punt de la pantalla.\n"<ul><li>"Arrossega dos o més dits per desplaçar-te."</li>\n<li>"Pinça amb dos o més dits per ajustar el zoom."</li></ul>\n\n<b>"Per fer zoom temporalment"</b>", activa l\'ampliació i mantén premut qualsevol punt de la pantalla.\n"<ul><li>"Arrossega per moure\'t per la pantalla."</li>\n<li>"Aixeca el dit per allunyar la pantalla."</li></ul>\n\n"No es pot ampliar el teclat ni la barra de navegació."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Pàgina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Drecera del botó d\'accessibilitat"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"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_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"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_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_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>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tecles de volum"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tecles de volum"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén premudes les dues tecles de volum"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Doble toc a la pantalla amb dos dits"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Fes doble toc amb %1$d dits"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toca ràpidament la pantalla dues vegades amb %1$d dits"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Fes triple toc"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toca ràpidament la pantalla %1$d vegades. Aquesta acció pot alentir el dispositiu."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Fes doble toc amb %1$d dits"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca ràpidament la pantalla {0,number,integer} vegades amb dos dits"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Fes tres tocs a la pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"fes triple toc"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toca ràpidament la pantalla {0,number,integer} vegades. És possible que aquesta drecera alenteixi el dispositiu."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Configuració avançada"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"El botó d\'accessibilitat està configurat per a <xliff:g id="SERVICE">%1$s</xliff:g>. Per utilitzar la funció d\'ampliació, toca i mantén premut el botó d\'accessibilitat i, a continuació, selecciona l\'ampliació."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"El gest d\'accessibilitat està definit per a la funció <xliff:g id="SERVICE">%1$s</xliff:g>. Per utilitzar l\'ampliació, fes lliscar els dos dits cap amunt des de la part inferior de la pantalla i mantén premut. A continuació, selecciona l\'amplificació."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Aquest servei no funciona correctament."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Dreceres d\'accessibilitat"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostra a configuració ràpida"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Vermell-verd"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Vermell-verd"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Vermell-verd, percepció dèbil del verd"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Vermell-verd, percepció dèbil del vermell"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blau-groc"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grisos"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitat"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Percepció dèbil del verd, deuteranomalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Percepció dèbil del vermell, protanomalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"No està disponible per al mode d\'escala de grisos ni quan la correcció de color està desactivada"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Atenuació extra"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Atenuació extra de la pantalla"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cian"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Groc"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Vols que <xliff:g id="SERVICE">%1$s</xliff:g> controli el teu dispositiu per complet?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necessita:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Com que hi ha una aplicació que oculta una sol·licitud de permís, no es pot verificar la teva resposta des de la configuració."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> sol·licita un control total del dispositiu. El servei pot llegir la pantalla i actuar en nom dels usuaris amb necessitats d\'accessibilitat. Aquest nivell de control no és adequat per a la majoria d\'aplicacions."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"El control total és adequat per a les aplicacions que t\'ajuden amb l\'accessibilitat, però no per a la majoria de les aplicacions."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Veure i controlar la pantalla"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pot llegir tot el contingut de la pantalla i mostrar contingut per sobre d\'altres aplicacions."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Veure i dur a terme accions"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pot fer un seguiment de les teves interaccions amb una aplicació o un sensor de maquinari, i interaccionar amb aplicacions en nom teu."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permet"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denega"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactiva"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Cap}=1{S\'ha definit 1 programació}other{S\'han definit # programacions}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"No molestis"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modes prioritaris"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Afegeix un mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimitza les distraccions i controla la teva atenció amb modes per dormir, treballar, conduir i més."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crea el teu propi mode"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Rep notificacions només de persones i aplicacions importants"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Defineix una programació"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Programació basada en"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dia i hora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"De 9:00 a 17:00 entre setmana\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Esdeveniments del calendari"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} està actiu}=2{{mode_1} i {mode_2} estan actius}=3{{mode_1}, {mode_2} i {mode_3} estan actius}other{{mode_1}, {mode_2} i # més estan actius}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode es pot activar automàticament}other{# modes es poden activar automàticament}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVAT"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"No definit"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Desactivat"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Crea un mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalitzat"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Activa ara"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desactiva"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"No s\'ha trobat el mode"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Restringeix les interrupcions"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloqueja les interrupcions i les distraccions"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configura <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activa el mode No molestis"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Les alarmes i els sons multimèdia poden interrompre"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programacions"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Suprimeix les programacions"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Suprimeix"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Canvia el nom"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Suprimeix"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vols suprimir el mode <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edita"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programacions"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programació"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Activa automàticament"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Afegeix un calendari"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Utilitza el calendari"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programació"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Defineix una programació"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Quan s\'activa automàticament"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programació de l\'esdeveniment"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Activa als esdeveniments de"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Si la resposta és"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Programació de l\'hora"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programa"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programació"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Permet les interrupcions sonores"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloqueja interrupcions visuals"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permet senyals visuals"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificacions que et poden arribar"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Accions addicionals"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtres de notificacions"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Més opcions"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desactivat}=1{Desactivat / Es pot activar automàticament 1 mode}other{Desactivat / Es poden activar automàticament # modes}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Configuració de la pantalla"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opcions de pantalla"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de grisos"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"activa el tema fosc"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Canvia l\'SO i les aplicacions perquè prioritzin el text clar sobre fons fosc, que pot ser millor per a la vista i suposa un estalvi de bateria important en alguns dispositius"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{No hi ha cap canvi a la pantalla}=1{{effect_1}}=2{{effect_1} i {effect_2}}=3{{effect_1}, {effect_2} i {effect_3}}other{{effect_1}, {effect_2} i # més}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limita què se\'t pot notificar"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"No es filtra cap interrupció"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opcions de pantalla per a les notificacions filtrades"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Quan el mode No molestis estigui activat"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Notificacions sense so"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"obre la notificació"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permet posposar les notificacions"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Punt de notificació a la icona de l\'aplicació"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paquets de notificacions"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bombolles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bombolles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostra aquesta conversa com a bombolla"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aquesta aplicació no és compatible amb la configuració avançada"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Més opcions de configuració"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Hi ha més opcions de configuració disponibles en aquesta aplicació"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificacions adaptatives"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Utilitza les notificacions adaptatives"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Quan rebis moltes notificacions en poc temps, el telèfon abaixarà el volum i minimitzarà les finestres emergents en pantalla durant un màxim de dos minuts. Les alertes de trucades, alarmes i converses prioritàries continuaran vibrant, emetent sons i mostrant-se a la pantalla. Totes les notificacions es poden trobar fàcilment en lliscar cap avall des de la part superior de la pantalla."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Moderació de notificacions"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Utilitza la moderació de notificacions"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Quan rebis moltes notificacions en poc temps, el dispositiu abaixarà el volum i minimitzarà les alertes durant un màxim de 2 minuts. Les trucades, les alarmes i les converses prioritàries no es veuran afectades. \n\nLes notificacions rebudes durant el període de moderació es podran trobar en lliscar cap avall des de la part superior de la pantalla."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplica als perfils de treball"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplica a les aplicacions del perfil de treball"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serveis d\'ajuda per a RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categories"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Altres"</string>
     <string name="no_channels" msgid="4716199078612071915">"Aquesta aplicació no ha publicat cap notificació"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostra les categories no utilitzades"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Opcions de configuració addicionals a l\'aplicació"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostra les categories no utilitzades"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Amaga les categories no utilitzades"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Converses"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Totes les converses"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"totes les converses"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Converses prioritàries"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"converses prioritàries"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Cap"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplicacions que poden interrompre"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicacions seleccionades"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Cap"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tot"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Cap aplicació no pot interrompre}=1{{app_1} pot interrompre}=2{{app_1} i {app_2} poden interrompre}=3{{app_1}, {app_2} i {app_3} poden interrompre}other{{app_1}, {app_2} i # més poden interrompre}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (treball)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"S\'està calculant…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permet que les aplicacions ignorin el mode No molestis"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicacions que poden interrompre"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecciona més aplicacions"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Res no pot interrompre"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ningú no pot interrompre"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Algunes persones poden interrompre"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Les trucades repetides poden interrompre"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Tothom pot interrompre"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Trucades repetides"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permet les trucades repetides"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Canvia al mode Només alarmes durant 1 hora fins a les {time}}other{Canvia al mode Només alarmes durant # hores fins a les {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Canvia al mode Només alarmes fins a les <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Canvia al mode Interromp sempre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Canvia el nom"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Canvia la icona"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Canvia la icona"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Mode d\'edició"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Crea un mode"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode personalitzat"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nom del mode"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Esdeveniments del calendari"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina Hora de dormir"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Mentre condueixes"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Configuració de l\'aplicació"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informació i configuració a <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gestionat per <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Vols desactivar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Aquest mode no s\'activarà mai quan estigui desactivat"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desactiva"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Vols activar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Aquest mode es pot activar automàticament en funció de la configuració"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activa"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Configura un mode que segueixi una programació regular"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Configura un mode per sincronitzar amb els esdeveniments del calendari i les respostes a invitacions"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Dissenya una rutina de son relaxant. Configura alarmes, atenua la pantalla i bloqueja les notificacions."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritza la seguretat a la carretera per mantenir la concentració i evitar distraccions"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloqueja les distraccions o les interrupcions del dispositiu per no perdre la concentració"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimina totes les distraccions per aconseguir un entorn tranquil"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalitza les experiències i la configuració del dispositiu per a diferents usuaris"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimitza les interrupcions permetent que només et contactin persones i aplicacions importants"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Advertiment"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Tanca"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Envia suggeriments sobre el dispositiu"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Funda"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Tauler de configuració"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Força el mode d\'escriptori"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Força el mode d\'escriptori experimental en pantalles secundàries"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Activa les finestres amb format lliure"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Activa finestres format lliure a pantalla secundària"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activa la mida no ajustable al mode multifinestra"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permet les aplicacions de mida no ajustable al mode multifinestra"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Anul·la forçar el mode fosc"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dades mòbils"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Per millorar l\'experiència amb el dispositiu, les aplicacions i els serveis poden continuar cercant xarxes Wi‑Fi en qualsevol moment, fins i tot amb la Wi‑Fi desactivada. Això pot servir, per exemple, per millorar les funcions i els serveis basats en la ubicació. Pots canviar-ho a la configuració de cerca de xarxes Wi‑Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Canvia"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connectat"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connexió temporal"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"S\'està utilitzant <xliff:g id="SUBNAME">%1$s</xliff:g> temporalment"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Utilitza la fixació d\'aplicacions"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Utilitza les opcions per a desenvolupadors"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Utilitza el servei d\'impressió"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permet diversos usuaris"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permet canviar d\'usuari"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"permet, múltiple, usuari, permís, diversos"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"diversos, usuaris, perfils, persones, comptes, canviar, molts"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Utilitza la depuració sense fil"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Tria què vols veure a la pantalla quan la tauleta estigui acoblada. És possible que el dispositiu utilitzi més energia si es fa servir un estalvi de pantalla."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalitza"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalitza <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Cal reiniciar per activar la compatibilitat amb la forma lliure."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cal reiniciar per forçar el mode d\'escriptori en pantalles secundàries."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Cal reiniciar per activar la compatibilitat amb finestres de forma lliure."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Cal reiniciar per actualitzar la disponibilitat de les finestres amb format lliure."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Cal reiniciar per activar les finestres amb format lliure en pantalles secundàries."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reinicia ara"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reinicia més tard"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Àudio espacial"</string>
@@ -5137,7 +5208,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Desactiva les restriccions dels processos secundaris"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Desactiva les restriccions de l\'ús dels recursos del sistema dels processos secundaris de les aplicacions"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Força l\'activació del rol Notes"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Activa les integracions dels sistema de presa de notes mitjançant la funció Notes. Si la funció Notes ja està activada, no fa res. Cal reiniciar."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Activa les integracions del sistema per prendre notes mitjançant el rol Notes. Si aquest rol ja està activat, no fa res. Cal reiniciar."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Emissió"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Emet <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Escolta emissions a prop teu"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Fet"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Desa"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancel·la"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Predeterminat"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Mitjà"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Activat"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desactivat"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Activat"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Àudio: %1$d%% esquerra, %2$d%% dreta"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Àudio %1$d%% dreta, %2$d%% esquerra"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"El nom del dispositiu és visible per a les aplicacions que has instal·lat. També el poden veure altres persones si el connectes a un dispositiu Bluetooth o a una xarxa Wi‑Fi, o si configures un punt d\'accés Wi‑Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gènere gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecciona el gènere gramatical"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escolta el flux d\'àudio"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escaneja el codi QR d\'un flux d\'àudio per escoltar-lo amb <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"No es pot editar la contrasenya durant la compartició. Per canviar-la, primer desactiva la compartició d\'àudio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escàner de codis QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Configuració de la cerca"</string>
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index f293444..471268f 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Večerka"</item>
-    <item msgid="4152450357280759894">"Jízda autem"</item>
-    <item msgid="7096549258219399423">"Pohlcující"</item>
-    <item msgid="2760716776980432977">"Spravováno"</item>
-    <item msgid="601734478369121764">"Hvězdička"</item>
-    <item msgid="6243809315432780521">"Kalendář"</item>
-    <item msgid="4913577903148415331">"Čas"</item>
-    <item msgid="3653377604690057780">"Divadlo"</item>
-    <item msgid="3843711267408385410">"Květina"</item>
+    <item msgid="2750940760340557109">"Půlměsíc"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Lidská mysl"</item>
+    <item msgid="6734164279667121348">"Kalendář"</item>
+    <item msgid="4139559120353528558">"Hodiny"</item>
+    <item msgid="5157711296814769020">"Plážový slunečník"</item>
+    <item msgid="6635328761318954115">"Stan"</item>
+    <item msgid="1711994778883392255">"Filmový pás"</item>
+    <item msgid="9097658401859604879">"Herní ovladač"</item>
+    <item msgid="755931364157422565">"Jednoruční činka"</item>
+    <item msgid="8894207806795738429">"Osoba házející míč"</item>
+    <item msgid="2274801572149555103">"Kopající osoba"</item>
+    <item msgid="8795037201506843325">"Plavání"</item>
+    <item msgid="3558421426169430451">"Osoba na túře"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Dílenské nástroje"</item>
+    <item msgid="4595330511709890409">"Aktovka"</item>
+    <item msgid="8352738347856724389">"Hvězda"</item>
+    <item msgid="7082783098151998721">"Lotosový květ"</item>
+    <item msgid="5772220259409264724">"Kontrolor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 22888d7..6b498c0 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pozastaveno"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Neznámé"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Náhled"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kód"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Zmenšit"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Zvětšit"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vždy"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Nastavení naslouchátek"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Zkratka, kompatibilita s naslouchátky"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Předvolba"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Váš audiolog žádné předvolby nenaprogramoval"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Předvolbu nelze aktualizovat"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Zvukový výstup"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Informace o zvukovém výstupu"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"V Nastavení nelze vybrat jazyk pro tuto aplikaci."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Jazyky nemusí odpovídat jazykům dostupným v aplikaci. Toto nastavení mohou podporovat jen některé aplikace."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Nastavení jazyka pro jednotlivé aplikace."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Z preferovaných jazyků použijí systém, aplikace a weby první podporovaný jazyk."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Ze seznamu preferovaných jazyků použijí zařízení, aplikace a weby první podporovaný jazyk.\n\nMnoho aplikací bude také formátovat data, čísla a jednotky na základě oblasti preferovaného jazyka. Pokud chcete oblast změnit, přidejte jazyk a potom zvolte preferovanou oblast."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pokud chcete zvolit jazyk jednotlivých aplikací, přejděte do nastavení jazyka aplikace."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Další informace o jazycích aplikací"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Změnit jazyk systému na %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Vypnuto"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Zapnuto / k poloze má přístup # aplikace}few{Zapnuto / k poloze mají přístup # aplikace}many{Zapnuto / k poloze má přístup # aplikace}other{Zapnuto / k poloze má přístup # aplikací}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Načítání…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikace s oprávněním pro přístup k zařízením v okolí mohou zjišťovat relativní polohu připojených zařízení."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikace s oprávněním k přístupu k zařízením v okolí mohou zjišťovat relativní polohu připojených zařízení."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Přístup aplikací a služeb k poloze je vypnutý. Poloha zařízení může být přesto odesílána záchranářům, když vytočíte číslo tísňového volání nebo na něj pošlete SMS."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Další informace o nastavení polohy"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Pokud chcete tuto možnost změnit, přejděte do nastavení systému ChromeOS &gt; Ochrana soukromí a zabezpečení &gt; Nastavení ochrany soukromí &gt; Přístup k poloze"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Obličej a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Obličej, otisk prstu a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Obličej, otisky prstů a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odemknutí pomocí nástroje Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Hodinky byly přidány"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavení hodinek"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Další informace o odemknutí pomocí hodinek"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Přidat hodinky"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstranit hodinky"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odemknutí otiskem prstu nebo obličejem"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Odemknutí obličejem a otiskem prstu"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odemknutí obličejem a otiskem prstu pro práci"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nutné nastavení"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Byl přidán obličej a otisky prstů"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nastavování soukromého prostoru…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Soukromý prostor se nepodařilo nastavit"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Zkusit znovu"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Ukončit"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Soukromý prostor není k dispozici.\nZobrazit možné příčiny"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Zobrazit možné příčiny"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Vybrat nový zámek pro soukromý prostor?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Můžete si nastavit nový zámek pouze pro soukromý prostor, nebo použít stejný zámek, jaký používáte k odemykání zařízení"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Používat zámek obrazovky"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restartovat zařízení?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Podrobné protokolování funkce NFC je určeno pouze pro účely vývoje. Další data funkce NFC budou zahrnuta ve zprávách o chybě, které mohou obsahovat soukromé informace. Pokud toto nastavení chcete změnit, restartujte zařízení."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restartovat"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Zapnuto"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Vypnuto"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Externí displej"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Použít externí displej"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Rozlišení displeje"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Externí displej je odpojen"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Otočení"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standardní"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Změna otočení nebo rozlišení může zastavit všechny aktuálně spuštěné aplikace"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Aby bylo možné zrcadlit obrazovku, musí být zařízení připojeno k externímu displeji"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Další možnosti"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Odesílání"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"zrcadlení"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Povolit bezdrátové zobrazení"</string>
@@ -907,7 +928,7 @@
     <string name="wifi_scan_notify_text_scanning_off" msgid="7439201783168213149">"Pokud chcete zpřesnit určování polohy, zapněte vyhledávání Wi-Fi v <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>nastavení vyhledávání Wi-Fi<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_cellular_data_fallback_title" msgid="2844653839490977040">"Automaticky přepínat na mobilní data"</string>
     <string name="wifi_cellular_data_fallback_summary" msgid="7039944853033554386">"Když Wi-Fi nebude mít přístup k internetu, použije se mobilní datové připojení. Za využití dat mohou být účtovány poplatky."</string>
-    <string name="wifi_add_network" msgid="4178564862173751181">"Přidat síť"</string>
+    <string name="wifi_add_network" msgid="4178564862173751181">"Přidejte síť"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2536725796700696566">"Předvolby Wi-Fi"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="7822368955551467382">"Wi‑Fi se automaticky znovu zapne"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="5710203586018223864">"Wi‑Fi se automaticky znovu nezapne"</string>
@@ -969,7 +990,7 @@
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"Náhodná adresa MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"Přidání zařízení"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Chcete-li zařízení přidat do sítě <xliff:g id="SSID">%1$s</xliff:g>, níže vycentrujte QR kód"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Naskenovat QR kód"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Naskenujte QR kód"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"Chcete-li se připojit k síti <xliff:g id="SSID">%1$s</xliff:g>, níže vycentrujte QR kód"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Naskenováním QR kódu se připojíte k síti Wi-Fi"</string>
     <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Sdílení sítě Wi-Fi"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptivní"</string>
     <string name="brightness" msgid="6216871641021779698">"Úroveň jasu"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptivní jas"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Informace o adaptivním jasu"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Jas obrazovky se automaticky přizpůsobí okolí a činnostem. Ručním posunutím posuvníku informujete funkci adaptivního jasu o svých preferencích."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Zapnuto"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Vypnuto"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Přístupnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyzická klávesnice"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Použít softwarovou klávesnici"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Ponechat na obrazovce, když je aktivní fyzická klávesnice"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ignorovat opakovaná stisknutí"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Klávesnice ignoruje opakovaná stisknutí jedné klávesy do <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Zpomalení kláves"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Upraví čas aktivace po stisknutí klávesy na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Ovládání myši pomocí fyzické klávesnice"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Změnit vyplnění ukazatele na žluté"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Změnit vyplnění ukazatele na růžové"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Změnit vyplnění ukazatele na modré"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Styl tahu ukazatele"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bílá"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Černá"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Žádné"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučte se gesta touchpadu"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, myš, kurzor, posouvání, přejetí, kliknutí pravým tlačítkem, kliknutí, ukazatel"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliknutí pravým tlačítkem, klepnutí"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Vybrané uživatelem: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Řeč"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Rychlost kurzoru"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Měřítko ukazatele"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Snížit měřítko ukazatele"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Zvýšit měřítko ukazatele"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Herní ovladače"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Vibrace při přesměrování"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Odeslat vibrace do herního ovladače, je-li připojen"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Přesto pokračovat"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Zrušit"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavení zvětšení"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Posouvání jedním prstem"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Jedním prstem lupu posunete"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Přetažením prstu se můžete pohybovat po obrazovce"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Oblast zvětšení posunete přetažením jedním prstem."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Oblast zvětšení posunete přetažením dvěma prsty."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Při zvětšení pouze části obrazovky není k dispozici"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Přiblížení zobrazení klepnutím na tlačítko"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Obrazovku si můžete rychle přiblížit, aby byl obsah větší."</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Přiblížení:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Zvětšení spusťte pomocí zkratky.&lt;br/&gt; {1,number,integer}. Klepněte na obrazovku.&lt;br/&gt; {2,number,integer}. Po obrazovce se pohybujte přetažením dvou prstů.&lt;br/&gt; {3,number,integer}. Přiblížení upravte stažením a roztažením dvou prstů.&lt;br/&gt; {4,number,integer}. Zvětšení ukončete pomocí zkratky.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Dočasné přiblížení:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Zkontrolujte, zda je typ zvětšení nastaven na celou obrazovku.&lt;br/&gt; {1,number,integer}. Zvětšení spusťte pomocí zkratky.&lt;br/&gt; {2,number,integer}. Podržte jakékoli místo na obrazovce.&lt;br/&gt; {3,number,integer}. Po obrazovce se pohybujte přetažením prstu.&lt;br/&gt; {4,number,integer}. Zvětšení ukončete zvednutím prstu."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Přiblížení:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Použijte zkratku k zahájení zvětšování.&lt;br/&gt; {1,number,integer}. Klepněte na obrazovku.&lt;br/&gt; {2,number,integer}. Přetažením dvěma prsty se pohybujte po obrazovce.&lt;br/&gt; {3,number,integer}. Stažením a roztažením dvou prstů upravte přiblížení.&lt;br/&gt; {4,number,integer}. Pomocí zkratky zvětšení ukončete.&lt;br/&gt;&lt;br/&gt; Můžete také obsah přiblížit dočasně a využít další funkce."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Přiblížení:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Použijte zkratku k zahájení zvětšování.&lt;br/&gt; {1,number,integer}. Klepněte na obrazovku.&lt;br/&gt; {2,number,integer}. Přetažením jedním nebo dvěma prsty se pohybujte po obrazovce.&lt;br/&gt; {3,number,integer}. Stažením a roztažením dvou prstů upravte přiblížení.&lt;br/&gt; {4,number,integer}. Pomocí zkratky zvětšení ukončete.&lt;br/&gt;&lt;br/&gt; Můžete také obsah přiblížit dočasně a využít další funkce."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Když je zapnuté zvětšení, můžete přibližovat obsah na obrazovce.\n\n"<b>"Chcete-li obsah přiblížit"</b>", spusťte zvětšení a poté klepněte kamkoliv na obrazovku.\n"<ul><li>"Přetažením dvěma nebo více prsty můžete obsah posouvat."</li>\n<li>"Stažením nebo roztažením dvou či více prstů upravíte přiblížení."</li></ul>\n\n<b>"Chcete-li obsah přiblížit dočasně"</b>", spusťte zvětšení a poté se dotkněte libovolného místa na obrazovce a podržte ho.\n"<ul><li>"Přetažením se můžete pohybovat po obrazovce."</li>\n<li>"Zvednutím prstu zobrazení vrátíte do původního stavu."</li></ul>\n\n"Na klávesnici a navigačním panelu přiblížení není k dispozici."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Strana <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> z <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Zkratka tlačítka přístupnosti"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Klepněte na plovoucí tlačítko"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto přístupnosti"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Klepněte na tlačítko přístupnosti <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ve spodní části obrazovky. Pokud chcete přepnout mezi funkcemi, tlačítko přístupnosti podržte."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Přejeďte dvěma prsty ze spodní části obrazovky nahoru.\n\nPokud chcete přepnout mezi funkcemi, přejeďte nahoru dvěma prsty a podržte je."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Přejeďte třemi prsty ze spodní části obrazovky nahoru.\n\nChcete-li přepnout mezi funkcemi, přejeďte nahoru třemi prsty a podržte je."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Přejeďte prstem ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím nahoru a podržením.}few{Přejeďte # prsty ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím # prsty nahoru a podržením.}many{Přejeďte # prstu ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím # prstu nahoru a podržením.}other{Přejeďte # prsty ze spodní části obrazovky nahoru. Mezi funkcemi můžete přepnout přejetím # prsty nahoru a podržením.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Další možnosti"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Další informace o funkci <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tlačítka hlasitosti"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tlačítka hlasitosti"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Podržte obě tlačítka hlasitosti"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvakrát klepněte na obrazovku dvěma prsty"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvojité klepnutí %1$d prsty"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Dvakrát rychle klepněte na obrazovku %1$d prsty."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trojité klepnutí"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d× rychle klepněte na obrazovku. Zařízení se může zpomalit."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvojité klepnutí %1$d prsty"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Rychle {0,number,integer}krát klepněte na obrazovku dvěma prsty"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trojité klepnutí na obrazovku"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trojité klepnutí"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Rychle {0,number,integer}krát klepněte na obrazovku. Tato zkratka může zařízení zpomalit."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Rozšířená nastavení"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tlačítko Přístupnost je nastaveno na službu <xliff:g id="SERVICE">%1$s</xliff:g>. Chcete-li použít zvětšení, klepněte na tlačítko Přístupnost, podržte jej a vyberte zvětšení."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gesto usnadnění přístupu je nastaveno na funkci <xliff:g id="SERVICE">%1$s</xliff:g>. Chcete-li použít zvětšení, přejeďte dvěma prsty ze spodní části obrazovky nahoru a podržte obrazovku. Potom vyberte zvětšení."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Tato služba nefunguje."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Zkratky pro usnadnění přístupu"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Zobrazit v rychlém nastavení"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Červená a zelená"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Červená a zelená"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Červenozelená, slabá zelená"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Červenozelená, slabá červená"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Modrá a žlutá"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Zešednutí obrazovky"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzita"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Oslabené vidění zelené barvy, deuteranomálie"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Oslabené vidění červené barvy, protanomálie"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"V režimu stupňů šedi a při vypnuté korekci barev tato funkce není k dispozici"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomálie"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomálie"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomálie"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Velmi tmavé zobrazení"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Nastavit velmi tmavou obrazovku"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Tyrkysová"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Žlutá"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Purpurová"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Má mít <xliff:g id="SERVICE">%1$s</xliff:g> plnou kontrolu nad vaším zařízením?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> potřebuje:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Žádost o oprávnění je blokována jinou aplikací. Nastavení proto vaši odpověď nemůže ověřit."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Služba <xliff:g id="SERVICE">%1$s</xliff:g> požaduje plnou kontrolu nad zařízením. Služba může číst obrazovku a vykonávat akce namísto uživatelů, kteří potřebují usnadnění přístupu. Tato úroveň kontroly není u většiny aplikací vhodná."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Plná kontrola je vhodná u aplikací, které vám pomáhají s usnadněním přístupu. U většiny aplikací však vhodná není."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Zobrazení a ovládání obrazovky"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Služba může číst veškerý obsah obrazovky a zobrazovat ho přes ostatní aplikace."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Zobrazení a provádění akcí"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Služba může sledovat vaše interakce s aplikací nebo hardwarovým senzorem a komunikovat s aplikacemi za vás."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povolit"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zakázat"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnout"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Žádný}=1{Nastaven 1 plán}few{Nastaveny # plány}many{Nastaveno # plánu}other{Nastaveno # plánů}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Nerušit"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Režim priority"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Přidat režim"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Omezte vyrušení a soustřeďte se na spánek, práci, řízení nebo cokoli jiného."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Vytvoření vlastního režimu"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Přijímat pouze oznámení od důležitých lidí a z důležitých aplikací"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Nastavení plánu"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Plán založen na"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Den a čas"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„9:00–17:00, pracovní dny“"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Události v kalendáři"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Režim {mode_1} je aktivní}=2{Režimy {mode_1} a {mode_2} jsou aktivní}=3{Režimy {mode_1}, {mode_2} a {mode_3} jsou aktivní}few{Režimy {mode_1}, {mode_2} a # další jsou aktivní}many{Režimy {mode_1}, {mode_2} a # dalšího jsou aktivní}other{Režimy {mode_1}, {mode_2} a # dalších je aktivních}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 režim se může zapnout automaticky}few{# režimy se mohou zapnout automaticky}many{# režimu se může zapnout automaticky}other{# režimů se může zapnout automaticky}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ZAPNUTO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nenastaveno"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Vypnuto"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Vytvoření režimu"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Vlastní"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Zapnout"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Vypnout"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Režim nenalezen"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Omezení vyrušení"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokujte vyrušení"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Nastavit režim <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Zapněte funkci Nerušit"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Vyrušovat mohou budíky a zvuky médií"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Plány"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Smazat plány"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Smazat"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Přejmenovat"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Smazat"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Smazat režim <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Upravit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Plány"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Plán"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Zapnout automaticky"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Přidejte kalendář"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Použít kalendář"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Plán"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nastavení plánu"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kdy zapnout automaticky"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Plán události"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Zapnout během událostí pro"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Když je odpověď na pozvánku"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Časový plán"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Plán"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Plán"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Povolit vyrušení, která vydávají zvuk"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokovat vizuální vyrušení"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Povolit vizuální signály"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Oznámení, která se k vám mohou dostat"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Další akce"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtry oznámení"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Další nastavení"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Vypnuto}=1{Vypnuto / 1 režim se může automaticky zapnout}few{Vypnuto / # režimy se můžou automaticky zapnout}many{Vypnuto / # režimu se může automaticky zapnout}other{Vypnuto / # režimů se může automaticky zapnout}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Nastavení displeje"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Možnosti zobrazení"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Stupně šedi"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"zapnout tmavý motiv"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Přepněte operační systém a aplikace tak, aby upřednostňovaly světlý text na tmavém pozadí. Může to být příjemnější pro oči a na některých zařízeních to výrazně šetří baterii"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Žádné změny zobrazení}=1{{effect_1}}=2{{effect_1} a {effect_2}}=3{{effect_1}, {effect_2} a {effect_3}}few{{effect_1}, {effect_2} a ještě #}many{{effect_1}, {effect_2} a ještě #}other{{effect_1}, {effect_2} a ještě #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Omezte, co vám může posílat oznámení"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Žádná přerušení se nefiltrují"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Možnosti zobrazení filtrovaných oznámení"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Když je zapnutý režim Nerušit"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Oznámení bez zvukového upozornění"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"otevřít oznámení"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Povolit odložení oznámení"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Puntík s oznámením na ikoně aplikace"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Balíčky oznámení"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubliny"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubliny"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Zobrazovat tuto konverzaci jako bublinu"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Tato aplikace nepodporuje rozšířená nastavení"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Další nastavení"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Další nastavení jsou k dispozici uvnitř aplikace"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptivní oznámení"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Používat adaptivní oznámení"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Když během krátké doby obdržíte mnoho oznámení, telefon až na dvě minuty sníží hlasitost a minimalizuje na obrazovce vyskakovací okna. Hovory, budíky a prioritní konverzace budou dále vibrovat, vydávat zvuk nebo se zobrazovat na obrazovce a všechna oznámení snadno najdete přetažením z horní části obrazovky dolů."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Zeslabení oznámení"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Používat zeslabení oznámení"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Když během krátké doby obdržíte mnoho oznámení, zařízení až na dvě minuty sníží hlasitost a minimalizuje upozornění. Hovory, budíky a prioritní konverzace nebudou dotčeny. \n\nOznámení přijatá během zeslabení lze zobrazit přejetím prstem dolů z horního okraje obrazovky."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Použít na pracovní profily"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Použít pro aplikace v pracovním profilu"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pomocné služby VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorie"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Jiné"</string>
     <string name="no_channels" msgid="4716199078612071915">"Tato aplikace neodeslala žádná oznámení"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Zobrazit nepoužívané kategorie"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Další nastavení v aplikaci"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Zobrazit nepoužívané kategorie"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Skrýt nepoužívané kategorie"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Konverzace"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Všechny konverzace"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"všechny konverzace"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioritní konverzace"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritní konverzace"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Žádné"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikace, které smí vyrušovat"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Vybrané aplikace"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nic"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Vše"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Vyrušovat nemohou žádné aplikace}=1{Vyrušovat může aplikace {app_1}}=2{Vyrušovat můžou aplikace {app_1} a {app_2}}=3{Vyrušovat můžou aplikace {app_1}, {app_2} a {app_3}}few{Vyrušovat můžou aplikace {app_1}, {app_2} a # další}many{Vyrušovat můžou aplikace {app_1}, {app_2} a # další}other{Vyrušovat můžou aplikace {app_1}, {app_2} a # dalších}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (pracovní)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Výpočet…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Povolit přepisování aplikací"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikace, které smí vyrušovat"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vybrat další aplikace"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nic nemůže vyrušovat"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nikdo nemůže vyrušovat"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Vyrušovat mohou někteří lidé"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Vyrušovat mohou lidé, kteří volají opakovaně"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Všichni lidé mohou vyrušovat"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Volající, kteří volají opakovaně"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Povolit opakovaná volání"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Na hodinu (tedy do {time}) přepnout do režimu Pouze budíky}few{Na # hodiny (tedy do {time}) přepnout do režimu Pouze budíky}many{Na # hodiny (tedy do {time}) přepnout do režimu Pouze budíky}other{Na # hodin (tedy do {time}) přepnout do režimu Pouze budíky}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Přepnout do režimu Pouze budíky až do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Přejít do režimu Vždy vyrušit"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Přejmenovat"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Změnit ikonu"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Změnit ikonu"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Upravit režim"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Vytvoření režimu"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Vlastní režim"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Název režimu"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Události v kalendáři"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Sled činností Noční klid"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Při řízení"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Nastavení aplikace"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informace a nastavení najdete v aplikaci <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Spravováno aplikací <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Deaktivovat režim <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Když bude tento režim deaktivován, nikdy se nezapne"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Vypnout"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Aktivovat režim <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Tento režim se může v závislosti na nastavení zapnout automaticky"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Zapnout"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Nastavte si režim pro pravidelný program"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Nastavte si režim k synchronizaci s událostmi v kalendáři a odpověďmi na pozvánky"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Vytvořte si uklidňující sled činností pro usínání. Nastavte si budíky, ztlumte obrazovku a zablokujte oznámení."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Jeďte soustředěně a bez vyrušení s ohledem na bezpečnost"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Zablokujte vyrušení v zařízení, abyste se mohli soustředit"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Zbavte se všech vyrušení a užijte si tiché prostředí"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Přizpůsobte si prostředí zařízení a nastavení pro různé uživatele"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Omezte vyrušení pouze na důležité lidi a aplikace"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Varování"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Zavřít"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Odeslat zpětnou vazbu o tomto zařízení"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Hlavní díl"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterie"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel nastavení"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Vynutit režim počítače"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Na sekundárních displejích vynutí experimentální režim počítače"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktivovat okna s volným tvarem"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Aktivovat okna s volným tvarem na 2. displeji"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivovat neměnnou velikost v režimu několika oken"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Povolí aplikace s neměnnou velikostí v režimu několika oken"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Přepsat vynucení tmavého režimu"</string>
@@ -4969,7 +5040,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilní data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Za účelem lepšího fungování zařízení mohou aplikace a služby vyhledávat sítě Wi-Fi, i když je připojení Wi-Fi vypnuté. Lze tak vylepšit funkce a služby závislé na poloze. Toto chování můžete změnit v nastavení vyhledávání Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Změnit"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Připojeno"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Dočasně připojeno"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Dočasně se používá <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5001,7 +5071,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Používat připnutí aplikace"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Používat nastavení pro vývojáře"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Používat tiskovou službu"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Povolit více uživatelů"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Povolit přepínání uživatelů"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"povolit, několik, uživatel, mnoho"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"několik, více, uživatelé, profily, lidé, účty, přepínání, mnoho"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Používat bezdrátové ladění"</string>
@@ -5115,8 +5185,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Určete, co chcete vídat na obrazovce, když je tablet v doku. Při používání spořiče obrazovky může mít zařízení vyšší spotřebu energie."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Přizpůsobit"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Přizpůsobit <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"K zapnutí podpory plovoucích oken je vyžadován restart."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"K vynucení režimu plochy na sekundárních displejích je vyžadován restart."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"K zapnutí podpory plovoucích oken je potřeba restart."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"K aktualizaci dostupnosti oken s volným tvarem je potřeba restart."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"K aktivaci oken s volným tvarem na sekundárních displejích je potřeba restart."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Restartovat hned"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Restartovat později"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorový zvuk"</string>
@@ -5213,7 +5284,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Růžová"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Purpurová"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Fialová"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Hotovo"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Uložit"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Zrušit"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Výchozí"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Střední"</string>
@@ -5234,6 +5305,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Zapnuto"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Vypnuto"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Zapnuto"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvuk %1$d %% vlevo, %2$d %% vpravo"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvuk %1$d %% vpravo, %2$d %% vlevo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Název vašeho zařízení je viditelný pro nainstalované aplikace. Mohou ho vidět také ostatní uživatelé, když se připojíte k zařízení Bluetooth nebo síti Wi-Fi, případně když vytvoříte hotspot Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatický rod"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Vyberte mluvnický rod"</string>
@@ -5345,4 +5418,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Poslouchat stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Naskenujte QR kód zvukového streamu a poslouchejte na zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Heslo nelze upravit během sdílení. Pokud chcete změnit heslo, nejdříve vypněte sdílení zvuku."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Čtečka QR kódů"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Vyhledávat v nastavení"</string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index f6a85fa..88fe7a7 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Sengetid"</item>
-    <item msgid="4152450357280759894">"Kørsel"</item>
-    <item msgid="7096549258219399423">"Opslugende"</item>
-    <item msgid="2760716776980432977">"Administreret"</item>
-    <item msgid="601734478369121764">"Stjerne"</item>
-    <item msgid="6243809315432780521">"Kalender"</item>
-    <item msgid="4913577903148415331">"Tidspunkt"</item>
-    <item msgid="3653377604690057780">"Teater"</item>
-    <item msgid="3843711267408385410">"Blomst"</item>
+    <item msgid="2750940760340557109">"Halvmåne"</item>
+    <item msgid="8513969636586738035">"Bil"</item>
+    <item msgid="957392343846370509">"En persons sind"</item>
+    <item msgid="6734164279667121348">"Kalender"</item>
+    <item msgid="4139559120353528558">"Ur"</item>
+    <item msgid="5157711296814769020">"Parasol"</item>
+    <item msgid="6635328761318954115">"Telt"</item>
+    <item msgid="1711994778883392255">"Filmspole"</item>
+    <item msgid="9097658401859604879">"Spilcontroller"</item>
+    <item msgid="755931364157422565">"Håndvægt"</item>
+    <item msgid="8894207806795738429">"Person, der kaster en bold"</item>
+    <item msgid="2274801572149555103">"Person, der sparker"</item>
+    <item msgid="8795037201506843325">"Svømning"</item>
+    <item msgid="3558421426169430451">"Person på vandretur"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Værktøj"</item>
+    <item msgid="4595330511709890409">"Mappe"</item>
+    <item msgid="8352738347856724389">"Stjerne"</item>
+    <item msgid="7082783098151998721">"Lotusblomst"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 9781db1..4d2f3a9 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Sat på pause"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Ukendt"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Forhåndsvisning"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-kode"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Formindsk"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Forstør"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Altid"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Indstillinger for høreapparat"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Genvej, høreapparatskompatibilitet"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Forindstilling"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Din audiolog har ingen forprogrammerede indstillinger"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Forindstillingen kunne ikke opdateres"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Lydudgang"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Om lydudgang"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Sprogvalg for denne app er ikke tilgængeligt i Indstillinger."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Sproget kan adskille sig fra sprogene i appen. Nogle apps understøtter muligvis ikke denne indstilling."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Vælg sprog til hver app"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Dit system, dine apps og dine websites anvender det første understøttede sprog fra dine foretrukne sprog."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Din enhed, dine apps og dine websites anvender det første understøttede sprog på listen over dine foretrukne sprog.\n\nMange apps bruger også regionen fra dit foretrukne sprog til at vælge format for datoer, tal og måleenheder. Hvis du vil skifte region, skal du tilføje et sprog og derefter vælge din foretrukne region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Hvis du vil vælge et sprog for hver app, skal du gå til den pågældende apps sprogindstillinger."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Få flere oplysninger om appsprog"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vil du ændre systemsproget til %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Fra"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Til/# app har adgang til din lokation}one{Til/# app har adgang til din lokation}other{Til/# apps har adgang til din lokation}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Indlæser…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps med tilladelse fra enheder i nærheden kan fastslå den relative placering af forbundne enheder."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps med tilladelse fra enheder i nærheden kan fastslå den relative positionering af forbundne enheder."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Adgangen til Lokation er deaktiveret for apps og tjenester. Din enhedslokation kan stadig blive sendt til udrykningsberedskab, hvis du ringer eller sender en sms til et alarmnummer."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Få flere oplysninger om lokationsindstillinger"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Du kan skifte ved at gå til Indstillinger for ChromeOS &gt; Privatliv og sikkerhed &gt; Privatlivsindstillinger &gt; Lokationsadgang"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansigt og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansigt, fingeraftryk og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansigt, fingeraftryk og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Oplåsning af Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Uret er tilføjet"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurer dit ur"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Få flere oplysninger om uroplåsning"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tilføj ur"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjern ur"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingeraftryk og ansigtsoplåsning"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Ansigtsoplåsning og fingeroplåsning"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansigtsoplåsning og fingeroplåsning til arbejdsprofil"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfiguration er påkrævet"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Ansigt og fingeraftryk er tilføjet"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Konfigurerer et privat område…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Et privat område kunne ikke konfigureres"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Prøv igen"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Afslut"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privat område er ikke tilgængeligt. \nSe mulige årsager"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Se mulige årsager"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Vil du vælge en ny lås til det private område?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Du kan indstille en ny lås til privat område eller bruge den samme lås, som du bruger til at låse din enhed op"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Brug skærmlås"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vil du genstarte enheden?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljeret NFC-logging er kun beregnet til udvikling. Yderligere NFC-data inkluderes i fejlrapporter, som muligvis indeholder private oplysninger. Genstart enheden for at ændre denne indstilling."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Genstart"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Til"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Fra"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ekstern skærm"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Brug ekstern skærm"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Skærmopløsning"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Forbindelse til ekstern skærm afbrudt"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Hvis skærmretningen eller opløsningen ændres, kan du risikere, at aktive apps stopper"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Din enhed skal have forbindelse til en ekstern skærm for at spejle skærmen"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Flere valgmuligheder"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"spejl"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Aktivér trådløs skærm"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptiv"</string>
     <string name="brightness" msgid="6216871641021779698">"Lysstyrke"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptiv lysstyrke"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Om adaptiv lysstyrke"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Skærmens lysstyrke tilpasses automatisk på baggrund af dine omgivelser og dine aktiviteter. Du kan flytte skyderen manuelt for at hjælpe automatisk lysstyrke med at lære dine præferencer."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Til"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Fra"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Valgmuligheder"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Hjælpefunktioner"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Brug skærmtastaturet"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Behold det på skærmen, mens det fysiske tastatur er aktivt"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Elastiktaster"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tastaturet ignorerer gentagende, hurtige tryk på den samme tast inden for <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Langsomtaster"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Juster tiden det tager, inden et tryk på en tast aktiveres, til <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Brug det fysiske tastatur til at styre musen"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Skift udfyldningsstil for markør til gul"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Skift udfyldningsstil for markør til lyserød"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Skift udfyldningsstil for markør til blå"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stregformat for markør"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Hvid"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Sort"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ingen"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Se bevægelser på touchpladen"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"touchplade, touch plade, mus, markør, rul, stryg, højreklik, klik, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"højreklik, tryk"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Brugervalgt: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Tale"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Markørens hastighed"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Markørstørrelse"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Reducer markørstørrelse"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Øg markørstørrelse"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Spillekontroller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Omdiriger vibration"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Send vibration til spillecontroller, når den er tilsluttet"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsæt alligevel"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuller"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Indstillinger for forstørrelse"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Panorering med én finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Flyt luppen med 1 finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Naviger rundt på skærmen ved at trække med 1 finger"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Flyt forstørrelsesområdet ved at trække med én finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Flyt forstørrelsesområdet ved at trække med to fingre."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Utilgængelig, når kun en del af skærmen forstørres"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tryk på en knap for at zoome"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoom hurtigt ind på skærmen for at forstørre indhold"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Sådan zoomer du ind:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Brug genvejen til at starte forstørrelse&lt;br/&gt; {1,number,integer}. Tryk på skærmen&lt;br/&gt; {2,number,integer}. Træk med to fingre for at navigere rundt på skærmen&lt;br/&gt; {3,number,integer}. Knib med to fingre for at zoome ind eller ud&lt;br/&gt; {4,number,integer}. Brug genvejen til at stoppe forstørrelse&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Sådan zoomer du midlertidigt ind:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Sørg for, at forstørrelsestypen er indstillet til fuld skærm&lt;br/&gt; {1,number,integer}. Brug genvejen til at starte forstørrelse&lt;br/&gt; {2,number,integer}. Hold fingeren nede et vilkårligt sted på skærmen&lt;br/&gt; {3,number,integer}. Træk fingeren for at navigere rundt på skærmen&lt;br/&gt; {4,number,integer}. Løft fingeren for at stoppe forstørrelse"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Sådan zoomer du ind:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Brug genvejen til at starte forstørrelse&lt;br/&gt; {1,number,integer}. Tryk på skærmen&lt;br/&gt; {2,number,integer}. Naviger rundt på skærmen ved at trække med 2 fingre&lt;br/&gt; {3,number,integer}. Knib med 2 fingre for at justere zoom&lt;br/&gt; {4,number,integer}. Brug genvejen til at stoppe forstørrelse&lt;br/&gt;&lt;br/&gt; Du kan også midlertidigt zoome ind m.m."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Sådan zoomer du ind:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Brug genvejen til at starte forstørrelse&lt;br/&gt; {1,number,integer}. Tryk på skærmen&lt;br/&gt; {2,number,integer}. Naviger rundt på skærmen ved at trække med 1 finger eller 2 fingre&lt;br/&gt; {3,number,integer}. Knib med 2 fingre for at justere zoom&lt;br/&gt; {4,number,integer}. Brug genvejen til at stoppe forstørrelse&lt;br/&gt;&lt;br/&gt; Du kan også midlertidigt zoome ind m.m."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Når forstørrelse er aktiveret, kan du zoome ind på skærmen.\n\n"<b>"Hvis du vil zoome"</b>", skal du åbne forstørrelse og derefter trykke et vilkårligt sted på skærmen.\n"<ul><li>"Træk med to eller flere fingre for at rulle"</li>\n<li>"Knib sammen med to eller flere fingre for at justere zoomniveauet"</li></ul>\n\n<b>"Hvis du vil zoome midlertidigt"</b>", skal du åbne forstørrelse og holde fingeren nede et vilkårligt sted på skærmen.\n"<ul><li>"Træk for at udforske forskellige dele af skærmen"</li>\n<li>"Løft fingeren for at zoome ud"</li></ul>\n\n"Du kan ikke zoome ind på tastaturet eller navigationslinjen."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Side <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> af <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Genvej til knappen til hjælpefunktioner"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tryk på den svævende knap"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Bevægelse for hjælpefunktioner"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tryk på knappen til hjælpefunktioner <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nederst på skærmen. Du kan skifte mellem funktioner ved at holde fingeren på knappen til hjælpefunktioner."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Stryg opad fra bunden af skærmen med to fingre.\n\nDu kan skifte mellem funktioner ved at stryge opad med to fingre og holde dem nede."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Stryg opad fra bunden af skærmen med tre fingre.\n\nDu kan skifte mellem funktioner ved at stryge opad med tre fingre og holde dem nede."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Stryg opad fra bunden af skærmen. Du kan skifte mellem funktioner ved at stryge opad og holde fingeren nede.}one{Stryg opad fra bunden af skærmen med # finger. Du kan skifte mellem funktioner ved at stryge opad med # finger og holde fingeren nede.}other{Stryg opad fra bunden af skærmen med # fingre. Du kan skifte mellem funktioner ved at stryge opad med # fingre og holde fingrene nede.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Flere valgmuligheder"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Få flere oplysninger om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Lydstyrkeknapper"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"lydstyrkeknapper"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Hold begge lydstyrkeknapper nede"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tryk to gange på skærmen med to fingre"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tryk to gange med %1$d fingre"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tryk hurtigt på skærmen to gange med %1$d fingre"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tryk tre gange"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tryk hurtigt på skærmen %1$d gange. Dette kan gøre din enhed langsommere."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tryk to gange med %1$d fingre"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tryk hurtigt på skærmen {0,number,integer} gange med to fingre"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tryk tre gange på skærmen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tryk tre gange"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tryk hurtigt på skærmen {0,number,integer} gange. Denne genvej kan gøre din enhed langsommere"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanceret"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Knappen til hjælpefunktioner er angivet til <xliff:g id="SERVICE">%1$s</xliff:g>. Hvis du vil bruge forstørrelse, skal du trykke på knappen til hjælpefunktioner, holde fingeren nede og derefter vælge forstørrelse."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Bevægelsen for hjælpefunktioner er indstillet til <xliff:g id="SERVICE">%1$s</xliff:g>. Hvis du vil bruge forstørrelse, kan du stryge opad med to fingre fra bunden af skærmen og holde dem nede. Vælg derefter forstørrelse."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Denne tjeneste fungerer ikke korrekt."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Genveje til hjælpefunktioner"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Vis i Kvikmenu"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rød-grøn"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rød-grøn"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rød-grøn, farvesvaghed for grøn"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rød-grøn, farvesvaghed for rød"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blå-gul"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gråtoner"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitet"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Farvesvaghed for grøn, deuteranomali"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Farvesvaghed for rød, protanomali"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Utilgængelig i tilstanden Gråtoner, eller når farvekorrigering er deaktiveret"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomali"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomali"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Ekstra dæmpet belysning"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Ekstra dæmpet belysning af skærm"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Grønblå"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Gul"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Lyslilla"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Vil du give <xliff:g id="SERVICE">%1$s</xliff:g> fuld kontrol over din enhed?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> har brug for at:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Indstillinger kan ikke verificere dit svar, fordi en app tilslører tilladelsesanmodningen."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> anmoder om fuld kontrol over denne enhed. Tjenesten kan læse skærmen og handle på vegne af brugere med særlige behov. Dette kontrolomfang er ikke passende for de fleste apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Fuld kontrol er velegnet til apps, der hjælper dig med hjælpefunktioner, men ikke de fleste apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Se og styre skærm"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Den kan læse alt indhold på skærmen og vise indhold oven på andre apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Se og udføre handlinger"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore dine interaktioner med en app eller en hardwaresensor og interagere med apps på dine vegne."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillad"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Afvis"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå fra"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ingen}=1{1 tidsplan er angivet}one{# tidsplan er angivet}other{# tidsplaner er angivet}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Forstyr ikke"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Tilstande med prioritet"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Tilføj en tilstand"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Begræns distraktioner, og få kontrol over din opmærksomhed med tilstande for søvn, arbejde, kørsel osv."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Opret din egen tilstand"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Få kun notifikationer fra vigtige personer og apps"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Angiv en tidsplan"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Tidsplanen er baseret på"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dag og klokkeslæt"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"Kl. 9-17 på hverdage\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalenderbegivenheder"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} er aktiveret}=2{{mode_1} og {mode_2} er aktiveret}=3{{mode_1}, {mode_2} og {mode_3} er aktiveret}one{{mode_1}, {mode_2} og # anden er aktiveret}other{{mode_1}, {mode_2} og # andre er aktiveret}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 tilstand kan aktiveres automatisk}one{# tilstand kan aktiveres automatisk}other{# tilstande kan aktiveres automatisk}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"TIL"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ikke konfigureret"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Deaktiveret"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Opret en tilstand"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tilpasset"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Aktivér nu"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Deaktiver"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Tilstanden blev ikke fundet"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Begræns antallet af afbrydelser"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloker forstyrrende elementer"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Konfigurer <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktivér Forstyr ikke"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmer og medielyde kan afbryde"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tidsplaner"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Slet tidsplaner"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Slet"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Omdøb"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Slet"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Skal tilstanden \"<xliff:g id="MODE">%1$s</xliff:g>\" slettes?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Rediger"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Tidsplaner"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Tidsplan"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Aktivér automatisk"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Tilføj en kalender"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Brug din kalender"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Tidsplan"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Angiv en tidsplan"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Hvornår skal den aktiveres automatisk?"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Tidsplan for begivenhed"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Aktivér for følgende begivenheder"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Hvor finder jeg svaret på invitationen?"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Tidsplan"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Tidsplan"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> t. <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Planlæg"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Tillad afbrydelser, der laver lyd"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloker visuelle forstyrrelser"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Tillad visuelle signaler"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifikationer, du kan modtage"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Yderligere handlinger"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Notifikationsfiltre"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Flere indstillinger"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Deaktiveret}=1{Deaktiveret / 1 tilstand kan aktiveres automatisk}one{Deaktiveret / # tilstand kan aktiveres automatisk}other{Deaktiveret / # tilstande kan aktiveres automatisk}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Indstillinger for visning"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Visningsmuligheder"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Gråtoner"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"aktivér mørkt tema"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Indstil OS og apps til at foretrække lys tekst på en mørk baggrund, hvilket kan være mere behageligt for øjnene og medføre betydelig batteribesparelse på nogle enheder"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Ingen ændringer af visningen}=1{{effect_1}}=2{{effect_1} og {effect_2}}=3{{effect_1}, {effect_2} og {effect_3}}one{{effect_1}, {effect_2} og # anden}other{{effect_1}, {effect_2} og # andre}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Begræns notifikationer"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Ingen forstyrrelser bortfiltreres"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Visningsmuligheder for filtrerede notifikationer"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Når Forstyr ikke er aktiveret"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Ingen lyd fra notifikationer"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"åbn notifikationen"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Tillad udsættelse af notifikationer"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Notifikationsprik på appikon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Notifikationspakker"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bobler"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bobler"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Lav denne samtale til en boble"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Denne app understøtter ikke avancerede indstillinger"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Flere indstillinger"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Der er flere tilgængelige indstillinger inde i appen"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Automatiske notifikationer"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Brug adaptive notifikationer"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Hvis du får mange notifikationer inden for kort tid, skruer telefonen ned for lydstyrken og minimerer pop op-vinduer på skærmen i op til to minutter. Ved opkald, alarmer og prioriterede samtaler vil enheden stadig vibrere, afgive en lyd eller vises handlingen på skærmen, og alle notifikationer er lettilgængelige, når du trækker nedad fra toppen af skærmen."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Dæmpning af notifikationer"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Brug dæmpning af notifikationer"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Hvis du får mange notifikationer inden for kort tid, skruer enheden ned for lydstyrken og minimerer underretninger på skærmen i op til 2 minutter. Opkald, alarmer og prioriterede samtaler påvirkes ikke. \n\nDu kan se de notifikationer, du modtager i denne periode, ved at trække nedad fra toppen af skærmen."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Anvend på arbejdsprofiler"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Anvend på apps på arbejdsprofilen"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-hjælpetjenester"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorier"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Andre"</string>
     <string name="no_channels" msgid="4716199078612071915">"Denne app har ikke sendt nogen notifikationer"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Vis ikke-anvendte kategorier"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Flere indstillinger i appen"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Vis ikke-anvendte kategorier"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Skjul ikke-anvendte kategorier"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>-<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Samtaler"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Alle samtaler"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"alle samtaler"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioriterede samtaler"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioriterede samtaler"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ingen"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps, der kan afbryde"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valgte apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ingen"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alle"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ingen apps må forstyrre}=1{{app_1} må gerne forstyrre}=2{{app_1} og {app_2} må gerne forstyrre}=3{{app_1}, {app_2} og {app_3} må gerne forstyrre}one{{app_1}, {app_2} og # mere må gerne forstyrre}other{{app_1}, {app_2} og # andre må gerne forstyrre}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (arbejde)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Beregner…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillad, at apps tilsidesætter"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps, der kan afbryde"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vælg flere apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Intet kan afbryde"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ingen kan afbryde"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Nogle personer kan afbryde"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Gentagne opkald må gerne forstyrre"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Alle personer kan afbryde"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Gentagne opkald"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tillad gentagne opkald"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Skift til kun alarmer i én time (indtil {time})}one{Skift til kun alarmer i # time (indtil {time})}other{Skift til kun alarmer i # timer (indtil {time})}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Skift til Kun alarmer frem til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Skift til Afbryd altid"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Omdøb"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Skift ikon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Skift ikon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Rediger tilstand"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Opret en tilstand"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Tilpasset tilstand"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Navn på tilstand"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenderbegivenheder"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutinen Sengetid"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Under kørsel"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Appindstillinger"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Oplysninger og indstillinger i <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Administreres af <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Vil du deaktivere <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Denne tilstand aktiveres aldrig, når den er deaktiveret"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktiver"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Vil du aktivere <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Denne tilstand kan automatisk aktiveres afhængigt af indstillingerne"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivér"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Indstil en tilstand, der følger en fast tidsplan"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Indstil en tilstand, så den synkroniseres med kalenderbegivenheder og svar på invitationer"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Skab en beroligende soverutine. Indstil alarmer, dæmp skærmens lysstyrke, og bloker notifikationer."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioriter trafiksikkerhed, og koncentrer dig om kørslen uden forstyrrelser"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloker forstyrrelser eller afbrydelser fra din enhed, så du bedre kan koncentrere dig"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Fjern alle forstyrrelser for at få ro"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Tilpas brugeroplevelser og indstillinger på enheden til forskellige brugere"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimer afbrydelser ved kun at tillade, at vigtige personer og apps kan få fat i dig"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Advarsel"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Luk"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Send feedback om denne enhed"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Indstillingspanel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Gennemtving skrivebordstilstand"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Gennemtving eksperimentel skrivebordstilstand på sekundære skærme"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktivér vinduer i frit format"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Aktivér vinduer i frit format på en sekundær skærm"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivér app, hvis størrelse ikke kan justeres, i multivindue"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Tillader, at apps, hvis størrelse ikke kan justeres, kan være i et multivindue"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Tilsidesæt force-dark"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobildata"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"For at forbedre brugeroplevelsen på enheden kan apps og tjenester stadig til enhver tid scanne efter Wi‑Fi-netværk, også selvom Wi-Fi er deaktiveret. Dette kan f.eks. bruges til at forbedre lokationsbaserede funktioner og tjenester. Du kan ændre dette i indstillingerne for Wi-Fi-scanning."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Skift"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Forbundet"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Midlertidigt forbundet"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Anvender <xliff:g id="SUBNAME">%1$s</xliff:g> midlertidigt"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Brug appfastgørelse"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Brug Indstillinger for udviklere"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Brug en udskrivningstjeneste"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Tillad flere brugere"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Tillad brugerskift"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"tillad, flere, brugere, mange"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"flere, brugere, profiler, personer, konti, skift, mange"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Brug trådløs fejlretning"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Vælg, hvad der skal vises på din skærm, når din tablet sidder i dockingstationen. Din enhed bruger muligvis mere batteri, når der anvendes en pauseskærm."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Tilpas"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Tilpas <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Du skal genstarte for at aktivere understøttelse af freeform."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Du skal genstarte for at gennemtvinge aktivering af computertilstand på sekundære skærme."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Du skal genstarte for at aktivere understøttelse af vinduer i frit format."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Du skal genstarte for at opdatere tilgængeligheden af vinduer i frit format."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Du skal genstarte for at aktivere vinduer i frit format på sekundære skærme."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Genstart nu"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Genstart senere"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Rumlig lyd"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Udfør"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Gem"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Annuller"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Standard"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Middel"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Til"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Fra"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Til"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Lyd %1$d%% venstre, %2$d%% højre"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Lyd %1$d%% højre, %2$d%% venstre"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Din enheds navn er synligt for apps, du har installeret. Det kan muligvis også ses af andre, når du opretter forbindelse til Bluetooth-enheder eller et Wi-Fi-netværk, eller når du konfigurerer et Wi-Fi-hotspot."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatisk køn"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Vælg grammatisk køn"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lyt til stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan en QR-kode til en lydstream for at lytte via <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Adgangskoden kan ikke ændres under deling. Deaktiver lyddeling for at ændre adgangskoden."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kodescanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Søg i Indstillinger"</string>
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index 400e9c0..588a55b 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Schlafenszeit"</item>
-    <item msgid="4152450357280759894">"Autofahren"</item>
-    <item msgid="7096549258219399423">"Immersiv"</item>
-    <item msgid="2760716776980432977">"Verwaltet"</item>
-    <item msgid="601734478369121764">"Stern"</item>
-    <item msgid="6243809315432780521">"Kalender"</item>
-    <item msgid="4913577903148415331">"Zeit"</item>
-    <item msgid="3653377604690057780">"Theater"</item>
-    <item msgid="3843711267408385410">"Blüte"</item>
+    <item msgid="2750940760340557109">"Halbmond"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Die Gedanken einer Person"</item>
+    <item msgid="6734164279667121348">"Kalender"</item>
+    <item msgid="4139559120353528558">"Uhr"</item>
+    <item msgid="5157711296814769020">"Sonnenschirm"</item>
+    <item msgid="6635328761318954115">"Zelt"</item>
+    <item msgid="1711994778883392255">"70er‑Jahre-Film"</item>
+    <item msgid="9097658401859604879">"Controller"</item>
+    <item msgid="755931364157422565">"Fitnessstudio-Hantel"</item>
+    <item msgid="8894207806795738429">"Person, die einen Ball wirft"</item>
+    <item msgid="2274801572149555103">"Person, die kickt"</item>
+    <item msgid="8795037201506843325">"Schwimmen"</item>
+    <item msgid="3558421426169430451">"Person, die wandert"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Workshop-Tools"</item>
+    <item msgid="4595330511709890409">"Aktentasche"</item>
+    <item msgid="8352738347856724389">"Stern"</item>
+    <item msgid="7082783098151998721">"Lotusblume"</item>
+    <item msgid="5772220259409264724">"Vorgesetzter"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index a0c37f8..b2c4275 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Angehalten"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Unbekannt"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Vorschau"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-Code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Verkleinern"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Vergrößern"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Immer"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Hörgeräteeinstellungen"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Verknüpfung, Kompatibilität mit Hörgeräten"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Voreinstellung"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Der Hörgeräteakustiker hat keine Voreinstellungen festgelegt"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Voreinstellung konnte nicht aktualisiert werden"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audioausgabe"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Informationen zur Audioausgabe"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Für diese App ist in den Einstellungen keine Sprachauswahl verfügbar."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Die Sprache kann von den in der App verfügbaren Sprachen abweichen. Einige Apps unterstützen diese Einstellung möglicherweise nicht."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Leg die Sprache für einzelne Apps fest."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Dein System, deine Apps und deine Websites verwenden die erste deiner bevorzugten Sprachen, die unterstützt wird."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Dein Gerät, deine Apps und deine Websites verwenden die erste deiner bevorzugten Sprachen, die unterstützt wird.\n\nViele Apps nutzen auch die zugehörige Region deiner bevorzugten Sprache, um Daten, Zahlen und Einheiten anzupassen. Wenn du die Region ändern möchtest, füge eine Sprache hinzu und wähle anschließend deine bevorzugte Region aus."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Unter „App-Sprachen“ kannst du für jede App eine andere Sprache festlegen."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Weitere Informationen zu App-Sprachen"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Systemsprache in %s ändern?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Aus"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktiviert (# App hat Zugriff auf den Standort)}other{Aktiviert (# Apps haben Zugriff auf den Standort)}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Wird geladen…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps mit der Berechtigung zum Zugriff auf Geräte in der Nähe können die relative Position von verbundenen Geräten ermitteln."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps mit der Berechtigung zum Zugriff auf Geräte in der Nähe können die relative Positionierung von verbundenen Geräten ermitteln."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Standortzugriff ist für Apps und Dienste deaktiviert. Wenn du eine Notrufnummer wählst oder eine Nachricht an eine solche Nummer schickst, kann dein Standort dennoch an den Notdienst gesendet werden."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Weitere Informationen zu Standorteinstellungen"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Um Änderungen vorzunehmen, gehe zu den ChromeOS-Einstellungen &gt; Datenschutz und Sicherheit &gt; Datenschutzeinstellungen &gt; Standortzugriff"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gesicht und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gesicht, Fingerabdruck und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gesicht, Fingerabdrücke und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Per Remote Authenticator entsperren"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch hinzugefügt"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Smartwatch einrichten"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Weitere Informationen zu „Mit Smartwatch entsperren“"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Smartwatch hinzufügen"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Smartwatch entfernen"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Entsperrung per Gesichtserkennung und Fingerabdruck"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Entsperrung per Gesichtserkennung &amp; Fingerabdruck"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Entsperrung per Gesichtserkennung &amp; Fingerabdruck für die Arbeit"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Einrichtung erforderlich"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Gesicht und Fingerabdrücke hinzugefügt"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Das vertrauliche Profil wird eingerichtet…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Das vertrauliche Profil konnte nicht eingerichtet werden"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Noch einmal versuchen"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Beenden"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Vertrauliches Profil ist nicht verfügbar.\nMögliche Gründe ansehen"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Mögliche Gründe ansehen"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Neue Sperre für vertrauliches Profil festlegen?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Du kannst für das vertrauliche Profil eine neue Sperre festlegen oder dieselbe Sperre nutzen, die du zum Entsperren deines Geräts verwendest"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Displaysperre verwenden"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Gerät neu starten?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Die detaillierte NFC-Protokollierung wird nur zu Entwicklungszwecken verwendet. Dazu gehören auch zusätzliche NFC-Daten in Fehlerberichten, die private Informationen enthalten können. Starte dein Gerät neu, um diese Einstellung zu ändern."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Neu starten"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"An"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Aus"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Externes Display"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Externes Display verwenden"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Displayauflösung"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Das externe Display ist nicht verbunden"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Ausrichtung"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Das Ändern der Ausrichtung oder der Auflösung kann dazu führen, dass Apps, die momentan ausgeführt werden, angehalten werden"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Dein Gerät muss mit einem externen Display verbunden sein, um deinen Bildschirm spiegeln zu können"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Weitere Optionen"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Streamen"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"spiegeln"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Kabellose Übertragung aktivieren"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptiv"</string>
     <string name="brightness" msgid="6216871641021779698">"Helligkeit"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Automatische Helligkeit"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Informationen zur automatischen Helligkeit"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Die Helligkeit des Displays passt sich automatisch an deine Umgebung und deine Aktivitäten an. Mit dem Schieberegler kannst du sie manuell nach Wunsch anpassen und die Funktion „Automatische Helligkeit“ merkt sich deine Präferenz."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"An"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Aus"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Optionen"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Barrierefreiheit"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physische Tastatur"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Bildschirmtastatur verwenden"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Bildschirmtastatur auch dann anzeigen, wenn physische Tastatur aktiv ist"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce-Tasten"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Schnell aufeinanderfolgende Betätigungen derselben Taste innerhalb von <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms werden auf der Tastatur ignoriert"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Anschlagverzögerung"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Zeit zum Aktivieren eines Tastendrucks wird auf <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms festgelegt"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Die Maus kann über die physische Tastatur gesteuert werden"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Zeigerfüllfarbe in Gelb ändern"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Zeigerfüllfarbe in Rosa ändern"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Zeigerfüllfarbe in Blau ändern"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil des Zeigerstrichs"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Weiß"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Schwarz"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Keiner"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Informationen zu Touchpad-Gesten"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"Touchpad, Touch-Pad, Maus, Cursor, scrollen, wischen, rechtsklicken, klicken, Zeiger"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"rechtsklicken, tippen"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Nutzerauswahl: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Spracheingabe, -erkennung und -ausgabe"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Zeigergeschwindigkeit"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Größe des Mauszeigers"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Größe des Mauszeigers verringern"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Größe des Mauszeigers erhöhen"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Gamecontroller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Vibration weiterleiten"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Vibration an Gamecontroller senden, sofern eine Verbindung besteht"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Trotzdem fortfahren"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Abbrechen"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Vergrößerungseinstellungen"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Schwenken mit einem Finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Lupe mit 1 Finger verschieben"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Ziehe 1 Finger auf dem Display"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Verschiebe den Vergrößerungsbereich mit einem Finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Verschiebe den Vergrößerungsbereich mit zwei Fingern."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nicht verfügbar, solange nur ein Teil des Bildschirms vergrößert wird"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zum Zoomen auf eine Schaltfläche tippen"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Du kannst auf dem Display schnell heranzoomen, um Inhalte zu vergrößern"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;So zoomst du heran:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Starte die Vergrößerung über den Kurzbefehl&lt;br/&gt; {1,number,integer}. Tippe auf das Display&lt;br/&gt; {2,number,integer}. Ziehe mit zwei Fingern, um den angezeigten Bildschirmausschnitt zu ändern&lt;br/&gt; {3,number,integer}. Ziehe zwei Finger auseinander oder zusammen, um den Zoom anzupassen&lt;br/&gt; {4,number,integer}. Beende die Vergrößerung über den Kurzbefehl&lt;br/&gt;&lt;br/&gt; &lt;b&gt;So zoomst du vorübergehend heran:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Achte darauf, dass als Art der Vergrößerung „Vollbild“ ausgewählt ist&lt;br/&gt; {1,number,integer}. Starte die Vergrößerung über den Kurzbefehl&lt;br/&gt; {2,number,integer}. Halte eine beliebige Stelle auf dem Display gedrückt&lt;br/&gt; {3,number,integer}. Ziehe mit dem Finger, um den angezeigten Bildschirmausschnitt zu ändern&lt;br/&gt; {4,number,integer}. Hebe den Finger, um die Vergrößerung zu beenden"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;So zoomst du heran:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Starte die Vergrößerung über die Touch-Geste für Bedienungshilfen&lt;br/&gt; {1,number,integer}. Tippe auf das Display&lt;br/&gt; {2,number,integer}. Ziehe mit 2 Fingern, um den angezeigten Bildschirmausschnitt zu verschieben&lt;br/&gt; {3,number,integer}. Ziehe 2 Finger auseinander oder zusammen, um den Zoom anzupassen&lt;br/&gt; {4,number,integer}. Stoppe die Vergrößerung über die Touch-Geste für Bedienungshilfen&lt;br/&gt;&lt;br/&gt; Du kannst auch vorübergehend heranzoomen und mehr."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;So zoomst du heran:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Starte die Vergrößerung über die Touch-Geste für Bedienungshilfen&lt;br/&gt; {1,number,integer}. Tippe auf das Display&lt;br/&gt; {2,number,integer}. Ziehe mit 1 oder 2 Fingern, um den angezeigten Bildschirmausschnitt zu verschieben&lt;br/&gt; {3,number,integer}. Ziehe 2 Finger auseinander oder zusammen, um den Zoom anzupassen&lt;br/&gt; {4,number,integer}. Stoppe die Vergrößerung über die Touch-Geste für Bedienungshilfen&lt;br/&gt;&lt;br/&gt; Du kannst auch vorübergehend heranzoomen und mehr."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Wenn die Vergrößerung aktiviert ist, kannst du Elemente auf dem Bildschirm heranzoomen.\n\n"<b>"Wenn du zoomen möchtest"</b>", starte die Vergrößerung und tippe dann auf eine beliebige Stelle auf dem Bildschirm.\n"<ul><li>"Zum Scrollen ziehe mit zwei oder mehr Fingern"</li>\n<li>"Zum Anpassen des Zooms ziehe zwei oder mehr Finger zusammen bzw. auseinander"</li></ul>\n\n<b>"Wenn du vorübergehend heranzoomen möchtest"</b>", starte die Vergrößerung und tippe dann auf eine beliebige Stelle auf dem Bildschirm und halte sie gedrückt.\n"<ul><li>"Wenn du den angezeigten Bildschirmausschnitt verschieben möchtest, ziehe den Bildschirm"</li>\n<li>"Zum Herauszoomen hebe den Finger"</li></ul>\n\n"In die Tastatur oder Navigationsleiste kann nicht hineingezoomt werden."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Seite <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> von <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Kurzbefehl: Schaltfläche „Bedienungshilfen“"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tippe auf die unverankerte Schaltfläche."</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Touch-Geste für Bedienungshilfen"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tippe unten auf dem Display auf die Schaltfläche „Bedienungshilfen“ <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Um zwischen den Funktionen umzuschalten, halte diese Schaltfläche gedrückt."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Wische vom unteren Bildschirmrand mit zwei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit zwei Fingern über das Display nach oben und halte."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Wische vom unteren Bildschirmrand mit drei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit drei Fingern über das Display nach oben und halte."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Wische vom unteren Displayrand nach oben. Wenn du zwischen Funktionen umschalten möchtest, wische nach oben und halte.}other{Wische vom unteren Displayrand mit # Fingern nach oben. Wenn du zwischen Funktionen umschalten möchtest, wische mit # Fingern nach oben und halte.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Weitere Optionen"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Weitere Informationen zu <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Lautstärketasten"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"Lautstärketasten"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Halte beide Lautstärketasten gedrückt."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Mit zwei Fingern auf das Display doppeltippen"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"2-mal mit %1$d Fingern tippen"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tippe das Display 2-mal schnell mit %1$d Fingern an."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"3-mal tippen"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tippe das Display %1$d-mal schnell an. Dadurch kann dein Gerät langsamer werden."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"2-mal mit %1$d Fingern tippen"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tippe {0,number,integer}-mal schnell mit zwei Fingern auf das Display"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dreimal auf den Bildschirm tippen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"3-mal tippen"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tippe {0,number,integer}-mal schnell auf das Display. Durch diesen Kurzbefehl  kann dein Gerät langsamer werden."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Erweitert"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Die Schaltfläche für die Bedienungshilfen ist auf <xliff:g id="SERVICE">%1$s</xliff:g> gestellt. Um die Vergrößerung nutzen zu können, tippe &amp; halte die Schaltfläche für die Bedienungshilfen gedrückt und wähle anschließend \"Vergrößerung\" aus."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Die Touch-Geste für die Bedienungshilfen ist auf den Dienst \"<xliff:g id="SERVICE">%1$s</xliff:g>\" eingestellt. Wenn du die Vergrößerung verwenden möchtest, wische mit zwei Fingern vom unteren Bildschirmrand nach oben und halte den Bildschirm gedrückt. Wähle dann \"Vergrößerung\" aus."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Dieser Dienst funktioniert nicht."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Kurzbefehle für Bedienungshilfen"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"In Schnelleinstellungen anzeigen"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rot-Grün-Sehschwäche"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rot-Grün-Sehschwäche"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rot-Grün-Schwäche, Grünschwäche"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rot-Grün-Schwäche, Rotschwäche"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blau-Gelb-Sehschwäche"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Graustufen"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensität"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Grün-Sehschwäche, Deuteranomalie"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rot-Sehschwäche, Protanomalie"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nicht verfügbar im Modus „Graustufen“ oder wenn die Funktion „Farbkorrektur“ deaktiviert ist"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalie"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalie"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extradunkel"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Option „Extradunkel“ aktivieren"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Blaugrün"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Gelb"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"„<xliff:g id="SERVICE">%1$s</xliff:g>“ die vollständige Kontrolle über dein Gerät geben?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> muss:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Deine Eingabe wird von \"Einstellungen\" nicht erkannt, weil die Berechtigungsanfrage von einer App verdeckt wird."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> fordert eine volle Kontrolle für dieses Gerät an. Der Dienst kann den Bildschirm lesen und im Namen von Nutzern mit Bedarf an Bedienungshilfen handeln. Dieses Maß an Kontrolle ist für die meisten Apps ungeeignet."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Die vollständige Kontrolle sollte nur für Apps aktiviert werden, die dir Zugang zu App-Funktionen erleichtern. Das ist in der Regel nur ein kleiner Teil der Apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Bildschirm aufrufen und steuern"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Die Funktion kann alle Inhalte auf dem Bildschirm lesen und diese Inhalte über anderen Apps anzeigen."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Aktionen aufrufen und durchführen"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Die Funktion kann deine Interaktionen mit einer App oder einem Hardwaresensor verfolgen und in deinem Namen mit Apps interagieren."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zulassen"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ablehnen"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Aus"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Keine}=1{1 Zeitplan festgelegt}other{# Zeitpläne festgelegt}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Bitte nicht stören"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritätsmodi"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Modus hinzufügen"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Mit Modi für Schlaf, Arbeit und das Fahren und alles dazwischen kannst du Ablenkungen minimieren und deine Aufmerksamkeit besser lenken."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Eigenen Modus erstellen"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Benachrichtigungen nur von wichtigen Personen und Apps"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Zeitplan festlegen"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Zeitplan basierend auf"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Datum und Uhrzeit"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„Von 9 Uhr bis 17 Uhr an Wochentagen“"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalendertermine"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ist aktiv}=2{{mode_1} und {mode_2} sind aktiv}=3{{mode_1}, {mode_2} und {mode_3} sind aktiv}other{{mode_1}, {mode_2} und # weitere Modi sind aktiv}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 Modus kann automatisch aktiviert werden}other{# Modi können automatisch aktiviert werden}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AN"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nicht festgelegt"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Deaktiviert"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Modus erstellen"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Benutzerdefiniert"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Jetzt aktivieren"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Deaktivieren"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modus nicht gefunden"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Unterbrechungen einschränken"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Unterbrechungen und Ablenkungen blockieren"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> einrichten"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"„Bitte nicht stören“ aktivieren"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Wecker und Medientöne können ihn unterbrechen"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Zeitpläne"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Zeitpläne löschen"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Löschen"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Umbenennen"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Löschen"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Den Modus „<xliff:g id="MODE">%1$s</xliff:g>“ löschen?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Bearbeiten"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Zeitpläne"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Zeitplan"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automatisch aktivieren"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Kalender hinzufügen"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Kalender verwenden"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Zeitplan"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Zeitplan festlegen"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Zeitpunkt für automatische Aktivierung"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Terminplan"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Aktivieren während Terminen für"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Wenn die Einladungsantwort so lautet:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Zeitplan"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Zeitplan"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> Std. <xliff:g id="MINUTES">%2$d</xliff:g> Min."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Zeitplan"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Unterbrechungen mit Tönen zulassen"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Visuelle Störungen blockieren"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Visuelle Signale zulassen"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Benachrichtigungen, die dich erreichen können"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Weitere Aktionen"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Benachrichtigungsfilter"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Weitere Einstellungen"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Deaktiviert}=1{Deaktiviert / 1 Modus kann automatisch aktiviert werden}other{Deaktiviert / # Modi können automatisch aktiviert werden}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Anzeigeeinstellungen"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Optionen anzeigen"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Graustufen"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"Dunkles Design aktivieren"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Stelle das Betriebssystem und die Apps so ein, dass vor einem dunklen Hintergrund heller Text bevorzugt wird. Das strengt die Augen weniger an und kann auf manchen Geräten die Akkulaufzeit erheblich verlängern."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Keine Änderungen der Anzeige}=1{{effect_1}}=2{{effect_1} und {effect_2}}=3{{effect_1}, {effect_2} und {effect_3}}other{{effect_1}, {effect_2} und # mehr}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Einschränken, wovon ich benachrichtigt werden kann"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Es werden keine Unterbrechungen gefiltert"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Anzeigeoptionen für gefilterte Benachrichtigungen"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Wenn „Bitte nicht stören“ aktiviert ist"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Kein akustisches Signal bei Benachrichtigungen"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"Benachrichtigung öffnen"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Schlummerfunktion für Benachrichtigungen zulassen"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Benachrich­ti­gungs­punkt auf App-Symbol"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Benachrichtigungs-Sets"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Diese Unterhaltung als Bubble anzeigen"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Diese App unterstützt erweiterte Einstellungen nicht"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Weitere Einstellungen"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Weitere Einstellungen sind in dieser App verfügbar"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive Benachrichtigungen"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Adaptive Benachrichtigungen verwenden"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Wenn du innerhalb eines kurzen Zeitraums viele Nachrichten erhältst, reduziert dein Smartphone für bis zu zwei Minuten die Lautstärke und minimiert Pop‑ups auf dem Display. Anrufe, Wecker und priorisierte Unterhaltungen werden dennoch auf dem Display angezeigt bzw. führen dennoch dazu, dass das Smartphone vibriert oder einen Ton ausgibt. Du findest alle deine Nachrichten, wenn du vom oberen Displayrand nach unten wischst."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Verringern der Benach­richtigungs­lautstärke"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Verringern von Lautstärke und Vibration bei Benachrichtigungen aktivieren"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Wenn du viele Benachrichtigungen innerhalb kurzer Zeit erhältst, verringert dein Gerät für bis zu zwei Minuten die Lautstärke und minimiert Benachrichtigungen. Anrufe, Wecker und priorisierte Unterhaltungen sind davon nicht betroffen. \n\nWenn du Benachrichtigungen sehen möchtest, die während des Verringerns der Lautstärke eingegangen sind, wische vom oberen Rand des Displays nach unten."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Auf Arbeitsprofile anwenden"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Auf Apps im Arbeitsprofil anwenden"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-Hilfsdienste"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorien"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Andere"</string>
     <string name="no_channels" msgid="4716199078612071915">"Für diese App gibt es keine Benachrichtigungen"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Ungenutzte Kategorien anzeigen"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Zusätzliche Einstellungen in der App"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Ungenutzte Kategorien anzeigen"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ungenutzte Kategorien ausblenden"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Unterhaltungen"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Alle Unterhaltungen"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"alle Unterhaltungen"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Vorrangige Unterhaltungen"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"vorrangige Unterhaltungen"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Keine"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps, die unterbrechen dürfen"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Ausgewählte Apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Keine"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alle"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Keine App kann ihn unterbrechen}=1{{app_1} kann ihn unterbrechen}=2{{app_1} und {app_2} können ihn unterbrechen}=3{{app_1}, {app_2} und {app_3} können ihn unterbrechen}other{{app_1}, {app_2}, und # weitere können ihn unterbrechen}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (geschäftlich)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Wird berechnet…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Überschreiben durch Apps zulassen"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps, die unterbrechen dürfen"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Weitere Apps auswählen"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nichts kann ihn unterbrechen"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Niemand kann ihn unterbrechen"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Einige Personen können ihn unterbrechen"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Bei wiederkehrenden Anrufern unterbrechen"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Alle Personen können ihn unterbrechen"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Wiederholte Anrufer"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Wiederholte Anrufer zulassen"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Eine Stunde lang bis {time} zur Option „nur Weckrufe“ wechseln}other{# Stunden lang bis {time} zur Option „nur Weckrufe“ wechseln}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Bis <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> zur Option \"Nur Weckrufe\" wechseln"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Zur Option \"Immer unterbrechen\" wechseln"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Umbenennen"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Symbol ändern"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Symbol ändern"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modus bearbeiten"</string>
+    <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>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendertermine"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Ablauf „Schlafenszeit“"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Beim Fahren"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"App-Einstellungen"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informationen und Einstellungen in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Verwaltet von <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> deaktivieren?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Bei Deaktivierung wird dieser Modus nie aktiviert"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Deaktivieren"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> aktivieren?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Dieser Modus kann abhängig von den Einstellungen automatisch aktiviert werden"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivieren"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Du kannst einen Modus festlegen, der einem regulären Zeitplan folgt"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Du kannst einen Modus für die Synchronisierung mit Terminen und Antworten auf Einladungen festlegen"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Entwickle eine Einschlafroutine, die abends zu deiner Entspannung beiträgt. Stelle beispielsweise deinen Wecker, dimme das Display und blockiere Benachrichtigungen."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Du kannst für mehr Sicherheit im Straßenverkehr und mehr Konzentration am Steuer sorgen"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Für mehr Konzentration kannst du Ablenkungen und Unterbrechungen blockieren"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Für ein ruhigeres Umfeld kannst du Ablenkungen unterbinden"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Du kannst dein Gerät und die Einstellungen für unterschiedliche Personen anpassen"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Um Ablenkungen zu minimieren, kannst du festlegen, dass nur wichtige Personen und Apps dich benachrichtigen können"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Warnung"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Schließen"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Feedback zu diesem Gerät senden"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akku"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Einstellungen"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Desktop-Modus erzwingen"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Experiementellen Desktop-Modus auf sekundären Bildschirmen erzwingen"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Freiform-Fenster zulassen"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Freiform-Fenster auf sekundären Displays zulassen"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Mehrfenstermodus für nicht änderbare Größen aktivieren"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Erlaubt Mehrfenstermodus für Apps mit nicht änderbarer Größe"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Erzwingen des dunklen Modus außer Kraft setzen"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile Daten"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Apps und Dienste können jederzeit nach WLANs suchen, auch wenn die WLAN-Funktion deaktiviert ist. Dadurch können beispielsweise standortbasierte Funktionen und Dienste verbessert werden. Das Verhalten lässt sich in den Einstellungen für die WLAN-Suche ändern."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Ändern"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Verbunden"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Vorübergehend verbunden"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Vorübergehend mit <xliff:g id="SUBNAME">%1$s</xliff:g> verbunden"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Bildschirmfixierung verwenden"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Entwickleroptionen verwenden"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Druckdienst verwenden"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Mehrere Nutzer zulassen"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Nutzerwechsel zulassen"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"zulassen, mehrere, Nutzer, Erlaubnis, viele"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"mehrere, Nutzer, Profile, Personen, Konten, wechseln, viele"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Debugging über WLAN verwenden"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Hier kannst du festlegen, was auf dem Display angezeigt werden soll, wenn das Tablet angedockt ist. Das Gerät verbraucht möglicherweise mehr Strom, wenn ein Bildschirmschoner verwendet wird."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Anpassen"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> anpassen"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Damit die Freiform-Unterstützung aktiviert wird, musst du das Gerät neu starten."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Damit der Desktop-Modus auf sekundären Bildschirmen erzwungen wird, musst du das Gerät neu starten."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Damit die Unterstützung von Freiform-Fenstern aktiviert wird, musst du das Gerät neu starten."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Zum Aktualisieren der Verfügbarkeit von Freiform-Fenstern ist ein Neustart erforderlich."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Zum Aktivieren von Freiform-Fenstern auf sekundären Displays ist ein Neustart erforderlich."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Jetzt neu starten"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Später neu starten"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial Audio"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Pink"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violett"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Fertig"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Speichern"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Abbrechen"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Standard"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Mittel"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"An"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Aus"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"An"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% links, %2$d%% rechts"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% rechts, %2$d%% links"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Dein Gerätename ist für Apps, die du installiert hast, sichtbar. Wenn du dein Gerät mit Bluetooth-Geräten oder einem WLAN verbindest oder einen WLAN-Hotspot einrichtest, kann der Name möglicherweise auch von anderen Personen gesehen werden."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Genus"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Genus auswählen"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Stream anhören"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Den QR-Code eines Audiostreams scannen, um den Stream auf <xliff:g id="DEVICE_NAME">%1$s</xliff:g> anzuhören"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Während der Freigabe kann das Passwort nicht geändert werden. Wenn du das Passwort ändern möchtest, deaktiviere zuerst die Audiofreigabe."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR‑Code-Scanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"In Einstellungen suchen"</string>
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 705ca0e..3c00c1f 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Ώρα για ύπνο"</item>
-    <item msgid="4152450357280759894">"Οδήγηση"</item>
-    <item msgid="7096549258219399423">"Καθηλωτικό"</item>
-    <item msgid="2760716776980432977">"Διαχειριζόμενο"</item>
-    <item msgid="601734478369121764">"Αστέρι"</item>
-    <item msgid="6243809315432780521">"Ημερολόγιο"</item>
-    <item msgid="4913577903148415331">"Ώρα"</item>
-    <item msgid="3653377604690057780">"Θέατρο"</item>
-    <item msgid="3843711267408385410">"Λουλούδι"</item>
+    <item msgid="2750940760340557109">"Μισοφέγγαρο"</item>
+    <item msgid="8513969636586738035">"Αυτοκίνητο"</item>
+    <item msgid="957392343846370509">"Ανθρώπινος εγκέφαλος"</item>
+    <item msgid="6734164279667121348">"Ημερολόγιο"</item>
+    <item msgid="4139559120353528558">"Ρολόι"</item>
+    <item msgid="5157711296814769020">"Ομπρέλα παραλίας"</item>
+    <item msgid="6635328761318954115">"Σκηνή"</item>
+    <item msgid="1711994778883392255">"Ρετρό φιλμ"</item>
+    <item msgid="9097658401859604879">"Χειριστήριο παιχνιδιού"</item>
+    <item msgid="755931364157422565">"Αλτήρας γυμναστικής"</item>
+    <item msgid="8894207806795738429">"Άτομο που ρίχνει μπάλα"</item>
+    <item msgid="2274801572149555103">"Άτομο που κλωτσά"</item>
+    <item msgid="8795037201506843325">"Κολύμβηση"</item>
+    <item msgid="3558421426169430451">"Άτομο που κάνει πεζοπορία"</item>
+    <item msgid="7455070421232184932">"Γκολφ"</item>
+    <item msgid="5841773092449126508">"Εργαλεία εργαστηρίου"</item>
+    <item msgid="4595330511709890409">"Χαρτοφύλακας"</item>
+    <item msgid="8352738347856724389">"Αστέρι"</item>
+    <item msgid="7082783098151998721">"Λουλούδι λωτού"</item>
+    <item msgid="5772220259409264724">"Επόπτης"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 957ea5e..5c9bf7e 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Σε αναστολή"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Άγνωστη"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Προεπισκόπηση"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Κωδικός QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Να γίνουν μικρότερα"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Να γίνουν μεγαλύτερα"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Πάντα"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Ρυθμίσεις συσκευής ακοής"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Συντόμευση, συμβατότητα με βοηθήματα ακοής"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Προεπιλογή"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Ο ακοολόγος σας δεν έχει προγραμματίσει προεπιλογές"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Δεν ήταν δυνατή η ενημέρωση της προεπιλογής"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Έξοδος ήχου"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Σχετικά με την έξοδο ήχου"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Η δυνατότητα επιλογής γλώσσας για αυτή την εφαρμογή δεν είναι διαθέσιμη από τις Ρυθμίσεις."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Η γλώσσα μπορεί να διαφέρει από τις γλώσσες που είναι διαθέσιμες στην εφαρμογή. Ορισμένες εφαρμογές μπορεί να μην υποστηρίζουν αυτήν τη ρύθμιση."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Ορίστε τη γλώσσα για κάθε εφαρμογή."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Το σύστημα, οι εφαρμογές και οι ιστότοποι χρησιμοποιούν την πρώτη υποστηριζόμενη γλώσσα από τις προτιμώμενες γλώσσες σας."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Η συσκευή, οι εφαρμογές και οι ιστότοποί σας χρησιμοποιούν την πρώτη υποστηριζόμενη γλώσσα από τη λίστα προτιμώμενων γλωσσών σας.\n\nΠολλές εφαρμογές θα χρησιμοποιούν επίσης την περιοχή από την προτιμώμενη γλώσσα σας για να μορφοποιήσουν ημερομηνίες, αριθμούς και μονάδες. Για να αλλάξετε την περιοχή σας, προσθέστε μια γλώσσα και, στη συνέχεια, επιλέξτε την περιοχή που προτιμάτε."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Για να επιλέξετε μια γλώσσα για κάθε εφαρμογή, μεταβείτε στις ρυθμίσεις γλώσσας εφαρμογών."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Μάθετε περισσότερα σχετικά με τις γλώσσες εφαρμογών"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Αλλαγή γλώσσας συστήματος στα %s ;"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Απενεργοποίηση"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ενεργή / # εφαρμογή έχει πρόσβαση στην τοποθεσία}other{Ενεργή / # εφαρμογές έχουν πρόσβαση στην τοποθεσία}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Φόρτωση…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Οι εφαρμογές με άδεια Συσκευές σε κοντινή απόσταση μπορούν να προσδιορίσουν τη σχετική θέση των συνδεδεμένων συσκευών."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Οι εφαρμογές που έχουν την άδεια Συσκευές σε κοντινή απόσταση μπορούν να προσδιορίσουν τη σχετική θέση των συνδεδεμένων συσκευών."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Η πρόσβαση στην τοποθεσία είναι απενεργοποιημένη για τις εφαρμογές και τις υπηρεσίες. Η τοποθεσία της συσκευής σας ενδέχεται ωστόσο να αποστέλλεται στους χειριστές των κέντρων εκτάκτων αναγκών, όταν καλείτε ή στέλνετε μήνυμα σε έναν αριθμό έκτακτης ανάγκης."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Μάθετε περισσότερα σχετικά με τις Ρυθμίσεις τοποθεσίας"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Για αλλαγή, μεταβείτε στις Ρυθμίσεις του ChromeOS &gt; Απόρρητο και ασφάλεια &gt; Στοιχεία ελέγχου απορρήτου &gt; Πρόσβαση στην τοποθεσία"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Προστέθηκε το πρόσωπο και το <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Προστέθηκαν πρόσωπο, δακτυλικό αποτύπωμα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Προστέθηκαν πρόσωπο, δακτυλικά αποτυπώματα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Απομ. ξεκλ. Προγράμ. ελέγχου ταυτότητας"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Το ρολόι προστέθηκε"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Ρυθμίστε το ρολόι σας"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Μάθετε περισσότερα σχετικά με το Ξεκλείδωμα ρολογιού"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Προσθήκη ρολογιού"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Κατάργηση ρολογιού"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Ξεκλείδωμα με δακτυλικό αποτύπωμα και με το πρόσωπο"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Ξεκλείδωμα με πρόσωπο/δακτυλ. αποτύπωμα"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ξεκλείδωμα με πρόσωπο και δακτυλικό αποτύπωμα για την εργασία"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Απαιτείται ρύθμιση"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Προστέθηκε πρόσωπο και δακτυλικά αποτυπώματα"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Ρύθμιση ιδιωτικού χώρου…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Δεν ήταν δυνατή η ρύθμιση ενός ιδιωτικού χώρου"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Επανάληψη"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Έξοδος"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Ο ιδιωτικός χώρος δεν είναι διαθέσιμος.\nΠροβολή πιθανών αιτιών"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Προβολή πιθανών αιτιών"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Επιλογή νέου κλειδώματος για τον ιδιωτικό χώρο;"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Μπορείτε να ορίσετε ένα νέο κλείδωμα μόνο για τον ιδιωτικό χώρο ή να χρησιμοποιήσετε το ίδιο κλείδωμα που χρησιμοποιείτε για το ξεκλείδωμα της συσκευής σας"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Χρήση κλειδώματος οθόνης"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Επανεκκίνηση συσκευής;"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Η καταγραφή των λεπτομερειών NFC προορίζεται μόνο για σκοπούς ανάπτυξης. Επιπλέον δεδομένα NFC περιλαμβάνονται στις αναφορές σφαλμάτων, οι οποίες ενδέχεται να περιέχουν ιδιωτικές πληροφορίες. Επανεκκινήστε τη συσκευή σας για να αλλάξετε αυτήν τη ρύθμιση."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Επανεκκίνηση"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Ενεργή"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Ανενεργή"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Εξωτερική οθόνη"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Χρήση εξωτερικής οθόνης"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ανάλυση οθόνης"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Η εξωτερική οθόνη δεν είναι συνδεδεμένη"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Περιστροφή"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Τυπική"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Εάν αλλάξετε την περιστροφή ή την ανάλυση, ενδέχεται να σταματήσουν τυχόν εφαρμογές που εκτελούνται αυτή τη στιγμή"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Η συσκευή σας πρέπει να είναι συνδεδεμένη σε μια εξωτερική οθόνη προκειμένου να είναι δυνατός ο κατοπτρισμός της οθόνης σας"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Περισσότερες επιλογές"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Μετάδοση"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"κατοπτρισμός"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Ενεργοποίηση ασύρματης οθόνης"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Προσαρμοστικό"</string>
     <string name="brightness" msgid="6216871641021779698">"Επίπεδο φωτεινότητας"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Προσαρμοστική φωτεινότητα"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Σχετικά με την προσαρμοστική φωτεινότητα"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Η φωτεινότητα της οθόνης σας θα προσαρμοστεί αυτόματα στο περιβάλλον και τις δραστηριότητές σας. Μπορείτε να μετακινήσετε χειροκίνητα το ρυθμιστικό, για να ενημερωθεί η προσαρμοστική φωτεινότητα σχετικά με τις ρυθμίσεις σας."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Ενεργή"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Ανενεργή"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Επιλογές"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Προσβασιμότητα"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Φυσικό πληκτρολόγιο"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Χρήση πληκτρολογίου οθόνης"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Να παραμένει στην οθόνη όταν είναι ενεργό το φυσικό πληκτρολόγιο"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ελαστικά πλήκτρα"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Το πληκτρολόγιο αγνοεί τα γρήγορα, επαναλαμβανόμενα πατήματα του ίδιου πλήκτρου εντός <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Αργά πλήκτρα"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Προσαρμόζει τον χρόνο που απαιτείται για την ενεργοποίηση ενός πατήματος πλήκτρου στα <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Χρησιμοποιήστε το πληκτρολόγιο για να χειριστείτε το ποντίκι."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Αλλαγή στιλ γεμίσ. δείκ. σε κίτρινο"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Αλλαγή στιλ γεμίσματ. δείκτη σε ροζ"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Αλλαγή στιλ γεμίσμ. δείκτη σε μπλε"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Στιλ πινελιάς δείκτη"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Λευκό"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Μαύρο"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Κανένα"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Μάθετε κινήσεις επιφάνειας αφής"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"επιφάνειας αφής, επιφάνεια, ποντίκι, δείκτης, κύλιση, σάρωση, δεξί κλικ, κλικ, δείκτης"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"δεξί κλικ, πάτημα"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Επιλέχθηκε από τον χρήστη: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Ομιλία"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Ταχύτητα δείκτη"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Μέγεθος δείκτη"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Μείωση μεγέθους δείκτη"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Αύξηση μεγέθους δείκτη"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Χειριστήριο παιχνιδιού"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Ανακατεύθυνση δόνησης"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Αποστολή δόνησης στο χειριστήριο του παιχνιδιού κατά τη σύνδεση."</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Συνέχεια ούτως ή άλλως"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ακύρωση"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ρυθμίσεις μεγέθυνσης"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Μετακίνηση με ένα δάχτυλο"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Μετακινήστε τη Μεγέθυνση με το δάχτυλό σας"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Σύρετε το δάχτυλό σας για μετακίνηση στην οθόνη"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Μετακινήστε την περιοχή μεγιστοπ. σύροντας με ένα δάχτυλο."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Μετακινήστε την περιοχή μεγιστοπ. σύροντας με δύο δάχτυλα."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Μη διαθέσιμο όταν μεγιστοποιείται μόνο ένα τμήμα της οθόνης"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Πατήστε ένα κουμπί για εστίαση"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Μεγεθύνετε γρήγορα την οθόνη προκειμένου το περιεχόμενο να εμφανίζεται μεγαλύτερο"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Για μεγέθυνση:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση&lt;br/&gt; {1,number,integer}. Πατήστε την οθόνη&lt;br/&gt; {2,number,integer}. Σύρετε 2 δάχτυλα για να μετακινηθείτε στην οθόνη&lt;br/&gt; {3,number,integer}. Πλησιάστε δύο δάχτυλα μεταξύ τους για προσαρμογή της εστίασης&lt;br/&gt; {4,number,integer}. Χρησιμοποιήστε τη συντόμευση για να διακόψετε τη μεγιστοποίηση&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Για προσωρινή μεγέθυνση:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Βεβαιωθείτε ότι ο τύπος μεγέθυνσης έχει οριστεί σε πλήρη οθόνη&lt;br/&gt; {1,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση&lt;br/&gt; {2,number,integer}. Αγγίξτε παρατεταμένα οπουδήποτε στην οθόνη&lt;br/&gt; {3,number,integer}. Σύρετε το δάχτυλό σας για να μετακινηθείτε στην οθόνη&lt;br/&gt; {4,number,integer}. Σηκώστε το δάχτυλό σας για διακοπή της μεγιστοποίησης"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Για μεγέθυνση:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση&lt;br/&gt; {1,number,integer}. Πατήστε την οθόνη&lt;br/&gt; {2,number,integer}. Σύρετε 2 δάχτυλα για να μετακινηθείτε στην οθόνη&lt;br/&gt; {3,number,integer}. Πλησιάστε 2 δάχτυλα μεταξύ τους για προσαρμογή της εστίασης&lt;br/&gt; {4,number,integer}. Χρησιμοποιήστε τη συντόμευση για να σταματήσετε τη μεγιστοποίηση&lt;br/&gt;&lt;br/&gt; Μπορείτε επίσης να κάνετε προσωρινά μεγέθυνση και πολλά άλλα."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Για μεγέθυνση:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Χρησιμοποιήστε τη συντόμευση για να ξεκινήσετε τη μεγιστοποίηση&lt;br/&gt; {1,number,integer}. Πατήστε την οθόνη&lt;br/&gt; {2,number,integer}. Σύρετε 1 ή 2 δάχτυλα για να μετακινηθείτε στην οθόνη&lt;br/&gt; {3,number,integer}. Πλησιάστε 2 δάχτυλα μεταξύ τους για προσαρμογή της εστίασης&lt;br/&gt; {4,number,integer}. Χρησιμοποιήστε τη συντόμευση για να σταματήσετε τη μεγιστοποίηση&lt;br/&gt;&lt;br/&gt; Μπορείτε επίσης να κάνετε προσωρινά μεγέθυνση και πολλά άλλα."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Όταν η μεγέθυνση είναι ενεργοποιημένη, μπορείτε να μεγεθύνετε την οθόνη σας.\n\n"<b>"Για εστίαση "</b>", ανοίξτε τη μεγέθυνση και, στη συνέχεια, πατήστε οπουδήποτε στην οθόνη σας.\n"<ul><li>"Σύρετε 2 ή περισσότερα δάχτυλα για κύλιση"</li>\n<li>"Πλησιάστε 2 ή περισσότερα δάχτυλα για να προσαρμόσετε την εστίαση"</li></ul>\n\n<b>"Για προσωρινή εστίαση"</b>", ανοίξτε τη μεγέθυνση και, στη συνέχεια, αγγίξτε παρατεταμένα οπουδήποτε στην οθόνη.\n"<ul><li>"Σύρετε για να μετακινηθείτε στην οθόνη"</li>\n<li>"Ανασηκώστε το δάχτυλο για σμίκρυνση"</li></ul>\n\n"Δεν μπορείτε να κάνετε μεγέθυνση στο πληκτρολόγιο ή τη γραμμή πλοήγησης."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Σελίδα <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> από <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Συντόμευση κουμπιού προσβασιμότητας"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας δύο δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω με δύο δάχτυλα και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας τρία δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών σύρετε προς τα επάνω με τρία δάχτυλα και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Σύρετε προς τα επάνω από το κάτω μέρος της οθόνης. Για εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω και κρατήστε το δάχτυλό σας στην οθόνη.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Διπλό πάτημα οθόνης με δύο δάχτυλα"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Πατήστε γρήγορα την οθόνη %1$d φορές. Αυτό μπορεί να επιβραδύνει τη συσκευή σας."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Διπλό πάτημα με %1$d δάχτυλα"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Πατήστε γρήγορα την οθόνη {0,number,integer} φορές με δύο δάχτυλα"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Τριπλό πάτημα οθόνης"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"τριπλό πάτημα"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Πατήστε γρήγορα στην οθόνη {0,number,integer} φορές. Αυτή η συντόμευση μπορεί να μειώσει την ταχύτητα της συσκευής σας."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Σύνθετες"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Το κουμπί Προσβασιμότητας έχει οριστεί σε <xliff:g id="SERVICE">%1$s</xliff:g>. Για να χρησιμοποιήσετε τη μεγέθυνση, αγγίξτε παρατεταμένα το κουμπί Προσβασιμότητας και έπειτα επιλέξτε να κάνετε μεγέθυνση."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Η κίνηση προσβασιμότητας ορίστηκε στην υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g>. Για να χρησιμοποιήσετε τη μεγιστοποίηση, σύρετε παρατεταμένα προς τα επάνω με δύο δάχτυλα από το κάτω μέρος της οθόνης και μην τα απομακρύνετε από την οθόνη. Στη συνέχεια, επιλέξτε μεγιστοποίηση."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Αυτή η υπηρεσία δεν λειτουργεί σωστά."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Συντομεύσεις προσβασιμότητας"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Εμφάνιση στις Γρήγορες ρυθμίσεις"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Κόκκινο-πράσινο"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Κόκκινο-πράσινο"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Κόκκινο-πράσινο, ασθενές πράσινο"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Κόκκινο-πράσινο, ασθενές κόκκινο"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Μπλε-κίτρινο"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Κλίμακα του γκρι"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ένταση"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Αδυναμία αντίληψης πράσινου, δευτερανωμαλία"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Αδυναμία αντίληψης κόκκινου, πρωτανωμαλία"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Δεν είναι διαθέσιμες για τη λειτουργία σε κλίμακα του γκρι ή όταν η διόρθωση χρωμάτων είναι απενεργοποιημένη"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Δευτερανοπία"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Πρωτανοπία"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Τριτανοπία"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Επιπλέον μείωση φωτ."</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Επιπλέον μείωση φωτεινότητας της οθόνης"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Κυανό"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Κίτρινο"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Πορφυρό"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Να επιτρέπεται στην υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> να έχει τον πλήρη έλεγχο της συσκευής σας;"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"Η υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> απαιτεί τα εξής:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Επειδή μια εφαρμογή αποκρύπτει ένα αίτημα άδειας, δεν είναι δυνατή η επαλήθευση της απάντησής σας από τις Ρυθμίσεις."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Η υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> ζητάει πλήρη έλεγχο αυτής της συσκευής. Η υπηρεσία μπορεί να διαβάσει την οθόνη και να δράσει εκ μέρους των χρηστών με προβλήματα προσβασιμότητας. Αυτό το επίπεδο ελέγχου δεν είναι κατάλληλο για τις περισσότερες εφαρμογές."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Ο πλήρης έλεγχος είναι κατάλληλος για εφαρμογές που εξυπηρετούν τις ανάγκες προσβασιμότητάς σας, αλλά όχι για όλες τις εφαρμογές."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Προβολή και έλεγχος οθόνης"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Μπορεί να διαβάσει όλα τα περιεχόμενα της οθόνης σας και να εμφανίσει περιεχόμενο πάνω από άλλες εφαρμογές."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Προβολή και εκτέλεση ενεργειών"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Μπορεί να παρακολουθήσει τις αλληλεπιδράσεις σας με μια εφαρμογή ή έναν αισθητήρα εξοπλισμού και να αλληλεπιδράσει με εφαρμογές εκ μέρους σας."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ναι"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Όχι"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Απενεργοπ."</string>
@@ -3246,7 +3266,7 @@
     <string name="keywords_active_unlock_settings" msgid="4511320720304388889">"ξεκλείδωμα ρολογιού, προσθήκη ξεκλειδώματος ρολογιού"</string>
     <string name="keywords_display_auto_brightness" msgid="7162942396941827998">"μείωση φωτεινότητας οθόνης, οθόνη αφής, μπαταρία, έξυπνη φωτεινότητα, δυναμική φωτεινότητα, αυτόματη φωτεινότητα"</string>
     <string name="keywords_display_adaptive_sleep" msgid="4905300860114643966">"έξυπνη, μείωση φωτεινότητας οθόνης, αδράνεια, μπαταρία, χρονικό όριο, προσοχή, προβολή, οθόνη, αδράνεια"</string>
-    <string name="keywords_auto_rotate" msgid="7288697525101837071">"κάμερα, έξυπνη, αυτόματη περιστροφή, αυτόματη περιστροφή, περιστροφή, αναστροφή, περιστροφή, πορτραίτο, οριζόντιος, προσανατολισμός, κατακόρυφος, οριζόντιος"</string>
+    <string name="keywords_auto_rotate" msgid="7288697525101837071">"κάμερα, έξυπνη, αυτόματη περιστροφή, αυτόματη περιστροφή, περιστροφή, αναστροφή, περιστροφή, πορτρέτο, οριζόντιος, προσανατολισμός, κατακόρυφος, οριζόντιος"</string>
     <string name="keywords_system_update_settings" msgid="5769003488814164931">"αναβάθμιση, android"</string>
     <string name="keywords_zen_mode_settings" msgid="7810203406522669584">"dnd, πρόγραμμα, ειδοποιήσεις, αποκλεισμός, σίγαση, δόνηση, αδράνεια, εργασία, εστίαση, ήχος, σίγαση, ημέρα, καθημερινή, σαββατοκύριακο, νύχτα καθημερινής, συμβάν"</string>
     <string name="keywords_screen_timeout" msgid="8921857020437540572">"οθόνη, χρόνος κλειδώματος, λήξη ορίου χρόνου, οθόνη κλειδώματος"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Κανένα}=1{Ορίστηκε ένα πρόγραμμα.}other{Ορίστηκαν # προγράμματα.}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Μην ενοχλείτε"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Λειτουργίες προτεραιότητας"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Προσθήκη λειτουργίας"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Ελαχιστοποιήστε τους αντιπερισπασμούς και συγκεντρωθείτε με λειτουργίες ύπνου, εργασίας, οδήγησης και άλλα."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Δημιουργήστε μια δική σας λειτουργία"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Λήψη ειδοποιήσεων μόνο από σημαντικά άτομα και εφαρμογές"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Ορίστε ένα πρόγραμμα"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Το πρόγραμμα βασίζεται σε"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Ημέρα και ώρα"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 π.μ.-5 μ.μ. τις εργάσιμες ημέρες\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Συμβάντα ημερολογίου"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Η λειτουργία {mode_1} είναι ενεργή}=2{Οι λειτουργίες {mode_1} και {mode_2} είναι ενεργές}=3{Οι λειτουργίες {mode_1}, {mode_2} και {mode_3} είναι ενεργές}other{Οι λειτουργίες {mode_1}, {mode_2} και # ακόμη είναι ενεργές}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 λειτουργία μπορεί να ενεργοποιηθεί αυτόματα}other{# λειτουργίες μπορούν να ενεργοποιηθούν αυτόματα}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ΕΝΕΡΓΗ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Δεν έχει οριστεί"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Απενεργοποιημένη"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Δημιουργία λειτουργίας"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Προσαρμοσμένο"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Ενεργοποίηση τώρα"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Απενεργοποίηση"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Η λειτουργία δεν βρέθηκε"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Περιορισμός διακοπών"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Αποκλείστε διακοπές και περισπασμούς"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Ρύθμιση <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ενεργοποίηση λειτουργίας \"Μην ενοχλείτε\""</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Οι συναγερμοί και οι ήχοι των μέσων μπορούν να διακόπτουν."</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Προγράμματα"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Διαγραφή προγραμμάτων"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Διαγραφή"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Μετονομασία"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Διαγραφή"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Διαγραφή λειτουργίας <xliff:g id="MODE">%1$s</xliff:g>;"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Επεξεργασία"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Προγράμματα"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Πρόγραμμα"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Αυτόματη ενεργοποίηση"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Προσθήκη ημερολογίου"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Χρήση του ημερολογίου σας"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Πρόγραμμα"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ορίστε ένα πρόγραμμα"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Πότε ενεργοποιείται αυτόματα"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Χρονοδιάγραμμα συμβάντος"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Ενεργοποίηση σε συμβάντα για"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"\'Οπου η απάντ. πρόσκλ. είναι"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Χρονοδιάγραμμα"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Πρόγραμμα"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ώ. <xliff:g id="MINUTES">%2$d</xliff:g> λ."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Πρόγραμμα"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Να επιτρέπονται οι διακοπές που συνοδεύονται από ήχο"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Αποκλ. οπτικών αντιπ/σμών"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Να επιτρέπονται οπτικά σήματα"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Ειδοποιήσεις που μπορούν να προβληθούν"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Επιπλέον ενέργειες"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Φίλτρα ειδοποιήσεων"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Περισσότερες ρυθμίσεις"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Ανενεργή}=1{Ανενεργή / 1 λειτουργία μπορεί να ενεργοποιηθεί αυτόματα}other{Ανενεργή / # λειτουργίες μπορούν να ενεργοποιηθούν αυτόματα}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Ρυθμίσεις προβολής"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Επιλογές προβολής"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Κλίμακα του γκρι"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ενεργοποίηση σκούρου θέματος"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Κάντε εναλλαγή του λειτουργικού συστήματος και των εφαρμογών για να προτιμάται φωτεινό κείμενο σε σκοτεινό φόντο, κάτι που μπορεί να είναι πιο ξεκούραστο για τα μάτια και να αποφέρει σημαντική εξοικονόμηση μπαταρίας σε ορισμένες συσκευές"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Καμία αλλαγή στην προβολή}=1{{effect_1}}=2{{effect_1} και {effect_2}}=3{{effect_1}, {effect_2} και {effect_3}}other{{effect_1}, {effect_2} και # ακόμη}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Περιορίστε τι μπορεί να σας ειδοποιήσει"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Δεν φιλτράρονται διακοπές"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Επιλογές προβολής για φιλτραρισμένες ειδοποιήσεις"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Όταν είναι ενεργή η λειτουργία Μην ενοχλείτε"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Ειδοποιήσεις χωρίς ήχο"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"άνοιγμα ειδοποίησης"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Να επιτρέπεται η αναβολή των ειδοποιήσεων"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Κουκκίδα ειδοποίησης στο εικονίδιο εφαρμογής"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Πακέτα ειδοποιήσεων"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Συννεφάκια"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Συννεφάκια"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Εμφάνιση αυτής της συνομιλίας σε συννεφάκι"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Προσαρμοστικές ειδοποιήσεις"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Χρήση προσαρμοστικών ειδοποιήσεων"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Όταν λαμβάνετε πολλές ειδοποιήσεις μέσα σε σύντομο χρονικό διάστημα, το τηλέφωνό σας θα μειώσει την ένταση του ήχου και θα ελαχιστοποιήσει τα αναδυόμενα παράθυρα στην οθόνη σας για έως και δύο λεπτά. Οι κλήσεις, τα ξυπνητήρια και οι συζητήσεις προτεραιότητας θα εξακολουθούν να προκαλούν δόνηση, να παράγουν ήχο ή να εμφανίζονται στην οθόνη και θα μπορείτε να βρείτε όλες τις ειδοποιήσεις με ευκολία εάν σύρετε προς τα κάτω από το επάνω μέρος της οθόνης."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Περίοδος cooldown ειδοποιήσεων"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Χρήση περιόδου cooldown ειδοποιήσεων"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Όταν λαμβάνετε πολλές ειδοποιήσεις μέσα σε σύντομο χρονικό διάστημα, η συσκευή σας μειώνει την ένταση του ήχου και ελαχιστοποιεί τις ειδοποιήσεις για έως και 2 λεπτά. Οι κλήσεις, τα ξυπνητήρια και οι συζητήσεις προτεραιότητας δεν επηρεάζονται. \n\nΓια να βρείτε τις ειδοποιήσεις που λαμβάνετε κατά τη διάρκεια της περιόδου cooldown, σύρετε προς τα κάτω από το πάνω μέρος της οθόνης."</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">"Βοηθητικές υπηρεσίες Εικονικής Πραγματικότητας"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Κατηγορίες"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Άλλα"</string>
     <string name="no_channels" msgid="4716199078612071915">"Αυτή η εφαρμογή δεν έχει δημοσιεύσει ειδοποιήσεις"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Εμφάνιση κατηγοριών που δεν χρησιμοποιούνται"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Επιπλέον ρυθμίσεις στην εφαρμογή"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Εμφάνιση μη χρησιμοπ. κατηγοριών"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Απόκρυψη μη χρησιμοπ. κατηγοριών"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Συζητήσεις"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Όλες οι συζητήσεις"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"όλες οι συζητήσεις"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Συζητήσεις προτεραιότητας"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"συζητήσεις προτεραιότητας"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Καμία"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Εφαρμογές που μπορούν να διακόπτουν"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Επιλεγμένες εφαρμογές"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Καμία"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Όλες"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Καμία εφαρμογή δεν μπορεί να διακόπτει}=1{Η εφαρμογη {app_1} μπορεί να διακόπτει}=2{Οι εφαρμογές {app_1} και {app_2} μπορούν να διακόπτουν}=3{Οι εφαρμογές {app_1}, {app_2} και {app_3} μπορούν να διακόπτουν}other{Οι εφαρμογές {app_1}, {app_2} και # ακόμα εφαρμογή μπορούν να διακόπτουν}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Εργασία)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Υπολογισμός…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Να επιτρέπεται στις εφαρμογές η παράκαμψη"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Εφαρμογές που μπορούν να διακόπτουν"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Επιλέξτε περισσότερες εφαρμογές"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Οι καλούντες κατ\' επανάληψη μπορούν να διακόψουν"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Όλα τα άτομα μπορούν να διακόπτουν."</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Καλούντες κατ\' επανάληψη"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Να επιτρέπονται οι καλούντες κατ\' επανάληψη"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Αλλαγή σε λειτουργία Μόνο ξυπνητήρια για μία ώρα, έως {time}}other{Αλλαγή σε λειτουργία Μόνο ξυπνητήρια για # ώρες, έως {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Αλλαγή σε ξυπνητήρια μόνο έως τις <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Αλλαγή σε διακοπές πάντα"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Μετονομασία"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Αλλαγή εικονιδίου"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Αλλαγή εικονιδίου"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Λειτουργία επεξεργασίας"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Δημιουρ. λειτουργίας"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Προσαρμοσμένη λειτουργία"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Όνομα λειτουργίας"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Συμβάντα ημερολογίου"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Ρουτίνα ωρών ύπνου"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Κατά την οδήγηση"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Ρυθμίσεις εφαρμογής"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Πληροφορίες και ρυθμίσεις στην εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Διαχείριση από <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Απενεργοποίηση <xliff:g id="MODE_NAME">%1$s</xliff:g>;"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Αυτή η λειτουργία δεν θα ενεργοποιείται ποτέ, όταν είναι απενεργοποιημένη"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Απενεργοποίηση"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Ενεργοποίηση <xliff:g id="MODE_NAME">%1$s</xliff:g>;"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Αυτή η λειτουργία μπορεί να ενεργοποιηθεί αυτόματα με βάση τις ρυθμίσεις της"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ενεργοποίηση"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Ορίστε μια λειτουργία που ακολουθεί ένα τυπικό χρονοδιάγραμμα"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Ορίστε μια λειτουργία για συγχρονισμό με συμβάντα ημερολογίου και απαντήσεις σε προσκλήσεις"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Σχεδιάστε μια χαλαρωτική ρουτίνα ύπνου. Ορίστε ξυπνητήρια, χαμηλώστε τη φωτεινότητα της οθόνης και αποκλείστε τις ειδοποιήσεις."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Δώστε προτεραιότητα στην ασφάλεια στον δρόμο για να οδηγείτε με συγκέντρωση και χωρίς περισπασμούς"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Ειδοποίηση"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Κλείσιμο"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Αποστολή σχολίων για τη συσκευή"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Θήκη"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Μπαταρία"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Πλαίσιο ρυθμίσεων"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Αναγκαστική λειτουργία επιτραπέζιου υπολογιστή"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Αναγκαστική πειραματική λειτουργία επιτραπέζιου υπολογιστή σε δευτερεύουσες οθόνες"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Ενεργοποίηση παραθύρων ελεύθερης μορφής"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Ενεργοπ. παραθ. ελεύθερης μορφής στη δευτερ. οθόνη"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ενεργ. εφαρμ. χωρίς δυνατ. αλλαγής μεγέθ. σε πολλαπλά παραθ."</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Επιτρέπει εφαρμογές χωρίς δυνατότητα αλλαγής μεγέθους σε λειτουργία πολλαπλών παραθύρων"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Παράκαμψη αναγκ. χρήσης σκούρου θέματος"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"δεδομένα κινητής τηλεφωνίας"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Για βελτίωση της εμπειρίας στη συσκευή, οι εφαρμογές και οι υπηρεσίες μπορούν ακόμα να εκτελούν σάρωση για δίκτυα Wi‑Fi ανά πάσα στιγμή, ακόμα και όταν το Wi‑Fi είναι απενεργοποιημένο. Η σάρωση μπορεί να χρησιμοποιηθεί, για παράδειγμα, για τη βελτίωση λειτουργιών και υπηρεσιών που εκτελούνται βάσει τοποθεσίας. Μπορείτε να αλλάξετε αυτή τη ρύθμιση στις ρυθμίσεις της Σάρωσης Wi‑Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Αλλαγή"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Συνδέθηκε"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Προσωρινή σύνδεση"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Προσωρινή χρήση <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Χρήση καρφιτσώματος εφαρμογής"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Χρήση επιλογών για προγραμματιστές"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Χρήση υπηρεσίας εκτύπωσης"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Να επιτρέπονται πολλαπλοί χρήστες"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Να επιτρέπεται η εναλλαγή χρήστη"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"επιτρέπεται, πολλαπλοί, χρήστες, άδεια, πολλοί"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"πολλά, χρήστες, προφίλ, άτομα, λογαριασμοί, αλλαγή, πολλοί"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Χρήση ασύρματου εντοπισμού σφαλμάτων"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Επιλέξτε τι θα εμφανίζεται στην οθόνη σας όταν το tablet είναι στη βάση σύνδεσης. Η συσκευή σας μπορεί να καταναλώνει περισσότερη ενέργεια όταν χρησιμοποιείται μια προφύλαξη οθόνης."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Προσαρμογή"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Προσαρμογή <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Απαιτείται επανεκκίνηση για την ενεργοποίηση της υποστήριξης ελεύθερης μορφής."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Απαιτείται επανεκκίνηση για την επιβολή χρήσης της λειτουργίας υπολογιστή σε δευτερεύουσες οθόνες."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Απαιτείται επανεκκίνηση για την ενεργοποίηση της υποστήριξης παραθύρων ελεύθερης μορφής."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Απαιτείται επανεκκίνηση για την ενημέρωση της διαθεσιμότητας των παραθύρων ελεύθερης μορφής."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Απαιτείται επανεκκίνηση για την ενεργοποίηση των παραθύρων ελεύθερης μορφής στη δευτερεύουσα οθόνη."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Επανεκκίνηση τώρα"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Επανεκκίνηση αργότερα"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Χωρικός ήχος"</string>
@@ -5137,7 +5208,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Απενεργοπ. περιορισμών σε θυγατρικές διεργασίες"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Απενεργοποιήστε τους περιορισμούς στη χρήση πόρων συστήματος για τις θυγατρικές διεργασίες της εφαρμογής"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Επιβολή ενεργοποίησης ρόλου Σημειώσεις"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Ενεργοποιήστε τις ενσωματώσεις συστήματος για τη δημιουργία σημειώσεων μέσω του ρόλου Σημειώσεις. Εάν ο ρόλος Σημειώσεις είναι ήδη ενεργοποιημένος, δεν πραγματοποιείται καμία ενέργεια. Επαιτεί επανεκκίνηση."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Ενεργοποιήστε τις ενσωματώσεις συστήματος για τη δημιουργία σημειώσεων μέσω του ρόλου Σημειώσεις. Εάν ο ρόλος Σημειώσεις είναι ήδη ενεργοποιημένος, δεν πραγματοποιείται καμία ενέργεια. Απαιτεί επανεκκίνηση."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Μετάδοση"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Μετάδοση με την εφαρμογή <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Ακούστε μεταδόσεις που πραγματοποιούνται κοντά σας"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Μπεζ ροζ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Ματζέντα"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Βιολετί"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Τέλος"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Αποθήκευση"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Ακύρωση"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Προεπιλογή"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Μέτρια"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Ενεργή"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Ανενεργή"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Ενεργή"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Ήχος %1$d%% αριστερά, %2$d%% δεξιά"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Ήχος %1$d%% δεξιά, %2$d%% αριστερά"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Το όνομα της συσκευής σας είναι ορατό στις εφαρμογές που εγκαθιστάτε. Ενδέχεται επίσης να είναι ορατό και σε άλλα άτομα, όταν συνδέεστε σε συσκευές Bluetooth, συνδέεστε σε ένα δίκτυο Wi-Fi ή ρυθμίζετε ένα σημείο πρόσβασης Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Γραμματικό γένος"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Επιλογή γραμματικού γένους"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ακρόαση ροής"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Σαρώστε τον κωδικό QR μιας ροής ήχου για να ακούσετε με τη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Δεν είναι δυνατή η επεξεργασία του κωδικού πρόσβασης κατά την κοινή χρήση. Για να αλλάξετε τον κωδικό πρόσβασης, αρχικά, απενεργοποιήστε την κοινή χρήση ήχου."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Σάρωση κωδικών QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Ρυθμίσεις αναζήτησης"</string>
 </resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index b8b0672..3eac354 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Bedtime"</item>
-    <item msgid="4152450357280759894">"Driving"</item>
-    <item msgid="7096549258219399423">"Immersive"</item>
-    <item msgid="2760716776980432977">"Managed"</item>
-    <item msgid="601734478369121764">"Star"</item>
-    <item msgid="6243809315432780521">"Calendar"</item>
-    <item msgid="4913577903148415331">"Time"</item>
-    <item msgid="3653377604690057780">"Theatre"</item>
-    <item msgid="3843711267408385410">"Flower"</item>
+    <item msgid="2750940760340557109">"Half-moon"</item>
+    <item msgid="8513969636586738035">"Car"</item>
+    <item msgid="957392343846370509">"Person\'s mind"</item>
+    <item msgid="6734164279667121348">"Calendar"</item>
+    <item msgid="4139559120353528558">"Clock"</item>
+    <item msgid="5157711296814769020">"Beach umbrella"</item>
+    <item msgid="6635328761318954115">"Tent"</item>
+    <item msgid="1711994778883392255">"Film reel"</item>
+    <item msgid="9097658401859604879">"Game controller"</item>
+    <item msgid="755931364157422565">"Gym dumbbell"</item>
+    <item msgid="8894207806795738429">"Person throwing ball"</item>
+    <item msgid="2274801572149555103">"Person kicking"</item>
+    <item msgid="8795037201506843325">"Swimming"</item>
+    <item msgid="3558421426169430451">"Person hiking"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Workshop tools"</item>
+    <item msgid="4595330511709890409">"Briefcase"</item>
+    <item msgid="8352738347856724389">"Star"</item>
+    <item msgid="7082783098151998721">"Lotus flower"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index ccd8d8a..973296b 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"unknown"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Hearing device settings"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Shortcut, hearing aid compatibility"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preset"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"There are no presets programmed by your audiologist"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Couldn\'t update preset"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio output"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"About audio output"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Language selection for this app isn’t available from Settings."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Language may differ from languages available in the app. Some apps may not support this setting."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Set the language for each app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Your system, apps and websites use the first supported language from your preferred languages."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Your device, apps and websites use the first supported language from your preferred language list.\n\nMany apps will also use the region from your preferred language to format dates, numbers and units. To change your region, add a language, then choose your preferred region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
@@ -280,9 +282,9 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Location"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Use location"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On/# app has access to location}other{On/# apps have access to location}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change, go to ChromeOS Settings &gt; Privacy and security &gt; Privacy controls &gt; Location access"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Face and Fingerprint Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Face and fingerprints added"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Couldn\'t set up a private space"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try again"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Exit"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Private space isn\'t available.\nView possible causes"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"View possible causes"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Choose a new lock for private space?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"You can set a new lock just for private space or use the same lock that you use to unlock your device"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart device?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detailed NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"On"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Off"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"External display"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Use external display"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Display resolution"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"External display is disconnected"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Changing rotation or resolution may stop any apps that are currently running"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Your device must be connected to an external display to mirror your screen"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"More options"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"mirror"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Enable wireless display"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptive"</string>
     <string name="brightness" msgid="6216871641021779698">"Brightness level"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptive brightness"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"About adaptive brightness"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Your screen brightness will automatically adjust to your environment and activities. You can move the slider manually to help adaptive brightness learn your preferences."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"On"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Off"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time that it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Use the physical keyboard to control the mouse."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Change pointer fill style to yellow"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Change pointer fill style to pink"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Change pointer fill style to blue"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Pointer stroke style"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"White"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Black"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"None"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Learn touchpad gestures"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right-click, click, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"User selected: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Speech"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Pointer speed"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Pointer scale"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Decrease pointer scale"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Increase pointer scale"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Game Controller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirect vibration"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Send vibration to game controller when connected"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"One-finger panning"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Move magnifier with 1 finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Drag 1 finger to move around the screen"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Move the magnification area by dragging one finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Move the magnification area by dragging two fingers."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Unavailable while only magnifying part of the screen"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tap a button to zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Quickly zoom in on the screen to make content larger"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag two fingers to move around screen&lt;br/&gt; {3,number,integer}. Pinch with two fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; &lt;b&gt;To zoom in temporarily:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Make sure that your magnification type is set to full screen&lt;br/&gt; {1,number,integer}. Use shortcut to start magnification&lt;br/&gt; {2,number,integer}. Touch and hold anywhere on the screen&lt;br/&gt; {3,number,integer}. Drag finger to move around screen&lt;br/&gt; {4,number,integer}. Lift finger to stop magnification"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 1 or 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"To zoom"</b>", start magnification, then tap anywhere on the screen.\n"<ul><li>"Drag 2 or more fingers to scroll"</li>\n<li>"Pinch 2 or more fingers to adjust zoom"</li></ul>\n\n<b>"To zoom temporarily"</b>", start magnification, then touch and hold anywhere on the screen.\n"<ul><li>"Drag to move around the screen"</li>\n<li>"Lift finger to zoom out"</li></ul>\n\n"You can’t zoom in on the keyboard or navigation bar."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> of <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Accessibility button shortcut"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the Accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch and hold the Accessibility button."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with three fingers.\n\nTo switch between features, swipe up with three fingers and hold."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{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>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double-tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple-tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double-tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple-tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch &amp; hold the accessibility button, then select magnification."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"This service is malfunctioning."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Accessibility shortcuts"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Show in Quick Settings"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Red-green"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Red-green"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Red-green, green weak"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Red-green, red weak"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Greyscale"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for Greyscale mode or when colour correction is disabled"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomaly"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaly"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extra dim"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Make screen extra dim"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{None}=1{1 schedule set}other{# schedules set}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Do Not Disturb"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Priority modes"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Add a mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimise distractions and take control of your attention with modes for sleep, work, driving and everything in between."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Create your own mode"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Only get notified by important people and apps"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Set a schedule"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Schedule based on"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Day and time"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\'9.00 a.m. – 5.00 p.m. weekdays\'"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Calendar events"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{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}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode can turn on automatically}other{# modes can turn on automatically}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Not set"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Disabled"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Turn on now"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Turn off"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mode not found"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Block interruptions and distractions"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Set up <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schedules"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Delete schedules"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Delete"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rename"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Delete"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Delete \'<xliff:g id="MODE">%1$s</xliff:g>\' mode?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schedules"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Schedule"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Turn on automatically"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Add a calendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Use your calendar"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Schedule"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"When to turn on automatically"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Event schedule"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Turn on during events for"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Where invite reply is"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Time schedule"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>hr, <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Allow interruptions that make sound"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Block visual disturbances"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Allow visual signals"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifications that can reach you"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Additional actions"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Notification filters"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"More settings"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/1 mode can turn on automatically}other{Off/# modes can turn on automatically}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Display settings"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Display options"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Greyscale"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"Enable Dark theme"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Switch the OS and apps to prefer light text on a dark background, which may be easier on the eyes and confers significant battery savings on some devices"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{No display changes}=1{{effect_1}}=2{{effect_1} and {effect_2}}=3{{effect_1}, {effect_2} and {effect_3}}other{{effect_1}, {effect_2} and # more}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limit what can notify you"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"No interruptions are filtered"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Display options for filtered notifications"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"When Do Not Disturb is on"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"No sound from notifications"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive notifications"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimise pop-ups on screen for up to two minutes. Calls, alarms and priority conversations still vibrate, make a sound or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimise alerts for up to 2 minutes. Calls, alarms and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categories"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Other"</string>
     <string name="no_channels" msgid="4716199078612071915">"This app has not posted any notifications"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Show unused categories"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Additional settings in the app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Show unused categories"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Hide unused categories"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversations"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"All conversations"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"all conversations"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Priority conversations"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"priority conversations"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"None"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps that can interrupt"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{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}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (work)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Change to alarms only for one hour until {time}}other{Change to alarms only for # hours until {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Change to alarms only until <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Change to always interrupt"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Rename"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Change icon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Change icon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Create a mode"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Bedtime routine"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"App settings"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Disable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"This mode will never turn on when disabled"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Enable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"This mode may turn on automatically based on its settings"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Set a mode that follows a regular schedule"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Set a mode to sync with calendar events and invite responses"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Design a calming sleep routine. Set alarms, dim the screen and block notifications."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritise safety on the road for a focused and distraction-free drive"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Block distractions or interruptions from your device to gain focus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminate all distractions for a quiet environment"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalise device experiences and settings for different users"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimise interruptions by only allowing important people and apps to reach you"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Send feedback about this device"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Enable freeform windows on secondary display"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in Multi-window"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in Multi-window"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4997,9 +5067,9 @@
     <string name="prevent_ringing_main_switch_title" msgid="4726252811262086643">"Use prevent ringing"</string>
     <string name="use_wifi_hotsopt_main_switch_title" msgid="3909731167290690539">"Use Wi‑Fi hotspot"</string>
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Use app pinning"</string>
-    <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Use Developer options"</string>
+    <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Use developer options"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Use print service"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Allow multiple users"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Allow user switch"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"allow, multiple, user, permit, many"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"multiple, users, profiles, people, accounts, switch, many"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Use wireless debugging"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Customise"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Customise <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"A reboot is required to update availability of freeform windows."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"A reboot is required to enable freeform windows on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial audio"</string>
@@ -5137,7 +5208,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Disable child process restrictions"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Disable restrictions on the system resource usage of the app child processes"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Force enable Notes role"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Enable note-taking system integrations via the notes role. If the notes role is already enabled, does nothing. Requires reboot."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Enable note-taking system integrations via the Notes role. If the Notes role is already enabled, does nothing. Requires reboot."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Broadcast"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Broadcast <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Listen to broadcasts that are playing near you"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Done"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Save"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancel"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Default"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% left, %2$d%% right"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% right, %2$d%% left"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatical gender"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Select grammatical gender"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
 </resources>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index c6a61b4..50cc1a1 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Bedtime"</item>
-    <item msgid="4152450357280759894">"Driving"</item>
-    <item msgid="7096549258219399423">"Immersive"</item>
-    <item msgid="2760716776980432977">"Managed"</item>
-    <item msgid="601734478369121764">"Star"</item>
-    <item msgid="6243809315432780521">"Calendar"</item>
-    <item msgid="4913577903148415331">"Time"</item>
-    <item msgid="3653377604690057780">"Theater"</item>
-    <item msgid="3843711267408385410">"Flower"</item>
+    <item msgid="2750940760340557109">"Half-moon"</item>
+    <item msgid="8513969636586738035">"Car"</item>
+    <item msgid="957392343846370509">"Person\'s mind"</item>
+    <item msgid="6734164279667121348">"Calendar"</item>
+    <item msgid="4139559120353528558">"Clock"</item>
+    <item msgid="5157711296814769020">"Beach umbrella"</item>
+    <item msgid="6635328761318954115">"Tent"</item>
+    <item msgid="1711994778883392255">"Film reel"</item>
+    <item msgid="9097658401859604879">"Game controller"</item>
+    <item msgid="755931364157422565">"Gym dumbbell"</item>
+    <item msgid="8894207806795738429">"Person throwing ball"</item>
+    <item msgid="2274801572149555103">"Person kicking"</item>
+    <item msgid="8795037201506843325">"Swimming"</item>
+    <item msgid="3558421426169430451">"Person hiking"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Workshop tools"</item>
+    <item msgid="4595330511709890409">"Briefcase"</item>
+    <item msgid="8352738347856724389">"Star"</item>
+    <item msgid="7082783098151998721">"Lotus flower"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index be55aac..cead356 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Unknown"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Hearing device settings"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Shortcut, hearing aid compatibility"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preset"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"There are no presets programmed by your audiologist"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Couldn’t update preset"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio output"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"About audio output"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Language selection for this app isn’t available from Settings."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Language may differ from languages available in the app. Some apps may not support this setting."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Set the language for each app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Your system, apps, and websites use the first supported language from your preferred languages."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Your device, apps, and websites use the first supported language from your preferred language list.\n\nMany apps will also use the region from your preferred language to format dates, numbers, and units. To change your region, add a language, then choose your preferred region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about Location settings"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change go to ChromeOS Settings &gt; Privacy and security &gt; Privacy controls &gt; Location access"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Identity Check is on"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint &amp; Face Unlock"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Face and Fingerprint Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Face and fingerprints added"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Couldn’t set up a private space"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try Again"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Exit"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Private space isn’t available.\nView possible causes"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"View possible causes"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Choose a new lock for private space?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"You can set a new lock just for private space, or use the same lock you use to unlock your device"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart Device?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detail NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"On"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Off"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"External Display"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Use external display"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Display resolution"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"External display is disconnected"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Changing rotation or resolution may stop any apps that are currently running"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Your device must be connected to an external display to mirror your screen"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"More options"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"mirror"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Enable wireless display"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptive"</string>
     <string name="brightness" msgid="6216871641021779698">"Brightness level"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptive brightness"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"About adaptive brightness"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Your screen brightness will automatically adjust to your environment and activities. You can move the slider manually to help adaptive brightness learn your preferences."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"On"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Off"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Use the physical keyboard to control the mouse."</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Change pointer fill style to yellow"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Change pointer fill style to pink"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Change pointer fill style to blue"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Pointer stroke style"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"White"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Black"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"None"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Learn touchpad gestures"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right click, click, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"User selected: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Speech"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Pointer speed"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Pointer scale"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Decrease pointer scale"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Increase pointer scale"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Game Controller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirect vibration"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Send vibration to game controller when connected"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"One-finger panning"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Move magnifier with 1 finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Drag 1 finger to move around the screen"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Move the magnification area by dragging one finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Move the magnification area by dragging two fingers."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Unavailable while only magnifying part of the screen"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tap a button to zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Quickly zoom in on the screen to make content larger"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag two fingers to move around screen&lt;br/&gt; {3,number,integer}. Pinch with two fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; &lt;b&gt;To zoom in temporarily:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Make sure your magnification type is set to full screen&lt;br/&gt; {1,number,integer}. Use shortcut to start magnification&lt;br/&gt; {2,number,integer}. Touch and hold anywhere on the screen&lt;br/&gt; {3,number,integer}. Drag finger to move around screen&lt;br/&gt; {4,number,integer}. Lift finger to stop magnification"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 1 or 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"To zoom"</b>", start magnification, then tap the screen anywhere.\n"<ul><li>"Drag two or more fingers to scroll"</li>\n<li>"Pinch two or more fingers to adjust the zoom"</li></ul>\n\n<b>"To zoom temporarily"</b>", start magnification, then touch and hold the screen anywhere.\n"<ul><li>"Drag to move around the screen"</li>\n<li>"Lift finger to zoom out"</li></ul>\n\n"You can\'t zoom in on the keyboard or navigation bar."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> of <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Accessibility button shortcut"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch &amp; hold the accessibility button."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{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>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch and hold the accessibility button, then select magnification."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"This service is malfunctioning."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Accessibility shortcuts"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Show in Quick Settings"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Red-green"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Red-green"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Red-green, green weak"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Red-green, red weak"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grayscale"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for grayscale mode or when color correction is disabled"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomaly"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaly"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extra dim"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Make screen extra dim"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{None}=1{1 schedule set}other{# schedules set}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Do Not Disturb"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Priority Modes"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Add a mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimize distractions and take control of your attention with modes for sleep, work, driving, and everything in between."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Create your own mode"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Only get notified by important people and apps"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Set a schedule"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Schedule based on"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Day and time"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 AM - 5 PM weekdays\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Calendar events"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{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}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode can turn on automatically}other{# modes can turn on automatically}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Not set"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Disabled"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Turn on now"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Turn off"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mode not found"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Block interruptions and distractions"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Set up <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schedules"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Delete schedules"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Delete"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rename"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Delete"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Delete \"<xliff:g id="MODE">%1$s</xliff:g>\" mode?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schedules"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Schedule"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Turn on automatically"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Add a calendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Use your calendar"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Schedule"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"When to turn on automatically"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Event schedule"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Turn on during events for"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Where invite reply is"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Time schedule"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> hr, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Allow interruptions that make sound"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Block visual disturbances"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Allow visual signals"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifications that can reach you"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Additional actions"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Notification filters"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"More settings"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off / 1 mode can turn on automatically}other{Off / # modes can turn on automatically}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Display settings"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Display options"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Grayscale"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"enable dark theme"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Switch the OS and apps to prefer light text on a dark background, which may be easier on the eyes and confers significant battery savings on some devices"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{No display changes}=1{{effect_1}}=2{{effect_1} and {effect_2}}=3{{effect_1}, {effect_2}, and {effect_3}}other{{effect_1}, {effect_2}, and # more}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limit what can notify you"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"No interruptions are filtered"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Display options for filtered notifications"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"When Do Not Disturb is on"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"No sound from notifications"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive Notifications"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimize pop-ups on screen for up to two minutes. Calls, alarms, and priority conversations still vibrate, make a sound, or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimize alerts for up to 2 minutes. Calls, alarms, and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categories"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Other"</string>
     <string name="no_channels" msgid="4716199078612071915">"This app has not posted any notifications"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Show unused categories"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Additional settings in the app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Show unused categories"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Hide unused categories"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversations"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"All conversations"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"all conversations"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Priority conversations"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"priority conversations"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"None"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps that can interrupt"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{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}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Work)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Change to alarms only for one hour until {time}}other{Change to alarms only for # hours until {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Change to alarms only until <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Change to always interrupt"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Rename"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Change icon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Change icon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Create a mode"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Bedtime routine"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"App settings"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Disable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"This mode will never turn on when disabled"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Enable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"This mode may turn on automatically based on its settings"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Set a mode that follows a regular schedule"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Set a mode to sync with calendar events and invite responses"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Design a calming sleep routine. Set alarms, dim the screen, and block notifications."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritize safety on the road for a focused and distraction-free drive"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Block distractions or interruptions from your device to gain focus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminate all distractions for a quiet environment"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalize device experiences and settings for different users"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimize interruptions by only allowing important people and apps to reach you"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Send feedback about this device"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Enable freeform windows on secondary display"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in multi window"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in multi window"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Use app pinning"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Use developer options"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Use print service"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Allow multiple users"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Allow user switch"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"allow, multiple, user, permit, many"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"multiple, users, profiles, people, accounts, switch, many"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Use wireless debugging"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Customize"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Customize <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"A reboot is required to update availability of freeform windows."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"A reboot is required to enable freeform windows on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial Audio"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Done"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Save"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancel"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Default"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% left, %2$d%% right"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% right, %2$d%% left"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatical gender"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Select Grammatical gender"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Search Settings"</string>
 </resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index b8b0672..3eac354 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Bedtime"</item>
-    <item msgid="4152450357280759894">"Driving"</item>
-    <item msgid="7096549258219399423">"Immersive"</item>
-    <item msgid="2760716776980432977">"Managed"</item>
-    <item msgid="601734478369121764">"Star"</item>
-    <item msgid="6243809315432780521">"Calendar"</item>
-    <item msgid="4913577903148415331">"Time"</item>
-    <item msgid="3653377604690057780">"Theatre"</item>
-    <item msgid="3843711267408385410">"Flower"</item>
+    <item msgid="2750940760340557109">"Half-moon"</item>
+    <item msgid="8513969636586738035">"Car"</item>
+    <item msgid="957392343846370509">"Person\'s mind"</item>
+    <item msgid="6734164279667121348">"Calendar"</item>
+    <item msgid="4139559120353528558">"Clock"</item>
+    <item msgid="5157711296814769020">"Beach umbrella"</item>
+    <item msgid="6635328761318954115">"Tent"</item>
+    <item msgid="1711994778883392255">"Film reel"</item>
+    <item msgid="9097658401859604879">"Game controller"</item>
+    <item msgid="755931364157422565">"Gym dumbbell"</item>
+    <item msgid="8894207806795738429">"Person throwing ball"</item>
+    <item msgid="2274801572149555103">"Person kicking"</item>
+    <item msgid="8795037201506843325">"Swimming"</item>
+    <item msgid="3558421426169430451">"Person hiking"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Workshop tools"</item>
+    <item msgid="4595330511709890409">"Briefcase"</item>
+    <item msgid="8352738347856724389">"Star"</item>
+    <item msgid="7082783098151998721">"Lotus flower"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 57307f3..5b9a8d7 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"unknown"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Hearing device settings"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Shortcut, hearing aid compatibility"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preset"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"There are no presets programmed by your audiologist"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Couldn\'t update preset"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio output"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"About audio output"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Language selection for this app isn’t available from Settings."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Language may differ from languages available in the app. Some apps may not support this setting."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Set the language for each app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Your system, apps and websites use the first supported language from your preferred languages."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Your device, apps and websites use the first supported language from your preferred language list.\n\nMany apps will also use the region from your preferred language to format dates, numbers and units. To change your region, add a language, then choose your preferred region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
@@ -280,9 +282,9 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Location"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Use location"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On/# app has access to location}other{On/# apps have access to location}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change, go to ChromeOS Settings &gt; Privacy and security &gt; Privacy controls &gt; Location access"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Face and Fingerprint Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Face and fingerprints added"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Couldn\'t set up a private space"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try again"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Exit"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Private space isn\'t available.\nView possible causes"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"View possible causes"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Choose a new lock for private space?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"You can set a new lock just for private space or use the same lock that you use to unlock your device"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart device?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detailed NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"On"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Off"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"External display"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Use external display"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Display resolution"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"External display is disconnected"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Changing rotation or resolution may stop any apps that are currently running"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Your device must be connected to an external display to mirror your screen"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"More options"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"mirror"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Enable wireless display"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptive"</string>
     <string name="brightness" msgid="6216871641021779698">"Brightness level"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptive brightness"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"About adaptive brightness"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Your screen brightness will automatically adjust to your environment and activities. You can move the slider manually to help adaptive brightness learn your preferences."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"On"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Off"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time that it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Use the physical keyboard to control the mouse."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Change pointer fill style to yellow"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Change pointer fill style to pink"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Change pointer fill style to blue"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Pointer stroke style"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"White"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Black"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"None"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Learn touchpad gestures"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right-click, click, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"User selected: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Speech"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Pointer speed"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Pointer scale"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Decrease pointer scale"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Increase pointer scale"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Game Controller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirect vibration"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Send vibration to game controller when connected"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"One-finger panning"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Move magnifier with 1 finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Drag 1 finger to move around the screen"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Move the magnification area by dragging one finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Move the magnification area by dragging two fingers."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Unavailable while only magnifying part of the screen"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tap a button to zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Quickly zoom in on the screen to make content larger"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag two fingers to move around screen&lt;br/&gt; {3,number,integer}. Pinch with two fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; &lt;b&gt;To zoom in temporarily:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Make sure that your magnification type is set to full screen&lt;br/&gt; {1,number,integer}. Use shortcut to start magnification&lt;br/&gt; {2,number,integer}. Touch and hold anywhere on the screen&lt;br/&gt; {3,number,integer}. Drag finger to move around screen&lt;br/&gt; {4,number,integer}. Lift finger to stop magnification"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 1 or 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"To zoom"</b>", start magnification, then tap anywhere on the screen.\n"<ul><li>"Drag 2 or more fingers to scroll"</li>\n<li>"Pinch 2 or more fingers to adjust zoom"</li></ul>\n\n<b>"To zoom temporarily"</b>", start magnification, then touch and hold anywhere on the screen.\n"<ul><li>"Drag to move around the screen"</li>\n<li>"Lift finger to zoom out"</li></ul>\n\n"You can’t zoom in on the keyboard or navigation bar."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> of <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Accessibility button shortcut"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the Accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch and hold the Accessibility button."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with three fingers.\n\nTo switch between features, swipe up with three fingers and hold."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{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>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double-tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple-tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double-tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple-tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch &amp; hold the accessibility button, then select magnification."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"This service is malfunctioning."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Accessibility shortcuts"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Show in Quick Settings"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Red-green"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Red-green"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Red-green, green weak"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Red-green, red weak"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Greyscale"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for Greyscale mode or when colour correction is disabled"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomaly"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaly"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extra dim"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Make screen extra dim"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{None}=1{1 schedule set}other{# schedules set}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Do Not Disturb"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Priority modes"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Add a mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimise distractions and take control of your attention with modes for sleep, work, driving and everything in between."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Create your own mode"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Only get notified by important people and apps"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Set a schedule"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Schedule based on"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Day and time"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\'9.00 a.m. – 5.00 p.m. weekdays\'"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Calendar events"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{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}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode can turn on automatically}other{# modes can turn on automatically}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Not set"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Disabled"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Turn on now"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Turn off"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mode not found"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Block interruptions and distractions"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Set up <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schedules"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Delete schedules"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Delete"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rename"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Delete"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Delete \'<xliff:g id="MODE">%1$s</xliff:g>\' mode?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schedules"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Schedule"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Turn on automatically"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Add a calendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Use your calendar"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Schedule"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"When to turn on automatically"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Event schedule"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Turn on during events for"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Where invite reply is"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Time schedule"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>hr, <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Allow interruptions that make sound"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Block visual disturbances"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Allow visual signals"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifications that can reach you"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Additional actions"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Notification filters"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"More settings"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/1 mode can turn on automatically}other{Off/# modes can turn on automatically}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Display settings"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Display options"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Greyscale"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"Enable Dark theme"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Switch the OS and apps to prefer light text on a dark background, which may be easier on the eyes and confers significant battery savings on some devices"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{No display changes}=1{{effect_1}}=2{{effect_1} and {effect_2}}=3{{effect_1}, {effect_2} and {effect_3}}other{{effect_1}, {effect_2} and # more}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limit what can notify you"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"No interruptions are filtered"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Display options for filtered notifications"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"When Do Not Disturb is on"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"No sound from notifications"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive notifications"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimise pop-ups on screen for up to two minutes. Calls, alarms and priority conversations still vibrate, make a sound or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimise alerts for up to 2 minutes. Calls, alarms and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categories"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Other"</string>
     <string name="no_channels" msgid="4716199078612071915">"This app has not posted any notifications"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Show unused categories"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Additional settings in the app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Show unused categories"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Hide unused categories"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversations"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"All conversations"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"all conversations"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Priority conversations"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"priority conversations"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"None"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps that can interrupt"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{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}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (work)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Change to alarms only for one hour until {time}}other{Change to alarms only for # hours until {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Change to alarms only until <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Change to always interrupt"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Rename"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Change icon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Change icon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Create a mode"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Bedtime routine"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"App settings"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Disable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"This mode will never turn on when disabled"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Enable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"This mode may turn on automatically based on its settings"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Set a mode that follows a regular schedule"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Set a mode to sync with calendar events and invite responses"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Design a calming sleep routine. Set alarms, dim the screen and block notifications."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritise safety on the road for a focused and distraction-free drive"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Block distractions or interruptions from your device to gain focus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminate all distractions for a quiet environment"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalise device experiences and settings for different users"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimise interruptions by only allowing important people and apps to reach you"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Send feedback about this device"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Enable freeform windows on secondary display"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in Multi-window"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in Multi-window"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4997,9 +5067,9 @@
     <string name="prevent_ringing_main_switch_title" msgid="4726252811262086643">"Use prevent ringing"</string>
     <string name="use_wifi_hotsopt_main_switch_title" msgid="3909731167290690539">"Use Wi‑Fi hotspot"</string>
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Use app pinning"</string>
-    <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Use Developer options"</string>
+    <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Use developer options"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Use print service"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Allow multiple users"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Allow user switch"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"allow, multiple, user, permit, many"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"multiple, users, profiles, people, accounts, switch, many"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Use wireless debugging"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Customise"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Customise <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"A reboot is required to update availability of freeform windows."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"A reboot is required to enable freeform windows on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial audio"</string>
@@ -5137,7 +5208,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Disable child process restrictions"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Disable restrictions on the system resource usage of the app child processes"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Force enable Notes role"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Enable note-taking system integrations via the notes role. If the notes role is already enabled, does nothing. Requires reboot."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Enable note-taking system integrations via the Notes role. If the Notes role is already enabled, does nothing. Requires reboot."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Broadcast"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Broadcast <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Listen to broadcasts that are playing near you"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Done"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Save"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancel"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Default"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% left, %2$d%% right"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% right, %2$d%% left"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatical gender"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Select grammatical gender"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
 </resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index b8b0672..3eac354 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Bedtime"</item>
-    <item msgid="4152450357280759894">"Driving"</item>
-    <item msgid="7096549258219399423">"Immersive"</item>
-    <item msgid="2760716776980432977">"Managed"</item>
-    <item msgid="601734478369121764">"Star"</item>
-    <item msgid="6243809315432780521">"Calendar"</item>
-    <item msgid="4913577903148415331">"Time"</item>
-    <item msgid="3653377604690057780">"Theatre"</item>
-    <item msgid="3843711267408385410">"Flower"</item>
+    <item msgid="2750940760340557109">"Half-moon"</item>
+    <item msgid="8513969636586738035">"Car"</item>
+    <item msgid="957392343846370509">"Person\'s mind"</item>
+    <item msgid="6734164279667121348">"Calendar"</item>
+    <item msgid="4139559120353528558">"Clock"</item>
+    <item msgid="5157711296814769020">"Beach umbrella"</item>
+    <item msgid="6635328761318954115">"Tent"</item>
+    <item msgid="1711994778883392255">"Film reel"</item>
+    <item msgid="9097658401859604879">"Game controller"</item>
+    <item msgid="755931364157422565">"Gym dumbbell"</item>
+    <item msgid="8894207806795738429">"Person throwing ball"</item>
+    <item msgid="2274801572149555103">"Person kicking"</item>
+    <item msgid="8795037201506843325">"Swimming"</item>
+    <item msgid="3558421426169430451">"Person hiking"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Workshop tools"</item>
+    <item msgid="4595330511709890409">"Briefcase"</item>
+    <item msgid="8352738347856724389">"Star"</item>
+    <item msgid="7082783098151998721">"Lotus flower"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 4a1ac6a..10326d5 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspended"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"unknown"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Make larger"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Always"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Hearing device settings"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Shortcut, hearing aid compatibility"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preset"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"There are no presets programmed by your audiologist"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Couldn\'t update preset"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio output"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"About audio output"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Language selection for this app isn’t available from Settings."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Language may differ from languages available in the app. Some apps may not support this setting."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Set the language for each app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Your system, apps and websites use the first supported language from your preferred languages."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Your device, apps and websites use the first supported language from your preferred language list.\n\nMany apps will also use the region from your preferred language to format dates, numbers and units. To change your region, add a language, then choose your preferred region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
@@ -280,9 +282,9 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Location"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Use location"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On/# app has access to location}other{On/# apps have access to location}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"To change, go to ChromeOS Settings &gt; Privacy and security &gt; Privacy controls &gt; Location access"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Face and Fingerprint Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Face and fingerprints added"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Couldn\'t set up a private space"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try again"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Exit"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Private space isn\'t available.\nView possible causes"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"View possible causes"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Choose a new lock for private space?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"You can set a new lock just for private space or use the same lock that you use to unlock your device"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Restart device?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detailed NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restart"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"On"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Off"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"External display"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Use external display"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Display resolution"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"External display is disconnected"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Changing rotation or resolution may stop any apps that are currently running"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Your device must be connected to an external display to mirror your screen"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"More options"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"mirror"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Enable wireless display"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptive"</string>
     <string name="brightness" msgid="6216871641021779698">"Brightness level"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptive brightness"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"About adaptive brightness"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Your screen brightness will automatically adjust to your environment and activities. You can move the slider manually to help adaptive brightness learn your preferences."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"On"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Off"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"The keyboard ignores quickly repeated presses of the same key within <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Adjusts the time that it takes for a key press to activate to <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Use the physical keyboard to control the mouse."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Change pointer fill style to yellow"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Change pointer fill style to pink"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Change pointer fill style to blue"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Pointer stroke style"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"White"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Black"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"None"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Learn touchpad gestures"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right-click, click, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"User selected: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Speech"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Pointer speed"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Pointer scale"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Decrease pointer scale"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Increase pointer scale"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Game Controller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirect vibration"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Send vibration to game controller when connected"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"One-finger panning"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Move magnifier with 1 finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Drag 1 finger to move around the screen"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Move the magnification area by dragging one finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Move the magnification area by dragging two fingers."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Unavailable while only magnifying part of the screen"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tap a button to zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Quickly zoom in on the screen to make content larger"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag two fingers to move around screen&lt;br/&gt; {3,number,integer}. Pinch with two fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; &lt;b&gt;To zoom in temporarily:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Make sure that your magnification type is set to full screen&lt;br/&gt; {1,number,integer}. Use shortcut to start magnification&lt;br/&gt; {2,number,integer}. Touch and hold anywhere on the screen&lt;br/&gt; {3,number,integer}. Drag finger to move around screen&lt;br/&gt; {4,number,integer}. Lift finger to stop magnification"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 1 or 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"To zoom"</b>", start magnification, then tap anywhere on the screen.\n"<ul><li>"Drag 2 or more fingers to scroll"</li>\n<li>"Pinch 2 or more fingers to adjust zoom"</li></ul>\n\n<b>"To zoom temporarily"</b>", start magnification, then touch and hold anywhere on the screen.\n"<ul><li>"Drag to move around the screen"</li>\n<li>"Lift finger to zoom out"</li></ul>\n\n"You can’t zoom in on the keyboard or navigation bar."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> of <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Accessibility button shortcut"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tap the floating button"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Accessibility gesture"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tap the Accessibility button <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> at the bottom of your screen. To switch between features, touch and hold the Accessibility button."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe up from the bottom of the screen with two fingers.\n\nTo switch between features, swipe up with two fingers and hold."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe up from the bottom of the screen with three fingers.\n\nTo switch between features, swipe up with three fingers and hold."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{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>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"More options"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Learn more about <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volume keys"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volume keys"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Press and hold both volume keys"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger double-tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Quickly tap the screen twice with %1$d fingers"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Triple-tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Quickly tap the screen %1$d times. This may slow down your device."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger double-tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"triple-tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Quickly tap screen {0,number,integer} times. This shortcut may slow down your device"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"The accessibility button is set to <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, touch &amp; hold the accessibility button, then select magnification."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"The accessibility gesture is set to the <xliff:g id="SERVICE">%1$s</xliff:g>. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"This service is malfunctioning."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Accessibility shortcuts"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Show in Quick Settings"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Red-green"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Red-green"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Red-green, green weak"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Red-green, red weak"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blue-yellow"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Greyscale"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Green weak, deuteranomaly"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Red weak, protanomaly"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Unavailable for Greyscale mode or when colour correction is disabled"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomaly"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaly"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extra dim"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Make screen extra dim"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Yellow"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Allow <xliff:g id="SERVICE">%1$s</xliff:g> to have full control of your device?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full control is appropriate for apps that help you with accessibility needs, but not for most apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"View and control screen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"It can read all content on the screen and display content over other apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"View and perform actions"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{None}=1{1 schedule set}other{# schedules set}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Do Not Disturb"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Priority modes"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Add a mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimise distractions and take control of your attention with modes for sleep, work, driving and everything in between."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Create your own mode"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Only get notified by important people and apps"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Set a schedule"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Schedule based on"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Day and time"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\'9.00 a.m. – 5.00 p.m. weekdays\'"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Calendar events"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{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}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode can turn on automatically}other{# modes can turn on automatically}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Not set"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Disabled"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Create a mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Turn on now"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Turn off"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mode not found"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limit interruptions"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Block interruptions and distractions"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Set up <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Turn on Do Not Disturb"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarms and media sounds can interrupt"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schedules"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Delete schedules"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Delete"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rename"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Delete"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Delete \'<xliff:g id="MODE">%1$s</xliff:g>\' mode?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schedules"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Schedule"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Turn on automatically"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Add a calendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Use your calendar"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Schedule"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Set a schedule"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"When to turn on automatically"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Event schedule"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Turn on during events for"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Where invite reply is"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Time schedule"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schedule"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>hr, <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schedule"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Allow interruptions that make sound"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Block visual disturbances"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Allow visual signals"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifications that can reach you"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Additional actions"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Notification filters"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"More settings"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/1 mode can turn on automatically}other{Off/# modes can turn on automatically}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Display settings"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Display options"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Greyscale"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"Enable Dark theme"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Switch the OS and apps to prefer light text on a dark background, which may be easier on the eyes and confers significant battery savings on some devices"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{No display changes}=1{{effect_1}}=2{{effect_1} and {effect_2}}=3{{effect_1}, {effect_2} and {effect_3}}other{{effect_1}, {effect_2} and # more}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limit what can notify you"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"No interruptions are filtered"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Display options for filtered notifications"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"When Do Not Disturb is on"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"No sound from notifications"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"open notification"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Allow notification snoozing"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Notification dot on app icon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Notification bundles"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bubble this conversation"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"This app doesn’t support enhanced settings"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"More settings"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"More settings are available inside this app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptive notifications"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use adaptive notifications"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"When you get many notifications within a short time, your phone will lower volume and minimise pop-ups on screen for up to two minutes. Calls, alarms and priority conversations still vibrate, make a sound or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Notification cooldown"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use notification cooldown"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"When you receive many notifications within a short time, your device will lower its volume and minimise alerts for up to 2 minutes. Calls, alarms and priority conversations are not affected. \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Apply to work profiles"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Apply to work profile apps"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR helper services"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categories"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Other"</string>
     <string name="no_channels" msgid="4716199078612071915">"This app has not posted any notifications"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Show unused categories"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Additional settings in the app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Show unused categories"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Hide unused categories"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversations"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"All conversations"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"all conversations"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Priority conversations"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"priority conversations"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"None"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps that can interrupt"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Selected apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"None"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"All"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{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}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (work)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculating…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Allow apps to override"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps that can interrupt"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Select more apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nothing can interrupt"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"No one can interrupt"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Some people can interrupt"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Repeat callers can interrupt"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"All people can interrupt"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Repeat callers"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Allow repeat callers"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Change to alarms only for one hour until {time}}other{Change to alarms only for # hours until {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Change to alarms only until <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Change to always interrupt"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Rename"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Change icon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Change icon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Create a mode"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom mode"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mode name"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Calendar events"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Bedtime routine"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"While driving"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"App settings"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info and settings in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Managed by <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Disable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"This mode will never turn on when disabled"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disable"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Enable <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"This mode may turn on automatically based on its settings"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Enable"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Set a mode that follows a regular schedule"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Set a mode to sync with calendar events and invite responses"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Design a calming sleep routine. Set alarms, dim the screen and block notifications."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritise safety on the road for a focused and distraction-free drive"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Block distractions or interruptions from your device to gain focus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminate all distractions for a quiet environment"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalise device experiences and settings for different users"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimise interruptions by only allowing important people and apps to reach you"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Warning"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Close"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Send feedback about this device"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Battery"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Settings Panel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode on secondary displays"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Enable freeform windows"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Enable freeform windows on secondary display"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Enable non-resizable in Multi-window"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Allows non-resizable apps to be in Multi-window"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Override force-dark"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Change"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connected"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporarily connected"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporarily using <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4997,9 +5067,9 @@
     <string name="prevent_ringing_main_switch_title" msgid="4726252811262086643">"Use prevent ringing"</string>
     <string name="use_wifi_hotsopt_main_switch_title" msgid="3909731167290690539">"Use Wi‑Fi hotspot"</string>
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Use app pinning"</string>
-    <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Use Developer options"</string>
+    <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Use developer options"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Use print service"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Allow multiple users"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Allow user switch"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"allow, multiple, user, permit, many"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"multiple, users, profiles, people, accounts, switch, many"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Use wireless debugging"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Customise"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Customise <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A reboot is required to enable freeform support."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"A reboot is required to force desktop mode on secondary displays."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"A reboot is required to enable freeform window support."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"A reboot is required to update availability of freeform windows."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"A reboot is required to enable freeform windows on secondary displays."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reboot now"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reboot later"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial audio"</string>
@@ -5137,7 +5208,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Disable child process restrictions"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Disable restrictions on the system resource usage of the app child processes"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Force enable Notes role"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Enable note-taking system integrations via the notes role. If the notes role is already enabled, does nothing. Requires reboot."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Enable note-taking system integrations via the Notes role. If the Notes role is already enabled, does nothing. Requires reboot."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Broadcast"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Broadcast <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Listen to broadcasts that are playing near you"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Done"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Save"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancel"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Default"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% left, %2$d%% right"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% right, %2$d%% left"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatical gender"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Select grammatical gender"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Listen to stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan an audio stream QR code to listen with <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Can\'t edit password while sharing. To change the password, first turn off audio sharing."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code scanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
 </resources>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index a7d044c..7493023 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎Bedtime‎‏‎‎‏‎"</item>
-    <item msgid="4152450357280759894">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎Driving‎‏‎‎‏‎"</item>
-    <item msgid="7096549258219399423">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎Immersive‎‏‎‎‏‎"</item>
-    <item msgid="2760716776980432977">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎Managed‎‏‎‎‏‎"</item>
-    <item msgid="601734478369121764">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎Star‎‏‎‎‏‎"</item>
-    <item msgid="6243809315432780521">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‎Calendar‎‏‎‎‏‎"</item>
-    <item msgid="4913577903148415331">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎Time‎‏‎‎‏‎"</item>
-    <item msgid="3653377604690057780">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‏‎‎‎Theater‎‏‎‎‏‎"</item>
-    <item msgid="3843711267408385410">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎Flower‎‏‎‎‏‎"</item>
+    <item msgid="2750940760340557109">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎Half-moon‎‏‎‎‏‎"</item>
+    <item msgid="8513969636586738035">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎Car‎‏‎‎‏‎"</item>
+    <item msgid="957392343846370509">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎Person\'s mind‎‏‎‎‏‎"</item>
+    <item msgid="6734164279667121348">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎Calendar‎‏‎‎‏‎"</item>
+    <item msgid="4139559120353528558">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎Clock‎‏‎‎‏‎"</item>
+    <item msgid="5157711296814769020">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‏‏‏‏‎‎‎Beach umbrella‎‏‎‎‏‎"</item>
+    <item msgid="6635328761318954115">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‏‏‎Tent‎‏‎‎‏‎"</item>
+    <item msgid="1711994778883392255">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‏‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‎Film reel‎‏‎‎‏‎"</item>
+    <item msgid="9097658401859604879">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‏‏‏‏‎Game controller‎‏‎‎‏‎"</item>
+    <item msgid="755931364157422565">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎Gym dumbbell‎‏‎‎‏‎"</item>
+    <item msgid="8894207806795738429">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎Person throwing ball‎‏‎‎‏‎"</item>
+    <item msgid="2274801572149555103">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎Person kicking‎‏‎‎‏‎"</item>
+    <item msgid="8795037201506843325">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎Swimming‎‏‎‎‏‎"</item>
+    <item msgid="3558421426169430451">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎Person hiking‎‏‎‎‏‎"</item>
+    <item msgid="7455070421232184932">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‎‎‎Golf‎‏‎‎‏‎"</item>
+    <item msgid="5841773092449126508">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎Workshop tools‎‏‎‎‏‎"</item>
+    <item msgid="4595330511709890409">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‎‎‏‎Briefcase‎‏‎‎‏‎"</item>
+    <item msgid="8352738347856724389">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‎‎‏‎‏‎Star‎‏‎‎‏‎"</item>
+    <item msgid="7082783098151998721">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎Lotus flower‎‏‎‎‏‎"</item>
+    <item msgid="5772220259409264724">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‏‏‎‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎Supervisor‎‏‎‎‏‎"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index aa900ae..3e5bfa2 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎Suspended‎‏‎‎‏‎"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‎Unknown‎‏‎‎‏‎"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‏‎Preview‎‏‎‎‏‎"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‎QR code‎‏‎‎‏‎"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎Make smaller‎‏‎‎‏‎"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎Make larger‎‏‎‎‏‎"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎Always‎‏‎‎‏‎"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎Hearing device settings‎‏‎‎‏‎"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎Shortcut, hearing aid compatibility‎‏‎‎‏‎"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎Preset‎‏‎‎‏‎"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‎There are no presets programmed by your audiologist‎‏‎‎‏‎"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‎Couldn’t update preset‎‏‎‎‏‎"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎Audio output‎‏‎‎‏‎"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‎About audio output‎‏‎‎‏‎"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎Language selection for this app isn’t available from Settings.‎‏‎‎‏‎"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎Language may differ from languages available in the app. Some apps may not support this setting.‎‏‎‎‏‎"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎Set the language for each app.‎‏‎‎‏‎"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎‏‎Your system, apps, and websites use the first supported language from your preferred languages.‎‏‎‎‏‎"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎Your device, apps, and websites use the first supported language from your preferred language list.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Many apps will also use the region from your preferred language to format dates, numbers, and units. To change your region, add a language, then choose your preferred region.‎‏‎‎‏‎"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎To select a language for each app, go to app language settings.‎‏‎‎‏‎"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎Learn more about app languages‎‏‎‎‏‎"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎Change system language to %s ?‎‏‎‎‏‎"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‎‎Off‎‏‎‎‏‎"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎On / # app has access to location‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎On / # apps have access to location‎‏‎‎‏‎}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‎Loading…‎‏‎‎‏‎"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎Apps with the Nearby devices permission can determine the relative position of connected devices.‎‏‎‎‏‎"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎Apps with the nearby devices permission can determine the relative position of connected devices.‎‏‎‎‏‎"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‎‎‎Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number.‎‏‎‎‏‎"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‎Learn more about Location settings‎‏‎‎‏‎"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‎‏‏‏‎‏‏‏‏‏‏‎To change go to ChromeOS Settings &gt; Privacy and security &gt; Privacy controls &gt; Location access‎‏‎‎‏‎"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎Face and ‎‏‎‎‏‏‎<xliff:g id="WATCH">%s</xliff:g>‎‏‎‎‏‏‏‎ added‎‏‎‎‏‎"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‎Face, fingerprint, and ‎‏‎‎‏‏‎<xliff:g id="WATCH">%s</xliff:g>‎‏‎‎‏‏‏‎ added‎‏‎‎‏‎"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‎‎Face, fingerprints, and ‎‏‎‎‏‏‎<xliff:g id="WATCH">%s</xliff:g>‎‏‎‎‏‏‏‎ added‎‏‎‎‏‎"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎Identity Check is on‎‏‎‎‏‎"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎Remote Authenticator Unlock‎‏‎‎‏‎"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‎‎Watch added‎‏‎‎‏‎"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎Set up your watch‎‏‎‎‏‎"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎Learn more about Watch Unlock‎‏‎‎‏‎"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎Add watch‎‏‎‎‏‎"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‎‎Remove watch‎‏‎‎‏‎"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‎‏‎‎Fingerprint &amp; Face Unlock‎‏‎‎‏‎"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎Face &amp; Fingerprint Unlock‎‏‎‎‏‎"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‎‏‎‎‎‏‎Face &amp; Fingerprint Unlock for work‎‏‎‎‏‎"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎Setup needed‎‏‎‎‏‎"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‏‏‏‏‎‎Face and fingerprints added‎‏‎‎‏‎"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎Setting up private space…‎‏‎‎‏‎"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‎Couldn’t set up a private space‎‏‎‎‏‎"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎Try Again‎‏‎‎‏‎"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎Exit‎‏‎‎‏‎"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎Private space isn’t available.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎View possible causes‎‏‎‎‏‎"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‏‎‎‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎View possible causes‎‏‎‎‏‎"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎Choose a new lock for private space?‎‏‎‎‏‎"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎You can set a new lock just for private space, or use the same lock you use to unlock your device‎‏‎‎‏‎"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‎‎Use screen lock‎‏‎‎‏‎"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎Restart Device?‎‏‎‎‏‎"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎Detail NFC logging is intended for development purposes only. Additional NFC data is included in bug reports, which may contain private information. Restart your device to change this setting.‎‏‎‎‏‎"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎Restart‎‏‎‎‏‎"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎On‎‏‎‎‏‎"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‎Off‎‏‎‎‏‎"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‎External Display‎‏‎‎‏‎"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‏‎‏‎‎Use external display‎‏‎‎‏‎"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‏‎‎‎Display resolution‎‏‎‎‏‎"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‎‎External display is disconnected‎‏‎‎‏‎"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎Rotation‎‏‎‎‏‎"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎Standard‎‏‎‎‏‎"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎90°‎‏‎‎‏‎"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎180°‎‏‎‎‏‎"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎‎‎‎‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎270°‎‏‎‎‏‎"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‎‏‏‎Changing rotation or resolution may stop any apps that are currently running‎‏‎‎‏‎"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎Your device must be connected to an external display to mirror your screen‎‏‎‎‏‎"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎More options‎‏‎‎‏‎"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎Cast‎‏‎‎‏‎"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‏‎mirror‎‏‎‎‏‎"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎Enable wireless display‎‏‎‎‏‎"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‎‏‏‎‎Adaptive‎‏‎‎‏‎"</string>
     <string name="brightness" msgid="6216871641021779698">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‎‎Brightness level‎‏‎‎‏‎"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‎Adaptive brightness‎‏‎‎‏‎"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎About adaptive brightness‎‏‎‎‏‎"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‎Your screen brightness will automatically adjust to your environment and activities. You can move the slider manually to help adaptive brightness learn your preferences.‎‏‎‎‏‎"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‎On‎‏‎‎‏‎"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎Off‎‏‎‎‏‎"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎Options‎‏‎‎‏‎"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎Accessibility‎‏‎‎‏‎"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎Physical keyboard‎‏‎‎‏‎"</string>
-    <string name="show_ime" msgid="4334255501724746849">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎Use on-screen keyboard‎‏‎‎‏‎"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎Keep it on screen while physical keyboard is active‎‏‎‎‏‎"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‎Bounce keys‎‏‎‎‏‎"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎The keyboard ignores quickly repeated presses of the same key within ‎‏‎‎‏‏‎<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g>‎‏‎‎‏‏‏‎ ms‎‏‎‎‏‎"</string>
     <string name="slow_keys" msgid="2891452895499690837">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎Slow keys‎‏‎‎‏‎"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎Adjusts the time it takes for a key press to activate to ‎‏‎‎‏‏‎<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g>‎‏‎‎‏‏‏‎ ms‎‏‎‎‏‎"</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="2396247040177734245">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‏‎Use the physical keyboard to control the mouse.‎‏‎‎‏‎"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‎‎‎‎‎Change pointer fill style to yellow‎‏‎‎‏‎"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‎Change pointer fill style to pink‎‏‎‎‏‎"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎Change pointer fill style to blue‎‏‎‎‏‎"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎‏‎‎‏‎Pointer stroke style‎‏‎‎‏‎"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‏‎White‎‏‎‎‏‎"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎Black‎‏‎‎‏‎"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‎‏‏‏‎None‎‏‎‎‏‎"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‏‎Learn touchpad gestures‎‏‎‎‏‎"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‎‎‎trackpad, track pad, mouse, cursor, scroll, swipe, right click, click, pointer‎‏‎‎‏‎"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‏‎right click, tap‎‏‎‎‏‎"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‎‎‎User selected: ‎‏‎‎‏‏‎<xliff:g id="LAYOUT_LABEL">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎Speech‎‏‎‎‏‎"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‏‏‎‎Pointer speed‎‏‎‎‏‎"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‎Pointer scale‎‏‎‎‏‎"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‏‏‎‏‎‎‎‎‎‏‎‎‎Decrease pointer scale‎‏‎‎‏‎"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎Increase pointer scale‎‏‎‎‏‎"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‎‎Game Controller‎‏‎‎‏‎"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎Redirect vibration‎‏‎‎‏‎"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎Send vibration to game controller when connected‎‏‎‎‏‎"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‎Continue anyway‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎Cancel‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎Magnification settings‎‏‎‎‏‎"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎One-finger panning‎‏‎‎‏‎"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎Move magnifier with 1 finger‎‏‎‎‏‎"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎Drag 1 finger to move around the screen‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎Move the magnification area by dragging one finger.‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎Move the magnification area by dragging two fingers.‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎Unavailable while only magnifying part of the screen‎‏‎‎‏‎"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎Tap a button to zoom‎‏‎‎‏‎"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‏‏‎Quickly zoom in on the screen to make content larger‎‏‎‎‏‎"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 2 fingers to move around screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; &lt;b&gt;To zoom in temporarily:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Make sure your magnification type is set to full screen&lt;br/&gt; {1,number,integer}. Use shortcut to start magnification&lt;br/&gt; {2,number,integer}. Touch &amp; hold anywhere on the screen&lt;br/&gt; {3,number,integer}. Drag finger to move around screen&lt;br/&gt; {4,number,integer}. Lift finger to stop magnification‎‏‎‎‏‎"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‎‎&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more.‎‏‎‎‏‎"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‎‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎&lt;b&gt;To zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use shortcut to start magnification&lt;br/&gt; {1,number,integer}. Tap the screen&lt;br/&gt; {2,number,integer}. Drag 1 or 2 fingers to move around the screen&lt;br/&gt; {3,number,integer}. Pinch with 2 fingers to adjust zoom&lt;br/&gt; {4,number,integer}. Use shortcut to stop magnification&lt;br/&gt;&lt;br/&gt; You can also zoom in temporarily and more.‎‏‎‎‏‎"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‏‎‎‎‎When magnification is turned on, you can zoom in on your screen.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎To zoom‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎, start magnification, then tap anywhere on the screen.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<ul>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎Drag 2 or more fingers to scroll‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎Pinch 2 or more fingers to adjust zoom‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"</ul>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎To zoom temporarily‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎, start magnification, then touch &amp; hold anywhere on the screen.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<ul>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎Drag to move around the screen‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎Lift finger to zoom out‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"</ul>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You can’t zoom in on the keyboard or navigation bar.‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‎Page ‎‏‎‎‏‏‎<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>‎‏‎‎‏‏‏‎ of ‎‏‎‎‏‏‎<xliff:g id="NUM_PAGES">%2$d</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎Accessibility button shortcut‎‏‎‎‏‎"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎Tap the floating button‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎Accessibility gesture‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎Tap the accessibility button ‎‏‎‎‏‏‎<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>‎‏‎‎‏‏‏‎ at the bottom of your screen. To switch between features, touch &amp; hold the accessibility button.‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‏‎Swipe up from the bottom of the screen with 2 fingers.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To switch between features, swipe up with 2 fingers and hold.‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‎Swipe up from the bottom of the screen with 3 fingers.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To switch between features, swipe up with 3 fingers and hold.‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{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>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‎"<annotation id="link">"‎‏‎‎‏‏‏‎More options‎‏‎‎‏‏‎"</annotation>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‎‏‎Learn more about ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎‎Volume keys‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‎‎volume keys‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‎Press &amp; hold both volume keys‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎Two-finger double-tap screen‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎%1$d-finger double tap‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‎‎Quickly tap the screen twice with %1$d fingers‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎Triple tap‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‏‎Quickly tap the screen %1$d times. This may slow down your device.‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‏‏‎‎‎‏‏‏‏‎%1$d-finger double tap‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎Quickly tap screen {0,number,integer} times with two fingers‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎Triple-tap screen‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‏‏‏‎‎triple tap‎‏‎‎‏‎"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎Quickly tap screen {0,number,integer} times. This shortcut may slow down your device‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎Advanced‎‏‎‎‏‎"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎The Accessibility button is set to ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎. To use magnification, touch &amp; hold the Accessibility button, then select magnification.‎‏‎‎‏‎"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‎The accessibility gesture is set to the ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎. To use magnification, swipe up with two fingers from the bottom of the screen and hold. Then select magnification.‎‏‎‎‏‎"</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎This service is malfunctioning.‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎Accessibility shortcuts‎‏‎‎‏‎"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎Show in Quick Settings‎‏‎‎‏‎"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎Red-green‎‏‎‎‏‎"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎Red-green‎‏‎‎‏‎"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎Red-green, green weak‎‏‎‎‏‎"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‏‎‎‏‎‎‏‏‎‎‏‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎Red-green, red weak‎‏‎‎‏‎"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎Blue-yellow‎‏‎‎‏‎"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‎‎Grayscale‎‏‎‎‏‎"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎Intensity‎‏‎‎‏‎"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎Green weak, deuteranomaly‎‏‎‎‏‎"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎Red weak, protanomaly‎‏‎‎‏‎"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎Unavailable for grayscale mode or when color correction is disabled‎‏‎‎‏‎"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‏‎Deuteranomaly‎‏‎‎‏‎"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎Protanomaly‎‏‎‎‏‎"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‎Tritanomaly‎‏‎‎‏‎"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎Extra dim‎‏‎‎‏‎"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎Make screen extra dim‎‏‎‎‏‎"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‎Cyan‎‏‎‎‏‎"</string>
     <string name="color_yellow" msgid="5957551912912679058">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎Yellow‎‏‎‎‏‎"</string>
     <string name="color_magenta" msgid="8943538189219528423">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎Magenta‎‏‎‎‏‎"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‎Allow ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ to have full control of your device?‎‏‎‎‏‎"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ needs to:‎‏‎‎‏‎"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‏‎Because an app is obscuring a permission request, Settings can’t verify your response.‎‏‎‎‏‎"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ is requesting full control of this device. The service can read the screen and act on behalf of users with accessibility needs. This level of control is not appropriate for most apps.‎‏‎‎‏‎"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎Full control is appropriate for apps that help you with accessibility needs, but not for most apps.‎‏‎‎‏‎"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎View and control screen‎‏‎‎‏‎"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‎‏‎‏‏‏‎‎‎‎‎‏‏‎‏‎‎It can read all content on the screen and display content over other apps.‎‏‎‎‏‎"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‏‎‏‎‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎View and perform actions‎‏‎‎‏‎"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf.‎‏‎‎‏‎"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎Allow‎‏‎‎‏‎"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎Deny‎‏‎‎‏‎"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎Turn off‎‏‎‎‏‎"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎None‎‏‎‎‏‎}=1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎1 schedule set‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎# schedules set‎‏‎‎‏‎}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎Do Not Disturb‎‏‎‎‏‎"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎Priority Modes‎‏‎‎‏‎"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎‎Add a mode‎‏‎‎‏‎"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‎‎‎Minimize distractions and take control of your attention with modes for sleep, work, driving, and everything in between.‎‏‎‎‏‎"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‏‎‎‎‎‎‎‎Create your own mode‎‏‎‎‏‎"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎Only get notified by important people and apps‎‏‎‎‏‎"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎Set a schedule‎‏‎‎‏‎"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎Schedule based on‎‏‎‎‏‎"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎Day and time‎‏‎‎‏‎"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‎‎‏‎‏‎\"9 AM - 5 PM weekdays\"‎‏‎‎‏‎"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‎Calendar events‎‏‎‎‏‎"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{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‎‏‎‎‏‎}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎1 mode can turn on automatically‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎# modes can turn on automatically‎‏‎‎‏‎}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎ON‎‏‎‎‏‎"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎Not set‎‏‎‎‏‎"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎Disabled‎‏‎‎‏‎"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎Create a mode‎‏‎‎‏‎"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎Custom‎‏‎‎‏‎"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎Turn on now‎‏‎‎‏‎"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‎‎‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎Turn off‎‏‎‎‏‎"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‎Mode not found‎‏‎‎‏‎"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎Limit interruptions‎‏‎‎‏‎"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎Block interruptions and distractions‎‏‎‎‏‎"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‎Set up ‎‏‎‎‏‏‎<xliff:g id="MODE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎Turn on Do Not Disturb‎‏‎‎‏‎"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‏‏‎‎‏‎‏‏‎Alarms and media sounds can interrupt‎‏‎‎‏‎"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‏‏‏‎‎Schedules‎‏‎‎‏‎"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎Delete schedules‎‏‎‎‏‎"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎Delete‎‏‎‎‏‎"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‎Rename‎‏‎‎‏‎"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎Delete‎‏‎‎‏‎"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‎‎‎Delete \"‎‏‎‎‏‏‎<xliff:g id="MODE">%1$s</xliff:g>‎‏‎‎‏‏‏‎\" mode?‎‏‎‎‏‎"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎Edit‎‏‎‎‏‎"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‎Schedules‎‏‎‎‏‎"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎Schedule‎‏‎‎‏‎"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎Turn on automatically‎‏‎‎‏‎"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‏‎‎Add a calendar‎‏‎‎‏‎"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‎‎‎Use your calendar‎‏‎‎‏‎"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‎‎Schedule‎‏‎‎‏‎"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‎‏‎Set a schedule‎‏‎‎‏‎"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎When to turn on automatically‎‏‎‎‏‎"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‎Event schedule‎‏‎‎‏‎"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‏‎Turn on during events for‎‏‎‎‏‎"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‎‎‏‎Where invite reply is‎‏‎‎‏‎"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‎Time schedule‎‏‎‎‏‎"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‎‏‎Schedule‎‏‎‎‏‎"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="HOURS">%1$d</xliff:g>‎‏‎‎‏‏‏‎ hr, ‎‏‎‎‏‏‎<xliff:g id="MINUTES">%2$d</xliff:g>‎‏‎‎‏‏‏‎ min‎‏‎‎‏‎"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‎‏‏‎‎‎Schedule‎‏‎‎‏‎"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎Allow interruptions that make sound‎‏‎‎‏‎"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎Block visual disturbances‎‏‎‎‏‎"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎‎‎‏‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎Allow visual signals‎‏‎‎‏‎"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎Notifications that can reach you‎‏‎‎‏‎"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎Additional actions‎‏‎‎‏‎"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‎Notification filters‎‏‎‎‏‎"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎More settings‎‏‎‎‏‎"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎Off‎‏‎‎‏‎}=1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎Off / 1 mode can turn on automatically‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎Off / # modes can turn on automatically‎‏‎‎‏‎}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎Display settings‎‏‎‎‏‎"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‎‏‎‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‎Display options‎‏‎‎‏‎"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎Grayscale‎‏‎‎‏‎"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎enable dark theme‎‏‎‎‏‎"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‎Switch the OS and apps to prefer light text on a dark background, which may be easier on the eyes and confers significant battery savings on some devices‎‏‎‎‏‎"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎No display changes‎‏‎‎‏‎}=1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎{effect_1}‎‏‎‎‏‏‏‎‎‏‎‎‏‎}=2{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎{effect_1}‎‏‎‎‏‏‏‎ and ‎‏‎‎‏‏‎{effect_2}‎‏‎‎‏‏‏‎‎‏‎‎‏‎}=3{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎{effect_1}‎‏‎‎‏‏‏‎, ‎‏‎‎‏‏‎{effect_2}‎‏‎‎‏‏‏‎, and ‎‏‎‎‏‏‎{effect_3}‎‏‎‎‏‏‏‎‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎{effect_1}‎‏‎‎‏‏‏‎, ‎‏‎‎‏‏‎{effect_2}‎‏‎‎‏‏‏‎, and # more‎‏‎‎‏‎}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎Limit what can notify you‎‏‎‎‏‎"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‎No interruptions are filtered‎‏‎‎‏‎"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‎Display options for filtered notifications‎‏‎‎‏‎"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎When Do Not Disturb is on‎‏‎‎‏‎"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎No sound from notifications‎‏‎‎‏‎"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‏‎‎‎‎‎‎‏‏‎open notification‎‏‎‎‏‎"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎Allow notification snoozing‎‏‎‎‏‎"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‏‎Notification dot on app icon‎‏‎‎‏‎"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎‎Notification bundles‎‏‎‎‏‎"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎Bubbles‎‏‎‎‏‎"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‎Bubbles‎‏‎‎‏‎"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎Bubble this conversation‎‏‎‎‏‎"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎This app doesn’t support enhanced settings‎‏‎‎‏‎"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‎More settings‎‏‎‎‏‎"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎More settings are available inside this app‎‏‎‎‏‎"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‏‎‎Adaptive Notifications‎‏‎‎‏‎"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎Use adaptive notifications‎‏‎‎‏‎"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎When you get many notifications within a short time, your phone will lower volume and minimize pop-ups on screen for up to two minutes. Calls, alarms, and priority conversations still vibrate, make a sound, or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen.‎‏‎‎‏‎"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‏‎‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‎‏‎‏‎Notification cooldown‎‏‎‎‏‎"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎Use notification cooldown‎‏‎‎‏‎"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‎When you receive many notifications within a short time, your device will lower its volume and minimize alerts for up to 2 minutes. Calls, alarms, and priority conversations are not affected. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Notifications received during the cooldown can be found by pulling down from the top of the screen.‎‏‎‎‏‎"</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎Apply to work profiles‎‏‎‎‏‎"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎Apply to work profile apps‎‏‎‎‏‎"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎VR helper services‎‏‎‎‏‎"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎Categories‎‏‎‎‏‎"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‎‎Other‎‏‎‎‏‎"</string>
     <string name="no_channels" msgid="4716199078612071915">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎This app has not posted any notifications‎‏‎‎‏‎"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‎Show unused categories‎‏‎‎‏‎"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‎‎‏‏‏‏‏‏‎Additional settings in the app‎‏‎‎‏‎"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‏‎‎Show unused categories‎‏‎‎‏‎"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎Hide unused categories‎‏‎‎‏‎"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="START">%1$s</xliff:g>‎‏‎‎‏‏‏‎ - ‎‏‎‎‏‏‎<xliff:g id="END">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‎Conversations‎‏‎‎‏‎"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎All conversations‎‏‎‎‏‎"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎all conversations‎‏‎‎‏‎"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎Priority conversations‎‏‎‎‏‎"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎priority conversations‎‏‎‎‏‎"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‎‏‏‏‏‎‏‎None‎‏‎‎‏‎"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎Apps that can interrupt‎‏‎‎‏‎"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎‎Selected apps‎‏‎‎‏‎"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‎None‎‏‎‎‏‎"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎All‎‏‎‎‏‎"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{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‎‏‎‎‏‎}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="APP_LABEL">%s</xliff:g>‎‏‎‎‏‏‏‎ (Work)‎‏‎‎‏‎"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‎‎Calculating…‎‏‎‎‏‎"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎+‎‏‎‎‏‏‎<xliff:g id="NUMBER">%d</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎Allow apps to override‎‏‎‎‏‎"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎Apps that can interrupt‎‏‎‎‏‎"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎Select more apps‎‏‎‎‏‎"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‎Nothing can interrupt‎‏‎‎‏‎"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎No one can interrupt‎‏‎‎‏‎"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎Some people can interrupt‎‏‎‎‏‎"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎Repeat callers can interrupt‎‏‎‎‏‎"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎All people can interrupt‎‏‎‎‏‎"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‏‎‎Repeat callers‎‏‎‎‏‎"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎Allow repeat callers‎‏‎‎‏‎"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎Change to alarms only for one hour until ‎‏‎‎‏‏‎{time}‎‏‎‎‏‏‏‎‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎Change to alarms only for # hours until ‎‏‎‎‏‏‎{time}‎‏‎‎‏‏‏‎‎‏‎‎‏‎}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‏‎‎‎‎‎‏‎‏‎‏‎‎Change to alarms only until ‎‏‎‎‏‏‎<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‏‏‎‏‎Change to always interrupt‎‏‎‎‏‎"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎Rename‎‏‎‎‏‎"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‎Change icon‎‏‎‎‏‎"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎Change icon‎‏‎‎‏‎"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎Edit mode‎‏‎‎‏‎"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎Create a mode‎‏‎‎‏‎"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‎‎‏‎Custom mode‎‏‎‎‏‎"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‎‎‎‎Mode name‎‏‎‎‏‎"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎Calendar events‎‏‎‎‏‎"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎Bedtime routine‎‏‎‎‏‎"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎While driving‎‏‎‎‏‎"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‏‎‎‎‎‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‎App settings‎‏‎‎‏‎"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎Info and settings in ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎Managed by ‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‎Disable ‎‏‎‎‏‏‎<xliff:g id="MODE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎This mode will never turn on when disabled‎‏‎‎‏‎"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‎Disable‎‏‎‎‏‎"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‎‎‎‎‏‎Enable ‎‏‎‎‏‏‎<xliff:g id="MODE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎This mode may turn on automatically based on its settings‎‏‎‎‏‎"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‏‎Enable‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‏‎Set a mode that follows a regular schedule‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‎Set a mode to sync with calendar events and invite responses‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‏‎Design a calming sleep routine. Set alarms, dim the screen, and block notifications.‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‏‎Prioritize safety on the road for a focused and distraction-free drive‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‎Block distractions or interruptions from your device to gain focus‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‎Eliminate all distractions for a quiet environment‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‎‏‎Personalize device experiences and settings for different users‎‏‎‎‏‎"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎Minimize interruptions by only allowing important people and apps to reach you‎‏‎‎‏‎"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‏‎Warning‎‏‎‎‏‎"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎Close‎‏‎‎‏‎"</string>
     <string name="device_feedback" msgid="5351614458411688608">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎Send feedback about this device‎‏‎‎‏‎"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‎Case‎‏‎‎‏‎"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎Battery‎‏‎‎‏‎"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‏‎Settings Panel‎‏‎‎‏‎"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎Force desktop mode‎‏‎‎‏‎"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‏‏‏‎Force experimental desktop mode on secondary displays‎‏‎‎‏‎"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎Enable freeform windows‎‏‎‎‏‎"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‎‎Enable freeform windows on secondary display‎‏‎‎‏‎"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‎‎‏‏‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‎Enable non-resizable in multi window‎‏‎‎‏‎"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎Allows non-resizable apps to be in multi window‎‏‎‎‏‎"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎Override force-dark‎‏‎‎‏‎"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‎mobile data‎‏‎‎‏‎"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‎To improve device experience, apps and services can still scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location-based features and services. You can change this in Wi‑Fi scanning settings.‎‏‎‎‏‎"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎Change‎‏‎‎‏‎"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="STATE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ / ‎‏‎‎‏‏‎<xliff:g id="NETWORKMODE">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎Connected‎‏‎‎‏‎"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‎‏‎Temporarily connected‎‏‎‎‏‎"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎Temporarily using ‎‏‎‎‏‏‎<xliff:g id="SUBNAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎Use app pinning‎‏‎‎‏‎"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎Use developer options‎‏‎‎‏‎"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎Use print service‎‏‎‎‏‎"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‎Allow multiple users‎‏‎‎‏‎"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‎Allow user switch‎‏‎‎‏‎"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎allow, multiple, user, permit, many‎‏‎‎‏‎"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎‎‎multiple, users, profiles, people, accounts, switch, many‎‏‎‎‏‎"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‎Use wireless debugging‎‏‎‎‏‎"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎Choose what you’ll see on your screen when your tablet is docked. Your device may use more energy when a screen saver is used.‎‏‎‎‏‎"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎Customize‎‏‎‎‏‎"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎Customize ‎‏‎‎‏‏‎<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎A reboot is required to enable freeform support.‎‏‎‎‏‎"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‎A reboot is required to force desktop mode on secondary displays.‎‏‎‎‏‎"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎A reboot is required to enable freeform window support.‎‏‎‎‏‎"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎A reboot is required to update availability of freeform windows.‎‏‎‎‏‎"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‎A reboot is required to enable freeform windows on secondary displays.‎‏‎‎‏‎"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‎Reboot now‎‏‎‎‏‎"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎‎‎Reboot later‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎Spatial Audio‎‏‎‎‏‎"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎Rose‎‏‎‎‏‎"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‎Magenta‎‏‎‎‏‎"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎Violet‎‏‎‎‏‎"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‎‎Done‎‏‎‎‏‎"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎Save‎‏‎‎‏‎"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‏‏‏‎‏‎Cancel‎‏‎‎‏‎"</string>
     <string name="contrast_default" msgid="8918545965525226966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‏‏‎‎Default‎‏‎‎‏‎"</string>
     <string name="contrast_medium" msgid="384414510709285811">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‎‏‏‎Medium‎‏‎‎‏‎"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎On‎‏‎‎‏‎"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎Off‎‏‎‎‏‎"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‏‎On‎‏‎‎‏‎"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎Audio %1$d%% left, %2$d%% right‎‏‎‎‏‎"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎Audio %1$d%% right, %2$d%% left‎‏‎‎‏‎"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎‏‎Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot.‎‏‎‎‏‎"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‏‎‎‎Grammatical gender‎‏‎‎‏‎"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‏‏‎Select Grammatical gender‎‏‎‎‏‎"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎Listen to stream‎‏‎‎‏‎"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎Scan an audio stream QR code to listen with ‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‏‎‎‏‎Can\'t edit password while sharing. To change the password, first turn off audio sharing.‎‏‎‎‏‎"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎QR code scanner‎‏‎‎‏‎"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‎Search Settings‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-feminine/strings.xml b/res/values-es-feminine/strings.xml
new file mode 100644
index 0000000..74422ea
--- /dev/null
+++ b/res/values-es-feminine/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectada a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para permanecer conectada de forma continua. Solo se permitirá el tráfico de red cuando estés conectada a esta red VPN."</string>
+    <string name="vpn_disconnected" msgid="7694522069957717501">"Desconectada de la VPN"</string>
+</resources>
diff --git a/res/values-es-masculine/strings.xml b/res/values-es-masculine/strings.xml
new file mode 100644
index 0000000..c51039a
--- /dev/null
+++ b/res/values-es-masculine/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectado a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para permanecer conectado de forma continua. Solo se permitirá el tráfico de red cuando estés conectado a esta red VPN."</string>
+    <string name="vpn_disconnected" msgid="7694522069957717501">"Desconectado de la VPN"</string>
+</resources>
diff --git a/res/values-es-neuter/strings.xml b/res/values-es-neuter/strings.xml
new file mode 100644
index 0000000..7d39b24
--- /dev/null
+++ b/res/values-es-neuter/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya te has conectado a una red VPN. Si te conectas a otra, esta sustituirá a la VPN actual."</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para mantener la conexión de forma continua. Solo se permitirá el tráfico de red cuando tengas conexión a esta red VPN."</string>
+    <string name="vpn_disconnected" msgid="7694522069957717501">"Te has desconectado de la VPN"</string>
+</resources>
diff --git a/res/values-es-rUS-feminine/strings.xml b/res/values-es-rUS-feminine/strings.xml
new file mode 100644
index 0000000..220e78c
--- /dev/null
+++ b/res/values-es-rUS-feminine/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de convertirte en desarrolladora.}other{Ahora estás a # pasos de convertirte en desarrolladora.}}"</string>
+    <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrolladora!"</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"No es necesario. Ya eres desarrolladora."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectada a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
+    <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantente siempre conectada a la VPN"</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando estés conectada a esta VPN."</string>
+    <string name="guest_category_title" msgid="5562663588315329152">"Invitada (tú)"</string>
+</resources>
diff --git a/res/values-es-rUS-masculine/strings.xml b/res/values-es-rUS-masculine/strings.xml
new file mode 100644
index 0000000..dc69848
--- /dev/null
+++ b/res/values-es-rUS-masculine/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de convertirte en desarrollador.}other{Ahora estás a # pasos de convertirte en desarrollador.}}"</string>
+    <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrollador!"</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"No es necesario. Ya eres desarrollador."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya estás conectado a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
+    <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantente siempre conectado a la VPN"</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando estés conectado a esta VPN."</string>
+    <string name="guest_category_title" msgid="5562663588315329152">"Invitado (tú)"</string>
+</resources>
diff --git a/res/values-es-rUS-neuter/strings.xml b/res/values-es-rUS-neuter/strings.xml
new file mode 100644
index 0000000..12d564c
--- /dev/null
+++ b/res/values-es-rUS-neuter/strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="show_dev_countdown" msgid="2936506773086395069">"{count,plural, =1{Ahora estás a # paso de activar las opciones para desarrolladores.}other{Ahora estás a # pasos de activar las opciones para desarrolladores.}}"</string>
+    <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrollador!"</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"No es necesario. Ya eres desarrollador."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Ya te conectaste a una VPN. Si te conectas a otra, se reemplazará la VPN actual."</string>
+    <string name="vpn_always_on_summary" msgid="2171252372476858166">"Mantén siempre conexión a la VPN"</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando tengas conexión a esta VPN."</string>
+    <string name="guest_category_title" msgid="5562663588315329152">"Invitado (tú)"</string>
+</resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 5741bfb..aef9b8d 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Hora de dormir"</item>
-    <item msgid="4152450357280759894">"Mientras se conduce"</item>
-    <item msgid="7096549258219399423">"Inmersivo"</item>
-    <item msgid="2760716776980432977">"Administrado"</item>
-    <item msgid="601734478369121764">"Estrella"</item>
-    <item msgid="6243809315432780521">"Calendario"</item>
-    <item msgid="4913577903148415331">"Hora"</item>
-    <item msgid="3653377604690057780">"Teatro"</item>
-    <item msgid="3843711267408385410">"Flor"</item>
+    <item msgid="2750940760340557109">"Media luna"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Mente de una persona"</item>
+    <item msgid="6734164279667121348">"Calendario"</item>
+    <item msgid="4139559120353528558">"Reloj"</item>
+    <item msgid="5157711296814769020">"Sombrilla"</item>
+    <item msgid="6635328761318954115">"Tienda"</item>
+    <item msgid="1711994778883392255">"Rollo de película"</item>
+    <item msgid="9097658401859604879">"Control de juegos"</item>
+    <item msgid="755931364157422565">"Mancuerna"</item>
+    <item msgid="8894207806795738429">"Persona arrojando una pelota"</item>
+    <item msgid="2274801572149555103">"Persona pateando"</item>
+    <item msgid="8795037201506843325">"Natación"</item>
+    <item msgid="3558421426169430451">"Persona caminando"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Herramientas de taller"</item>
+    <item msgid="4595330511709890409">"Maletín"</item>
+    <item msgid="8352738347856724389">"Destacado"</item>
+    <item msgid="7082783098151998721">"Flor de loto"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 4d80d3d..3ca28a4 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Desconocida"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Vista previa"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Código QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Reducir el tamaño"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Aumentar el tamaño"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Siempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Configuración de dispositivos auditivos"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Acceso directo, compatibilidad con audífonos"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Ajuste predeterminado"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Tu audiólogo no programó ningún ajuste predeterminado"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"No se pudo actualizar el ajuste predeterminado"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Salida de audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Info. sobre salida de audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La selección de idioma para esta app no está disponible en Configuración."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Puede que el idioma difiera de los idiomas disponibles en la app. Algunas apps no son compatibles con este parámetro de configuración."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Configura el idioma para cada app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"El sistema, las apps y los sitios web usan el primer idioma compatible de entre los preferidos."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"El dispositivo, las apps y los sitios web usan el primer idioma compatible de entre los preferidos.\n\nMuchas apps también usarán la región del idioma preferido para cambiar la forma en la que muestran fechas, números y unidades. Para realizar cambios, agrega un idioma y elige una región preferida."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para seleccionar un idioma para cada app, ve a la configuración de idioma de la app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Obtén más información sobre los idiomas de las apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"¿Deseas cambiar el idioma del sistema a %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivada"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada: # app tiene acceso a la ubicación}other{Activada: # apps tienen acceso a la ubicación}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Las apps que tienen el permiso de dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Las apps que tienen el permiso de dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"El acceso a la ubicación está desactivado para las apps y los servicios. Todavía se puede enviar la ubicación del dispositivo a los servicios de emergencia cuando llamas o mandas un mensaje a un número de emergencia."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Más información sobre la configuración de la ubicación"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para cambiar, ve a la configuración de ChromeOS &gt; Privacidad y seguridad &gt; Controles de privacidad &gt; Acceso a la ubicación"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rostro y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rostro, huella dactilar y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rostro, huellas dactilares y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticator Unlock remoto"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Se agregó el reloj"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura el reloj"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Más información sobre Desbloqueo del reloj"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Agregar reloj"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloj"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueo facial y con huellas dactilares"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Desbloqueo facial y con huellas dactilares"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo facial y con huellas dactilares para el trabajo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Se requiere configuración"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Se agregaron huellas dactilares y el rostro"</string>
@@ -474,7 +478,7 @@
     <string name="security_settings_fingerprint_enroll_dialog_delete" msgid="6027141901007342389">"Borrar"</string>
     <string name="security_settings_fingerprint_enroll_start_title" msgid="7391368057800077604">"Toca el sensor"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="5010227772754175346">"Coloca el dedo en el sensor y levántalo cuando sientas una vibración."</string>
-    <string name="security_settings_udfps_enroll_start_message" msgid="5032954588171487566">"Mantén toda la huella dactilar en el sensor hasta que notes una vibración."</string>
+    <string name="security_settings_udfps_enroll_start_message" msgid="5032954588171487566">"Mantén toda la huella dactilar en el sensor hasta que notes una vibración"</string>
     <string name="security_settings_sfps_enroll_start_message" msgid="9054672627477685212">"Sin presionar el botón, mantén la huella dactilar en el sensor hasta que sientas una vibración.\n\nMueve un poco el dedo cada vez. Esto permite capturar más superficie de tu huella dactilar."</string>
     <string name="security_settings_fingerprint_enroll_udfps_title" msgid="6665610134560896895">"Mantén presionado el sensor de huellas dactilares"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="9172202128243545021">"Levanta el dedo y vuelve a tocar"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando espacio privado…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"No se pudo configurar el espacio privado"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Reintentar"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Salir"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"El espacio privado no está disponible.\nVer causas posibles"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Ver causas posibles"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"¿Elegir un nuevo bloqueo para tu espacio privado?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Puedes establecer un nuevo bloqueo solo para el espacio privado, o bien puedes usar el mismo que usas para desbloquear el dispositivo"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueo de pantalla"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"¿Quieres reiniciar el dispositivo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"El registro detallado de NFC está destinado únicamente a fines de desarrollo. Se incluyen datos de NFC adicionales en los informes de errores, que podrían contener información privada. Reinicia el dispositivo para cambiar la configuración."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Activado"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desactivado"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Usar pantalla externa"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolución de pantalla"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Pantalla externa desconectada"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotación"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Estándar"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Cambiar la rotación o la resolución puede detener cualquier app que se esté ejecutando en ese momento"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"El dispositivo debe estar conectado a una pantalla externa para duplicar tu pantalla"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Más opciones"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Transmitir"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"duplicar"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Habilitar pantalla inalámbrica"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Automáticos"</string>
     <string name="brightness" msgid="6216871641021779698">"Nivel de brillo"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Brillo automático"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Acerca del brillo automático"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"El brillo de la pantalla se ajustará automáticamente según el entorno y las actividades que hagas. Puedes mover el control deslizante para que la función de brillo automático reconozca tus preferencias."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activado"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Inhabilitado"</string>
@@ -1688,7 +1710,7 @@
     <string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"Levanta el dedo cuando termines."</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"Une al menos <xliff:g id="NUMBER">%d</xliff:g> puntos. Vuelve a intentarlo."</string>
     <string name="lockpattern_pattern_entered_header" msgid="7709618312713127249">"Patrón registrado"</string>
-    <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Vuelve a trazar el patrón para confirmarlo."</string>
+    <string name="lockpattern_need_to_confirm" msgid="6489499109451714360">"Vuelve a trazar el patrón para confirmarlo"</string>
     <string name="lockpattern_pattern_confirmed_header" msgid="2969990617475456153">"Patrón de desbloqueo nuevo"</string>
     <string name="lockpattern_confirm_button_text" msgid="6122815520373044089">"Confirmar"</string>
     <string name="lockpattern_restart_button_text" msgid="255339375151895998">"Revisar"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opciones"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidad"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Usar teclado en pantalla"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Mientras el teclado físico está activo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Rechazo de teclas"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"El teclado ignora las presiones de la misma tecla repetidas con rapidez dentro de los <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta el tiempo que lleva activar la presión de una tecla a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Usa el teclado físico para controlar el mouse"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambia estilo de relleno a amarillo"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambia el estilo de relleno a rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambia el estilo de relleno a azul"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo de trazo del puntero"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanco"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negro"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ninguno"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprende los gestos del panel táctil"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"panel táctil, panel, táctil,mouse, cursor, desplazar, deslizar, hacer clic con el botón derecho, clic, puntero"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"hacer clic con el botón derecho, presionar"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Seleccionado por el usuario: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Voz"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocidad del puntero"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Tamaño del puntero"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Achicar el tamaño del puntero"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Agrandar el tamaño del puntero"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Controlador de juegos"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redireccionar vibración"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Enviar la vibración al controlador de juegos cuando esté conectado"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar de todos modos"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuración de ampliación"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Desplazamiento con un dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mueve la lupa con 1 dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastra con 1 dedo para moverte por la pantalla"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Arrastrar un dedo para mover el área de ampliación."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Arrastrar dos dedos para mover el área de ampliación."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"No disponible mientras se amplía parte de la pantalla"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Presiona un botón para ampliar"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Acerca rápidamente la pantalla para que el contenido se muestre en un tamaño más grande"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Para acercar, haz lo siguiente:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa la combinación para comenzar la ampliación.&lt;br/&gt; {1,number,integer}. Presiona la pantalla.&lt;br/&gt; {2,number,integer}. Arrastra 2 dedos para moverte por la pantalla.&lt;br/&gt; {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.&lt;br/&gt; {4,number,integer}. Usa la combinación para detener la ampliación.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Para acercar de manera temporal, haz lo siguiente:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Asegúrate de que el tipo de ampliación esté configurado en pantalla completa.&lt;br/&gt; {1,number,integer}. Usa la combinación para comenzar la ampliación.&lt;br/&gt; {2,number,integer}. Mantén presionada cualquier parte de la pantalla.&lt;br/&gt; {3,number,integer}. Arrastra un dedo para moverte por la pantalla.&lt;br/&gt; {4,number,integer}. Levanta el dedo para detener la ampliación."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Para acercar, haz lo siguiente:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa el atajo para comenzar la ampliación.&lt;br/&gt; {1,number,integer}. Presiona la pantalla.&lt;br/&gt; {2,number,integer}. Arrastra 2 dedos para moverte por la pantalla.&lt;br/&gt; {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.&lt;br/&gt; {4,number,integer}. Usa el atajo para detener la ampliación.&lt;br/&gt;&lt;br/&gt; También puedes acercar temporalmente y realizar otras acciones."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Para acercar, haz lo siguiente:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa el atajo para comenzar la ampliación.&lt;br/&gt; {1,number,integer}. Presiona la pantalla.&lt;br/&gt; {2,number,integer}. Arrastra con 1 o 2 dedos para moverte por la pantalla.&lt;br/&gt; {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.&lt;br/&gt; {4,number,integer}. Usa el atajo para detener la ampliación.&lt;br/&gt;&lt;br/&gt; También puedes acercar temporalmente y realizar otras acciones."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Cuando la ampliación esté activada, podrás acercar el contenido en pantalla.\n\n"<b>"Para usar el zoom"</b>", inicia la ampliación y, luego, presiona cualquier parte de la pantalla.\n"<ul><li>"Arrastra 2 o más dedos para desplazarte."</li>\n<li>"Pellizca con 2 o más dedos para ajustar el zoom."</li></ul>\n\n<b>"Para hacer zoom de manera temporal"</b>", inicia la ampliación y, luego, mantén presionada cualquier parte de la pantalla.\n"<ul><li>"Arrastra el dedo para moverte por la pantalla."</li>\n<li>"Levanta el dedo para alejar el contenido."</li></ul>\n\n"No puedes acercar con el teclado ni en la barra de navegación."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Página <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Acceso directo al botón de accesibilidad"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Presiona el botón flotante"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de accesibilidad"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Presiona el botón de accesibilidad <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ubicado en la parte inferior de la pantalla. Para cambiar entre funciones, mantén presionado el botón de accesibilidad."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Desliza dos dedos hacia arriba desde la parte inferior de la pantalla.\n\nPara cambiar de función, desliza dos dedos hacia arriba y mantén presionada la pantalla."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Desliza tres dedos hacia arriba desde la parte inferior de la pantalla.\n\nPara cambiar de función, desliza tres dedos hacia arriba y mantén presionada la pantalla."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Desliza hacia arriba desde la parte inferior de la pantalla. Para cambiar entre funciones, desliza hacia arriba y mantén presionado.}other{Desliza hacia arriba con # dedos desde la parte inferior de la pantalla. Para cambiar entre funciones, desliza hacia arriba con # dedos y mantén presionado.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Más opciones"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Más información sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volumen"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volumen"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén presionadas ambas teclas de volumen"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Presiona dos veces la pantalla con dos dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Presiona dos veces con %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Presiona rápidamente la pantalla dos veces con %1$d dedos."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Presiona tres veces"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Presiona rápidamente la pantalla %1$d veces. Es posible que se ralentice el dispositivo."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"presionar dos veces con %1$d dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Presiona la pantalla rápidamente {0,number,integer} veces con dos dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Presionar tres veces la pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"presionar tres veces"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Presiona rápidamente la pantalla {0,number,integer} veces. Esta combinación de teclas podría hacer que tu dispositivo funcione más lento."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanzada"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"El botón de Accesibilidad está configurado para <xliff:g id="SERVICE">%1$s</xliff:g>. Para ampliar, mantén presionado el botón y, luego, selecciona ampliación."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"El gesto de accesibilidad se configuró en <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar la ampliación, desliza dos dedos hacia arriba desde la parte inferior de la pantalla y mantén presionado. Luego, selecciona la ampliación."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Este servicio no funciona correctamente."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Combinaciones de accesibilidad"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostrar en Configuración rápida"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rojo-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rojo-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rojo y verde, verde claro"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rojo y verde, rojo claro"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarillo"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grises"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidad"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Verde claro, deuteranomalía"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rojo claro, protanomalía"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"No disponible para el modo de escala de grises o cuando se inhabilitó la corrección de colores"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteronomalía"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalía"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalía"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Atenuación extra"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Atenuación extra de la pantalla"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cian"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Amarillo"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"¿Deseas permitir que la app <xliff:g id="SERVICE">%1$s</xliff:g> tenga el control total de tu dispositivo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necesita:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Debido a que una aplicación está bloqueando una solicitud de permiso, la Configuración no puede verificar tu respuesta."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando el control total de este dispositivo. El servicio puede leer la pantalla y realizar acciones para los usuarios que necesitan accesibilidad. Este nivel de control no es apropiado para la mayoría de las apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"El control total es apropiado para las apps que te ayudan con las necesidades de accesibilidad, pero no para la mayoría de las apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver y controlar la pantalla"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Puede leer todo el contenido en la pantalla y mostrar contenido sobre otras apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver y realizar acciones"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Puede seguir tus interacciones con una app o un sensor de hardware, así como interactuar con las apps por ti."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rechazar"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ninguno}=1{1 programa establecido}other{# programas establecidos}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"No interrumpir"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modos de prioridad"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Agregar un modo"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimiza las distracciones y gestiona tu atención con modos de sueño, trabajo, conducción y otras situaciones."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crea tu propio modo"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Solo recibe notificaciones de las personas y apps que más te interesan"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Establecer un programa"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Programar según"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Día y hora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"De 9 a.m. a 5 p.m. los días de semana\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Eventos de calendario"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} está activo}=2{{mode_1} y {mode_2} están activos}=3{{mode_1}, {mode_2} y {mode_3} están activos}other{{mode_1}, {mode_2} y # modos más están activos}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modo se puede activar automáticamente}other{# modos se pueden activar automáticamente}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVADO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Sin establecer"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Inhabilitado"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Crea un modo"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Activar ahora"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desactivar"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"No se encontró el modo"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar las interrupciones"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloquea interrupciones y distracciones"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurar <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activar No interrumpir"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Los sonidos multimedia y las alarmas pueden interrumpir"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programaciones"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Borrar programas"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Borrar"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Cambiar nombre"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Borrar"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"¿Quieres borrar el modo \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programas"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programa"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Activar automáticamente"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Agrega un calendario"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Usa tu calendario"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programa"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Establecer un programa"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Cuándo activar automáticamente"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programación de eventos"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Activar durante eventos para"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Cuando la respuesta es"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Horario"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programa"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programa"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Habilitar interrupciones con sonido"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquear alteraciones visuales"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir señales visuales"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificaciones que puedes recibir"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Acciones adicionales"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtros de notificación"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Más parámetros de configuración"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desactivado}=1{Desactivado/se puede activar automáticamente 1 modo}other{Desactivado/se pueden activar automáticamente # modos}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Configuración de visualización"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opciones de visualización"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de grises"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"Habilitar el tema oscuro"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Cambia el SO y las apps para preferir el texto claro sobre un fondo oscuro, lo que puede ser más cómodo para los ojos y genera un ahorro de batería significativo en algunos dispositivos."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Sin cambios de visualización}=1{{effect_1}}=2{{effect_1} y {effect_2}}=3{{effect_1}, {effect_2} y {effect_3}}other{{effect_1}, {effect_2} y # más}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limita qué puede enviarte notificaciones"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"No se filtran interrupciones"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opciones de visualización de notificaciones filtradas"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Cuando se activa No interrumpir"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Notificaciones sin sonido"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"notificación abierta"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permitir posponer notificaciones"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Punto de notificación en ícono de app"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paquetes de notificaciones"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Burbujas"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbujas"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar esta conversación en una burbuja"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta app no admite opciones de configuración mejoradas"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Más parámetros de configuración"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Puedes encontrar más parámetros de configuración disponibles dentro de esta app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificaciones adaptables"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificaciones adaptables"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Cuando recibas muchas notificaciones en un intervalo de tiempo corto, el teléfono bajará el volumen y minimizará las ventanas emergentes en la pantalla por un máximo de dos minutos. Las llamadas, las alarmas y las conversaciones prioritarias seguirán sonando, haciendo vibrar el dispositivo o mostrándose en la pantalla. Podrás encontrar todas las notificaciones deslizando hacia abajo desde la parte superior de la pantalla."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Inactividad de notificaciones"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Usar reducción de sonido de notificaciones"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Cuando recibas muchas notificaciones en un intervalo de tiempo corto, el dispositivo bajará el volumen y minimizará las alertas por un máximo de 2 minutos. Las llamadas, alarmas y conversaciones prioritarias no se verán afectadas. \n\nPuedes ver las notificaciones que recibas durante la reducción de sonido deslizando hacia abajo desde la parte superior de la pantalla."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfiles de trabajo"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar a apps del perfil de trabajo"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servicio de ayuda de RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorías"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Otros"</string>
     <string name="no_channels" msgid="4716199078612071915">"Esta app no publicó ninguna notificación"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostrar categorías sin usar"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Opciones de configuración adicionales de la app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostrar categorías sin usar"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ocultar categorías sin usar"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversaciones"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Todas las conversaciones"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"todas las conversaciones"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversaciones prioritarias"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversaciones prioritarias"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ninguna"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps que pueden interrumpir"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps seleccionadas"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ninguna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todo"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ninguna app puede interrumpir}=1{{app_1} puede interrumpir}=2{{app_1} y {app_2} pueden interrumpir}=3{{app_1}, {app_2} y {app_3} pueden interrumpir}other{{app_1}, {app_2} y otras # apps pueden interrumpir}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabajo)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que las apps anulen No interrumpir"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que pueden interrumpir"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleccionar más apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada puede interrumpir"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguna persona puede interrumpir"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Algunas personas pueden interrumpir"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Las llamadas reiteradas pueden interrumpir"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Cualquier persona puede interrumpir"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Llamadas repetidas"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir llamadas repetidas de un mismo emisor"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Cambiar a solo alarmas durante una hora hasta la hora {time}}other{Cambiar a solo alarmas durante # horas hasta la hora {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Cambiar a solo alarmas hasta la(s) <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Cambiar a interrumpir siempre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Cambiar nombre"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Cambiar ícono"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Cambiar ícono"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Editar modo"</string>
+    <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>
+    <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>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Mientras conduces"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Configuración de aplicación"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Información y configuración en <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Administrador: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"¿Quieres inhabilitar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"El modo nunca se activará cuando está inhabilitado"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Inhabilitar"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"¿Quieres habilitar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"El modo podría activarse automáticamente dependiendo de la configuración"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Habilitar"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Establece un modo para seguir un programa habitual"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Establece un modo para sincronizar los eventos de calendario y las respuestas a invitaciones"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Elabora una rutina tranquila de sueño. Establece alarmas, atenúa la pantalla y bloquea las notificaciones."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Conduce sin distracciones y concéntrate en la ruta priorizando tu seguridad"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloquea las distracciones o interrupciones de tu dispositivo para aumentar la concentración"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimina todas las distracciones para un entorno tranquilo"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personaliza la experiencia y la configuración del dispositivo para los distintos usuarios"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Para minimizar las interrupciones, permite que solo las personas y apps importantes se comuniquen contigo"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Advertencia"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Cerrar"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Enviar comentarios sobre el dispositivo"</string>
@@ -4233,7 +4304,7 @@
     <string name="long_background_tasks_title" msgid="3272230637974707490">"Tareas largas en segundo plano"</string>
     <string name="long_background_tasks_footer_title" msgid="9117342254914743097">"Permite que esta app ejecute tareas largas en segundo plano. De esta manera, la app puede ejecutar tareas que podrían tardar más de un minuto en finalizar, como descargas y subidas de archivos. \n\nSi se niega este permiso, el sistema limitará el tiempo que la app puede realizar esas tareas en segundo plano."</string>
     <string name="keywords_long_background_tasks" msgid="5788956269136054574">"tareas largas, transferencia de datos, tareas en segundo plano"</string>
-    <string name="reset_shortcut_manager_throttling" msgid="2183940254903144298">"Restablecer la limitación de frecuencia de ShortcutManager"</string>
+    <string name="reset_shortcut_manager_throttling" msgid="2183940254903144298">"Restablecer el límite de frecuencia de ShortcutManager"</string>
     <string name="reset_shortcut_manager_throttling_complete" msgid="8949943009096885470">"Se restableció la limitación de frecuencia de ShortcutManager"</string>
     <string name="notification_suggestion_title" msgid="6309263655965785411">"Controlar qué aparece en la pantalla de bloqueo"</string>
     <string name="notification_suggestion_summary" msgid="7615611244249276113">"Ocultar o mostrar el contenido de las notificaciones"</string>
@@ -4791,10 +4862,10 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Funda"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batería"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel de Configuración"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forzar modo de escritorio"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Fuerza el modo de escritorio experimental en pantallas secundarias."</string>
-    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Habilitar apps que no cambian de tamaño en Multiventana"</string>
-    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite que las apps que no cambian de tamaño aparezcan en Multiventana."</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Habilitar ventanas de formato libre"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Habilitar las ventanas de formato libre en pantallas secundarias"</string>
+    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Habilitar apps que no cambian de tamaño en multiventana"</string>
+    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite que las apps que no cambian de tamaño aparezcan en multiventana"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Anular forzar el modo oscuro"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"Anula la función forzar el modo oscuro para que esté siempre activo"</string>
     <string name="privacy_dashboard_title" msgid="6845403825611829558">"Privacidad"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"datos móviles"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para mejorar la experiencia con el dispositivo, las apps y los servicios pueden seguir buscando redes Wi-Fi en cualquier momento, incluso cuando la conexión Wi-Fi esté desactivada. Esta función puede usarse, por ejemplo, para mejorar las funciones y los servicios basados en la ubicación. Puedes cambiar este parámetro en la configuración de búsqueda de Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Cambiar"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Conexión establecida"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectado temporalmente"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> en uso temporalmente"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar fijación de apps"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar opciones para desarrolladores"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usar servicio de impresión"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permitir varios usuarios"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir cambiar de usuario"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"permitir, varios, usuarios, habilitar, muchos"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"múltiples, usuarios, perfiles, personas, cuentas, cambiar, muchos"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar depuración inalámbrica"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Elige lo que quieres ver en la pantalla cuando la tablet está conectada. Es posible que el dispositivo use más energía cuando se utiliza el protector de pantalla."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Se debe reiniciar para habilitar la asistencia de formato libre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Se debe reiniciar para forzar el modo de computadora en las pantallas secundarias."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Se debe reiniciar para habilitar la compatibilidad con las ventanas de formato libre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Se debe reiniciar para actualizar la disponibilidad de las ventanas de formato libre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Se debe reiniciar para habilitar las ventanas de formato libre en pantallas secundarias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar ahora"</string>
     <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>
@@ -5135,8 +5206,8 @@
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura el límite de tasa de descarga de la red"</string>
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"Sin límite"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Inhabilita restricciones de procesos secundarios"</string>
-    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Inhabilita las restricciones del uso de recursos del sistema para los procesos secundarios de la app."</string>
-    <string name="enable_notes_role_title" msgid="7662702013496114763">"Fuerza el rol Notas"</string>
+    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Inhabilita las restricciones del uso de recursos del sistema para los procesos secundarios de la app"</string>
+    <string name="enable_notes_role_title" msgid="7662702013496114763">"Forzar habilitación del rol Notas"</string>
     <string name="enable_notes_role_summary" msgid="5495721409392395089">"Permite integraciones del sistema para tomar notas con el rol Notas. Si este rol ya está habilitado, no tiene ningún efecto. Requiere reiniciar el dispositivo."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Transmisión"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Transmitir <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Listo"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Guardar"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancelar"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Predeterminado"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Activadas"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desactivado"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Activado"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio: %1$d%% izquierda, %2$d%% derecha"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio: %1$d%% derecha, %2$d%% izquierda"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"El nombre de tu dispositivo es visible para las apps instaladas. Es posible que también lo vean otras personas cuando te conectes a dispositivos Bluetooth o a una red Wi-Fi, o cuando configures un hotspot de Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Género gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecciona un género gramatical"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escuchar reproducción"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escanea el código QR de una reproducción de audio para escuchar con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"No se puede editar la contraseña mientras se está compartiendo. Para cambiar la contraseña, primero desactiva el uso compartido de audio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escáner de código QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Buscar en Configuración"</string>
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 8f40228..332dda6 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Descanso"</item>
-    <item msgid="4152450357280759894">"En coche"</item>
-    <item msgid="7096549258219399423">"Inmersivo"</item>
-    <item msgid="2760716776980432977">"Gestionado"</item>
-    <item msgid="601734478369121764">"Estrella"</item>
-    <item msgid="6243809315432780521">"Calendario"</item>
-    <item msgid="4913577903148415331">"Hora"</item>
-    <item msgid="3653377604690057780">"Teatro"</item>
-    <item msgid="3843711267408385410">"Flor"</item>
+    <item msgid="2750940760340557109">"Media luna"</item>
+    <item msgid="8513969636586738035">"Coche"</item>
+    <item msgid="957392343846370509">"Mente de una persona"</item>
+    <item msgid="6734164279667121348">"Calendario"</item>
+    <item msgid="4139559120353528558">"Reloj"</item>
+    <item msgid="5157711296814769020">"Sombrilla"</item>
+    <item msgid="6635328761318954115">"Tienda de campaña"</item>
+    <item msgid="1711994778883392255">"Carrete vintage"</item>
+    <item msgid="9097658401859604879">"Mandos de juegos"</item>
+    <item msgid="755931364157422565">"Mancuerna de gimnasio"</item>
+    <item msgid="8894207806795738429">"Persona lanzando una pelota"</item>
+    <item msgid="2274801572149555103">"Persona dando una patada"</item>
+    <item msgid="8795037201506843325">"Natación"</item>
+    <item msgid="3558421426169430451">"Persona haciendo senderismo"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Herramientas del taller"</item>
+    <item msgid="4595330511709890409">"Maletín"</item>
+    <item msgid="8352738347856724389">"Estrella"</item>
+    <item msgid="7082783098151998721">"Flor de loto"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index cfc9c40..a8ceee5 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Desconocido"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Vista previa"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Código QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Reducir el tamaño"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Aumentar el tamaño"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Siempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Ajustes de audífonos"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Acceso directo, compatibilidad con audífonos"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preajuste"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Tu audiólogo no ha programado ningún preajuste"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"No se ha podido actualizar el preajuste"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Salida de audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Acerca de la salida de audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La selección de idioma para esta aplicación no está disponible en Ajustes."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Puede que el idioma no coincida con los que hay disponibles en la aplicación. Algunas aplicaciones no son compatibles con este ajuste."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Establece el idioma de cada aplicación."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Tu sistema, aplicaciones y sitios web usan el primer idioma compatible de tus idiomas preferidos."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Tu dispositivo, aplicaciones y sitios web usan el primer idioma compatible de tu lista de idiomas preferidos.\n\nMuchas aplicaciones también usan la región de tu idioma preferido para seleccionar el formato de las fechas, los números y las unidades. Para cambiar la región, añade un idioma y, a continuación, elige tu región preferida."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para seleccionar un idioma para cada aplicación, ve a los ajustes de idiomas de las aplicaciones."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Más información sobre los idiomas de las aplicaciones"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"¿Cambiar el idioma del sistema a %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivado"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada: # aplicación tiene acceso a la ubicación}other{Activada: # aplicaciones tienen acceso a la ubicación}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Las aplicaciones que tengan permiso para detectar dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Las aplicaciones que tengan permiso para detectar dispositivos cercanos podrán determinar la posición relativa de los dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Las aplicaciones y los servicios no pueden acceder a la ubicación. Aun así, quizá se envíe la ubicación del dispositivo a los servicios de emergencia cuando llames o envíes mensajes a números de emergencia."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Más información sobre los ajustes de ubicación"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para cambiarlo, ve a Ajustes de ChromeOS &gt; Privacidad y seguridad &gt; Controles de privacidad &gt; Acceso a la ubicación"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Cara y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Cara, huella digital y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Cara, huellas digitales y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueo con Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch añadido"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar un reloj"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Más información sobre Desbloqueo con reloj"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Añadir reloj"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloj"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueo facial y con huella digital"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Desbloqueo facial y con huella digital"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo facial y con huella digital para el trabajo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Hay que configurarlo"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Cara y huellas digitales añadidas"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando espacio privado…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"No se ha podido crear el espacio privado"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Reintentar"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Salir"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"El espacio privado no está disponible.\nVer posibles causas"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Ver posibles causas"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"¿Elegir un nuevo bloqueo para el espacio privado?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Puedes definir un bloqueo nuevo solo para el espacio privado o usar el mismo con el que desbloqueas el dispositivo"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueo de pantalla"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"¿Reiniciar dispositivo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"El registro detallado de NFC solo se usa para fines de desarrollo. Además, se incluyen datos adicionales de NFC en los informes de errores, que pueden contener información privada. Reinicia tu dispositivo para cambiar este ajuste."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Activada"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desactivada"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Usar pantalla externa"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolución de pantalla"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"La pantalla externa está desconectada"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotación"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Estándar"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Si cambias la rotación o la resolución, puede que se detengan las aplicaciones que están en funcionamiento"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Tu dispositivo debe estar conectado a una pantalla externa para proyectar tu pantalla"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Más opciones"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Enviar"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"proyectar"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Habilitar pantalla inalámbrica"</string>
@@ -1186,9 +1207,10 @@
     <string name="color_mode_option_natural" msgid="6192875655101283303">"Naturales"</string>
     <string name="color_mode_option_boosted" msgid="4698797857766774289">"Mejorados"</string>
     <string name="color_mode_option_saturated" msgid="3413853820158447300">"Saturados"</string>
-    <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptativo"</string>
+    <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptativos"</string>
     <string name="brightness" msgid="6216871641021779698">"Nivel de brillo"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Brillo adaptativo"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Acerca del brillo adaptativo"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"El brillo de la pantalla se ajustará automáticamente según el entorno y lo que hagas. Puedes mover el control deslizante para que la función Brillo adaptativo reconozca tus preferencias."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activado"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desactivado"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opciones"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidad"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Usar teclado en pantalla"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Mantenlo en pantalla mientras el teclado físico está activo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"El teclado ignora las pulsaciones rápidas repetidas de la misma tecla hechas en menos de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta el tiempo que se tarda en activar una pulsación de tecla a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Usa el teclado físico para controlar el ratón"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambiar relleno a amarillo"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambiar relleno del puntero a rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambiar relleno del puntero a azul"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo del trazo del puntero"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanco"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negro"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ninguno"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Consultar gestos del panel táctil"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"panel táctil, ratón, cursor, desplazar, deslizar, hacer clic con el botón derecho, clic, puntero"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"hacer clic con el botón derecho, tocar"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Seleccionado por el usuario: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Voz"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocidad del puntero del ratón"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Tamaño del cursor"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Reducir el tamaño del cursor"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aumentar el tamaño del cursor"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Mandos de videojuegos"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirigir vibración"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Enviar vibración al mando para juegos cuando esté conectado"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar de todos modos"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ajustes de ampliación"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Desplazarse con un dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mover la lupa con 1 dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastra 1 dedo para moverte por la pantalla."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mueve la lupa de área arrastrándola con un dedo."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mueve la lupa de área arrastrándola con dos dedos."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"No disponible cuando se amplía solo parte de la pantalla"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toca un botón para ampliar"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Amplía rápidamente la pantalla para que el contenido se vea más grande"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Para ampliar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa el acceso directo para iniciar la ampliación.&lt;br/&gt; {1,number,integer}. Toca la pantalla.&lt;br/&gt; {2,number,integer}. Arrastra dos dedos para moverte por la pantalla.&lt;br/&gt; {3,number,integer}. Pellizca con dos dedos para ajustar el zoom.&lt;br/&gt; {4,number,integer}. Usa el acceso directo para detener la ampliación.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Para ampliar de forma temporal:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Asegúrate de que has configurado el tipo de ampliación como pantalla completa.&lt;br/&gt; {1,number,integer}. Usa el acceso directo para iniciar la ampliación.&lt;br/&gt; {2,number,integer}. Mantén pulsada cualquier parte de la pantalla.&lt;br/&gt; {3,number,integer}. Arrastra el dedo para moverte por la pantalla.&lt;br/&gt; {4,number,integer}. Levanta el dedo para detener la ampliación."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Para ampliar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa el acceso directo para iniciar la ampliación.&lt;br/&gt; {1,number,integer}. Toca la pantalla.&lt;br/&gt; {2,number,integer}. Arrastra 2 dedos para moverte por la pantalla.&lt;br/&gt; {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.&lt;br/&gt; {4,number,integer}. Usa este acceso directo para detener la ampliación.&lt;br/&gt;&lt;br/&gt; También puedes ampliar temporalmente y más."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Para ampliar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa el acceso directo para iniciar la ampliación.&lt;br/&gt; {1,number,integer}. Toca la pantalla.&lt;br/&gt; {2,number,integer}. Arrastra 1 o 2 dedos para moverte por la pantalla.&lt;br/&gt; {3,number,integer}. Pellizca con 2 dedos para ajustar el zoom.&lt;br/&gt; {4,number,integer}. Usa este acceso directo para detener la ampliación.&lt;br/&gt;&lt;br/&gt; También puedes ampliar temporalmente y más."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Si la ampliación está activada, puedes ampliar la pantalla.\n\n"<b>"Para ampliar"</b>", inicia la ampliación y toca la parte de la pantalla que quieras ampliar.\n"<ul><li>"Arrastra al menos dos dedos para desplazarte."</li>\n<li>"Pellizca la pantalla con al menos dos dedos para ajustar el zoom."</li></ul>\n\n<b>"Para ampliar elementos temporalmente"</b>", inicia la ampliación y mantén pulsada cualquier parte de la pantalla.\n"<ul><li>"Arrastra un dedo para desplazarte por la pantalla."</li>\n<li>"Levanta el dedo para reducir la imagen."</li></ul>\n\n"El teclado y la barra de navegación no se pueden ampliar."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Página <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Acceso directo al botón de accesibilidad"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toca el botón flotante."</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de accesibilidad"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"En la parte inferior de la pantalla, toca el botón de accesibilidad <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Para cambiar de una función a otra, mantén pulsado el botón de accesibilidad."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Desde la parte inferior de la pantalla, desliza hacia arriba con dos dedos.\n\nPara cambiar de una función a otra, desliza hacia arriba con dos dedos y mantén pulsada la pantalla."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Desde la parte inferior de la pantalla, desliza tres dedos hacia arriba.\n\nPara cambiar de una función a otra, desliza tres dedos hacia arriba y mantén pulsada la pantalla."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Desliza hacia arriba desde la parte inferior de la pantalla. Para cambiar de una función a otra, desliza hacia arriba y mantén pulsado.}other{Desliza hacia arriba con # dedos desde la parte inferior de la pantalla. Para cambiar de una función a otra, desliza hacia arriba con # dedos y mantén pulsado.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Más opciones"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Más información sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volumen"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volumen"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén pulsadas las dos teclas de volumen."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Toca dos veces la pantalla con dos dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocar dos veces con %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toca rápidamente la pantalla dos veces con %1$d dedos."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocar tres veces"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toca rápidamente la pantalla %1$d veces. Esta acción puede ralentizar tu dispositivo."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"tocar dos veces con %1$d dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca la pantalla {0,number,integer} veces rápidamente con dos dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple toque en la pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar tres veces"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toca la pantalla {0,number,integer} veces rápidamente. Esta acción puede hacer que tu dispositivo funcione más lento."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Ajustes avanzados"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Se ha definido <xliff:g id="SERVICE">%1$s</xliff:g> como preferencia de Accesibilidad. Para utilizar la ampliación, mantén pulsado el botón de accesibilidad y selecciona esa opción."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Se ha definido el gesto de accesibilidad para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar la función de ampliación, desliza hacia arriba con dos dedos desde la parte inferior de la pantalla y mantenla pulsada. A continuación, selecciona la ampliación."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Este servicio no funciona correctamente."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Accesos directos de accesibilidad"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostrar en ajustes rápidos"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rojo-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rojo-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rojo-verde, percepción débil del verde"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rojo-verde, percepción débil del rojo"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarillo"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grises"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidad"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Percepción débil del verde, deuteranomalía"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Percepción débil del rojo, protanomalía"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"No disponible en el modo Escala de grises ni cuando la corrección de color está inhabilitada"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteronomalía"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalía"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalía"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Atenuación extra"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Atenuación extra de la pantalla"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cian"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Amarillo"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"¿Permitir que <xliff:g id="SERVICE">%1$s</xliff:g> pueda controlar totalmente tu dispositivo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necesita:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Una aplicación está bloqueando una solicitud de permiso, por lo que Ajustes no puede verificar tu respuesta."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando el control completo del dispositivo. El servicio puede leer la pantalla y actuar en nombre de los usuarios que necesitan funciones de accesibilidad. El nivel de control no es adecuado para la mayoría de las aplicaciones."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"El control total es adecuado para las aplicaciones de accesibilidad, pero no para la mayoría de las aplicaciones."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver y controlar la pantalla"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Puede leer todo el contenido de la pantalla y mostrar contenido encima de otras aplicaciones."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver y realizar acciones"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Puede registrar tus interacciones con una aplicación o un sensor de hardware, así como interactuar con las aplicaciones en tu nombre."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denegar"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ninguna}=1{1 programación creada}other{# programaciones creadas}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"No molestar"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modos prioritarios"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Añadir un modo"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimiza las distracciones y toma el control de tu atención con los modos para dormir, trabajar, conducir o cualquier otra actividad."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crea tu propio modo"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Recibe notificaciones solo de personas y aplicaciones importantes"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Crear una programación"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Programación basada en"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Día y hora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"De 9:00 a 17:00 los días laborables\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Eventos del calendario"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} está activo}=2{{mode_1} y {mode_2} están activos}=3{{mode_1}, {mode_2} y {mode_3} están activos}other{{mode_1}, {mode_2} y # más están activos}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modo se puede activar automáticamente}other{# modos se pueden activar automáticamente}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVADO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Sin definir"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Inhabilitado"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Crear un modo"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Activar ahora"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desactivar"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modo no encontrado"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar interrupciones"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloquea las interrupciones y las distracciones"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurar <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activar No molestar"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Las alarmas y los sonidos multimedia pueden interrumpirte"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programaciones"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Eliminar programaciones"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Eliminar"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Cambiar nombre"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Eliminar"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"¿Eliminar modo <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programaciones"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programación"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Activar automáticamente"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Añade un calendario"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Usa el calendario"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programación"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Crea una programación"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Cuándo activar automáticamente"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programación del evento"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Activar durante eventos para"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Donde la respuesta sea"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Programación horaria"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programar"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programación"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Permitir interrupciones que reproduzcan sonido"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquear interrupciones visuales"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir señales visuales"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificaciones que pueden llegarte"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Acciones adicionales"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtros de notificación"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Más ajustes"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desactivado}=1{Desactivado / 1 modo puede activarlo automáticamente}other{Desactivado / # modos pueden activarlo automáticamente}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Ajustes de la pantalla"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opciones de visualización"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de grises"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"habilitar tema oscuro"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Se prioriza que el SO y las aplicaciones usen un texto claro sobre fondo oscuro, lo que puede resultar más agradable a la vista y supone un importante ahorro de batería en algunos dispositivos"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{No hay cambios en la pantalla}=1{{effect_1}}=2{{effect_1} y {effect_2}}=3{{effect_1}, {effect_2} y {effect_3}}other{{effect_1}, {effect_2}, y # más}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limita qué puede enviarte notificaciones"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"No se filtra ninguna interrupción"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opciones de visualización para las notificaciones filtradas"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Cuando el modo No molestar esté activado"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Notificaciones sin sonido"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificación"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permitir que se pospongan las notificaciones"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Burbuja de notificación en el icono de la aplicación"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paquetes de notificaciones"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Burbujas"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbujas"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Convertir esta conversación en burbuja"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta aplicación no admite la configuración avanzada"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Más ajustes"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Hay más ajustes disponibles en la aplicación"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificaciones adaptativas"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificaciones adaptativas"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Cuando recibas muchas notificaciones en poco tiempo, tu teléfono bajará el volumen del audio y minimizará las ventanas emergentes de la pantalla durante dos minutos. Las alertas de llamadas, alarmas y conversaciones prioritarias seguirán vibrando, emitiendo un sonido o apareciendo en pantalla, y todas las notificaciones se encontrarán fácilmente al deslizar hacia abajo la parte superior de la pantalla."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Bajar volumen de notificaciones"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bajar el volumen de notificaciones"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Cuando recibas muchas notificaciones en poco tiempo, tu dispositivo bajará el volumen y minimizará las alertas durante un máximo de 2 minutos. Las llamadas, alarmas y conversaciones prioritarias no se verán afectadas. \n\nLas notificaciones recibidas durante ese periodo se pueden encontrar arrastrando hacia abajo la parte superior de la pantalla."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfiles de trabajo"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar a las aplicaciones del perfil de trabajo"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servicios de ayuda de RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorías"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Otros"</string>
     <string name="no_channels" msgid="4716199078612071915">"Esta aplicación no ha publicado ninguna notificación"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostrar categorías no usadas"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Ajustes adicionales de la aplicación"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostrar categorías no usadas"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ocultar categorías no usadas"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>-<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversaciones"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Todas las conversaciones"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"todas las conversaciones"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversaciones prioritarias"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversaciones prioritarias"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ninguna"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplicaciones que pueden interrumpirte"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicaciones seleccionadas"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ninguna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todas"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ninguna aplicación puede interrumpirte}=1{{app_1} puede interrumpirte}=2{{app_1} y {app_2} pueden interrumpirte}=3{{app_1}, {app_2} y {app_3} pueden interrumpirte}other{{app_1}, {app_2} y # más pueden interrumpirte}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabajo)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que las aplicaciones anulen el modo No molestar"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicaciones que pueden interrumpirte"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleccionar más aplicaciones"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada puede interrumpirme"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nadie puede interrumpirte"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Algunas personas pueden interrumpirte"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Las llamadas repetidas pueden interrumpirte"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Todo el mundo puede interrumpirte"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Llamadas repetidas"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir llamadas repetidas"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Cambiar a Solo alarmas durante una hora hasta las {time}}other{Cambiar a Solo alarmas durante # horas hasta las {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Cambiar a Solo alarmas hasta las <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Cambiar a interrumpir siempre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Cambiar nombre"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Cambiar icono"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Cambiar icono"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modo de edición"</string>
+    <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>
+    <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>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Durante la conducción"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Ajustes de aplicaciones"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Información y ajustes en <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gestionado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"¿Inhabilitar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Este modo nunca se activará cuando esté inhabilitado"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Inhabilitar"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"¿Quieres habilitar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Puede que este modo se active automáticamente según sus ajustes"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Habilitar"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Define un modo que siga un calendario regular"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Define un modo para sincronizar los eventos del calendario y las respuestas a invitaciones"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Diseña una rutina de sueño relajante. Define alarmas, atenúa la pantalla y bloquea las notificaciones."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioriza la seguridad en la carretera para una conducción sin distracciones"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Advertencia"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Cerrar"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Enviar comentarios sobre el dispositivo"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Funda"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batería"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel de ajustes"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forzar modo Escritorio"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Fuerza el modo Escritorio experimental en pantallas secundarias"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Habilitar ventanas de forma libre"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Habilitar ventanas libres en pantallas secundarias"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Habilitar aplicaciones de tamaño no modificable en multiventana"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite que las aplicaciones de tamaño no modificable se muestren en multiventana"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Anular Forzar modo Oscuro"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"datos móviles"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para mejorar la experiencia con el dispositivo, las aplicaciones y los servicios podrán buscar redes Wi‑Fi en cualquier momento aunque la conexión Wi-Fi esté desactivada. Esto sirve para, por ejemplo, mejorar los servicios y las funciones que se basan en la ubicación. Puedes cambiar esta opción en los ajustes de búsqueda de redes Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Cambiar"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectado"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectada temporalmente"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Usando <xliff:g id="SUBNAME">%1$s</xliff:g> temporalmente"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar Fijar aplicaciones"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar Opciones para desarrolladores"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usa servicio de impresión"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permitir varios usuarios"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir cambiar de usuario"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"permitir, varios, usuarios, habilitar, muchos"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"múltiples, usuarios, perfiles, personas, cuentas, cambiar, muchos"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar depuración inalámbrica"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Elige lo que quieres ver en tu pantalla cuando tu tablet está conectada en la base. Es posible que el dispositivo gaste más batería si se usa un salvapantallas."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Debes reiniciar para habilitar el formato libre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Debes reiniciar para forzar el modo Escritorio en pantallas secundarias."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Debes reiniciar para habilitar la compatibilidad con ventanas de forma libre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Debes reiniciar para actualizar la disponibilidad de ventanas de forma libre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Debes reiniciar para habilitar las ventanas de forma libre en pantallas secundarias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar ahora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar más tarde"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espacial"</string>
@@ -5137,7 +5208,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Inhabilitar restricciones de procesos secundarios"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Inhabilita las restricciones del uso de recursos del sistema de los procesos secundarios de la aplicación"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Forzar habilitación del rol Notas"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Habilita las integraciones del sistema para toma de notas por medio del rol de notas. Si el rol de notas ya está habilitado, no hace nada. Requiere reiniciar el dispositivo."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Habilita las integraciones del sistema para toma de notas por medio del rol Notas. Si el rol Notas ya está habilitado, no hace nada. Requiere reiniciar el dispositivo."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Emisión"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Emitir <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Escucha emisiones que estén cerca de ti"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Hecho"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Guardar"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancelar"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Predeterminado"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Activado"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desactivado"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Activado"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio: %1$d%% izquierdo, %2$d%% derecho"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio: %1$d%% derecho, %2$d%% izquierdo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Las aplicaciones que hayas instalado pueden ver el nombre de tu dispositivo. También es posible que lo vean otros usuarios si lo conectas con dispositivos Bluetooth, si te conectas a una red Wi-Fi o si configuras un punto de acceso Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Género gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecciona el género gramatical"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escuchar emisión"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escanea el código QR de una emisión de audio para escucharlo con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"No se puede modificar la contraseña durante el uso compartido. Para cambiarla, primero desactiva la función compartir audio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escáner de códigos QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Configuración de búsqueda"</string>
 </resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index bc5b93e..3f68974 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Uneaeg"</item>
-    <item msgid="4152450357280759894">"Sõitmine"</item>
-    <item msgid="7096549258219399423">"Kaasahaarav"</item>
-    <item msgid="2760716776980432977">"Hallatud"</item>
-    <item msgid="601734478369121764">"Tärn"</item>
-    <item msgid="6243809315432780521">"Kalender"</item>
-    <item msgid="4913577903148415331">"Kellaaeg"</item>
-    <item msgid="3653377604690057780">"Kinosaal"</item>
-    <item msgid="3843711267408385410">"Lill"</item>
+    <item msgid="2750940760340557109">"Poolkuu"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Inimese mõistus"</item>
+    <item msgid="6734164279667121348">"Kalender"</item>
+    <item msgid="4139559120353528558">"Kell"</item>
+    <item msgid="5157711296814769020">"Päikesevari"</item>
+    <item msgid="6635328761318954115">"Telk"</item>
+    <item msgid="1711994778883392255">"Filmilint"</item>
+    <item msgid="9097658401859604879">"Mängupult"</item>
+    <item msgid="755931364157422565">"Jõusaali hantel"</item>
+    <item msgid="8894207806795738429">"Palli viskav inimene"</item>
+    <item msgid="2274801572149555103">"Jalahoopi andev inimene"</item>
+    <item msgid="8795037201506843325">"Ujumine"</item>
+    <item msgid="3558421426169430451">"Matkav inimene"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Õpitoa tööriistad"</item>
+    <item msgid="4595330511709890409">"Kohver"</item>
+    <item msgid="8352738347856724389">"Tärn"</item>
+    <item msgid="7082783098151998721">"Lootoseõis"</item>
+    <item msgid="5772220259409264724">"Ülevaataja"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 846fe0d..67400c9 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Peatatud"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Teadmata"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Eelvaade"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-kood"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Vähendamine"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Suurendamine"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alati"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Kuuldeseade seaded"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Otsetee, ühilduvus kuuldeaparaatidega"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Eelseadistus"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Teie audioloog ei ole ühtegi eelseadistust programmeerinud"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Eelseadistust ei saanud värskendada"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Heliväljund"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Teave heliväljundi kohta"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Selle rakenduse jaoks pole seadetes keele valimine saadaval."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Keel võib rakenduses saadaolevatest keeltest erineda. Mõni rakendus ei pruugi seda seadet toetada."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Määrake iga rakenduse jaoks keel."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Teie süsteem, rakendused ja veebisaidid kasutavad teie eelistatud keelte hulgast esimest toetatud keelt."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Teie seade, rakendused ja veebisaidid kasutavad esimest toetatud keelt teie eelistatud keelte loendist.\n\nSamuti kasutavad paljud rakendused teie eelistatud keelega seotud piirkonnas kehtivaid vormindusreegleid kuupäevade, numbrite ja ühikute puhul. Piirkonna muutmiseks lisage keel ja seejärel valige eelistatud piirkond."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Iga rakenduse puhul keele valimiseks avage rakenduse keeleseaded."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Lisateave rakenduse keelte kohta"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Kas valida süsteemi keeleks %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Väljas"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Sees / # rakendusel on asukohale juurdepääs}other{Sees / # rakendusel on asukohale juurdepääs}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laadimine …"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Rakendused, millel on luba läheduses olevatele seadmetele juurde pääseda, saavad määrata ühendatud seadmete suhtelise asukoha."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Rakendused, millel on luba läheduses olevatele seadmetele juurde pääseda, saavad määrata ühendatud seadmete suhtelise asukoha."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Juurdepääs asukohale on rakenduste ja teenuste jaoks välja lülitatud. Teie seadme asukoht võidakse siiski päästeteenistusele saata, kui helistate või saadate sõnumi hädaabinumbrile."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lisateave asukohaseadete kohta"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Muutmiseks avage ChromeOS-i seaded &gt; Privaatsus ja turvalisus &gt; Privaatsuse seaded &gt; Juurdepääs asukohale"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Nägu ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Nägu, sõrmejälg ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Nägu, sõrmejäljed ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Kaugautentija avamine"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Kell on lisatud"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kella seadistamine"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lisateave kellaga avamise kohta"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lisa kell"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kella eemaldamine"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sõrmejälje ja näoga avamine"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Näo ja sõrmejäljega avamine"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Näo ja sõrmejäljega avamine töö jaoks"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Seadistamine on vajalik"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Nägu ja sõrmejäljed on lisatud"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Privaatse ruumi seadistamine …"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Privaatset ruumi ei saanud seadistada"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Proovi uuesti"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Välju"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privaatne ruum pole saadaval.\nVaadake võimalikke põhjuseid"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Vaadake võimalikke põhjuseid"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Kas valida privaatse ruumi jaoks uus lukk?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Saate seadistada uue luku vaid privaatse ruumi jaoks või kasutada sama lukku, mida kasutate seadme avamiseks"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Kasuta ekraanilukku"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Kas taaskäivitada seade?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Üksikasjalik NFC logimine on mõeldud ainult arenduseks. Veaaruannetesse kaasatakse täiendavad NFC andmed, mis võivad sisaldada privaatset teavet. Selle seade muutmiseks taaskäivitage oma seade."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Taaskäivita"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Sees"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Väljas"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Väline ekraan"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Välise ekraani kasutamine"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ekraani eraldusvõime"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Ühendatud on väline ekraan"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Pööramine"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Tavaline"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Pööramise või eraldusvõime muutmine võib peatada mis tahes rakendused, mis praegu töötavad"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Teie ekraanikuva peegeldamiseks peab teie seade olema ühendatud välise ekraaniga"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Rohkem valikuid"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Ülekandmine"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"peegeldamine"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Luba juhtmeta ekraaniühendus"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Kohanduvad"</string>
     <string name="brightness" msgid="6216871641021779698">"Ereduse tase"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Kohanduv eredus"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Kohanduva ereduse teave"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Teie ekraanikuva eredust kohandatakse automaatselt teie keskkonna ja tegevuste järgi. Võite liugurit käsitsi liigutada, et aidata kohanduval eredusel teie eelistusi õppida."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Sees"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Väljas"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Valikud"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Juurdepääsetavus"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Füüsiline klaviatuur"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Kasuta ekraaniklaviatuuri"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Hoia seda ekraanil, kui füüsiline klaviatuur on aktiivne"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ühekordse puudutusega klahvid"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Klaviatuur eirab <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms jooksul tehtud sama klahvi korduvaid vajutusi"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Aeglased klahvid"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Määrab klahvivajutuse aktiveerumiseks kuluva aja väärtusele <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Kasutage hiire juhtimiseks füüsilist klaviatuuri."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Kursori sisu muutmine kollaseks"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Kursori sisu muutmine roosaks"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Kursori sisu muutmine siniseks"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Hiirekursori kriipsu stiil"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Valge"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Must"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Puudub"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Õppige puuteplaadi liigutusi"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"puuteplaat, hiir, kursor, kerimine, pühkimine, sõrmega tõmbamine, paremklõps, klõpsamine"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"paremklõps, puudutamine"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Kasutaja valitud: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Kõne"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Kursori kiirus"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Kursori suurus"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Vähenda kursorit"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Suurenda kursorit"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Mängukontroller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Vibreerimise ümbersuunamine"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Saadab vibreerimise mängukontrollerisse, kui see on ühendatud"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Jätka ikkagi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Tühista"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Suurendamisseaded"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Ühe sõrmega paanimine"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Luubi liigutamine ühe sõrmega"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Kuval liikumiseks lohistage sõrme."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Suurendusala teisaldamiseks lohistage ühe sõrmega."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Suurendusala teisaldamiseks lohistage kahe sõrmega."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Pole saadaval, kui suurendatakse ainult osa ekraanist"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Suumimiseks puudutage nuppu"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Suumige ekraanil kiiresti sisse, et sisu suuremalt kuvada"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Sissesuumimiseks toimige järgmiselt.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kasutage suurendamise alustamiseks otseteed.&lt;br/&gt; {1,number,integer}. Puudutage ekraani.&lt;br/&gt; {2,number,integer}. Ekraanikuval liikumiseks lohistage kahe sõrmega.&lt;br/&gt; {3,number,integer}. Suumi kohandamiseks liigutage ekraanil kaht sõrme kokku-lahku.&lt;br/&gt; {4,number,integer}. Kasutage suurendamise lõpetamiseks otseteed.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Ajutiseks sissesuumimiseks toimige järgmiselt.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Veenduge, et suurendamise tüübiks oleks valitud täisekraan.&lt;br/&gt; {1,number,integer}. Kasutage suurendamise alustamiseks otseteed.&lt;br/&gt; {2,number,integer}. Hoidke sõrme kus tahes ekraanikuval.&lt;br/&gt; {3,number,integer}. Lohistage ekraanikuval liikumiseks sõrme.&lt;br/&gt; {4,number,integer}. Suurendamise lõpetamiseks tõstke sõrm ekraanikuvalt."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Sissesuumimiseks toimige järgmiselt.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kasutage suurendamise alustamiseks otseteed.&lt;br/&gt; {1,number,integer}. Puudutage ekraani.&lt;br/&gt; {2,number,integer}. Ekraanikuval liikumiseks lohistage kahe sõrmega.&lt;br/&gt; {3,number,integer}. Suumi kohandamiseks liigutage ekraanil kaht sõrme kokku-lahku.&lt;br/&gt; {4,number,integer}. Kasutage suurenduse peatamiseks otseteed&lt;br/&gt;&lt;br/&gt; Saate ka ajutiselt sisse suumida ja muud teha."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Sissesuumimiseks toimige järgmiselt.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kasutage suurendamise alustamiseks otseteed.&lt;br/&gt; {1,number,integer}. Puudutage ekraani.&lt;br/&gt; {2,number,integer}. Ekraanikuval liikumiseks lohistage ühe või kahe sõrmega.&lt;br/&gt; {3,number,integer}. Suumi kohandamiseks liigutage ekraanil kaht sõrme kokku-lahku.&lt;br/&gt; {4,number,integer}. Kasutage suurenduse peatamiseks otseteed&lt;br/&gt;&lt;br/&gt; Saate ka ajutiselt sisse suumida ja muud teha."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kui suurendusfunktsioon on sisse lülitatud, saate oma ekraanikuval sisse suumida.\n\n"<b>"Suumimiseks"</b>" käivitage suurendusfunktsioon ja puudutage siis ekraanikuval mis tahes kohta.\n"<ul><li>"Kerimiseks lohistage kahe või enama sõrmega."</li>\n<li>"Suumi kohandamiseks pigistage kahte või enamat sõrme kokku."</li></ul>\n\n<b>"Ajutiseks suumimiseks"</b>" käivitage suurendusfunktsioon ja puudutage siis ekraanikuval pikalt mis tahes kohta.\n"<ul><li>"Ekraanikuval teisaldamiseks lohistage sõrme."</li>\n<li>"Väljasuumimiseks tõstke sõrm ekraanilt."</li></ul>\n\n"Klaviatuuril ega navigeerimisribal ei saa sisse suumida."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. leht <xliff:g id="NUM_PAGES">%2$d</xliff:g>-st"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Juurdepääsetavuse nupu otsetee"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Pühkige kahe sõrmega ekraanikuva allosast üles.\n\nFunktsioonide vahel vahetamiseks pühkige kahe sõrmega üles ja hoidke."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pühkige kolme sõrmega ekraanikuva allosast üles.\n\nFunktsioonide vahel vahetamiseks pühkige kolme sõrmega üles ja hoidke."</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>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Rohkem valikuid"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Lisateave: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Ekraani kahe sõrmega topeltpuudutamine"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Puudutage ekraani kiiresti %1$d korda. See võib teie seadme tööd aeglustada."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d sõrmega topeltpuudutus"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Puudutage kahe sõrmega kiiresti {0,number,integer} korda ekraani"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekraani kolmikpuudutamine"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kolmikpuudutus"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Puudutage ekraani kiiresti {0,number,integer} korda. See otsetee võib teie seadme tööd aeglustada."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Täpsemad"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Juurdepääsetavuse nupu jaoks on valitud seade <xliff:g id="SERVICE">%1$s</xliff:g>. Suurenduse kasutamiseks puudutage ja hoidke juurdepääsetavuse nuppu ning seejärel valige suurendus."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"See juurdepääsetavuse liigutus on määratud teenusele <xliff:g id="SERVICE">%1$s</xliff:g>. Suurenduse kasutamiseks pühkige kahe sõrmega ekraanikuva allosast üles ja hoidke sõrmi ekraanil. Seejärel tehke valik Suurendus."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Selle teenuse töös esineb häireid."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Juurdepääsetavuse otseteed"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Kuva kiirseadetes"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Punane-roheline"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Punane-roheline"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Punane-roheline, rohelise vähenenud tajumine"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Punane-roheline, punase vähenenud tajumine"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Sinine-kollane"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Halltoonid"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiivsus"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Rohelise vähenenud tajumine, deuteranomaalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Punase vähenenud tajumine, protanomaalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Pole saadaval halltoonide reziimis ega siis, kui värvide korrigeerimine on keelatud"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomaalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Eriti tume"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Ekraanikuva eriti tumedaks muutmine"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Tsüaan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Kollane"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Fuksia"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Kas anda teenusele <xliff:g id="SERVICE">%1$s</xliff:g> teie seadme üle täielik kontroll?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> teeb järgmist:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Seaded ei saa teie vastust kinnitada, sest rakendus varjab loataotlust."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> taotleb seadme täielikku haldusõigust. Teenus saab juurdepääsufunktsioone vajavate kasutajate nimel ekraani lugeda ja tegutseda. See haldusõiguse tase ei ole enamiku rakenduste puhul sobilik."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Täielik kontroll sobib rakendustele, mis pakuvad juurdepääsufunktsioone. Enamiku rakenduste puhul seda ei soovitata."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekraanikuva vaatamine ja haldamine"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"See saab lugeda kogu ekraanil kuvatud sisu ja kuvada sisu rakenduste peal."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Toimingute vaatamine ja tegemine"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"See saab jälgida teie suhtlust rakenduse või riistvaraanduriga ja teie eest rakendustega suhelda."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Luba"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Keela"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Lülita välja"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Puudub}=1{1 ajakava on määratud}other{# ajakava on määratud}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Mitte segada"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioriteetsed režiimid"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Lisa režiim"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimeerige segajad ning juhtige oma tähelepanu une-, töö-, sõidu- ja kõigi teiste režiimide abil."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Omaenda režiimi loomine"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Ainult oluliste inimeste ja rakendustega seotud märguanded"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Ajakava määramine"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Režiimipõhine ajakava"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Kuupäev ja kellaaeg"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„9.00–17.00 tööpäevadel”"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalendrisündmused"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} on aktiivne}=2{{mode_1} ja {mode_2} on aktiivsed}=3{{mode_1}, {mode_2} ja {mode_3} on aktiivsed}other{{mode_1}, {mode_2} ja veel # režiimi on aktiivsed}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 režiim võib automaatselt sisse lülituda}other{# režiimi võivad automaatselt sisse lülituda}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"SEES"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Määramata"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Keelatud"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Mudeli loomine"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Kohandatud"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Lülita kohe sisse"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Lülita välja"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Režiimi ei leitud"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Katkestuste piiramine"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokeerige häirivad tegurid"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Režiimi <xliff:g id="MODE">%1$s</xliff:g> seadistamine"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Valiku Mitte segada sisselülitamine"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmid ja meediahelid saavad katkestada"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ajakavad"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ajakavade kustutamine"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Kustuta"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Nimeta ümber"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Kustuta"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Kas kustutada režiim „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Muuda"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ajakavad"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Ajakava"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automaatselt sisselülitamine"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Lisage kalender"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Kasutage oma kalendrit"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Ajastamine"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ajakava määramine"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Automaatselt sisselülitamine"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Sündmuse ajakava"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Lülitage sündmuste ajal sisse"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kui kutse vastus on"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Ajapõhine kava"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ajakava"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ajastamine"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Helimärguandega katkestuste lubamine"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Visuaalsete häirimiste blok."</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Luba visuaalsed signaalid"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Teieni jõudvad märguanded"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Lisatoimingud"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Märguandefiltrid"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Rohkem seadeid"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Väljas}=1{Väljas / 1 režiimi saab automaatselt sisse lülitada}other{Väljas / # režiimi saab automaatselt sisse lülitada}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Kuvaseaded"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Kuvavalikud"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Halltoonid"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"tumeda teema lubamine"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Lülitage OS ja rakendused heleda teksti ja tumeda tausta eelistusele, mis võib hõlbustada teksti lugemist ning säästab teatud seadmetes oluliselt akut"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Ekraanikuva muudatusi pole}=1{{effect_1}}=2{{effect_1} ja {effect_2}}=3{{effect_1}, {effect_2} ja {effect_3}}other{{effect_1}, {effect_2} ja veel #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Piira teavituste hulka"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Katkestusi ei filtreerita"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Filtreeritud märguannete kuvavalikud"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kui funktsioon Mitte segada on sisse lülitatud"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Hääletud märguanded"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"ava märguanne"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Luba märguandeid edasi lükata"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Märguandetäpp rakenduse ikoonil"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Märguandekogumid"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Mullid"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Mullid"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Kuva see vestlus mullis"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"See rakendus ei toeta täiustatud seadeid"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Rohkem seadeid"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Selle rakenduse sees on saadaval rohkem seadeid"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Kohanduvad märguanded"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Kohanduvate märguannete kasutamine"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kui saate lühikese aja jooksul palju märguandeid, vähendab teie telefon helitugevust ja minimeerib ekraanil kuvatavad hüpikaknad kuni kaheks minutiks. Kõnede, alarmide ja prioriteetsete vestluste korral seade endiselt vibreerib, esitab heli või kuvab ekraanil märguande ja kõik märguanded on hõlpsasti leitavad, kui tõmbate ekraani ülaosast alla."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Märguannete summutamine"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Märguannete summutamise kasutamine"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kui saate lühikese aja jooksul palju märguandeid, vähendab teie seade helitugevust ja minimeerib hoiatused kuni kaheks minutiks. See ei mõjuta kõnesid, alarme ega prioriteetseid vestlusi. \n\nSummutamise ajal saadud märguanded leiate, kui ekraani ülaosast alla tõmbate."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Tööprofiilidele rakendamine"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Rakendage tööprofiili rakendustele"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-abilise teenused"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategooriad"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Muu"</string>
     <string name="no_channels" msgid="4716199078612071915">"See rakendus pole postitanud ühtegi märguannet"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Kuva kasutamata kategooriad"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Lisaseaded rakenduses"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Kuva kasutamata kategooriad"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Peida kasutamata kategooriad"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Vestlused"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Kõik vestlused"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"kõik vestlused"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioriteetsed vestlused"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioriteetsed vestlused"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Mitte ükski"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Rakendused, mis saavad katkestada"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valitud rakendused"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Puudub"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Kõik"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Mitte ükski rakendus ei saa katkestada}=1{{app_1} saab katkestada}=2{{app_1} ja {app_2} saavad katkestada}=3{{app_1}, {app_2} ja {app_3} saavad katkestada}other{{app_1}, {app_2} ja veel # saavad katkestada}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (töö)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Arvutamine …"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Luba rakendustel alistada"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Rakendused, mis saavad katkestada"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Valige rohkem rakendusi"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Mitte miski ei saa katkestada"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Mitte keegi ei saa katkestada"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Mõned inimesed saavad katkestada"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Korduvad helistajad saavad katkestada"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Kõik inimesed saavad katkestada"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Korduvad helistajad"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Luba korduvad helistajad"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Muudetakse valikule Ainult äratused 1 tunniks kuni {time}}other{Muudetakse valikule Ainult äratused # tunniks kuni {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Muudetakse valikule Ainult alarmid kuni kella <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Muudetakse valikule Katkesta alati"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Nimeta ümber"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Muuda ikooni"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Muuda ikooni"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Muutmisrežiim"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Režiimi loomine"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Kohandatud režiim"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Režiimi nimi"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendrisündmused"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Uneaja rutiin"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Sõitmise ajal"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Rakenduse seaded"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Teave ja seaded rakenduses <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Haldab <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Kas keelata režiim <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"See režiim ei lülitu kunagi sisse, kui see on keelatud"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Keela"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Kas lubada režiim <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"See režiim võib oma seadete alusel automaatselt sisse lülituda"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Luba"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Seadistage režiim, mis järgib tavapärast ajakava"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Määrake kalendrisündmustega sünkroonimise ja kutsetele vastamise režiim"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Looge rahustav unerutiin. Seadistage alarmid, hämardage ekraan ja blokeerige märguanded."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Sõitke keskendunult ja segamatult, et tagada teel ohutus"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokeerige seadme segavad märguanded, et tagada hea keskendumine"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eemaldage kõik segajad, et tagada vaikne keskkond"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Isikupärastage seadme kasutuskogemust ja seadeid eri kasutajate jaoks"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Vähendage katkestusi, lubades ainult olulistel inimestel ja rakendustel teiega ühendust võtta"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Hoiatus"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Sule"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Seadme kohta tagasiside saatmine"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Ümbris"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Aku"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Seadete paneel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Jõusta töölauarežiim"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Katselise töölauarežiimi jõustamine teisestel ekraanidel"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Luba vabas vormis aknad"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Luba vabas vormis aknad teisesel ekraanil"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Luba fikseeritud suurus mitmes aknas"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Lubab fikseeritud suurusega rakenduste kuvamise mitmes aknas"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Alista funktsioon Sunnitud tume"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiilne andmeside"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Seadme kasutuskogemuse parandamiseks võivad rakendused ja teenused siiski alati otsida WiFi-võrke isegi siis, kui WiFi on väljas. Seda saab kasutada näiteks asukohapõhiste funktsioonide ja teenuste täiustamiseks. Seda saab muuta WiFi-skannimise seadetes."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Muutmine"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Ühendatud"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ajutiselt ühendatud"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Ajutiselt kasutatakse operaatorit <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Rakenduse kinnitamise kasutamine"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Kasuta arendaja valikuid"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Printimisteenuse kasutamine"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Luba mitu kasutajat"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Kasutaja lubamise lüliti"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"luba, lubamine, mitu, kasutaja, kasutajat"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"mitu, kasutajad, profiilid, inimesed, kontod, vahetamine, palju"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Juhtmevaba silumise kasutamine"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Valige, mida oma ekraanikuval näete, kui teie tahvelarvuti on dokitud. Kui kasutate ekraanisäästjat, võib teie seade rohkem energiat tarbida."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Kohanda"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Kohanda ekraanisäästjat <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Vabas vormis toe jaoks on vaja taaskäivitada."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Töölauarežiimi teisestele ekraanidele sundimiseks on vaja taaskäivitada."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Vabas vormis akende toe jaoks on vaja taaskäivitada."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Vabas vormis akende saadavuse värskendamiseks on vaja taaskäivitada."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Vabas vormis akende lubamiseks teisestel ekraanidel on vaja taaskäivitada."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Taaskäivita kohe"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Taaskäivita hiljem"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Ruumiline heli"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Roos"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Lilla"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Valmis"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Salvesta"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Tühista"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Vaikeseade"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Keskmine"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Sees"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Väljas"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Sees"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Heli: %1$d%% vasak, %2$d%% parem"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Heli: %1$d%% parem, %2$d%% vasak"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Teie seadme nimi on teie installitud rakendustele nähtav. Bluetooth-seadmetega või WiFi-võrguga ühenduse loomisel või WiFi-kuumkoha seadistamisel võivad seda näha ka teised inimesed."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatiline sugu"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Grammatilise soo valimine"</string>
@@ -5255,7 +5328,7 @@
     <string name="calls_and_alarms_device_title" msgid="6993559028175454198">"Kõned ja äratused"</string>
     <string name="audio_sharing_description" msgid="1660255584523640628">"Andke inimestele võimalus kuulata meediasisu koos teiega. Kuulajatel on vaja enda LE Audio kõrvaklappe."</string>
     <string name="audio_sharing_device_group_title" msgid="3019780581643956943">"Aktiivsed meediaseadmed"</string>
-    <string name="audio_sharing_call_audio_title" msgid="7978867452289583929">"Kõne heliväljund"</string>
+    <string name="audio_sharing_call_audio_title" msgid="7978867452289583929">"Telefonikõne heliväljund"</string>
     <string name="audio_sharing_call_audio_description" msgid="6573621048260616924">"Esitatakse ainult seadmes <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_sharing_test_sound_title" msgid="6438868185641027763">"Testheli esitamine"</string>
     <string name="audio_sharing_test_sound_description" msgid="4072462502371937399">"Kõik kuulajad peaksid seda kuulma"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Kuula voogu"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kuulamiseks skannige helivoo QR-kood"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Parooli ei saa jagamise ajal muuta. Parooli muutmiseks lülitage esmalt heli jagamine välja."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-koodi skanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Otsinguseaded"</string>
 </resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 27bbf74..3662a94 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Lo egiteko garaia"</item>
-    <item msgid="4152450357280759894">"Gidatzea"</item>
-    <item msgid="7096549258219399423">"Murgiltzailea"</item>
-    <item msgid="2760716776980432977">"Kudeatua"</item>
-    <item msgid="601734478369121764">"Izarra"</item>
-    <item msgid="6243809315432780521">"Egutegia"</item>
-    <item msgid="4913577903148415331">"Ordua"</item>
-    <item msgid="3653377604690057780">"Antzerkia"</item>
-    <item msgid="3843711267408385410">"Lorea"</item>
+    <item msgid="2750940760340557109">"Ilargierdia"</item>
+    <item msgid="8513969636586738035">"Autoa"</item>
+    <item msgid="957392343846370509">"Pertsona baten burua"</item>
+    <item msgid="6734164279667121348">"Egutegia"</item>
+    <item msgid="4139559120353528558">"Erlojua"</item>
+    <item msgid="5157711296814769020">"Itzalkina"</item>
+    <item msgid="6635328761318954115">"Kanpin-denda"</item>
+    <item msgid="1711994778883392255">"Film-bobina"</item>
+    <item msgid="9097658401859604879">"Joko-kontrolagailua"</item>
+    <item msgid="755931364157422565">"Gimnasioko pisua"</item>
+    <item msgid="8894207806795738429">"Pertsona bat baloi bat botatzen"</item>
+    <item msgid="2274801572149555103">"Pertsona bat ostiko egiten"</item>
+    <item msgid="8795037201506843325">"Igeriketa"</item>
+    <item msgid="3558421426169430451">"Pertsona bat mendian"</item>
+    <item msgid="7455070421232184932">"Golfa"</item>
+    <item msgid="5841773092449126508">"Lantegiko tresnak"</item>
+    <item msgid="4595330511709890409">"Paper-zorroa"</item>
+    <item msgid="8352738347856724389">"Izarra"</item>
+    <item msgid="7082783098151998721">"Loto-lorea"</item>
+    <item msgid="5772220259409264724">"Gainbegiralea"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 0fffcbe..38edaa1 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Etenda"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Ezezaguna"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Aurrebista"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kodea"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Txikitu"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Handitu"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Beti"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Entzumen-gailuen ezarpenak"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Lasterbidea eta audifonoekiko bateragarritasuna"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Aurrezarpena"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Zure audiologoak ez du aurrezarpenik programatu"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Ezin izan da eguneratu aurrezarpena"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio-irteera"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Audio-irteerari buruz"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Aplikazioaren hizkuntza hautatzeko aukera ez dago erabilgarri ezarpenetan."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Baliteke hizkuntza ez egotea aplikazioan erabilgarri, eta aplikazio batzuk ezarpenarekin bateragarriak ez izatea."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Ezarri aplikazio bakoitzaren hizkuntza."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistemak, aplikazioek eta webguneek hizkuntza hobetsien zerrendako lehen hizkuntza bateragarria erabiltzen dute."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Gailuak, aplikazioak eta webguneek hizkuntza hobetsien zerrendako lehen hizkuntza erabiltzen dute.\n\nAplikazio askok hizkuntza hobetsiaren lurraldea ere erabiliko dute daten, zenbakien eta unitateen formatua erakusteko. Lurraldea aldatzeko, gehitu hizkuntza bat eta aukeratu lurralde hobetsia."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Aplikazio bakoitzerako hizkuntza bat hautatzeko, joan aplikazioen hizkuntzen ezarpenetara."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Lortu aplikazioen hizkuntzei buruzko informazio gehiago"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sistemaren hizkuntza aldatu nahi duzu, eta %s ezarri?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desaktibatuta"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktibatuta / # aplikaziok kokapena erabiltzeko baimena du}other{Aktibatuta / # aplikaziok kokapena erabiltzeko baimena dute}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Kargatzen…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikazioek inguruko gailuak erabiltzeko baimena badute, konektatutako gailuen posizio erlatiboa zehatz dezakete."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikazioek inguruko gailuak erabiltzeko baimena badute, konektatutako gailuen posizio erlatiboa zehatz dezakete."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Aplikazioek eta zerbitzuek ez dute kokapena atzitzeko baimenik. Hala ere, larrialdietarako zenbaki batera deitzen edo mezu bat bidaltzen baduzu, baliteke larrialdi-zerbitzuei gailuaren kokapena bidaltzea."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lortu kokapen-ezarpenei buruzko informazio gehiago"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Aldatzeko, joan ChromeOS-en ezarpenak &gt; Pribatutasuna eta segurtasuna &gt; Pribatutasun-ezarpenak &gt; Kokapena erabiltzeko baimena atalera"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gehitu dira aurpegia eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
     <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>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator-en desblokeoa"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Gehitu da erlojua"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfiguratu erlojua"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lortu Erloju bidez desblokeatzea eginbideari buruzko informazio gehiago"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Gehitu erloju bat"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kendu erlojua"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Hatz-marka eta aurpegi bidez desblokeatzea"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Aurpegi eta hatz-marka bidez desblokeatzea"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Laneko profila aurpegi eta hatz-marka bidez desblokeatzea"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfiguratu gabe"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Aurpegia eta hatz-markak gehitu dira"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Eremu pribatua konfiguratzen…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Ezin izan da konfiguratu eremu pribatu bat"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Saiatu berriro"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Irten"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Eremu pribatua ez dago erabilgarri.\nIkusi arrazoi posibleak"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Ikusi arrazoi posibleak"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Eremu pribatua blokeatzeko modua aldatu nahi duzu?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Beste blokeo bat ezar dezakezu, eremu pribaturako soilik balioko duena, edo gailua desblokeatzeko erabiltzen duzun metodo bera erabili"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Erabili pantailaren blokeoa"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Gailua berrabiarazi nahi duzu?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFCaren erregistro xehatuak garapen-helburuetarako soilik dira. NFCari buruzko datu gehigarriak daude akatsen txostenetan, eta baliteke haiek informazio pribatua izatea. Ezarpen hori aldatzeko, berrabiarazi gailua."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Berrabiarazi"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Aktibatuta"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desaktibatuta"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Kanpoko pantaila"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Erabili kanpoko pantaila"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Pantailaren bereizmena"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Kanpoko pantaila deskonektatuta dago"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Biratzea"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Arrunta"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Biratzea edo bereizmena aldatuz gero, baliteke abian den aplikazioren bat gelditzea"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Gailuak kanpoko pantaila batera konektatuta egon behar du zure pantaila islatu ahal izateko"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Aukera gehiago"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Igorpena"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"islatzea"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Gaitu hari gabeko bistaratzea"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Egokituak"</string>
     <string name="brightness" msgid="6216871641021779698">"Distira"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Distira egokitua"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Distira egokituari buruz"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Pantailaren distira automatikoki egokituko da inguruneko argiaren eta egiten ari zarenaren arabera. Eskuz aldatu nahi baduzu distira, mugitu graduatzailea distira egokituak zure hobespenak ikas ditzan."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Aktibatuta"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desaktibatuta"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Aukerak"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Erabilerraztasuna"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teklatu fisikoa"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Erabili pantailako teklatua"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Erakutsi pantailan teklatu fisikoa aktibo dagoen bitartean"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Errebote-teklak"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Teklatuak ez ikusi egiten dio tekla bera <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms igaro baino lehen behin eta berriro sakatzen bada"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tekla motelak"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Tekla-sakatze bat aktibatzeko denbora doitzen du, <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms-tara"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Erabili teklatu fisikoa sagua kontrolatzeko"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Aldatu erakusle-betetzearen estiloa horira"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Aldatu erakusle-betetzearen estiloa arrosara"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Aldatu erakusle-betetzearen estiloa urdinera"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Erakuslearen trazuaren estiloa"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Zuria"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Beltza"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Bat ere ez"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Lortu ukipen-panelean erabiltzeko keinuei buruzko informazioa"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ukipen-panela, ukipena, panela, sagua, kurtsorea, gora egin, behera egin, hatza pasatu, eskuineko botoiarekin klik egin, klik, klikatu, erakuslea"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"eskuineko botoiarekin klik egin, sakatu"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Erabiltzaileak hautatua: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Hizketa"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Erakuslearen abiadura"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Erakuslearen eskala"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Txikitu erakuslearen eskala"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Handitu erakuslearen eskala"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Bideo-jokoen kontrolagailua"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Birbideratu dardara"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Bidali dardara bideo-jokoen kontrolagailura hura konektatzean"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Egin aurrera, halere"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Utzi"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Luparen ezarpenak"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Hatz batekin mugitzea"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mugitu lupa hatz batekin"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastatu hatz 1 pantailatik mugitzeko."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mugitu luparen eremua hatz bat arrastatuta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mugitu luparen eremua bi hatz arrastatuta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ez dago erabilgarri pantailaren zati bat soilik handitzean"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zooma aplikatzeko, sakatu botoi bat"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Handitu pantaila bizkor edukia hobeto ikusteko"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Pantaila handitzeko:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Erabili lupa aktibatzeko lasterbidea.&lt;br/&gt; {1,number,integer}. Sakatu pantaila.&lt;br/&gt; {2,number,integer}. Arrastatu bi hatz pantailan zehar mugitzeko.&lt;br/&gt; {3,number,integer}. Atximurkatu pantaila bi hatz erabilita zooma doitzeko.&lt;br/&gt; {4,number,integer}. Erabili lupa desaktibatzeko lasterbidea.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Pantaila une batez handitzeko:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ziurtatu lupa mota pantaila oso gisa ezarrita dagoela.&lt;br/&gt; {1,number,integer}. Erabili lupa aktibatzeko lasterbidea.&lt;br/&gt; {2,number,integer}. Eduki sakatuta pantailako edozein puntu.&lt;br/&gt; {3,number,integer}. Arrastatu hatz bat pantailan zehar mugitzeko.&lt;br/&gt; {4,number,integer}. Jaso hatza lupa desaktibatzeko."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Pantaila handitzeko:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Erabili lupa aktibatzeko lasterbidea.&lt;br/&gt; {1,number,integer}. Sakatu pantaila.&lt;br/&gt; {2,number,integer}. Arrastatu 2 hatz pantailan zehar mugitzeko.&lt;br/&gt; {3,number,integer}. Atximurkatu 2 hatz zooma doitzeko.&lt;br/&gt; {4,number,integer}. Erabili lasterbidea luparen eginbidea gelditzeko.&lt;br/&gt;&lt;br/&gt; Gainera, aldi baterako handi dezakezu, besteak beste."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Pantaila handitzeko:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Erabili lupa aktibatzeko lasterbidea.&lt;br/&gt; {1,number,integer}. Sakatu pantaila.&lt;br/&gt; {2,number,integer}. Arrastatu 1 edo 2 hatz pantailan barna mugitzeko.&lt;br/&gt; {3,number,integer}. Atximurkatu 2 hatz zooma doitzeko.&lt;br/&gt; {4,number,integer}. Erabili lasterbidea luparen eginbidea gelditzeko.&lt;br/&gt;&lt;br/&gt; Gainera, aldi baterako handi dezakezu, besteak beste."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Zooma aktibatuta badago, pantailan aplika dezakezu.\n\n"<b>"Handitzeko"</b>", ireki zooma eta sakatu pantailako edozein puntu.\n"<ul><li>"Arrastatu bi hatz edo gehiago gora eta behera egiteko."</li>\n<li>"Atximurkatu pantaila bi hatz edo gehiago erabilita zooma doitzeko."</li></ul>\n\n<b>"Zooma unetxo batez aplikatzeko"</b>", ireki zooma eta eduki sakatuta pantailako edozein puntu.\n"<ul><li>"Arrastatu hatza toki batetik bestera joateko."</li>\n<li>"Altxatu hatza txikitzeko."</li></ul>\n\n"Ezin da aplikatu zooma teklatuan edo nabigazio-barran."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g> orria"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Erabilerraztasuna botoiaren lasterbidea"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Sakatu botoi gainerakorra"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Erabilerraztasun-keinua"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Sakatu pantailaren behealdeko <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> Erabilerraztasuna botoia. Eginbide batetik bestera aldatzeko, eduki sakatuta Erabilerraztasuna botoia."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Pasatu bi hatz pantailaren behealdetik gora.\n\nEginbide batetik bestera aldatzeko, pasatu bi hatz gorantz eta eduki pantaila sakatuta."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pasatu hiru hatz pantailaren behealdetik gora.\n\nEginbide batetik bestera aldatzeko, pasatu hiru hatz gorantz eta eduki pantaila sakatuta."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Pasatu hatza pantailaren behealdetik gora. Eginbide batetik bestera aldatzeko, pasatu hatza gorantz eta eduki pantaila sakatuta.}other{Pasatu # hatz pantailaren behealdetik gora. Eginbide batetik bestera aldatzeko, pasatu # hatz gorantz eta eduki pantaila sakatuta.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Aukera gehiago"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Lortu informazio gehiago <xliff:g id="SERVICE">%1$s</xliff:g> funtzioari buruz"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Bolumen-botoiak"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"bolumen-botoiak"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Eduki sakatuta bolumen-botoiak"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Sakatu pantaila birritan 2 hatzekin"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d hatzekin birritan sakatzea"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Sakatu pantaila bizkor 2 aldiz %1$d hatzekin"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"3 aldiz sakatzea"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Sakatu pantaila bizkor %1$d aldiz. Baliteke gailua moteltzea."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d hatzekin birritan sakatzea"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Sakatu bizkor pantaila {0,number,integer} aldiz 2 hatzekin"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Sakatu pantaila hiru aldiz"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"3 aldiz sakatzea"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Sakatu pantaila bizkor {0,number,integer} aldiz. Baliteke lasterbide honek gailua moteltzea."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Aurreratuak"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Erabilerraztasuna botoia labur sakatuta \"<xliff:g id="SERVICE">%1$s</xliff:g>\" aukera aktibatzen da. Lupa aplikatzeko, eduki sakatuta Erabilerraztasuna botoia eta, ondoren, hautatu lupa."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"<xliff:g id="SERVICE">%1$s</xliff:g> erabiltzeko konfiguratu da erabilerraztasun-keinua. Lupa erabili nahi baduzu, pasatu bi hatz pantailaren behealdetik gora eta eduki sakatuta une batez. Ondoren, hautatu lupa."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Zerbitzu hau ez dabil behar bezala."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Erabilerraztasun-lasterbideak"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Erakutsi Ezarpen bizkorretan"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Gorri-berdea"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Gorri-berdea"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Gorri-berdea, berdea gaizki ikusten da"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Gorri-berdea, gorria gaizki ikusten da"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Urdin-horia"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grisen eskala"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intentsitatea"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Berdea gaizki ikusten da (deuteranomalia)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Gorria gaizki ikusten da (protanomalia)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ez dago erabilgarri grisen eskalaren moduan edo koloreen zuzenketa desgaituta dagoenean"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Daltonismoa"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanopia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Are ilunago"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Ilundu pantaila are gehiago"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Ziana"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Horia"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Gailua guztiz kontrolatzeko baimena eman nahi diozu <xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuari?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuak hauek egin behar ditu:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Aplikazio bat baimen-eskaera oztopatzen ari denez, ezarpenek ezin dute egiaztatu erantzuna."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuak gailu honen kontrol osoa izan nahi du. Zerbitzuak pantaila irakur dezake, eta erabilerraztasun-beharrak dituzten erabiltzaileen ordez jardun. Kontrol-maila hau ez da egokia aplikazio gehienetarako."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Erabilerraztasun-beharrak asetzen dituzten aplikazioetan da egokia kontrol osoa, baina ez aplikazio gehienetan."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ikusi eta kontrolatu pantaila"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pantailako eduki guztia irakur dezake, eta beste aplikazioen gainean edukia bistaratu."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ikusi eta gauzatu ekintzak"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Aplikazioekin edo hardware-sentsoreekin dituzun interakzioen jarraipena egin dezake, eta zure izenean beste aplikazio batzuekin interakzioan jardun."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Baimendu"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ukatu"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desaktibatu"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Bat ere ez}=1{1 programazio ezarri da}other{# programazio ezarri dira}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ez molestatzeko modua"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Lehentasunezko moduak"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Gehitu modu bat"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Murriztu distrakzioak eta kontrolatu zure arreta lo egiteko, lanerako, gidatzeko eta abarretarako moduekin."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Sortu zeure modua"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Jaso jende eta aplikazio garrantzitsuen jakinarazpenak soilik"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Ezarri programazio bat"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Honetan oinarritzen da programazioa:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Eguna eta ordua"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00-17:00, astegunetan\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Egutegiko gertaerak"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} aktibo dago}=2{{mode_1} eta {mode_2} aktibo daude}=3{{mode_1}, {mode_2} eta {mode_3} aktibo daude}other{{mode_1}, {mode_2} eta beste # aktibo daude}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modu aktiba daiteke automatikoki}other{# modu aktiba daitezke automatikoki}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AKTIBATUTA"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ezarri gabe"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Desgaituta"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Sortu modu bat"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Pertsonalizatua"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Aktibatu"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desaktibatu"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Ez da aurkitu modua"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Mugatu etenaldiak"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokeatu etenak eta distrakzioak"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Konfiguratu <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktibatu ez molestatzeko modua"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmek eta multimedia-soinuek eten dezakete"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programazioak"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ezabatu programazioak"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Ezabatu"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Aldatu izena"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Ezabatu"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" modua ezabatu nahi duzu?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editatu"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programazioak"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programazioa"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Aktibatu automatikoki"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Gehitu egutegi bat"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Erabili zure egutegia"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programazioa"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ezarri programazio bat"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Noiz aktibatu automatikoki"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Gertaeraren programazioa"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Aktibatu gertaera hauetan:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Erantzuna hau denean:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Denbora-programazioa"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programazioa"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h eta <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programazioa"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Baimendu soinua duten etenaldiak"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokeatu oztopo bisualak"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Baimendu seinale bisualak"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Hala eta guztiz ere jasoko dituzun jakinarazpenak"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Ekintza gehiago"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Jakinarazpenen iragazkiak"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Ezarpen gehiago"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desaktibatuta}=1{Desaktibatuta / 1 modu aktiba daiteke automatikoki}other{Desaktibatuta / # modu aktiba daitezke automatikoki}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Bistaratze-ezarpenak"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Bistaratze-aukerak"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Grisen eskala"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"gaitu gai iluna"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Aldatu sistema eragilearen eta aplikazioen ezarpenak atzeko plano ilun batean testu argia bistaratzea hobesteko. Hala, begiak ez dira horrenbeste behartzen eta bateria nabarmen aurrezten da gailu batzuetan."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Ez da aldaketarik egin pantailan}=1{{effect_1}}=2{{effect_1} eta {effect_2}}=3{{effect_1}, {effect_2} eta {effect_3}}other{{effect_1}, {effect_2} eta beste #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Mugatu zer zerbitzuk bidal ditzaketen jakinarazpenak"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Ez da etenik iragazten"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Iragazitako jakinarazpenen bistaratze-aukerak"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Ez molestatzeko modua aktibatuta dagoenean"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Ez egin soinurik jakinarazpenak jasotzean"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"jakinarazpena ireki"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Eman jakinarazpenak atzeratzeko baimena"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Jakinarazpen-biribiltxoa aplikazioaren ikonoan"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Jakinarazpen multzoak"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Burbuilak"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbuilak"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bistaratu elkarrizketa hau burbuila gisa"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aplikazio honek ez ditu onartzen ezarpen hobetuak"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Ezarpen gehiago"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Aplikazioaren barruan dituzu ezarpen gehiago"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Jakinarazpen egokituak"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Erabili jakinarazpen egokituak"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Epe labur batean jakinarazpen ugari jasotzen badituzu, telefonoak bolumena jaitsiko du eta pantailako leiho gainerakorrak murriztuko ditu 2 minutuz (gehienez). Deiak, alarmak eta lehentasunezko elkarrizketak beti bezala jakinaraziko zaizkizu (hau da, dagokien dardara edo soinua eginda, edo pantailan agertuta) eta jakinarazpen guztiak erraz aurkituko dituzu hatza pantailaren goialdetik behera pasatuta."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Jakinarazpenen bolumena jaisteko aldia"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Erabili jakinarazpenak arintzeko ezarpena"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Epe labur batean jakinarazpen ugari jasotzen badituzu, gailuak bolumena jaitsiko du eta alertak murriztuko ditu 2 minutuz (gehienez). Ezarpen horrek ez die eragiten deiei, alarmei eta lehentasunezko elkarrizketei. \n\nArintze-aldi horretan jasotako jakinarazpenak ikusteko, pasatu hatza pantailaren goialdetik behera."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplikatu laneko profiletan"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplikatu laneko profileko aplikazioetan"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Errealitate birtualeko laguntza-zerbitzuak"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategoriak"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Beste batzuk"</string>
     <string name="no_channels" msgid="4716199078612071915">"Aplikazio honek ez du argitaratu jakinarazpenik"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Erakutsi erabili gabeko kategoriak"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Aplikazioaren ezarpen gehiago"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Erakutsi erabili gabeko kategoriak"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ezkutatu erabili gabeko kategoriak"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Elkarrizketak"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Elkarrizketa guztiak"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"elkarrizketa guztiak"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Lehentasunezko elkarrizketak"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"lehentasunezko elkarrizketak"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Bat ere ez"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Eten dezaketen aplikazioak"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Hautatutako aplikazioak"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Bat ere ez"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Guztiak"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ez dago eten dezakeen aplikaziorik}=1{{app_1} aplikazioak eten dezake}=2{{app_1} eta {app_2} aplikazioek eten dezakete}=3{{app_1}, {app_2} eta {app_3} aplikazioek eten dezakete}other{{app_1}, {app_2} eta beste # aplikaziok eten dezakete}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (lana)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Kalkulatzen…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Eman \"Ez molestatu\" ez aplikatzeko baimena aplikazioei"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Eten zaitzaketen aplikazioak"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Hautatu aplikazio gehiago"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ez dago eten dezakeen ezer"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ez dago eten dezakeen pertsonarik"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Pertsona batzuek eten dezakete"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Deitzaile errepikariek eten dezakete"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Edonork eten dezake"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Berriro deitzen dutenak"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Baimendu berriro deitzen dutenen deiak"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Aldatu alarmak soilik modura ordubetez {time} arte}other{Aldatu alarmak soilik modura # orduz {time} arte}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Aldatu \"Alarmak soilik\" modura <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> arte"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Aldatu \"Eten beti\" modura"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Aldatu izena"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Aldatu ikonoa"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Aldatu ikonoa"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Editatu modua"</string>
+    <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_trigger_title_schedule_calendar" msgid="9206609438617550331">"Egutegiko gertaerak"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Lo egiteko garaiko ohitura"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Gidatu bitartean"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Aplikazioen ezarpenak"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioan dituzu informazioa eta ezarpenak"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Kudeatzailea: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> desgaitu nahi duzu?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Modu hau desgaituta badago, ez da inoiz aktibatuko"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desgaitu"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> gaitu nahi duzu?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Baliteke modu hau automatikoki aktibatzea ezarpenen arabera"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Gaitu"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Ezarri ordutegi erregular bat daukan modu bat"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Ezarri modu bat egutegiko gertaerekin eta gonbidapenen erantzunekin sinkronizatzeko"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Diseinatu lotarako ohitura lasaigarri bat. Ezarri alarmak, ilundu pantaila eta blokeatu jakinarazpenak."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Lehenetsi segurtasuna errepidean eta gidatu kontzentratuta, distrakziorik gabe"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokeatu gailuaren distrakzioak edo etenak, kontzentratuta egoteko"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Desagerrarazi distrakzio guztiak, ingurune isil bat lortzeko"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Pertsonalizatu gailuaren erabilera eta ezarpenak erabiltzaile desberdinentzat"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Eman zurekin harremanetan jartzeko baimena pertsona eta aplikazio garrantzitsuei soilik, etenak gutxitzeko"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Abisua"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Itxi"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Bidali gailu honi buruzko oharrak"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Kutxa"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Ezarpenen panela"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Behartu ordenagailuetarako modua erabiltzera"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Behartu ordenagailuetarako modu esperimentala erabiltzera bigarren mailako pantailetan"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Gaitu estilo libreko leihoak"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Gaitu estilo libreko leihoak bigarren mailako pantailan"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Gaitu tamaina aldagarria ez duten aplikazioak leiho bat baino gehiagoko moduan"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Tamaina aldagarria ez duten aplikazioak leiho bat baino gehiagoko moduan izateko aukera ematen du"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Ez aplikatu gai iluna"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"Datu-konexiorako"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Gailuaren funtzionamendua hobetzeko, aplikazioek eta zerbitzuek wifi-sareak bilatzen jarraituko dute, baita wifi-konexioa desaktibatuta dagoenean ere. Besteak beste, kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko balio du horrek. Aukera hori aldatzeko, joan wifi-sareak bilatzeko eginbidearen ezarpenetara."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Aldatu"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Konektatuta"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Aldi baterako konektatuta"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Aldi baterako <xliff:g id="SUBNAME">%1$s</xliff:g> erabiltzen"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Erabili aplikazioak ainguratzeko eginbidea"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Erabili garatzaileentzako aukerak"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Erabili inprimatze-zerbitzua"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Baimendu erabiltzaile bat baino gehiago"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Eman erabiltzailea aldatzeko baimena"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"eman, baimena, onartu, hainbat, erabiltzaile, bat, baino, gehiago"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"hainbat, erabiltzaile, profil, pertsona, kontu, aldatu, asko"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Erabili hari gabeko arazketa"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Aukeratu zer ikusiko den pantailan tableta oinarrian dagoenean. Baliteke gailuak energia gehiago erabiltzea pantaila-babeslea erabiltzen denean."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Pertsonalizatu"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Pertsonalizatu <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Estilo librerako bateragarritasuna gaitzeko, gailua berrabiarazi egin behar da."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Mahaigaineko modua bigarren mailako pantailetan erabiltzera behartzeko, gailua berrabiarazi egin behar da."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Estilo libreko leihoak onartzeko aukera gaitzeko, gailua berrabiarazi egin behar da."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Estilo libreko leihoak erabiltzeko aukera eguneratzeko, gailua berrabiarazi egin behar da."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Bigarren mailako pantailan estilo libreko leihoak gaitzeko, gailua berrabiarazi egin behar da."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Berrabiarazi"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Berrabiarazi geroago"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espaziala"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Arrosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Bioleta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Eginda"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Gorde"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Utzi"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Lehenetsia"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Tartekoa"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Aktibatuta"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desaktibatuta"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Aktibatuta"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audioa: ehuneko %1$d ezkerrean; ehuneko %2$d eskuinean"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audioa: ehuneko %1$d eskuinean; ehuneko %2$d ezkerrean"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Instalatu dituzun aplikazioek gailuaren izena ikus dezakete. Baliteke jendeak ere ikustea Bluetooth bidezko gailuetara edo wifi-sare batera konektatzean, edo wifi-gune bat konfiguratzean."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Genero gramatikala"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Hautatu genero gramatikala"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Entzun zuzeneko igorpena"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuarekin entzuteko, eskaneatu zuzeneko audio-igorpen baten QR kodea"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Ezin da editatu pasahitza audioa partekatu bitartean. Pasahitza aldatzeko, desaktibatu audioa partekatzeko eginbidea."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kodeen eskanerra"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Bilatu ezarpenetan"</string>
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index fad3560..6315c83 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"وقت خواب"</item>
-    <item msgid="4152450357280759894">"رانندگی"</item>
-    <item msgid="7096549258219399423">"فراگیر"</item>
-    <item msgid="2760716776980432977">"مدیریت‌شده"</item>
-    <item msgid="601734478369121764">"ستاره"</item>
-    <item msgid="6243809315432780521">"تقویم"</item>
-    <item msgid="4913577903148415331">"زمان"</item>
-    <item msgid="3653377604690057780">"تئاتر"</item>
-    <item msgid="3843711267408385410">"گل"</item>
+    <item msgid="2750940760340557109">"ماه نیمه"</item>
+    <item msgid="8513969636586738035">"خودرو"</item>
+    <item msgid="957392343846370509">"ذهن فرد"</item>
+    <item msgid="6734164279667121348">"تقویم"</item>
+    <item msgid="4139559120353528558">"ساعت"</item>
+    <item msgid="5157711296814769020">"چتر ساحلی"</item>
+    <item msgid="6635328761318954115">"چادر"</item>
+    <item msgid="1711994778883392255">"فیلم‌قطعه"</item>
+    <item msgid="9097658401859604879">"کنترل بازی"</item>
+    <item msgid="755931364157422565">"دمبل باشگاهی"</item>
+    <item msgid="8894207806795738429">"فردی درحال توپ انداختن"</item>
+    <item msgid="2274801572149555103">"فردی درحال لگد زدن"</item>
+    <item msgid="8795037201506843325">"شنا"</item>
+    <item msgid="3558421426169430451">"فردی درحال پیاده‌گردی"</item>
+    <item msgid="7455070421232184932">"گلف"</item>
+    <item msgid="5841773092449126508">"ابزارهای کارگاه"</item>
+    <item msgid="4595330511709890409">"کیف اداری"</item>
+    <item msgid="8352738347856724389">"ستاره"</item>
+    <item msgid="7082783098151998721">"گل نیلوفر آبی"</item>
+    <item msgid="5772220259409264724">"ناظر"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 087f863..625c022 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"معلق"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"نامشخص"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"پیش‌نمایش"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"رمزینه پاسخ‌سریع"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"کوچک‌تر کردن"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"بزرگ‌تر کردن"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"همیشه"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"تنظیمات دستگاه سمعک"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"میان‌بر، سازگاری با سمعک"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"پیش‌تنظیم"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"متخصص شنوایی‌سنجی شما هیچ پیش‌تنظیمی برنامه‌ریزی نکرده است"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"پیش‌تنظیم به‌روزرسانی نشد"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"خروجی صوتی"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"درباره خروجی صوتی"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"انتخاب زبان از «تنظیمات» برای این برنامه دردسترس نیست."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"زبان ممکن است با زبان‌های موجود در برنامه متفاوت باشد. ممکن است برخی‌از برنامه‌ها از این تنظیم پشتیبانی نکنند."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"زبان هر برنامه را تنظیم کنید."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"سیستم، برنامه‌ها، و وب‌سایت‌های شما از اولین زبان پشتیبانی‌شده ازمیان زبان‌های ترجیحی استفاده می‌کنند."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"دستگاه، برنامه‌ها، و وب‌سایت‌ها از اولین زبان پشتیبانی‌شده در فهرست زبان‌های ترجیحی‌تان استفاده می‌کنند.\n\nبسیاری از برنامه‌ها از منطقه مربوط به زبان ترجیحی‌تان نیز برای قالب‌بندی تاریخ‌ها، اعداد، و واحدها استفاده خواهند کرد. برای تغییر منطقه‌تان، زبانی اضافه کنید، سپس منطقه ترجیحی‌تان را انتخاب کنید."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"برای انتخاب زبان هر برنامه، به تنظیمات زبان برنامه بروید."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"درباره زبان‌های برنامه بیشتر بدانید"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏زبان سیستم به %s تغییر کند؟"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"خاموش"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{روشن / # برنامه به مکان دسترسی دارد}one{روشن / # برنامه به مکان دسترسی دارد}other{روشن / # برنامه به مکان دسترسی دارند}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"درحال بارگیری…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"برنامه‌هایی که اجازه «دستگاه‌های اطراف» را دارند می‌توانند موقعیت نسبی دستگاه‌های متصل را مشخص کنند."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"برنامه‌هایی که اجازه دستگاه‌های اطراف را دارند می‌توانند موقعیت نسبی دستگاه‌های متصل را تشخیص دهند."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"دسترسی به مکان برای برنامه‌ها و سرویس‌ها خاموش است. وقتی با شماره تلفن اضطراری تماس می‌گیرید یا به آن پیامک ارسال می‌کنید، ممکن است مکان دستگاهتان همچنان برای مسئولان خدمات اضطراری ارسال شود."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"درباره «تنظیمات مکان» بیشتر بدانید"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"‏برای تغییر، به «تنظیمات ChromeOS ‏&lt; حریم خصوصی و امنیت &lt; تنظیمات حریم خصوصی &lt; دسترسی مکان» بروید"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چهره و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"قفل‌گشایی برنامه اصالت‌سنجی از دور"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ساعت اضافه شد"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"راه‌اندازی ساعت"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"درباره «قفل‌گشایی با ساعت» بیشتر بدانید"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"افزودن ساعت"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"برداشتن ساعت"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"قفل‌گشایی با اثر انگشت و چهره"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"قفل‌گشایی با چهره و اثر انگشت"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"«قفل‌گشایی با اثر انگشت و چهره» برای نمایه کاری"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"راه‌اندازی لازم است"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"چهره و چند اثر انگشت اضافه شده است"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"درحال راه‌اندازی فضای خصوصی…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"فضای خصوصی راه‌اندازی نشد"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"امتحان مجدد"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"خروج"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"«فضای خصوصی» دردسترس نیست.\nدلایل احتمالی را مشاهده کنید"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"مشاهده دلایل احتمالی"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"می‌خواهید قفل جدیدی برای فضای خصوصی انتخاب کنید؟"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"می‌توانید قفل جدیدی را فقط برای فضای خصوصی تنظیم کنید یا از همان قفلی که برای باز کردن قفل دستگاهتان استفاده می‌شود استفاده کنید"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"استفاده از قفل صفحه"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"دستگاه بازراه‌اندازی شود؟"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"‏گزارش‌گیری NFC دقیق فقط برای اهداف توسعه درنظر گرفته شده است. داده‌های NFC تکمیلی در گزارش‌های اشکال لحاظ می‌شود که ممکن است حاوی اطلاعات خصوصی باشد. برای تغییر این تنظیم، دستگاهتان را بازراه‌اندازی کنید."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"بازراه‌اندازی"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"روشن"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"خاموش"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"نمایشگر خارجی"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"استفاده از نمایشگر خارجی"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"وضوح صفحه‌نمایش"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"نمایشگر خارجی قطع شده است"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"چرخش"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"استاندارد"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"‎۹۰°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"‎۱۸۰°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"‎۲۷۰°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"تغییر چرخش یا وضوح ممکن است باعث شود برنامه‌هایی که اکنون درحال اجرا هستند متوقف شوند"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"برای قرینه‌سازی صفحه‌نمایش، دستگاهتان باید به یک نمایشگر خارجی متصل باشد"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"گزینه‌های بیشتر"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"پخش محتوا"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"قرینه‌سازی"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"فعال کردن نمایش بی‌سیم"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"تطبیقی"</string>
     <string name="brightness" msgid="6216871641021779698">"سطح روشنایی"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"روشنایی تطبیقی"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"درباره «روشنایی تطبیقی»"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"روشنایی صفحه‌نمایش به‌طور خودکار با محیط و فعالیت‌هایتان تنظیم می‌شود. می‌توانید لغزاننده را به‌طور دستی حرکت دهید تا روشنایی تطبیقی ترجیح شما را دریابد."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"روشن"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"خاموش"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"گزینه‌ها"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"دسترس‌پذیری"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"صفحه‌کلید فیزیکی"</string>
-    <string name="show_ime" msgid="4334255501724746849">"استفاده از صفحه‌کلید مجازی"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"وقتی صفحه‌کلید فیزیکی فعال است این ویرایشگر را روی صفحه نگه‌می‌دارد"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"کلیدهای واگشت"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"صفحه‌کلید فشردن‌های تکراری و سریع یک کلید در <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> میلی‌ثانیه را نادیده می‌گیرد"</string>
     <string name="slow_keys" msgid="2891452895499690837">"کلیدهای آهسته"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"فاصله زمانی بین فشردن کلید و فعال‌سازی آن را روی <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> میلی‌ثانیه تنظیم می‌کند"</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="2396247040177734245">"برای کنترل موشواره، از صفحه‌کلید فیزیکی استفاده کنید."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"تغییر سبک رنگ نشانگر به زرد"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"تغییر سبک رنگ نشانگر به صورتی"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"تغییر سبک رنگ نشانگر به آبی"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"سبک ضربه اشاره‌گر"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"سفید"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"سیاه"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"هیچ‌کدام"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"آشنایی با اشاره‌های صفحه لمسی"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"پد لمسی، پدلمسی، موشواره، مکان‌نما، پیمایش، تند کشیدن، کلیک راست، کلیک، اشاره‌گر"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"کلیک راست، ضربه زدن"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"انتخاب کاربر: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"گفتار"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"سرعت اشاره‌گر"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"مقیاس اشاره‌گر"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"کاهش مقیاس اشاره‌گر"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"افزایش مقیاس اشاره‌گر"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"دسته کنترل بازی"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"تغییر مسیر لرزش"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"وقتی متصل شد، لرزش به دسته کنترل بازی ارسال شود"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"درهرصورت ادامه داده شود"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"لغو"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"تنظیمات درشت‌‌نمایی"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"حرکت افقی با یک انگشت"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ذره‌بین را با ۱ انگشت جابه‌جا کنید"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"برای حرکت در صفحه، ۱ انگشت را بکشید"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"با کشیدن یک انگشت، درشت‌نمایی را جابه‌جا کنید."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"با کشیدن دو انگشت، درشت‌نمایی را جابه‌جا کنید."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"وقتی فقط بخشی از صفحه درشت‌نمایی می‌شود دردسترس نیست"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"برای بزرگ‌نمایی، روی دکمه‌ای تک‌ضرب بزنید"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"به‌سرعت صفحه را بزرگ کنید تا محتوا درشت‌تر نمایش داده شود"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"‏&lt;b&gt;برای زوم‌پیش کردن:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. برای فعال کردن درشت‌نمایی، از میان‌بر استفاده کنید&lt;br/&gt; {1,number,integer}. روی صفحه تک‌ضرب بزنید&lt;br/&gt; {2,number,integer}. برای حرکت کردن در صفحه، ۲ انگشت را بکشید&lt;br/&gt; {3,number,integer}. برای تنظیم کردن زوم، ۲ انگشت را ازهم دور یا به‌هم نزدیک کنید&lt;br/&gt; {4,number,integer}. برای توقف درشت‌نمایی از میان‌براستفاده کنید&lt;br/&gt;&lt;br/&gt; &lt;b&gt;برای زوم‌پیش موقت:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. مطمئن شوید نوع درشت‌نمایی روی تمام‌صفحه تنظیم شده باشد&lt;br/&gt; {1,number,integer}. برای فعال کردن درشت‌نمایی، از میان‌بر استفاده کنید&lt;br/&gt; {2,number,integer}. جایی از صفحه را لمس کنید و نگه دارید&lt;br/&gt; {3,number,integer}. برای حرکت کردن در صفحه، انگشت را بکشید&lt;br/&gt; {4,number,integer}. برای متوقف کردن درشت‌نمایی، انگشتتان را بردارید"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"‏&lt;b&gt;برای زوم‌پیش کردن:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. برای فعال کردن درشت‌نمایی، از میان‌بر استفاده کنید&lt;br/&gt; {1,number,integer}. روی صفحه تک‌ضرب بزنید&lt;br/&gt; {2,number,integer}. برای حرکت کردن در صفحه، ۲ انگشت را بکشید&lt;br/&gt; {3,number,integer}. برای تنظیم بزرگ‌نمایی، ۲ انگشت را ازهم دور یا به‌هم نزدیک کنید&lt;br/&gt; {4,number,integer}. از میان‌بر برای متوقف کردن درشت‌نمایی استفاده کنید&lt;br/&gt;&lt;br/&gt; همچنین می‌توانید موقتاً زوم‌پیش کنید و کارهای دیگری انجام دهید."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"‏&lt;b&gt;برای زوم‌پیش کردن:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. برای فعال کردن درشت‌نمایی، از میان‌بر استفاده کنید&lt;br/&gt; {1,number,integer}. روی صفحه تک‌ضرب بزنید&lt;br/&gt; {2,number,integer}. برای حرکت کردن در صفحه، ۱ یا ۲ انگشت را بکشید&lt;br/&gt; {3,number,integer}. برای تنظیم بزرگ‌نمایی، ۲ انگشت را ازهم دور یا به‌هم نزدیک کنید&lt;br/&gt; {4,number,integer}. از میان‌بر برای متوقف کردن درشت‌نمایی استفاده کنید&lt;br/&gt;&lt;br/&gt; همچنین می‌توانید موقتاً زوم‌پیش کنید و کارهای دیگری انجام دهید."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"با روشن کردن درشت‌نمایی، می‌توانید روی صفحه زوم‌پیش کنید.\n\n"<b>"برای زوم کردن"</b>"، درشت‌نمایی را روشن کنید و روی جایی از صفحه تک‌ضرب بزنید.\n"<ul><li>"برای پیمایش، دو یا چند انگشتتان را روی صفحه بکشید "</li>\n<li>"برای تنظیم کردن زوم، دو یا چند انگشتتان را به‌هم نزدیک کنید"</li></ul>\n\n<b>"برای زوم موقت"</b>"، درشت‌نمایی را روشن کنید، سپس جایی از صفحه را لمس کنید و نگه‌دارید.\n"<ul><li>"برای حرکت در صفحه، انگشتتان را روی صفحه بکشید"</li>\n<li>"برای زوم‌پس کردن، انگشتتان را بردارید"</li></ul>\n\n"نمی‌توانید صفحه‌کلید یا نوار پیمایش را کوچک کنید."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"صفحه <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> از <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"میان‌بر دکمه دسترس‌پذیری"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"با ۲ انگشت، از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۲ انگشت تند به‌بالا بکشید و نگه دارید."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"با ۳ انگشت، از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۳ انگشت تند به‌بالا بکشید و نگه دارید."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{از پایین صفحه‌نمایش تند به‌بالا بکشید. برای جابه‌جایی بین ویژگی‌ها، تند به‌بالا بکشید و نگه دارید.}one{از پایین صفحه‌نمایش با # انگشت تند به‌بالا بکشید. برای جابه‌جایی بین ویژگی‌ها، با # انگشت تند به‌بالا بکشید و نگه دارید.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"با دو انگشت دوضربه روی صفحه‌نمایش بزنید"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"‏سریع %1$d بار روی صفحه‌نمایش تک‌ضرب بزنید. این کار ممکن است سرعت دستگاه را کاهش دهد."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"‏دوضربه %1$d انگشتی"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏با دو انگشت {0,number,integer} بار به‌سرعت روی صفحه تک‌ضرب بزنید"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"روی صفحه‌نمایش سه ضربه سریع بزنید"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"سه‌ضربه"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏سریع روی صفحه‌نمایش {0,number,integer} بار تک‌ضرب بزنید. ممکن است این میان‌بر سرعت دستگاه را کاهش دهد"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"پیشرفته"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"دکمه دسترس‌پذیری روی <xliff:g id="SERVICE">%1$s</xliff:g> تنظیم شده است. برای استفاده از درشت‌نمایی، دکمه دسترس‌پذیری را لمس کنید و نگه‌دارید، سپس درشت‌نمایی را انتخاب کنید."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"اشاره دسترس‌پذیری روی <xliff:g id="SERVICE">%1$s</xliff:g> تنظیم شده است. برای استفاده از درشت‌‌نمایی، با دو انگشت از پایین صفحه به‌بالا بکشید و نگه‌ ارید. سپس درشت‌‌نمایی را انتخاب کنید."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"این سرویس درست کار نمی‌کند."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"میان‌برهای دسترس‌پذیری"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"نمایش در تنظیمات سریع"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"قرمز-سبز"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"قرمز-سبز"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"قرمز-سبز، کوررنگی نسبی برای سبز"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"قرمز-سبز، کوررنگی نسبی برای قرمز"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"آبی-زرد"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"سیاه‌وسفید"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"شدت"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ضعف در دیدن رنگ سبز، سبزدشواربینی"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ضعف در دیدن رنگ سرخ، سرخ‌دشواربینی"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"برای حالت سیاه‌وسفید یا زمانی که تصحیح رنگ غیرفعال است دردسترس نیست"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"سبزدشواربینی"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"قرمزدشواربینی"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"آبی‌دشواربینی"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"بسیار کم‌نور"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"بسیار کم‌نور کردن صفحه‌نمایش"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"سبز آبی"</string>
     <string name="color_yellow" msgid="5957551912912679058">"زرد"</string>
     <string name="color_magenta" msgid="8943538189219528423">"سرخابی"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"به <xliff:g id="SERVICE">%1$s</xliff:g> اجازه می‌دهید بر دستگاهتان کنترل کامل داشته باشد؟"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> باید:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"چون برنامه‌ای در حال ایجاد تداخل در درخواست اجازه است، «تنظیمات» نمی‌تواند پاسخ شما را تأیید کند."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> کنترل کامل بر این دستگاه را درخواست می‌کند. این سرویس می‌تواند صفحه را بخواند و ازطرف افرادی که مشکل دسترسی دارند، عمل کند. این سطح کنترل برای اکثر برنامه‌ها مناسب نیست."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"کنترل کامل برای برنامه‌هایی که به شما در زمینه نیازهای دسترس‌پذیری کمک می‌کند مناسب است، نه برای همه برنامه‌ها."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"مشاهده و کنترل صفحه"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"می‌تواند همه محتوای صفحه را بخواند و آن را روی بقیه برنامه‌ها نمایش دهد."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"مشاهده و انجام کنش‌ها"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"این عملکرد می‌تواند با برنامه یا حسگری سخت‌افزاری تعاملاتتان را ردیابی کند و ازطرف شما با برنامه‌ها تعامل داشته باشد."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازه دادن"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مجاز نبودن"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"خاموش شود"</string>
@@ -3142,7 +3162,7 @@
     <string name="network_dashboard_summary_mobile" msgid="7750924671970583670">"‏تلفن همراه، Wi-Fi، نقطه اتصال"</string>
     <string name="network_dashboard_summary_no_mobile" msgid="4022575916334910790">"‏Wi-Fi، نقطه اتصال"</string>
     <string name="connected_devices_dashboard_title" msgid="19868275519754895">"دستگاه‌های متصل"</string>
-    <string name="connected_devices_dashboard_default_summary" msgid="7211769956193710397">"بلوتوث، مرتبط‌سازی"</string>
+    <string name="connected_devices_dashboard_default_summary" msgid="7211769956193710397">"بلوتوث، جفت‌سازی"</string>
     <string name="connected_devices_dashboard_summary" msgid="6927727617078296491">"‏بلوتوث، حالت رانندگی، NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="8424794257586524040">"بلوتوث، حالت رانندگی"</string>
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="7155882619333726331">"‏بلوتوث، NFC"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{هیچ‌کدام}=1{۱ زمان‌بندی تنظیم شد}one{# زمان‌بندی تنظیم شده است}other{# زمان‌بندی تنظیم شده است}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"مزاحم نشوید"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"حالت‌های اولویت‌دار"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"افزودن حالت"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"عوامل حواس‌پرتی را به‌حداقل برسانید و با حالت‌های خواب، کار، رانندگی، و فعالیت‌های دیگر، بر تمرکز خود مسلط شوید"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"حالت خودتان را بسازید"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"فقط از افراد و برنامه‌های مهم اعلان دریافت کنید"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"تنظیم زمان‌بندی"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"زمان‌بندی کردن براساس"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"روز و ساعت"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"«۹ صبح تا ۵ عصر روزهای هفته»"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"رویدادهای تقویم"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{‫{mode_1} فعال است}=2{‫{mode_1} و {mode_2} فعال هستند}=3{‫{mode_1}، {mode_2}، و {mode_3} فعال هستند}one{‫{mode_1}، {mode_2}، و # حالت دیگر فعال هستند}other{‫{mode_1}، {mode_2}، و # حالت دیگر فعال هستند}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{‫۱ حالت می‌تواند به‌طور خودکار روشن شود}one{‫# حالت می‌تواند به‌طور خودکار روشن شود}other{‫# حالت می‌تواند به‌طور خودکار روشن شود}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"روشن"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"تنظیم نشده است"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"غیرفعال شده"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"ایجاد حالت"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"سفارشی"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"اکنون روشن شود"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"خاموش کردن"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"حالت پیدا نشد"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"محدود کردن وقفه‌ها"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"وقفه‌ها و حواس‌پرتی‌ها را مسدود کنید"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"راه‌اندازی <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"روشن کردن «مزاحم نشوید»"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"صداهای رسانه و هشدارها می‌توانند وقفه ایجاد کنند"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"زمان‌بندی‌ها"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"حذف زمان‌بندی‌ها"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"حذف"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"تغییر نام"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"حذف"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"حالت «<xliff:g id="MODE">%1$s</xliff:g>» حذف شود؟"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ویرایش"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"زمان‌بندی‌ها"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"زمان‌بندی"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"روشن شدن خودکار"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"افزودن تقویم"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"استفاده از تقویم"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"زمان‌بندی"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"تنظیم زمان‌بندی"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"زمان روشن شدن خودکار"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"زمان‌بندی کردن رویداد"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"روشن شدن درطول رویدادهای"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"مکان پاسخ به دعوت"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"زمان‌بندی ساعت‌محور"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"زمان‌بندی"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ساعت، <xliff:g id="MINUTES">%2$d</xliff:g> دقیقه"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"زمان‌بندی"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"مجاز کردن وقفه‌هایی که صدا ایجاد می‌کنند"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"مسدود کردن مزاحمت‌های بصری"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"مجاز کردن همه سیگنال‌های تصویری"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"اعلان‌هایی که می‌تواند برایتان ارسال شود"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"کنش‌های بیشتر"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"فیلترهای اعلان"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"تنظیمات بیشتر"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{خاموش}=1{خاموش / ۱ حالت می‌تواند به‌طور خودکار روشن شود}one{خاموش / # حالت می‌تواند به‌طور خودکار روشن شود}other{خاموش / # حالت می‌تواند به‌طور خودکار روشن شود}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"تنظیمات نمایشگر"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"گزینه‌های نمایشگر"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"سیاه‌وسفید"</string>
@@ -3356,7 +3398,7 @@
     <string name="mode_grayscale_summary" msgid="6682099523626777038">"تغییر صفحه‌نمایش به سیاه‌وسفید"</string>
     <string name="mode_aod_title" msgid="5903435070341237325">"تیره نگه داشتن صفحه‌نمایش"</string>
     <string name="mode_aod_title_secondary_list" msgid="8268180392811027557">"تیره نگه داشتن صفحه‌نمایش"</string>
-    <string name="mode_aod_summary" msgid="7516159044827627065">"غیرفعال کردن نمایشگر همیشه روشن"</string>
+    <string name="mode_aod_summary" msgid="7516159044827627065">"غیرفعال کردن «نمایشگر همیشه روشن»"</string>
     <string name="mode_wallpaper_title" msgid="5549693923133928374">"کم‌نور کردن کاغذدیواری"</string>
     <string name="mode_wallpaper_title_secondary_list" msgid="5034602021811580157">"کم‌نور کردن کاغذدیواری"</string>
     <string name="mode_wallpaper_summary" msgid="665480011615603784">"فیلتر کردن روشنایی کاغذدیواری"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"فعال کردن زمینه تیره"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"سیستم‌عامل و برنامه‌ها به حالتی می‌روند که در آن، نوشتار روشن روی پس‌زمینه تیره ارجحیت دارد. در این حالت، چشم‌ها کمتر اذیت می‌شود و در برخی دستگاه‌ها در مصرف باتری به‌میزان قابل‌توجهی صرفه‌جویی می‌شود"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{بدون تغییر در نمایشگر}=1{‫{effect_1}}=2{‫{effect_1} و {effect_2}}=3{‫{effect_1}، {effect_2}، و {effect_3}}one{‫{effect_1}، {effect_2}، و # مورد دیگر}other{‫{effect_1}، {effect_2}، و # مورد دیگر}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"محدود کردن مواردی که می‌تواند برایتان اعلان ارسال کند"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"هیچ وقفه‌ای فیلتر نمی‌شود"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"گزینه‌های نمایشگر برای اعلان‌های فیلترشده"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"وقتی «مزاحم نشوید» روشن است"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"بدون صدای اعلان‌ها"</string>
@@ -3464,8 +3508,8 @@
     <string name="asst_capability_ranking_summary" msgid="2293524677144599450">"رده‌بندی خودکار اعلان‌ها براساس ارتباط"</string>
     <string name="asst_feedback_indicator_title" msgid="5169801869752395354">"بازخورد اعلان تطبیقی"</string>
     <string name="asst_feedback_indicator_summary" msgid="5862082842073307900">"تنظیمات انجام‌شده برای اعلان‌ها را مشخص می‌کند و گزینه مربوط به ارائه بازخورد به سیستم را نمایش می‌دهد"</string>
-    <string name="asst_importance_reset_title" msgid="6191265591976440115">"بازنشاندن اهمیت اعلان"</string>
-    <string name="asst_importance_reset_summary" msgid="684794589254282667">"بازنشاندن تنظیمات اهمیت تغییریافته توسط کاربر و مجاز کردن دستیار اعلان برای اولویت‌بندی"</string>
+    <string name="asst_importance_reset_title" msgid="6191265591976440115">"بازنشانی اهمیت اعلان"</string>
+    <string name="asst_importance_reset_summary" msgid="684794589254282667">"بازنشانی تنظیمات اهمیت تغییریافته توسط کاربر و مجاز کردن دستیار اعلان برای اولویت‌بندی"</string>
     <string name="asst_capabilities_actions_replies_title" msgid="4392470465646394289">"پاسخ‌ها و اقدامات پیشنهادی"</string>
     <string name="asst_capabilities_actions_replies_summary" msgid="416234323365645871">"نمایش خودکار اقدامات و پاسخ‌های پیشنهادی"</string>
     <string name="notification_history_summary" msgid="5434741516307706892">"نمایش اعلان‌های اخیر و به‌تعویق افتاده"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"باز کردن اعلان"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"مجاز کردن تعویق اعلان"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"نقطه اعلان روی نماد برنامه‌ها"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"دسته‌های اعلان"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"حبابک‌ها"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"حبابک‌ها"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"نمایش مکالمه به‌صورت حباب"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"اعلان‌های تطبیقی"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"استفاده از اعلان‌های تطبیقی"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"وقتی در مدت کوتاهی اعلان‌های زیادی دریافت کنید، تلفنتان میزان صدا را کاهش می‌دهد و بالاپرهای روی صفحه‌نمایش را تا دو دقیقه به‌حداقل می‌رساند. تماس‌ها، زنگ‌های هشدار، و مکالمه‌های اولویت‌دار همچنان لرزش، صدا، یا نمایش روی صفحه خواهند داشت ، و دسترسی به تمامی اعلان‌ها با کشیدن انگشت از بالای صفحه به پایین امکان‌پذیر است."</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_work" msgid="8823596456640216391">"اعمال کردن بر نمایه‌های کاری"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"برای برنامه‌های نمایه کاری اعمال می‌شود"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‏خدمات یاور VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"دسته‌ها"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"موارد دیگر"</string>
     <string name="no_channels" msgid="4716199078612071915">"این برنامه هیچ اعلانی پست نکرده است"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"نمایش دسته‌های استفاده‌نشده"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"تنظیمات بیشتر در برنامه"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"نمایش دسته‌های استفاده‌نشده"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"پنهان کردن دسته‌های استفاده‌نشده"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> ‏- <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"مکالمه‌ها"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"همه مکالمه‌ها"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"همه مکالمه‌ها"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"مکالمه‌های اولویت‌دار"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"مکالمه‌های اولویت‌دار"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"هیچ‌کدام"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"برنامه‌هایی که می‌توانند وقفه ایجاد کنند"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"برنامه‌های انتخاب‌شده"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"هیچ‌کدام"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"همه"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{هیچ برنامه‌ای نمی‌تواند وقفه ایجاد کند}=1{‫{app_1} می‌تواند وقفه ایجاد کند}=2{‫{app_1} و {app_2} می‌توانند وقفه ایجاد کنند}=3{‫{app_1}، {app_2}، و {app_3} می‌توانند وقفه ایجاد کنند}one{‫{app_1}، {app_2}، و # برنامه دیگر می‌توانند وقفه ایجاد کنند}other{‫{app_1}، {app_2}، و # برنامه دیگر می‌توانند وقفه ایجاد کنند}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"‫<xliff:g id="APP_LABEL">%s</xliff:g> (کاری)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"درحال محاسبه…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"‪+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"مجاز کردن برنامه‌ها برای لغو"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"برنامه‌هایی که می‌توانند وقفه ایجاد کنند"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"انتخاب برنامه‌های بیشتر"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"تماس‌گیرنده‌های تکراری می‌توانند وقفه ایجاد کنند"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"همه افراد می‌توانند وقفه ایجاد کنند"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"تماس‌گیرنده‌های تکراری"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"اجازه دادن به تماس‌گیرندگان تکراری"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{تغییر به «فقط زنگ هشدار» به‌مدت یک ساعت تا {time}}one{تغییر به «فقط زنگ هشدار» به‌مدت # ساعت تا {time}}other{تغییر به «فقط زنگ هشدار» به‌مدت # ساعت تا {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"تغییر به «فقط هشدارها» تا <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"تغییر در «همیشه وقفه»"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"تغییر نام"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"تغییر نماد"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"تغییر نماد"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ویرایش حالت"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"ایجاد حالت"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"حالت سفارشی"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"نام حالت"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"رویدادهای تقویم"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"روال وقت خواب"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"هنگام رانندگی"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"تنظیمات برنامه"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"اطلاعات و تنظیمات <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"تحت‌مدیریت <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> غیرفعال شود؟"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"این حالت هنگام غیرفعال بودن هرگز روشن نمی‌شود"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"غیرفعال کردن"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> فعال شود؟"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"این حالت ممکن است بسته به تنظیمات آن به‌طور خودکار روشن شود"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"فعال کردن"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"حالتی را تنظیم کنید که زمان‌بندی منظمی را دنبال می‌کند"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"حالتی را برای همگام‌سازی با رویدادهای تقویم و پاسخ به دعوت‌ها تنظیم کنید"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"یک برنامه خواب آرامش‌بخش تنظیم کنید. زنگ ساعت تنظیم کنید، صفحه را کم‌نور کنید، و اعلان‌ها را مسدود کنید."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"برای رانندگی با تمرکز و بدون حواس‌پرتی، ایمنی در جاده را در اولویت قرار دهید"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"هشدار"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"بستن"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ارسال بازخورد درباره این دستگاه"</string>
@@ -4791,10 +4862,10 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"جلد محاف"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"باتری"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"پانل تنظیمات"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"اجرای اجباری حالت دسک‌‌تاپ"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"اجرای اجباری حالت دسک‌تاپ آزمایشی در نمایشگرهای ثانوی"</string>
-    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"فعال کردن اندازه غیرقابل‌تغییر در چندپنجره"</string>
-    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"مجاز کردن برنامه‌های با اندازه غیرقابل‌تغییر برای قرارگیری در چندپنجره"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"فعال کردن پنجره قالب آزاد"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"فعال کردن پنجره قالب آزاد در نمایشگر دوم"</string>
+    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"فعال کردن غیرقابل‌تغییردادنی در چندپنجره‌ای"</string>
+    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"مجاز کردن برنامه‌های غیرقابل‌تغییردادنی برای نمایش در چندپنجره‌ای"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"لغو اجبار حالت تاریک"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"ویژگی اجبار حالت تاریک را برای همیشه روشن بودن لغو می‌کند"</string>
     <string name="privacy_dashboard_title" msgid="6845403825611829558">"حریم خصوصی"</string>
@@ -4869,7 +4940,7 @@
     <string name="page_agnostic_16k_pages_text_short" msgid="3282018880292691631">"‏در حالت ۱۶ کیلوبایتی حالت مستقل از صفحه هستید. نمی‌توان تمامیت نرم‌افزار را در این حالت تضمین کرد و هرگونه داده‌ای که درمدت باز بودن قفل bootloader در تلفن ذخیره می‌شود می‌تواند درمعرض خطر باشد. برخی‌از ویژگی‌ها در این حالت‌ها غیرفعال می‌شوند بنابراین ممکن است بعضی‌از برنامه‌ها کار نکنند. برای ورود دوباره به حالت تولید، باید به حالت ۴ کیلوبایتی برگردید و سپس bootloader دستگاه را قفل کنید. برای مطالعه بیشتر، تک‌ضرب بزنید."</string>
     <string name="page_agnostic_16k_pages_text" msgid="2999817238546170627">"‏در حالت ۱۶ کیلوبایتی حالت مستقل از صفحه هستید. نمی‌توان تمامیت نرم‌افزار را در این حالت تضمین کرد و هرگونه داده‌ای که درمدت باز بودن قفل bootloader در تلفن ذخیره می‌شود می‌تواند درمعرض خطر باشد. برخی‌از ویژگی‌ها در این حالت‌ها غیرفعال می‌شوند بنابراین ممکن است بعضی‌از برنامه‌ها کار نکنند. برای ورود دوباره به حالت تولید، باید به حالت ۴ کیلوبایتی برگردید و سپس bootloader دستگاه را قفل کنید. با این کار، دستگاه دوباره بازنشانی کارخانه‌ای می‌شود و به تنظیمات تولید بازگردانده می‌شود. پس‌از آنکه دستگاه باموفقیت با سیستم‌عامل Android راه‌اندازی شد، «باز کردن قفل سازنده اصلی محصول» را در «گزینه‌های توسعه‌دهندگان» غیرفعال کنید. اگر دستگاه نتوانست باموفقیت با سیستم‌عامل Android راه‌اندازی شود یا ناپایدار بود، دستگاه را با جدیدترین تصویر تنظیمات کارخانه از &lt;a href=\"https://developers.google.com/android/images\"&gt;https://developers.google.com/android/images&lt;/a&gt; or use &lt;a href=\"https://flash.android.com/back-to-public\"&gt;https://flash.android.com/back-to-public&lt;/a&gt; دوباره فلاش کنید و «محو کردن داده‌های دستگاه»، «قفل کردن Bootloader»، و «فلاش کردن اجباری همه پارتیشن‌ها» را انتخاب کنید."</string>
     <string name="page_agnostic_notification_channel_name" msgid="1658444283036376361">"حالت مستقل از صفحه ۱۶ کیلوبایتی"</string>
-    <string name="page_agnostic_notification_action" msgid="2309805437430150456">"بیشتر بخوانید"</string>
+    <string name="page_agnostic_notification_action" msgid="2309805437430150456">"جزئیات بیشتر"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"کنترل‌کننده گزارش اشکال"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"تعیین می‌کند کدام برنامه میان‌بر «گزارش اشکال» را در دستگاه کنترل کند."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"شخصی"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"داده تلفن همراه"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"‏برای بهبود تجربه استفاده از دستگاه، برنامه‌ها و سرویس‌ها همچنان می‌توانند در هرزمانی شبکه‌های Wi-Fi را اسکن کنند، حتی وقتی Wi-Fi خاموش باشد. از این تنظیم می‌توان به‌عنوان مثال برای بهبود ویژگی‌ها و سرویس‌های مبتنی بر مکان استفاده کرد. می‌توانید این مورد را در تنظیمات اسکن کردن Wi‑Fi تغییر دهید."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"تغییر"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"متصل است"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"موقتاً متصل است"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"موقتاً از «<xliff:g id="SUBNAME">%1$s</xliff:g>» استفاده می‌کنید"</string>
@@ -4978,7 +5048,7 @@
     <string name="mobile_data_disable_message_default_carrier" msgid="4449469407705838612">"شرکت مخابراتی شما"</string>
     <string name="not_allowed_by_ent" msgid="1958611623122304411">"سازمان شما آن را مجاز نکرده است"</string>
     <string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"دردسترس نیست زیرا «حالت وقت خواب» روشن است"</string>
-    <string name="reset_importance_completed" msgid="3595536767426097205">"بازنشاندن اهمیت اعلان تکمیل شد."</string>
+    <string name="reset_importance_completed" msgid="3595536767426097205">"بازنشانی اهمیت اعلان تکمیل شد."</string>
     <string name="apps_dashboard_title" msgid="3269953499954393706">"برنامه‌ها"</string>
     <string name="bluetooth_message_access_notification_content" msgid="5111712860712823893">"دستگاهی می‌خواهد به پیام‌هایتان دسترسی داشته باشد. برای جزئیات تک‌ضرب بزنید."</string>
     <string name="bluetooth_message_access_dialog_title" msgid="9009836130395061579">"دسترسی به پیام‌ها مجاز شود؟"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"استفاده از سنجاق کردن برنامه"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"استفاده از گزینه‌های توسعه‌دهنده"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"استفاده از سرویس چاپ"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"مجاز کردن چند کاربر"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"مجاز کردن تغییر کاربر"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"مجاز کردن، چندین، کاربر، اجازه، زیاد"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"چندگانه، کاربران، نمایه‌ها، افراد، حساب‌ها، عوض کردن، زیاد"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"استفاده از اشکال‌زدایی بی‌سیم"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"انتخاب کنید وقتی رایانه لوحی روی پایه قرار می‌گیرد چه چیزی روی صفحه‌نمایش نشان داده شود. هنگام استفاده از محافظ صفحه، دستگاه ممکن است انرژی بیشتری مصرف کند."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"سفارشی کردن"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"سفارشی کردن <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"برای فعال کردن پشتیبانی قالب آزاد، راه‌اندازی مجدد الزامی است."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"برای رفتن به حالت میز کار در نمایشگرهای ثانویه، بازراه‌اندازی الزامی است."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"برای فعال کردن پشتیبانی پنجره قالب آزاد، بازراه‌اندازی الزامی است."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"برای به‌روزرسانی دردسترس بودن پنجره قالب آزاد، بازراه‌اندازی الزامی است."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"برای فعال کردن پنجره قالب آزاد در نمایشگر دوم، بازراه‌اندازی الزامی است."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"اکنون بازراه‌اندازی شود"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"بعداً بازراه‌اندازی شود"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"صدای فضایی"</string>
@@ -5135,7 +5206,7 @@
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"پیکربندی محدودیت نرخ بارگیری شبکه"</string>
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"بدون محدودیت"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"غیرفعال کردن محدودیت‌های فرایندهای مربوط به کودک"</string>
-    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"غیرفعال کردن محدودیت‌های استفاده فرایندهای مربوط به کودکِ برنامه از منابع سیستم"</string>
+    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"غیرفعال کردن محدودیت‌های استفاده منابع سیستم از فرایندهای مربوط به کودک برنامه"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"فعال کردن اجباری نقش «یادداشت»"</string>
     <string name="enable_notes_role_summary" msgid="5495721409392395089">"فعال کردن ادغام‌های سیستم یادداشت‌برداری ازطریق نقش «یادداشت». اگر نقش «یادداشت» ازقبل فعال شده باشد، کاری انجام نمی‌شود. به بازراه‌اندازی نیاز دارد."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"همه‌فرستی"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"صورتی"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"سرخابی"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"یاسی"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"تمام"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"ذخیره"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"لغو"</string>
     <string name="contrast_default" msgid="8918545965525226966">"پیش‌فرض"</string>
     <string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"روشن"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"خاموش"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"روشن"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"‏صدا %1$d%% چپ، %2$d%% راست"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"‏صدا %1$d%% راست، %2$d%% چپ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"‏نام دستگاه شما برای برنامه‌هایی که نصب کرده‌اید قابل‌مشاهده است. همچنین ممکن است هنگام اتصال به دستگاه‌های بلوتوث، اتصال به شبکه Wi-Fi، یا راه‌اندازی نقطه اتصال Wi-Fi، برای افراد دیگر قابل‌مشاهده باشد."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"جنسیت دستوری"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"انتخاب جنسیت دستوری"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"گوش دادن به جاری‌سازی"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"برای گوش دادن با <xliff:g id="DEVICE_NAME">%1$s</xliff:g>، رمزینه پاسخ‌سریع جاری‌سازی صوتی را اسکن کنید"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"نمی‌توان گذرواژه را درحین هم‌رسانی ویرایش کرد. برای تغییر دادن گذرواژه، ابتدا «اشتراک صدا» را خاموش کنید."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"کدخوان پاسخ‌سریع"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"جستجو در «تنظیمات»"</string>
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index fe8c81c..a5ff23e 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Nukkuma-aika"</item>
-    <item msgid="4152450357280759894">"Ajaminen"</item>
-    <item msgid="7096549258219399423">"Immersiivinen"</item>
-    <item msgid="2760716776980432977">"Hallinnoidut"</item>
-    <item msgid="601734478369121764">"Tähti"</item>
-    <item msgid="6243809315432780521">"Kalenteri"</item>
-    <item msgid="4913577903148415331">"Aika"</item>
-    <item msgid="3653377604690057780">"Teatteri"</item>
-    <item msgid="3843711267408385410">"Kukka"</item>
+    <item msgid="2750940760340557109">"Puolikuu"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Ihmisen mieli"</item>
+    <item msgid="6734164279667121348">"Kalenteri"</item>
+    <item msgid="4139559120353528558">"Kello"</item>
+    <item msgid="5157711296814769020">"Rantavarjo"</item>
+    <item msgid="6635328761318954115">"Teltta"</item>
+    <item msgid="1711994778883392255">"Vanha kotivideo"</item>
+    <item msgid="9097658401859604879">"Peliohjain"</item>
+    <item msgid="755931364157422565">"Kuntosalin käsipaino"</item>
+    <item msgid="8894207806795738429">"Palloa heittävä henkilö"</item>
+    <item msgid="2274801572149555103">"Potkiva henkilö"</item>
+    <item msgid="8795037201506843325">"Uinti"</item>
+    <item msgid="3558421426169430451">"Vaelluksella oleva henkilö"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Työkalut"</item>
+    <item msgid="4595330511709890409">"Salkku"</item>
+    <item msgid="8352738347856724389">"Tähti"</item>
+    <item msgid="7082783098151998721">"Lootuskukka"</item>
+    <item msgid="5772220259409264724">"Valvoja"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index bffed0d..f717932 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pidätetty"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Ei tiedossa"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Esikatselu"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-koodi"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Pienennä"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Suurenna"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Aina"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Kuulolaiteasetukset"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Pikanäppäin, kuulolaiteyhteensopivuus"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Esiasetus"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Audiologi ei ole ohjelmoinut esiasetuksia"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Esiasetusta ei voitu muuttaa"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audion toistotapa"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Tietoa audion toistotavasta"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Sovellukselle ei voi valita kieltä asetuksista."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Kieli saattaa erota sovelluksessa saatavilla olevista kielistä. Jotkin sovellukset eivät ehkä tue tätä asetusta."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Valitse kieli kullekin sovellukselle."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Järjestelmä, sovellukset ja verkkosivustot käyttävät valitsemistasi kielistä ensimmäistä, jota tuetaan."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Laite, sovellukset ja verkkosivustot käyttävät valitsemistasi kielistä ensimmäistä, jota tuetaan.\n\nMonet sovellukset valitsevat myös päivämäärien, numeroiden ja yksiköiden muodon ensisijaisen kielesi alueen perusteella. Jos haluat vaihtaa aluetta, lisää kieli ja valitse ensisijainen alue."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Voit valita kielen kullekin sovellukselle sen kieliasetuksista."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Lue lisää sovellusten kielistä"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Muutetaanko järjestelmän kieleksi %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Pois päältä"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Päällä / # sovelluksella on pääsyoikeus sijaintiin}other{Päällä / # sovelluksella on pääsyoikeus sijaintiin}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ladataan…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Sovellukset, joilla on lähellä olevien laitteiden lupa, voivat määrittää yhdistettyjen laitteiden suhteellisen sijainnin."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Sovellukset, joilla on lähellä olevien laitteiden lupa, voivat määrittää yhdistettyjen laitteiden suhteellisen sijainnin."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Sovelluksilla ja palveluilla ei ole sijaintilupaa. Tiedot laitteesi sijainnista voidaan silti lähettää pelastustyöntekijöille, kun soitat tai lähetät tekstiviestin hätänumeroon."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lue lisää sijaintiasetuksista"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Voit vaihtaa valintaa avaamalla ChromeOS:n asetukset &gt; Yksityisyys ja turvallisuus &gt; Yksityisyysasetukset &gt; Pääsy sijaintiin"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Kasvot ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Kasvot, sormenjälki ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Kasvot, sormenjäljet ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticatorin lukituksen avaus"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Kello lisätty"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kellon käyttöönotto"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lue lisää kellon avauksesta"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lisää kello"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Poista kello"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sormenjälki- ja kasvojentunnistusavaus"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Kasvojentunnistus- ja sormenjälkiavaus"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Kasvojentunnistus- ja sormenjälkiavaus työkäyttöön"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Edellyttää käyttöönottoa"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Kasvot ja sormenjäljet lisättiin"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Yksityistä tilaa otetaan käyttöön…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Yksityisen tilan käyttöönotto epäonnistui"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Yritä uudelleen"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Poistu"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Yksityinen tila ei ole saatavilla.\nKatso mahdolliset syyt"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Katso mahdolliset syyt"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Valitaanko yksityiselle tilalle uusi lukitus?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Voit valita uuden lukituksen pelkästään yksityiselle tilalle tai käyttää laitteen lukitustapaa"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Käytä näytön lukitusta"</string>
@@ -659,7 +666,7 @@
     <string name="lock_settings_picker_update_lock_title" msgid="536853138943415927">"Valitse uusi näytön lukitus"</string>
     <string name="lock_settings_picker_new_profile_lock_title" msgid="2270462215256413800">"Valitse työsovellusten lukitus"</string>
     <string name="lock_settings_picker_update_profile_lock_title" msgid="5929068163516308927">"Valitse uusi työlukitus"</string>
-    <string name="lock_settings_picker_biometrics_added_security_message" msgid="1105247657304421299">"Paranna suojausta määrittämällä näytön varalukitustapa"</string>
+    <string name="lock_settings_picker_biometrics_added_security_message" msgid="1105247657304421299">"Paranna suojausta valitsemalla näytön varalukitustapa"</string>
     <string name="lock_settings_picker_biometric_message" msgid="2609666443527262781">"Valitse toissijainen näytönlukitustapa"</string>
     <string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"IT-järjestelmänvalvoja ei voi nollata näytön lukituksen avaustapaa, jos unohdat sen."</string>
     <string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"Valitse erillinen työlukitus"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Käynnistetäänkö laite uudelleen?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC-tietojen kirjaaminen on tarkoitettu vain kehittäjäkäyttöön. Virheraportit sisältävät muuta NFC-dataa, joka voi sisältää yksityisiä tietoja. Muuta asetusta käynnistämällä laite uudelleen."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Käynnistä uudelleen"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Päällä"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Pois päältä"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ulkoinen näyttö"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Käytä ulkoista näyttöä"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Näytön resoluutio"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Yhteys ulkoiseen näyttöön katkaistu"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Kierto"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Tavallinen"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Näytön kierron tai resoluution muutokset voivat keskeyttää tällä hetkellä käynnissä olevat sovellukset"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Laitteen täytyy olla yhdistettynä ulkoiseen näyttöön, jotta näytön peilaus onnistuu"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Lisäasetukset"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Striimaus"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"peilaus"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Ota langaton näyttö käyttöön"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Mukautuva"</string>
     <string name="brightness" msgid="6216871641021779698">"Kirkkaustaso"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Kirkkauden säätö"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Kirkkauden säätö"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Näytön kirkkaus mukautuu automaattisesti ympäristöösi ja toimintaasi. Voit auttaa mukautuvaa kirkkautta oppimaan mieltymyksesi siirtämällä liukusäädintä."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Päällä"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Pois päältä"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Vaihtoehdot"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Saavutettavuus"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyysinen näppäimistö"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Käytä näyttönäppäimistöä"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Pidä näytöllä, kun fyysinen näppäimistö on aktiivinen"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Toistuvien painallusten ohitus"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Näppäimistö ei huomioi <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> millisekunnin sisällä toistettuja saman näppäimen painalluksia"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Hitaat näppäimet"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Muuta ajaksi, jona näppäin aktivoituu painalluksesta <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> millisekuntia"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Ohjaa hiirtä fyysisellä näppäimistöllä."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Keltainen osoittimen täytön tyyli"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Pinkki osoittimen täytön tyyli"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Sininen osoittimen täytön tyyli"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Osoittimen viivauksen tyyli"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Valkoinen"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Musta"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ei mitään"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Opettele kosketuslevyn eleitä"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ohjauslevy, ohjaus levy, hiiri, kohdistin, vieritä, pyyhkäise, klikkaa kakkospainikkeella, klikkaa, osoitin"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"klikkaa kakkospainikkeella, napauta"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Käyttäjän valitsema: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Puhe"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Osoittimen nopeus"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Osoittimen kokoasteikko"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Pienennä osoittimen kokoa"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Suurenna osoittimen kokoa"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Peliohjaimet"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Uudelleenohjaa värinä"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Ohjaa värinä peliohjaimeen, jos se on kytketty."</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Jatka silti"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Peru"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Suurennusasetukset"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Yhden sormen panorointi"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Siirrä suurennusta yhdellä sormella"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Siirry näytöllä vetämällä yhtä sormea"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Siirrä suurennusaluetta vetämällä yhdellä sormella."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Siirrää suurennusaluetta vetämällä kahdella sormella."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ei käytettävissä, kun vain osaa näytöstä suurennetaan"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zoomaa napauttamalla painiketta."</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Lähennä näyttöä nopeasti, niin näet sisällön suurempana"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Näin voit lähentää näyttöä:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Aloita suurennus käyttämällä pikanäppäintä&lt;br/&gt; {1,number,integer}. Napauta näyttöä&lt;br/&gt; {2,number,integer}. Siirry näytöllä vetämällä kahdella sormella&lt;br/&gt; {3,number,integer}. Säädä zoomausta nipistämällä kahdella sormella&lt;br/&gt; {4,number,integer}. Lopeta suurennus käyttämällä pikanäppäintä&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Väliaikainen lähentäminen:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Varmista, että suurennustapa on asetettu koko näytölle &lt;br/&gt; {1,number,integer}. Aloita suurennus käyttämällä pikanäppäintä&lt;br/&gt; {2,number,integer}. Kosketa näyttöä mistä tahansa pitkään&lt;br/&gt; {3,number,integer}. Siirry näytöllä vetämällä kahdella sormella&lt;br/&gt; {4,number,integer}. Lopeta suurennus nostamalla sormi näytöltä"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Näin voit lähentää näyttöä:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Aloita suurennus käyttämällä pikakomentoa&lt;br/&gt; {1,number,integer}. Napauta näyttöä&lt;br/&gt; {2,number,integer}. Siirry näytöllä vetämällä kahdella sormella&lt;br/&gt; {3,number,integer}. Säädä zoomausta nipistämällä kahdella sormella&lt;br/&gt; {4,number,integer}. Lopeta suurennus käyttämällä pikakomentoa&lt;br/&gt;&lt;br/&gt; Voit myös esimerkiksi lähentää tilapäisesti."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Näin voit lähentää näyttöä:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Aloita suurennus käyttämällä pikakomentoa&lt;br/&gt; {1,number,integer}. Napauta näyttöä&lt;br/&gt; {2,number,integer}. Siirry näytöllä vetämällä yhdellä tai kahdella sormella&lt;br/&gt; {3,number,integer}. Säädä zoomausta nipistämällä kahdella sormella&lt;br/&gt; {4,number,integer}. Lopeta suurennus käyttämällä pikakomentoa&lt;br/&gt;&lt;br/&gt; Voit myös esimerkiksi lähentää tilapäisesti."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kun suurennus on käytössä, voit suurentaa näytöllä olevia kohteita.\n\n"<b>"Zoomaa:"</b>" käynnistä suurennus ja napauta sitten haluamaasi kohtaa näytöllä\n"<ul><li>"Vieritä: vedä vähintään kahta sormea näytön poikki"</li>\n<li>"Säädä zoomausta: nipistä vähintään kaksi sormea yhteen tai levitä ne erilleen"</li></ul>\n\n<b>"Zoomaa väliaikaisesti:"</b>" käynnistä suurennus ja paina pitkään missä tahansa näytöllä\n"<ul><li>"Liiku näytöllä: vedä sormea eri suuntiin"</li>\n<li>"Loitonna: nosta sormi"</li></ul>\n\n"Suurennus ei toimi näppäimistöllä tai siirtymispalkissa."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Sivu <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Saavutettavuuspainikkeen pikakomento"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Napauta kelluvaa painiketta"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Saavutettavuusele"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Napauta näytön alareunassa olevaa saavutettavuuspainiketta <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Jos haluat vaihtaa ominaisuudesta toiseen, paina saavutettavuuspainiketta pitkään."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Pyyhkäise näytön alalaidasta ylös kahdella sormella.\n\nVaihda ominaisuudesta toiseen pyyhkäisemällä ylös kahdella sormella ja koskettamalla pitkään."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pyyhkäise näytön alalaidasta ylös kolmella sormella.\n\nVaihda ominaisuudesta toiseen pyyhkäisemällä ylös kolmella sormella ja koskettamalla pitkään."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Pyyhkäise ylös näytön alareunasta. Jos haluat vaihtaa ominaisuudesta toiseen, pyyhkäise ylös ja pidä näyttöä painettuna.}other{Pyyhkäise # sormella ylös näytön alareunasta. Jos haluat vaihtaa ominaisuudesta toiseen, pyyhkäise ylös # sormella ja pidä näyttöä painettuna.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Lisäasetukset"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Lue lisää: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Äänenvoimakkuuspainikkeet"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"äänenvoimakkuuspainikkeet"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Paina molempia äänenvoimakkuuspainikkeita pitkään"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Kaksoisnapauta näyttöä kahdella sormella"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Kaksoisnapautus %1$d sormella"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Napauta näyttöä nopeasti kaksi kertaa %1$d sormella"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kolmoisnapautus"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Napauta näyttöä nopeasti %1$d kertaa. Tämä voi hidastaa laitetta."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Kaksoisnapautus %1$d sormella"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Napauta näyttöä {0,number,integer} kertaa nopeasti kahdella sormella"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Kolmoisnapauta näyttöä"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kolmoisnapautus"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Napauta näyttöä nopeasti {0,number,integer} kertaa. Tämän pikanäppäimen käyttö voi hidastaa laitettasi."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Lisäasetukset"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Esteettömyys-painikkeen toiminnoksi on valittu <xliff:g id="SERVICE">%1$s</xliff:g>. Jos haluat käyttää suurennusta, kosketa Esteettömyys-painiketta pitkään ja valitse suurennus."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Esteettömyyseleen asetus on <xliff:g id="SERVICE">%1$s</xliff:g>. Jos haluat käyttää suurennusta, pyyhkäise kahdella sormella ylös näytön alalaidasta ja paina pitkään. Valitse sitten suurennus."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Tämä palvelu ei toimi oikein."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Saavutettavuuden pikanäppäimet"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Näytä pika-asetuksissa"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Puna-vihersokeus"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Puna-vihersokeus"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Puna-vihersokeus, viherheikkous"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Puna-vihersokeus, punaheikkous"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Sini-keltasokeus"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Harmaasävy"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Voimakkuus"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vihreän värin heikkous, deuteranomalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Punaisen värin heikkous, protanomalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ei saatavilla harmaasävytilassa tai värinkorjauksen ollessa poissa käytöstä"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Erittäin himmeä"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Tee näytöstä erittäin himmeä"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Turkoosi"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Keltainen"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Saako <xliff:g id="SERVICE">%1$s</xliff:g> laitteesi täyden käyttöoikeuden?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> saa luvan:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Sovellus peittää lupapyynnön, joten Asetukset ei voi vahvistaa valintaasi."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> pyytää laitteen täyttä hallintaoikeutta. Palvelu voi lukea näytön sisällön ja toimia esteettömyyspalvelujen käyttäjien puolesta. Hallintaoikeudet ovat useimmille sovelluksille liian laajat."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Täysi käyttöoikeus sopii saavutettavuussovelluksille, mutta ei useimmille sovelluksille."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Näytön katselu ja ohjaus"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Se voi lukea kaiken näytön sisällön ja näyttää sisältöä kaikista sovelluksista."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Toimintojen näkeminen ja suorittaminen"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Se voi seurata toimintaasi sovelluksella tai laitteistoanturilla ja käyttää sovelluksia puolestasi."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Salli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Estä"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Pois"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ei yhtään}=1{1 aikataulu luotu}other{# aikataulua luotu}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Älä häiritse"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioriteettitilat"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Lisää tila"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimoi häiriötekijät ja paranna keskittymistäsi esimerkiksi uni-, työskentely- ja ajotiloilla."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Luo oma tila"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Salli ilmoitukset vain tärkeiltä ihmisiltä ja sovelluksilta"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Luo aikataulu"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Aikataulu tämän perusteella:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Päivä ja aika"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"klo 9–17 arkipäivisin\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalenteritapahtumat"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} on aktiivinen}=2{{mode_1} ja {mode_2} ovat aktiivisia}=3{{mode_1}, {mode_2} ja {mode_3} ovat aktiivisia}other{{mode_1}, {mode_2} ja # muuta ovat aktiivisia}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 tila voi mennä päälle automaattisesti}other{# tilaa voi mennä päälle automaattisesti}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"PÄÄLLÄ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ei asetettu"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Ei käytössä"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Tilan luominen"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Oma"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Laita päälle nyt"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Laita pois päältä"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Tilaa ei löytynyt"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Keskeytysten rajoittaminen"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Estä keskeytykset ja häiriöt"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Ota <xliff:g id="MODE">%1$s</xliff:g> käyttöön"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Laita Älä häiritse ‑tila päälle"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Hälytykset ja median äänet voivat keskeyttää"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Aikataulut"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Poista aikataulut"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Poista"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Nimeä uudelleen"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Poista"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Poistetaanko tila (<xliff:g id="MODE">%1$s</xliff:g>)?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Muokkaa"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Aikataulut"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Aikataulu"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Ota käyttöön automaattisesti"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Kalenterin lisääminen"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Käytä kalenteria"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Aikataulu"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Luo aikataulu"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Milloin automaattisesti päällä"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Tapahtuman aikataulu"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Päällä tapahtumien aikana:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Jos kutsun vastaus on"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Aikaan perustuva aikataulu"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Aikataulu"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Aikataulu"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Salli keskeytykset äänen kanssa"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Estä näkyvät häiriötekijät"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Salli visuaaliset signaalit"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Ilmoitukset, joita et saa"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Lisätoiminnot"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Ilmoitusten suodattimet"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Lisää asetuksia"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Pois päältä}=1{Pois päältä / 1 tila voi mennä päälle automaattisesti}other{Pois päältä / # tilaa voi mennä päälle automaattisesti}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Näyttöasetukset"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Näyttöasetukset"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Harmaasävy"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ota tumma teema käyttöön"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Vaihda käyttöjärjestelmään ja sovelluksiin vaalea teksti tummalla taustalla, mikä voi rasittaa silmiä vähemmän ja säästää akkua merkittävästi joillakin laitteilla"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Ei muutoksia näyttöön}=1{{effect_1}}=2{{effect_1} ja {effect_2}}=3{{effect_1}, {effect_2} ja {effect_3}}other{{effect_1}, {effect_2} ja # muuta}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Rajoita mistä voit saada ilmoituksia"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Häiriöitä ei suodateta"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Suodatettujen ilmoitusten näyttövalinnat"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kun Älä häiritse -tila on käytössä"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Ei ilmoitusääniä"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"avaa ilmoitus"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Salli ilmoitusten torkuttaminen"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Sovelluskuvakkeen pistemerkki"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Ilmoitusniput"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Kuplat"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Kuplat"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Lisää tämä keskustelu kuplaksi"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Tämä sovellus ei tue tehostettuja asetuksia"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Lisää asetuksia"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Lisää asetuksia on saatavilla sovelluksen sisällä"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Mukautuvat ilmoitukset"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Käytä mukautuvia ilmoituksia"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kun saat monia ilmoituksia lyhyen ajan sisällä, puhelin vähentää äänenvoimakkuutta ja minimoi näytöllä näkyvät ponnahdusikkunat enintään kahdeksi minuutiksi. Ilmoitukset puheluista, hälytyksistä ja tärkeistä keskusteluista värisevät, kuulet niistä äänimerkin tai ne näkyvät näytöllä. Kaikki ilmoitukset löytyvät helposti, kun vedät yläreunasta alaspäin."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Ilmoitusten hiljentäminen"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Käytä ilmoitusten vaimennusta"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kun saat monia ilmoituksia lyhyen ajan sisällä, laite vähentää äänenvoimakkuutta ja minimoi ilmoitukset enintään kahdeksi minuutiksi. Tämä ei koske soittoja, hälytyksiä ja tärkeitä keskusteluja. \n\nVaimennuksen aikana saadut ilmoitukset näkyvät, kun vedät alas näytön yläreunasta."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Käytä työprofiileissa"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Käytä työprofiilin sovelluksissa"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-avustinpalvelut"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Luokat"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Muut"</string>
     <string name="no_channels" msgid="4716199078612071915">"Tämä sovellus ei ole lähettänyt ilmoituksia"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Näytä käyttämättömät kategoriat"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Lisäasetukset sovelluksessa"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Näytä käyttämättömät kategoriat"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Piilota käyttämättömät kategoriat"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Keskustelut"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Kaikki keskustelut"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"kaikki keskustelut"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Tärkeät keskustelut"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"tärkeät keskustelut"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"–"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Sovellukset, jotka saavat keskeyttää"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valitut sovellukset"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ei mitään"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Kaikki"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Mitkään sovellukset eivät voi keskeyttää}=1{{app_1} voi keskeyttää}=2{{app_1} ja {app_2} voivat keskeyttää}=3{{app_1}, {app_2} ja {app_3} voivat keskeyttää}other{{app_1}, {app_2} ja # muuta voivat keskeyttää}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (työ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Lasketaan…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Salli ohittaminen sovelluksille"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Sovellukset, jotka saavat keskeyttää"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Valitse lisää sovelluksia"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Mikään ei voi keskeyttää"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Kukaan ei voi keskeyttää"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Jotkut voivat keskeyttää"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Usein soittavat voivat keskeyttää"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Kaikki käyttäjät voivat keskeyttää"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Toistuvasti soittavat"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Salli usein soittavat"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Muuta hälytyksiä tunnilla tähän asti: {time}}other{Muuta hälytyksiä # tunnilla tähän asti: {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ota vain herätykset käyttöön kello <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> asti."</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Salli keskeytykset aina."</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Nimeä uudelleen"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Vaihda kuvake"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Vaihda kuvake"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Muokkaustila"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Luo tila"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Oma tila"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Tilan nimi"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenteritapahtumat"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Nukkumaanmeno-ohjelma"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ajon aikana"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Sovellusasetukset"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Tiedot ja asetukset: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Ylläpitäjä: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Poistetaanko <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Kun tila on pois käytöstä, se ei mene koskaan päälle"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Poista käytöstä"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Otetaanko <xliff:g id="MODE_NAME">%1$s</xliff:g> käyttöön?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Tila voi mennä automaattisesti päälle asetuksista riippuen"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ota käyttöön"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Valitse tila, joka noudattaa säännöllistä aikataulua"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Valitse tila kalenteritapahtumien ja kutsuvastausten synkronointia varten"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Suunnittele rauhoittava rutiini nukkumaankäyntiä varten. Lisää herätykset, himmennä näyttö ja estä ilmoitukset."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Priorisoi turvallisuutta, jotta voit keskittyä ajamiseen ilman häiriöitä"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Estä häiriöt laitteelta, jotta voit keskittyä paremmin"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminoi kaikki häiriöt, jotta voit nauttia hiljaisuudesta"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personoi laitteen käyttökokemuksia ja asetuksia eri käyttäjille"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimoi häiriöt sallimalla ilmoitukset vain tärkeiltä ihmisiltä ja sovelluksilta"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Varoitus"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Sulje"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Lähetä palautetta tästä laitteesta"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Kotelo"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akku"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Asetuspaneeli"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Pakota työpöytätila"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Pakota kokeellinen työpöytätila toissijaisille näytöille"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Ota vapaamuotoiset ikkunat käyttöön"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Vapaamuotoiset ikkunat toissijaisella näytöllä"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ota käyttöön kiinteän kokoiset usean ikkunan tilassa"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Sallii kiinteän kokoiset sovellukset usean ikkunan tilassa"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Ohita SmartDarkin pakottaminen päälle"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiilidata"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Laitteen käyttökokemuksen parantamiseksi sovellukset ja palvelut voivat hakea Wi-Fi-verkkoja myös silloin, kun Wi-Fi on pois päältä. Näin voidaan esimerkiksi kehittää sijaintiin perustuvia ominaisuuksia ja palveluja. Voit muuttaa asetusta Wi-Fi-haun asetuksissa."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Muuta"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Yhdistetty"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Väliaikaisesti yhdistetty"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Käyttää väliaikaisesti: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Käytä sovelluksen kiinnitystä"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Käytä kehittäjäasetuksia"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Käytä tulostuspalvelua"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Salli useat käyttäjät"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Salli käyttäjien välillä vaihtaminen"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"salli, useita, käyttäjä, lupa, monta"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"monta, käyttäjää, profiilia, henkilöä, tiliä, vaihda, useita"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Käytä langatonta virheenkorjausta"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Valitse, mitä näytölläsi näkyy, kun tabletti on telineessä. Laitteesi saattaa käyttää enemmän virtaa, kun näytönsäästäjä on käytössä."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Yksilöi"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Muokkaa <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Vapaamuotoisen tilan käyttöönotto edellyttää uudelleenkäynnistystä."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Työpöytätilan pakottaminen toissijaisille näytöille edellyttää uudelleenkäynnistystä."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Laite täytyy käynnistää uudelleen, jos haluat ottaa vapaamuotoisten ikkunoiden tuen käyttöön."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Laite täytyy käynnistää uudelleen, jos haluat päivittää vapaamuotoisten ikkunoiden saatavuuden."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Laite täytyy käynnistää uudelleen, jos haluat ottaa vapaamuotoiset ikkunat käyttöön toissijaisilla näytöillä."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Käynnistä uudelleen nyt"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Käynnistä uudelleen myöhemmin"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Tila-audio"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ruusu"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violetti"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Valmis"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Tallenna"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Peru"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Oletus"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Keskitaso"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Päällä"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Pois päältä"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Päällä"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d %% vasen, %2$d %% oikea"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d %% oikea, %2$d %% vasen"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Laitteesi nimi näkyy asentamillesi sovelluksille. Myös muut käyttäjät voivat nähdä nimen, kun muodostat Bluetooth-yhteyden laitteisiin, yhteyden Wi-Fi-verkkoon tai aktivoit Wi-Fi-hotspotin."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Kieliopillinen suku"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Valitse kieliopillinen suku"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Kuuntele striimiä"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skannaa QR-koodi, niin <xliff:g id="DEVICE_NAME">%1$s</xliff:g> voi toistaa audiostriimiä"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Salasanaa ei voi muokata jakamisen aikana. Jos haluat vaihtaa salasanaa, laita ensin audionjako pois päältä."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-koodiskanneri"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Hae asetuksia"</string>
 </resources>
diff --git a/res/values-fr-rCA-feminine/strings.xml b/res/values-fr-rCA-feminine/strings.xml
new file mode 100644
index 0000000..5cb71f6
--- /dev/null
+++ b/res/values-fr-rCA-feminine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="wifi_settings_wep_networks_disconnect_summary" msgid="6894496037087903635">"Vous êtes connectée à un réseau WEP. Si vous arrêtez d\'autoriser ces réseaux, vous serez déconnectée."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous êtes déjà connectée à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
+    <string name="users_summary" msgid="8473589474976307510">"Connectée en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="bluetooth_message_access_dialog_content" msgid="7186694737578788487">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos messages.\n\nVous ne vous êtes jamais connectée à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+    <string name="bluetooth_phonebook_access_dialog_content" msgid="959658135522249170">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos contacts et à votre journal d\'appels. Cela comprend des données à propos des appels entrants et sortants.\n\nVous ne vous êtes jamais connectée à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+</resources>
diff --git a/res/values-fr-rCA-masculine/strings.xml b/res/values-fr-rCA-masculine/strings.xml
new file mode 100644
index 0000000..1a0d252
--- /dev/null
+++ b/res/values-fr-rCA-masculine/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="wifi_settings_wep_networks_disconnect_summary" msgid="6894496037087903635">"Vous êtes connecté à un réseau WEP. Si vous arrêtez d\'autoriser ces réseaux, vous serez déconnecté."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous êtes déjà connecté à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
+    <string name="users_summary" msgid="8473589474976307510">"Connecté en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="bluetooth_message_access_dialog_content" msgid="7186694737578788487">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos messages.\n\nVous ne vous êtes jamais connecté à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+    <string name="bluetooth_phonebook_access_dialog_content" msgid="959658135522249170">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos contacts et à votre journal d\'appels. Cela comprend des données à propos des appels entrants et sortants.\n\nVous ne vous êtes jamais connecté à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+</resources>
diff --git a/res/values-fr-rCA-neuter/strings.xml b/res/values-fr-rCA-neuter/strings.xml
new file mode 100644
index 0000000..07dd7e6
--- /dev/null
+++ b/res/values-fr-rCA-neuter/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="wifi_settings_wep_networks_disconnect_summary" msgid="6894496037087903635">"Vous êtes connecté·e à un réseau WEP. Si vous arrêtez d\'autoriser ces réseaux, vous serez déconnecté·e."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Vous disposez déjà d\'une connexion à un RPV. Si vous vous connectez à un RPV différent, votre RPV actuel sera remplacé."</string>
+    <string name="users_summary" msgid="8473589474976307510">"Connecté·e en tant que <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="bluetooth_message_access_dialog_content" msgid="7186694737578788487">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos messages.\n\nVous ne vous êtes jamais connecté·e à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+    <string name="bluetooth_phonebook_access_dialog_content" msgid="959658135522249170">"Un appareil Bluetooth, <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, souhaite accéder à vos contacts et à votre journal d\'appels. Cela comprend des données à propos des appels entrants et sortants.\n\nVous ne vous êtes jamais connecté·e à <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g> auparavant."</string>
+</resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 61ce105..f65bd30 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Heure du coucher"</item>
-    <item msgid="4152450357280759894">"En conduite"</item>
-    <item msgid="7096549258219399423">"Immersif"</item>
-    <item msgid="2760716776980432977">"Gérée"</item>
-    <item msgid="601734478369121764">"Étoile"</item>
-    <item msgid="6243809315432780521">"Agenda"</item>
-    <item msgid="4913577903148415331">"Heure"</item>
-    <item msgid="3653377604690057780">"Théâtre"</item>
-    <item msgid="3843711267408385410">"Fleur"</item>
+    <item msgid="2750940760340557109">"Demi-lune"</item>
+    <item msgid="8513969636586738035">"Voiture"</item>
+    <item msgid="957392343846370509">"Esprit d\'une personne"</item>
+    <item msgid="6734164279667121348">"Agenda"</item>
+    <item msgid="4139559120353528558">"Horloge"</item>
+    <item msgid="5157711296814769020">"Parasol"</item>
+    <item msgid="6635328761318954115">"Tente"</item>
+    <item msgid="1711994778883392255">"Pellicule de film"</item>
+    <item msgid="9097658401859604879">"Manette de jeu"</item>
+    <item msgid="755931364157422565">"Haltères d\'entraînement"</item>
+    <item msgid="8894207806795738429">"Personne lançant le ballon"</item>
+    <item msgid="2274801572149555103">"Personne donnant un coup de pied"</item>
+    <item msgid="8795037201506843325">"Natation"</item>
+    <item msgid="3558421426169430451">"Personne faisant de la randonnée pédestre"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Outils d\'atelier"</item>
+    <item msgid="4595330511709890409">"Mallette"</item>
+    <item msgid="8352738347856724389">"Étoile"</item>
+    <item msgid="7082783098151998721">"Fleur de lotus"</item>
+    <item msgid="5772220259409264724">"Superviseur"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index f7a4786..82b5eba 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendu"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Inconnu"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Aperçu"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Code QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Rapetisser"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Agrandir"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Toujours"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Paramètres de l\'appareil auditif"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Raccourci, compatibilité avec les prothèses auditives"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Préréglage"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Aucun préréglage n\'a été programmé par votre audiologiste"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Impossible de mettre à jour le préréglage"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Sortie audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"À propos de la sortie audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La sélection de la langue pour cette appli n\'est pas accessible à partir des paramètres."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"La langue peut différer des langues offertes dans l\'appli. Certaines applis peuvent ne pas prendre en charge ce paramètre."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Configurez la langue pour chaque appli."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Le système, les applis et les sites Web utilisent la première langue prise en charge parmi vos langues préférées."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Votre appareil, vos applis et vos sites Web utilisent la première langue prise en charge dans votre liste de langues préférées.\n\nDe nombreuses applis utilisent également la région de votre langue préférée pour formater les dates, les nombres et les unités. Pour changer de région, ajoutez une langue, puis choisissez 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, consultez les paramètres de langue des applis."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"En savoir plus sur les langues des applis"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sélectionner %s comme langue du système?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activée / # appli a accès à la position}one{Activée / # appli a accès à la position}other{Activée / # applis ont accès à la position}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement en cours…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Les applis qui disposent de l\'autorisation de détection des appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Les applis qui possèdent l\'autorisation de détection des appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accès à la position est désactivé pour les applis et les services. La position de votre appareil pourrait quand même être envoyée aux intervenants d\'urgence lorsque vous appelez ou textez un numéro d\'urgence."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Pour modifier cela, accédez à Paramètres ChromeOS &gt; Confidentialité et sécurité &gt; Paramètres de confidentialité &gt; Accès à la localisation"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"<xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Empreinte digitale, <xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Empreintes digitales, <xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Déverrouiller Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Montre ajoutée"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurer votre montre"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"En savoir plus sur le Déverrouillage à l\'aide d\'une montre"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ajouter une montre"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Retirer une montre"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Déverrouillage empreinte digitale et reconnaissance faciale"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Déverr. par reconn. faciale et empreinte digitale"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverrouillage par recon. faciale et emp. digitale pour le travail"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuration requise"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Empreintes digitales et visage ajoutés"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configuration de l\'Espace privé en cours…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Impossible de configurer un Espace privé"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Réessayer"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Quitter"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"L\'espace privé n\'est pas accessible.\nAfficher les causes possibles"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Afficher les causes possibles"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Choisir un nouveau verrou pour l\'Espace privé?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Vous pouvez définir un nouveau verrou réservé à l\'Espace privé ou utiliser le même verrou utilisé pour déverrouiller votre appareil."</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Utiliser le Verrouillage de l\'écran"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Redémarrer l\'appareil?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Les détails de la journalisation CCP sont enregistrés à des fins de développement uniquement. Des données CCP supplémentaires sont comprises dans les rapports de bogue, qui peuvent contenir des renseignements confidentiels. Redémarrez votre appareil pour modifier ce paramètre."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Redémarrer"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Activé"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Désactivé"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Écran externe"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Utiliser un écran externe"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Résolution de l\'écran"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"L\'écran externe est déconnecté"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Changer la rotation ou la résolution pourrait arrêter toute appli en cours d\'exécution"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Votre appareil doit être connecté à un écran externe pour dupliquer votre écran"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Autres options"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Diffusion"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"miroir"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Activer l\'affichage sans fil"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptatives"</string>
     <string name="brightness" msgid="6216871641021779698">"Niveau de luminosité"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Luminosité adaptative"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"À propos de la luminosité adaptative"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"La luminosité de votre écran s\'adapte automatiquement à votre environnement et à vos activités. Vous pouvez déplacer le curseur manuellement pour aider la luminosité adaptative à apprendre vos préférences."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activé"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Désactivée"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Utiliser le clavier à l\'écran"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Afficher lorsque le clavier physique est activé"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Touches non répétées"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Le clavier ignore les appuis répétés rapidement sur les touches de la même clé dans un délai de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Touches lentes"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Règle le temps nécessaire pour qu\'un appui sur une touche soit activé à <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Utiliser le clavier physique pour contrôler la souris"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Changez style du pointeur à jaune"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Changez le style du pointeur à rose"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Changez le style du pointeur à bleu"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Style de trait du pointeur"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanc"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Noir"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Aucun"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Apprendre les gestes du pavé tactile"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"pavé tactile, souris, curseur, faire défiler, balayer, faire un clic droit, cliquer, pointeur"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"faire un clic droit, toucher"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Utilisateur sélectionné : <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Parole"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Vitesse du pointeur"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Échelle du pointeur"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Diminuer l\'échelle du pointeur"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Augmenter l\'échelle du pointeur"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Manette de jeu"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Rediriger les vibrations"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Rediriger les vibrations vers la manette de jeu lorsqu\'elle est connectée"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuer quand même"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuler"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Paramètres d\'agrandissement"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Effectuez un panoramique avec un doigt"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Bouger la Loupe avec un doigt"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Glissez un doigt pour vous déplacer sur l\'écran"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Déplacez la zone d\'agrand. en faisant glisser un doigt."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Déplacez la zone d\'agrand. en faisant glisser deux doigts."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Non disponible lorsque vous agrandissez seulement une partie de l\'écran"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Touchez un bouton pour zoomer"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoomez rapidement pour agrandir le contenu"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Pour zoomer :&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Utilisez le raccourci pour commencer l\'agrandissement&lt;br/&gt; {1,number,integer}. Touchez l\'écran&lt;br/&gt; {2,number,integer}. Faites glisser deux doigts pour naviguer dans l\'écran&lt;br/&gt; {3,number,integer}. Pincez l\'écran avec deux doigts pour ajuster le zoom&lt;br/&gt; {4,number,integer}. Utilisez le raccourci pour arrêter l\'agrandissement&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Pour zoomer temporairement :&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Assurez-vous que le type d\'agrandissement est défini à plein écran&lt;br/&gt; {1,number,integer}. Utilisez le raccourci pour commencer l\'agrandissement&lt;br/&gt; {2,number,integer}. Maintenez le doigt sur une zone de l\'écran&lt;br/&gt; {3,number,integer}. Faites glisser un doigt pour naviguer dans l\'écran&lt;br/&gt; {4,number,integer}. Levez le doigt pour arrêter l\'agrandissement"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Pour zoomer, procédez comme suit :&lt;/b&gt;&lt;br/&gt; {0,number,integer} Utilisez le raccourci pour commencer l\'agrandissement&lt;br/&gt; {1,number,integer}. Touchez l\'écran&lt;br/&gt; {2,number,integer}. Faites glisser deux doigts pour naviguer dans l\'écran&lt;br/&gt; {3,number,integer}. Pincez l\'écran avec deux doigts pour ajuster le zoom&lt;br/&gt; {4,number,integer}. Utilisez le raccourci pour arrêter l\'aggrandissement&lt;br/&gt;&lt;br/&gt; Vous pouvez aussi zoomer temporairement et plus."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Pour zoomer, procédez comme suit :&lt;/b&gt;&lt;br/&gt; {0,number,integer} Utilisez le raccourci pour commencer l\'agrandissement&lt;br/&gt; {1,number,integer}. Touchez l\'écran&lt;br/&gt; {2,number,integer}. Faites glisser un ou deux doigts pour naviguer dans l\'écran&lt;br/&gt; {3,number,integer}. Pincez l\'écran avec deux doigts pour ajuster le zoom&lt;br/&gt; {4,number,integer}. Utilisez le raccourci pour arrêter l\'aggrandissement&lt;br/&gt;&lt;br/&gt; Vous pouvez aussi zoomer temporairement et plus."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"When magnification is turned on, you can zoom in on your screen.\n\n"<b>"Pour effectuer un zoom,"</b>", activez cette fonction, puis touchez une zone de l\'écran.\n"<ul><li>"Glissez deux doigts ou plus sur l\'écran pour le faire défiler"</li>\n<li>"Pincez deux doigts ou plus pour ajuster le zoom"</li></ul>\n\n<b>"Pour zoomer temporairement l\'écran"</b>", touchez le bouton d\'accessibilité, puis maintenez le doigt sur ailleurs sur l\'écran.\n"<ul><li>"Glissez votre doigt sur l\'écran à l\'endroit désiré"</li>\n<li>"Relevez le doigt pour zoomer vers l\'arrière"</li></ul>\n\n"On ne peut pas zoomer sur le clavier ou la barre de navigation."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> sur <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Raccourci du bouton d\'accessibilité"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Touchez le bouton flottant"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Geste d\'accessibilité"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Touchez le bouton d\'accessibilité <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> au bas de l\'écran. Pour basculer entre les fonctionnalités, maintenez le doigt sur le bouton d\'accessibilité."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Balayez l\'écran de bas en haut avec deux doigts.\n\nPour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec deux doigts et maintenez la pression."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Balayez l\'écran de bas en haut avec trois doigts.\n\nPour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec trois doigts et maintenez-les-y."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Balayez votre écran du bas vers le haut. Pour basculer entre les fonctionnalités, balayez l\'écran vers le haut et maintenez le doigt en place.}one{Balayez l\'écran du bas vers le haut avec # doigt. Pour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec # doigt et maintenez-le en place.}other{Balayez l\'écran du bas vers le haut avec # doigts. Pour basculer entre les fonctionnalités, balayez l\'écran vers le haut avec # doigts et maintenez-les en place.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Autres options"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"En savoir plus sur <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Toucher deux fois l\'écran avec deux doigts"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Touchez rapidement l\'écran %1$d fois. Cela pourrait ralentir votre appareil."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"toucher deux fois avec %1$d doigts"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Touchez rapidement l\'écran {0,number,integer} fois avec deux doigts"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Toucher l\'écran trois fois"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"toucher trois fois"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Touchez rapidement l\'écran {0,number,integer} fois. Ce raccourci peut ralentir votre appareil"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Paramètres avancés"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Le bouton d\'accessibilité est défini à <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser cette fonction, maintenez enfoncé le bouton d\'accessibilité, puis sélectionnez l\'agrandissement."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Le geste d\'accessibilité est défini pour <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser le zoom, balayez l\'écran de bas en haut deux avec doigts, puis maintenez-les-y. Sélectionnez ensuite Zoom."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ce service est défectueux."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Raccourcis d\'accessibilité"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Afficher dans la fenêtre de configuration rapide"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rouge-vert"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rouge-vert"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rouge-vert, vert faible"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rouge-vert, rouge faible"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Bleu-jaune"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nuances de gris"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensité"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vert faible, deutéranomalie"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rouge faible, protanomalie"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Inaccessible en mode Nuances de gris ou lorsque la correction des couleurs est désactivée"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deutéranomalie"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalie"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Très sombre"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Activer la réduction suppl. de la luminosité"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Jaune"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Permettre au service <xliff:g id="SERVICE">%1$s</xliff:g> de contrôler complètement votre appareil?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> doit pouvoir :"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Une appli obscurcit une demande d\'autorisation, alors Paramètres ne peut pas vérifier votre réponse."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> demande l\'autorisation de contrôler cet appareil. Le service peut lire l\'écran et agir pour les utilisateurs qui font appels aux fonctions d\'accessibilité. Ce niveau de contrôle ne convient pas à la majorité des applis."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Le contrôle total convient aux applis qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applis."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Afficher et contrôler l\'écran"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Cette fonctionnalité peut lire tout le contenu à l\'écran et afficher du contenu par-dessus d\'autres applis."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Afficher et effectuer des actions"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Cette fonctionnalité peut faire le suivi de vos interactions avec une appli ou un capteur matériel et interagir avec des applis en votre nom."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
@@ -3320,22 +3340,43 @@
     <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="5138745349253275428">"Modes prioritaires"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Ajouter un mode"</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_add_mode" msgid="5926457160307593664">"Créez 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>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Horaire en fonction de"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Jour et heure"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"« 9 h à 17 h les jours de semaine »"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Événements d\'agenda"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Le mode {mode_1} est actif}=2{Les modes {mode_1} et {mode_2} sont actifs}=3{Les modes {mode_1}, {mode_2} et {mode_3} sont actifs}one{Les modes {mode_1}, {mode_2}, et # autre sont actifs}other{Les modes {mode_1}, {mode_2}, et # autres sont actifs}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode peut s\'activer automatiquement}one{# mode peut s\'activer automatiquement}other{# modes peuvent s\'activer automatiquement}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVÉ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Non défini"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Désactivé"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Créer un mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personnalisé"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Activer maintenant"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Désactiver"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mode non trouvé"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limiter les interruptions"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloquez les interruptions et les distractions"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurer le mode <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activer le mode Ne pas déranger"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Les alarmes et les sons des éléments multimédias peuvent provoquer des interruptions"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Horaires"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Supprimer les horaires"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Supprimer"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Renommer"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Supprimer"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Supprimer le mode « <xliff:g id="MODE">%1$s</xliff:g> »?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Modifier"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Horaires"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Horaire"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Activer automatiquement"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Ajoutez un agenda"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Utiliser votre agenda"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programme"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Définissez un horaire"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Quand l\'activer automatiquement"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programme de l\'événement"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Activez lors des événements pour"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Là où la réponse à l\'invitation est"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Calendrier de l\'horaire"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programmer"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Horaire"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Autoriser les interruptions qui émettent des sons"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquer dérangements visuels"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Autoriser les signaux visuels"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Des notifications qui peuvent vous parvenir"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Actions supplémentaires"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtres de notification"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Plus de paramètres"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Désactivé}=1{Désactivé : 1 mode peut s\'activer automatiquement}one{Désactivé : # mode peut s\'activer automatiquement}other{Désactivé : # modes peuvent s\'activer automatiquement}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Paramètres d\'affichage"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Options d\'affichage"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Nuances de gris"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"activer le thème sombre"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Faire en sorte que le SE et les applis utilisent plutôt une écriture pâle sur un fond foncé, ce qui peut être plus doux pour les yeux et permettre une économie considérable de la pile sur certains appareils"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Aucune modification apportée à l\'affichage}=1{{effect_1}}=2{{effect_1} et {effect_2}}=3{{effect_1}, {effect_2} et {effect_3}}one{{effect_1}, {effect_2} et # autre}other{{effect_1}, {effect_2} et # autres}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limiter les notifications possibles"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Aucune interruption n\'est filtrée"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Afficher les options pour les notifications filtrées"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Quand le mode Ne pas déranger est activé"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Aucun son des notifications"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"ouvrir la notification"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Autoriser le report des notifications"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Pastille de notification sur l\'icône de l\'appli"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Groupes de notifications"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bulles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bulles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Afficher cette conversation sous forme de bulles"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Cette appli ne prend pas en charge les paramètres améliorés"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Plus de paramètres"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Plus de paramètres sont accessibles dans cette appli"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notifications adaptatives"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Utiliser les notifications adaptatives"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Lorsque vous recevez de nombreuses notifications dans un court laps de temps, votre téléphone baisse le volume et réduit les fenêtres contextuelles à l\'écran pendant deux minutes maximum. Les appels, les alarmes et les conversations prioritaires continuent de vibrer, d\'émettre un son ou de s\'afficher à l\'écran, et toutes les notifications sont faciles à trouver lorsque vous faites glisser le volet des notifications vers le bas."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Période de stabil. des notif."</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Utiliser l\'atténuation des notifications"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Lorsque vous recevez de nombreuses notifications pendant un court laps de temps, votre appareil baisse le volume et réduit les alertes pour une période maximale de deux minutes. Les appels, les alarmes et les conversations prioritaires ne sont pas concernés par cette mesure. \n\nLes notifications reçues pendant cette période peuvent être affichées 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">"L\'appliquer aux applis du profil professionnel"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance pour la réalité virtuelle"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Catégories"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Autre"</string>
     <string name="no_channels" msgid="4716199078612071915">"Cette appli n\'a publié aucune notification"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Afficher les catégories inutilisées"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Paramètres supplémentaires dans l\'appli"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Afficher les catégories inutilisées"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Masquer les catégories inutilisées"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> à <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversations"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Toutes les conversations"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"toutes les conversations"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversations prioritaires"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversations prioritaires"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Aucune"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Applis qui peuvent provoquer des interruptions"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Applis sélectionnées"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Aucune"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tout"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Aucune appli ne peut provoquer d\'interruption}=1{{app_1} peut provoquer des interruptions}=2{{app_1} et {app_2} peuvent provoquer des interruptions}=3{{app_1}, {app_2} et {app_3} peuvent provoquer des interruptions}one{{app_1}, {app_2} et # autre appli peuvent provoquer des interruptions}other{{app_1}, {app_2} et # autres applis peuvent provoquer des interruptions}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (professionnel)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calcul en cours…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Autoriser les applis à ignorer le mode Ne pas déranger"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Applis qui peuvent provoquer des interruptions"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Sélectionner plus d\'applis"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Rien ne peut provoquer d\'interruption"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Personne ne peut provoquer d\'interruption"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Certaines personnes peuvent provoquer des interruptions"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Les appelants fréquents peuvent vous interrompre"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Tout le monde peut provoquer des interruptions"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Appelants fréquents"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Autoriser les appels répétés"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ne recevoir que les alarmes pendant une heure jusqu\'à {time}}one{Ne recevoir que les alarmes pendant # heure jusqu\'à {time}}other{Ne recevoir que les alarmes pendant # heures jusqu\'à {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ne recevoir que les alarmes jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Activer le mode Toujours interrompre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Renommer"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Changer d\'icône"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Changer d\'icône"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modifier le mode"</string>
+    <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>
+    <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>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"En conduisant"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Paramètres de l\'appli"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Renseignements et paramètres dans <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Géré par <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Désactiver <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ce mode ne s\'activera jamais lorsqu\'il est désactivé"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Désactiver"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Voulez-vous activer <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ce mode peut s\'activer automatiquement en fonction des paramètres"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activer"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Définir un mode qui suit un programme régulier"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Définir un mode qui se synchronise avec les événements d\'agenda et les réponses aux invitations"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Créez une routine de sommeil apaisante. Réglez des alarmes, atténuez la luminosité de l\'écran et bloquez les notifications."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Donner la priorité à la sécurité sur la route pour une conduite attentive et sans distraction"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloquer les distractions ou les interruptions de votre appareil pour mieux vous concentrer"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Éliminer toutes les distractions pour créer un environnement calme"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personnaliser l\'expérience et les paramètres de l\'appareil pour différents utilisateurs"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Réduire au minimum les interruptions en n\'autorisant que les personnes et les applis importantes à vous joindre"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Mise en garde"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Fermer"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Commentaires sur cet appareil"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Étui"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pile"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panneau Paramètres"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forcer le mode bureau"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forcer le mode bureau expérimental sur les écrans secondaires"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Activer les fenêtres de forme libre"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Activer les fenêtres de forme libre sur l\'écran secondaire"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activer éléments non redimensionnables en mode multi-fenêtre"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Activer les applis non redimensionnables en mode multi-fenêtre"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Forcer l\'activation du thème sombre forcé"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"données cellulaires"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Pour améliorer l\'expérience d\'utilisation de l\'appareil, les applis et les services peuvent continuer de rechercher les réseaux Wi-Fi en tout temps, même si le Wi-FI est désactivé. Cette autorisation peut permettre, par exemple, d\'améliorer les fonctionnalités et les services reposant sur la localisation. Vous pouvez modifier vos préférences dans les paramètres de recherche de réseaux Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Changer"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> : <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connexion active"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connectée temporairement"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Utilise temporairement <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,12 +5069,12 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Utiliser l\'Épinglage d\'appli"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Utiliser les options pour les développeurs"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Utiliser le service d\'impression"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Autoriser plusieurs utilisateurs"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permettre le changement d\'utilisateur"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"autoriser, plusieurs, utilisateur, permettre, beaucoup"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"multiples, utilisateurs, profils, personnes, comptes, commutateur, plusieurs"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Utiliser le débogage sans fil"</string>
     <string name="graphics_driver_main_switch_title" msgid="6125172901855813790">"Utiliser les préférences du pilote graphique"</string>
-    <string name="night_light_main_switch_title" msgid="3428298022467805219">"Utiliser le mode Éclairage nocturne"</string>
+    <string name="night_light_main_switch_title" msgid="3428298022467805219">"Utiliser l\'Éclairage nocturne"</string>
     <string name="nfc_main_switch_title" msgid="6295839988954817432">"Utiliser la technologie CCP"</string>
     <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"Utiliser la luminosité adaptative"</string>
     <string name="wifi_calling_main_switch_title" msgid="4070224008346815634">"Utiliser les appels Wi-Fi"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Choisissez ce que vous voyez à l\'écran lorsque votre tablette est ancrée. Votre appareil peut consommer plus d\'énergie lorsqu\'un écran de veille est utilisé."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personnaliser"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personnaliser <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Vous devez redémarrer l\'appareil pour activer la prise en charge des fenêtres de forme libre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Vous devez redémarrer l\'appareil pour forcer le mode Bureau sur des écrans secondaires."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Vous devez redémarrer l\'appareil pour activer la prise en charge des fenêtres de forme libre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Un redémarrage est nécessaire pour mettre à jour la disponibilité des fenêtres de forme libre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Un redémarrage est nécessaire pour activer les fenêtres de forme libre sur les écrans secondaires."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Redémarrer maintenant"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Redémarrer plus tard"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Son spatial"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Terminé"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Enregistrer"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Annuler"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Par défaut"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Moyen"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Activés"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Désactivée"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Activés"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Son %1$d%% à gauche, %2$d%% à droite"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Son %1$d%% à droite, %2$d%% à gauche"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Le nom de votre appareil est visible aux applis que vous avez installées. Il est également possible que d\'autres personnes voient le nom de votre appareil lorsque vous vous connectez à des appareils Bluetooth ou à un réseau Wi-Fi, ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Genre grammatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Sélectionnez un genre grammatical"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Écouter le flux"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Balayez le code QR d\'un flux audio pour l\'écouter avec votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Impossible de modifier le mot de passe lors du partage. Pour modifier le mot de passe, désactivez d\'abord le partage audio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Lecteur de code QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Paramètres de recherche"</string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 19a26d2..a4e90a0 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Coucher"</item>
-    <item msgid="4152450357280759894">"Conduite"</item>
-    <item msgid="7096549258219399423">"Immersif"</item>
-    <item msgid="2760716776980432977">"Géré"</item>
-    <item msgid="601734478369121764">"Étoile"</item>
-    <item msgid="6243809315432780521">"Calendrier"</item>
-    <item msgid="4913577903148415331">"Durée"</item>
-    <item msgid="3653377604690057780">"Cinéma"</item>
-    <item msgid="3843711267408385410">"Fleur"</item>
+    <item msgid="2750940760340557109">"Demi-lune"</item>
+    <item msgid="8513969636586738035">"Voiture"</item>
+    <item msgid="957392343846370509">"Esprit d\'une personne"</item>
+    <item msgid="6734164279667121348">"Agenda"</item>
+    <item msgid="4139559120353528558">"Horloge"</item>
+    <item msgid="5157711296814769020">"Parasol"</item>
+    <item msgid="6635328761318954115">"Tente"</item>
+    <item msgid="1711994778883392255">"Bobine de film"</item>
+    <item msgid="9097658401859604879">"Manette de jeu"</item>
+    <item msgid="755931364157422565">"Haltère"</item>
+    <item msgid="8894207806795738429">"Personne lançant une balle"</item>
+    <item msgid="2274801572149555103">"Personne donnant un coup de pied"</item>
+    <item msgid="8795037201506843325">"Natation"</item>
+    <item msgid="3558421426169430451">"Personne faisant de la randonnée"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Outils d\'atelier"</item>
+    <item msgid="4595330511709890409">"Sacoche"</item>
+    <item msgid="8352738347856724389">"Étoile"</item>
+    <item msgid="7082783098151998721">"Fleur de lotus"</item>
+    <item msgid="5772220259409264724">"Responsable"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 49333c9..013957e 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Interrompu"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Inconnu"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Aperçu"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Code QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Réduire"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Agrandir"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Toujours"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Paramètres de l\'appareil auditif"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Raccourci, compatibilité avec les appareils auditifs"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Préréglages"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Votre spécialiste de l\'audition n\'a configuré aucun préréglage"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Impossible de mettre à jour les préréglages"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Sortie audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"À propos de la sortie audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La sélection d\'une langue pour cette appli n\'est pas disponible depuis les paramètres."</string>
     <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="1038423471887102449">"Votre système, vos applis et vos sites Web utilisent la première langue compatible de vos langues préférées."</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="title_change_system_locale" msgid="8589844586256566951">"Sélectionner %s comme langue du système ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activée/# appli a accès à la position}one{Activée/# appli a accès à la position}other{Activée/# applis ont accès à la position}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Les applis ayant l\'autorisation de détecter les appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Les applis ayant l\'autorisation de détecter les appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accès à la position est désactivé pour les applis et les services. La position de votre appareil peut toujours être envoyée aux services d\'urgence lorsque vous les contactez par téléphone ou SMS."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation."</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Pour apporter des modifications, rendez-vous dans Paramètres de ChromeOS &gt; Confidentialité et sécurité &gt; Paramètres de confidentialité &gt; Accès à la position"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Déverrouillage par reconnaissance faciale et la <xliff:g id="WATCH">%s</xliff:g> ajouté"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Visage, empreinte digitale et <xliff:g id="WATCH">%s</xliff:g> ajoutés"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Visage, empreintes digitales et <xliff:g id="WATCH">%s</xliff:g> ajoutés"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Déblocage de l\'authentificateur distant"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Montre ajoutée"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurer votre montre"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"En savoir plus sur le Déverrouillage par une montre"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ajouter une montre"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Retirer la montre"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Déverrouillage par empreinte digitale et reconnaissance faciale"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Déverrouillage par reconnaissance faciale et empreinte digitale"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverrouillage par reco. faciale et empreinte pour le travail"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuration requise"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Visage et empreintes digitales ajoutés"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configuration de l\'espace privé…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Impossible de configurer un espace privé"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Réessayer"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Quitter"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"L\'espace privé n\'est pas disponible.\nVoir les causes possibles"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Voir les causes possibles"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Changer la méthode de déverrouillage pour l\'espace privé ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Vous pouvez définir une nouvelle méthode de déverrouillage uniquement pour l\'espace privé, ou utiliser celle qui vous permet de déverrouiller votre appareil"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Utiliser le déverrouillage de l\'écran"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Redémarrer l\'appareil ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"La journalisation des détails NFC est destinée exclusivement au développement. Des données NFC supplémentaires sont incluses dans les rapports de bug. Ils peuvent contenir des informations privées. Redémarrez votre appareil pour modifier ce paramètre."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Redémarrer"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Activé"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Désactivé"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Écran externe"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Utiliser un écran externe"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Résolution de l\'écran"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"L\'écran externe est déconnecté"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"La modification de la rotation ou de la résolution peut entraîner l\'arrêt des applis en cours d\'exécution"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Votre appareil doit être connecté à un écran externe pour dupliquer votre écran"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Autres options"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"duplication d\'écran"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Activer l\'affichage sans fil"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptatives"</string>
     <string name="brightness" msgid="6216871641021779698">"Niveau de luminosité"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Luminosité adaptative"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"À propos de la luminosité adaptative"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"La luminosité de l\'écran s\'adapte automatiquement à votre environnement et à vos activités. Vous pouvez déplacer le curseur manuellement pour aider la fonctionnalité à apprendre vos préférences."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activé"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Désactivé"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Utiliser le clavier à l\'écran"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Afficher le clavier virtuel même lorsque le clavier physique est actif"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Touches à rebonds"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Le clavier ignore les frappes rapides et consécutives d\'une même touche dans un intervalle de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Touches lentes"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Règle le temps de réponse d\'une pression de touche sur <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Utiliser le clavier physique pour contrôler la souris"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Définir rempl. pointeur sur jaune"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Définir rempl. pointeur sur rose"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Définir rempl. pointeur sur bleu"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Style de trait du pointeur"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Blanc"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Noir"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Aucun"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Découvrir gestes au pavé tactile"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"pavé tactile, pavé tactile, souris, curseur, faire défiler, balayer, clic droit, clic, pointeur"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clic droit, appuyer"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Utilisateur sélectionné : <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Voix"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Vitesse du pointeur"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Échelle du pointeur"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Diminuer l\'échelle du pointeur"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Augmenter l\'échelle du pointeur"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Manette de jeu"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Vibreur pour la redirection"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Rediriger le vibreur vers la manette de jeu lorsque vous êtes connecté"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuer"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuler"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Paramètres d\'agrandissement"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Défilement panoramique à un doigt"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Déplacer la loupe avec un doigt"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Faites glisser un doigt pour vous déplacer sur l\'écran."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Déplacez la zone d\'agrandissement en faisant glisser un doigt sur cette dernière."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Déplacez la zone d\'agrandissement en faisant glisser deux doigts sur cette dernière."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Indisponible lors de l\'agrandissement d\'une partie de l\'écran uniquement"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Appuyer sur un bouton pour zoomer"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Faites un zoom avant rapide sur l\'écran pour agrandir le contenu"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Pour faire un zoom avant :&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Utilisez le raccourci pour démarrer l\'agrandissement&lt;br/&gt; {1,number,integer}. Appuyez sur l\'écran&lt;br/&gt; {2,number,integer}. Faites glisser deux doigts pour vous déplacer sur l\'écran&lt;br/&gt; {3,number,integer}. Pincez avec deux doigts pour régler le zoom&lt;br/&gt; {4,number,integer}. Utilisez le raccourci pour arrêter l\'agrandissement&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Pour faire un zoom avant temporaire :&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Assurez-vous que le type d\'agrandissement est défini sur plein écran&lt;br/&gt; {1,number,integer}. Utilisez le raccourci pour démarrer l\'agrandissement&lt;br/&gt; {2,number,integer}. Appuyez de manière prolongée n\'importe où sur l\'écran&lt;br/&gt; {3,number,integer}. Faites glisser un doigt pour vous déplacer sur l\'écran&lt;br/&gt; {4,number,integer}. Relevez le doigt pour arrêter l\'agrandissement"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Pour faire un zoom avant :&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Utilisez le raccourci pour agrandir&lt;br/&gt; {1,number,integer}. Appuyez sur l\'écran&lt;br/&gt; {2,number,integer}. Faites glisser deux doigts pour vous déplacer sur l\'écran&lt;br/&gt; {3,number,integer}. Pincez avec les deux doigts pour régler le zoom&lt;br/&gt; {4,number,integer}. Utilisez le raccourci pour arrêter de zoomer&lt;br/&gt;&lt;br/&gt; Vous pouvez également faire un zoom avant temporaire, et plus encore."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Pour faire un zoom avant :&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Utilisez le raccourci pour agrandir&lt;br/&gt; {1,number,integer}. Appuyez sur l\'écran&lt;br/&gt; {2,number,integer}. Faites glisser un ou deux doigts pour vous déplacer sur l\'écran&lt;br/&gt; {3,number,integer}. Pincez avec les deux doigts pour régler le zoom&lt;br/&gt; {4,number,integer}. Utilisez le raccourci pour arrêter de zoomer&lt;br/&gt;&lt;br/&gt; Vous pouvez également faire un zoom avant temporaire, et plus encore."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Lorsque l\'option \"Agrandissement\" est activée, vous pouvez effectuer un zoom avant sur votre écran.\n\n"<b>"Pour zoomer"</b>", activez l\'option \"Agrandissement\", puis appuyez n\'importe où sur l\'écran.\n"<ul><li>"Pour faire défiler l\'écran, faites glisser deux doigts ou plus dessus."</li>\n<li>"Pour régler le niveau de zoom, pincez l\'écran avec deux doigts ou plus."</li></ul>\n\n<b>"Pour faire un zoom temporaire"</b>", lancez l\'option \"Agrandissement\", puis appuyez de manière prolongée n\'importe où sur l\'écran.\n"<ul><li>"Pour vous déplacer sur l\'écran, faites glisser un doigt dessus."</li>\n<li>"Pour faire un zoom arrière, relevez le doigt."</li></ul>\n\n"Il est impossible de faire un zoom avant sur le clavier ni sur la barre de navigation."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> sur <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Raccourci du bouton Accessibilité"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Appuyez sur le bouton flottant"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Geste d\'accessibilité"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Appuyez sur le bouton Accessibilité (<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>) en bas de votre écran. Pour changer de fonctionnalité, appuyez de manière prolongée sur le bouton Accessibilité."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Balayez l\'écran de bas en haut avec deux doigts.\n\nPour changer de fonctionnalité, balayez l\'écran vers le haut avec deux doigts et appuyez de manière prolongée."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Balayez l\'écran de bas en haut avec trois doigts.\n\nPour changer de fonctionnalité, balayez l\'écran vers le haut avec trois doigts et appuyez de manière prolongée."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Balayez votre écran de bas en haut. Pour changer de fonctionnalité, balayez l\'écran vers le haut et appuyez de manière prolongée.}one{Balayez votre écran de bas en haut avec # doigt. Pour changer de fonctionnalité, balayez l\'écran vers le haut avec # doigt et appuyez de manière prolongée.}other{Balayez votre écran de bas en haut avec # doigts. Pour changer de fonctionnalité, balayez l\'écran vers le haut avec # doigts et appuyez de manière prolongée.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Plus d\'options"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"En savoir plus sur <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Boutons de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"boutons de volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Appuyez de manière prolongée sur les deux boutons de volume"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Appui double à deux doigts sur l\'écran"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Appuyer deux fois avec %1$d doigts"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Appuyez rapidement deux fois sur l\'écran avec %1$d doigts."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Appuyer trois fois"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Appuyez rapidement %1$d fois sur l\'écran. Votre appareil peut être ralenti."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"appuyer deux fois avec %1$d doigts"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Appuyer rapidement sur l\'écran {0,number,integer} fois avec deux doigts"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Appuyer trois fois sur l\'écran"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"appuyer trois fois"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Appuyer rapidement {0,number,integer} fois sur l\'écran. Ce raccourci peut ralentir votre appareil."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Paramètres avancés"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Le bouton Accessibilité est défini sur <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser la loupe, appuyez de manière prolongée sur le bouton Accessibilité, puis sélectionnez la loupe."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Le geste d\'accessibilité est défini sur <xliff:g id="SERVICE">%1$s</xliff:g>. Pour utiliser la loupe, balayez l\'écran de bas en haut avec deux doigts et maintenez la pression, puis sélectionnez la loupe."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ce service ne fonctionne pas."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Raccourcis d\'accessibilité"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Afficher dans les Réglages rapides"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rouge-vert"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rouge-vert"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rouge-vert, vert faible"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rouge-vert, rouge faible"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Bleu-jaune"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nuances de gris"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensité"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vert faible, deutéranomalie"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rouge faible, protanomalie"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponible en mode \"Nuances de gris\" ou lorsque la correction des couleurs est désactivée"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deutéranomalie"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalie"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Luminosité ultra-réduite"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Luminosité ultra-réduite"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Jaune"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Accorder le contrôle total de votre appareil à <xliff:g id="SERVICE">%1$s</xliff:g> ?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> doit pouvoir :"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Une application masque la demande d\'autorisation. Impossible de valider votre réponse via l\'application Paramètres."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> demande le contrôle total de cet appareil. Le service peut lire l\'écran et agir pour le compte des utilisateurs ayant des besoins en matière d\'accessibilité. Ce niveau de contrôle n\'est pas approprié pour la plupart des applications."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Le contrôle total convient aux applications qui répondent à vos besoins d\'accessibilité. Il ne convient pas à la plupart des applications."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Afficher et contrôler l\'écran"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Le service peut lire l\'intégralité du contenu à l\'écran et afficher du contenu par-dessus d\'autres applications."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Afficher et effectuer des actions"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Le service peut suivre vos interactions avec une application ou un capteur matériel, et interagir avec les applications en votre nom."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Aucun}=1{1 programme défini}one{# programme défini}other{# programmes définis}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ne pas déranger"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modes Prioritaires"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Ajouter un mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Réduisez les distractions et canalisez votre attention à l\'aide de modes pour le sommeil, le travail, la conduite ou toute autre occasion."</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 applications importantes"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Définir une programmation"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Programmation basée sur"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Jour et heure"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9h - 17h en semaine\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Événements d\'agenda"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} est actif}=2{{mode_1} et {mode_2} sont actifs}=3{{mode_1}, {mode_2} et {mode_3} sont actifs}one{{mode_1}, {mode_2} et # de plus sont actifs}other{{mode_1}, {mode_2} et # de plus sont actifs}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode peut s\'activer automatiquement}one{# mode peut s\'activer automatiquement}other{# modes peuvent s\'activer automatiquement}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVÉ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Non défini"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Désactivé"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Créer un mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personnalisé"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Activer maintenant"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Désactiver"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mode introuvable"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limiter les interruptions"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloquer les interruptions et les distractions"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurer <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activer le mode Ne pas déranger"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Les alarmes et les sons des contenus multimédias peuvent interrompre le mode Ne pas déranger"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programmes"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Supprimer des programmes"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Supprimer"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Renommer"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Supprimer"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Supprimer le mode <xliff:g id="MODE">%1$s</xliff:g> ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Modifier"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programmes"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programme"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Activer automatiquement"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Ajouter un agenda"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Utiliser votre agenda"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programmer"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Définir une programmation"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Quand activer automatiquement"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programmation d\'événement"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Activer durant événements pour"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Si réponse à l\'invitation est"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Programmation temporelle"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programmation"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programme"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Autoriser les interruptions sonores"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquer nuisances visuelles"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Autoriser les signaux visuels"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifications qui peuvent vous parvenir"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Autres actions"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtres de notification"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Autres paramètres"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Désactivé}=1{Désactivé/1 mode peut s\'activer automatiquement}one{Désactivé/# mode peut s\'activer automatiquement}other{Désactivé/# modes peuvent s\'activer automatiquement}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Paramètres d\'affichage"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Options d\'affichage"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Nuances de gris"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"activer le thème sombre"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Passer le système d\'exploitation et les applis en texte clair sur fond sombre, ce qui peut faciliter la lecture et permet d\'économiser considérablement la batterie sur certains appareils"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Aucun changement appliqué à l\'affichage}=1{{effect_1}}=2{{effect_1} et {effect_2}}=3{{effect_1}, {effect_2} et {effect_3}}one{{effect_1}, {effect_2} et # autre}other{{effect_1}, {effect_2} et # autres}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limiter les notifications qui peuvent vous être envoyées"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Aucune interruption filtrée"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Options d\'affichage des notifications filtrées"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Lorsque Ne pas déranger est activé"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Aucune notification sonore"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"Ouvrir la notification"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Autoriser la mise en attente des notifications"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Pastille de notification sur l\'icône de l\'application"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Groupes de notifications"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bulles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bulles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Afficher cette conversation sous forme de bulle"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Cette appli n\'est pas compatible avec les paramètres avancés"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Autres paramètres"</string>
     <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="4737150709382859870">"Notifications intelligentes"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Utiliser les notifications intelligentes"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Si vous recevez de nombreuses notifications en peu de temps, votre téléphone baisse le volume et minimise les pop-ups à l\'écran pendant deux minutes maximum. Les appels, les alarmes et les conversations prioritaires continuent de vibrer, d\'émettre un son ou de s\'afficher à l\'écran. Retrouvez facilement toutes les notifications en faisant glisser le volet des notifications vers le bas."</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 de nombreuses notifications en peu de temps, votre appareil baisse le volume et minimise 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 du profil professionnel"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Catégories"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Autres"</string>
     <string name="no_channels" msgid="4716199078612071915">"Cette application n\'a publié aucune notification"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Afficher les catégories inutilisées"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Paramètres supplémentaires dans l\'application"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Afficher les catégories inutilisées"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Masquer les catégories inutilisées"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversations"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Toutes les conversations"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"toutes les conversations"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversations prioritaires"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversations prioritaires"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Aucune"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Applis qui peuvent interrompre"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Applis sélectionnées"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Aucune"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Toutes"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Aucune application ne peut interrompre le mode Ne pas déranger}=1{{app_1} peut interrompre le mode Ne pas déranger}=2{{app_1} et {app_2} peuvent interrompre le mode Ne pas déranger}=3{{app_1}, {app_2} et {app_3} peuvent interrompre le mode Ne pas déranger}one{{app_1}, {app_2} et # autre appli peuvent interrompre le mode Ne pas déranger}other{{app_1}, {app_2} et # autres applis peuvent interrompre le mode Ne pas déranger}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (professionnel)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calcul en cours"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Autoriser des applications à ignorer ce mode"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Applis qui peuvent interrompre"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Sélectionnez plus d\'applications"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Rien ne peut l\'interrompre"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Personne ne peut interrompre le mode Ne pas déranger"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Certaines personnes peuvent l\'interrompre"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Les appelants récurrents peuvent interrompre"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Toutes les personnes peuvent interrompre le mode Ne pas déranger"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Appels répétés"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Autoriser les appels répétés"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ne recevoir que les alarmes pendant 1 heure jusqu\'à {time}}one{Ne recevoir que les alarmes pendant # heure jusqu\'à {time}}other{Ne recevoir que les alarmes pendant # heures jusqu\'à {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ne recevoir que les alarmes jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Toujours interrompre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Renommer"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Changer d\'icône"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Changer d\'icône"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modifier le mode"</string>
+    <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>
+    <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>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"En conduisant"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Paramètres des applis"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informations et paramètres dans <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Géré par <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Désactiver <xliff:g id="MODE_NAME">%1$s</xliff:g> ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ce mode ne s\'activera jamais s\'il est désactivé"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Désactiver"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Activer <xliff:g id="MODE_NAME">%1$s</xliff:g> ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ce mode peut s\'activer automatiquement en fonction de ses paramètres"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activer"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Définissez un mode qui suit un horaire régulier"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Définissez un mode permettant de synchroniser les événements d\'agenda et les réponses aux invitations"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Créez une routine de sommeil apaisante. Réglez des alarmes, assombrissez votre écran et bloquez les notifications."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Sur la route, privilégiez la sécurité pour une conduite attentive et sans distraction"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloquez les distractions ou les interruptions sur votre appareil pour vous concentrer"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Éliminez toutes les sources de distraction pour un environnement calme"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personnalisez les expériences et les paramètres de l\'appareil pour différents utilisateurs"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Autorisez uniquement les notifications provenant des personnes et applis importantes pour minimiser les interruptions"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Avertissement"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Fermer"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Envoyer commentaires sur l\'appareil"</string>
@@ -4791,10 +4862,10 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Étui de transport"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batterie"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panneau des paramètres"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forcer le mode ordinateur"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forcer le mode ordinateur expérimental sur les écrans secondaires"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Activer les fenêtres de forme libre"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Activer les fenêtres de forme libre sur un écran secondaire"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activer les applis non redimensionnables en mode multifenêtre"</string>
-    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Autoriser le mode multifenêtre pour les applis non redimensionnables"</string>
+    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Autorise le mode multifenêtre pour les applis non redimensionnables"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Forcer l\'activation du thème sombre"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"Forcer la fonctionnalité Forcer un thème sombre à être toujours activée"</string>
     <string name="privacy_dashboard_title" msgid="6845403825611829558">"Confidentialité"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"données mobiles"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Pour améliorer l\'expérience sur l\'appareil, les applis et services peuvent continuer de rechercher les réseaux Wi-Fi, même quand le Wi-Fi est désactivé. Cela peut servir, par exemple, à améliorer les fonctionnalités et services basés sur la localisation. Vous pouvez modifier cela dans les paramètres de recherche Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Modifier"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connecté"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connexion temporaire"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Utilisation temporaire de <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Utiliser l\'épinglage d\'application"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Utiliser les options pour les développeurs"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Utiliser le service d\'impression"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Autoriser plusieurs utilisateurs"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Autoriser le changement d\'utilisateur"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"autoriser, plusieurs, utilisateur, permettre, beaucoup"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"multiples, utilisateurs, profils, personnes, comptes, transfert, nombreux"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Utiliser le débogage sans fil"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Choisissez le contenu à afficher à l\'écran quand la tablette est sur la station d\'accueil. Votre appareil peut consommer plus d\'énergie quand un économiseur d\'écran est utilisé."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personnaliser"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personnaliser <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Un redémarrage est nécessaire pour activer la prise en charge du format libre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Un redémarrage est nécessaire pour forcer le mode bureau sur les écrans secondaires."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Un redémarrage est nécessaire pour activer la prise en charge des fenêtres de forme libre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Un redémarrage est nécessaire pour modifier la disponibilité des fenêtres de forme libre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Un redémarrage est nécessaire pour activer les fenêtres de forme libre sur les écrans secondaires."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Redémarrer maintenant"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Redémarrer plus tard"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Son spatial"</string>
@@ -5135,7 +5206,7 @@
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurer la limitation du débit de téléchargement du réseau"</string>
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"Aucune limite"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Désactiver les limites pour les processus enfant"</string>
-    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Désactiver les limites d\'utilisation des ressources système pour les processus enfant des applis"</string>
+    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Désactive les limites d\'utilisation des ressources système pour les processus enfants des applis"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Forcer l\'activation du rôle \"Notes\""</string>
     <string name="enable_notes_role_summary" msgid="5495721409392395089">"Active les intégrations de systèmes de prise de notes via le rôle \"Notes\". N\'a aucun effet si ce rôle est déjà activé. Un redémarrage est nécessaire."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Diffuser"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"OK"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Enregistrer"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Annuler"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Par défaut"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Moyen"</string>
@@ -5232,6 +5303,12 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Activé"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Désactivés"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Activés"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for audio_seek_bar_state_left_first (8814986910920838972) -->
+    <skip />
+    <!-- String.format failed for translation -->
+    <!-- no translation found for audio_seek_bar_state_right_first (1999368979633398876) -->
+    <skip />
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Les applis que vous avez installées ont accès au nom de votre appareil. D\'autres personnes peuvent aussi le voir lorsque vous vous connectez à des appareils Bluetooth ou à un réseau Wi-Fi, ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Genre grammatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Sélectionner le genre grammatical"</string>
@@ -5343,4 +5420,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Écouter le flux"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scanner le code QR d\'un flux audio pour l\'écouter avec <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Impossible de modifier le mot de passe lors du partage. Pour modifier le mot de passe, il faut d\'abord désactiver le partage audio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Lecteur de code QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Rechercher un paramètre"</string>
 </resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index a9ca571..be7b956 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Hora de durmir"</item>
-    <item msgid="4152450357280759894">"Condución"</item>
-    <item msgid="7096549258219399423">"Envolvente"</item>
-    <item msgid="2760716776980432977">"Xestionado"</item>
-    <item msgid="601734478369121764">"Estrela"</item>
-    <item msgid="6243809315432780521">"Calendario"</item>
-    <item msgid="4913577903148415331">"Hora"</item>
-    <item msgid="3653377604690057780">"Cine"</item>
-    <item msgid="3843711267408385410">"Flor"</item>
+    <item msgid="2750940760340557109">"Media lúa"</item>
+    <item msgid="8513969636586738035">"Coche"</item>
+    <item msgid="957392343846370509">"Mente dunha persoa"</item>
+    <item msgid="6734164279667121348">"Calendario"</item>
+    <item msgid="4139559120353528558">"Reloxo"</item>
+    <item msgid="5157711296814769020">"Parasol"</item>
+    <item msgid="6635328761318954115">"Tenda"</item>
+    <item msgid="1711994778883392255">"Rolo de película"</item>
+    <item msgid="9097658401859604879">"Mando de xogo"</item>
+    <item msgid="755931364157422565">"Pesa de man de ximnasio"</item>
+    <item msgid="8894207806795738429">"Persoa lanzando unha pelota"</item>
+    <item msgid="2274801572149555103">"Persoa dando unha patada"</item>
+    <item msgid="8795037201506843325">"Natación"</item>
+    <item msgid="3558421426169430451">"Persoa facendo sendeirismo"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Ferramentas dun taller"</item>
+    <item msgid="4595330511709890409">"Portadocumentos"</item>
+    <item msgid="8352738347856724389">"Estrela"</item>
+    <item msgid="7082783098151998721">"Flor de loto"</item>
+    <item msgid="5772220259409264724">"Persoa supervisora"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index de73006..1edd6b2 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Descoñecido"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Vista previa"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Código QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Reducir"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Ampliar"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Configuración dos dispositivos auditivos"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Atallo, compatibilidade con audiófonos"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Configuración predeterminada"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"O audiólogo non fixo ningunha configuración predeterminada"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Non se puido actualizar a configuración predeterminada"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Saída de audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Acerca da saída de audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"A opción de seleccionar un idioma para esta aplicación non está dispoñible en Configuración."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"É posible que o idioma non estea dispoñible na aplicación. Pode que algunhas aplicacións non sexan compatibles con esta opción de configuración."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Define o idioma de cada aplicación."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"O sistema, as aplicacións e os sitios web usan o primeiro idioma dispoñible dos teus idiomas preferidos."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"O teu dispositivo, as aplicacións e os sitios web usan o primeiro idioma dispoñible na túa lista de idiomas preferidos.\n\nMoitas aplicacións tamén usarán a rexión do teu idioma preferido para darlles formato ás datas, aos números e ás unidades. Para cambiar de rexión, engade un idioma e selecciona a rexión preferida."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para seleccionar o idioma de cada aplicación, vai á configuración do idioma das aplicacións."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Máis información sobre os idiomas das aplicacións"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Queres cambiar o idioma do sistema ao %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivada"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Opción activada: # aplicación ten acceso á localización}other{Opción activada: # aplicacións teñen acceso á localización}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"As aplicacións con permiso para buscar dispositivos próximos poden determinar a posición relativa dos dispositivos conectados."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"As aplicacións con permiso para buscar dispositivos próximos poden determinar a posición relativa dos dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acceso á localización está desactivado para as aplicacións e os dispositivos. Con todo, é posible que a localización do dispositivo se envíe aos servizos de emerxencias cando chames a un número de emerxencias ou lle envíes unha mensaxe."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Máis información sobre a configuración de localización"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para facer o cambio, vai á configuración de ChromeOS &gt; Privacidade e seguranza &gt; Controis de privacidade &gt; Acceso á localización"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Engadíronse o recoñecemento facial e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Engadíronse o recoñecemento facial, a impresión dixital e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Engadíronse o recoñecemento facial, as impresións dixitais e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueo de Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Engadiuse o reloxo"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o teu reloxo"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Máis información sobre a función Desbloqueo mediante reloxo"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Engadir reloxo"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloxo"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impresión dixital e desbloqueo facial"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Desbloqueo facial e dactilar"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo dactilar e facial para o traballo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cómpre realizar o proceso de configuración"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Engadíronse a cara e as impresións dixitais"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando espazo privado…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Non se puido configurar ningún espazo privado"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar de novo"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Saír"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"O espazo privado non está dispoñible.\nConsulta as posibles causas"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Consulta as posibles causas"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Queres usar outro bloqueo para o espazo privado?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Podes configurar un bloqueo novo só para o espazo privado ou usar o que xa tes para desbloquear o dispositivo"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueo de pantalla"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Queres reiniciar o dispositivo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O rexistro detallado de NFC só se utiliza para fins de programación. Os datos de NFC adicionais inclúense nos informes de erros, que poden conter información privada. Reinicia o dispositivo para cambiar esta opción de configuración."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Activada"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desactivada"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Pantalla externa"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Usar pantalla externa"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolución da pantalla"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"A pantalla externa está desconectada"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Ángulo"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Estándar"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"O cambio de ángulo ou resolución pode deter as aplicacións que se estean executando"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"O dispositivo ten que estar conectado a unha pantalla externa para que se proxecte a túa"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Máis opcións"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Emitir"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"proxección"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Activar visualización sen fíos"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Automáticas"</string>
     <string name="brightness" msgid="6216871641021779698">"Nivel de brillo"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Brillo intelixente"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Acerca do brillo intelixente"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"O brillo da pantalla axustarase automaticamente segundo o ambiente e as actividades que leves a cabo. Podes mover o control desprazable de forma manual para que o brillo intelixente recoñeza as túas preferencias."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activado"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desactivado"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcións"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Utilizar teclado en pantalla"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Móstrase na pantalla mentres o teclado físico estea activo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora as pulsacións repetidas rapidamente da mesma tecla nun intervalo de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Axusta o tempo que tarda a activación dunha tecla premida a <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Usa o teclado físico para controlar o rato."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambiar recheo punteiro a amarelo"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambiar recheo do punteiro a rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambiar recheo do punteiro a azul"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo do trazo de punteiro"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Branco"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negro"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ningún"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Descubrir xestos no panel táctil"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"panel táctil, rato, cursor, desprazar, pasar o dedo, facer clic co botón dereito, facer clic, punteiro"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"facer clic co botón dereito, tocar"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Selección do usuario: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Voz"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocidade do punteiro"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Tamaño do punteiro"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Reducir o tamaño do punteiro"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aumentar o tamaño do punteiro"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Mando do xogo"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirixir vibración"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Envía vibración ao mando de xogos se está conectado"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar igualmente"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuración da ampliación"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Desprazamento cun dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mover a lupa cun dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arrastra un dedo para moverte pola pantalla"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Arrastra un dedo para mover a área de ampliación."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Arrastra dous dedos para mover a área de ampliación."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Non dispoñible cando só se amplíe unha parte da pantalla"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toca un botón para achegar o zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Se queres ampliar o contido, achégao rapidamente na pantalla usando o zoom"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Se queres achegar o contido usando o zoom, sigue estes pasos:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación&lt;br/&gt; {1,number,integer}. Toca a pantalla&lt;br/&gt; {2,number,integer}. Para moverte pola pantalla, arrastra dous dedos&lt;br/&gt; {3,number,integer}. Cando queiras axustar o zoom, belisca a pantalla con dous dedos&lt;br/&gt; {4,number,integer}. Utiliza o atallo para deter a ampliación&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Para achegar o contido temporalmente usando o zoom, sigue estes pasos:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Asegúrate de que o tipo de ampliación estea configurado a pantalla completa&lt;br/&gt; {1,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación&lt;br/&gt; {2,number,integer}. Mantén premido calquera punto da pantalla&lt;br/&gt; {3,number,integer}. Para moverte pola pantalla, arrastra o dedo&lt;br/&gt; {4,number,integer}. Levanta o dedo para deter a ampliación"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Se queres achegar o contido usando o zoom, sigue estes pasos:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación&lt;br/&gt; {1,number,integer}. Toca a pantalla&lt;br/&gt; {2,number,integer}. Para moverte pola pantalla, arrastra dous dedos&lt;br/&gt; {3,number,integer}. Cando queiras axustar o zoom, belisca a pantalla con dous dedos&lt;br/&gt; {4,number,integer}. Usa o atallo para deter a ampliación&lt;br/&gt;&lt;br/&gt; Tamén podes achegar a imaxe temporalmente, entre outras cousas."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Se queres achegar o contido usando o zoom, sigue estes pasos:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Utiliza o atallo cando queiras iniciar a ampliación&lt;br/&gt; {1,number,integer}. Toca a pantalla&lt;br/&gt; {2,number,integer}. Para moverte pola pantalla, arrastra un ou dous dedos&lt;br/&gt; {3,number,integer}. Cando queiras axustar o zoom, belisca a pantalla con dous dedos&lt;br/&gt; {4,number,integer}. Usa o atallo para deter a ampliación&lt;br/&gt;&lt;br/&gt; Tamén podes achegar a imaxe temporalmente, entre outras cousas."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ao activar a ampliación, podes achegar o contido da pantalla.\n\n"<b>"Para utilizar o zoom"</b>", inicia a ampliación e toca calquera parte da pantalla.\n"<ul><li>"Arrastra 2 ou máis dedos para desprazarte."</li>\n<li>"Belisca con 2 ou máis dedos para axustar o zoom."</li></ul>\n\n<b>"Para utilizar o zoom de forma temporal"</b>", inicia a ampliación e mantén premida calquera parte da pantalla.\n"<ul><li>"Arrastra o dedo para moverte pola pantalla."</li>\n<li>"Levanta o dedo para afastar a imaxe ou o texto."</li></ul>\n\n"Ten en conta que non se pode ampliar o teclado nin a barra de navegación."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Páxina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Atallo do botón Accesibilidade"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toca o botón flotante."</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Xesto de accesibilidade"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toca o botón Accesibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior da pantalla. Para cambiar de función, mantén premido o botón Accesibilidade."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Pasa 2 dedos cara arriba desde a parte inferior da pantalla.\n\nPara cambiar de función, pasa 2 dedos cara arriba e mantén premida a pantalla."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Pasa 3 dedos cara arriba desde a parte inferior da pantalla.\n\nPara cambiar de función, pasa 3 dedos cara arriba e mantén premida a pantalla."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Pasa o dedo cara arriba desde a parte inferior da pantalla. Para cambiar de función, pasa o dedo cara arriba e mantén premido.}other{Pasa # dedos cara arriba desde a parte inferior da pantalla. Para cambiar de función, pasa # dedos cara arriba e mantén premido.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Máis opcións"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Máis información sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Mantén premidas as dúas teclas de volume."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Toca dúas veces a pantalla con dous dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocar dúas veces con %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toca a pantalla rapidamente dúas veces con %1$d dedos."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocar tres veces"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toca a pantalla rapidamente %1$d veces. Este atallo pode reducir a velocidade do dispositivo."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Toca dúas veces con %1$d dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca a pantalla rapidamente {0,number,integer} veces con dous dedos."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tres toques na pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tres toques"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toca a pantalla {0,number,integer} veces rapidamente. Este atallo pode reducir a velocidade do dispositivo"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanzado"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botón Accesibilidade está configurado en <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliación, mantén tocado o botón Accesibilidade e, a continuación, selecciona a ampliación."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O xesto de accesibilidade definiuse para o servizo <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliación, pasa dous dedos cara arriba desde a parte inferior da pantalla e mantena premida. Despois selecciona a ampliación."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Este servizo non funciona correctamente."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Atallos de accesibilidade"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostrar en Configuración rápida"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Vermello-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Vermello-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Percepción débil do verde, vermello-verde"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Percepción débil do vermello, vermello-verde"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de grises"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Percepción débil do verde (deuteranomalía)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Percepción débil do vermello (protanomalía)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Non está dispoñible para o modo de escala de grises nin cando a corrección da cor está desactivada"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalía"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalía"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalía"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Atenuación extra"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Usar atenuación extra da pantalla"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Maxenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Queres permitir que <xliff:g id="SERVICE">%1$s</xliff:g> poida controlar totalmente o teu dispositivo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Posto que unha aplicación se superpón sobre una solicitude de permiso, a configuración non pode verificar a túa resposta."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> solicita poder controlar totalmente este dispositivo. O servizo pode ler a pantalla e actuar en nome dos usuarios con necesidades de accesibilidade. Este nivel de control non é adecuado para a maioría das aplicacións."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O control total é adecuado para as aplicacións que che axudan coa accesibilidade, pero non para a maioría das aplicacións."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar a pantalla"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o contido da pantalla e mostralo sobre outras aplicacións."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e realizar accións"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode facer un seguimento das túas interaccións cunha aplicación ou cun sensor de hardware, así como interactuar por ti coas aplicacións."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denegar"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ningunha planificación}=1{Definiuse 1 planificación}other{Definíronse # planificacións}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Non molestar"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modos de prioridade"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Engadir un modo"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Reduce as distraccións e non perdas a concentración grazas aos modos para durmir, traballar ou conducir, entre outros."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crea o teu propio modo"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Só se reciben notificacións de aplicacións e persoas importantes"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Definir un horario"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Horario baseado en"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Día e hora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"Días de semana, de 9:00 a 17:00\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Eventos do calendario"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{O modo {mode_1} está activo}=2{Os modos {mode_1} e {mode_2} están activos}=3{Os modos {mode_1}, {mode_2} e {mode_3} están activos}other{Os modos {mode_1}, {mode_2} e # máis están activos}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Hai 1 modo que se pode activar de forma automática}other{Hai # modos que se poden activar de forma automática}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVADO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Sen configurar"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Desactivado"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Crear un modo"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Activar agora"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desactivar"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Non se atopou o modo"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar as interrupcións"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloquea as interrupcións e as distraccións"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurar <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activar modo Non molestar"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"As alarmas e os sons multimedia poden interromper o modo Non molestar"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Planificacións"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Eliminar planificacións"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Eliminar"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Cambiar de nome"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Eliminar"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Queres eliminar o modo <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Planificacións"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Planificación"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Activar automaticamente"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Engadir un calendario"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Usar o teu calendario"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programar"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Definir un horario"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Cando activar automaticamente?"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programación do evento"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Activar durante os eventos de"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Cando a resposta á invit. sexa"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Horario"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programar"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h e <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Planificación"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Permitir interrupcións que emitan son"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquear ruído visual"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir sinais visuais"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificacións que podes recibir"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Accións adicionais"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtros de notificacións"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Máis opcións de configuración"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desactivado}=1{Desactivado: 1 modo pode activarse automaticamente}other{Opción desactivada: # modos poden activarse automaticamente}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Configuración de visualización"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opcións de visualización"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de grises"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"activar tema escuro"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Cambia o sistema operativo e as aplicacións para daren preferencia a un texto claro sobre un fondo escuro, que é unha opción que pode ser máis agradable para a vista, ademais de supoñer un aforro de batería significativo nalgúns dispositivos"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Non hai ningún cambio na visualización}=1{{effect_1}}=2{{effect_1} e {effect_2}}=3{{effect_1}, {effect_2} e {effect_3}}other{{effect_1}, {effect_2} e # máis}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limitar o que se che pode notificar"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Non hai ningunha interrupción filtrada"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opcións de visualización das notificacións filtradas"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Cando está activado o modo Non molestar"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Notificacións sen son"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"abre a notificación"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permitir adiar notificacións"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Punto de notificacións nas iconas"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paquetes de notificacións"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Burbullas"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbullas"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar esta conversa nunha burbulla"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta aplicación non admite a configuración mellorada"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Máis opcións de configuración"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Hai máis opcións de configuración dentro desta aplicación"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificacións intelixentes"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificacións intelixentes"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Cando recibas moitas notificacións en pouco tempo, o teu teléfono baixará o volume e minimizará as ventás emerxentes na pantalla durante dous minutos como máximo. As chamadas, alarmas e conversas prioritarias seguirán vibrando, emitindo un son ou aparecendo na pantalla. Podes atopar facilmente todas as notificacións se arrastras cara abaixo a parte superior da pantalla."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Amainar notificacións"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Usar a función de amainar as notificacións"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Cando recibas moitas notificacións en pouco tempo, o teu dispositivo baixará o volume e reducirá ao mínimo o número de alertas durante ata dous minutos. As chamadas, alarmas e conversas prioritarias non se verán afectadas. \n\nPara ver as notificacións amainadas, arrastra cara abaixo a parte superior da pantalla."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar aos perfís de traballo"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Usa esta opción coas aplicacións do perfil de traballo"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servizos do asistente de RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorías"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Outros"</string>
     <string name="no_channels" msgid="4716199078612071915">"Esta aplicación non emitiu notificacións"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostrar categorías sen usar"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Configuración adicional da aplicación"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostrar categorías sen usar"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ocultar categorías sen usar"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversas"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Todas as conversas"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"todas as conversas"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversas prioritarias"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversas prioritarias"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ningunha"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplicacións que poden interromper"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicacións seleccionadas"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ningunha"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todas"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ningunha aplicación pode interromper}=1{{app_1} pode interromper}=2{{app_1} e {app_2} poden interromper}=3{{app_1}, {app_2} e {app_3} poden interromper}other{{app_1}, {app_2} e # aplicacións máis poden interromper}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (traballo)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que as aplicacións ignoren o modo Non molestar"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicacións que poden interromper"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecciona máis aplicacións"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper o modo Non molestar"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguén pode interromper o modo Non molestar"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Algunhas persoas poden interromper o modo Non molestar"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"A chamadas repetidas poden interromper"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Todas as persoas poden interromper o modo Non molestar"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Chamadas repetidas"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir chamadas repetidas"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Cambia durante 1 hora (ata esta hora: {time}) ao modo Só alarmas}other{Cambia durante # horas (ata esta hora: {time}) ao modo Só alarmas}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Cambiar ao modo Só alarmas ata as <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Cambia a interromper sempre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Cambiar nome"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Cambiar icona"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Cambiar a icona"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Editar un modo"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Crear 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">"Nome do modo"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos do calendario"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina Hora de durmir"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Mentres conduces"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Configuración da aplicación"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Información e configuración en <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Xestión a cargo de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Queres desactivar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Este modo non se activará nunca se está desactivado"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desactivar"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Queres activar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Este modo pode activarse automaticamente en función da súa configuración"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activar"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Define un modo que siga un horario regular"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Define un modo para sincronizar os eventos do calendario e as respostas ás invitacións"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Crea unha rutina de sono relaxante. Programa alarmas, atenúa a pantalla e bloquea as notificacións."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dálle prioridade á seguranza na estrada e céntrate na condución, sen distraccións"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Evita as distraccións ou as interrupcións por parte do dispositivo para non perder a concentración"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimina todas as distraccións e desfruta dun ambiente tranquilo"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personaliza as experiencias e a configuración do dispositivo para os distintos usuarios"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Reduce as interrupcións ao permitir que se poñan en contacto contigo só as persoas e aplicacións importantes"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Advertencia"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Pechar"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Enviar comentarios do dispositivo"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Carcasa"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batería"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel de configuración"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forzar modo de escritorio"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forza o modo de escritorio experimental en pantallas secundarias"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Activar ventás de forma libre"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Activar ventás forma libre en pantalla secundaria"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Activar aplicacións sen axuste de tamaño no modo multiventá"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite utilizar as aplicacións sen axuste de tamaño no modo multiventá"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Ignorar Forzar modo escuro"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"datos móbiles"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para mellorar a experiencia que ofrece o dispositivo, as aplicacións e os servizos poden seguir buscando redes wifi en calquera momento, aínda que esta conexión estea desactivada. Esta opción pódese utilizar, por exemplo, para mellorar as funcións e os servizos baseados na localización, e podes cambiala na configuración da función Busca de redes wifi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Cambiar"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectada"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectada temporalmente"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Usando <xliff:g id="SUBNAME">%1$s</xliff:g> temporalmente"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar fixación de aplicación"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar opcións para programadores"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usar servizo de impresión"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permitir varios usuarios"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir cambiar de usuario"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"permitir, varios, usuario, deixar, moitos"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"múltiples, usuarios, perfís, persoas, contas, cambiar, moitos"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar depuración sen fíos"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Escolle o que aparecerá na pantalla cando a tableta estea na súa base. Pode que o dispositivo utilice máis enerxía se se usa un protector de pantalla."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Cómpre reiniciar o dispositivo para activar a compatibilidade coa forma libre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cómpre reiniciar o dispositivo para forzar o modo de escritorio nas pantallas secundarias."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Cómpre reiniciar o dispositivo para activar a compatibilidade coas ventás de forma libre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Cómpre reiniciar o dispositivo para actualizar a dispoñibilidade das ventás de forma libre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Cómpre reiniciar o dispositivo para activar as ventás de forma libre na pantalla secundaria."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar máis adiante"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espacial"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Maxenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Feito"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Gardar"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancelar"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Predeterminado"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Opción activada"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desactivadas"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Opción activada"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio: %1$d %% do lado esquerdo, %2$d %% do lado dereito"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio: %1$d %% do lado dereito, %2$d %% do lado esquerdo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"As aplicacións que teñas instaladas poderán consultar o nome do teu dispositivo. Tamén poderán velo outros usuarios cando te conectes a dispositivos Bluetooth ou a redes wifi, así como cando configures zonas wifi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Xénero gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Seleccionar o xénero gramatical"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Escoitar emisión"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Escanea o código QR dunha emisión de audio para escoitala con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Non se pode modificar o contrasinal mentres se comparte audio. Para facelo, primeiro desactiva o audio compartido."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Escáner de códigos QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Buscar en Configuración"</string>
 </resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index 377dee5..b0c7833 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"બેડટાઇમ"</item>
-    <item msgid="4152450357280759894">"ડ્રાઇવિંગ"</item>
-    <item msgid="7096549258219399423">"ઇમર્સિવ"</item>
-    <item msgid="2760716776980432977">"મેનેજ કરેલી"</item>
-    <item msgid="601734478369121764">"સ્ટાર"</item>
-    <item msgid="6243809315432780521">"કૅલેન્ડર"</item>
-    <item msgid="4913577903148415331">"સમય"</item>
-    <item msgid="3653377604690057780">"થિયેટર"</item>
-    <item msgid="3843711267408385410">"ફૂલ"</item>
+    <item msgid="2750940760340557109">"અર્ધચંદ્ર"</item>
+    <item msgid="8513969636586738035">"કાર"</item>
+    <item msgid="957392343846370509">"કોઈ વ્યક્તિનું મગજ"</item>
+    <item msgid="6734164279667121348">"કૅલેન્ડર"</item>
+    <item msgid="4139559120353528558">"ઘડિયાળ"</item>
+    <item msgid="5157711296814769020">"બીચ પરની છત્રી"</item>
+    <item msgid="6635328761318954115">"તંબુ"</item>
+    <item msgid="1711994778883392255">"ફિલ્મ રીલ"</item>
+    <item msgid="9097658401859604879">"ગેમ કન્ટ્રોલર"</item>
+    <item msgid="755931364157422565">"જિમ ડમ્બબેલ"</item>
+    <item msgid="8894207806795738429">"બૉલ ફેંકતી કોઈ વ્યક્તિ"</item>
+    <item msgid="2274801572149555103">"લાત મારતી કોઈ વ્યક્તિ"</item>
+    <item msgid="8795037201506843325">"સ્વિમિંગ"</item>
+    <item msgid="3558421426169430451">"હાઇક કરતી કોઈ વ્યક્તિ"</item>
+    <item msgid="7455070421232184932">"ગોલ્ફ"</item>
+    <item msgid="5841773092449126508">"વર્કશોપ ટૂલ"</item>
+    <item msgid="4595330511709890409">"બ્રીફકેસ"</item>
+    <item msgid="8352738347856724389">"સ્ટાર"</item>
+    <item msgid="7082783098151998721">"કમળનું ફૂલ"</item>
+    <item msgid="5772220259409264724">"નિરીક્ષક"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index ec14bea..7ab0e3b 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"સસ્પેન્ડેડ"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"અજાણી"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"પ્રીવ્યૂ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR કોડ"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"વધુ નાનું બનાવો"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"વધુ મોટું બનાવો"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"હંમેશાં"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"સાંભળવામાં મદદ આપતા ડિવાઇસ સંબંધી સેટિંગ"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"શૉર્ટકટ, શ્રવણ યંત્રની સુસંગતતા"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"પ્રીસેટ"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"તમારા ઑડિયોલોજિસ્ટ દ્વારા પ્રોગ્રામ કરેલા કોઈ પ્રીસેટ નથી"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"પ્રીસેટ અપડેટ કરી શક્યા નથી"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ઑડિયો આઉટપુટ"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ઑડિયો આઉટપુટ વિશે"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"આ ઍપ માટે સેટિંગમાંથી ભાષા પસંદ કરી શકાતી નથી."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"આ ભાષા ઍપમાં ઉપલબ્ધ ભાષાઓથી અલગ હોઈ શકે છે. કેટલીક ઍપ આ સેટિંગને સપોર્ટ ન કરે એવું બની શકે છે."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"દરેક ઍપ માટે ભાષા સેટ કરો."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"તમારી સિસ્ટમ, ઍપ અને વેબસાઇટ, તમારી પસંદગીની ભાષાઓમાંની પહેલી સપોર્ટેડ ભાષાનો ઉપયોગ કરે છે."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"તમારી પસંદગીની ભાષાની સૂચિમાંથી પહેલી સપોર્ટેડ ભાષા તમારા ડિવાઇસ, ઍપ અને વેબસાઇટ દ્વારા ઉપયોગ કરવામાં આવે છે.\n\nતારીખો, નંબર અને એકમો સંબંધી ફૉર્મેટ માટે તમારી પસંદગીની ભાષામાંથી ઘણી ઍપ પ્રદેશનો પણ ઉપયોગ કરે છે. તમારા પ્રદેશમાં ફેરફાર કરવા માટે, કોઈ ભાષા ઉમેરો, પછી તમારો પસંદગીનો પ્રદેશ પસંદ કરો."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"દરેક ઍપ માટે ભાષા પસંદ કરવા, ઍપની ભાષાના સેટિંગ પર જાઓ."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ઍપની ભાષાઓ વિશે વધુ જાણો"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"સિસ્ટમની ભાષા %s બદલીએ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"બંધ છે"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}one{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}other{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"લોડ કરી રહ્યું છે…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"નજીકના ડિવાઇસ જોવાની પરવાનગી ધરાવતી ઍપ, કનેક્ટ કરેલા ડિવાઇસના સ્થાનની માહિતી મેળવી શકે છે."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"નજીકના ડિવાઇસ જોવાની પરવાનગી ધરાવતી બધી ઍપ, કનેક્ટ કરેલા ડિવાઇસના લોકેશન નિર્ધારિત કરી શકે છે."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ઍપ અને સેવાઓને આપવામાં આવેલો લોકેશનની માહિતીનો ઍક્સેસ બંધ છે. આમ છતાં જ્યારે તમે કૉલ કે ટેક્સ્ટ મારફતે ઇમર્જન્સી નંબરનો સંપર્ક કરશો, ત્યારે ઇમર્જન્સીમાં પ્રતિસાદ આપનારાઓને તમારા ડિવાઇસના લોકેશનની માહિતી મોકલવામાં આવી શકે છે."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"લોકેશન સેટિંગ વિશે વધુ જાણો"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ફેરફાર કરવા માટે, ChromeOS સેટિંગ &gt; પ્રાઇવસી અને સુરક્ષા &gt; પ્રાઇવસીને લગતા નિયંત્રણો &gt; લોકેશન ઍક્સેસ પર જાઓ"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ફેસ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator અનલૉક"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"વૉચ ઉમેરી"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"તમારી વૉચનું સેટઅપ કરો"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"વૉચ અનલૉક સુવિધા વિશે વધુ જાણો"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"વૉચ ઉમેરો"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"વૉચ કાઢી નાખો"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ફિંગરપ્રિન્ટ અને ફેસ અનલૉક"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉક સુવિધા"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ઑફિસની પ્રોફાઇલ માટે ફેસ અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધા"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"સેટઅપ જરૂરી છે"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"ચહેરાનું મૉડલ અને એકથી વધુ ફિંગરપ્રિન્ટ ઉમેરી"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"ખાનગી સ્પેસનું સેટઅપ કરી રહ્યાં છીએ…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"કોઈ ખાનગી સ્પેસનું સેટઅપ કરી શકાતું નથી"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ફરી પ્રયાસ કરો"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"બહાર નીકળો"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"ખાનગી સ્પેસ ઉપલબ્ધ નથી.\nશક્ય કારણો જુઓ"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"શક્ય કારણો જુઓ"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ખાનગી સ્પેસ માટે નવું લૉક પસંદ કરીએ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"તમે માત્ર ખાનગી સ્પેસ માટે નવું લૉક સેટ કરી શકો છો અથવા તમે તમારા ડિવાઇસને અનલૉક કરવા માટે વાપરતા હો એ જ લૉકનો ઉપયોગ કરી શકો છો"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"સ્ક્રીન લૉકનો ઉપયોગ કરો"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"શું ડિવાઇસને ફરી શરૂ કરીએ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFCનું વિગતવાર લૉગ ઇન માત્ર ડેવલપમેન્ટના હેતુઓ માટે છે. બગ રિપોર્ટમાં વધારાનો NFC ડેટા શામેલ છે, જેમાં ખાનગી માહિતી હોઈ શકે છે. આ સેટિંગમાં ફેરફાર કરવા માટે, તમારા ડિવાઇસને ફરી શરૂ કરો."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ફરી શરૂ કરો"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ચાલુ"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"બંધ"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"બાહ્ય ડિસ્પ્લે"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"બાહ્ય ડિસ્પ્લેનો ઉપયોગ કરો"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ડિસ્પ્લેનું રિઝોલ્યુશન"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"બાહ્ય ડિસ્પ્લે ડિસ્કનેક્ટેડ છે"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"રોટેશન"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"સ્ટૅન્ડર્ડ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"રોટેશન અથવા રિઝોલ્યુશન બદલવાથી હાલમાં ચાલી રહેલી કોઈપણ ઍપ બંધ થઈ શકે છે"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"તમારી સ્ક્રીનને મિરર કરવા માટે તમારું ડિવાઇસ બાહ્ય ડિસ્પ્લે સાથે કનેક્ટેડ હોવું આવશ્યક છે"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"વધુ વિકલ્પો"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"કાસ્ટ કરો"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"મીરર"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"વાયરલેસ ડિસ્પ્લે સક્ષમ કરો"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"અડૅપ્ટિવ"</string>
     <string name="brightness" msgid="6216871641021779698">"સ્ક્રીનની બ્રાઇટનેસનું લેવલ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"અડૅપ્ટિવ બ્રાઇટનેસ"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"અડૅપ્ટિવ બ્રાઇટનેસ વિશે"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"તમારી સ્ક્રીનની બ્રાઇટનેસ તમારા પર્યાવરણ અને ઍક્ટિવિટી સાથે ઑટોમૅટિક રીતે ઓછું-વધતું થઈને ગોઠવાશે. તમે સ્લાઇડર મેન્યુઅલી ખસેડીને અડૅપ્ટિવ બ્રાઇટનેસને તમારી પસંદગીઓ જાણવામાં સહાય કરી શકો છો."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ચાલુ કરો"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"બંધ"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"વિકલ્પો"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ઍક્સેસિબિલિટી"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ભૌતિક કીબોર્ડ"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ઑન-સ્ક્રીન કીબોર્ડનો ઉપયોગ કરો"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"જ્યારે ભૌતિક કીબોર્ડ સક્રિય હોય ત્યારે તેને સ્ક્રીન પર રાખો"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"બાઉન્સ કી"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> msની અંદર એક જ કીને વારંવાર ઝડપથી દબાવવાની પ્રક્રિયાની કીબોર્ડ અવગણના કરે છે"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ધીમી કી"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms સુધીમાં સક્રિય થવા માટે, કોઈ કીને દબાવવામાં લાગતા સમયની ગોઠવણી કરે છે"</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="2396247040177734245">"માઉસને નિયંત્રિત કરવા માટે, વાસ્તવિક કીબોર્ડનો ઉપયોગ કરો."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"પૉઇન્ટર ફીલ શૈલીને પીળામાં બદલો"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"પૉઇન્ટર ફીલ શૈલીને ગુલાબીમાં બદલો"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"પૉઇન્ટર ફીલ શૈલીને વાદળીમાં બદલો"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"પૉઇન્ટર સ્ટ્રોકની શૈલી"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"સફેદ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"કાળો"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"એકપણ નહીં"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ટચપૅડના સંકેતો વિશે જાણો"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ટ્રૅકપૅડ, ટ્રૅક પૅડ, માઉસ, કર્સર, સ્ક્રોલ કરો, સ્વાઇપ કરો, રાઇટ ક્લિક કરો, ક્લિક કરો, પૉઇન્ટર"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"રાઇટ ક્લિક કરો, ટૅપ કરો"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"વપરાશકર્તા દ્વારા પસંદ કરેલો: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"સ્પીચ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"પૉઇન્ટરની ગતિ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"પૉઇન્ટર સ્કેલ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"પૉઇન્ટર સ્કેલ ઘટાડો"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"પૉઇન્ટર સ્કેલ વધારો"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"રમત નિયંત્રક"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"વાઇબ્રેશનને રીડાયરેક્ટ કરો"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"કનેક્ટેડ હોય ત્યારે ગેમ નિયંત્રક પર વાઇબ્રેશનને મોકલો"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"તેમ છતાં ચાલુ રાખો"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"રદ કરો"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"સ્ક્રીન મોટી કરવાનું સેટિંગ"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"એક આંગળી વડે પૅન કરવાની સુવિધા"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"નાનામોટા કરવાના ભાગને 1 આંગળીથી ખસેડો"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"સ્ક્રીન પર અહીંતહીં જવા 1 આંગળીથી ખેંચો"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"એક આંગળી ખેંચીને મોટું કરવાનો વિસ્તાર ખસેડો."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"બે આંગળી ખેંચીને મોટું કરવાનો વિસ્તાર ખસેડો."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"માત્ર સ્ક્રીનના ભાગને મોટો કરતી વખતે અનુપલબ્ધ"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ઝૂમ કરવા માટે બટન ટૅપ કરો"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"કન્ટેન્ટને મોટું કરવા માટે સ્ક્રીનને ઝડપથી મોટી કરો"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;મોટું કરવા માટે:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. મોટું કરવાનું શરૂ કરવા માટેના શૉર્ટકટનો ઉપયોગ કરો&lt;br/&gt; {1,number,integer}. સ્ક્રીન પર ટૅપ કરો&lt;br/&gt; {2,number,integer}. સ્ક્રીન પર કોઈપણ જગ્યાએ જવા માટે 2 આંગળી ખેંચો&lt;br/&gt; {3,number,integer}. નાનું-મોટું કરવાનું ગોઠવવા માટે 2 આંગળી વડે પિન્ચ કરો&lt;br/&gt; {4,number,integer}. મોટું કરવાનું રોકવા માટેના શૉર્ટકટનો ઉપયોગ કરો&lt;br/&gt;&lt;br/&gt; &lt;b&gt;હંગામી રીતે મોટું કરવા માટે:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. તમારા ડિવાઇસ પર મોટું કરવાના પ્રકારને પૂર્ણ સ્ક્રીન પર સેટ કરવામાં આવ્યો હોય તેની ખાતરી કરો&lt;br/&gt; {1,number,integer}. મોટું કરવાનું શરૂ કરવા માટેના શૉર્ટકટનો ઉપયોગ કરો&lt;br/&gt; {2,number,integer}. સ્ક્રીન પર ગમે-ત્યાં આંગળી ટચ કરીને થોડીવાર દબાવી રાખો&lt;br/&gt; {3,number,integer}. સ્ક્રીન પર કોઈપણ જગ્યાએ જવા માટે આંગળી ખેંચો&lt;br/&gt; {4,number,integer}. મોટું કરવાનું રોકવા માટે આંગળીને ઉઠાવી લો"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;મોટું કરવા માટે:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. મોટું કરવાનું શરૂ કરવા માટેના શૉર્ટકટનો ઉપયોગ કરો&lt;br/&gt; {1,number,integer}. સ્ક્રીન પર ટૅપ કરો&lt;br/&gt; {2,number,integer}. સ્ક્રીન પર અહીંતહીં જવા 2 આંગળીથી ખેંચો&lt;br/&gt; {3,number,integer}. નાનું-મોટું કરવાનું ગોઠવવા માટે 2 આંગળી વડે પિન્ચ કરો&lt;br/&gt; {4,number,integer}. મોટું કરવાનું બંધ કરવા માટેના શૉર્ટકટનો ઉપયોગ કરો&lt;br/&gt;&lt;br/&gt; તમે હંગામી રીતે મોટું કરવાની સાથે બીજું ઘણું કરી શકો છો."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;મોટું કરવા માટે:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. મોટું કરવાનું શરૂ કરવા માટેના શૉર્ટકટનો ઉપયોગ કરો&lt;br/&gt; {1,number,integer}. સ્ક્રીન પર ટૅપ કરો&lt;br/&gt; {2,number,integer}. સ્ક્રીન પર અહીંતહીં જવા 1 કે 2 આંગળીથી ખેંચો&lt;br/&gt; {3,number,integer}. નાનું-મોટું કરવાનું ગોઠવવા માટે 2 આંગળી વડે પિન્ચ કરો&lt;br/&gt; {4,number,integer}. મોટું કરવાનું બંધ કરવા માટેના શૉર્ટકટનો ઉપયોગ કરો&lt;br/&gt;&lt;br/&gt; તમે હંગામી રીતે મોટું કરવાની સાથે બીજું ઘણું કરી શકો છો."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"જ્યારે મેગ્નિફિકેશન ચાલુ હોય, ત્યારે તમે તમારી સ્ક્રીનને મોટી કરી શકો છો.\n\n"<b>"નાનું-મોટું કરવા માટે"</b>", મેગ્નિફિકેશન શરૂ કરો, પછી સ્ક્રીન પર ક્યાંય પણ ટૅપ કરો.\n"<ul><li>"સ્ક્રોલ કરવા માટે 2 કે તેથી વધુ આંગળી વડે ખેંચો"</li>\n<li>"નાનું-મોટું ગોઠવવા માટે 2 કે તેથી વધુ આંગળીથી પિન્ચ કરો"</li></ul>\n\n<b>"અસ્થાયી રૂપે નાનું-મોટું કરવા માટે"</b>", મેગ્નિફિકેશન શરૂ કરો, પછી સ્ક્રીન પર ગમે ત્યાં ટચ કરીને થોડીવાર દબાવી રાખો.\n"<ul><li>"સમગ્ર સ્ક્રીન પર આવવા-જવા માટે તમારી આંગળીને ખેંચો"</li>\n<li>"નાનું કરવા માટે તમારી આંગળીને ઉઠાવી લો"</li></ul>\n\n"તમે કીબોર્ડ અથવા નૅવિગેશન બાર પર મોટું કરી શકતાં નથી."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>માંથી <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> પેજ"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ઍક્સેસિબિલિટી બટન શૉર્ટકટ"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"2 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 2 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 3 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{તમારી સ્ક્રીનની સૌથી નીચેથી ઉપરની તરફ સ્વાઇપ કરો. કોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, સ્ક્રીનની ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો.}one{તમારી સ્ક્રીનની સૌથી નીચેથી ઉપરની તરફ # આંગળી વડે સ્વાઇપ કરો. કોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, # આંગળી વડે સ્ક્રીનની ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"સ્ક્રીન પર બે આંગળી વડે બે વાર ટૅપ કરો"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"સ્ક્રીન પર ઝડપથી %1$d વાર ટૅપ કરો. આમ કરવાથી તમારું ડિવાઇસ ધીમું થઈ શકે છે."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d આંગળી વડે બે વાર ટૅપ કરો"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"સ્ક્રીન પર ઝડપથી બે આંગળી વડે {0,number,integer} વાર ટૅપ કરો"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"સ્ક્રીનને ત્રણ વાર ટૅપ કરો"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ત્રણ વાર ટૅપ કરો"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ઝડપથી સ્ક્રીન પર {0,number,integer} વાર ટૅપ કરો. આ શૉર્ટકટ તમારા ડિવાઇસને ધીમું કરી શકે છે"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"વિગતવાર"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ઍક્સેસિબિલિટી બટનને <xliff:g id="SERVICE">%1$s</xliff:g> પર સેટ કરેલું છે. વિસ્તૃતીકરણનો ઉપયોગ કરવા માટે, ઍક્સેસિબિલિટી બટનને દબાવી રાખો, પછી વિસ્તૃતીકરણ પસંદ કરો."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ઍક્સેસિબિલિટી સંકેત <xliff:g id="SERVICE">%1$s</xliff:g>.પર સેટ કરવામાં આવ્યો છે. વિસ્તૃતીકરણનો ઉપયોગ કરવા માટે, સ્ક્રીનના નીચેના ભાગથી બે આંગળી વડે ઉપર સ્વાઇપ કરો અને હોલ્ડ કરી રાખો. ત્યાર બાદ વિસ્તૃતીકરણ પસંદ કરો."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"આ સેવા કાર્ય કરતી નથી."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ઍક્સેસિબિલિટીના શૉર્ટકટ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"ઝડપી સેટિંગમાં બતાવો"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"લાલ-લીલો"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"લાલ-લીલો"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"લાલ-લીલો, લીલો રંગ બરાબર ન દેખાવાની સમસ્યા"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"લાલ-લીલો રંગ, લાલ રંગ બરાબર ન દેખાવાની સમસ્યા"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"વાદળી-પીળો"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ગ્રેસ્કેલ"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"તીવ્રતા"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"લીલો રંગ ન દેખાવાની સમસ્યા, ડ્યૂટેરેનોમલી"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"લાલ રંગ ન દેખાવાની સમસ્યા, પ્રોટેનોમલી"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ગ્રેસ્કેલ મોડ માટે અથવા જ્યારે રંગ સુધારણા બંધ કરેલી હોય ત્યારે ઉપલબ્ધ નથી"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ડ્યૂટેરેનોમલી"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"પ્રોટેનોમલી"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ટ્રાઇટેનોમલી"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"એક્સ્ટ્રા ડિમ"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"સ્ક્રીનને એક્સ્ટ્રા ડિમ કરો"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"સાયન"</string>
     <string name="color_yellow" msgid="5957551912912679058">"પીળો"</string>
     <string name="color_magenta" msgid="8943538189219528423">"મજેન્ટા"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"શું <xliff:g id="SERVICE">%1$s</xliff:g>ને તમારા ડિવાઇસના સંપૂર્ણ નિયંત્રણની મંજૂરી આપીએ?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>ને આની જરૂર છે:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"એક ઍપ પરવાનગી વિનંતીને અસ્પષ્ટ કરતી હોવાને કારણે, સેટિંગ તમારા પ્રતિસાદને ચકાસી શકતી નથી."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> આ ડિવાઇસના સંપૂર્ણ નિયંત્રણ માટે વિનંતી કરે છે. સેવા ઍક્સેસિબિલિટીની જરૂર હોય તેવા વપરાશકર્તા વતી સ્ક્રીન વાંચીને કાર્ય કરી શકે છે. મોટાભાગની ઍપ માટે આ લેવલનું નિયંત્રણ યોગ્ય નથી."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ઍક્સેસિબિલિટી સંબંધિત આવશ્યકતા માટે સહાય કરતી ઍપ માટે સંપૂર્ણ નિયંત્રણ યોગ્ય છે, પણ મોટા ભાગની ઍપ માટે યોગ્ય નથી."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"જોવા અને નિયંત્રણ માટેની સ્ક્રીન"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"તે સ્ક્રીન પરનું બધું કન્ટેન્ટ વાંચી શકે છે અને કન્ટેન્ટને અન્ય ઍપ પર બતાવી શકે છે."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ક્રિયાઓ જુઓ અને કરો"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"તે ઍપ અથવા હાર્ડવેર સેન્સર વડે તમારી ક્રિયાપ્રતિક્રિયાને ટ્રૅક કરી શકે છે અને તમારા વતી ઍપ સાથે ક્રિયાપ્રતિક્રિયા કરી શકે છે."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"મંજૂરી આપો"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"નકારો"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"બંધ કરો"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{એકપણ નહીં}=1{એક શેડ્યૂલ સેટ કરવામાં આવ્યું}one{# શેડ્યૂલ સેટ કરવામાં આવ્યું}other{# શેડ્યૂલ સેટ કરવામાં આવ્યા}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ખલેલ પાડશો નહીં"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"પ્રાધાન્યતાના મોડ"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"મોડ ઉમેરો"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"વિક્ષેપોને ઘટાડો અને ઊંઘવાના, કામ કરવાના, ડ્રાઇવિંગના તેમજ આ વચ્ચેની દરેક બાબતો માટેના મોડ સાથે તમારા ધ્યાનને નિયંત્રિત કરો."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"તમારો પોતાનો મોડ બનાવો"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"ફક્ત મહત્ત્વપૂર્ણ લોકો અને ઍપ દ્વારા નોટિફિકેશન મેળવો"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"શેડ્યૂલ સેટ કરો"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"આના આધારે શેડ્યૂલ કરો"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"દિવસ અને સમય"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"અઠવાડિયાના દિવસોમાં સવારે 9થી સાંજે 5 વાગ્યા સુધી\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"કૅલેન્ડર ઇવેન્ટ"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} સક્રિય છે}=2{{mode_1} અને {mode_2} સક્રિય છે}=3{{mode_1}, {mode_2} અને {mode_3} સક્રિય છે}one{{mode_1}, {mode_2} અને વધુ # સક્રિય છે}other{{mode_1}, {mode_2} અને વધુ # સક્રિય છે}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}one{# મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}other{# મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ચાલુ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"સેટ નથી"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"બંધ છે"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"કોઈ મોડ બનાવો"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"કસ્ટમ"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"હમણાં જ ચાલુ કરો"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"બંધ કરો"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"કોઈ મોડ મળ્યો નથી"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"વિક્ષેપો મર્યાદિત કરો"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"અવરોધો અને વિક્ષેપો બ્લૉક કરો"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g>નું સેટઅપ કરો"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"ખલેલ પાડશો નહીં ચાલુ કરો"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"અલાર્મ અને મીડિયાના સાઉન્ડ વિક્ષેપ કરી શકે છે"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"શેડ્યૂલ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"શેડ્યૂલ ડિલીટ કરો"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ડિલીટ કરો"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"નામ બદલો"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ડિલીટ કરો"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" મોડ ડિલીટ કરીએ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ફેરફાર કરો"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"શેડ્યૂલ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"શેડ્યૂલ કરો"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ઑટોમૅટિક રીતે ચાલુ કરો"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"કૅલેન્ડર ઉમેરો"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"તમારા કૅલેન્ડરનો ઉપયોગ કરો"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"શેડ્યૂલ"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"શેડ્યૂલ સેટ કરો"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ઑટોમૅટિક નિયમ ક્યારે ચાલુ કરવો"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ઇવેન્ટનું શેડ્યૂલ"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"આ માટે ઇવેન્ટ દરમિયાન ચાલુ કરો"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"જ્યારે આમંત્રણનો આ જવાબ મળે"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"સમય આધારિત શેડ્યૂલ કરો"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"શેડ્યૂલ"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> કલાક, <xliff:g id="MINUTES">%2$d</xliff:g> મિનિટ"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"શેડ્યૂલ"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"અવાજવાળા વિક્ષેપોને મંજૂરી આપો"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"દૃશ્ય વિક્ષેપોને બ્લૉક કરો"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"વિઝ્યુઅલ સંકેતોને મંજૂરી આપો"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"તમારા સુધી પહોંચી શકે તેવા નોટિફિકેશન"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"અતિરિક્ત ક્રિયાઓ"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"નોટિફિકેશનના ફિલ્ટર"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"વધુ સેટિંગ"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{બંધ}=1{બંધ / 1 મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}one{બંધ / # મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}other{બંધ / # મોડ ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ડિસ્પ્લે સેટિંગ"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ડિસ્પ્લેનાં વિકલ્પો"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ગ્રેસ્કેલ"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ડાર્ક થીમ ચાલુ કરો"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"OS અને ઍપ સ્વિચ કરો, જેથી ઘેરા બૅકગ્રાઉન્ડ પર લાઇટ ટેક્સ્ટની પસંદગી કરી શકાય, જેનાથી આંખો માટે વધુ સરળતા રહી શકે છે અને અમુક ડિવાઇસ પર બૅટરીની નોંધપાત્ર બચતનો લાભ મળે છે"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ડિસ્પ્લેમાં કોઈ ફેરફાર નથી}=1{{effect_1}}=2{{effect_1} અને {effect_2}}=3{{effect_1}, {effect_2} અને {effect_3}}one{{effect_1}, {effect_2} અને વધુ #}other{{effect_1}, {effect_2} અને વધુ #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"કઈ બાબત વિશે તમને નોટિફિકેશન મોકલી શકાશે, તે મર્યાદિત કરો"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"કોઈ વિક્ષેપને ફિલ્ટર કરેલા નથી"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ફિલ્ટર કરેલા નોટિફિકેશન માટેના વિકલ્પો ડિસ્પ્લે કરો"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"જ્યારે ખલેલ પાડશો નહીં મોડ ચાલુ હોય"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"નોટિફિકેશનમાં કોઈ સાઉન્ડ નથી"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"નોટિફિકેશન ખોલો"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"નોટિફિકેશન સ્નૂઝ કરવાની મંજૂરી આપો"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ઍપ આઇકન પર નોટિફિકેશનનું ચિહ્ન"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"નોટિફિકેશન બંડલ"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"બબલ"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"બબલ"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"આ વાતચીતને બબલ તરીકે બતાવો"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"અડૅપ્ટિવ નોટિફિકેશન"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"અડૅપ્ટિવ નોટિફિકેશનનો ઉપયોગ કરો"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"જ્યારે ટૂંકા સમયગાળામાં તમને ઘણા નોટિફિકેશન મળે, ત્યારે તમારો ફોન વૉલ્યૂમ ઘટાડશે અને બે મિનિટ સુધી સ્ક્રીન પરના પૉપ-અપને ઓછા કરશે. કૉલ, અલાર્મ અને પ્રાધાન્યતા ધરાવતી વાતચીતોને કારણે હજી પણ ફોન વાઇબ્રેટ થશે, વગાડશે અથવા સ્ક્રીન પર બતાવશે અને જ્યારે તમે સ્ક્રીનની સૌથી ઉપરથી નીચે તરફ ખેંચો, ત્યારે તમામ નોટિફિકેશન શોધવા સરળ છે."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ઑફિસની પ્રોફાઇલ ઍપ પર લાગુ કરો"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR સહાયક સેવાઓ"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"કૅટેગરી"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"અન્ય"</string>
     <string name="no_channels" msgid="4716199078612071915">"આ ઍપએ કોઈ નોટિફિકેશન પોસ્ટ કરી નથી"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"બિનવપરાયેલી કૅટેગરી બતાવો"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ઍપમાંના વધારાના સેટિંગ"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"બિનવપરાયેલી કૅટેગરી બતાવો"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"બિનવપરાયેલી કૅટેગરી છુપાવો"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"વાતચીત"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"બધી વાતચીત"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"બધી વાતચીત"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"પ્રાધાન્ય આપ્યું હોય તેવી વાતચીત"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"પ્રાધાન્યતા ધરાવતી વાતચીતો"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"કોઈ નહીં"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"વિક્ષેપ ઊભો કરી શકે તેવી ઍપ"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"પસંદગીની ઍપ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"એકપણ નહીં"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"બધી"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{કોઈપણ ઍપ વિક્ષેપ કરી શકશે નહીં}=1{{app_1} વિક્ષેપ કરી શકે છે}=2{{app_1} અને {app_2} વિક્ષેપ કરી શકે છે}=3{{app_1}, {app_2} અને {app_3} વિક્ષેપ કરી શકે છે}one{{app_1}, {app_2} અને વધુ # વિક્ષેપ કરી શકે છે}other{{app_1}, {app_2} અને વધુ # વિક્ષેપ કરી શકે છે}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ઑફિસ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ગણતરી કરી રહ્યાં છીએ…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"અ‍ૅપને ઓવરરાઇડ કરવાની મંજૂરી આપો"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"વિક્ષેપ ઊભો કરી શકે તેવી ઍપ"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"વધુ ઍપ પસંદ કરો"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"રિપીટ કૉલર વિક્ષેપ કરી શકે છે"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"બધા લોકો વિક્ષેપ કરી શકે છે"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"પુનરાવર્તિત કૉલર્સ"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"રિપીટ કૉલરને મંજૂરી આપો"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} સુધી ફક્ત એક કલાક માટે અલાર્મમાં બદલો}one{{time} સુધી ફક્ત # કલાક માટે અલાર્મમાં બદલો}other{{time} સુધી ફક્ત # કલાક માટે અલાર્મમાં બદલો}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"એલાર્મ્સ પર ફક્ત <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> સુધી બદલો"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"હંમેશાં ખલેલ પાડો પર બદલો"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"નામ બદલો"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"આઇકન બદલો"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"આઇકન બદલો"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ફેરફાર કરવાનો મોડ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"કોઈ મોડ બનાવો"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"કસ્ટમ મોડ"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"મોડનું નામ"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"કૅલેન્ડર ઇવેન્ટ"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"બેડટાઇમ રૂટિન"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ડ્રાઇવિંગ કરતી વખતે"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ઍપના સેટિંગ"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>માંની માહિતી અને સેટિંગ"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> દ્વારા મેનેજ કરવામાં આવે છે"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"શું <xliff:g id="MODE_NAME">%1$s</xliff:g> બંધ કરીએ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"જ્યારે બંધ હોય, ત્યારે આ મોડ ક્યારેય ચાલુ થશે નહીં"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"બંધ કરો"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"શું <xliff:g id="MODE_NAME">%1$s</xliff:g> ચાલુ કરીએ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"આ મોડ તેના સેટિંગના આધારે ઑટોમૅટિક રીતે ચાલુ થઈ શકે છે"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ચાલુ કરો"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"નિયમિત શેડ્યૂલ અનુસરે એવો કોઈ મોડ સેટ કરો"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"કૅલેન્ડર ઇવેન્ટ અને આમંત્રણના જવાબો સાથે સિંક કરવા માટે, કોઈ મોડ સેટ કરો"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"નિરાંતે ઊંઘવાનું રૂટિન ડિઝાઇન કરો. અલાર્મ સેટ કરો, સ્ક્રીનની લાઇટ ઓછી કરો અને નોટિફિકેશન બ્લૉક કરો."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ફોકસ કરીને અને કોઈપણ વિક્ષેપ વિના ડ્રાઇવ કરવા માટે રસ્તા પર સલામતીને પ્રાધાન્યતા આપો"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"ચેતવણી"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"બંધ કરો"</string>
     <string name="device_feedback" msgid="5351614458411688608">"આ ડિવાઇસ વિશે પ્રતિસાદ મોકલો"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"કેસ"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"બૅટરી"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"સેટિંગ પૅનલ"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ફરજિયાત ડેસ્કટૉપ મોડ ચાલુ કરો"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"સેકન્ડરી ડિસ્પ્લે પર ફરજિયાત પ્રયોગાત્મક ડેસ્કટૉપ મોડ ચાલુ કરો"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ફ્રીફોર્મ વિન્ડો ચાલુ કરો"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"સેકન્ડરી ડિસ્પ્લે પર ફ્રીફોર્મ વિન્ડો ચાલુ કરો"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"એકથી વધુ વિન્ડોમાં ફરીથી કદ ન બદલી શકવાનો વિકલ્પ ચાલુ કરો"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ફરીથી કદ ન બદલી શકે તેવી ઍપને એકથી વધુ વિન્ડોમાં દેખાવાની મંજૂરી આપે છે"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ફરજિયાત ઘેરા મોડની સુવિધાને ઓવરરાઇડ કરો"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"મોબાઇલ ડેટા"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ડિવાઇસના અનુભવને બહેતર બનાવવા માટે, વાઇ-ફાઇ બંધ હોય ત્યારે પણ ઍપ અને સેવાઓ કોઈપણ સમયે વાઇ-ફાઇ નેટવર્ક સ્કૅન કરી શકે છે. ઉદાહરણ તરીકે, આનો ઉપયોગ લોકેશન આધારિત સુવિધાઓ અને સેવાઓને બહેતર બનાવવા માટે કરી શકાય છે. તમે વાઇ-ફાઇ સ્કૅનિંગના સેટિંગમાં જઈને આને બદલી શકો છો."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"બદલો"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"કનેક્ટ કરેલું"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"હંગામી રીતે કનેક્ટ કર્યું"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"હંગામી રીતે <xliff:g id="SUBNAME">%1$s</xliff:g>નો ઉપયોગ કરી રહ્યું છે"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ઍપ પિનિંગનો ઉપયોગ કરો"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ડેવલપરના વિકલ્પોનો ઉપયોગ કરો"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"પ્રિન્ટ સેવાનો ઉપયોગ કરો"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"એકથી વધુ વપરાશકર્તાઓને મંજૂરી આપો"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"વપરાશકર્તા સ્વિચ કરવાની મંજૂરી આપો"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"મંજૂરી આપો, એકથી વધુ, વપરાશકર્તા, પરવાનગી આપો, અનેક"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"એકથી વધુ, વપરાશકર્તાઓ, પ્રોફાઇલ, લોકો, એકાઉન્ટ, સ્વિચ કરો, ઘણા"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"વાયરલેસ ડિબગીંગનો ઉપયોગ કરો"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"જ્યારે તમારું ટૅબ્લેટ ડૉક કરેલું હોય, ત્યારે તમે તમારી સ્ક્રીન પર શું જોશો તે પસંદ કરો. જ્યારે સ્ક્રીનસેવરનો ઉપયોગ કરવામાં આવે, ત્યારે તમારું ડિવાઇસ વધુ ઊર્જાનો ઉપયોગ કરી શકે છે."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"કસ્ટમાઇઝ કરો"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>ને કસ્ટમાઇઝ કરો"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ફ્રીફોર્મ સપોર્ટ ચાલુ કરવા માટે રીબૂટ કરવું જરૂરી છે."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ગૌણ ડિસ્પ્લે પર ડેસ્કટૉપ મોડ લાગુ થવાની ફરજ પાડવા માટે રીબૂટ કરવું જરૂરી છે."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ફ્રીફોર્મ વિન્ડો સપોર્ટ ચાલુ કરવા માટે રીબૂટ કરવું જરૂરી છે."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ફ્રીફોર્મ વિન્ડોની ઉપલબ્ધતાને અપડેટ કરવા માટે રીબૂટ કરવું જરૂરી છે."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"સેકન્ડરી ડિસ્પ્લે પર ફ્રીફોર્મ વિન્ડો ચાલુ કરવા માટે રીબૂટ કરવું જરૂરી છે."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"હમણાં રીબૂટ કરો"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"પછીથી રીબૂટ કરો"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"સ્પેશલ ઑડિયો"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"રૉઝ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"મજેન્ટા"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"જાંબુડિયો"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"થઈ ગયું"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"સાચવો"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"રદ કરો"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ડિફૉલ્ટ"</string>
     <string name="contrast_medium" msgid="384414510709285811">"મધ્યમ"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ચાલુ"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"બંધ"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ચાલુ"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ઑડિયો %1$d%% ડાબી બાજુ, %2$d%% જમણી બાજુ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ઑડિયો %1$d%% જમણી બાજુ, %2$d%% ડાબી બાજુ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"તમે ઇન્સ્ટૉલ કરેલી ઍપ તમારા ડિવાઇસનું નામ જોઈ શકે છે. જ્યારે તમે બ્લૂટૂથ ડિવાઇસથી કનેક્ટ કરો, કોઈ વાઇ-ફાઇ નેટવર્કથી કનેક્ટ કરો અથવા કોઈ વાઇ-ફાઇ હૉટસ્પૉટ સેટઅપ કરો ત્યારે અન્ય લોકો પણ તે જોઈ શકે છે."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"વ્યાકરણ અનુસારનું લિંગ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"વ્યાકરણ અનુસારનું લિંગ પસંદ કરો"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"સ્ટ્રીમ સાંભળો"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> વડે સાંભળવા માટે, ઑડિયો સ્ટ્રીમનો QR કોડ સ્કૅન કરો"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"શેર કરતી વખતે પાસવર્ડમાં ફેરફાર કરી શકાતો નથી. પાસવર્ડ બદલવા માટે, પહેલાં ઑડિયો શેરિંગ બંધ કરો."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR કોડ સ્કૅનર"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"સેટિંગમાં શોધો"</string>
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index b669a37..8162fa6 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"बेडटाइम"</item>
-    <item msgid="4152450357280759894">"ड्राइविंग"</item>
-    <item msgid="7096549258219399423">"इमर्सिव"</item>
-    <item msgid="2760716776980432977">"मैनेज किया गया"</item>
-    <item msgid="601734478369121764">"स्टार"</item>
-    <item msgid="6243809315432780521">"कैलेंडर"</item>
-    <item msgid="4913577903148415331">"समय"</item>
-    <item msgid="3653377604690057780">"थिएटर"</item>
-    <item msgid="3843711267408385410">"फूल"</item>
+    <item msgid="2750940760340557109">"हाफ़ मून"</item>
+    <item msgid="8513969636586738035">"कार"</item>
+    <item msgid="957392343846370509">"व्यक्ति का दिमाग"</item>
+    <item msgid="6734164279667121348">"कैलेंडर"</item>
+    <item msgid="4139559120353528558">"घड़ी"</item>
+    <item msgid="5157711296814769020">"बीच अंब्रेला"</item>
+    <item msgid="6635328761318954115">"तंबू"</item>
+    <item msgid="1711994778883392255">"फ़िल्म रील"</item>
+    <item msgid="9097658401859604879">"गेम कंट्रोलर"</item>
+    <item msgid="755931364157422565">"जिम डंबल"</item>
+    <item msgid="8894207806795738429">"बॉल फेंकता हुआ व्यक्ति"</item>
+    <item msgid="2274801572149555103">"किक मारता हुआ व्यक्ति"</item>
+    <item msgid="8795037201506843325">"तैराकी"</item>
+    <item msgid="3558421426169430451">"पैदल चलता हुआ व्यक्ति"</item>
+    <item msgid="7455070421232184932">"गॉल्फ़"</item>
+    <item msgid="5841773092449126508">"वर्कशॉप टूल"</item>
+    <item msgid="4595330511709890409">"ब्रीफ़केस"</item>
+    <item msgid="8352738347856724389">"स्टार"</item>
+    <item msgid="7082783098151998721">"कमल का फूल"</item>
+    <item msgid="5772220259409264724">"सुपरवाइज़र"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index b6ad57e..4fa1447 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"निलंबित"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"अज्ञात"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"झलक"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"क्यूआर कोड"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"छोटा करें"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"बड़ा करें"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"हमेशा"</string>
@@ -76,8 +77,9 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"कान की मशीन की सेटिंग"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"शॉर्टकट, कान की मशीन के साथ काम करने की सुविधा"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"प्रीसेट"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"आपके ऑडियोलॉजिस्ट ने कोई प्रीसेट सेट नहीं किया है"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"प्रीसेट अपडेट नहीं किया जा सका"</string>
-    <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ऑडियो आउटपुट"</string>
+    <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ऑडियो डिवाइस"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ऑडियो आउटपुट की जानकारी"</string>
     <string name="bluetooth_audio_routing_summary" msgid="7180947533985969066">"साउंड को कान की मशीन या फ़ोन स्पीकर पर रूट करें"</string>
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"मिलते-जुलते टूल"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"सेटिंग में, इस ऐप्लिकेशन की भाषा चुनने का विकल्प मौजूद नहीं है."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"भाषा, ऐप्लिकेशन में उपलब्ध भाषाओं से अलग हो सकती है. हो सकता है कि कुछ ऐप्लिकेशन के साथ, भाषा की यह सेटिंग काम न करे."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"हर ऐप्लिकेशन के लिए भाषा सेट करें."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"आपके डिवाइस का सिस्टम, उस पर मौजूद ऐप्लिकेशन, और उस पर चलाई जाने वाली वेबसाइटें उस भाषा का इस्तेमाल करती हैं जिसे आपने अपनी पहली पसंदीदा भाषा के तौर पर सेट किया हो. इसके लिए ज़रूरी है कि चुनी गई भाषा उस डिवाइस पर काम करती हो."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"आपका डिवाइस और ऐप्लिकेशन उस भाषा का इस्तेमाल करते हैं जिसे आपने पसंदीदा भाषा की अपनी सूची में पहली भाषा के तौर पर सेट किया है.\n\nकई ऐप्लिकेशन तारीखों, संख्याओं, और इकाइयों को उस देश या इलाके के हिसाब से भी फ़ॉर्मैट करेंगे जहां आपकी पसंदीदा भाषा बोली जाती है. अपने देश या इलाके की जानकारी बदलने के लिए, कोई भाषा जोड़ें और अपना पसंदीदा देश या इलाका चुनें."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"अगर आपको हर ऐप्लिकेशन के लिए अलग भाषा चुननी है, तो ऐप्लिकेशन की भाषा सेटिंग पर जाएं."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ऐप्लिकेशन की भाषाओं के बारे में ज़्यादा जानें"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"क्या सिस्टम की भाषा बदलकर %s करनी है ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"बंद है"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}one{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}other{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड हो रहा है…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"ऐसे ऐप्लिकेशन, जिन्हें आस-पास मौजूद डिवाइसों के साथ इंटरैक्ट करने की अनुमति मिली है वे कनेक्ट किए गए डिवाइसों की जगह की जानकारी का पता लगा सकते हैं."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"जिन ऐप्लिकेशन को आस-पास मौजूद डिवाइसों के साथ इंटरैक्ट करने की अनुमति मिली है वे कनेक्ट किए गए डिवाइसों की जगह की जानकारी का पता लगा सकते हैं."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ऐप्लिकेशन और सेवाओं के लिए, जगह की जानकारी का ऐक्सेस बंद है. आपके डिवाइस की जगह की जानकारी, आपातकालीन स्थिति में मदद करने वाले लोगों को अब भी दी जा सकती है. ऐसा आपके किसी आपातकालीन नंबर पर कॉल करने या मैसेज भेजने पर किया जाएगा."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"जगह की जानकारी की सेटिंग के बारे में ज़्यादा जानें"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"इसे बदलने के लिए, ChromeOS की सेटिंग &gt; निजता और सुरक्षा &gt; निजता सेटिंग &gt; जगह की जानकारी के ऐक्सेस पर जाएं"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator अनलॉक करें"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"स्मार्टवॉच जोड़ दी गई"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"अपनी स्मार्ट वॉच सेट अप करें"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा के बारे में ज़्यादा जानें"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"स्मार्टवॉच कनेक्ट करें"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"स्मार्टवॉच डिसकनेक्ट करें"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फ़िंगरप्रिंट और फ़ेस अनलॉक"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"फ़िंगरप्रिंट और फ़ेस अनलॉक"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"वर्क प्रोफ़ाइल के लिए, फ़ेस और फ़िंगरप्रिंट अनलॉक की सुविधा"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप करना होगा"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"चेहरे का मॉडल और फ़िंगरप्रिंट जोड़े गए"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"प्राइवेट स्पेस सेट अप किया जा रहा है…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"प्राइवेट स्पेस को सेट अप नहीं किया जा सका"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"फिर से कोशिश करें"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"बाहर निकलें"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"प्राइवेट स्पेस उपलब्ध नहीं है.\nसंभावित वजहें देखें"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"संभावित वजहें देखें"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"प्राइवेट स्पेस के लिए नया लॉक चुनना है?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"प्राइवेट स्पेस के लिए, एक नया लॉक सेट किया जा सकता है या डिवाइस के लॉक का इस्तेमाल किया जा सकता है"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"स्क्रीन लॉक का इस्तेमाल करें"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"क्या आपको डिवाइस रीस्टार्ट करना है?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"एनएफ़सी का लाॅग सिर्फ़ डेवलपमेंट के मकसद से बनाया गया है. गड़बड़ी की रिपोर्ट में एनएफ़सी का अतिरिक्त डेटा शामिल होता है. इसमें निजी जानकारी भी शामिल हो सकती है. इस सेटिंग को बदलने के लिए, डिवाइस को रीस्टार्ट करें."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"रीस्टार्ट करें"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"चालू है"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"बंद है"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"बाहरी डिसप्ले"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"बाहरी डिसप्ले का इस्तेमाल करें"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"डिसप्ले का रिज़ॉल्यूशन"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"बाहरी डिसप्ले डिसकनेक्ट कर दिया गया है"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"रोटेशन"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"स्टैंडर्ड रोटेशन"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"रोटेशन या रिज़ॉल्यूशन बदलने की वजह से, बैकग्राउंड में चल रहे ऐप्लिकेशन बंद हो सकते हैं"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"डिवाइस की स्क्रीन को किसी बाहरी डिसप्ले पर दिखाने के लिए, इनका आपस में कनेक्ट होना ज़रूरी है"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ज़्यादा विकल्प"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"कास्ट करने की सेटिंग"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"स्क्रीन शेयर करें"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"बिना वायर के स्क्रीन दिखाना (वायरलेस डिसप्ले) चालू करें"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"आस-पास की रोशनी के हिसाब से रंग बदल जाता है"</string>
     <string name="brightness" msgid="6216871641021779698">"स्क्रीन की रोशनी का लेवल"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"आस-पास की लाइट के हिसाब से स्क्रीन की रोशनी"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"आस-पास की लाइट के हिसाब से स्क्रीन की रोशनी से जुड़ी जानकारी"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"आपकी गतिविधियों और आस-पास मौजूद लाइट के हिसाब से, डिवाइस की स्क्रीन की रोशनी अपने-आप अडजस्ट हो जाएगी. स्लाइडर को मैन्युअल तरीके से अडजस्ट करें. ऐसा करने से इस सुविधा को आपकी पसंद का पता चलेगा और अगली बार स्क्रीन की रोशनी आपके हिसाब से अडजस्ट करने में मदद मिलेगी."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"चालू है"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"बंद"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"अन्य विकल्प"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"सुलभता सुविधा"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"सामान्य कीबोर्ड"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ऑन-स्क्रीन कीबोर्ड का इस्तेमाल करें"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"इसे सामान्य कीबोर्ड चालू रहने के दौरान भी स्‍क्रीन पर दिखाएं"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"बाउंस बटन"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"एक ही कुंजी को <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> मि॰से॰ के अंदर बार-बार दबाने पर, कीबोर्ड उसे अनदेखा कर देता है"</string>
     <string name="slow_keys" msgid="2891452895499690837">"स्लो बटन"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"किसी कुंजी को दबाने पर, स्क्रीन पर होने वाली प्रतिक्रिया का समय <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> मि॰से॰ तक अडजस्ट किया जा सकता है"</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="2396247040177734245">"माउस पॉइंटर को कंट्रोल करने के लिए, फ़िज़िकल कीबोर्ड का इस्तेमाल करें."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"पॉइंटर फ़िल स्टाइल, येलो में बदलें"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"पॉइंटर फ़िल स्टाइल, पिंक में बदलें"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"पॉइंटर फ़िल स्टाइल, ब्लू में बदलें"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"पॉइंटर स्ट्रोक स्टाइल"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"सफ़ेद"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"काला"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"कोई नहीं"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"टचपैड पर हाथ के जेस्चर जानें"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ट्रैकपैड, ट्रैक पैड, माउस, कर्सर, स्क्रोल, स्वाइप, राइट क्लिक, क्लिक, पॉइंटर"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"राइट क्लिक, टैप"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"उपयोगकर्ता का चुना गया: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"बोली"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"पॉइंटर स्पीड"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"माउस पॉइंटर का साइज़"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"माउस पॉइंटर का साइज़ कम करें"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"माउस पॉइंटर का साइज़ बढ़ाएं"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"गेमनियंत्रक"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"वाइब्रेशन रिडायरेक्ट करें"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"कनेक्ट होने पर, गेम कंट्रोलर पर वाइब्रेशन हो"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"जारी रखें"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"अभी नहीं"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ज़ूम करने की सुविधा की सेटिंग"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ज़ूम वाले हिस्से को एक उंगली से ड्रैग करने की सुविधा"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ज़ूम वाले हिस्से को एक उंगली से ड्रैग करके इधर-उधर ले जाएं"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"स्क्रीन पर मूव करने के लिए उसे एक उंगली से खींचें और छोड़ें"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ज़ूम वाला हिस्सा एक उंगली से ड्रैग करके इधर-उधर ले जाएं."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ज़ूम वाला हिस्सा दो उंगलियों से ड्रैग करके इधर-उधर ले जाएं."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"स्क्रीन का एक हिस्सा ज़ूम करने के दौरान, यह सुविधा उपलब्ध नहीं होगी"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ज़ूम करने के लिए किसी बटन पर टैप करें"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"कॉन्टेंट को बड़े साइज़ में देखने के लिए, स्क्रीन पर तेज़ी से ज़ूम इन करें"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ज़ूम इन करने के लिए:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ज़ूम करने की सुविधा को शुरू करने के लिए, शॉर्टकट का इस्तेमाल करें&lt;br/&gt; {1,number,integer}. स्क्रीन पर टैप करें&lt;br/&gt; {2,number,integer}. स्क्रीन पर इधर-उधर जाने के लिए, दो उंगलियों से खींचें और छोड़ें&lt;br/&gt; {3,number,integer}. ज़ूम को कम या ज़्यादा करने के लिए, दो उंगलियों से पिंच करें&lt;br/&gt; {4,number,integer}. ज़ूम करने की सुविधा को बंद करने के लिए, शॉर्टकट का इस्तेमाल करें&lt;br/&gt;&lt;br/&gt; &lt;b&gt;कुछ समय तक ज़ूम इन करने के लिए:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. पक्का करें कि आपके डिवाइस पर, पूरी स्क्रीन को ज़ूम करने का विकल्प चुना गया हो&lt;br/&gt; {1,number,integer}. ज़ूम करने की सुविधा को शुरू करने के लिए, शॉर्टकट का इस्तेमाल करें&lt;br/&gt; {2,number,integer}. स्क्रीन पर कहीं भी उंगली से दबाकर रखें&lt;br/&gt; {3,number,integer}. स्क्रीन पर इधर-उधर जाने के लिए, उंगली से खींचें और छोड़ें&lt;br/&gt; {4,number,integer}. ज़ूम करने की सुविधा बंद करने के लिए, स्क्रीन से अपनी उंगली हटाएं"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ज़ूम इन करने के लिए:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ज़ूम करने की सुविधा को शुरू करने के लिए, शॉर्टकट का इस्तेमाल करें&lt;br/&gt; {1,number,integer}. स्क्रीन पर टैप करें&lt;br/&gt; {2,number,integer}. स्क्रीन पर इधर-उधर जाने के लिए, उसे दो उंगलियों से खींचें और छोड़ें&lt;br/&gt; {3,number,integer}. ज़ूम को कम या ज़्यादा करने के लिए, दो उंगलियों से पिंच करें&lt;br/&gt; {4,number,integer}. ज़ूम करने की सुविधा को रोकने के लिए, शॉर्टकट का इस्तेमाल करें&lt;br/&gt;&lt;br/&gt; आपके पास कुछ समय के लिए ज़ूम इन करने और अन्य काम करने का भी विकल्प है."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ज़ूम इन करने के लिए:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ज़ूम करने की सुविधा को शुरू करने के लिए, शॉर्टकट का इस्तेमाल करें&lt;br/&gt; {1,number,integer}. स्क्रीन पर टैप करें&lt;br/&gt; {2,number,integer}. स्क्रीन पर इधर-उधर जाने के लिए, उसे एक या दो उंगली से खींचें और छोड़ें&lt;br/&gt; {3,number,integer}. ज़ूम को कम या ज़्यादा करने के लिए, दो उंगलियों से पिंच करें&lt;br/&gt; {4,number,integer}. ज़ूम करने की सुविधा को रोकने के लिए, शॉर्टकट का इस्तेमाल करें&lt;br/&gt;&lt;br/&gt; आपके पास कुछ समय के लिए ज़ूम इन करने और अन्य काम करने का भी विकल्प है."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"बड़ा करके देखने की सुविधा चालू होने पर, आप स्क्रीन को ज़ूम इन कर सकते हैं.\n\n"<b>"ज़ूम करने के लिए"</b>", बड़ा करके देखने की सुविधा चालू करें और फिर स्क्रीन पर कहीं भी टैप करें.\n"<ul><li>"स्क्रोल करने के लिए दो या ज़्यादा उंगलियों से खींचें और छोड़ें"</li>\n<li>"ज़ूम नियंत्रित करने के लिए दो या ज़्यादा उंगलियों से पिंच करें"</li></ul>\n\n<b>"थोड़ी देर तक ज़ूम करने के लिए"</b>", बड़ा करके देखने की सुविधा चालू करें, फिर स्क्रीन पर कहीं भी दबाकर रखें.\n"<ul><li>"स्क्रीन के दूसरे हिस्सों पर जाने के लिए, उंगलियों से खींचें और छोड़ें"</li>\n<li>"ज़ूम घटाने के लिए उंगलियों को स्क्रीन से हटाएं"</li></ul>\n\n"आप कीबोर्ड या नेविगेशन बार को ज़ूम इन नहीं कर सकते."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"पेज <xliff:g id="NUM_PAGES">%2$d</xliff:g> में से <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"सुलभता बटन का शॉर्टकट"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"स्क्रीन पर नीचे से ऊपर की ओर दो उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, दो उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"स्क्रीन पर नीचे से ऊपर की ओर तीन उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, तीन उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{स्क्रीन पर नीचे से ऊपर की ओर स्वाइप करें. सुविधाओं के बीच स्विच करने के लिए, ऊपर की ओर स्वाइप करें और दबाकर रखें.}one{स्क्रीन पर # उंगली से नीचे से ऊपर की ओर स्वाइप करें. सुविधाओं के बीच स्विच करने के लिए, स्क्रीन पर # उंगली से ऊपर की ओर स्वाइप करें और दबाकर रखें.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"दो उंगलियों से दो बार टैप करें"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"स्क्रीन पर फटाफट %1$d बार टैप करें. ऐसा करने से, हो सकता है कि आपका डिवाइस थोड़ा धीरे काम करे."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-उंगलियों से दो बार टैप करें"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"स्क्रीन पर तुरंत दो उंगलियों से {0,number,integer} बार टैप करें"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीन पर तीन बार टैप करें"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"तीन बार टैप करें"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीन पर जल्दी-जल्दी {0,number,integer} बार टैप करें. इस शॉर्टकट के इस्तेमाल से आपके डिवाइस की रफ़्तार धीमी हो सकती है"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ऐडवांस"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"सुलभता बटन <xliff:g id="SERVICE">%1$s</xliff:g> पर सेट है. बड़ा करने के लिए, सुलभता बटन को दबाकर रखें, फिर बड़ा करना चुनें."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"सुलभता जेस्चर को <xliff:g id="SERVICE">%1$s</xliff:g> के लिए सेट किया गया है. बड़ा करने के लिए, दो उंगलियों से स्क्रीन के सबसे निचले हिस्से से ऊपर की ओर स्वाइप करें और रुके रहें. फिर \'बड़ा करना\' चुनें."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"यह सेवा ठीक से काम नहीं कर रही है."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"सुलभता सुविधाओं के शॉर्टकट की सेटिंग"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"त्वरित सेटिंग में दिखाएं"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"हरा रंग लाल दिखना"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"लाल रंग हरा दिखना"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ऐसी समस्या जिसमें लाल रंग हरा दिखता है"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ऐसी समस्या जिसमें हरा रंग लाल दिखता है"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"नीला-हरा रंग पहचान न पाना"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"डिसप्ले को ग्रेस्केल में करने की सुविधा"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"इंटेंसिटी"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ऐसी समस्या जिसमें हरा रंग लाल दिखता है"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ऐसी समस्या जिसमें लाल रंग हरा दिखता है"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ग्रेस्केल मोड या रंग में सुधार करने की सुविधा के बंद होने पर उपलब्ध नहीं है"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"लाल-हरे रंग की पहचान न कर पाने की समस्या"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"हरा-लाल रंग पहचान न पाने की समस्या"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"नीला-हरा और पीला-लाल रंग पहचान न पाने की समस्या"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"स्क्रीन की रोशनी को सामान्य लेवल से और कम करने की सुविधा"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"स्क्रीन की रोशनी को सामान्य लेवल से और कम करें"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"नीला-हरा"</string>
     <string name="color_yellow" msgid="5957551912912679058">"पीला"</string>
     <string name="color_magenta" msgid="8943538189219528423">"मैजेंटा"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> को, अपना डिवाइस पूरी तरह कंट्रोल करने की अनुमति देनी है?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> के लिए यह ज़रूरी है:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"क्यूंकि ऐप की वजह से अनुमति के अनुरोध को समझने में दिक्कत हो रही है, इसलिए सेटिंग से आपके जवाब की पुष्टि नहीं हो पा रही हैं."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> इस डिवाइस पर पूरा नियंत्रण मांग रहा है. यह सेवा, स्क्रीन पर दिख रही जानकारी पढ़ सकती है और सुलभता से जुड़ी ज़रूरतों वाले उपयोगकर्ताओं की तरफ़ से काम कर सकती है. नियंत्रण का यह लेवल ज़्यादातर ऐप्लिकेशन के लिए सही नहीं है."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"पूरी तरह कंट्रोल करने की अनुमति उन ऐप्लिकेशन के लिए ठीक है जो सुलभता से जुड़ी ज़रूरतों के लिए बने हैं, लेकिन ज़्यादातर ऐप्लिकेशन के लिए यह ठीक नहीं है."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"स्क्रीन को देखें और कंट्रोल करें"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"यह स्क्रीन पर दिखने वाले कॉन्टेंट को पढ़ सकता है और उसे दूसरे ऐप्लिकेशन के ऊपर दिखा सकता है."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"देखें और कार्रवाई करें"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यह आपके और किसी ऐप्लिकेशन या हार्डवेयर सेंसर के बीच होने वाले इंटरैक्शन को ट्रैक कर सकता है और आपकी तरफ़ से ऐप्लिकेशन के साथ इंटरैक्ट कर सकता है."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दें"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"अनुमति न दें"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करें"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{कोई शेड्यूल सेट नहीं है}=1{1 शेड्यूल सेट है}one{# शेड्यूल सेट है}other{# शेड्यूल सेट हैं}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"परेशान न करें"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"अहम मोड"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"कोई मोड जोड़ें"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ध्यान भटकाने वाले कम से कम ऐप्लिकेशन चालू रखें. इस दौरान सोने, काम करने, गाड़ी चलाने वाले मोड कंट्रोल करें."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"अपना मोड बनाएं"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"सिर्फ़ ज़रूरी लोगों और ऐप्लिकेशन की सूचनाएं पाएं"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"शेड्यूल सेट करें"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"मोड के हिसाब से शेड्यूल करें"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"दिन और तारीख"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"सोमवार से शुक्रवार, सुबह 9 से 5 बजे तक\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"कैलेंडर इवेंट"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} चालू है}=2{{mode_1} और {mode_2} चालू हैं}=3{{mode_1}, {mode_2}, और {mode_3} चालू हैं}one{{mode_1}, {mode_2}, और # अन्य मोड चालू है}other{{mode_1}, {mode_2}, और # अन्य मोड चालू हैं}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 मोड अपने-आप चालू हो सकता है}one{# मोड अपने-आप चालू हो सकता है}other{# मोड अपने-आप चालू हो सकते हैं}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"चालू है"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"सेट नहीं है"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"बंद है"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"कोई मोड बनाएं"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"कस्टम मोड"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"अभी चालू करें"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"बंद करें"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"मोड नहीं मिला"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"रुकावटों को कम करें"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"रुकावट डालने और ध्यान भटकाने वाली चीज़ों को ब्लॉक करें"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> सेट अप करें"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'परेशान न करें\' चालू करें"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"अलार्म और मीडिया की आवाज़ें \'परेशान न करें\' मोड को बायपास कर सकती हैं"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"शेड्यूल"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"शेड्यूल मिटाएं"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"मिटाएं"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"नाम बदलें"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"मिटाएं"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"क्या आपको \"<xliff:g id="MODE">%1$s</xliff:g>\" मोड मिटाना है?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"बदलाव करें"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"शेड्यूल"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"शेड्यूल"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"अपने-आप चालू होना"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"कैलेंडर जोड़ें"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"कैलेंडर का इस्तेमाल करें"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"शेड्यूल"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"शेड्यूल सेट करें"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"अपने-आप चालू होने की सुविधा"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"इवेंट का शेड्यूल"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"इवेंट के दौरान मोड चालू करें"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"जब न्योते का यह जवाब आए"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"समय के हिसाब से शेड्यूल करें"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"शेड्यूल"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> घंटे <xliff:g id="MINUTES">%2$d</xliff:g> मिनट"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"शेड्यूल"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"उन सूचनाओं की अनुमति दें जिनके लिए आवाज़ होती है"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"मैसेज पर स्क्रीन चमकने से रोकें"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"संकेत दिखाए जाने की अनुमति दें"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"वे सूचनाएं जो आपको मिल सकती हैं"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"अन्य कार्रवाइयां"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"सूचना से जुड़े फ़िल्टर"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"अन्य सेटिंग"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{बंद है}=1{बंद है / 1 मोड अपने-आप चालू हो सकता है}one{बंद है / # मोड अपने-आप चालू हो सकता है}other{बंद है / # मोड अपने-आप चालू हो सकते हैं}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"डिसप्ले की सेटिंग"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"डिसप्ले के विकल्प"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ग्रेस्केल"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"इससे गहरे रंग वाली थीम चालू होती है"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"गहरे रंग के बैकग्राउंड पर हल्के रंग के टेक्स्ट को प्राथमिकता देने के लिए, ओएस और ऐप्लिकेशन पर स्विच करें. ऐसा करके, टेक्स्ट को देख पाना आसान हो जाता है. साथ ही, कुछ डिवाइसों पर बैटरी की काफ़ी बचत होती है"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{डिसप्ले में कोई बदलाव नहीं किया गया}=1{{effect_1}}=2{{effect_1} और {effect_2}}=3{{effect_1}, {effect_2}, और {effect_3}}one{{effect_1}, {effect_2}, और # अन्य}other{{effect_1}, {effect_2}, और # अन्य}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"तय करें कि आपको कौनसी सूचना मिले"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"किसी भी सूचना, साउंड वगैरह को रोका नहीं जा रहा है"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"फ़िल्टर की गई सूचनाओं के लिए विकल्प"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"\'परेशान न करें\' मोड चालू होने पर"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"सूचनाएं आने पर कोई आवाज़ सुनाई न दे"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"सूचना खोलें"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"सूचनाएं स्नूज़ करने की अनुमति दें"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ऐप्लिकेशन आइकॉन पर सूचनाएं बताने वाला डॉट"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"सूचनाओं के बंडल"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"बबल्स"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"बबल्स"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"इस बातचीत को बबल के रूप में दिखाएं"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"ज़रूरत के हिसाब से सूचनाएं पाने की सुविधा"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ज़रूरत के हिसाब से सूचनाएं पाने की सुविधा इस्तेमाल करें"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"कम समय में काफ़ी सूचनाएं मिलने पर, दो मिनट के लिए आपका फ़ोन इन सूचनाओं से होने वाली आवाज़ों को कम करेगा और स्क्रीन पर कम पॉप-अप दिखाएगा. कॉल, अलार्म, और अहम बातचीत से जुड़ी सूचनाएं अब भी पहले की तरह ही मिलेंगी या स्क्रीन पर दिखेंगी. साथ ही, आपको मिली सभी सूचनाएं, स्क्रीन पर सबसे ऊपर से नीचे की ओर स्वाइप करके आसानी से मिल जाएंगी."</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_work" msgid="8823596456640216391">"वर्क प्रोफ़ाइल पर लागू करें"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"वर्क प्रोफ़ाइल ऐप्लिकेशन पर लागू करें"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"वीआर के साथ काम करने वाली सेवाएं"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"कैटगरी"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"अन्य"</string>
     <string name="no_channels" msgid="4716199078612071915">"इस ऐप्लिकेशन ने कोई भी सूचना पोस्ट नहीं की है"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"इस्तेमाल नहीं की गई कैटगरी दिखाएं"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ऐप्लिकेशन की दूसरी सेटिंग"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"इस्तेमाल न हुई कैटगरी दिखाएं"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"इस्तेमाल न हुई कैटगरी छिपाएं"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"बातचीत"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"सभी बातचीत"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"हर बातचीत"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"अहम बातचीत"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"अहम बातचीत"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"कोई भी नहीं"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"वे ऐप्लिकेशन जो परेशान न करने की सुविधा लागू कर सकते हैं"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"चुने गए ऐप्लिकेशन"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"कोई नहीं"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"सभी"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{कोई भी ऐप्लिकेशन \'परेशान न करें\' मोड को बायपास नहीं कर सकता}=1{{app_1} \'परेशान न करें\' मोड को बायपास कर सकता है}=2{{app_1} और {app_2} \'परेशान न करें\' मोड को बायपास कर सकते हैं}=3{{app_1}, {app_2}, और {app_3} \'परेशान न करें\' मोड को बायपास कर सकते हैं}one{{app_1}, {app_2}, और # अन्य ऐप्लिकेशन \'परेशान न करें\' मोड को बायपास कर सकते हैं}other{{app_1}, {app_2}, और # अन्य ऐप्लिकेशन \'परेशान न करें\' मोड को बायपास कर सकते हैं}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (काम के लिए)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"डेटा फ़ेच किया जा रहा है…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ऐप्लिकेशन को ओवरराइड करने की मंज़ूरी दें"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ऐप्लिकेशन जो \'परेशान न करें\' मोड को बायपास कर सकते हैं"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"और ऐप्लिकेशन चुनें"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"बार-बार कॉल करने वालों (कॉलर) से परेशानी हो सकती है"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"कोई भी व्यक्ति \'परेशान न करें\' मोड को बायपास कर सकता है"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"बार-बार कॉल करने वाले (कॉलर)"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"दोबारा काॅल करने वालों को बायपास करने की अनुमति दें"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} तक, सिर्फ़ एक घंटे के लिए अलार्म मोड पर स्विच करें}one{{time} तक, सिर्फ़ # घंटे के लिए अलार्म मोड पर स्विच करें}other{{time} तक, सिर्फ़ # घंटों के लिए अलार्म मोड पर स्विच करें}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"केवल <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> तक के लिए अलार्म को बदलें"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"हमेशा बाधित करें में बदलें"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"नाम बदलें"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"आइकॉन बदलें"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"आइकॉन बदलें"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"मोड में बदलाव करें"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"कोई मोड बनाएं"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"कस्टम मोड"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"मोड का नाम"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"कैलेंडर इवेंट"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"सोने के समय का रूटीन"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ड्राइव करते समय"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ऐप्लिकेशन की सेटिंग"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"जानकारी और सेटिंग <xliff:g id="APP_NAME">%1$s</xliff:g> में दिखेंगी"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"इन्हें <xliff:g id="APP_NAME">%1$s</xliff:g> मैनेज कर रहा है"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> को बंद करना है?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"सुविधा बंद होने पर यह मोड चालू नहीं होगा"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"बंद करें"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> को चालू करना है?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"यह मोड सेटिंग के हिसाब से अपने-आप चालू हो सकता है"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"चालू करें"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"एक रेगुलर शेड्यूल के मुताबिक काम करने वाला कोई मोड सेट करें"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"कैलेंडर इवेंट और न्योतों के जवाबों के साथ सिंक करने के लिए, कोई मोड सेट करें"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"सुकून भरी नींद के लिए रूटीन डिज़ाइन करें. अलार्म सेट करें, स्क्रीन की रोशनी कम करें, और सूचनाएं ब्लॉक करें."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ध्यान भटकाए बिना और फ़ोकस के साथ गाड़ी चलाने के लिए, सड़क पर सुरक्षा को प्राथमिकता दें"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"चेतावनी"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"बंद करें"</string>
     <string name="device_feedback" msgid="5351614458411688608">"इस डिवाइस के बारे में सुझाव भेजें"</string>
@@ -4233,7 +4304,7 @@
     <string name="long_background_tasks_title" msgid="3272230637974707490">"लंबे बैकग्राउंड टास्क"</string>
     <string name="long_background_tasks_footer_title" msgid="9117342254914743097">"इस ऐप्लिकेशन को, लंबे समय तक चलने वाले बैकग्राउंड टास्क करने की अनुमति दें. यह अनुमति, ऐप्लिकेशन को ऐसे टास्क करने देती है जिन्हें पूरा करने में कुछ मिनटों से ज़्यादा का समय लग सकता है. जैसे, डाउनलोड और अपलोड करना. \n\nअगर यह अनुमति नहीं दी जाती है, तो सिस्टम यह तय करेगा कि कोई ऐप्लिकेशन कितने समय तक बैकग्राउंड में ऐसे टास्क कर सकता है."</string>
     <string name="keywords_long_background_tasks" msgid="5788956269136054574">"लंबे समय तक चलने वाले टास्क, डेटा ट्रांसफ़र, बैकग्राउंड टास्क"</string>
-    <string name="reset_shortcut_manager_throttling" msgid="2183940254903144298">"ShortcutManager में दर सीमित करने का टाइमर रीसेट करें"</string>
+    <string name="reset_shortcut_manager_throttling" msgid="2183940254903144298">"ShortcutManager एपीआई का दर सीमित करने का टाइमर रीसेट करें"</string>
     <string name="reset_shortcut_manager_throttling_complete" msgid="8949943009096885470">"ShortcutManager दर सीमित करना रीसेट कर दिया गया है"</string>
     <string name="notification_suggestion_title" msgid="6309263655965785411">"कंट्रोल करें कि लॉक स्क्रीन पर आपको कौनसी सूचनाएं दिखें"</string>
     <string name="notification_suggestion_summary" msgid="7615611244249276113">"सूचना की सामग्री दिखाएं या छिपाएं"</string>
@@ -4791,9 +4862,9 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"चार्ज करने वाला डिब्बा"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"बैटरी"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"सेटिंग पैनल"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"डेस्कटॉप मोड चालू करें"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"दूसरी स्क्रीन पर डेस्कटॉप मोड आज़माने की सुविधा चालू करें"</string>
-    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"मल्टी-विंडो में विंडो का साइज़ न बदलने का विकल्प चालू करें"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"फ़्रीफ़ॉर्म विंडो मोड चालू करें"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"सेकंडरी डिसप्ले पर फ़्रीफ़ॉर्म विंडो मोड चालू करें"</string>
+    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"मल्टी-विंडो में, साइज़ न बदलने वाले ऐप्लिकेशन दिखाने दें"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"साइज़ न बदलने वाले ऐप्लिकेशन को मल्टी-विंडो (एक से ज़्यादा ऐप्लिकेशन, एक साथ) में दिखाने की अनुमति दें"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"गहरे रंग वाली थीम को तुरंत लागू करने की सुविधा ओवरराइड करें"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"गहरे रंग वाली थीम को तुरंत लागू करने की सुविधा हमेशा चालू रहने के लिए ओवरराइड करती है"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"मोबाइल डेटा"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"डिवाइस इस्तेमाल करने के अनुभव को बेहतर बनाने के लिए, ऐप्लिकेशन और सेवाएं किसी भी समय वाई-फ़ाई नेटवर्क स्कैन कर सकती हैं. ऐसा वाई-फ़ाई बंद होने पर भी किया जा सकता है. उदाहरण के लिए, इसका इस्तेमाल जगह से जुड़ी सुविधाओं और सेवाओं को बेहतर बनाने के लिए किया जा सकता है. वाई-फ़ाई स्कैनिंग की सेटिंग में जाकर, इसे बदला जा सकता है."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"बदलें"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"कनेक्ट हो गया"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"इंटरनेट कनेक्शन कुछ समय के लिए है"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"कुछ समय के लिए <xliff:g id="SUBNAME">%1$s</xliff:g> का इंटरनेट इस्तेमाल किया जा रहा है"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ऐप्लिकेशन पिन करने की सुविधा का इस्तेमाल करें"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"डेवलपर के लिए सेटिंग और टूल का इस्तेमाल करें"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"प्रिंट करने की सेवा का इस्तेमाल करें"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"एक से ज़्यादा उपयोगकर्ताओं को अनुमति दें"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"उपयोगकर्ता जोड़ने की अनुमति दें"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"अनुमति दें, कई, इस्तेमाल करने वाले, मंज़ूरी दें, कई सारे"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"कई, उपयोगकर्ता, प्रोफ़ाइलें, लोग, खाते, स्विच, बहुत"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"वॉयरलेस डीबगिंग का इस्तेमाल करें"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"चुनें कि डॉक से टैबलेट के जुड़े होने के दौरान, आपको स्क्रीन पर क्या दिखे. स्क्रीन सेवर का इस्तेमाल करने पर, आपके डिवाइस की बैटरी ज़्यादा खर्च हो सकती है."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"मनमुताबिक बनाएं"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> को पसंद के मुताबिक बनाएं"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"फ़्रीफ़ॉर्म सहायता मोड को चालू करने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"दूसरे डिसप्ले पर डेस्कटॉप मोड को ज़बरदस्ती चलाने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"फ़्रीफ़ॉर्म विंडो सहायता मोड को चालू करने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"फ़्रीफ़ॉर्म विंडो मोड की उपलब्धता को अपडेट करने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"सेकंडरी डिसप्ले पर फ़्रीफ़ॉर्म विंडो मोड चालू करने के लिए, डिवाइस को फिर से चालू करना होगा."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"अभी रीबूट (फिर से चालू) करें"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"बाद में रीबूट (फिर से चालू) करें"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"स्पेशल ऑडियो"</string>
@@ -5136,8 +5207,8 @@
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"कोई सीमा नहीं"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"चाइल्ड प्रोसेस पर लगी पाबंदियां बंद करें"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"ऐप्लिकेशन में किसी प्रोसेस की वजह से चालू हुई दूसरी प्रोसेस के लिए, सिस्टम के संसाधन के इस्तेमाल पर लगी पाबंदियां बंद करें"</string>
-    <string name="enable_notes_role_title" msgid="7662702013496114763">"नोट्स रोल की सुविधा हर हाल में चालू करें"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Notes रोल (सुविधाओं का संग्रह) का इस्तेमाल करके, नोट बनाने के सिस्टम इंटिग्रेशन को चालू करें. अगर Notes रोल की सुविधा पहले से ही चालू है, तो कुछ और करने की ज़रूरत नहीं है. हालांकि, डिवाइस को फिर से चालू करना होगा."</string>
+    <string name="enable_notes_role_title" msgid="7662702013496114763">"नोट लेने की सुविधा हमेशा चालू रखें"</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"नोट लेने की सुविधा के ज़रिए, नोट लेने के लिए तय किए ऐप्लिकेशन को सिस्टम के साथ इंटिग्रेट होने की अनुमति दें. अगर यह सुविधा पहले से ही चालू है, तो कुछ और करने की ज़रूरत नहीं है. हालांकि, डिवाइस को फिर से चालू करना होगा."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"ब्रॉडकास्ट"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"<xliff:g id="CURRENTAPP">%1$s</xliff:g> पर ब्रॉडकास्ट करें"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"अपने आस-पास चल रहे ब्रॉडकास्ट को सुनें"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"गुलाबी"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"मजेंटा"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"बैंगनी"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"हो गया"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"सेव करें"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"रहने दें"</string>
     <string name="contrast_default" msgid="8918545965525226966">"डिफ़ॉल्ट"</string>
     <string name="contrast_medium" msgid="384414510709285811">"सामान्य"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"चालू है"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"बंद है"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"चालू है"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ऑडियो, बाएं कान का %1$d%%, दाएं कान का %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ऑडियो, दाएं कान का %1$d%%, बाएं कान का %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"आपके इंस्टॉल किए गए ऐप्लिकेशन, आपके डिवाइस के नाम की जानकारी ऐक्सेस कर सकते हैं. इसके अलावा, ब्लूटूथ डिवाइसों या वाई-फ़ाई नेटवर्क से कनेक्ट करने पर या वाई-फ़ाई हॉटस्पॉट सेट अप करने पर, अन्य लोग भी इसे देख सकते हैं."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"व्याकरण के हिसाब से लिंग"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"व्याकरण के हिसाब से लिंग चुनें"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"स्ट्रीम सुनें"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> पर सुनने के लिए, ऑडियो स्ट्रीम का क्यूआर कोड स्कैन करें"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"शेयर करने के दौरान पासवर्ड में बदलाव नहीं किया जा सकता. पासवर्ड बदलने के लिए, पहले ऑडियो शेयर करने की सुविधा बंद करें."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"क्यूआर कोड स्कैनर"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"सेटिंग खोजें"</string>
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 124ee25..055bb89 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Vrijeme za spavanje"</item>
-    <item msgid="4152450357280759894">"Vožnja"</item>
-    <item msgid="7096549258219399423">"Angažirajuće"</item>
-    <item msgid="2760716776980432977">"Upravljano"</item>
-    <item msgid="601734478369121764">"Zvijezda"</item>
-    <item msgid="6243809315432780521">"Kalendar"</item>
-    <item msgid="4913577903148415331">"Vrijeme"</item>
-    <item msgid="3653377604690057780">"Kazalište"</item>
-    <item msgid="3843711267408385410">"Cvijet"</item>
+    <item msgid="2750940760340557109">"Polumjesec"</item>
+    <item msgid="8513969636586738035">"Automobil"</item>
+    <item msgid="957392343846370509">"Um osobe"</item>
+    <item msgid="6734164279667121348">"Kalendar"</item>
+    <item msgid="4139559120353528558">"Sat"</item>
+    <item msgid="5157711296814769020">"Suncobran za plažu"</item>
+    <item msgid="6635328761318954115">"Šator"</item>
+    <item msgid="1711994778883392255">"Filmska vrpca"</item>
+    <item msgid="9097658401859604879">"Kontroler za videoigre"</item>
+    <item msgid="755931364157422565">"Bučica za teretanu"</item>
+    <item msgid="8894207806795738429">"Osoba baca loptu"</item>
+    <item msgid="2274801572149555103">"Osoba udara"</item>
+    <item msgid="8795037201506843325">"Plivanje"</item>
+    <item msgid="3558421426169430451">"Osoba pješači"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Radionički alati"</item>
+    <item msgid="4595330511709890409">"Aktovka"</item>
+    <item msgid="8352738347856724389">"Zvijezda"</item>
+    <item msgid="7082783098151998721">"Lotosov cvijet"</item>
+    <item msgid="5772220259409264724">"Nadzornik"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index c410649..bf856f7 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Obustavljeno"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Nepoznato"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pregled"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kôd"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Smanji"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Povećaj"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Uvijek"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Postavke slušnih pomagala"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Prečac, kompatibilnost sa slušnim pomagalima"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Unaprijed definirana postavka"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Nema zadanih postavki koje je definirao vaš audiolog"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Ažuriranje unaprijed definiranih postavki nije uspjelo"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audioizlaz"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"O audioizlazu"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Odabir jezika za ovu aplikaciju nije dostupan u postavkama."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Jezik se može razlikovati od jezika dostupnih u aplikaciji. Neke aplikacije možda ne podržavaju tu postavku."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Postavite jezik za svaku aplikaciju."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Vaš sustav, aplikacije i web-lokacije upotrebljavaju prvi podržani jezik s popisa željenih jezika."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Vaš uređaj, aplikacije i web-lokacije upotrebljavaju prvi podržani jezik s popisa preferiranih jezika.\n\nMnoge aplikacije upotrebljavat će i regiju preferiranog jezika za odabir formata datuma, brojeva i mjernih jedinica. Da biste promijenili regiju, dodajte jezik, a zatim odaberite preferiranu regiju."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Da biste odabrali jezik za svaku aplikaciju, otvorite postavke jezika aplikacija."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saznajte više o jezicima aplikacija"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Želite li jezik sustava promijeniti na %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno / # aplikacija ima pristup lokaciji}one{Uključeno / # aplikacija ima pristup lokaciji}few{Uključeno / # aplikacije imaju pristup lokaciji}other{Uključeno / # aplikacija ima pristup lokaciji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitavanje…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije s dopuštenjem za uređaje u blizini mogu odrediti približni položaj povezanih uređaja."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije s dopuštenjem za uređaje u blizini mogu odrediti približni položaj povezanih uređaja."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji isključen je za aplikacije i usluge. Lokacija vašeg uređaja i dalje se može poslati djelatnicima hitnih službi kada nazovete broj hitne službe ili na njega pošaljete SMS."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Da biste promijenili, otvorite Postavke ChromeOS-a &gt; Privatnost i sigurnost &gt; Kontrole privatnosti &gt; Pristup lokaciji"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodano je lice i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodani su lice, otisak prsta i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodani su lice, otisci prstiju i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Otključavanje apl. Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Sat je dodan"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Postavite telefon"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o otključavanju satom"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Uklonite sat"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Otključavanje licem i otiskom prsta"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za posao"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebno je postavljanje"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Dodano je lice i otisci prsta"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"U tijeku je postavljanje privatnog prostora…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Postavljanje privatnog prostora nije uspjelo"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Pokušajte ponovo"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Izlaz"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privatni prostor nije dostupan.\nPrikaz mogućih uzroka"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Prikaz mogućih uzroka"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Želite li odabrati novo zaključavanje za privatni prostor?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Možete postaviti novo zaključavanje samo za privatni prostor ili koristiti postojeće zaključavanje za otključavanje uređaja"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Koristi zaključavanje zaslona"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Ponovo pokrenuti?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljno zapisivanje za NFC namijenjeno je samo u razvojne svrhe. Dodatni podaci NFC-a uključeni su u izvješća o programskim pogreškama koja mogu sadržavati privatne podatke. Ponovo pokrenite uređaj da biste promijenili tu postavku."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Ponovno pokreni"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Uključeno"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Isključeno"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Vanjski zaslon"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Koristi vanjski zaslon"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Razlučivost zaslona"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Prekinuta je veza vanjskog zaslona"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotacija"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standardno"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Promjenom rotacije ili razlučivosti mogu se zaustaviti sve aplikacije koje su trenutačno pokrenute"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Da biste zrcalili svoj zaslon, vaš uređaj mora biti povezan s vanjskim zaslonom"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Više opcija"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Emitiranje"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"zrcalo"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Omogući bežični prikaz"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Prilagodljivo"</string>
     <string name="brightness" msgid="6216871641021779698">"Svjetlina zaslona"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Prilagodljiva svjetlina"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"O prilagodljivoj svjetlini"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Svjetlina zaslona automatski će se prilagoditi vašoj okolini i aktivnostima. Klizač možete pomicati ručno kako bi prilagodljiva svjetlina dobila podatke o tome što vam odgovara."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Uključeno"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Isključeno"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tipkovnica"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Koristi tipkovnicu na zaslonu"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na zaslonu dok je fizička tipkovnica aktivna"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Slučajni pritisci tipki"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tipkovnica zanemaruje brzo ponovljene pritiske iste tipke unutar <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Spore tipke"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Vrijeme potrebno za aktivaciju pritiska tipke prilagođava se na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Upotrijebite fizičku tipkovnicu za upravljanje mišem."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Promjena ispunj. pokaz. na žuto"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Promjena ispunj. pokaz. na ružič."</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Promjena ispunj. pokaz. na plavo"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil poteza pokazivačem"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bijelo"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Crno"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ništa"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Učenje pokreta za dodirnu podlogu"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"dodirna površina, miš, pokazivač, pomicanje, prijeći prstom, kliknuti desnom tipkom, kliknuti, pokazivači"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliknuti desnom tipkom, dodirnuti"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Izgled koji je odabrao korisnik: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Govor"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Brzina pokazivača"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Veličina pokazivača"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Smanjivanje veličine pokazivača"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Povećavanje veličine pokazivača"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Upravljač igrama"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Preusmjeri vibraciju"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Pošalji vibraciju igraćem kontroleru kada su povezani"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Odustani"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Postavke povećavanja"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Pomicanje jednim prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Premjestite povećalo jednim prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Povlačite prstom da biste se kretali zaslonom"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pomičite područje povećanja jednim prstom."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pomičite područje povećanja dvama prstima."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nije dostupno kad se povećava samo dio zaslona"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Dodirnite gumb za zumiranje"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Brzo povećajte zaslon da bi se povećao prikaz sadržaja"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Da biste povećali prikaz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.&lt;br/&gt; {1,number,integer}. Dodirnite zaslon.&lt;br/&gt; {2,number,integer}. Povlačite dva prsta da biste se pomicali po zaslonu.&lt;br/&gt; {3,number,integer}. Spojite dva prsta da biste prilagodili povećanje.&lt;br/&gt; {4,number,integer}. Upotrijebite prečac da biste zaustavili povećavanje.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Da biste privremeno povećali prikaz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Provjerite je li odabrano povećavanje cijelog zaslona.&lt;br/&gt; {1,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.&lt;br/&gt; {2,number,integer}. Dodirnite i zadržite bilo gdje na zaslonu.&lt;br/&gt; {3,number,integer}. Povlačite prst da biste se pomicali po zaslonu.&lt;br/&gt; {4,number,integer}. Podignite prst da biste zaustavili povećavanje."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Da biste povećali prikaz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.&lt;br/&gt; {1,number,integer}. Dodirnite zaslon.&lt;br/&gt; {2,number,integer}. Povlačite dva prsta da biste se pomicali po zaslonu.&lt;br/&gt; {3,number,integer}. Spojite dva prsta da biste prilagodili povećanje.&lt;br/&gt; {4,number,integer}. Uz pomoć prečaca zaustavite povećavanje&lt;br/&gt;&lt;br/&gt; Možete privremeno povećati itd."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Da biste povećali prikaz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Upotrijebite prečac da biste pokrenuli povećavanje.&lt;br/&gt; {1,number,integer}. Dodirnite zaslon.&lt;br/&gt; {2,number,integer}. Povucite jednim prstom ili dvama prstima oko zaslona&lt;br/&gt; {3,number,integer}. Spojite dva prsta da biste prilagodili povećanje.&lt;br/&gt; {4,number,integer}. Uz pomoć prečaca zaustavite povećavanje&lt;br/&gt;&lt;br/&gt; Možete privremeno povećati itd."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kad je povećanje uključeno, možete povećati prikaz na zaslonu.\n\n"<b>"Da biste zumirali"</b>", pokrenite povećanje, a zatim dodirnite bilo gdje na zaslonu.\n"<ul><li>"Povlačite s dva prsta ili više njih da biste se pomicali."</li>\n<li>"Spojite dva prsta ili više njih da biste prilagodili zumiranje."</li></ul>\n\n<b>"Da biste nešto privremeno zumirali"</b>", pokrenite povećanje, a zatim dodirnite bilo gdje na zaslonu i zadržite pritisak.\n"<ul><li>"Povlačite prstom da biste se kretali zaslonom."</li>\n<li>"Podignite prst da biste smanjili prikaz."</li></ul>\n\n"Tipkovnica i navigacijska traka ne mogu se povećati."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Stranica <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Prečac gumba za pristupačnost"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dodirnite plutajući gumb"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pokret za pristupačnost"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dodirnite gumb za pristupačnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> pri dnu zaslona. Da biste prešli na neku drugu značajku, dodirnite i zadržite gumb za pristupačnost."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Prijeđite s dva prsta prema gore od dna zaslona.\n\nDa biste prešli na neku drugu značajku, prijeđite s dva prsta prema gore i zadržite."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Prijeđite s tri prsta prema gore od dna zaslona.\n\nDa biste prešli na neku drugu značajku, prijeđite s tri prsta prema gore i zadržite."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Prijeđite prstom od dna zaslona prema gore. Da biste prešli na neku drugu značajku, prijeđite prstom prema gore i zadržite.}one{Prijeđite # prstom prema gore s dna zaslona. Da biste prešli na neku drugu značajku, prijeđite # prstom prema gore i zadržite.}few{Prijeđite s # prsta prema gore s dna zaslona. Da biste prešli na neku drugu značajku, prijeđite s # prsta prema gore i zadržite.}other{Prijeđite s # prstiju prema gore s dna zaslona. Da biste prešli na neku drugu značajku, prijeđite s # prstiju prema gore i zadržite.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Više opcija"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saznajte više o usluzi <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tipke za glasnoću"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tipke za glasnoću"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite i zadržite obje tipke za glasnoću"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvaput dodirnite zaslon dvama prstima"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dodirnite dvaput s %1$d prsta"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Brzo dodirnite zaslon dvaput s %1$d prsta"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Dodirnite triput"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Brzo dodirnite zaslon %1$d puta. To bi moglo usporiti uređaj."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dodirnite dvaput s %1$d prsta"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite zaslon dvama prstima ovoliko puta: {0,number,integer}"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triput dodirnite zaslon"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"dodirnite triput"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Brzo dodirnite zaslon {0,number,integer} puta. Taj prečac može usporiti uređaj"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Napredno"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Gumb Pristupačnost postavljen je na <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste upotrijebili povećanje, dodirnite i zadržite gumb Pristupačnost i zatim odaberite povećanje."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pokret pristupačnosti postavljen je tako da otvara <xliff:g id="SERVICE">%1$s</xliff:g>. Da biste koristili povećanje, s dva prsta prijeđite od dna zaslona prema gore i zadržite. Zatim odaberite povećanje."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Usluga ne radi ispravno."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Prečaci za pristupačnost"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Prikaži u Brzim postavkama"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Crveno – zeleno"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Crveno – zeleno"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Crveno-zelena, poteškoća prepoznavanja zelene"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Crveno-zelena, poteškoća prepoznavanja crvene"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Plavo – žuto"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nijanse sive"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitet"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Oslabljen osjet zelene boje, deuteranomalija"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Oslabljen osjet crvene boje, protanomalija"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nedostupno za način nijansi sive ili kad je korekcija boja onemogućena"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalija"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalija"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Još tamnije"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Još zatamni"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cijan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Žuta"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Grimizna"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Želite li aplikaciji <xliff:g id="SERVICE">%1$s</xliff:g> dopustiti potpunu kontrolu nad uređajem?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> treba sljedeće:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Budući da aplikacija prekriva zahtjev za dopuštenje, Postavke ne mogu potvrditi vaš odgovor."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Usluga <xliff:g id="SERVICE">%1$s</xliff:g> zahtijeva punu kontrolu nad ovim uređajem. Ta usluga može čitati zaslon i postupati u ime korisnika kojima je potrebna prilagođena pristupačnost. Ta razina kontrole nije primjerena za većinu aplikacija."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Potpuna kontrola prikladna je za aplikacije koje vam pomažu s potrebama pristupačnosti, ali ne i za većinu aplikacija."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Pregled zaslona i upravljanje njime"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Može čitati sav sadržaj na zaslonu i prikazati sadržaj povrh drugih aplikacija."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Pregled i izvršavanje radnji"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijama ili senzorom uređaja i stupati u interakciju s aplikacijama u vaše ime."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dopusti"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nijedan}=1{Postavljen je jedan raspored}one{Postavljen je # raspored}few{Postavljena su # rasporeda}other{Postavljeno je # rasporeda}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ne uznemiravaj"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritetni načini"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Dodajte način"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Smanjite ometanja i preuzmite kontrolu nad svojom pozornošću pomoću načina za spavanje, rad, vožnju i sve između toga."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Izradite vlastiti način"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Primajte obavijesti samo od važnih osoba i aplikacija"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Postavite raspored"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Raspored se temelji na"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dan i vrijeme"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00 – 17:00, radnim danom\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Događaji iz kalendara"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Aktivno: {mode_1}}=2{Aktivno: {mode_1} i {mode_2}}=3{Aktivno: {mode_1}, {mode_2} i {mode_3}}one{Aktivno: {mode_1}, {mode_2} i još #}few{Aktivno: {mode_1}, {mode_2} i još #}other{Aktivno: {mode_1}, {mode_2} i još #}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Jedan način može se automatski uključiti}one{# način može se automatski uključiti}few{# načina mogu se automatski uključiti}other{# načina može se automatski uključiti}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"UKLJUČENO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nije postavljeno"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Onemogućeno"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Izrada načina"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Prilagođeno"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Uključi sad"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Isključi"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Način nije pronađen"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograničavanje prekida"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokiraj prekide i ometanja"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Postavljanje aplikacije <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Uključite opciju Ne uznemiravaj."</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Zvukovi alarma i medija mogu prekidati"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Rasporedi"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Brisanje rasporeda"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Brisanje"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Preimenuj"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Izbriši"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Želite li izbrisati način <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Uredi"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Rasporedi"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Raspored"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Uključi automatski"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Dodajte kalendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Upotreba kalendara"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Raspored"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Postavite raspored"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kada uključiti automatski"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Raspored događaja"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Uključivanje tijekom događaja:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kada je odgovor na pozivnicu"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Raspored vremena"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Raspored"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Raspored"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Dopusti ometanja koja proizvode zvuk"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokiranje vizualnih ometanja"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Dopusti vizualne signale"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Obavijesti koje možete dobiti"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Dodatne radnje"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtri obavijesti"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Više postavki"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Isključeno}=1{Isključeno/jedan način može se automatski uključiti}one{Isključeno/# način može se automatski uključiti}few{Isključeno/# načina mogu se automatski uključiti}other{Isključeno/# načina može se automatski uključiti}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Postavke zaslona"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opcije zaslona"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Nijanse sive"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"omogući tamnu temu"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Prebacuje OS i aplikacije da koriste svijetli tekst na tamnoj pozadini, što omogućuje manje naprezanje očiju i značajnu uštedu baterije na nekim uređajima"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Bez promjena na zaslonu}=1{{effect_1}}=2{{effect_1} i {effect_2}}=3{{effect_1}, {effect_2} i {effect_3}}one{{effect_1}, {effect_2} i još #}few{{effect_1}, {effect_2} i još #}other{{effect_1}, {effect_2} i još #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ograničite tko vam može slati obavijesti"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nijedan prekid se ne filtrira"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opcije prikaza za filtrirane obavijesti"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kad je uključena značajka Ne uznemiravaj"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Bez zvuka obavijesti"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"otvaranje obavijesti"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Dopusti odgodu obavijesti"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Točka obavijesti na ikoni aplikacije"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paketi obavijesti"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Oblačići"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblačići"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ovaj razgovor u oblačiću"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ta aplikacija ne podržava napredne postavke"</string>
     <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="4737150709382859870">"Prilagodljive obavijesti"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Koristi prilagodljive obavijesti"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kad u kratkom vremenskom razdoblju primite velik broj obavijesti, telefon će smanjiti glasnoću i minimizirati skočne prozore na zaslonu u trajanju do dvije minute. Pozivi, alarmi i prioritetni razgovori i dalje će vibrirati, zvučno se oglašavati ili prikazivati na zaslonu, a sve obavijesti jednostavno ćete pronaći tako da povučete prstom od vrha zaslona prema dolje."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Postupno stišavanje obavijesti"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Upotreba stišavanja 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">"Primijeni na aplikacije poslovnog profila"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pomoćne usluge za virtualnu stvarnost"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorije"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Drugo"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ova aplikacija nije objavila nijednu obavijest"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Prikaži nekorištene kategorije"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Dodatne postavke u aplikaciji"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Prikaži nekorištene kategorije"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Sakrij nekorištene kategorije"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Razgovori"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Svi razgovori"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"svi razgovori"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioritetni razgovori"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritetni razgovori"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ništa"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikacije koje mogu prekidati"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Odabrane aplikacije"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nijedna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Sve"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nijedna aplikacija ne može prekidati}=1{{app_1} može prekidati}=2{{app_1} i {app_2} mogu prekidati}=3{{app_1}, {app_2} i {app_3} mogu prekidati}one{{app_1}, {app_2} i još # aplikacija mogu prekidati}few{{app_1}, {app_2} i još # aplikacije mogu prekidati}other{{app_1}, {app_2} i još # aplikacija mogu prekidati}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (posao)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Izračun u tijeku…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Dopusti aplikacijama da nadjačaju"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije koje mogu prekidati"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Odaberite više aplikacija"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ništa ne može prekidati"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nitko ne može prekidati"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Neke osobe mogu prekidati"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Ponovni pozivatelji mogu ometati"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Sve osobe mogu prekidati"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Uzastopni pozivi"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dopusti ponovne pozivatelje"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Promijeni na opciju Samo alarmi na jedan sat do {time}}one{Promijeni na opciju Samo alarmi na # sat do {time}}few{Promijeni na opciju Samo alarmi na # sata do {time}}other{Promijeni na opciju Samo alarmi na # sati do {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Promijeni na \"Samo alarmi\" do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Promijeni na \"Uvijek prekidaj\""</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Promijeni naziv"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Promijeni ikonu"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Promijenite ikonu"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Uređivanje načina"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Izrada načina"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Prilagođeni način"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naziv načina"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Događaji iz kalendara"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina prije spavanja"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Tijekom vožnje"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Postavke aplikacija"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Podaci i postavke u aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Onemogućiti način <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ovaj se način nikad neće uključiti kada je onemogućen"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogući"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Omogućiti način <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ovaj se način može automatski uključiti na temelju njegovih postavki"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogući"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Postavite način koji prati uobičajeni raspored"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Postavite način za sinkronizaciju s događajima iz kalendara i odgovorima na pozivnice"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Izradite opuštajuću rutinu za spavanje. Postavite alarme, zatamnite zaslon i blokirajte obavijesti."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dajte prednost sigurnosti na cesti za usredotočenu vožnju bez ometanja"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokirajte smetnje ili prekide koji dolaze s vašeg uređaja kako biste se usredotočili"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Uklonite sva ometanja za tiho okruženje"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizirajte doživljaje i postavke uređaja za različite korisnike"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Smanjite ometanja dopuštanjem da vam se prikažu samo obavijesti važnih kontakata i aplikacija"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Upozorenje"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Zatvori"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Pošalji povr. informacije o uređaju"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Futrola"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Ploča postavki"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Nametni način rada na računalu"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Nameće eksperimentalni stolni način rada na sekundarnim zaslonima"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogući prozore slobodnog oblika"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Omogući prozore slobodnog oblika na sek. zaslonu"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogući aplikacije nepromjenjive veličine u više prozora"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogućuje prikaz aplikacija nepromjenjive veličine u više prozora"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Nadjačaj nametanje tamne teme"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilne podatke"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Radi boljeg doživljaja na uređaju, aplikacije i usluge i dalje mogu tražiti Wi‑Fi mreže u bilo kojem trenutku, čak i kada je Wi‑Fi isključen. Time se primjerice mogu poboljšati značajke i usluge koje se temelje na lokaciji. To možete promijeniti u postavkama traženja Wi-Fija."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Promijenite"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Privremeno povezano"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Privremeno koristite <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Koristi prikvačivanje aplikacije"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Koristi opcije za razvojne programere"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Koristi uslugu ispisa"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Dopusti više korisnika"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Dopusti prebacivanje između korisnika"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"dopustiti, više, korisnik, dopuštenje, mnogo"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"više, korisnici, profili, osobe, računi, prebaci, mnogi"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Upotreba bežičnog otklanjanja pogrešaka"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Odaberite što će se prikazivati na zaslonu kad se tablet nalazi na priključnoj stanici. Uređaj može trošiti više energije kad se koristi čuvar zaslona."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Prilagodite"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Prilagodite <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Za omogućivanje podrške slobodnom obliku potrebno je ponovno pokretanje."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Za prisilno uključivanje načina radne površine na sekundarnim zaslonima potrebno je ponovno pokretanje."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Za omogućivanje podrške za prozore slobodnog oblika potrebno je ponovno pokretanje."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Za ažuriranje dostupnosti prikaza u prozorima slobodnog oblika potrebno je ponovno pokretanje."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Za omogućivanje prikaza u prozorima slobodnog oblika na sekundarnim zaslonima potrebno je ponovno pokretanje."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Ponovno pokreni sada"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Ponovno pokreni kasnije"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorni zvuk"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ruža"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Grimizna"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Ljubičasta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Gotovo"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Spremi"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Odustani"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Zadano"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Srednji"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Uključeno"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Isključeno"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Uključeno"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvuk %1$d%% lijevo, %2$d%% desno"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvuk %1$d%% desno, %2$d%% lijevo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Naziv vašeg uređaja vidljiv je aplikacijama koje ste instalirali. Mogu ga vidjeti i druge osobe kada se povežete s Bluetooth uređajima ili Wi-Fi mrežom ili kada postavite Wi-Fi žarišnu točku."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatički rod"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Odaberite gramatički rod"</string>
@@ -5344,4 +5417,6 @@
     <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>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Nije moguće urediti zaporku dok je zajedničko slušanje u tijeku. Da biste promijenili zaporku, prvo isključite zajedničko slušanje."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Čitač QR koda"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Pretražite postavke"</string>
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 73f9eae..10e2fb2 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Alvásidő"</item>
-    <item msgid="4152450357280759894">"Vezetés"</item>
-    <item msgid="7096549258219399423">"Magával ragadó"</item>
-    <item msgid="2760716776980432977">"Kezelt"</item>
-    <item msgid="601734478369121764">"Csillag"</item>
-    <item msgid="6243809315432780521">"Naptár"</item>
-    <item msgid="4913577903148415331">"Idő"</item>
-    <item msgid="3653377604690057780">"Színház"</item>
-    <item msgid="3843711267408385410">"Virág"</item>
+    <item msgid="2750940760340557109">"Félhold"</item>
+    <item msgid="8513969636586738035">"Autó"</item>
+    <item msgid="957392343846370509">"Emberi elme"</item>
+    <item msgid="6734164279667121348">"Naptár"</item>
+    <item msgid="4139559120353528558">"Óra"</item>
+    <item msgid="5157711296814769020">"Strandernyő"</item>
+    <item msgid="6635328761318954115">"Sátor"</item>
+    <item msgid="1711994778883392255">"Filmtekercs"</item>
+    <item msgid="9097658401859604879">"Kontroller"</item>
+    <item msgid="755931364157422565">"Edzőtermi súlyzó"</item>
+    <item msgid="8894207806795738429">"Labdát dobó ember"</item>
+    <item msgid="2274801572149555103">"Rúgó ember"</item>
+    <item msgid="8795037201506843325">"Úszás"</item>
+    <item msgid="3558421426169430451">"Túrázó ember"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Workshop-eszközök"</item>
+    <item msgid="4595330511709890409">"Aktatáska"</item>
+    <item msgid="8352738347856724389">"Csillag"</item>
+    <item msgid="7082783098151998721">"Lótuszvirág"</item>
+    <item msgid="5772220259409264724">"Felettes"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index fad3e29..ca26e1c 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Felfüggesztve"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Ismeretlen"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Előnézet"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-kód"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kisebb"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Nagyobb"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Mindig"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Hallókészülék-beállítások"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Gyorsparancs, hallókészülék-kompatibilitás"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Beállításkészlet"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Audiológusa nem programozott be beállításkészleteket"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Nem sikerült frissíteni a beállításkészletet"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Hangkimenet"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"A hangkimenetről"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"A Nyelvválasztás nem áll rendelkezésre ehhez az alkalmazáshoz a Beállításokban."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"A nyelv eltérhet az alkalmazásban rendelkezésre álló nyelvektől. Előfordulhat, hogy egyes alkalmazások nem támogatják ezt a beállítást."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Az egyes alkalmazások nyelvének beállítása."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"A rendszer, az alkalmazások és a webhelyek a preferált nyelvek közül az első támogatottat fogják használni."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Az eszköz, az alkalmazások és a webhelyek a preferált nyelvek közül az első támogatottat fogják használni.\n\nA dátumok, a számok és a mértékegységek formázása érdekében több alkalmazás használja majd a preferált nyelvhez tartozó régiót is. A régió módosításához adjon hozzá nyelvet, majd módosítsa a preferált régiót."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ha minden alkalmazásnál Ön szeretné kiválasztani a nyelvet, lépjen az egyes alkalmazások nyelvi beállításaihoz."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"További információ az alkalmazások nyelveiről"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Módosítja a rendszer nyelvét a következőre: %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Ki"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Be / # alkalmazás hozzáfér a helyadatokhoz}other{Be / # alkalmazás hozzáfér a helyadatokhoz}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Betöltés…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"A közeli eszközökre vonatkozó engedéllyel rendelkező alkalmazások meghatározhatják a csatlakoztatott eszközök relatív pozícióját."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"A közeli eszközökre vonatkozó engedéllyel rendelkező alkalmazások meghatározhatják a csatlakoztatott eszközök relatív pozícióját."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"A helyhozzáférés ki van kapcsolva az alkalmazásoknál és a szolgáltatásoknál. A rendszer azonban így is elküldheti az eszköz helyét a segélyszolgálatoknak, ha Ön segélyhívó számot hív, vagy SMS-t küld rá."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"További információ a helybeállításokról"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"A módosításához lépjen a következő menübe ChromeOS-eszközén: Beállítások &gt; Adatvédelem és biztonság &gt; Adatvédelmi beállítások &gt; Helyhozzáférés"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Arc és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Arc, ujjlenyomat és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Arc, ujjlenyomatok és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Távoli hitelesítő alapú feloldás"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Óra hozzáadva"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Az óra beállítása"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"További információ a Feloldás órával funkcióról"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Óra hozzáadása"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Óra eltávolítása"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Feloldás ujjlenyomattal és Arcalapú feloldás"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Arc- és ujjlenyomat-alapú feloldás"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Arc- és ujjlenyomat-alapú feloldás a munkaprofilban"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Beállítás szükséges"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Arc és ujjlenyomatok hozzáadva"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"A privát terület beállítása…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Nem sikerült a privát terület beállítása"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Újra"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Kilépés"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"A privát terület nem áll rendelkezésre.\nTekintse meg a lehetséges okokat."</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"A lehetséges okok megtekintése"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Új zárolást választ a privát területhez?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Beállíthat egy új zárolást csak a privát terület számára, vagy használhatja ugyanazt a zárolást, amelyet a készülék feloldásához használ."</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Képernyőzár használata"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Újraindítja az eszközt?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"A részletes NFC-naplózás csak fejlesztési célokra szolgál. A hibajelentésekben további NFC-adatok is szerepelnek, amelyek között privát információk is lehetnek. A beállítás módosításához indítsa újra eszközét."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Újraindítás"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Be"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Ki"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Külső kijelző"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Külső kijelző használata"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Kijelző felbontása"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Nem csatlakozik külső kijelző"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Elforgatás"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Normál"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Az elforgatás vagy a felbontás módosítása leállíthatja az aktuálisan futó alkalmazásokat"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"A képernyő tükrözéséhez az eszköznek csatlakoznia kell egy külső kijelzőhöz"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"További lehetőségek"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Tartalomátküldés"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"tükrözés"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Vezeték nélküli kijelző engedélyezése"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptív"</string>
     <string name="brightness" msgid="6216871641021779698">"Fényerőszint"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Alkalmazkodó fényerő"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Az alkalmazkodó fényerőről"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"A képernyő fényerőssége automatikusan alkalmazkodik a környezethez és az adott tevékenységhez. A csúszka mozgatásával segíthet az alkalmazkodó fényerő funkciónak, hogy megtanulja az Ön személyes preferenciáit."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Bekapcsolva"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Kikapcsolva"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opciók"</string>
     <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="show_ime" msgid="4334255501724746849">"Képernyő-billentyűzet használata"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Maradjon a képernyőn, amíg a fizikai billentyűzet aktív"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Billentyűblokkolás"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"A billentyűzet nem veszi figyelembe, ha ugyanazt a billentyűt többször is lenyomják <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms-on belül"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Lassú billentyűk"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Átállítja a billentyű lenyomásától az aktiválásig eltelő időtartamot <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms-ra"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"A fizikai billentyűzettel irányíthatja az egeret."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mutatókitöltés-stílus módosítása: sárga"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mutatókitöltés-stílus módosítása: rózsaszín"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mutatókitöltés-stílus módosítása: kék"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Mutató húzásának stílusa"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Fehér"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Fekete"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nincs"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Érintőpad-kézmozdulatok megismerése"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"érintőpad, érintő pad, egér, kurzor, görgetés, csúsztatás, kattintás jobb egérgombbal, kattintás, mutató"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kattintás jobb egérgombbal, koppintás"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Felhasználó által kiválasztva: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Beszéd"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Mutató sebessége"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Mutató mérete"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Mutató méretének csökkentése"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Mutató méretének növelése"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Játékvezérlő"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Rezgés átirányítása"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Rezgés küldése a játékvezérlőre kapcsolódáskor"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Folytatás mégis"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Mégse"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nagyítási beállítások"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Egyujjas pásztázás"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"A nagyító mozgatása egy ujjal"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Egy ujjal húzva mozgathatja a képernyő tartalmát"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"A nagyítási terület mozgatása egy ujj húzásával."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"A nagyítási terület mozgatása két ujj húzásával."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nem áll rendelkezésre, ha a nagyítás csak a képernyő egy részére terjed ki"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Nagyításhoz koppintson a gombra"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Gyorsan nagyíthat a képernyőn a tartalom felnagyítása érdekében"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;A nagyításhoz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.&lt;br/&gt; {1,number,integer}. Koppintson a képernyőre.&lt;br/&gt; {2,number,integer}. Két ujjának húzásával mozoghat a képernyőn.&lt;br/&gt; {3,number,integer}. Két ujjának összehúzásával módosíthatja a nagyítási szintet.&lt;br/&gt; {4,number,integer}. A gyorsparancs segítségével leállíthatja a nagyítási funkciót.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Az ideiglenes nagyításhoz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ellenőrizze, hogy a nagyítás típusa teljes képernyőre van-e beállítva.&lt;br/&gt; {1,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.&lt;br/&gt; {2,number,integer}. Tartsa lenyomva egyik ujját bárhol a képernyőn.&lt;br/&gt; {3,number,integer}. Ujjának húzásával mozoghat a képernyőn.&lt;br/&gt; {4,number,integer}. Emelje fel ujját a nagyítás befejezéséhez."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;A nagyításhoz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.&lt;br/&gt; {1,number,integer}. Koppintson a képernyőre.&lt;br/&gt; {2,number,integer}. Két ujjal húzva mozgathatja a képernyő tartalmát.&lt;br/&gt; {3,number,integer}. Két ujjának összehúzásával módosíthatja a nagyítási szintet.&lt;br/&gt; {4,number,integer}. A gyorsparancs használatával leállíthatja a nagyítást&lt;br/&gt;&lt;br/&gt; Egyebek mellett ideiglenesen is nagyíthat."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;A nagyításhoz:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Használja a gyorsparancsot a nagyítás megkezdéséhez.&lt;br/&gt; {1,number,integer}. Koppintson a képernyőre.&lt;br/&gt; {2,number,integer}. Egy vagy két ujjal húzva mozgathatja a képernyő tartalmát&lt;br/&gt; {3,number,integer}. Két ujjának összehúzásával módosíthatja a nagyítási szintet.&lt;br/&gt; {4,number,integer}. A gyorsparancs használatával leállíthatja a nagyítást&lt;br/&gt;&lt;br/&gt; Egyebek mellett ideiglenesen is nagyíthat."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ha be van kapcsolva a nagyítás funkció, ránagyíthat a képernyő tartalmára.\n\nA "<b>"nagyításhoz"</b>", indítsa el a funkciót, majd koppintson a kívánt területre a képernyőn.\n"<ul><li>"Görgetéshez húzza legalább két ujját a képernyőn."</li>\n<li>"A nagyítás mértékét két vagy több ujjának össze- vagy széthúzásával módosíthatja."</li></ul>\n\n<b>"Ideiglenes nagyításhoz"</b>" indítsa el a funkciót, majd tartsa lenyomva a kívánt területet a képernyőn.\n"<ul><li>"Ujját lenyomva tartva mozoghat a képernyőn."</li>\n<li>"A méret visszaállításához emelje fel ujját a képernyőről."</li></ul>\n\n"A billentyűzeten és a navigációs sávon nem lehetséges a nagyítás."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>/<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. oldal"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Gyorsparancs a Kisegítő lehetőségek gombhoz"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Koppintson a lebegő gombra"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Kisegítő kézmozdulat"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Koppintson a Kisegítő lehetőségek gombra (<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>) a képernyő alján. A funkciók közötti váltáshoz érintse meg és tartsa lenyomva a Kisegítő lehetőségek gombot."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Csúsztasson két ujjával felfelé a képernyő aljáról.\n\nA funkciók közötti váltáshoz csúsztasson felfelé két ujjával, és ne emelje fel őket a képernyőről."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Csúsztasson három ujjával felfelé a képernyő aljáról.\n\nA funkciók közötti váltáshoz csúsztasson felfelé három ujjával, és ne emelje fel őket a képernyőről."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Csúsztassa felfelé az ujját a képernyő aljától. A funkciók közötti váltáshoz húzza az ujját felfelé és tartsa a képernyőn.}other{Csúsztassa felfelé # ujját a képernyő aljától. A funkciók közötti váltáshoz csúsztassa felfelé # ujját, és tartsa lenyomva őket a képernyőn.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"További lehetőségek"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"További információ erről: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Hangerőszabályzó gombok"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"hangerőszabályzó gombok"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tartsa lenyomva mindkét hangerőgombot"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dupla koppintás a képernyőn két ujjal"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-ujjas dupla koppintás"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Koppintson gyorsan egymás után kétszer %1$d ujjal"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Három koppintás"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Koppintson a képernyőre %1$d-szor gyorsan egymás után. Ez lelassíthatja az eszközét."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ujjas dupla koppintás"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Gyors koppintás a képernyőre két ujjal {0,number,integer} alkalommal"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Háromszori koppintás a képernyőre"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"három koppintás"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Koppintson a képernyőre gyorsan, {0,number,integer} alkalommal. Ez a gyorsparancs lelassíthatja az eszközét."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Speciális"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"A Kisegítő lehetőségek gomb a következőre van állítva: <xliff:g id="SERVICE">%1$s</xliff:g>. Nagyításhoz tartsa lenyomva a Kisegítő lehetőségek gombot, majd válassza a nagyítás lehetőséget."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"A kisegítő kézmozdulat a következőre van beállítva: <xliff:g id="SERVICE">%1$s</xliff:g>. A nagyítás használatához gyorsan csúsztassa fel két ujját a képernyő aljáról, majd tartsa. Ezután válassza a nagyítás lehetőséget."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ez a szolgáltatás nem működik megfelelően."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Kisegítő lehetőségek gyorsparancsai"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Megjelenítés a Gyorsbeállítások között"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Vörös-zöld"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Vörös-zöld"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Piros-zöld, a zöld gyenge"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Piros-zöld, a piros gyenge"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Kék-sárga"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Szürkeárnyalatos"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzitás"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Zöldszín-tévesztés (deuteranomália)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Vörösszín-tévesztés (protanomália)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nem áll rendelkezésre szürkeárnyalatos módban, és amikor le van tiltva a színjavítás"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomália"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomália"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomália"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extrasötét"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"A képernyő legyen extrasötét"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Zöldeskék"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Sárga"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Teljes körű vezérlést biztosít eszköze felett a(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatás számára?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"A(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatásnak a következőkre van szüksége:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Mivel az egyik alkalmazás zavar egy engedélykérelmet, a Beállítások funkció nem tudja ellenőrizni az Ön válaszát."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"A(z) <xliff:g id="SERVICE">%1$s</xliff:g> teljes irányítást kér az eszköz felett. Az alkalmazás felolvashatja a képernyőn lévő tartalmat, és cselekedhet a kisegítő lehetőségekre szoruló felhasználók helyett. Az irányítás ilyen szintje nem megfelelő a legtöbb alkalmazás számára."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"A teljes vezérlés indokolt olyan alkalmazásoknál, amelyek kisegítő lehetőségeket nyújtanak, a legtöbb alkalmazásnál azonban nem."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Képernyő megtekintése és kezelése"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Elolvashatja a képernyő tartalmát, és tartalmakat jeleníthet meg más alkalmazások felett."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Műveletek megtekintése és elvégzése"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Követheti az alkalmazásokkal és hardveres érzékelőkkel való interakcióit, és műveleteket végezhet az alkalmazásokkal az Ön nevében."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Engedélyezés"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tiltás"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Igen"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nincs}=1{1 ütemezés beállítva}other{# ütemezés beállítva}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ne zavarjanak"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritási módok"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Mód hozzáadása"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimalizálja a zavaró tényezőket, és vegye kezébe a figyelem irányítását különböző módokkal, legyen szó alvásról, munkáról, vezetésről vagy bármiről ezek mellett."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Hozza létre a saját módját"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Értesítés fogadása csak fontos személyektől és alkalmazásoktól"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Állítson be ütemezést"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Ütemezés alapja:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Nap és időpont"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„Reggel kilenctől délután ötig, hétköznapokon”"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Naptáresemények"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{A(z) {mode_1} aktív}=2{{mode_1} és {mode_2} aktív}=3{{mode_1}, {mode_2} és {mode_3} aktív}other{{mode_1}, {mode_2} és # egyéb aktív}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mód automatikusan bekapcsolódhat}other{# mód automatikusan bekapcsolódhat}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"BE"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nincs beállítva"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Kikapcsolva"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Mód létrehozása"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Egyéni"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Bekapcsolás most"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Kikapcsolás"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mód nem található"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"A megszakítások korlátozása"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Megszakító vagy zavaró tényezők kizárása"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"A(z) <xliff:g id="MODE">%1$s</xliff:g> beállítása"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"A Ne zavarjanak mód bekapcsolása"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Az ébresztések és médiahangok megszakíthatják a „Ne zavarjanak” módot"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ütemezések"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ütemezések törlése"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Törlés"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Átnevezés"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Törlés"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Törli a(z) „<xliff:g id="MODE">%1$s</xliff:g>” módot?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Szerkesztés"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ütemezések"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Ütemezés"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automatikus bekapcsolás"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Naptár hozzáadása"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Naptár használata"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Ütemezés"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Állítson be ütemezést"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Automatikus bekapcsolás esete"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Eseménynaptár"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Bekapcsol a következő esetben:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Amikor a meghívó válasza:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Időbeosztás"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ütemezés"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ó, <xliff:g id="MINUTES">%2$d</xliff:g> p"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ütemezés"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Hanggal járó jelzések engedélyezése"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Megjelenő értesítések tiltása"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Vizuális jelek engedélyezése"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Értesítések, amelyek eljuthatnak Önhöz"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"További műveletek"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Értesítési szűrők"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"További beállítások"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Ki}=1{Ki / 1 mód automatikusan bekapcsolhat}other{Ki/ # mód automatikusan bekapcsolhat}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Megjelenítési beállítások"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Megjelenítési beállítások"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Szürkeárnyalatos"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"sötét téma engedélyezése"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Módosíthatja az operációs rendszer és az alkalmazások beállításait úgy, hogy a sötét háttér előtti világos szöveget részesítsék előnyben, ami kevésbé megterhelő a szemnek, valamint jóval energiatakarékosabb használatot eredményez egyes eszközökön."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nincs megjelenítésmódosítás}=1{{effect_1}}=2{{effect_1} és {effect_2}}=3{{effect_1}, {effect_2} és {effect_3}}other{{effect_1}, {effect_2}, és # további}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Korlátozhatja, hogy miről kapjon értesítést"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"A rendszer nem szűrt ki megszakításokat"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"A szűrt értesítések megjelenítési beállításai"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Ha a „Ne zavarjanak” mód aktív"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Nincs hang az értesítéseknél"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"értesítés megnyitása"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Értesítés halasztásának engedélyezése"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Értesítési pötty az alkalmazásikonon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Értesítéscsomagok"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Buborékok"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Buborékok"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Beszélgetés buborékba helyezése"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Az alkalmazás nem támogatja a speciális beállításokat"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"További beállítások"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Ebben az alkalmazásban további beállítások állnak rendelkezésre"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Alkalmazkodó értesítések"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Alkalmazkodó értesítések használata"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Ha rövid időn belül sok értesítést kap, telefonja két percig csökkenti a hangerőt, és kis méretre állítja az előugró ablakokat a képernyőn. A hívásoknál, az ébresztéseknél és a fontos beszélgetéseknél továbbra is rezeg és hangjelzést ad a telefon, valamint megjeleníti őket a képernyőn. Az összes értesítést könnyen megtalálhatja az ujjának a képernyő tetejéről való lehúzásával."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Értesítések befagyasztása"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Az értesítések befagyasztásának használata"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Ha rövid időn belül sok értesítést kap, telefonja két percig csökkenti a hangerőt, és kis méretűre állítja a figyelmeztetéseket. A hívásokat, az ébresztéseket és a fontos beszélgetéseket nem érinti ez a beállítás. \n\nA befagyasztás ideje alatt kapott értesítések megtekintéséhez húzza lefelé az ujját a képernyő tetejéről."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Alkalmazás munkaprofilokra"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Alkalmazás a munkaprofil alkalmazásaira"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Virtuálisvalóság-segédszolgáltatás"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategóriák"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Egyéb"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ez az alkalmazás nem küldött semmilyen értesítést"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Nem használt kategóriák mutatása"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Az alkalmazás további beállításai"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Nem használt kategóriák mutatása"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Nem használt kategóriák elrejtése"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Beszélgetések"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Az összes beszélgetés"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"az összes beszélgetés"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Fontos beszélgetések"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"fontos beszélgetések"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nincs"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Azok az alkalmazások, amelyeknél engedélyezve van a megszakítás"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Kiválasztott alkalmazások"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nincs"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Összes"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Egy alkalmazás sem szakíthatja meg a „Ne zavarjanak” módot}=1{A következő megszakíthatja a „Ne zavarjanak” módot: {app_1}}=2{A következők megszakíthatják a „Ne zavarjanak” módot: {app_1} és {app_2}}=3{A következők megszakíthatják a „Ne zavarjanak” módot: {app_1}, {app_2} és {app_3}}other{A következők megszakíthatják a „Ne zavarjanak” módot: {app_1}, {app_2} és # egyéb}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (munkahely)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Számítás…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Felülbírálás engedélyezése az alkalmazások számára"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Azok az alkalmazások, amelyeknél engedélyezve van a megszakítás"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"További alkalmazások kiválasztása"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Semmi sem szakíthatja meg a „Ne zavarjanak” módot"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Senki sem szakíthatja meg a „Ne zavarjanak” módot"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Néhány személy megszakíthatja a „Ne zavarjanak” módot"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"A többször hívó személyek számára engedélyezett a megzavarás"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Minden személy megszakíthatja a „Ne zavarjanak” módot"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Többször hívó személyek"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Többször hívó személyek engedélyezése"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Módosítás csak ébresztésekre egy órára, eddig: {time}}other{Módosítás csak ébresztésekre # órára, eddig: {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Váltás „Csak ébresztésekre” eddig: <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Módosítás a bármikor történő megszakításra"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Átnevezés"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Ikon megváltoztatása"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Ikon megváltoztatása"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Szerkesztési mód"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Mód létrehozása"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Egyéni mód"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mód neve"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Naptáresemények"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Alvásidő rutin"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Vezetés közben"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Alkalmazásbeállítások"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Információk és beállítások a(z) <xliff:g id="APP_NAME">%1$s</xliff:g> appban"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Kezelő: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Tiltja a(z) <xliff:g id="MODE_NAME">%1$s</xliff:g> módot?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ez a mód soha nem kapcsol be, ha tiltva van"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Kikapcsolás"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Engedélyezi ezt: <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ez a mód automatikusan is bekapcsolhat a beállítások függvényében"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Bekapcsolás"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Állítson be olyan módot, amely rendszeres időbeosztást követ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Állítson be egy módot a naptári eseményekkel való szinkronizáláshoz és a meghívók megválaszolásához"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Tervezzen nyugtató alvásrutint. Állítson be ébresztőket, vegye vissza a képernyő fényerejét, és kapcsolja ki az értesítéseket."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Helyezze előtérbe a biztonságot az úton, hogy a zavartalan vezetésre koncentrálhasson"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Zárja ki a zavaró vagy megszakító tényezőket az eszközről, hogy nyugodtan koncentrálhasson"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Szüntessen meg minden zavaró tényezőt a nyugodt környezet érdekében"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Szabja személyre az eszközélményt a különböző felhasználók számára"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimalizálja a megzavarás lehetőségét azáltal, hogy csak a fontos emberek és alkalmazások érhetik el Önt"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Figyelmeztetés"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Bezárás"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Visszajelzés küldése az eszközről"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Tok"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akkumulátor"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Beállítások panel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Asztali mód kényszerítése"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Kísérleti asztali mód kényszerítése a másodlagos kijelzőkön"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Szabad formájú ablakok engedélyezése"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Szabad formájú ablakok a másodlagos kijelzőn"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Nem átméretezhető appok engedélyezése többablakos nézetben"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Engedélyezi a nem átméretezhető alkalmazásokat a többablakos nézetben"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"A kényszerített sötétítés felülírása"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiladatok"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Az eszközhasználati élmény javítása érdekében az alkalmazások és a szolgáltatások továbbra is bármikor kereshetnek Wi-Fi-hálózatokat, még akkor is, ha a Wi-Fi ki van kapcsolva. Ez például a helyalapú funkciók és szolgáltatások javítására használható. A funkciót a Wi-Fi-keresési beállítások között módosíthatja."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Módosítás"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> (<xliff:g id="NETWORKMODE">%2$s</xliff:g>)"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Csatlakozva"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ideiglenesen csatlakoztatva"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Ideiglenes használatban: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Alkalmazáskitűzés használata"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Fejlesztői beállítások használata"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Nyomtatási szolgáltatás használata"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Több felhasználó engedélyezése"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Felhasználóváltás engedélyezése"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"engedélyezés, több, felhasználó, engedély, sok"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"több, felhasználók, profilok, személyek, fiókok, kapcsoló, sok"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Vezeték nélküli hibakeresés használata"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Kiválaszthatja, hogy mi legyen látható a képernyőn, amikor a táblagép dokkolt állapotban van. Előfordulhat, hogy az eszköz több energiát használ, ha a képernyőkímélő be van kapcsolva."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Szerkesztés"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> személyre szabása"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"A szabad formátumú támogatás engedélyezéséhez újraindításra van szükség."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Az asztali mód másodlagos kijelzőkön való kényszerítéséhez újraindításra van szükség."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"A szabad formátumú ablak támogatásának engedélyezéséhez újraindításra van szükség."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"A szabad formájú ablakok rendelkezésre állásának frissítéséhez újraindításra van szükség."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"A szabad formájú ablakok másodlagos kijelzőkön való engedélyezéséhez újraindításra van szükség."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Újraindítás most"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Újraindítás később"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Térbeli hangzás"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rózsaszín"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Ibolyaszín"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Kész"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Mentés"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Mégse"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Alapértelmezett"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Közepes"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Be"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Ki"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Be"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Hang: %1$d%% a bal oldalon, %2$d%% a jobb oldalon"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Hang: %1$d%% a jobb oldalon, %2$d%% a bal oldalon"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Eszköze neve látható a telepített alkalmazások számára. Mások is láthatják, ha csatlakoztatja telefonját más Bluetooth-eszközökhöz, Wi-Fi-hálózathoz, vagy ha Wi-Fi-hotspotot állít be."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Nyelvtani nem"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Nyelvtani nem kiválasztása"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Stream hallgatása"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Audiostream QR-kódjának beolvasása a(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközön való hallgatáshoz"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Megosztás közben a jelszó nem módosítható. Ha módosítani kívánja a jelszót, először kapcsolja ki a hang megosztását."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kód-szkennelő"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Keresési beállítások"</string>
 </resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index 8434f65..3369768 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Քնելու ժամը"</item>
-    <item msgid="4152450357280759894">"Մեքենայով"</item>
-    <item msgid="7096549258219399423">"Ներկայության էֆեկտով"</item>
-    <item msgid="2760716776980432977">"Կառավարվող"</item>
-    <item msgid="601734478369121764">"Աստղ"</item>
-    <item msgid="6243809315432780521">"Օրացույց"</item>
-    <item msgid="4913577903148415331">"Ժամ"</item>
-    <item msgid="3653377604690057780">"Թատրոն"</item>
-    <item msgid="3843711267408385410">"Ծաղիկ"</item>
+    <item msgid="2750940760340557109">"Կիսալուսին"</item>
+    <item msgid="8513969636586738035">"Ավտոմեքենա"</item>
+    <item msgid="957392343846370509">"Մարդու միտքը"</item>
+    <item msgid="6734164279667121348">"Օրացույց"</item>
+    <item msgid="4139559120353528558">"Ժամացույց"</item>
+    <item msgid="5157711296814769020">"Լողափի հովանոց"</item>
+    <item msgid="6635328761318954115">"Վրան"</item>
+    <item msgid="1711994778883392255">"Ֆիլմի սյուժե"</item>
+    <item msgid="9097658401859604879">"Խաղային բարձակ"</item>
+    <item msgid="755931364157422565">"Հանտել"</item>
+    <item msgid="8894207806795738429">"Գնդակ նետող մարդ"</item>
+    <item msgid="2274801572149555103">"Ոտքով հարվածող մարդ"</item>
+    <item msgid="8795037201506843325">"Լող"</item>
+    <item msgid="3558421426169430451">"Քայլարշավի մասնակցող մարդ"</item>
+    <item msgid="7455070421232184932">"Գոլֆ"</item>
+    <item msgid="5841773092449126508">"Արհեստանոցի գործիքներ"</item>
+    <item msgid="4595330511709890409">"Թղթապանակ"</item>
+    <item msgid="8352738347856724389">"Աստղ"</item>
+    <item msgid="7082783098151998721">"Լոտոսի ծաղիկ"</item>
+    <item msgid="5772220259409264724">"Սուպերվայզեր"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index ee5fef3..d2d2d05 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Անջատված"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Անհայտ"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Նախադիտում"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR կոդ"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Փոքրացնել"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Մեծացնել"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Միշտ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Լսողական սարքի կարգավորումներ"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Դյուրանցում, լսողական սարքի համատեղելիություն"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Կարգավորումների հավաքածու"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Մասնագետի կողմից կազմված կարգավորումների հավաքածուներ չկան"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Չհաջողվեց թարմացնել կարգավորումների հավաքածուն"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Աուդիո ելք"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Աուդիո ելքի մասին"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Լեզվի ընտրությունն այս հավելվածի համար հասանելի չէ Կարգավորումներում։"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Լեզուն կարող է հավելվածում հասանելի լեզուների ցանկում չլինել։ Որոշ հավելվածներ կարող են չաջակցել այս կարգավորումը։"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Լեզու ընտրեք յուրաքանչյուր հավելվածի համար։"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Ձեր համակարգը, հավելվածները և կայքերն օգտագործում են ձեր նախընտրած լեզուներից առաջին աջակցվող լեզուն։"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Ձեր սարքը, հավելվածները և կայքերն օգտագործում են ձեր նախընտրած լեզուների ցանկից առաջին աջակցվող լեզուն։\n\nՇատ հավելվածներ նաև կօգտագործեն ձեր նախընտրած լեզվի տարածաշրջանը՝ ամսաթվերի և թվերի համապատասխան ձևաչափը, ինչպես նաև չափման միավորներն ընտրելու համար։ Ձեր տարածաշրջանը փոխելու համար ավելացրեք լեզուն, ապա ընտրեք ձեր նախընտրած տարածաշրջանը։"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Անցեք հավելվածի լեզուների կարգավորումներ՝ ընտրելու լեզու յուրաքանչյուր հավելվածի համար։"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Իմանալ ավելին հավելվածների լեզուների մասին"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Դարձնե՞լ համակարգի լեզուն %s"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Անջատված է"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}one{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}other{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Բեռնում…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Հավելվածները, որոնց հասանելի են մոտակա սարքերը, կարող են որոշել միացված սարքերի հարաբերական դիրքավորումը։"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Հավելվածները, որոնց հասանելի են մոտակա սարքերը, կարող են որոշել միացված սարքերի հարաբերական դիրքավորումը։"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Տեղադրության տվյալների օգտագործման թույլտվությունն անջատված է հավելվածների և ծառայությունների համար։ Ձեր սարքի տեղադրության տվյալները կարող են ուղարկվել փրկարար ծառայություններին, եթե դուք զանգեք կամ հաղորդագրություն գրեք արտակարգ իրավիճակների հեռախոսահամարով։"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Իմանալ ավելին տեղադրության կարգավորումների մասին"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Փոխելու համար անցեք ChromeOS-ի կարգավորումներ &gt; Գաղտնիություն և անվտանգություն &gt; Գաղտնիության կարգավորումներ &gt; Տեղորոշման թույլտվություն"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Դեմքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Դեմքով, մատնահետքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Դեմքով, մատնահետքերով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Ինքնության ստուգումը միացված է"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticator-ով հեռակա ապակողպում"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ժամացույցն ավելացված է"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Կարգավորեք ձեր ժամացույցը"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Իմանալ ավելին ժամացույցով ապակողպման մասին"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ավելացնել ժամացույց"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Հեռացնել ժամացույցը"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Մատնահետքով և դեմքով ապակողպում"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Դեմքով և մատնահետքով ապա­կողպում"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Դեմքով և մատնահետքով ապակողպում աշխատանքի համար"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Պահանջվում է կարգավորում"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Դեմքի և մատնահետքի նմուշներն ավելացվեցին"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Մասնավոր տարածքի կարգավորում…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Չհաջողվեց մասնավոր տարածք կարգավորել"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Նորից փորձել"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Ելք"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Մասնավոր տարածքն անհասանելի է։\nԴիտեք հնարավոր հետևանքները"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Դիտեք հնարավոր հետևանքները"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Ընտրե՞լ նոր կողպում մասնավոր տարածքի համար"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Դուք կարող եք կողպման նոր եղանակ սահմանել անմիջապես ձեր մասնավոր տարածքի համար կամ օգտագործել կողպման նույն եղանակը, որով ապակողպում եք ձեր սարքը"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Օգտագործել էկրանի կողպումը"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Վերագործարկե՞լ սարքը"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC-ի միջոցով մանրամասն մատյանի վարումը նախատեսված է ոչ միայն ծրագրավորման նպատակներով։ NFC-ի լրացուցիչ տվյալները ավելացվում են նաև վրիպակների մասին զեկույցներում, որոնք կարող են անձնական տեղեկություններ պարունակել։ Այս կարգավորումը փոխելու համար վերագործարկեք ձեր սարքը։"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Վերագործարկել"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Միացված է"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Անջատված է"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Արտաքին էկրան"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Արտաքին էկրանի օգտագործում"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Էկրանի լուծաչափ"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Արտաքին էկրանն անջատված է"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Պտտում"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Ստանդարտ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Եթե փոխեք էկրանի դիրքը կամ լուծաչափը, գործարկված հավելվածները կարող են փակվել"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Էկրանը հայելապատճենելու համար ձեր սարքը պետք է միացված լինի արտաքին էկրանի"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Այլ ընտրանքներ"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Հեռարձակում"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"հայելապատճենում"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Միացնել անլար էկրանը"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Հարմարվող"</string>
     <string name="brightness" msgid="6216871641021779698">"Պայծառության մակարդակ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Հարմարվող պայծառություն"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Հարմարվող պայծառության մասին"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Էկրանի պայծառությունն ավտոմատ կկարգավորվի՝ կախված միջավայրի պայմաններից և ձեր գործողություններից։ Դուք կարող եք տեղաշարժել սահիչը՝ թույլ տալով հարմարվող պայծառությանը հիշել ձեր կարգավորումները։"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Միացված է"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Անջատված է"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Տարբերակներ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Հատուկ գործառույթներ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Ֆիզիկական ստեղնաշար"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Օգտագործել էկրանի ստեղնաշարը"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Պահել էկրանին, երբ ֆիզիկական ստեղնաշարն ակտիվ է"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Կրկնակի սեղմման անտեսում"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Ստեղնաշարը անտեսում է միևնույն ստեղնի արագ սեղմումները, որոնք կրկնվում են <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> մվ-ի ընթացքում"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Դանդաղ ստեղներ"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Կարգավորում է ժամանակի տևողությունը, որից հետո ստեղնը արձագանքում է սեղմմանը՝ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> մվ"</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="2396247040177734245">"Կառավարեք մկնիկը ֆիզիկական ստեղնաշարի միջոցով։"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ցուցիչի լցման ոճը դարձնել դեղին"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ցուցիչի լցման ոճը դարձնել վարդագույն"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ցուցիչի լցման ոճը դարձնել կապույտ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Նշորդի ոճը"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Սպիտակ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Սև"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ընտրված չէ"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Սովորել հպահարթակի ժեստերը"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"հպահարթակ, մկնիկ, նշորդ, ոլորել, թերթել, աջ սեղմել, սեղմում, ցուցիչ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"սեղմել մկնիկի աջ կոճակը, հպել"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Օգտատիրոջ ընտրած՝ <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Խոսք"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Նշորդի արագությունը"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Մկնիկի ցուցիչի չափսը"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Փոքրացնել մկնիկի ցուցիչի չափսը"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Մեծացնել մկնիկի ցուցիչի չափսը"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Խաղերի կարգավորիչ"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Թրթռոցի վերաուղղորդում"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Ուղարկել թրթռոցը խաղի կարգավորիչին, եթե վերջինս միացված է"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Շարունակել"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Չեղարկել"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Խոշորացման կարգավորումներ"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Մեկ մատով տեղաշարժ"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Տեղաշարժեք խոշորացույցը 1 մատով"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Քաշեք մեկ մատով՝ էկրանին տեղաշարժվելու համար"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Տեղափոխեք խոշորացման ընդգրկույթը՝ մեկ մատով քաշելով։"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Տեղափոխեք խոշորացման ընդգրկույթը՝ երկու մատով քաշելով։"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Հասանելի չէ, երբ միայն էկրանի մի մասն է խոշորացվում"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Հպել որևէ կոճակի՝ մեծացնելու համար"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Արագ խոշորացրեք էկրանը՝ բովանդակությունն ավելի պարզ տեսնելու համար"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Խոշորացնելու համար՝&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Օգտագործեք դյուրանցումը&lt;br/&gt; {1,number,integer}. Հպեք էկրանին&lt;br/&gt; {2,number,integer}. Քաշեք երկու մատով՝ էկրանի վրա տեղաշարժվելու համար&lt;br/&gt; {3,number,integer}. Շարժեք երկու մատը՝ խոշորացումը կարգավորելու համար&lt;br/&gt; {4,number,integer}. Դյուրանցման միջոցով դադարեցրեք խոշորացումը&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Ժամանակավորապես խոշորացնելու համար՝&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Համոզվեք, որ խոշորացման համար նշված է լիաէկրան ռեժիմը&lt;br/&gt; {1,number,integer}. Օգտագործեք դյուրանցումը&lt;br/&gt; {2,number,integer}. Հպեք էկրանի որևէ մասի և պահեք&lt;br/&gt; {3,number,integer}. Քաշեք մատով՝ էկրանի վրա տեղաշարժվելու համար&lt;br/&gt; {4,number,integer}. Հեռացրեք մատը էկրանից՝ խոշորացումը դադարեցնելու համար"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Մեծացնելու համար՝&lt;/b&gt;&lt;br/&gt; {0,number,integer}․ Օգտագործեք դյուրանցումը՝ խոշորացումը սկսելու համար&lt;br/&gt; {1,number,integer}. Հպեք էկրանին&lt;br/&gt; {2,number,integer}. Քաշեք երկու մատով՝ էկրանի վրա տեղաշարժվելու համար&lt;br/&gt; {3,number,integer}. Շարժեք երկու մատը՝ խոշորացումը կարգավորելու համար&lt;br/&gt; {4,number,integer}. Օգտագործեք դյուրանցումը՝ խոշորացումը կանգնեցնելու համար&lt;br/&gt;&lt;br/&gt; Կարող եք նաև ժամանակավորապես մեծացնել և այլ գործողություններ կատարել։"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Մեծացնելու համար՝&lt;/b&gt;&lt;br/&gt; {0,number,integer}․ Օգտագործեք դյուրանցումը՝ խոշորացումը սկսելու համար&lt;br/&gt; {1,number,integer}. Հպեք էկրանին&lt;br/&gt; {2,number,integer}. Քաշեք մեկ կամ երկու մատով՝ էկրանի վրա տեղաշարժվելու համար&lt;br/&gt; {3,number,integer}. Շարժեք երկու մատը՝ խոշորացումը կարգավորելու համար&lt;br/&gt; {4,number,integer}. Օգտագործեք դյուրանցումը՝ խոշորացումը կանգնեցնելու համար&lt;br/&gt;&lt;br/&gt; Կարող եք նաև ժամանակավորապես մեծացնել և այլ գործողություններ կատարել։"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Երբ խոշորացումը միացված է, դուք կարող եք մեծացնել էկրանի մասշտաբը:\n\n"<b>"Մասշտաբը մեծացնելու համար"</b>"միացրեք խոշորացումը և հպեք էկրանի ցանկացած հատվածին:\n"<ul><li>"Ոլորելու համար 2 կամ ավելի մատները քաշեք էկրանի վրայով։"</li>\n<li>"Մասշտաբը փոխելու համար 2 կամ ավելի մատները մոտեցրեք միմյանց։"</li></ul>\n\n<b>"Մասշտաբը ժամանակավորապես փոխելու համար"</b>" միացրեք խոշորացումը, ապա հպեք էկրանի ցանկացած հատվածին և պահեք։\n"<ul><li>"Քաշեք՝ էկրանով մեկ շարժելու համար։"</li>\n<li>"Բարձրացրեք մատը՝ փոքրացնելու համար։"</li></ul>\n\n"Ստեղնաշարի կամ նավիգացիայի գոտու միջոցով հնարավոր չէ մեծացնել:"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Էջ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"«Հատուկ գործառույթներ» կոճակի դյուրանցում"</string>
@@ -2149,8 +2180,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Երկու մատով սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երկու մատը սահեցրեք վերև և պահեք։"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Երեք մատով սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երեք մատը սահեցրեք վերև և պահեք։"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Մատը սահեցրեք էկրանի ներքևից վերև։ Մեկ գործառույթից մյուսին անցնելու համար սահեցրեք վերև և պահեք։}one{Էկրանի ներքևից # մատը սահեցրեք վերև։ Մեկ գործառույթից մյուսին անցնելու համար # մատը սահեցրեք վերև և պահեք։}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>
@@ -2161,16 +2190,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Երկու մատով կրկնակի հպում էկրանին"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d անգամ արագ հպեք էկրանին։ Սա կարող է դանդաղեցնել սարքի աշխատանքը։"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d մատով կրկնակի հպում"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Երկու մատով {0,number,integer} անգամ արագ հպեք էկրանին"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Եռակի հպեք էկրանին"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"եռակի հպում"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Արագ հպեք էկրանին {0,number,integer} անգամ։ Այս դյուրանցումը կարող է դանդաղեցնել սարքի աշխատանքը։"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Լրացուցիչ"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Մատչելիության կոճակի համար կարգավորված է <xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը: Խոշորացումն օգտագործելու համար հպեք և պահեք Մատչելիության կոճակը, ապա ընտրեք խոշորացումը:"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Հատուկ գործառույթների ժեստի համար սահմանված է «<xliff:g id="SERVICE">%1$s</xliff:g>» հրահանգը: Մեծացրեք մասշտաբը՝ երկու մատը սահեցնելով էկրանի ներքևից վերքև և պահեք: Այնուհետև ընտրեք «Խոշորացում»:"</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Այս ծառայությունը նորմալ չի աշխատում:"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Հատուկ գործառույթների դյուրանցումներ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Ցույց տալ Արագ կարգավորումներում"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Կարմիր-կանաչ"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Կարմիր-կանաչ"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Կարմիր և կանաչ, կանաչի թույլ ընկալում"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Կարմիր և կանաչ, կարմիրի թույլ ընկալում"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Կապույտ-դեղին"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Մոխրագույնի երանգներ"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ինտենսիվություն"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Դեյտերանոմալիա"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Պրոտանոմալիա"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Հասանելի չէ մոխրագույնի երանգների ռեժիմի համար, կամ երբ գունաշտկումն անջատված է"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Դեյտերանոմալիա"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Պրոտանոմալիա"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Տրիտանոմալիա"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Հավելյալ խամրեցում"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Էկրանի հավելյալ խամրեցում"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Երկնագույն"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Դեղին"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Մանուշակագույն"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Թույլատրե՞լ «<xliff:g id="SERVICE">%1$s</xliff:g>» ծառայությանը կառավարել ձեր սարքը"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>-ին անհրաժեշտ է`"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Քանի որ ներածումն արգելափակված է ինչ-որ հավելվածի կողմից, Կարգավորումները չեն կարող հաստատել ձեր պատասխանը:"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը այս սարքն ամբողջությամբ վերահսկելու թույլտվություն է ուզում: Ծառայությունը կարող է կարդալ էկրանի տվյալները և գործել այն օգտատերերի անունից, որոնց հատուկ գործառույթներ են անհրաժեշտ: Հասանելիության այս մակարդակը նախատեսված չէ հավելվածների մեծամասնության համար:"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Ամբողջական վերահսկումն անհրաժեշտ է միայն այն հավելվածներին, որոնք օգնում են ձեզ հատուկ գործառույթներից օգտվելիս։"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Դիտել և կառավարել էկրանը"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Կարող է կարդալ էկրանի ողջ բովանդակությունը և ցուցադրել բովանդակություն այլ հավելվածների վրայից։"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Դիտել և կատարել գործողությունները"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Կարող է հետագծել ձեր գործողությունները հավելվածներում և սարքակազմի սենսորների վրա, ինչպես նաև հավելվածներում կատարել գործողություններ ձեր անունից։"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Թույլատրել"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Մերժել"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Անջատել"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ոչ մի ժամանակացույց}=1{Սահմանված է 1 ժամանակացույց}one{Սահմանված է # ժամանակացույց}other{Սահմանված է # ժամանակացույց}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Չանհանգստացնել"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Կարևոր ռեժիմներ"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Ավելացնել ռեժիմ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Կարգավորեք քնի, աշխատանքի, մեքենա վարելու և այլ հատուկ ռեժիմներ, որպեսզի հեռախոսը հնարավորինս քիչ խանգարի ձեզ սահմանված ժամերին"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Ստեղծեք ձեր սեփական ռեժիմը"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Ծանուցում ստանալ միայն կարևոր մարդկանցից և հավելվածներից"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Ստեղծել ժամանակացույց"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Ժամանակացույցի հիմքը"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Օրը և ժամը"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"«9:00 – 17:00, աշխատանքային օրեր»"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Օրացույցի միջոցառումներ"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{«{mode_1}» ռեժիմն ակտիվ է}=2{«{mode_1}» և «{mode_2}» ռեժիմներն ակտիվ են}=3{«{mode_1}», «{mode_2}» և «{mode_3}» ռեժիմներն ակտիվ են}one{«{mode_1}» և «{mode_2}» ռեժիմներն ու ևս #-ը ակտիվ են}other{«{mode_1}» և «{mode_2}» ռեժիմներն ու ևս #-ը ակտիվ են}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 ռեժիմ կարող է ավտոմատ միանալ}one{# ռեժիմ կարող է ավտոմատ միանալ}other{# ռեժիմ կարող է ավտոմատ միանալ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ՄԻԱՑՎԱԾ Է"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Կարգավորված չէ"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Անջատված է"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Ստեղծեք ռեժիմ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Հատուկ"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Միացնել"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Անջատել"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Ռեժիմը չի գտնվել"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ընդհատումների սահմանափակում"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Արգելափակել ընդհատումներն ու շեղումները"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Կարգավորել «<xliff:g id="MODE">%1$s</xliff:g>» ռեժիմը"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Միացրեք «Չանհանգստացնել» ռեժիմը"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Զարթուցիչներն ու մեդիայի ձայները"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ժամանակացույցներ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ժամանակացույցների ջնջում"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Ջնջել"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Վերանվանել"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Ջնջել"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Ջնջե՞լ «<xliff:g id="MODE">%1$s</xliff:g>» ռեժիմը"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Փոփոխել"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ժամանակա­ցույցներ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Ժամանակացույց"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Ավտոմատ միացնել"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Ավելացնել օրացույց"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Օգտագործել իմ օրացույցը"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Ժամանակացույց"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Սահմանեք ժամանակացույց"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Երբ ավտոմատ միացնել"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Միջոցառման ժամանակացույց"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Միացնել միջոցառումների ժամանակ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Որտեղ հրավերի պատասխանն է"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Ժամանակացույցն ըստ ժամանակի"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ժամանակացույց"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ժ <xliff:g id="MINUTES">%2$d</xliff:g> ր"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ժամանակացույց"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Թույլատրել ձայնային ազդանշանները"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Արգելափակել տեսողական ծանուցումները"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Թույլատրել տեսողական ազդանշանները"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Ծանուցումներ, որոնք միևնույն է կստանաք"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Լրացուցիչ գործողություններ"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Ծանուցումների զտիչներ"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Այլ կարգավորումներ"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Անջատված է}=1{Անջատված է / 1 ռեժիմ կարող է ավտոմատ միանալ}one{Անջատված է / # ռեժիմ կարող է ավտոմատ միանալ}other{Անջատված է / # ռեժիմ կարող է ավտոմատ միանալ}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Ցուցադրման կարգավորումներ"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Ցուցադրման տարբերակներ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Մոխրագույնի երանգներ"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"միացնել մուգ թեման"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Օպերացիոն համակարգն ու հավելվածները դարձրեք բաց տեքստով՝ մուգ ֆոնի վրա։ Դա կարող է աչքերին ավելի հաճելի լինել և նշանակալի կերպով տնտեսել մարտկոցի լիցքը որոշ սարքերում"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Առանց փոփոխությունների}=1{{effect_1}}=2{{effect_1} և {effect_2}}=3{{effect_1}, {effect_2} և {effect_3}}one{{effect_1}, {effect_2} ու ևս #-ը}other{{effect_1}, {effect_2} ու ևս #-ը}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Սահմանափակել ծանուցումները"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Ընդհատումները չեն զտվում"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Զտվող ծանուցումների ցուցադրման տարբերակներ"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Երբ «Չանհանգստացնել» ռեժիմը միացված է"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Անջատել ծանուցումների ձայնը"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"բացել ծանուցումը"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Թույլատրել ծանուցումների հետաձգումը"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Ծանուցման կետիկ հավելվածի պատկերակի վրա"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Ծանուցումների փաթեթներ"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Ամպիկներ"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Ամպիկներ"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Ցույց տալ այս զրույցն ամպիկներում"</string>
@@ -3608,9 +3652,9 @@
     <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="4737150709382859870">"Հարմարվող ծանուցումներ"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Օգտագործել հարմարվող ծանուցումները"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Եթե կարճ ժամանակահատվածում շատ ծանուցումներ ստանաք, ձեր հեռախոսը երկու րոպեով կիջեցնի ձայնը և կնվազեցնի ելնող ծանուցումների քանակը։ Սա չի վերաբերում զանգերին, զարթուցիչներին և կարևոր զրույցներին։ Բոլոր ծանուցումները տեսնելու համար պարզապես սահեցրեք մատը էկրանի վերևից ներքև։"</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_work" msgid="8823596456640216391">"Կիրառել աշխատանքային պրոֆիլների համար"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Կիրառել աշխատանքային պրոֆիլի հավելվածների նկատմամբ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR օգնության ծառայություններ"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Կատեգորիաներ"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Այլ"</string>
     <string name="no_channels" msgid="4716199078612071915">"Այս հավելվածը ծանուցումներ չի փակցրել"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Ցույց տալ չկիրառվող կատեգորիաները"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Հավելվածի լրացուցիչ կարգավորումները"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Ցույց տալ չկիրառվող կատեգորիաները"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Թաքցնել չկիրառվող կատեգորիաները"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Զրույցներ"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Բոլոր զրույցները"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"բոլոր զրույցները"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Կարևոր զրույցները"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"կարևոր զրույցներ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ոչ մեկը"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Հավելվածներ, որոնք կարող են ընդհատել"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Ընտրված հավելվածները"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ոչ մեկը"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Բոլորը"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ոչ մի հավելված չի կարող ընդհատել}=1{{app_1} հավելվածը կարող է ընդհատել}=2{{app_1} և {app_2} հավելվածները կարող են ընդհատել}=3{{app_1}, {app_2} և {app_3} հավելվածները կարող են ընդհատել}one{{app_1} և {app_2} հավելվածներն ու ևս # հավելված կարող են ընդհատել}other{{app_1} և {app_2} հավելվածներն ու ևս # հավելված կարող են ընդհատել}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (աշխատանքային)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Հաշվարկում…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Թույլատրել հավելվածներին փոխել «Չանհանգստացնել» ռեժիմի կարգավորումները"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Հավելվածներ, որոնք կարող են ընդհատել"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Ընտրեք այլ հավելվածներ"</string>
@@ -3784,6 +3832,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Կրկնվող զանգերի գործառույթը կարող է ընդհատվել"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Բոլոր մարդիկ"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Կրկնվող զանգեր"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Թույլատրել կրկնվող զանգեր"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ակտիվացնել «Միայն զարթուցիչը» ռեժիմը մեկ ժամով մինչև {time}}one{Ակտիվացնել «Միայն զարթուցիչը» ռեժիմը # ժամով մինչև {time}}other{Ակտիվացնել «Միայն զարթուցիչը» ռեժիմը # ժամով մինչև {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ակտիվացնել «Միայն զարթուցիչը» ռեժիմը մինչև <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>-ը"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Ակտիվացնել «Միշտ ընդհատել» ռեժիմը"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Վերանվանել"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Փոխել պատկերակը"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Փոխել պատկերակը"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Խմբագրման ռեժիմ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Ստեղծեք ռեժիմ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Հատուկ ռեժիմ"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Ռեժիմի անվանումը"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Օրացույցի միջոցառումներ"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"«Քնի ժամ» ծրագիր"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Մեքենա վարելիս"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Հավելվածի կարգավորումներ"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Տեղեկություններ և կարգավորումներ <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածում"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Կառավարվում է <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածի կողմից"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Անջատե՞լ <xliff:g id="MODE_NAME">%1$s</xliff:g>ը"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Այս ռեժիմը երբեք չի միանա անջատված ժամանակ"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Անջատել"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Միացնե՞լ <xliff:g id="MODE_NAME">%1$s</xliff:g>ը"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Այս ռեժիմը կարող է ավտոմատ միանալ կարգավորումների հիման վրա"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Միացնել"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Սահմանեք ռեժիմ, որը հետևում է սովորական ժամանակացույցի կարգավորումներին"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Սահմանեք ռեժիմ՝ օրացույցի միջոցառումներն ու հրավերների պատասխանները համաժամացնելու համար"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Մշակեք հանգիստ քնի ծրագիր։ Սահմանեք զարթուցիչներ, խամրեցրեք էկրանը և արգելափակեք ծանուցումները։"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Առաջնահերթ ուշադրություն դարձրեք ուղևորության անվտանգությանը, որպեսզի ոչինչ չշեղի ճանապարհից"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Նախազգուշացում"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Փակել"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Կարծիք հայտնել սարքի մասին"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Պատյան"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Մարտկոց"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Կարգավորումների վահանակ"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Աշխատասեղանի ռեժիմի հարկադրված միացում"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Աշխատասեղանի փորձնական ռեժիմի հարկադրված միացում լրացուցիչ էկրանների վրա"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Միացնել կամայական ձևի պատուհանները"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Միացնել կամայական ձևի պատուհանները լրացուցիչ էկրանին"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Միացնել չփոփոխվող մասշտաբը բազմապատուհան ռեժիմում"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Թույլ է տալիս հավելվածները բացել չփոփոխվող մասշտաբով բազմապատուհան ռեժիմում"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Չեղարկել մուգ ռեժիմի պարտադիր միացումը"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"բջջային ինտերնետ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Սարքի աշխատանքը բարելավելու համար հավելվածներն ու ծառայությունները նախկինի պես կարող են ցանկացած ժամանակ որոնել Wi‑Fi ցանցեր, նույնիսկ երբ Wi‑Fi-ն անջատված է։ Այս կարգավորումը կարելի է օգտագործել, օրինակ, տեղորոշում օգտագործող գործառույթներն ու ծառայությունները բարելավելու համար։ Սա կարող եք փոխել Wi‑Fi ցանցերի որոնման կարգավորումներում։"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Փոխել"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Միացած է"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ժամանակավոր կապ"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Ժամանակավորապես օգտագործվում է <xliff:g id="SUBNAME">%1$s</xliff:g> ցանցը"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Օգտագործել հավելվածների ամրացումը"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Օգտագործել մշակողի ընտրանքները"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Օգտագործել տպման ծառայությունը"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Թույլատրել մեկից ավելի օգտատերեր"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Թույլ տալ փոխել օգտատիրոջը"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"թույլ տալ, մի քանի, օգտատեր, թույլատրել, շատ"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"մի քանի, օգտատերեր, պրոֆիլներ, մարդիկ, հաշիվներ, փոխել հաշիվը, շատ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Օգտագործել անլար վրիպազերծումը"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Ընտրեք, թե ինչ եք ուզում տեսնել ձեր սարքի էկրանին, երբ ձեր պլանշետը դոկ-կայանում է։ Ձեր սարքը կարող է ավելի շատ էներգիա ծախսել, երբ էկրանապահ է օգտագործվում։"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Հարմարեցնել"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Անհատականացնել «<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>» էկրանապահը"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Կամայական ձևի պատուհանների ստեղծման աջակցումը միացնելու համար պահանջվում է վերաբեռնում։"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Լրացուցիչ էկրաններին համակարգչի ռեժիմը հարկադրաբար միացնելու համար պահանջվում է վերաբեռնում։"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Կամայական ձևի պատուհանների աջակցումը միացնելու համար պահանջվում է վերաբեռնում։"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Կամայական ձևի պատուհանների հասանելիությունը փոփոխելու համար պահանջվում է վերաբեռնում։"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Կամայական ձևի պատուհանները լրացուցիչ էկրանին միացնելու համար պահանջվում է վերաբեռնում։"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Վերաբեռնել հիմա"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Վերաբեռնել ավելի ուշ"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Տարածական հնչողություն"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Վարդագույն"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Ծիրանեգույն"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Մանուշակագույն"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Պատրաստ է"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Պահել"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Չեղարկել"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Կանխադրված"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Միջին"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Միացված է"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Անջատված է"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Միացված է"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Աուդիո %1$d%% ձախ, %2$d%% աջ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Աուդիո %1$d%% աջ, %2$d%% ձախ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Ձեր սարքի անունը տեսանելի է ձեր տեղադրած հավելվածներին։ Այն կարող են տեսնել օգտատերերը, երբ միանում եք Bluetooth սարքերի, Wi-Fi ցանցի, կամ կարգավորում եք Wi-Fi թեժ կետ։"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Քերականական սեռ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Ընտրեք քերականական սեռը"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Լսել հոսքը"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Սկանավորեք աուդիո հոսքի QR կոդը՝ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքով լսելու համար"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Փոխանցման ժամանակ հնարավոր չէ փոխել գաղտնաբառը։ Գաղտնաբառը փոխելու համար նախ անջատեք աուդիոյի փոխանցումը։"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR կոդերի սկաներ"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Որոնեք կարգավորումներում"</string>
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 60855a3..bf1b98c 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Waktu Tidur"</item>
-    <item msgid="4152450357280759894">"Mengemudi"</item>
-    <item msgid="7096549258219399423">"Imersif"</item>
-    <item msgid="2760716776980432977">"Dikelola"</item>
-    <item msgid="601734478369121764">"Bintang"</item>
-    <item msgid="6243809315432780521">"Kalender"</item>
-    <item msgid="4913577903148415331">"Waktu"</item>
-    <item msgid="3653377604690057780">"Teater"</item>
-    <item msgid="3843711267408385410">"Bunga"</item>
+    <item msgid="2750940760340557109">"Bulan sabit"</item>
+    <item msgid="8513969636586738035">"Mobil"</item>
+    <item msgid="957392343846370509">"Pikiran seseorang"</item>
+    <item msgid="6734164279667121348">"Kalender"</item>
+    <item msgid="4139559120353528558">"Jam"</item>
+    <item msgid="5157711296814769020">"Payung pantai"</item>
+    <item msgid="6635328761318954115">"Tenda"</item>
+    <item msgid="1711994778883392255">"Rol film"</item>
+    <item msgid="9097658401859604879">"Controller game"</item>
+    <item msgid="755931364157422565">"Barbel gym"</item>
+    <item msgid="8894207806795738429">"Seseorang melempar bola"</item>
+    <item msgid="2274801572149555103">"Seseorang menendang"</item>
+    <item msgid="8795037201506843325">"Renang"</item>
+    <item msgid="3558421426169430451">"Seseorang mendaki"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Alat workshop"</item>
+    <item msgid="4595330511709890409">"Tas kantor"</item>
+    <item msgid="8352738347856724389">"Bintang"</item>
+    <item msgid="7082783098151998721">"Bunga teratai"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 78c03ce..430aa12 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Ditangguhkan"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Tidak diketahui"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pratinjau"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Kode QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Buat lebih kecil"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Buat lebih besar"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Selalu"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Setelan alat bantu dengar"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Pintasan, kompatibilitas alat bantu dengar (HAC)"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preset"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Tidak ada preset yang diprogram oleh ahli audiologi Anda"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Tidak dapat memperbarui preset"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Output audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Tentang output audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Pemilihan bahasa untuk aplikasi ini tidak tersedia dari Setelan."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Bahasa mungkin berbeda dari bahasa yang tersedia di aplikasi. Beberapa aplikasi mungkin tidak mendukung setelan ini."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Setel bahasa untuk setiap aplikasi."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistem, aplikasi, dan situs menggunakan bahasa pertama yang didukung dalam daftar bahasa pilihan Anda."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Perangkat, aplikasi, dan situs menggunakan bahasa pertama yang didukung dalam daftar bahasa pilihan Anda.\n\nBanyak aplikasi juga akan menggunakan wilayah dari bahasa pilihan Anda untuk memformat tanggal, nomor, dan unit. Untuk mengubah wilayah Anda, tambahkan bahasa, lalu pilih wilayah pilihan Anda."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Untuk memilih bahasa bagi setiap aplikasi, buka setelan bahasa aplikasi."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Pelajari bahasa aplikasi lebih lanjut"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Ubah bahasa sistem menjadi %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Nonaktif"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktif / # aplikasi memiliki akses ke lokasi}other{Aktif / # aplikasi memiliki akses ke lokasi}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Memuat…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikasi dengan izin Perangkat di sekitar dapat menentukan posisi relatif perangkat terhubung."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikasi dengan izin perangkat di sekitar dapat menentukan posisi relatif perangkat terhubung."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Akses lokasi dinonaktifkan untuk aplikasi dan layanan. Lokasi perangkat Anda tetap dapat dikirimkan ke petugas tanggap darurat saat Anda menelepon atau mengirim SMS ke nomor darurat."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pelajari lebih lanjut Setelan lokasi"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Untuk mengubahnya, buka Setelan ChromeOS &gt; Privasi dan keamanan &gt; Kontrol privasi &gt; Akses lokasi"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Wajah dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Wajah, sidik jari, dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Wajah, sidik jari, dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Buka Kunci Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch ditambahkan"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Menyiapkan smartwatch"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Pelajari lebih lanjut Buka dengan Smartwatch"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tambahkan smartwatch"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Hapus smartwatch"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Buka dengan Sidik Jari &amp; Wajah"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Buka dengan Wajah &amp; Sidik Jari"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Buka dengan Wajah &amp; Sidik Jari untuk profil kerja"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Penyiapan diperlukan"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Wajah dan sidik jari ditambahkan"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Menyiapkan ruang privasi…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Tidak dapat menyiapkan ruang privasi"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Coba Lagi"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Keluar"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Ruang privasi tidak tersedia.\nLihat kemungkinan penyebab"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Lihat kemungkinan penyebab"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Pilih kunci baru untuk ruang privasi?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Anda dapat menyetel kunci baru hanya untuk ruang privasi, atau menggunakan kunci yang sama untuk membuka kunci perangkat"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gunakan kunci layar"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Mulai Ulang Perangkat?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Pencatatan log NFC detail dimaksudkan hanya untuk tujuan pengembangan. Data NFC tambahan disertakan dalam laporan bug, yang mungkin berisi informasi pribadi. Mulai ulang perangkat untuk mengubah setelan ini."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Mulai ulang"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Aktif"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Nonaktif"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Layar Eksternal"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Gunakan layar eksternal"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolusi layar"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Layar eksternal tidak terhubung"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotasi"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standar"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Mengubah rotasi atau resolusi dapat menghentikan aplikasi yang sedang berjalan"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Perangkat harus terhubung ke layar eksternal untuk mencerminkan layar Anda"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Opsi lainnya"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Transmisi"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"cermin"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Aktifkan layar nirkabel"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptif"</string>
     <string name="brightness" msgid="6216871641021779698">"Tingkat kecerahan"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Kecerahan adaptif"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Tentang kecerahan adaptif"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Kecerahan layar akan otomatis disesuaikan dengan lingkungan dan aktivitas Anda. Anda dapat menggeser tombol kecerahan secara manual untuk membantu fitur ini mempelajari preferensi Anda."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Aktif"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Nonaktif"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opsi"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Aksesibilitas"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Keyboard fisik"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Gunakan keyboard virtual"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Biarkan di layar meski keyboard fisik aktif"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tombol pantul"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Keyboard mengabaikan penekanan tombol yang sama secara berulang dan cepat dalam <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> md"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tombol lambat"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Menyesuaikan waktu yang diperlukan agar penekanan tombol aktif ke <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> md"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Gunakan keyboard fisik untuk mengontrol mouse."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ubah gaya isian pointer ke warna kuning"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ubah gaya isian pointer ke warna merah muda"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ubah gaya isian pointer ke warna biru"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Gaya goresan kursor"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Putih"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Hitam"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Tidak ada"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Pelajari gestur touchpad"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, kursor, scroll, geser, klik kanan, klik, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"klik kanan, ketuk"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Dipilih pengguna: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Ucapan"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Kecepatan kursor"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Skala kursor"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Turunkan skala kursor"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Tingkatkan skala kursor"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Pengendali Game"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Mengalihkan getaran"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Kirim getaran ke pengontrol game saat terhubung"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Tetap lanjutkan"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Batal"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Setelan pembesaran"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Penggeseran satu jari"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Gerakkan pembesar dengan 1 jari"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Tarik 1 jari untuk berpindah pada layar"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Pindahkan area pembesaran dengan menarik satu jari."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Pindahkan area pembesaran dengan menarik dua jari."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Tidak tersedia ketika hanya memperbesar sebagian layar"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Ketuk tombol untuk zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Perbesar layar dengan cepat untuk membuat konten terlihat lebih besar"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Untuk memperbesar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gunakan pintasan untuk memulai pembesaran&lt;br/&gt; {1,number,integer}. Ketuk layar&lt;br/&gt; {2,number,integer}. Tarik dengan 2 jari untuk berpindah pada layar&lt;br/&gt; {3,number,integer}. Cubit dengan 2 jari untuk menyesuaikan zoom&lt;br/&gt; {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Untuk memperbesar sementara:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Pastikan jenis pembesaran disetel ke layar penuh&lt;br/&gt; {1,number,integer}. Gunakan pintasan untuk memulai pembesaran&lt;br/&gt; {2,number,integer}. Sentuh lama di mana pun pada layar&lt;br/&gt; {3,number,integer}. Tarik dengan jari untuk berpindah pada layar&lt;br/&gt; {4,number,integer}. Angkat jari untuk menghentikan pembesaran"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Untuk memperbesar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gunakan pintasan untuk memulai pembesaran&lt;br/&gt; {1,number,integer}. Ketuk layar&lt;br/&gt; {2,number,integer}. Tarik 2 jari untuk berpindah pada layar&lt;br/&gt; {3,number,integer}. Cubit dengan 2 jari untuk menyesuaikan zoom&lt;br/&gt; {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran&lt;br/&gt;&lt;br/&gt; Anda juga dapat memperbesar sementara dan lainnya."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Untuk memperbesar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gunakan pintasan untuk memulai pembesaran&lt;br/&gt; {1,number,integer}. Ketuk layar&lt;br/&gt; {2,number,integer}. Tarik 1 atau 2 jari untuk berpindah pada layar&lt;br/&gt; {3,number,integer}. Cubit dengan 2 jari untuk menyesuaikan zoom&lt;br/&gt; {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran&lt;br/&gt;&lt;br/&gt; Anda juga dapat memperbesar sementara dan lainnya."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Jika pembesaran diaktifkan, Anda dapat memperbesar tampilan layar.\n\n"<b>"Untuk memperbesar tampilan"</b>", mulai pembesaran, lalu ketuk di bagian mana saja pada layar.\n"<ul><li>"Tarik dengan 2 jari atau lebih untuk melakukan scroll"</li>\n<li>"Cubit dengan 2 jari atau lebih untuk menyesuaikan pembesaran"</li></ul>\n\n<b>"Untuk memperbesar tampilan sementara"</b>", mulai pembesaran, lalu sentuh lama di bagian mana saja pada layar.\n"<ul><li>"• Tarik untuk menggeser layar"</li>\n<li>"• Angkat jari untuk memperkecil tampilan"</li></ul>\n\n"Anda tidak dapat memperbesar keyboard atau menu navigasi."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Halaman <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> dari <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Pintasan tombol aksesibilitas"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Ketuk tombol mengambang"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gestur aksesibilitas"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ketuk tombol aksesibilitas <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> di bagian bawah layar Anda. Sentuh lama tombol aksesibilitas untuk beralih ke fitur lain."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Geser ke atas dari bawah layar dengan 2 jari.\n\nUntuk beralih ke fitur lain, geser ke atas dengan 2 jari dan tahan."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Geser ke atas dari bawah layar dengan 3 jari.\n\nUntuk beralih ke fitur lain, geser ke atas dengan 3 jari dan tahan."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Geser ke atas dari bagian bawah layar. Untuk beralih ke fitur lain, geser ke atas dan tahan.}other{Geser ke atas dengan # jari dari bagian bawah layar. Geser ke atas dengan # jari dan tahan untuk beralih ke fitur lain.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Opsi lainnya"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Pelajari lebih lanjut <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tombol volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tombol volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tekan dan tahan kedua tombol volume"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ketuk dua kali layar dengan dua jari"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Ketuk dua kali dengan %1$d jari"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ketuk layar dua kali dengan cepat menggunakan %1$d jari"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Ketuk tiga kali"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ketuk layar %1$d kali dengan cepat (mungkin memperlambat perangkat Anda)"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Ketuk dua kali dengan %1$d jari"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ketuk cepat layar sebanyak {0,number,integer} kali dengan dua jari"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ketuk layar tiga kali"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ketuk tiga kali"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ketuk layar dengan cepat {0,number,integer} kali. Pintasan ini mungkin memperlambat perangkat Anda"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Lanjutan"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tombol Aksesibilitas disetel ke <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan fitur pembesaran, sentuh lama tombol Aksesibilitas, kemudian pilih pembesaran."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gestur aksesibilitas disetel ke <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan pembesaran, geser ke atas dengan dua jari dari bagian bawah layar dan tahan. Lalu, pilih pembesaran."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Layanan ini tidak berfungsi."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Pintasan aksesibilitas"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Tampilkan di Setelan Cepat"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Merah-hijau"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Merah-hijau"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Merah-hijau, hijau lemah"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Merah-hijau, merah lemah"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Biru-kuning"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Hitam putih"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitas"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Lemah hijau, deuteranomali"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Lemah merah, protanomali"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Tidak tersedia untuk mode hitam putih atau saat koreksi warna dinonaktifkan"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomali"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomali"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Ekstra redup"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Buat layar ekstra redup"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Sian"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Kuning"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Izinkan <xliff:g id="SERVICE">%1$s</xliff:g> mengontrol perangkat Anda secara penuh?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> perlu:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Karena sebuah aplikasi menghalangi permintaan izin, Setelan tidak dapat memverifikasi tanggapan Anda."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> meminta kontrol penuh atas perangkat ini. Layanan dapat membaca layar dan bertindak atas nama pengguna yang memiliki kebutuhan aksesibilitas. Kontrol tingkat ini tidak sesuai untuk kebanyakan aplikasi."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Kontrol penuh sesuai untuk aplikasi yang mendukung kebutuhan aksesibilitas Anda, tetapi tidak untuk sebagian besar aplikasi."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Melihat dan mengontrol layar"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Membaca semua konten di layar dan menampilkan konten di atas aplikasi lain."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Menampilkan dan melakukan tindakan"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Melacak interaksi Anda dengan aplikasi atau sensor hardware, dan berinteraksi dengan aplikasi untuk Anda."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Izinkan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Nonaktifkan"</string>
@@ -2980,7 +3000,7 @@
     <string name="user_list_title" msgid="1387379079186123404">"Pengguna &amp; profil"</string>
     <string name="user_add_user_or_profile_menu" msgid="305851380425838287">"Tambahkan pengguna atau profil"</string>
     <string name="user_summary_restricted_profile" msgid="451650609582185813">"Profil dibatasi"</string>
-    <string name="user_summary_not_set_up" msgid="4602868481732886115">"Tidak disiapkan"</string>
+    <string name="user_summary_not_set_up" msgid="4602868481732886115">"Belum disetel"</string>
     <string name="user_summary_restricted_not_set_up" msgid="1658946988920104613">"Tidak disiapkan - Profil dibatasi"</string>
     <string name="user_summary_managed_profile_not_set_up" msgid="5739207307082458746">"Tidak disiapkan - Profil kerja"</string>
     <string name="user_owner" msgid="2079206733011361994">"Pemilik"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Tidak ada}=1{1 jadwal disetel}other{# jadwal disetel}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Jangan Ganggu"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Mode Prioritas"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Tambahkan mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimalkan gangguan dan pegang kendali perhatian Anda dengan mode untuk tidur, kerja, mengemudi, dan berbagai aktivitas lainnya."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Buat mode Anda sendiri"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Hanya dapatkan notifikasi dari aplikasi dan orang yang penting"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Setel jadwal"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Jadwal berdasarkan"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Hari dan waktu"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"09.00 - 17.00 hari kerja\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Acara kalender"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} aktif}=2{{mode_1} dan {mode_2} aktif}=3{{mode_1}, {mode_2}, dan {mode_3} aktif}other{{mode_1}, {mode_2}, dan # lainnya aktif}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode dapat otomatis diaktifkan}other{# mode dapat otomatis diaktifkan}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AKTIF"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Tidak disetel"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Dinonaktifkan"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Buat mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Kustom"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Aktifkan sekarang"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Nonaktifkan"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mode tidak ditemukan"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Batasi gangguan"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokir gangguan dan distraksi"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Siapkan <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktifkan mode Jangan Ganggu"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarm dan media boleh menginterupsi"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Jadwal"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Hapus jadwal"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Hapus"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Ganti nama"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Hapus"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Hapus mode \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Jadwal"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Jadwal"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Mengaktifkan secara otomatis"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Tambahkan kalender"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Gunakan kalender Anda"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Jadwal"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Setel jadwal"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Waktu aturan otomatis diaktifkan"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Jadwal acara"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Aktifkan selama acara untuk"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Lokasi balasan undangan"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Jadwal waktu"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Jadwal"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> jam, <xliff:g id="MINUTES">%2$d</xliff:g> mnt"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Jadwal"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Izinkan gangguan yang mengeluarkan suara"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokir gangguan visual"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Izinkan sinyal visual"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifikasi yang dapat menjangkau Anda"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Tindakan tambahan"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filter notifikasi"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Setelan lainnya"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Nonaktif}=1{Nonaktif/1 mode dapat aktif otomatis}other{Nonaktif/ # mode dapat aktif otomatis}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Setelan layar"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opsi tampilan"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Hitam putih"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"aktifkan tema gelap"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Gunakan pilihan teks terang dengan latar belakang gelap di OS dan aplikasi, yang mungkin akan lebih nyaman di mata dan menghemat baterai secara signifikan di beberapa perangkat"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Tidak ada perubahan tampilan}=1{{effect_1}}=2{{effect_1} dan {effect_2}}=3{{effect_1}, {effect_2}, dan {effect_3}}other{{effect_1}, {effect_2}, dan # lainnya}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Batasi notifikasi yang Anda terima"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Tidak ada gangguan yang difilter"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opsi tampilan untuk notifikasi yang difilter"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Saat mode Jangan Ganggu diaktifkan"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Tidak ada suara dari notifikasi"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"membuka notifikasi"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Izinkan penundaan notifikasi"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Titik notifikasi di ikon aplikasi"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paket notifikasi"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Balon"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balon"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Tampilkan percakapan ini dalam balon"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aplikasi ini tidak mendukung setelan yang ditingkatkan"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Setelan lainnya"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Setelan lainnya tersedia di dalam aplikasi ini"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notifikasi Adaptif"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gunakan notifikasi adaptif"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Saat Anda mendapatkan banyak notifikasi dalam waktu singkat, ponsel akan menurunkan volume dan meminimalkan jendela pop-up di layar hingga selama dua menit. Panggilan, alarm, dan percakapan prioritas akan tetap bergetar, mengeluarkan suara, atau ditampilkan di layar, serta semua notifikasi akan mudah ditemukan saat Anda menarik turun dari bagian atas layar."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Periode tunggu notifikasi"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gunakan pengurangan suara dan getaran notifikasi"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Saat Anda menerima banyak notifikasi dalam waktu singkat, perangkat akan menurunkan volumenya dan meminimalkan notifikasi hingga selama 2 menit. Panggilan, alarm, dan percakapan prioritas tidak akan terpengaruh. \n\nNotifikasi yang diterima saat pengurangan suara dan getaran diaktifkan dapat ditemukan dengan menarik layar ke bawah dari bagian atas layar."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Terapkan pada profil kerja"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Diterapkan untuk aplikasi profil kerja"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Layanan bantuan VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategori"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Lainnya"</string>
     <string name="no_channels" msgid="4716199078612071915">"Aplikasi ini belum memposting notifikasi"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Tampilkan kategori yang tidak digunakan"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Setelan tambahan di aplikasi"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Tampilkan kategori yang tidak digunakan"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Sembunyikan kategori yang tidak digunakan"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Percakapan"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Semua percakapan"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"semua percakapan"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Percakapan prioritas"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"percakapan prioritas"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Tidak ada"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikasi yang dapat mengganggu"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplikasi terpilih"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Tidak ada"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Semua"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Tidak ada aplikasi yang dapat mengganggu}=1{{app_1} dapat mengganggu}=2{{app_1} dan {app_2} dapat mengganggu}=3{{app_1}, {app_2}, dan {app_3} dapat mengganggu}other{{app_1}, {app_2}, dan # lainnya dapat mengganggu}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Kerja)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Menghitung…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Izinkan aplikasi mengganti"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikasi yang boleh menginterupsi"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pilih aplikasi lain"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Tidak ada yang boleh menginterupsi"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Tidak ada orang yang boleh menginterupsi"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Sebagian orang boleh menginterupsi"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Penelepon berulang dapat mengganggu"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Semua orang boleh menginterupsi"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Penelepon berulang"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Izinkan penelepon berulang"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ubah ke mode hanya alarm selama satu jam hingga {time}}other{Ubah ke mode hanya alarm selama # jam hingga {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ubah ke mode hanya alarm hingga <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Ubah ke mode selalu ganggu"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Ganti nama"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Ubah ikon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Ubah ikon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edit mode"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Buat mode"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode kustom"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nama mode"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Acara kalender"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutinitas waktu tidur"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Saat mengemudi"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Setelan aplikasi"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Info dan setelan di <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Dikelola oleh <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Nonaktifkan <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Mode ini tidak akan diaktifkan saat dinonaktifkan"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Nonaktifkan"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Aktifkan <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Mode ini mungkin diaktifkan otomatis berdasarkan setelan ini"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktifkan"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Menyetel mode yang mengikuti jadwal rutin"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Menyetel mode untuk menyinkronkan dengan acara kalender dan mengundang respons"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Merancang rutinitas tidur yang menenangkan. Menyetel alarm, meredupkan layar, dan memblokir notifikasi."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Memprioritaskan keamanan di jalan untuk mengemudi dengan fokus dan bebas distraksi"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Memblokir distraksi dan gangguan dari perangkat agar dapat fokus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Menghilangkan semua distraksi untuk mendapatkan lingkungan yang tenang"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Mempersonalisasi pengalaman dan setelan perangkat untuk setiap pengguna"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Meminimalkan gangguan dengan hanya mengizinkan orang dan aplikasi penting yang dapat menghubungi Anda"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Peringatan"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Tutup"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Kirim masukan tentang perangkat ini"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Casing"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterai"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel Setelan"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Paksa mode desktop"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Paksa mode desktop eksperimental di layar sekunder"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktifkan jendela freeform"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Aktifkan jendela freeform di layar sekunder"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktifkan ukuran tidak dapat diubah di multi-jendela"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Izinkan aplikasi yang ukurannya tidak dapat diubah di multi-jendela"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Aktifkan Gelap Otomatis"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"data seluler"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Untuk meningkatkan fungsi perangkat, aplikasi dan layanan tetap dapat memindai jaringan Wi-Fi kapan saja, bahkan saat Wi-Fi nonaktif. Ini dapat digunakan, misalnya, untuk meningkatkan kualitas fitur dan layanan berbasis lokasi. Anda dapat mengubahnya di setelan pemindaian Wi‑Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Ubah"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Terhubung"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Terhubung sementara"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Menggunakan <xliff:g id="SUBNAME">%1$s</xliff:g> untuk sementara"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Gunakan penyematan aplikasi"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Gunakan opsi developer"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Gunakan layanan cetak"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Izinkan multi-pengguna"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Izinkan peralihan pengguna"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"izinkan, beberapa, pengguna, izin, banyak"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"beberapa, pengguna, profil, orang, akun, tombol akses, banyak"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Gunakan proses debug nirkabel"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Pilih screensaver yang akan ditampilkan di layar saat tablet dipasang ke dok. Perangkat Anda mungkin menggunakan lebih banyak daya saat screensaver digunakan."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Sesuaikan"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Sesuaikan <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Perlu memulai ulang untuk mengaktifkan dukungan bentuk bebas."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Perlu memulai ulang untuk memaksa mode desktop di layar sekunder."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Perlu memulai ulang untuk mengaktifkan dukungan jendela bentuk bebas."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Perlu memulai ulang untuk memperbarui ketersediaan jendela freeform."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Perlu memulai ulang untuk mengaktifkan jendela freeform di layar sekunder."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Mulai ulang sekarang"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Mulai ulang nanti"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio Spasial"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Merah mawar"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Selesai"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Simpan"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Batal"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Default"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Sedang"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Aktif"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Nonaktif"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Aktif"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% kiri, %2$d%% kanan"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% kanan, %2$d%% kiri"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nama perangkat Anda dapat dilihat oleh aplikasi yang diinstal dan mungkin juga oleh orang lain saat Anda terhubung ke perangkat Bluetooth atau jaringan Wi-Fi, atau saat menyiapkan hotspot Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gender gramatikal"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Pilih Gender gramatikal"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Dengarkan streaming"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Pindai kode QR streaming audio agar dapat mendengarkan dengan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Tidak dapat mengedit sandi saat sedang membagikan audio. Untuk mengubah sandi, nonaktifkan berbagi audio terlebih dahulu."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Pemindai kode QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Telusuri Setelan"</string>
 </resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index 60b29d2..db59d66 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Svefntími"</item>
-    <item msgid="4152450357280759894">"Akstur"</item>
-    <item msgid="7096549258219399423">"Umlykjandi"</item>
-    <item msgid="2760716776980432977">"Í umsjón"</item>
-    <item msgid="601734478369121764">"Stjarna"</item>
-    <item msgid="6243809315432780521">"Dagatal"</item>
-    <item msgid="4913577903148415331">"Tími"</item>
-    <item msgid="3653377604690057780">"Leikhús"</item>
-    <item msgid="3843711267408385410">"Blóm"</item>
+    <item msgid="2750940760340557109">"Hálfmáni"</item>
+    <item msgid="8513969636586738035">"Bíll"</item>
+    <item msgid="957392343846370509">"Hugur manneskju"</item>
+    <item msgid="6734164279667121348">"Dagatal"</item>
+    <item msgid="4139559120353528558">"Klukka"</item>
+    <item msgid="5157711296814769020">"Sólhlíf"</item>
+    <item msgid="6635328761318954115">"Tjald"</item>
+    <item msgid="1711994778883392255">"Gamaldags filma"</item>
+    <item msgid="9097658401859604879">"Leikjafjarstýring"</item>
+    <item msgid="755931364157422565">"Líkamsræktarlóð"</item>
+    <item msgid="8894207806795738429">"Manneskja hendir bolta"</item>
+    <item msgid="2274801572149555103">"Manneskja sparkar"</item>
+    <item msgid="8795037201506843325">"Sund"</item>
+    <item msgid="3558421426169430451">"Manneskja í fjallgöngu"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Verkfæri"</item>
+    <item msgid="4595330511709890409">"Skjalataska"</item>
+    <item msgid="8352738347856724389">"Stjarna"</item>
+    <item msgid="7082783098151998721">"Lótusblóm"</item>
+    <item msgid="5772220259409264724">"Umsjónarmaður"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 4d24297..d408ab4 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Í bið"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Óþekkt"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Forskoðun"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-kóði"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Minnka"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Stækka"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alltaf"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Stillingar heyrnartækis"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Flýtileið, samhæfi við heyrnartæki"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Forstilling"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Heyrnarsérfræðingurinn þinn hefur ekki valið neinar forstillingar"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Tókst ekki að uppfæra forstillingu"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Hljóðúttak"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Um hljóðúttak"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Ekki er hægt að velja tungumál fyrir þetta forrit í stillingum."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Tungumál kann að vera frábrugðið tiltækum tungumálum í forritinu. Tiltekin forrit styðja hugsanlega ekki þessa stillingu."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Velja tungumál fyrir hvert forrit."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Kerfi, forrit og vefsvæði nota fyrsta studda tungumálið af lista kjörtungumála."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Tækið, forrit og vefsvæði nota fyrsta studda tungumálið af lista kjörtungumála.\n\nMörg forrit munu einnig nota landsvæði tungumálsins sem þú velur til að sníða dagsetningar, tölur og mælieiningar. Ef þú vilt skipta um landsvæði skaltu velja tungumál og velja síðan þitt svæði."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Til að velja tungumál fyrir hvert forrit skaltu fara í tungumálastillingar forrita."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Nánar um tungumál forrita"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Breyta kerfistungumáli í %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Slökkt"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Kveikt / # forrit hefur aðgang að staðsetningu}one{Kveikt / # forrit hefur aðgang að staðsetningu}other{Kveikt / # forrit hafa aðgang að staðsetningu}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Hleður…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Forrit með heimildir nálægra tækja geta ákvarðað afstæða staðsetningu tengdra tækja."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Forrit með heimildir nálægra tækja geta ákvarðað hlutfallslega stöðu tengdra tækja."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Slökkt er á aðgangi að staðsetningu fyrir forrit og þjónustur. Staðsetning tækisins kann samt að verða send til viðbragðsaðila þegar þú hringir eða sendir skilaboð í neyðarnúmer."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Nánar um staðsetningarstillingar"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Til að skipta skaltu opna „Stillingar ChromeOS &gt; Persónuvernd og öryggi &gt; Persónuverndarstillingar &gt; Aðgangur að staðsetningu“"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Andliti og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Andliti, fingrafari og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Andliti, fingraförum og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Taka úr lás með Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Úri bætt við"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Setja upp úr"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Nánar um opnun með úri"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Bæta við úri"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjarlægja úr"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingrafar og andlitskenni"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Andlits- og fingrafarskenni"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Andlits- og fingrafarskenni fyrir vinnu"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Þörf er á uppsetningu"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Andliti og fingraförum bætt við"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setur upp leynirými…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Ekki tókst að setja upp leynirými"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Reyna aftur"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Hætta"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Leynirými er ekki í boði.\nSkoða hugsanlegar ástæður"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Skoða hugsanlegar ástæður"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Velja nýjan lás fyrir leynirými?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Þú getur stillt nýjan lás bara fyrir leynirými, eða notað sama lás og þú notar til að opna tækið þitt"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Nota skjálás"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Endurræsa tæki?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ítarleg NFC-skráning er aðeins ætluð í þróunartilgangi. Viðbótargögn um NFC fylgja villutilkynningum sem kunna að innihalda lokaðar upplýsingar. Endurræstu tækið til að breyta þessari stillingu."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Endurræsa"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Kveikt"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Slökkt"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ytri skjár"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Nota ytri skjá"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Skjáupplausn"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Ytri skjár er ekki tengdur"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Snúningur"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Staðlað"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Breytingar á snúningi eða upplausn geta stöðvað forrit sem verið er að keyra"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Til að spegla skjá þarf tækið þitt að vera tengt við ytri skjá"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Fleiri valkostir"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Útsending"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"spegla"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Leyfa þráðlausan skjá"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Breytilegir"</string>
     <string name="brightness" msgid="6216871641021779698">"Birtustig"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Aðlögun birtustigs"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Um aðlögun birtustigs"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Birtustigi skjásins verður breytt sjálfkrafa í samræmi við umhverfið og hvað þú ert að gera. Þú getur fært sleðann til að hjálpa aðlögun birtustigs að læra inn á hvernig þú vilt hafa birtuna."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Kveikt"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Slökkt"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Valkostir"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Aðgengi"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Vélbúnaðarlyklaborð"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Nota skjályklaborð"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Haltu því á skjánum meðan vélbúnaðarlyklaborðið er virkt"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Endurkastslyklar"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Lyklaborðið hunsar snöggan endurtekinn innslátt á sama lykilinn innan <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Hægir lyklar"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Stillir tímann sem það tekur lyklainnslátt að virka í <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Notaðu sjálft lyklaborðið til að stjórna músinni."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Breyta stíl bendilfyllingar í gulan"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Breyta stíl bendilfyllingar í bleikan"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Breyta stíl bendilfyllingar í bláan"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Strokustíll bendils"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Hvítur"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Svartur"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ekkert"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Nánar um bendingar á snertifleti"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"snertiflötur, hljóðrásarhnappur, mús, bendill, fletta, strjúka, hægrismella, smella, bendill"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"hægrismella, ýta"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Valið af notanda: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Tal"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Hraði bendils"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Stærð bendils"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Minnka bendil"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Stækka bendil"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Leikjafjarstýring"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Endurbeina titringi"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Senda titring í leikjafjarstýringu þegar hún er tengd"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Halda samt áfram"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Hætta við"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Stillingar stækkunar"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Hliðrun með einum fingri"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Færðu stækkunarglerið með 1 fingri"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Dragðu með 1 fingri til að fara um skjáinn"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Færðu stækkaða svæðið með því að draga einn fingur."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Færðu stækkaða svæðið með því að draga tvo fingur."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ótiltækt þegar aðeins hluti skjásins er stækkaður"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Ýttu á hnapp til að stækka"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Auktu aðdráttinn á skjánum til að stækka efnið"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Gerðu eftirfarandi til að auka aðdrátt:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Notaðu flýtileið til að hefja stækkun&lt;br/&gt; {1,number,integer}. Ýttu á skjáinn&lt;br/&gt; {2,number,integer}. Dragðu 2 fingur til að ferðast um skjáinn&lt;br/&gt; {3,number,integer}. Færðu tvo fingur saman til að stilla aðdráttinn&lt;br/&gt; {4,number,integer}. Notaðu flýtileið til að hætta stækkun&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Til að auka aðdrátt tímabundið:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gakktu úr skugga um að stækkunaraðferðin sé stillt til að birtast á öllum skjánum&lt;br/&gt; {1,number,integer}. Notaðu flýtileið til að hefja stækkun&lt;br/&gt; {2,number,integer}. Haltu fingri hvar sem er á skjánum&lt;br/&gt; {3,number,integer}. Dragðu fingurinn til að ferðast um skjáinn&lt;br/&gt; {4,number,integer}. Lyftu fingri til að hætta stækkun"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Gerðu eftirfarandi til að auka aðdrátt:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Notaðu flýtileið til að hefja stækkun&lt;br/&gt; {1,number,integer}. Ýttu á skjáinn&lt;br/&gt; {2,number,integer}. Dragðu 2 fingur til að fara um skjáinn&lt;br/&gt; {3,number,integer}. Færðu 2 fingur saman til að stilla aðdráttinn&lt;br/&gt; {4,number,integer}. Notaðu flýtileið til að stöðva stækkun&lt;br/&gt;&lt;br/&gt; Þú getur líka aukið aðdrátt tímabundið og fleira."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Gerðu eftirfarandi til að auka aðdrátt:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Notaðu flýtileið til að hefja stækkun&lt;br/&gt; {1,number,integer}. Ýttu á skjáinn&lt;br/&gt; {2,number,integer}. Dragðu 1 eða 2 fingur til að fara um skjáinn&lt;br/&gt; {3,number,integer}. Færðu 2 fingur saman til að stilla aðdráttinn&lt;br/&gt; {4,number,integer}. Notaðu flýtileið til að stöðva stækkun&lt;br/&gt;&lt;br/&gt; Þú getur líka aukið aðdrátt tímabundið og fleira."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Þegar kveikt er á stækkun geturðu aukið aðdráttinn á skjánum.\n\n"<b>"Til að stækka"</b>" skaltu hefja stækkun og ýta svo hvar sem er á skjáinn.\n"<ul><li>"Dragðu með tveimur eða fleiri fingrum til að fletta"</li>\n<li>"Færðu tvo eða fleiri fingur saman til að stilla aðdrátt"</li></ul>\n\n<b>"Til að stækka tímabundið"</b>" skaltu hefja stækkun og halda síðan fingri hvar sem er á skjánum.\n"<ul><li>"Dragðu til að fara um skjáinn"</li>\n<li>"Lyftu fingrinum til að minnka aðdrátt"</li></ul>\n\n"Þú getur ekki stækkað á lyklaborðinu eða yfirlitsstikunni."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Síða <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> af <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Flýtileið fyrir aðgengishnapp"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Ýttu á fljótandi hnappinn"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Aðgengisbending"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ýttu á aðgengishnappinn <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> neðst á skjánum. Til að skipta á milli eiginleika skaltu halda aðgengishnappinum inni."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Strjúktu upp frá neðri hluta skjásins með tveimur fingrum.\n\nTil að skipta á milli eiginleika skaltu strjúka upp með tveimur fingrum og halda inni."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Strjúktu upp frá neðri hluta skjásins með þremur fingrum.\n\nTil að skipta á milli eiginleika skaltu strjúka upp með þremur fingrum og halda inni."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Strjúktu upp frá neðri hluta skjásins. Til að skipta á milli eiginleika skaltu strjúka upp og halda inni.}one{Strjúktu upp með # fingri frá neðri hluta skjásins. Til að skipta á milli eiginleika skaltu strjúka upp með # fingri og halda inni.}other{Strjúktu upp með # fingrum frá neðri hluta skjásins. Til að skipta á milli eiginleika skaltu strjúka upp með # fingrum og halda inni.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Fleiri valkostir"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Nánar um <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Hljóðstyrkstakkar"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"hljóðstyrkstakkar"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Haltu báðum hljóðstyrkstökkunum inni"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ýtt tvisvar á skjáinn með tveimur fingrum"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Ýtt tvisvar með %1$d-fingrum"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ýttu hratt á skjáinn tvisvar með %1$d fingrum."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Ýttu þrisvar"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ýttu hratt á skjáinn %1$d sinnum. Þetta kann að hægja á tækinu þínu."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Ýtt tvisvar með %1$d-fingrum"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ýtt hratt á skjáinn {0,number,integer} sinnum með tveimur fingrum"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ýta þrisvar á skjá"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ýttu þrisvar"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ýttu snögglega á skjáinn {0,number,integer} sinnum. Þessi flýtileið kann að hægja á tækinu"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Ítarlegt"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Aðgengishnappurinn er stilltur á <xliff:g id="SERVICE">%1$s</xliff:g>. Til að nota stækkun skaltu halda aðgengishnappnum inni og velja stækkun."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Aðgengisbending er stillt á <xliff:g id="SERVICE">%1$s</xliff:g>. Til að nota stækkun skaltu strjúka upp með tveimur fingrum frá neðri hluta skjásins og halda inni. Síðan skaltu velja stækkun."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Þessi þjónusta hætti að virka."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Aðgengisflýtileiðir"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Sýna í flýtistillingum"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rauðgræn"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rauðgræn"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rautt-grænt, grænt veikt"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rautt-grænt, rautt veikt"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blágul"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grátónar"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Styrkur"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Græn litblinda"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rauð litblinda"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ekki í boði í grátónastillingu eða þegar slökkt er á litaleiðréttingu"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Græn litblinda"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Rauð litblinda"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Blágul litblinda"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Mjög dökkt"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Gera skjáinn mjög dökkan"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Blágrænn"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Gulur"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Blárauður"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Viltu leyfa „<xliff:g id="SERVICE">%1$s</xliff:g>“ að hafa fulla stjórn yfir tækinu þínu?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> þarf að:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Stillingar geta ekki staðfest svarið þitt vegna þess að forrit er að fela heimildarbeiðni."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> biður um fulla stjórn yfir þessu tæki. Þjónustan getur lesið af skjánum og gripið til aðgerða fyrir hönd notenda sem hafa ekki aðgang. Þess konar stjórnun er óviðeigandi fyrir flest forrit."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full stjórn er viðeigandi fyrir forrit sem hjálpa þér ef þú hefur ekki aðgang, en ekki fyrir flest forrit."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Skoða og stjórna skjá"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Getur lesið allt efni á skjánum og birt efni yfir öðrum forritum."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Skoða og framkvæma aðgerðir"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Það getur fylgst með samskiptum þínum við forrit eða skynjara vélbúnaðar og haft samskipti við forrit fyrir þína hönd."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leyfa"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Hafna"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slökkva"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Engin}=1{1 áætlun stillt}one{# áætlun stillt}other{# áætlanir stilltar}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ónáðið ekki"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Forgangsstillingar"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Bæta stillingu við"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Lágmarkaðu truflanir og stjórnaðu því sem vekur athygli þína með stillingum fyrir svefn, vinnu, akstur og allt þar á milli."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Búðu til þína eigin stillingu"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Fáðu aðeins tilkynningar frá mikilvægum einstaklingum og forritum"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Stilla áætlun"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Áætlun byggist á"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dagur og tími"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„9 f.h. - 5 e.h. á virkum dögum“"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Dagatalsviðburðir"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} er virk}=2{{mode_1} og {mode_2} eru virkar}=3{{mode_1}, {mode_2} og {mode_3} eru virkar}one{{mode_1}, {mode_2} og # í viðbót eru virkar}other{{mode_1}, {mode_2} og # í viðbót eru virkar}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Ein stilling getur kveikt sjálfkrafa á sér}one{# stilling getur kveikt sjálfkrafa á sér}other{# stillingar geta kveikt sjálfkrafa á sér}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"KVEIKT"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ekki stillt"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Slökkt"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Búðu til stillingu"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Sérsniðin"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Kveikja núna"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Slökkva"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Stilling fannst ekki"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Takmarka truflanir"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Loka fyrir truflanir og áreiti"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Setja upp <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Kveikja á „Ónáðið ekki“"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Vekjarar og hljóð efnis mega trufla"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tímaáætlanir"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Eyða áætlunum"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Eyða"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Endurnefna"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Eyða"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Eyða stillingunni „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Breyta"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Áætlanir"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Áætlun"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Kveikja sjálfkrafa"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Bæta við dagatali"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Nota dagatalið þitt"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Áætlun"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Stilla áætlun"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Þegar á að kveikja sjálfvirkt"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Viðburðadagskrá"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Kveikja á viðburðum fyrir"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Þegar boðssvar er"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Tímaáætlun"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Áætlun"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> klst. og <xliff:g id="MINUTES">%2$d</xliff:g> mín."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Áætlun"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Leyfa truflanir sem gefa frá sér hljóð"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Útiloka sjónrænt áreiti"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Leyfa sjónræn merki"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Tilkynningar sem geta náð til þín"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Fleiri aðgerðir"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Tilkynningasíur"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Fleiri stillingar"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Slökkt}=1{Slökkt / Ein stilling getur kveikt sjálfkrafa á sér}one{Slökkt / # stilling getur kveikt sjálfkrafa á sér}other{Slökkt / # stillingar geta kveikt sjálfkrafa á sér}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Skjástillingar"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Birtingarvalkostir"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Grátónar"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"kveikja á dökku þema"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Stilltu stýrikerfið og forrit á að hafa ljósan texta á dökkum bakgrunni, sem getur verið þægilegra fyrir augun og hefur í för með sér umtalsverðan rafhlöðusparnað í sumum tækjum"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Engar skjábreytingar}=1{{effect_1}}=2{{effect_1} og {effect_2}}=3{{effect_1}, {effect_2} og {effect_3}}one{{effect_1}, {effect_2} og # í viðbót}other{{effect_1}, {effect_2} og # í viðbót}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Takmarkaðu það sem getur sent þér tilkynningu"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Engar truflanir eru síaðar"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Skjávalkostir fyrir síaðar tilkynningar"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Þegar kveikt er á „Ónáðið ekki“"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Ekkert hljóð frá tilkynningum"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"opna tilkynningu"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Leyfa þöggun tilkynninga"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Tilkynningapunktur á forritstákni"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Tilkynningapakkar"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Blöðrur"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Blöðrur"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Setja þetta samtal í blöðru"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Þetta forrit styður ekki endurbættar stillingar"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Fleiri stillingar"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Fleiri stillingar eru í boði í forritinu"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Breytilegar tilkynningar"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Nota breytilegar tilkynningar"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Þegar þú færð margar tilkynningar á skömmum tíma mun síminn þinn lækka hljóðstyrk og fækka sprettigluggum á skjánum í allt að tvær mínútur. Símtöl, vekjarar og forgangssamtöl halda áfram að titra, spila hljóð eða birtast á skjánum og þú getur auðveldlega séð allar tilkynningar með því að strjúka niður frá efsta hluta skjásins."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Fækkun tilkynninga"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Nota tilkynningadempun"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Þegar þú færð margar tilkynningar á skömmum tíma mun tækið þitt lækka hljóðstyrk og fækka viðvörunum í allt að tvær mínútur. Þetta hefur ekki áhrif á símtöl, vekjara og forgangssamtöl. \n\nÞú getur fundið mótteknar tilkynningar meðan á dempun stendur með því að draga niður efst á skjánum."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Nota fyrir vinnusnið"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Nota fyrir forrit á vinnusniði"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Hjálparþjónusta sýndarveruleika"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Flokkar"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Annað"</string>
     <string name="no_channels" msgid="4716199078612071915">"Þetta forrit hefur ekki birt neinar tilkynningar"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Sýna ónotaða flokka"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Fleiri stillingar í forritinu"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Sýna ónotaða flokka"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Fela ónotaða flokka"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Samtöl"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Öll samtöl"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"öll samtöl"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Forgangssamtöl"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"forgangssamtöl"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Engin"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Forrit sem mega trufla"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valin forrit"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Engin"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Öll"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Engin forrit mega trufla}=1{{app_1} má trufla}=2{{app_1} og {app_2} mega trufla}=3{{app_1}, {app_2} og {app_3} mega trufla}one{{app_1}, {app_2} og # til viðbótar mega trufla}other{{app_1}, {app_2} og # til viðbótar mega trufla}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (vinnusnið)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Reiknar út…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Leyfa forritum að hnekkja"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Forrit sem mega trufla"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Veldu fleiri forrit"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ekkert má trufla"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Enginn má trufla"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Sumt fólk má trufla"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Endurteknar símhringingar geta valdið truflun"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Allt fólk má trufla"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Hringt endurtekið"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Leyfa endurtekin símtöl"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Skipta yfir í vekjara í aðeins eina klukkustund til kl. {time}}one{Skipta yfir í vekjara í aðeins # klukkustund til kl. {time}}other{Skipta yfir í vekjara í aðeins # klukkustundir til kl. {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Breyta í vekjara eingöngu til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Breyta í truflanir alltaf"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Gefa nýtt heiti"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Breyta tákni"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Breyta tákni"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Breyta stillingu"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Búðu til stillingu"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Sérsniðin stilling"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Heiti stillingar"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Dagatalsviðburðir"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Háttatímarútína"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Meðan á akstri stendur"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Forritastillingar"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Upplýsingar og stillingar í <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Stýrt af <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Slökkva á <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Það kviknar aldrei á þessari stillingu þegar slökkt er á henni"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Slökkva"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Virkja <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Kviknað gæti sjálfvirkt á þessari stillingu miðað við hvernig hún er stillt"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Kveikja"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Veldu stillingu sem fylgir reglulegri áætlun"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Veldu stillingu í samræmi við dagatalsviðburði og svör við boðum"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Búðu þér til róandi svefnvenjur. Stilltu vekjara, lækkaðu birtustig skjásins og lokaðu fyrir tilkynningar."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Settu öryggið í forgang við akstur án truflana"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Lokaðu fyrir áreiti og truflanir úr tækinu til að halda einbeitingu"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Útilokaðu allar truflanir og tryggðu þér rólegt umhverfi"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Sérsníddu upplifanir og stillingar tækisins fyrir ólíka notendur"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Dragðu úr truflunum með því að leyfa aðeins mikilvægu fólki og forritum að ná í þig"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Viðvörun"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Loka"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Senda ábendingar um þetta tæki"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Hulstur"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Rafhlaða"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Stillingasvæði"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Þvinga skjáborðsstillingu"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Þvinga tilraunaskjáborðsstillingu á öðrum skjá"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Virkja glugga á frjálsu sniði"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Virkja glugga á frjálsu sniði á aukaskjá"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Kveikja á „Ekki hægt að breyta stærð“ í mörgum gluggum"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Leyfir forritum sem ekki er hægt að breyta stærðinni á að opnast í mörgum gluggum"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Hnekkja dökku"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"farsímagögn"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Til að bæta tækjaupplifun geta forrit og þjónustur áfram leitað að WiFi-netum hvenær sem er, jafnvel þótt slökkt sé á WiFi. Þetta getur til dæmis nýst til að bæta eiginleika og þjónustur sem byggja á staðsetningu. Hægt er að breyta þessu í stillingum WiFi-leitar."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Breyta"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Tengt"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tímabundin tenging"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Notar <xliff:g id="SUBNAME">%1$s</xliff:g> tímabundið"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Nota forritsfestingu"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Nota forritunarkosti"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Nota prentþjónustu"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Leyfa marga notendur"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Leyfa skipti á notanda"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"leyfa, margir, notandi, leyfi, margir"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"margir, notendur, prófílar, fólk, reikningar, skipta, margt"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Nota þráðlausa villuleit"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Veldu það sem á að birta á skjánum á meðan spjaldtölvan er í dokkunni. Tækið kann að nota meiri orku þegar skjávarinn er notaður."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Sérsníða"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Sérsníða <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Endurræsingar er krafist til að kveikja á stuðningi við Freeform."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Endurræsingar er krafist til að þvinga skjáborðsstillingu á öðrum skjáum."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Endurræsingar er krafist til að kveikja á stuðningi við glugga á frjálsu sniði."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Endurræsingar er krafist til að uppfæra tiltækileika glugga á frjálsu sniði."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Endurræsingar er krafist til að virkja glugga á frjálsu sniði á aukaskjáum."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Endurræsa núna"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Endurræsa seinna"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Rýmishljóð"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rós"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Blárauður"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Fjólublár"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Lokið"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Vista"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Hætta við"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Sjálfgefið"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Miðlungs"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Kveikt"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Slökkt"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Kveikt"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Hljóð: %1$d%% vinstri, %2$d%% hægri"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Hljóð: %1$d%% hægri, %2$d%% vinstri"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Heiti tækisins er sýnilegt uppsettum forritum. Heiti þess er hugsanlega einnig sýnilegt öðru fólki þegar þú tengist Bluetooth-tækjum, WiFi-neti eða setur upp heitan WiFi-reit."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Kyn"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Veldu kyn"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Hlusta á streymi"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skannaðu QR-kóða hljóðstreymis til að hlusta með <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Ekki hægt að breyta aðgangsorði á meðan deilt er. Til að breyta aðgangsorðinu skaltu fyrst slökkva á hljóðdeilingu."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kóðaskanni"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Leitarstillingar"</string>
 </resources>
diff --git a/res/values-it-feminine/strings.xml b/res/values-it-feminine/strings.xml
new file mode 100644
index 0000000..b71790b
--- /dev/null
+++ b/res/values-it-feminine/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="show_dev_on" msgid="2840850085134853754">"Ora sei una sviluppatrice."</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"Non è necessario, sei già una sviluppatrice."</string>
+    <string name="storage_other_users" msgid="7017206190449510992">"Altre utenti"</string>
+    <string name="language_empty_list_user_restricted" msgid="8050367405839231863">"Non sei autorizzata a modificare la lingua del dispositivo."</string>
+    <string name="credentials_settings_not_available" msgid="7433088409177429600">"Le credenziali non sono disponibili per questa utente"</string>
+    <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Sei già connessa a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Sei già connessa a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connessa. Il traffico di rete sarà consentito solo quando sei connessa a questa VPN."</string>
+    <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratrice potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratrice per avere ulteriori informazioni su questo certificato.}other{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratrice potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratrice per avere ulteriori informazioni su questi certificati.}}"</string>
+    <string name="user_confirm_remove_self_title" msgid="926265330805361832">"Eliminare te stessa?"</string>
+    <string name="user_adding_new_user" msgid="7439602720177181412">"Aggiunta nuova utente…"</string>
+    <string name="other_user_category_title" msgid="7089976887307643217">"Altre utenti"</string>
+    <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Se rimuovi i privilegi amministrativi per questa utente, tu o un altro amministratore potrete concederglieli di nuovo in un secondo momento."</string>
+</resources>
diff --git a/res/values-it-masculine/strings.xml b/res/values-it-masculine/strings.xml
new file mode 100644
index 0000000..48199f9
--- /dev/null
+++ b/res/values-it-masculine/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="show_dev_on" msgid="2840850085134853754">"Ora sei uno sviluppatore."</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"Non è necessario, sei già uno sviluppatore."</string>
+    <string name="storage_other_users" msgid="7017206190449510992">"Altri utenti"</string>
+    <string name="language_empty_list_user_restricted" msgid="8050367405839231863">"Non sei autorizzato a modificare la lingua del dispositivo."</string>
+    <string name="credentials_settings_not_available" msgid="7433088409177429600">"Le credenziali non sono disponibili per questo utente"</string>
+    <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Sei già connesso a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Sei già connesso a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connesso. Il traffico di rete sarà consentito solo quando sei connesso a questa VPN."</string>
+    <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratore potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratore per avere ulteriori informazioni su questo certificato.}other{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratore potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratore per avere ulteriori informazioni su questi certificati.}}"</string>
+    <string name="user_confirm_remove_self_title" msgid="926265330805361832">"Eliminare te stesso?"</string>
+    <string name="user_adding_new_user" msgid="7439602720177181412">"Aggiunta nuovo utente…"</string>
+    <string name="other_user_category_title" msgid="7089976887307643217">"Altri utenti"</string>
+    <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Se rimuovi i privilegi amministrativi per questo utente, tu o un altro amministratore potrete concederglieli di nuovo in un secondo momento."</string>
+</resources>
diff --git a/res/values-it-neuter/strings.xml b/res/values-it-neuter/strings.xml
new file mode 100644
index 0000000..4bf5eed
--- /dev/null
+++ b/res/values-it-neuter/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2007 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="show_dev_on" msgid="2840850085134853754">"Ora sei unə sviluppatorə."</string>
+    <string name="show_dev_already" msgid="7041756429707644630">"Non è necessario, sei già unə sviluppatorə."</string>
+    <string name="storage_other_users" msgid="7017206190449510992">"Altrə utenti"</string>
+    <string name="language_empty_list_user_restricted" msgid="8050367405839231863">"Non sei autorizzatə a modificare la lingua del dispositivo."</string>
+    <string name="credentials_settings_not_available" msgid="7433088409177429600">"Le credenziali non sono disponibili per questə utente"</string>
+    <string name="vpn_replace_always_on_vpn_disable_message" msgid="4299175336198481106">"Sei già connessə a una rete VPN sempre attiva. Se ti connetti a un\'altra rete, la rete VPN attuale verrà sostituita e la modalità sempre attiva verrà disattivata."</string>
+    <string name="vpn_replace_vpn_message" msgid="1094297700371463386">"Sei già connessə a una rete VPN. Se ti connetti a un\'altra rete, la VPN attuale verrà sostituita."</string>
+    <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connessə. Il traffico di rete sarà consentito solo quando sei connessə a questa VPN."</string>
+    <string name="ssl_ca_cert_info_message" msgid="3111724430981667845">"{numberOfCertificates,plural, =1{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratorə potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratorə per avere ulteriori informazioni su questo certificato.}other{{orgName} ha installato un\'autorità di certificazione per il tuo profilo di lavoro. L\'amministratorə potrebbe monitorare l\'attività di rete lavorativa, inclusi siti web protetti, email e app.\n\nContatta l\'amministratorə per avere ulteriori informazioni su questi certificati.}}"</string>
+    <string name="user_confirm_remove_self_title" msgid="926265330805361832">"Eliminare te stessə?"</string>
+    <string name="user_adding_new_user" msgid="7439602720177181412">"Aggiunta nuovə utente…"</string>
+    <string name="other_user_category_title" msgid="7089976887307643217">"Altrə utenti"</string>
+    <string name="user_revoke_admin_confirm_message" msgid="9207187319308572958">"Se rimuovi i privilegi amministrativi per questə utente, tu o un altro amministratore potrete concederglieli di nuovo in un secondo momento."</string>
+</resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 490e53c..adbc721 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Riposo"</item>
-    <item msgid="4152450357280759894">"Alla guida"</item>
-    <item msgid="7096549258219399423">"Immersiva"</item>
-    <item msgid="2760716776980432977">"Gestita"</item>
-    <item msgid="601734478369121764">"Stella"</item>
-    <item msgid="6243809315432780521">"Calendario"</item>
-    <item msgid="4913577903148415331">"Tempo"</item>
-    <item msgid="3653377604690057780">"Teatro"</item>
-    <item msgid="3843711267408385410">"Fiore"</item>
+    <item msgid="2750940760340557109">"Mezza luna"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Mente di una persona"</item>
+    <item msgid="6734164279667121348">"Calendario"</item>
+    <item msgid="4139559120353528558">"Orologio"</item>
+    <item msgid="5157711296814769020">"Ombrellone da spiaggia"</item>
+    <item msgid="6635328761318954115">"Tenda"</item>
+    <item msgid="1711994778883392255">"Pellicola"</item>
+    <item msgid="9097658401859604879">"Controller di gioco"</item>
+    <item msgid="755931364157422565">"Manubrio da palestra"</item>
+    <item msgid="8894207806795738429">"Persona che lancia una palla"</item>
+    <item msgid="2274801572149555103">"Persona che tira un calcio"</item>
+    <item msgid="8795037201506843325">"Nuoto"</item>
+    <item msgid="3558421426169430451">"Persona che fa un\'escursione"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Strumenti per il workshop"</item>
+    <item msgid="4595330511709890409">"Valigetta"</item>
+    <item msgid="8352738347856724389">"Stella"</item>
+    <item msgid="7082783098151998721">"Fiore di loto"</item>
+    <item msgid="5772220259409264724">"Supervisore"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index edb143c..6061df8 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Sospeso"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Sconosciuto"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Anteprima"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Codice QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Rimpicciolisci"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Ingrandisci"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Impostazioni protesi uditive"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Scorciatoia, compatibilità con apparecchi acustici"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preset"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Non sono presenti preset programmati dal tuo audiologo"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Impossibile aggiornare preset"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Uscita audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Informazioni su uscita audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"La selezione della lingua per questa app non è disponibile nelle Impostazioni."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"La lingua potrebbe essere diversa dalle lingue disponibili nell\'app. Alcune app potrebbero non supportare questa impostazione."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Imposta la lingua di ogni app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Per il sistema, le app e i siti web viene usata la prima lingua supportata delle tue lingue preferite."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Per il dispositivo, le app e i siti web viene usata la prima lingua supportata dell\'elenco delle tue lingue preferite.\n\nPer molte app verrà usata anche la regione della tua lingua preferita per inserire il formato corretto di date, numeri e unità. Per modificare la regione, aggiungi una lingua e scegli la regione che preferisci."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Per selezionare una lingua per ogni app, vai alle impostazioni della lingua delle app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Scopri di più sulle lingue delle app"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Impostare la lingua di sistema in %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app ha accesso alla posizione}other{On / # app hanno accesso alla posizione}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Caricamento…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Le app con l\'autorizzazione Dispositivi nelle vicinanze possono stabilire la posizione relativa dei dispositivi connessi."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Le app con autorizzazione di accesso ai dispositivi nelle vicinanze possono stabilire la posizione relativa dei dispositivi connessi."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accesso alla posizione è disattivato per app e servizi. La posizione del dispositivo potrebbe essere comunque inviata ai servizi di emergenza se chiami o invii un SMS a un numero di emergenza."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Scopri di più sulle impostazioni di geolocalizzazione"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Per apportare modifiche, vai alle Impostazioni di ChromeOS &gt; Privacy e sicurezza &gt; Controlli per la privacy &gt; Accesso alla posizione"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Volto e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Volto, impronta e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Volto, impronte e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Verifica dell\'identità attiva"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Sblocco Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch aggiunto"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura l\'orologio"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Scopri di più su Sblocco dall\'orologio"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Aggiungi smartwatch"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Rimuovi smartwatch"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sblocco con il Volto e l\'Impronta"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Sblocco con il Volto e con l\'Impronta"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Sblocco con il Volto e l\'Impronta per lavoro"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configurazione richiesta"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Impronte e volto aggiunti"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurazione dello spazio privato in corso…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Impossibile configurare uno spazio privato"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Riprova"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Esci"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Lo spazio privato non è disponibile.\nVisualizza le possibili cause"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Visualizza le possibili cause"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Scegliere un nuovo blocco per lo spazio privato?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Puoi impostare un nuovo blocco solo per lo spazio privato o mantenere lo stesso che usi per sbloccare il dispositivo"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usa il blocco schermo"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vuoi riavviare il dispositivo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Il logging NFC dettagliato è a solo scopo di sviluppo. Vengono inclusi dati NFC aggiuntivi nelle segnalazioni di bug, che potrebbero contenere informazioni private. Riavvia il dispositivo per cambiare questa impostazione."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Riavvia"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"On"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Off"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Display esterno"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Usa display esterno"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Risoluzione del display"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Display esterno disconnesso"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotazione"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Se modifichi la rotazione o la risoluzione, le eventuali app in esecuzione potrebbero interrompersi"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Il dispositivo deve essere connesso a un display esterno per eseguire il mirroring dello schermo"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Altre opzioni"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Trasmissione"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"mirroring"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Attiva display wireless"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adattivi"</string>
     <string name="brightness" msgid="6216871641021779698">"Livello di luminosità"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Luminosità adattiva"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Informazioni sulla luminosità adattiva"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"La luminosità dello schermo verrà regolata automaticamente in base all\'ambiente e alle attività. Puoi spostare manualmente il cursore per far sì che la luminosità adattiva memorizzi le tue preferenze."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"On"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Off"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opzioni"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilità"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fisica"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Usa tastiera sullo schermo"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Tienila sullo schermo quando è attiva la tastiera fisica"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tasti rimbalzati"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"La tastiera ignora pressioni ripetute velocemente dello stesso tasto entro <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tasti lenti"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Regola il tempo di risposta per la pressione di un tasto su <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Usa la tastiera fisica per controllare il mouse"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Cambia riempim. puntatore in giallo"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Cambia riempim. puntatore in rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Cambia riempim. puntatore in blu"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stile tratto puntatore"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bianco"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Nero"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nessuno"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Impara i gesti con il touchpad"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursore, scorrimento, scorrere, clic con il tasto destro del mouse, clic, puntatore"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clic con il tasto destro del mouse, tocco"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Selezionato dall\'utente: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Voce"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocità del puntatore"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Scala puntatore"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Diminuisci scala puntatore"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aumenta scala puntatore"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Controller di gioco"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Reindirizza vibrazione"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Invia la vibrazione al controller di gioco quando è collegato"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continua comunque"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annulla"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Impostazioni ingrandimento"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Panning con un dito"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Muovi Lente d\'ingrandimento con 1 dito"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Trascina 1 dito per spostarti nella schermata"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Sposta l\'area di ingrandimento trascinando un dito."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Sposta l\'area di ingrandimento trascinando due dita."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Non disponibile quando viene ingrandita solo una parte dello schermo"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tocca un pulsante per eseguire lo zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Aumenta velocemente lo zoom sullo schermo per ingrandire i contenuti"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Per aumentare lo zoom:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa la scorciatoia per avviare l\'ingrandimento&lt;br/&gt; {1,number,integer}. Tocca lo schermo&lt;br/&gt; {2,number,integer}. Trascina 2 dita per spostarti sullo schermo&lt;br/&gt; {3,number,integer}. Pizzica con 2 dita per regolare lo zoom&lt;br/&gt; {4,number,integer}. Usa la scorciatoia per interrompere l\'ingrandimento&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Per aumentare lo zoom temporaneamente:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Assicurati che sia impostato il tipo di ingrandimento a schermo intero&lt;br/&gt; {1,number,integer}. Usa la scorciatoia per avviare l\'ingrandimento&lt;br/&gt; {2,number,integer}. Tocca e tieni premuto un punto qualsiasi dello schermo&lt;br/&gt; {3,number,integer}. Trascina il dito per spostarti sullo schermo&lt;br/&gt; {4,number,integer}. Solleva il dito per interrompere l\'ingrandimento"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Per aumentare lo zoom:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa la scorciatoia per avviare l\'ingrandimento.&lt;br/&gt; {1,number,integer}. Tocca lo schermo.&lt;br/&gt; {2,number,integer}. Trascina 2 dita per spostarti sullo schermo.&lt;br/&gt; {3,number,integer}. Pizzica con 2 dita per regolare lo zoom.&lt;br/&gt; {4,number,integer}. Utilizza la scorciatoia per interrompere l\'ingrandimento&lt;br/&gt;&lt;br/&gt; Puoi anche aumentare lo zoom temporaneamente e altro ancora."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Per aumentare lo zoom:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Usa la scorciatoia per avviare l\'ingrandimento.&lt;br/&gt; {1,number,integer}. Tocca lo schermo.&lt;br/&gt; {2,number,integer}. Trascina 1 o 2 dita per spostarti sullo schermo&lt;br/&gt; {3,number,integer}. Pizzica con 2 dita per regolare lo zoom.&lt;br/&gt; {4,number,integer}. Utilizza la scorciatoia per interrompere l\'ingrandimento&lt;br/&gt;&lt;br/&gt; Puoi anche aumentare lo zoom temporaneamente e altro ancora."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Quando è attivo l\'ingrandimento, puoi aumentare lo zoom sullo schermo.\n\n"<b>"Per eseguire lo zoom"</b>", avvia l\'ingrandimento, quindi tocca un punto qualsiasi sullo schermo.\n"<ul><li>"Trascina almeno due dita per scorrere"</li>\n<li>"Pizzica con almeno due dita per regolare lo zoom."</li></ul>\n\n<b>"Per ingrandire temporaneamente"</b>", avvia l\'ingrandimento, quindi tocca e tieni premuto un punto qualsiasi sullo schermo.\n"<ul><li>"Trascina per spostarti sullo schermo"</li>\n<li>"Solleva il dito per ridurre lo zoom"</li></ul>\n\n"Non puoi aumentare lo zoom sulla tastiera o nella barra di navigazione."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Pagina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> di <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Scorciatoia pulsante Accessibilità"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tocca il pulsante mobile"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto di accessibilità"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tocca il pulsante Accessibilità <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nella parte inferiore dello schermo. Per spostarti tra le funzionalità, tocca e tieni premuto il pulsante Accessibilità."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Scorri verso l\'alto dalla parte inferiore dello schermo con due dita.\n\nPer spostarti tra le funzionalità, scorri verso l\'alto con due dita e tieni premuto."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Scorri verso l\'alto dalla parte inferiore dello schermo con tre dita.\n\nPer spostarti tra le funzionalità, scorri verso l\'alto con tre dita e tieni premuto."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Scorri verso l\'alto dalla parte inferiore dello schermo. Per spostarti tra le funzionalità, scorri verso l\'alto e tieni premuto.}other{Scorri verso l\'alto con # dita dalla parte inferiore dello schermo. Per spostarti tra le funzionalità, scorri verso l\'alto con # dita e tieni premuto.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Altre opzioni"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Scopri di più su <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tasti del volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tasti del volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tieni premuti entrambi i tasti del volume"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tocca due volte lo schermo con due dita"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocca due volte con %1$d dita"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tocca rapidamente lo schermo due volte con %1$d dita"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocca tre volte"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tocca rapidamente lo schermo %1$d volte. L\'operazione potrebbe rallentare il dispositivo."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocca due volte con %1$d dita"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tocca rapidamente lo schermo {0,number,integer} volte con due dita"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocca 3 volte lo schermo"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocca tre volte"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tocca lo schermo {0,number,integer} volte in rapida successione. Questa scorciatoia potrebbe rallentare il dispositivo."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avanzate"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Il pulsante Accessibilità è impostato su <xliff:g id="SERVICE">%1$s</xliff:g>. Per utilizzare l\'ingrandimento, tocca e tieni premuto il pulsante Accessibilità, quindi seleziona l\'ingrandimento."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Il gesto di accessibilità è impostato per <xliff:g id="SERVICE">%1$s</xliff:g>. Per usare l\'ingrandimento, scorri con due dita verso l\'alto dalla parte inferiore dello schermo e tieni premuto. Dopodiché seleziona l\'ingrandimento."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Questo servizio non funziona correttamente."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Scorciatoie di accessibilità"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostra in Impostazioni rapide"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rosso-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rosso-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rosso-verde, ridotta percezione del verde"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rosso-verde, ridotta percezione del rosso"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blu-giallo"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Scala di grigi"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensità"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Ridotta percezione del verde, deuteranomalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Ridotta percezione del rosso, protanomalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Non disponibile per la modalità Scala di grigi o quando la correzione del colore è disattivata"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Attenuazione extra"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Usa l\'attenuazione extra per lo schermo"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Giallo"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Vuoi consentire a <xliff:g id="SERVICE">%1$s</xliff:g> di avere il controllo totale del tuo dispositivo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> deve:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Un\'app sta oscurando una richiesta di autorizzazione, pertanto Impostazioni non può verificare la tua risposta."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> richiede il totale controllo di questo dispositivo. Il servizio può leggere i contenuti sullo schermo e agire per conto di utenti con esigenze di accessibilità. Questo livello di controllo non è appropriato per la maggior parte delle app."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Il controllo totale è appropriato per le app che rispondono alle tue esigenze di accessibilità, ma non per gran parte delle app."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Visualizzare e controllare lo schermo"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Può leggere tutti i contenuti presenti sullo schermo e mostrare i contenuti sopra altre app."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Visualizzare ed eseguire azioni"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Può tenere traccia delle tue interazioni con un\'app o un sensore hardware e interagire con app per tuo conto."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Consenti"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rifiuta"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Disattiva"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nessuna}=1{1 pianificazione impostata}other{# pianificazioni impostate}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Non disturbare"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modalità priorità"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Aggiungi una modalità"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Riduci al minimo le distrazioni e tieni sotto controllo il livello della tua attenzione con le modalità per dormire, lavorare, guidare e qualsiasi altra cosa."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crea la tua modalità"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Ricevi soltanto le notifiche di app e persone importanti"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Imposta una programmazione"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Programmazione basata su"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Giorno e ora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00-17:00, giorni feriali\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Eventi nel calendario"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} è attiva}=2{{mode_1} e {mode_2} sono attive}=3{{mode_1}, {mode_2} e {mode_3} sono attive}other{{mode_1}, {mode_2} e altre # sono attive}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Può essere attivata automaticamente 1 modalità}other{Possono essere attivate automaticamente # modalità}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Non impostata"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Disattivata"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Crea una modalità"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizzato"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Attiva ora"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Disattiva"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modalità non trovata"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitare le interruzioni"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blocca le interruzioni e le distrazioni"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configura <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Attiva Non disturbare"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Sveglie e suoni multimediali possono interrompere"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Pianificazioni"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Elimina pianificazioni"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Elimina"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Rinomina"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Elimina"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vuoi eliminare la modalità \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Modifica"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Pianificazioni"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Pianificazione"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Attiva automaticamente"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Aggiungi un calendario"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Utilizza il calendario"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programma"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Imposta una programmazione"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Quando l\'attivazione deve essere automatica"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programmazione dell\'evento"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Attiva durante gli eventi per"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Dov\'è la risposta dell\'invito"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Programmazione dell\'orario"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programmazione"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Pianificazione"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Consenti le interruzioni sonore"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blocca interruzioni visive"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Consenti segnali visivi"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notifiche che possono arrivarti"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Azioni aggiuntive"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtri per le notifiche"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Altre impostazioni"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Off}=1{Off/Può essere attivata automaticamente 1 modalità}other{Off/Possono essere attivate automaticamente # modalità}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Impostazioni di visualizzazione"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opzioni di visualizzazione"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Scala di grigi"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"attiva tema scuro"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Scegli l\'opzione Testo chiaro su sfondo scuro per il sistema operativo e le app per non stancare gli occhi e consentire un notevole risparmio della batteria su alcuni dispositivi"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nessuna modifica del display}=1{{effect_1}}=2{{effect_1} e {effect_2}}=3{{effect_1}, {effect_2} e {effect_3}}other{{effect_1}, {effect_2} e altri #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limita gli elementi che possono inviarti notifiche"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nessuna interruzione filtrata"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Mostra opzioni per le notifiche filtrate"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Quando è attiva la modalità Non disturbare"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Notifiche senza audio"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"viene aperta la notifica"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Consenti posticipazione delle notifiche"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Indicatore di notifica su icona app"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Bundle di notifiche"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bolle"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bolle"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostra conversazione sotto forma di bolla"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Questa app non supporta le impostazioni avanzate"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Altre impostazioni"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Altre impostazioni sono disponibili all\'interno di quest\'app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notifiche adattive"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usa le notifiche adattive"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Quando ricevi molte notifiche in un breve periodo di tempo, lo smartphone abbasserà il volume e ridurrà al minimo i popup sullo schermo per un massimo di due minuti. Chiamate, sveglie e conversazioni prioritarie continueranno a essere segnalate con vibrazione, suoneria o verranno mostrate sullo schermo. Tutte le notifiche possono essere trovate facilmente scorrendo verso il basso dalla parte superiore dello schermo."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Attenuazione delle notifiche"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Usa attenuazione delle notifiche"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Quando ricevi molte notifiche in un breve periodo di tempo, il dispositivo abbasserà il volume e ridurrà al minimo gli avvisi per un massimo di 2 minuti. Non ci sono ripercussioni su chiamate, sveglie e conversazioni prioritarie. \n\nLe notifiche ricevute durante l\'attenuazione possono essere trovare facendo scorrere lo schermo dall\'alto verso il basso."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Applica ai profili di lavoro"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Applica alle app del profilo di lavoro"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servizi di supporto VR"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorie"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Altro"</string>
     <string name="no_channels" msgid="4716199078612071915">"L\'app non ha pubblicato alcuna notifica"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostra le categorie inutilizzate"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Altre impostazioni nell\'app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostra le categorie inutilizzate"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Nascondi le categorie inutilizzate"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversazioni"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Tutte le conversazioni"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"tutte le conversazioni"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversazioni prioritarie"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"Conversazioni prioritarie"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nessuna"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"App che possono interrompere"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"App selezionate"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nessuna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tutte"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nessuna app può interrompere}=1{{app_1} può interrompere}=2{{app_1} e {app_2} possono interrompere}=3{{app_1}, {app_2} e {app_3} possono interrompere}other{{app_1}, {app_2} e altre # possono interrompere}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (lavoro)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calcolo in corso…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Consenti alle app di ignorarla"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"App che possono interrompere"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Seleziona altre app"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niente può interrompere"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nessuno può interrompere"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Alcune persone possono interrompere"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"I chiamanti ricorrenti possono interrompere"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Tutte le persone possono interrompere"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Chiamate ripetute"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Consenti chiamate ripetute"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Passa alla modalità Solo sveglie per un\'ora, fino alle ore {time}}other{Passa alla modalità Solo sveglie per # ore, fino alle ore {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Cambia su Solo sveglie fino alle <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Cambia su Interrompi sempre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Rinomina"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Modifica icona"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Modifica icona"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modalità di modifica"</string>
+    <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>
+    <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>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Durante la guida"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Impostazioni app"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informazioni e impostazioni in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Funzionalità gestita dall\'app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Disattivare <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Questa modalità non si attiverà mai se disattivata"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Disattiva"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Attivare <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Questa modalità potrebbe attivarsi automaticamente in base alle relative impostazioni"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Attiva"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Imposta una modalità che segua una programmazione regolare"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Imposta una modalità per sincronizzare gli eventi nel calendario e le risposte agli inviti"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Progetta una routine del sonno rilassante. Imposta sveglie, diminuisci la luminosità dello schermo e blocca le notifiche."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dai la priorità alla sicurezza sulla strada per una guida concentrata e priva di distrazioni"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Elimina le distrazioni e le interruzioni dal tuo dispositivo per ottenere la concentrazione"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimina tutte le distrazioni per un ambiente tranquillo"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizza le esperienze e le impostazioni sui dispositivi per i vari utenti"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Riduci al minimo le interruzioni consentendo solo alle app e alle persone importanti di raggiungerti"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Avviso"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Chiudi"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Invia feedback sul dispositivo"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Custodia"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Riquadro delle impostazioni"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forza la modalità desktop"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forza la modalità desktop sperimentale su display secondari"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Attiva finestre a forma libera"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Attiva finestre forma libera su display secondario"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Attiva app non ridimensionabili in multi-finestra"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Consente la presenza di app non ridimensionabili in modalità multi-finestra"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Esegui override modalità Buio forzata"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dati mobili"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Per migliorare l\'esperienza con il dispositivo, le app e i servizi possono continuare a cercare reti Wi-Fi in qualsiasi momento, anche quando la connessione Wi-Fi non è attiva. Questo può essere utile, ad esempio, per migliorare funzionalità e servizi basati sulla posizione geografica. Puoi modificare questa preferenza nelle impostazioni relative alla ricerca di reti Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Modifica"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Connessa"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Connessa temporaneamente"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Utilizza temporaneamente <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usa Blocco app su schermo"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usa Opzioni sviluppatore"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usa servizio di stampa"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Consenti utenti multipli"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Consenti cambio utente"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"consentire, multiplo, utente, autorizzare, molti"</string>
     <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>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Scegli cosa visualizzare sullo schermo quando il tablet è agganciato alla base. Il dispositivo potrebbe consumare più energia quando viene usato un salvaschermo."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizza"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizza <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"È necessario riavviare per attivare il supporto del formato libero."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"È necessario riavviare per forzare la modalità desktop su display secondari."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"È necessario il riavvio per attivare il supporto delle finestre senza un formato."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"È richiesto il riavvio per aggiornare la disponibilità delle finestre a forma libera."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"È richiesto il riavvio per attivare le finestre a forma libera sui display secondari."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Riavvia ora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Riavvia più tardi"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio spaziale"</string>
@@ -5135,7 +5205,7 @@
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura il limite di velocità di download della rete"</string>
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"Nessun limite"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Disattiva limitazioni per i processi secondari"</string>
-    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Disattiva le limitazioni relative all\'utilizzo delle risorse di sistema per i processi figlio delle app"</string>
+    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Disattiva le limitazioni relative all\'utilizzo delle risorse di sistema per i processi secondari delle app"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Forza attivazione del ruolo Note"</string>
     <string name="enable_notes_role_summary" msgid="5495721409392395089">"Attiva le integrazioni di sistema per la creazione di note tramite il ruolo Note. Se il ruolo Note è già attivo, non succederà nulla. Richiede il riavvio."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Trasmissione"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Viola"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Fine"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Salva"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Annulla"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Predefinito"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% a sinistra, %2$d%% a destra"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% a destra, %2$d%% a sinistra"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Il nome del tuo dispositivo è visibile alle app installate. Potrebbe essere visibile anche ad altre persone quando ti connetti a dispositivi Bluetooth, a una rete Wi-Fi o configuri un hotspot Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Genere grammaticale"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Seleziona genere grammaticale"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ascolta lo stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scansiona il codice QR di uno stream audio da ascoltare con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Impossibile modificare la password durante la condivisione. Per modificarla, devi prima disattivare la condivisione audio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Scanner codici QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Cerca in Impostazioni"</string>
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index ee82d33..c386a68 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"מנוחה"</item>
-    <item msgid="4152450357280759894">"נהיגה"</item>
-    <item msgid="7096549258219399423">"ריכוז"</item>
-    <item msgid="2760716776980432977">"בשליטה"</item>
-    <item msgid="601734478369121764">"כוכב"</item>
-    <item msgid="6243809315432780521">"יומן"</item>
-    <item msgid="4913577903148415331">"שעה"</item>
-    <item msgid="3653377604690057780">"תיאטרון"</item>
-    <item msgid="3843711267408385410">"פרח"</item>
+    <item msgid="2750940760340557109">"חצי ירח"</item>
+    <item msgid="8513969636586738035">"רכב"</item>
+    <item msgid="957392343846370509">"תודעה של אדם"</item>
+    <item msgid="6734164279667121348">"יומן"</item>
+    <item msgid="4139559120353528558">"שעון"</item>
+    <item msgid="5157711296814769020">"שמשייה"</item>
+    <item msgid="6635328761318954115">"אוהל"</item>
+    <item msgid="1711994778883392255">"סרט צילום (פילם)"</item>
+    <item msgid="9097658401859604879">"בקר משחקים"</item>
+    <item msgid="755931364157422565">"משקולת יד דאמבל"</item>
+    <item msgid="8894207806795738429">"אדם זורק כדור"</item>
+    <item msgid="2274801572149555103">"אדם בועט"</item>
+    <item msgid="8795037201506843325">"שחייה"</item>
+    <item msgid="3558421426169430451">"אדם בטיול רגלי"</item>
+    <item msgid="7455070421232184932">"גולף"</item>
+    <item msgid="5841773092449126508">"כלי עבודה"</item>
+    <item msgid="4595330511709890409">"תיק נשיאה"</item>
+    <item msgid="8352738347856724389">"כוכב"</item>
+    <item msgid="7082783098151998721">"פרח לוטוס"</item>
+    <item msgid="5772220259409264724">"מפקח"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 4caee42..476ab06 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"בהשעיה"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"לא ידוע"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"תצוגה מקדימה"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"‏קוד QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"הקטנה"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"הגדלה"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"תמיד"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ההגדרות של מכשיר השמיעה"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"קיצור דרך, תאימות למכשירי שמיעה"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"הגדרה קבועה מראש"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"לא תוכנתו הגדרות קבועות מראש על ידי האודיולוג שלך"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"לא ניתן לעדכן את ההגדרה הקבועה מראש"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"פלט אודיו"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"מידע על פלט האודיו"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"בחירות השפה לאפליקציה הזו לא זמינה בהגדרות."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"השפה עשויה להיות שונה מהשפות הזמינות באפליקציה. יכול להיות שחלק מהאפליקציות לא תומכות בהגדרה הזו."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"כאן מגדירים את השפה של כל אפליקציה."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"מערכת ההפעלה, אפליקציות ואתרים יוגדרו לשפה הנתמכת הראשונה מתוך השפות שציינת כמועדפות."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"המכשיר שלך, האפליקציות והאתרים יוגדרו לשפה הנתמכת הראשונה מתוך רשימת השפות שציינת כמועדפות.\n\nאפליקציות רבות גם יפעלו לפי האזור של השפה שציינת כמועדפת בפורמט של תאריכים, מספרים ויחידות. כדי לשנות את האזור, צריך להוסיף שפה ואז לבחור את האזור המועדף."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"כדי להגדיר ידנית את השפה של אפליקציות מסוימות, אפשר לעבור לדף \'שפות של אפליקציות\'."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"מידע נוסף על שפות של אפליקציות"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏לשנות את שפת המערכת ל-%s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"כבוי"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ההגדרה פועלת / לאפליקציה אחת (#) יש גישה למיקום}one{ההגדרה פועלת / ל-# אפליקציות יש גישה למיקום}two{ההגדרה פועלת / ל-# אפליקציות יש גישה למיקום}other{ההגדרה פועלת / ל-# אפליקציות יש גישה למיקום}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"בטעינה…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"אפליקציות עם ההרשאה \'מכשירים בקרבת מקום\' יכולות להעריך את המיקום היחסי של המכשירים המחוברים."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"אפליקציות עם ההרשאה \'מכשירים בקרבת מקום\' יכולות להקבוע את המיקום היחסי של המכשירים המחוברים."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"הגישה למיקום מושבתת עבור אפליקציות ושירותים. אם מתקשרים למספר חירום או שולחים אליו הודעת טקסט, ייתכן שפרטי מיקום המכשיר יישלחו לכוחות ההצלה."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"מידע נוסף על הגדרות המיקום"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"‏כדי להחליף עוברים אל ההגדרות של ChromeOS‏ &gt; \'פרטיות ואבטחה\' &gt; \'אמצעי בקרה על פרטיות\' &gt; \'גישה למיקום\'"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"הפנים וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"הפנים, טביעת האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"הפנים, טביעות האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"‏ביטול הנעילה של Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"נוסף שעון"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"הגדרת השעון"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"מידע נוסף על ביטול נעילה עם השעון"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"הוספת השעון"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"הסרת השעון"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ביטול הנעילה בטביעת אצבע ופתיחה ע\"י זיהוי הפנים"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"פתיחה ע\"י זיהוי הפנים וביטול הנעילה בטביעת אצבע"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"פתיחה ע\"י זיהוי הפנים וביטול הנעילה בטביעת אצבע בפרופיל העבודה"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"צריך להגדיר ביטול נעילה בעזרת מידע ביומטרי"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"נוספו טביעות אצבע וזיהוי פנים"</string>
@@ -464,7 +468,7 @@
     <string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"צריך לגעת בלחצן ההפעלה בלי ללחוץ עליו"</string>
     <string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"איך מגדירים טביעת אצבע?"</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"החיישן נמצא בגב הטלפון. יש להשתמש באצבע המורה."</string>
-    <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"חיישן טביעות האצבע מופיע במסך. נצלם את טביעת האצבע שלך במסך הבא."</string>
+    <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"סימנו במסך איפה ממוקם חיישן טביעות האצבע. נצלם את טביעת האצבע שלך במסך הבא."</string>
     <string name="security_settings_udfps_enroll_find_sensor_start_button" msgid="3172268783620336357">"התחלה"</string>
     <string name="security_settings_udfps_enroll_a11y" msgid="1899453114050362235">"מזיזים את האצבע לאורך המסך כדי לאתר את החיישן. לוחצים לחיצה ארוכה על חיישן טביעות האצבע."</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="3065850549419750523">"איור המציג את המיקום של חיישן טביעת האצבע במכשיר"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"הגדרת המרחב הפרטי מתבצעת…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"לא ניתן להגדיר מרחב פרטי"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ניסיון נוסף"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"יציאה"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"המרחב הפרטי לא זמין.\nלהצגת סיבות אפשריות"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"הצגת הגורמים האפשריים"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"רוצה לבחור שיטת נעילה חדשה למרחב הפרטי?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"אפשר להגדיר שיטת נעילה חדשה למרחב הפרטי בלבד, או להשתמש באותה שיטה שמשמשת לביטול נעילת המכשיר"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"שימוש בביטול נעילת המסך"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"להפעיל את המכשיר מחדש?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"‏הרישום ביומן של פרטי NFC מיועד למטרות פיתוח בלבד. נתוני NFC נוספים נכללים בדוחות על באגים, שעשויים להכיל מידע פרטי. צריך להפעיל מחדש את המכשיר כדי לשנות את ההגדרה."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"הפעלה מחדש"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"מצב מופעל"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"מצב מושבת"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"מסך חיצוני"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"שימוש במסך החיצוני"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"רזולוציית המסך"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"המסך החיצוני לא מחובר"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"סיבוב"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"רגיל"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"שינוי של מידת הסיבוב או של הרזולוציה עלול להפסיק את כל האפליקציות שפועלות כרגע"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"כדי לשקף את המסך, המכשיר חייב להיות מחובר למסך חיצוני"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"אפשרויות נוספות"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"‏הפעלת Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"‏העברה (csat)"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"‏הפעלת תצוגת WiFi"</string>
@@ -971,7 +992,7 @@
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"‏יש להציב את קוד ה-QR במרכז החלון שלמטה כדי להוסיף את המכשיר אל “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"‏סריקת קוד QR"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"‏יש להציב את קוד ה-QR במרכז החלון שלמטה כדי להתחבר אל “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"‏כדי להצטרף לרשת Wi-Fi, עליך לסרוק את קוד ה-QR שלה במסך הזה"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"‏כדי להצטרף לרשת Wi-Fi, צריך לסרוק את קוד ה-QR שלה במסך הזה"</string>
     <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"‏שיתוף Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="6967364080214325016">"‏יש לסרוק את קוד ה-QR הזה בעזרת מכשיר אחר כדי להצטרף אל “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="5398619697898444311">"‏כדי להתחבר אל \"<xliff:g id="SSID">%1$s</xliff:g>\" צריך לסרוק את קוד ה-QR הזה"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"גוון ניתן להתאמה"</string>
     <string name="brightness" msgid="6216871641021779698">"רמת בהירות"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"בהירות אוטומטית"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"מידע על התאמה אוטומטית של הבהירות"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"בהירות המסך תותאם באופן אוטומטי לסביבה ולפעילויות שלך. עדיין אפשר לכוונן את הבהירות באופן ידני מפס ההזזה, ועם הזמן הבהירות האוטומטית תתבסס על ההעדפות שלך."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"פועל"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"כבויה"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"אפשרויות"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"נגישות"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"מקלדת פיזית"</string>
-    <string name="show_ime" msgid="4334255501724746849">"שימוש במקלדת שמופיעה במסך"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"תישאר במסך בזמן שהמקלדת הפיזית פעילה"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"מקשים חוזרים"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"המקלדת מתעלמת מלחיצות מהירות חוזרות על אותו המקש שנעשות תוך <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> אלפיות השנייה"</string>
     <string name="slow_keys" msgid="2891452895499690837">"מקשים איטיים"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"שינוי משך הזמן להפעלה של לחיצה על מקש ל-<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> אלפיות השנייה"</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="2396247040177734245">"אפשר להשתמש במקלדת הפיזית כדי לשלוט בעכבר."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"שינוי סגנון המילוי של המצביע לצהוב"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"שינוי סגנון המילוי של המצביע לוורוד"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"שינוי סגנון המילוי של המצביע לכחול"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"סגנון קו המצביע"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"לבן"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"שחור"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ללא"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"מידע על התנועות בלוח המגע"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"משטח-מגע, משטח מגע, עכבר, סמן, גלילה, החלקה, לחיצה ימנית, לחיצה, מצביע"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"לחיצה ימנית, הקשה"</string>
@@ -1947,7 +1973,7 @@
     <string name="trackpad_go_back_summary" msgid="4201901101085902768">"מחליקים ימינה או שמאלה עם שלוש אצבעות"</string>
     <string name="trackpad_go_home_title" msgid="2146525662148291552">"מעבר לדף הבית"</string>
     <string name="trackpad_go_home_summary" msgid="2222744701528360887">"מחליקים למעלה עם שלוש אצבעות"</string>
-    <string name="trackpad_recent_apps_title" msgid="8195970908411585445">"האפליקציות האחרונות"</string>
+    <string name="trackpad_recent_apps_title" msgid="8195970908411585445">"אפליקציות שהיו בשימוש לאחרונה"</string>
     <string name="trackpad_recent_apps_summary" msgid="2685092851677573794">"מחליקים למעלה עם שלוש אצבעות ומחזיקים"</string>
     <string name="trackpad_notifications_title" msgid="3521663305043747880">"התראות"</string>
     <string name="trackpad_notifications_summary" msgid="7663647367648690040">"מחליקים למטה עם שלוש אצבעות"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"המשתמש שנבחר: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"דיבור"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"מהירות המצביע"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"גודל המצביע"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"הקטנת גודל המצביע"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"הגדלת גודל המצביע"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"בקר משחק"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"הפניה אוטומטית של רטט"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"שליחת רטט אל בקר משחק כשמחובר"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"אני רוצה להמשיך בכל זאת"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ביטול"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"הגדרות ההגדלה"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"הזזה עם אצבע אחת"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"מזיזים את זכוכית המגדלת עם אצבע אחת"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"גוררים אצבע אחת כדי לנוע על פני המסך"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"גוררים אצבע אחת כדי להזיז את אזור ההגדלה."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"גוררים שתי אצבעות כדי להזיז את אזור ההגדלה."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"לא זמין בזמן הגדלה של רק חלק מהמסך"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"הקשה על לחצן כדי לשנות את מרחק התצוגה"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"כדי לראות טוב יותר את התוכן, אפשר להגדיל את התצוגה"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"‏&lt;b&gt;כדי להגדיל את התצוגה:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. משתמשים בקיצור הדרך כדי להתחיל בהגדלה&lt;br/&gt; {1,number,integer}. מקישים על המסך&lt;br/&gt; {2,number,integer}. גוררים 2 אצבעות על המסך כדי לזוז בו&lt;br/&gt; {3,number,integer}. עושים תנועת צביטה באמצעות 2 אצבעות כדי לשנות את מרחק התצוגה&lt;br/&gt; {4,number,integer}. משתמשים בקיצור הדרך כדי להפסיק את ההגדלה&lt;br/&gt;&lt;br/&gt; &lt;b&gt;כדי להגדיל את התצוגה באופן זמני:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. מוודאים שסוג ההגדלה הוא \'מסך מלא\'&lt;br/&gt; {1,number,integer}. משתמשים בקיצור הדרך כדי להתחיל בהגדלה&lt;br/&gt; {2,number,integer}. לוחצים לחיצה ארוכה במקום כלשהו במסך&lt;br/&gt; {3,number,integer}. גוררים את האצבע על המסך כדי לזוז בו&lt;br/&gt; {4,number,integer}. כדי להפסיק את ההגדלה, מרימים את האצבע"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"‏&lt;b&gt;כדי להגדיל את התצוגה:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. משתמשים במקש קיצור כדי להתחיל בהגדלה&lt;br/&gt; {1,number,integer}. מקישים על המסך&lt;br/&gt; {2,number,integer}. גוררים 2 אצבעות על המסך כדי לזוז בו&lt;br/&gt; {3,number,integer}. עושים תנועת צביטה עם 2 אצבעות כדי לשנות את מרחק התצוגה&lt;br/&gt; {4,number,integer}. אפשר להשתמש במקש קיצור כדי לעצור את ההגדלה&lt;br/&gt;&lt;br/&gt; ניתן גם להגדיל את התצוגה באופן זמני ועוד."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"‏&lt;b&gt;כדי להגדיל את התצוגה:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. משתמשים במקש קיצור כדי להתחיל בהגדלה&lt;br/&gt; {1,number,integer}. מקישים על המסך&lt;br/&gt; {2,number,integer}. גוררים אצבע אחת או שתיים על המסך כדי לזוז בו&lt;br/&gt; {3,number,integer}. עושים תנועת צביטה עם 2 אצבעות כדי לשנות את מרחק התצוגה&lt;br/&gt; {4,number,integer}. אפשר להשתמש במקש קיצור כדי לעצור את ההגדלה&lt;br/&gt;&lt;br/&gt; ניתן גם להגדיל את התצוגה באופן זמני ועוד."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"כשההגדלה מופעלת, ניתן להתקרב למסך.\n\n"<b>"כדי להתקרב,"</b>", מתחילים בהגדלה ולאחר מכן מקישים במקום כלשהו במסך.\n"<ul><li>"גוררים שתי אצבעות או יותר כדי לגלול"</li>\n<li>"עושים תנועת צביטה עם שתי אצבעות או יותר כדי לשנות את מרחק התצוגה"</li></ul>\n\n<b>"כדי להתקרב באופן זמני"</b>", מתחילים בהגדלה ולאחר מכן, לוחצים לחיצה ארוכה במקום כלשהו במסך.\n"<ul><li>"גוררים כדי לנוע במסך"</li>\n<li>"מרימים את האצבע כדי להתרחק"</li></ul>\n\n"לא ניתן להתקרב באמצעות המקלדת או סרגל הניווט."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"דף <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> מתוך <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"קיצור דרך באמצעות לחצן הנגישות"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"יש להחליק כלפי מעלה מתחתית המסך באמצעות שתי אצבעות.\n\nכדי לעבור בין תכונות, יש להחליק כלפי מעלה באמצעות שתי אצבעות ולהחזיק."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"יש להחליק כלפי מעלה מתחתית המסך באמצעות שלוש אצבעות.\n\nכדי לעבור בין תכונות, יש להחליק כלפי מעלה באמצעות שלוש אצבעות ולהחזיק."</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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"מקישים הקשה כפולה על המסך עם שתי אצבעות"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"‏מקישים %1$d פעמים במהירות על המסך. זה עלול להאט את פעולת המכשיר."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"‏הקשה כפולה עם %1$d אצבעות"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏מקישים במהירות על המסך {0,number,integer} פעמים עם שתי אצבעות"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"הקשה על המסך 3 פעמים"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"הקשה משולשת"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏מקישים במהירות על המסך {0,number,integer} פעמים. קיצור הדרך הזה עלול להאט את פעולת המכשיר"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"מתקדם"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"הלחצן \'נגישות\' מוגדר לשירות <xliff:g id="SERVICE">%1$s</xliff:g>. כדי להשתמש בהגדלה, יש ללחוץ לחיצה ארוכה על לחצן הנגישות ולאחר מכן לבחור בהגדלה."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"תנועת הנגישות מוגדרת לשירות <xliff:g id="SERVICE">%1$s</xliff:g>. כדי להשתמש בהגדלה, יש להחליק מעלה מהחלק התחתון של המסך באמצעות שתי אצבעות ולהחזיק. לאחר מכן יש לבחור באפשרות \'הגדלה\'."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"יש תקלה בשירות הזה."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"קיצורי דרך לנגישות"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"הצגה בהגדרות מהירות"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"אדום-ירוק"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"אדום-ירוק"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"אדום-ירוק, ירוק חלש"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"אדום-ירוק, אדום חלש"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"כחול-צהוב"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"גווני אפור"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"עוצמה"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ירוק חלש, דוטרנומליה"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"אדום חלש, פרוטנומליה"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"לא זמין במצב גווני אפור או כשתיקון הצבע מושבת"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"דוטרנומליה"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"פרוטנומליה"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"טריטנומליה"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"מעומעם במיוחד"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"הגדרת המסך כמעומעם במיוחד"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ציאן"</string>
     <string name="color_yellow" msgid="5957551912912679058">"צהוב"</string>
     <string name="color_magenta" msgid="8943538189219528423">"מגנטה"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"להעניק לשירות \'<xliff:g id="SERVICE">%1$s</xliff:g>\' שליטה מלאה במכשיר?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"‏<xliff:g id="SERVICE">%1$s</xliff:g> צריך אפשרות לבצע:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"יש אפליקציה שמסתירה את בקשת ההרשאה, ולכן להגדרות אין אפשרות לאמת את התשובה."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"השירות <xliff:g id="SERVICE">%1$s</xliff:g> מבקש שליטה מלאה במכשיר זה. השירות יכול לקרוא את המסך ולפעול בשמם של משתמשים בעלי צרכים של נגישות. רמה כזו של שליטה אינה מתאימה לרוב האפליקציות."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"האפשרות לשליטה מלאה במכשיר לא מתאימה לרוב האפליקציות, אלא רק לאפליקציות שעוזרות עם צורכי הנגישות שלך."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"הצגת המסך ושליטה בו"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"אפשרות לקריאת כל התוכן במסך ולהצגת תוכן מעל אפליקציות אחרות."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"הצגה וביצוע של פעולות"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"אפשרות למעקב אחר האינטראקציה שלך עם אפליקציות או חיישני חומרה, וביצוע אינטראקציה בשמך."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"אישור"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"עדיף שלא"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"השבתה"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{אין}=1{הוגדר לוח זמנים אחד}one{הוגדרו # לוחות זמנים}two{הוגדרו # לוחות זמנים}other{הוגדרו # לוחות זמנים}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"נא לא להפריע"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"מצבי עדיפות"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"הוספת מצב"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"התכונה מאפשרת לך לצמצם הסחות דעת ולהתמקד עם מצבים לשינה, לעבודה, לנהיגה וכל מה שביניהם."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"יצירה של מצב"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"קבלת התראות רק מאפליקציות ומאנשים חשובים"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"הגדרת לוח זמנים"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"לוח הזמנים מבוסס על"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"יום ושעה"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00 - 17:00 ימי חול\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"אירועים ביומן"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{מצב פעיל אחד ({mode_1})}=2{‫{mode_1} ו{mode_2} פעילים}=3{‫{mode_1}, {mode_2}, ו{mode_3} פעילים}one{‫{mode_1}, {mode_2} ועוד # פעילים}other{‫{mode_1}, {mode_2} ועוד # פעילים}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{מצב אחד יכול לפעול באופן אוטומטי}one{‫# מצבים יכולים לפעול באופן אוטומטי}two{‫# מצבים יכולים לפעול באופן אוטומטי}other{‫# מצבים יכולים לפעול באופן אוטומטי}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"מצב מופעל"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"לא הוגדר"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"מצב מושבת"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"יצירה של מצב"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"בהתאמה אישית"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"הפעלה"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"השבתה"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"לא נמצא מצב"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"הגבלת הפרעות"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"חסימה של הפרעות והסחות דעת"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"להגדרת <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"הפעלת מצב \'נא לא להפריע\'"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"שעונים מעוררים וצלילי מדיה יכולים להפריע"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"לוחות זמנים"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"מחיקת לוחות זמנים"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"מחיקה"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"שינוי השם"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"מחיקה"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"למחוק את מצב \'<xliff:g id="MODE">%1$s</xliff:g>\'?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"עריכה"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"לוחות זמנים"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"לוח זמנים"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"הפעלה אוטומטית"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"הוספת יומן"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"שימוש ביומן"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"לוח זמנים"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"הגדרת לוח זמנים"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"הגדרה של הפעלה אוטומטית"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"לוח הזמנים לאירוע"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"הפעלה במהלך אירועים כדי"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"במקום שבו נמצאת התשובה להזמנה"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"תזמון של לוח זמנים"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"לוח זמנים"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"‫<xliff:g id="HOURS">%1$d</xliff:g> שע\', <xliff:g id="MINUTES">%2$d</xliff:g> דק\'"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"לוח זמנים"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"אישור להפרעות עם צלילים"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"חסימת הפרעות חזותיות"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"הפעלת אותות חזותיים"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"התראות שיכולות להגיע אליך"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"פעולות נוספות"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"מסנני התראות"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"הגדרות נוספות"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{מושבת}=1{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות מצב אחד}one{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות # מצבים}two{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות # מצבים}other{מושבת/יכולה להתבצע הפעלה אוטומטית בעקבות # מצבים}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"הגדרות תצוגה"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"אפשרויות תצוגה"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"גווני אפור"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"הפעלת העיצוב הכהה"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"במערכת ההפעלה ובאפליקציות, כדאי להחליף להעדפה של טקסט בהיר על רקע כהה. העיצוב הזה פחות מאמץ את העיניים ומוביל לחיסכון משמעותי בסוללה במכשירים מסוימים"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{לא בוצעו שינויים באפשרויות התצוגה}=1{‏{effect_1}}=2{‫{effect_1} וגם {effect_2}}=3{‫{effect_1}, {effect_2} וגם {effect_3}}one{‫{effect_1}, {effect_2} ועוד #}other{‫{effect_1}, {effect_2} ועוד #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"הגבלת ההתראות"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"ללא סינון של הפרעות"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"אפשרויות תצוגה להתראות מסוננות"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"כשמצב \'נא לא להפריע\' פועל"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"התראות ללא צליל"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"פתיחת ההתראה"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"הפעלת האפשרות להעביר התראות למצב \'נודניק\'"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"סימן ההתראות בסמל האפליקציה"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"חבילות התראות"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"בועות"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"בועות"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"הוספת בועה לשיחה"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"התראות מותאמות"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"שימוש בהתראות מותאמות"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"כשמתקבלות הרבה התראות בפרק זמן קצר, הטלפון ינמיך את עוצמת הקול ויצמצם את כמות החלונות הקופצים על המסך למשך עד שתי דקות. התראות על שיחות, שעונים מעוררים ושיחות בעדיפות גבוהה ימשיכו להפעיל רטט, להשמיע צליל או להופיע על המסך ואפשר יהיה למצוא בקלות את כל ההתראות כשמושכים למטה מהחלק העליון של המסך."</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_work" msgid="8823596456640216391">"הפעלה בפרופילי העבודה"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"הפעלה באפליקציות של פרופיל העבודה"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‏שירותי סיוע של VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"קטגוריות"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"אחר"</string>
     <string name="no_channels" msgid="4716199078612071915">"האפליקציה הזו לא שלחה התראות"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"הצגת קטגוריות שלא בשימוש"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"הגדרות נוספות באפליקציה"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"הצגת קטגוריות שלא בשימוש"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"הסתרת קטגוריות שלא בשימוש"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"שיחות"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"כל השיחות"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"כל השיחות"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"שיחות בעדיפות גבוהה"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"שיחות בעדיפות גבוהה"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ללא"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"אפליקציות שיכולות להפריע"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"אפליקציות שנבחרו"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"אף אחת מהאפשרויות"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"הכול"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{אף אפליקציה לא יכולה להפריע}=1{האפליקציה {app_1} יכולה להפריע}=2{האפליקציות {app_1} וגם {app_2} יכולות להפריע}=3{האפליקציות {app_1}, {app_2} וגם {app_3} יכולות להפריע}one{האפליקציות {app_1}, {app_2} ועוד # יכולות להפריע}other{האפליקציות {app_1}, {app_2} ועוד # יכולות להפריע}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"‫<xliff:g id="APP_LABEL">%s</xliff:g> (עבודה)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"מתבצע חישוב…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"‎+‫<xliff:g id="NUMBER">%d</xliff:g>‎"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ניתן לאפשר לאפליקציות לבטל הגדרה זו"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"אפליקציות שיכולות להפריע"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"בחירת אפליקציות נוספות"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"מתקשרים חוזרים יכולים להפריע"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"כל אחד יכול להפריע"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"מתקשרים חוזרים"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"שיחות חוזרות מאותו מספר"</string>
@@ -3803,15 +3853,36 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{החלפה למצב \'התראות בלבד\' למשך שעה אחת עד {time}}one{החלפה למצב \'התראות בלבד\' למשך # שעות עד {time}}two{החלפה למצב \'התראות בלבד\' למשך שעתיים (#) עד {time}}other{החלפה למצב \'התראות בלבד\' למשך # שעות עד {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"מעבר למצב \'התראות בלבד\' עד <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"שינוי ל\'הפרעות בכל מצב\'"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"שינוי השם"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"שינוי הסמל"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"שינוי הסמל"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"מצב עריכה"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"יצירה של מצב"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"מצב מותאם אישית"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"שם המצב"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"אירועים ביומן"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"תרחיש לפני השינה"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"בזמן נהיגה"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"הגדרות של אפליקציות"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"המידע וההגדרות של <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"בניהול של <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"להשבית את <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"המצב הזה אף פעם לא יופעל כשהוא מושבת"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"השבתה"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"להפעיל את <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"יכול להיות שהמצב הזה יופעל באופן אוטומטי על סמך ההגדרות שלו"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"הפעלה"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"הגדרת מצב עם לוח זמנים קבוע"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"הגדרת מצב לסנכרון של אירועים ביומן ושליחת תגובות להזמנות"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"תכנון שגרת שינה רגועה. הגדרת שעונים מעוררים, עמעום המסך וחסימת התראות."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"מתעדפים את הבטיחות בדרכים ונמנעים מהסחות דעת בזמן נהיגה"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"אזהרה"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"סגירה"</string>
     <string name="device_feedback" msgid="5351614458411688608">"שליחת משוב על המכשיר הזה"</string>
     <string name="restr_pin_enter_admin_pin" msgid="4435410646541671918">"יש להזין את קוד הגישה של מנהל המכשיר"</string>
     <string name="switch_on_text" msgid="5664542327776075105">"פועל"</string>
-    <string name="switch_off_text" msgid="1315547447393646667">"מצב כבוי"</string>
+    <string name="switch_off_text" msgid="1315547447393646667">"מושבת"</string>
     <string name="nfc_setting_on" msgid="7701896496026725772">"התכונה פועלת"</string>
     <string name="nfc_setting_off" msgid="7142103438532732309">"התכונה כבויה"</string>
     <string name="screen_pinning_switch_on_text" msgid="6971386830247542552">"פועלת"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"נרתיק"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"סוללה"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"חלונית ההגדרות"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"אילוץ מצב שולחן עבודה"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"אילוץ מצב שולחן עבודה ניסיוני במסכים משניים"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"הפעלת מצב חופשי (חלונות צפים)"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"הפעלת מצב חופשי (חלונות צפים) במסך המשני"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"הפעלת אפליקציות שלא ניתן לשנות את גודלן בריבוי חלונות"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ההגדרה מאפשרת להפעיל בריבוי חלונות אפליקציות שלא ניתן לשנות את גודלן"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"‏שינוי התכונה SmartDark"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"חבילת גלישה"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"‏כדי לשפר את חוויית השימוש במכשיר, אפליקציות ושירותים יוכלו לחפש רשתות Wi-Fi בכל שלב, גם כאשר ה-Wi-Fi כבוי. ניתן להשתמש בכך, למשל, כדי לשפר תכונות ושירותים מבוססי מיקום. אפשר לשנות את זה בהגדרות של חיפוש נקודות Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"שינוי"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"מחובר"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"מחובר באופן זמני"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"עושה שימוש זמני ב<xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"שימוש בהצמדת אפליקציה"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"שימוש באפשרויות למפתחים"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"שימוש בשירות הדפסה"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"הרשאה למשתמשים מרובים"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"אישור למעבר בין משתמשים"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"אפשר, משתמשים, מרובים, אישור, רבים"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ריבוי, רבים, משתמשים, משתמשות, פרופילים, אנשים, אנשי קשר, חשבונות, חשבונות אישיים, החלפה, מעבר, שינוי, הרבה"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ניפוי באגים אלחוטי"</string>
@@ -5032,8 +5102,8 @@
     <string name="show_clip_access_notification_summary" msgid="474090757777203207">"הצגת הודעה בזמן גישה של אפליקציות לטקסט, לתמונות או לכל תוכן אחר שהעתקת"</string>
     <string name="all_apps" msgid="3054120149509114789">"כל האפליקציות"</string>
     <string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"אין אישור"</string>
-    <string name="uwb_settings_title" msgid="8578498712312002231">"‏תחום רחב סרט (UWB)"</string>
-    <string name="uwb_settings_summary" msgid="3074271396764672268">"‏עזרה בזיהוי המיקום היחסי של מכשירים עם תחום רחב סרט (UWB) בקרבת מקום"</string>
+    <string name="uwb_settings_title" msgid="8578498712312002231">"‏Ultra Wideband ‏(UWB)"</string>
+    <string name="uwb_settings_summary" msgid="3074271396764672268">"‏עזרה בזיהוי המיקום היחסי של מכשירים עם UWB בקרבת מקום"</string>
     <string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"‏כיבוי מצב טיסה לשימוש בתחום רחב סרט (UWB)"</string>
     <string name="uwb_settings_summary_no_uwb_regulatory" msgid="3465456428217979428">"‏UWB לא זמין במיקום הנוכחי"</string>
     <string name="thread_network_settings_title" msgid="4212301030523859220">"‏פרוטוקול Thread"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"אפשר לבחור מה יוצג במסך כשהטאבלט בעגינה. יכול להיות שהמכשיר ינצל יותר אנרגיה בזמן השימוש בשומר מסך."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"התאמה אישית"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"התאמה אישית של <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"צריך להפעיל מחדש כדי להפעיל את התמיכה במצב החופשי."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"צריך להפעיל מחדש כדי לאלץ את הצגת הגרסה למחשב במסכים המשניים."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"צריך להפעיל מחדש כדי להפעיל את התמיכה בשינוי הגודל והמיקום של החלונות."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"צריך להפעיל מחדש את המכשיר כדי להשתמש בתכונה \'מצב חופשי\' שמאפשרת להזיז, להקטין ולהגדיל חלונות צפים."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"צריך להפעיל מחדש את המכשיר כדי לאפשר לחלונות לצוף במצב חופשי במסכים המשניים."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"להפעיל מחדש עכשיו"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"להפעיל מחדש מאוחר יותר"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"אודיו מרחבי"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ורוד"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"מג\'נטה"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"סגול"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"סיום"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"שמירה"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ביטול"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ברירת המחדל"</string>
     <string name="contrast_medium" msgid="384414510709285811">"בינונית"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"מופעלת"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"מושבתות"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"מופעלות"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"‏אודיו %1$d%% משמאל, %2$d%% מימין"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"‏אודיו %1$d%% מימין, %2$d%% משמאל"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"‏המכשיר שלך גלוי לאפליקציות שהתקנת. כמו כן, ייתכן שאנשים אחרים יראו אותו בהתחברות למכשירי Bluetooth, לרשת Wi-Fi, או בהגדרת נקודת Wi-Fi לשיתוף אינטרנט."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"לשון הפנייה"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"בחירת לשון הפנייה"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"האזנה לשידור"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"‏סריקת קוד QR של שידור אודיו כדי להאזין עם <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"אי אפשר לערוך את הסיסמה בזמן השיתוף. כדי לשנות את הסיסמה, קודם צריך להשבית את שיתוף האודיו."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"‏סורק קודי QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"חיפוש בהגדרות"</string>
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index e439dfa..c18b546 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"就寝"</item>
-    <item msgid="4152450357280759894">"運転中"</item>
-    <item msgid="7096549258219399423">"臨場感"</item>
-    <item msgid="2760716776980432977">"管理対象"</item>
-    <item msgid="601734478369121764">"スター"</item>
-    <item msgid="6243809315432780521">"カレンダー"</item>
-    <item msgid="4913577903148415331">"時刻"</item>
-    <item msgid="3653377604690057780">"劇場"</item>
-    <item msgid="3843711267408385410">"花"</item>
+    <item msgid="2750940760340557109">"半月"</item>
+    <item msgid="8513969636586738035">"車"</item>
+    <item msgid="957392343846370509">"人の心"</item>
+    <item msgid="6734164279667121348">"カレンダー"</item>
+    <item msgid="4139559120353528558">"時計"</item>
+    <item msgid="5157711296814769020">"ビーチパラソル"</item>
+    <item msgid="6635328761318954115">"テント"</item>
+    <item msgid="1711994778883392255">"映画風"</item>
+    <item msgid="9097658401859604879">"ゲーム コントローラ"</item>
+    <item msgid="755931364157422565">"ジムのダンベル"</item>
+    <item msgid="8894207806795738429">"ボールを投げている人"</item>
+    <item msgid="2274801572149555103">"蹴っている人"</item>
+    <item msgid="8795037201506843325">"水泳"</item>
+    <item msgid="3558421426169430451">"ハイキングをしている人"</item>
+    <item msgid="7455070421232184932">"ゴルフ"</item>
+    <item msgid="5841773092449126508">"工具セット"</item>
+    <item msgid="4595330511709890409">"書類カバン"</item>
+    <item msgid="8352738347856724389">"星"</item>
+    <item msgid="7082783098151998721">"ハスの花"</item>
+    <item msgid="5772220259409264724">"スーパーバイザー"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 58de686..8d19da1 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"強制停止"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"不明"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"プレビュー"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR コード"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"縮小"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"拡大"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"常時"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"補聴器の設定"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ショートカット、補聴器両立性"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"プリセット"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"言語聴覚士によってプログラムされたプリセットはありません"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"プリセットを更新できませんでした"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"音声出力"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"音声出力について"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"このアプリの言語は [設定] から選択できません。"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"アプリで利用できない言語の可能性があります。一部のアプリはこの設定に対応していない可能性があります。"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"アプリごとに言語を設定できます。"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"システム、アプリ、ウェブサイトでは、ご指定の使用言語のうちサポートされている最初の言語が使用されます。"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"デバイス、アプリ、ウェブサイトでは、優先言語の一覧の中からサポートされている最初の言語が使用されます。\n\nその他の多くのアプリでも優先言語の地域を使用して、日付、数値、単位の形式を設定します。地域を変更するには、言語を追加してから、優先する地域を選択してください。"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"アプリごとに言語を選択するには、アプリの言語設定に移動してください。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"アプリの言語の詳細"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"システムの言語を%sに変更しますか?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"OFF"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ON / # 個のアプリに位置情報へのアクセスを許可}other{ON / # 個のアプリに位置情報へのアクセスを許可}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"読み込んでいます…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"付近のデバイスへのアクセス許可を持つアプリは、接続されたデバイスの相対位置を確認できます。"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"付近のデバイスへのアクセス許可を持つアプリは、接続されたデバイスの相対位置を確認できます。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"アプリとサービスの位置情報へのアクセスは OFF になっています。緊急通報番号に電話をかけたりテキスト メッセージを送信したりした場合は、デバイスの位置情報が緊急サービスに送信されることがあります。"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"位置情報の設定の詳細"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"変更するには ChromeOS の [設定] &gt; [プライバシーとセキュリティ] &gt; [プライバシー管理] &gt; [位置情報へのアクセス] に移動します"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"顔、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"リモート認証のロック解除"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"スマートウォッチを追加しました"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"スマートウォッチのセットアップ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ウォッチ認証の詳細"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"スマートウォッチを追加"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"スマートウォッチを削除"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋認証と顔認証"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"顔認証と指紋認証"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"仕事用の顔認証と指紋認証"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"セットアップが必要です"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"顔と指紋を登録しました"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"プライベート スペースを設定しています…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"プライベート スペースを設定できませんでした"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"再試行"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"終了"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"プライベート スペースを利用できません。\n考えられる原因を表示する"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"考えられる原因を表示する"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"プライベート スペースのロックを新しく設定しますか?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"プライベート スペース専用のロックを新しく設定するか、デバイスのロック解除と同じロックを使用することができます"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"画面ロックを使用"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"デバイスを再起動しますか?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC 詳細ログは開発専用に設計されています。バグレポートには、追加の NFC データが含まれます。これには、非公開の情報が含まれることがあります。この設定を変更するには、デバイスを再起動してください。"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"再起動"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ON"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"OFF"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"外部ディスプレイ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"外部ディスプレイを使用する"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ディスプレイ解像度"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"外部ディスプレイに接続されていません"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"回転"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"標準"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"回転や解像度を変更すると、現在実行中のアプリが停止する可能性があります"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"画面をミラーリングするには、デバイスを外部ディスプレイに接続する必要があります"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"その他のオプション"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"キャスト"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"ミラー"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ワイヤレス ディスプレイの有効化"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"自動調整"</string>
     <string name="brightness" msgid="6216871641021779698">"明るさのレベル"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"明るさの自動調節"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"明るさの自動調節について"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"環境やアクティビティに応じて画面の明るさが自動的に調整されます。スライダーを手動で動かして、明るさの自動調節機能に設定を学習させることもできます。"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ON"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"OFF"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"オプション"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ユーザー補助"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"物理キーボード"</string>
-    <string name="show_ime" msgid="4334255501724746849">"画面キーボードを使用"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"物理キーボードが有効になっていても画面に表示させます"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"バウンスキー"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ミリ秒以内にキーボードの同じキーが連続で押された場合は、その操作を無視します"</string>
     <string name="slow_keys" msgid="2891452895499690837">"スローキー"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"押されたキーが有効になるまでの時間を <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ミリ秒に設定します"</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="2396247040177734245">"物理キーボードを使用してマウスを操作します"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ポインターの塗りつぶしを黄色に変更"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ポインターの塗りつぶしを桃色に変更"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ポインターの塗りつぶしを青色に変更"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"ポインターのストローク スタイル"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黒"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"なし"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"タッチパッド操作を見る"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"トラックパッド, マウス, カーソル, スクロール, スワイプ, 右クリック, クリック, ポインタ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"右クリック, タップ"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ユーザーによる選択: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"読み上げ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"ポインタの速度"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"ポインタのスケール"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"ポインタのスケールを小さくする"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"ポインタのスケールを大きくする"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ゲーム用コントローラ"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"リダイレクトのバイブレーション"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"接続時にバイブレーションをゲーム用コントローラに送信"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"無視して続行"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"キャンセル"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"画面の拡大設定"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"指 1 本でのパン操作"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 本の指で拡大鏡を移動"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"1 本の指でドラッグして画面上を移動"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"1 本の指でドラッグして拡大領域を移動します。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"2 本の指でドラッグして拡大領域を移動します。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"画面の一部のみを拡大している間は利用できません"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ボタンをタップしてズームします"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"画面をすばやくズームインして、コンテンツを拡大できます"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ズームインするには:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ショートカットを使って拡大を開始します&lt;br/&gt; {1,number,integer}. 画面をタップします&lt;br/&gt; {2,number,integer}. 2 本の指でドラッグして画面上を移動します&lt;br/&gt; {3,number,integer}. 2 本の指でピンチ操作してズームを調整します&lt;br/&gt; {4,number,integer}. ショートカットを使って拡大を停止します&lt;br/&gt;&lt;br/&gt; &lt;b&gt;一時的にズームインするには:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 拡大の種類が全画面に設定されていることを確認します&lt;br/&gt; {1,number,integer}. ショートカットを使って拡大を開始します&lt;br/&gt; {2,number,integer}. 画面を長押しします&lt;br/&gt; {3,number,integer}. 指をドラッグして画面上を移動します&lt;br/&gt; {4,number,integer}. 指を離して拡大を停止します"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ズームインするには:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ショートカットを使って拡大を開始します&lt;br/&gt; {1,number,integer}. 画面をタップします&lt;br/&gt; {2,number,integer}. 2 本の指でドラッグして画面上を移動します&lt;br/&gt; {3,number,integer}. 2 本の指でピンチ操作してズームを調整します&lt;br/&gt; {4,number,integer}. ショートカットを使って拡大を停止します&lt;br/&gt;&lt;br/&gt; 一時的にズームインするなどの操作もできます。"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ズームインするには:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ショートカットを使って拡大を開始します&lt;br/&gt; {1,number,integer}. 画面をタップします&lt;br/&gt; {2,number,integer}. 1 本または 2 本の指でドラッグして画面上を移動します&lt;br/&gt; {3,number,integer}. 2 本の指でピンチ操作してズームを調整します&lt;br/&gt; {4,number,integer}. ショートカットを使って拡大を停止します&lt;br/&gt;&lt;br/&gt; 一時的にズームインするなどの操作もできます。"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"[拡大] を ON にすると、画面で拡大操作を行えます。\n\n"<b>"ズーム"</b>"するには、[拡大] を ON にして画面をタップします。\n"<ul><li>"2 本以上の指をドラッグしてスクロール"</li>\n<li>"2 本以上の指でピンチ操作して拡大率を調節"</li></ul>\n\n<b>"一時的にズーム"</b>"するには、[拡大] を ON にして画面を長押しします。\n"<ul><li>"ドラッグで画面上を移動"</li>\n<li>"指を放してズームアウト"</li></ul>\n\n"キーボードやナビゲーション バーでは拡大操作は行えません。"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g> ページ目"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ユーザー補助機能ボタンのショートカット"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"2 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、2 本指で上にスワイプしたまま長押しします。"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、3 本指で上にスワイプしたまま長押しします。"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{画面の下部から上にスワイプします。機能を切り替えるには、上にスワイプしたまま長押しします。}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"2 本の指で画面をダブルタップする"</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 本の指で画面をすばやく 2 回タップします"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"トリプルタップ"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"画面をすばやく %1$d 回タップします。デバイスの反応が遅くなる場合があります。"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d 本の指でダブルタップ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"2 本の指で画面を {0,number,integer} 回すばやくタップします"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"画面をトリプルタップ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"トリプルタップ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"画面をすばやく {0,number,integer} 回タップします。このショートカットを使うと、デバイスの動作が遅くなる場合があります"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"詳細設定"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"[ユーザー補助機能] ボタンが [<xliff:g id="SERVICE">%1$s</xliff:g>] に設定されています。拡大を使用するには、[ユーザー補助機能] ボタンを押し続けて [拡大] を選択してください。"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ユーザー補助操作は「<xliff:g id="SERVICE">%1$s</xliff:g>」に設定されています。拡大を使用するには、2 本の指で画面の下から上にスワイプして長押しし、拡大を選択してください。"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"このサービスは機能していません。"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ユーザー補助機能のショートカット"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"クイック設定に表示"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"赤 / 緑"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"赤緑"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"赤 - 緑、緑色弱"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"赤 - 緑、赤色弱"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"青 / 黄"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"グレースケール"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"強さ"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"緑色弱、第二色弱"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"赤色弱、第一色弱"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"グレースケール モード選択時、または色補正が無効に設定されているときは使用できません"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"第二色弱"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"第一色弱"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"第三色弱"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"さらに輝度を下げる"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"画面の輝度をさらに下げる"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"水色"</string>
     <string name="color_yellow" msgid="5957551912912679058">"黄"</string>
     <string name="color_magenta" msgid="8943538189219528423">"マゼンタ"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> にデバイスのフル コントロールを許可しますか?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>では以下が必要です。"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"アプリが許可リクエストを隠しているため、設定側でユーザーの応答を確認できません。"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> はこのデバイスのフル コントロールをリクエストしています。これは、ユーザー補助を必要とするユーザーに代わって画面を読み上げたり操作したりするサービスです。大半のアプリに、このレベルのコントロールは適していません。"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"フル コントロールは、ユーザー補助機能に対応しているアプリに最適です。多くのアプリではこの機能に対応していません。"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"画面の表示と操作"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"画面上のすべてのコンテンツを読み取り、他のアプリの上にコンテンツを重ねて表示することができます。"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"操作の表示と実行"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"アプリやハードウェア センサーの操作を記録したり、自動的にアプリを操作したりできます。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"許可"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"許可しない"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"OFF にする"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{なし}=1{1 件のスケジュールが有効}other{# 件のスケジュールが有効}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"サイレント モード"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"優先モード"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"モードを追加する"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"睡眠、作業、運転など、さまざまな状況において妨げとなるものを防いで集中できるようにします。"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"独自のモードを作成する"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"大切な人やアプリからの通知のみ受け取ります"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"スケジュールの設定"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"以下に基づくスケジュール"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"曜日と時刻"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"「平日の午前 9 時から午後 5 時」"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"カレンダーの予定"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} がアクティブです}=2{{mode_1} と {mode_2} がアクティブです}=3{{mode_1}、{mode_2}、{mode_3} がアクティブです}other{{mode_1}、{mode_2}、他 # 個がアクティブです}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 個のモードを自動的に ON にできます}other{# 個のモードを自動的に ON にできます}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ON"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"未設定"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"無効"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"モードの作成"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"カスタム"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"今すぐ ON にする"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"OFF にする"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"モードが見つかりません"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"割り込みを制限する"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"集中の妨げになるものをブロックします"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> を設定"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"サイレント モードを ON にする"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"アラームとメディア サウンドが割り込み可能"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"スケジュール"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"スケジュールを削除"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"削除"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"名前を変更"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"削除"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"「<xliff:g id="MODE">%1$s</xliff:g>」を削除しますか?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"編集"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"スケジュール"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"スケジュール"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"自動的に ON"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"カレンダーの追加"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"カレンダーを使用する"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"スケジュール"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"スケジュールを設定してください"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"自動的に ON にするタイミング"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"イベントのスケジュール"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"以下の予定のときに ON にする"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"招待の返信が以下のとき"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"時間のスケジュール"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"スケジュールを設定"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 時間 <xliff:g id="MINUTES">%2$d</xliff:g> 分"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"スケジュール"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"音が出る割り込みの許可"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"視覚的な通知のブロック"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"視覚的な割り込みを許可"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"確認できる通知"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"その他の操作"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"通知フィルタ"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"その他の設定"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{OFF}=1{OFF / 1 件のモードを自動的に ON にできます}other{OFF / # 件のモードを自動的に ON にできます}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"表示の設定"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"表示オプション"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"グレースケール"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ダークモードを有効にする"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"暗い背景に明るいテキストを表示するよう OS やアプリを切り替えると、見やすくなることがあり、デバイスによってはバッテリーの大幅な節約につながります"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{表示の変更なし}=1{{effect_1}}=2{{effect_1}、{effect_2}}=3{{effect_1}、{effect_2}、{effect_3}}other{{effect_1}、{effect_2}、他 # 件}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"通知可能な内容を制限する"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"フィルタしている割り込みはありません"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"フィルタした通知の表示オプション"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"サイレント モードが ON のとき"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"通知音なし"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"通知を開く"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"通知のスヌーズを許可する"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"アプリアイコン上の通知ドット"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"通知バンドル"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"バブル"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"バブル"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"この会話をバブルで表示"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"通知の自動調整"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"通知の自動調整を使用する"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"短時間に多くの通知が届いた場合に、通知と音の頻度を最小限に抑えます。通話、アラーム、優先度の高い会話については、通常どおり通知が届きます。受け取った通知はすべて、画面を上から下にスワイプして簡単に確認できます。"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"仕事用プロファイルのアプリに適用する"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ヘルパー サービス"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"カテゴリ"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"その他"</string>
     <string name="no_channels" msgid="4716199078612071915">"このアプリの通知はありません"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"使用していないカテゴリを表示"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"アプリ内のその他の設定"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"使用していないカテゴリを表示"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"使用していないカテゴリを非表示"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>~<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"会話"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"すべての会話"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"すべての会話"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"優先度の高い会話"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"優先度の高い会話"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"なし"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"割り込み可能なアプリ"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"選択したアプリ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"なし"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"すべて"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{アプリは割り込み不可}=1{{app_1} が割り込み可能}=2{{app_1} と {app_2} が割り込み可能}=3{{app_1}、{app_2}、{app_3} が割り込み可能}other{{app_1}、{app_2}、他 # 個が割り込み可能}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g>(仕事用)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"計算中…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"アプリのオーバーライドを許可"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"割り込み可能なアプリ"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"他のアプリを選択"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"同一発信者による再着信は割り込み可能"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"すべてのユーザーが割り込み可能"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"同一番号からの再着信"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"同一番号からの再着信に割り込みを許可"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time}まで1時間、アラームのみに変更します}other{{time}まで#時間、アラームのみに変更します}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>までアラームのみに変更します"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"常に割り込みに変更します"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"名前を変更"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"アイコンを変更"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"アイコンの変更"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"モードの編集"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"モードの作成"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"カスタムモード"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"モード名"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"カレンダーの予定"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"「おやすみ」のルーティン"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"車の運転中"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"アプリの設定"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>の情報と設定"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g>によって管理されています"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> を無効にしますか?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"このモードは無効になっていると有効になることはありません"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"無効にする"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g>を有効にしますか?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"このモードは設定に応じて自動的に有効になることがあります。"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"有効にする"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"通常のスケジュールに沿うモードを設定します"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"カレンダーの予定や招待の返答を同期するモードを設定します"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"心地よい眠りを習慣にできるよう、アラームを設定し、画面を暗くして、通知をブロックします。"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"運転中の安全を向上させて、運転に集中できるようにします。"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"警告"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"閉じる"</string>
     <string name="device_feedback" msgid="5351614458411688608">"このデバイスについてフィードバックを送信"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"ケース"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"バッテリー"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"設定パネル"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"デスクトップ モードに強制的に切り替え"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"セカンダリ ディスプレイで試験運用版デスクトップ モードに強制的に切り替えます"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"フリーフォーム ウィンドウを有効にする"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"2 つ目のディスプレイでフリーフォーム ウィンドウを有効にする"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"マルチウィンドウでのサイズ変更不可を有効にする"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"サイズ変更できないアプリをマルチウィンドウでも使用可能にします"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"フォースダークのオーバーライド"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"モバイルデータ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"デバイスの利便性向上のため、アプリやサービスは、Wi-Fi が OFF の場合でもいつでも Wi-Fi ネットワークをスキャンすることができます。これは位置情報を使用する機能やサービスに特に役立ちます。この動作は Wi-Fi スキャンの設定で変更できます。"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"変更"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"接続済み"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"一時的に接続されています"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"一時的に <xliff:g id="SUBNAME">%1$s</xliff:g> を使用しています"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"アプリ固定機能を使用"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"開発者向けオプションを使用"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"印刷サービスを使用"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"複数のユーザーを許可する"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ユーザーの切り替えを許可する"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"許可, 複数, ユーザー, 認可, 大勢"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"複数、ユーザー、プロフィール、複数のユーザー、アカウント、切り替え、多数"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ワイヤレス デバッグの使用"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"タブレットが装着されているときに画面に表示するものを選択してください。スクリーン セーバーを使用すると、デバイスの電力使用量が増えることがあります。"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"カスタマイズ"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> をカスタマイズ"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"フリーフォームのサポートを有効にするには、再起動が必要です。"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"セカンダリ ディスプレイをデスクトップ モードに強制的に切り替えるには、再起動が必要です。"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"フリーフォーム ウィンドウ サポートを有効にするには、再起動が必要です。"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"フリーフォーム ウィンドウの設定を更新するには、再起動が必要です。"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"2 つ目のディスプレイでフリーフォーム ウィンドウを有効にするには、再起動が必要です。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"今すぐ再起動する"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"後で再起動する"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空間オーディオ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ローズ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"マゼンタ"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"バイオレット"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"完了"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"保存"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"キャンセル"</string>
     <string name="contrast_default" msgid="8918545965525226966">"デフォルト"</string>
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ON"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"OFF"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ON"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音声: 左 %1$d%%、右 %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音声: 右 %1$d%%、左 %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"インストールしたアプリにデバイス名が表示されます。また、Bluetooth デバイスや Wi-Fi ネットワークに接続したり、Wi-Fi アクセス ポイントを設定したりすると、他のユーザーにもデバイス名が表示されます。"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"文法性"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"文法性の選択"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ストリームを聴く"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>で聴くには、音声ストリームの QR コードをスキャンします"</string>
     <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="homepage_search" msgid="6759334912284663559">"検索設定"</string>
 </resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index 22ecfaa..02cdcd4 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"ძილის დრო"</item>
-    <item msgid="4152450357280759894">"ავტომობილის მართვა"</item>
-    <item msgid="7096549258219399423">"იმერსიული"</item>
-    <item msgid="2760716776980432977">"მართული"</item>
-    <item msgid="601734478369121764">"ვარსკვლავი"</item>
-    <item msgid="6243809315432780521">"კალენდარი"</item>
-    <item msgid="4913577903148415331">"დრო"</item>
-    <item msgid="3653377604690057780">"თეატრი"</item>
-    <item msgid="3843711267408385410">"ყვავილი"</item>
+    <item msgid="2750940760340557109">"ნახევარმთვარე"</item>
+    <item msgid="8513969636586738035">"მანქანა"</item>
+    <item msgid="957392343846370509">"ადამიანის გონება"</item>
+    <item msgid="6734164279667121348">"კალენდარი"</item>
+    <item msgid="4139559120353528558">"საათი"</item>
+    <item msgid="5157711296814769020">"სანაპიროს ქოლგა"</item>
+    <item msgid="6635328761318954115">"კარავი"</item>
+    <item msgid="1711994778883392255">"კინოკადრი"</item>
+    <item msgid="9097658401859604879">"თამაშის კონტროლერი"</item>
+    <item msgid="755931364157422565">"სპორტული დარბაზის ჰანტელი"</item>
+    <item msgid="8894207806795738429">"ადამიანი, რომელიც ბურთს ისვრის"</item>
+    <item msgid="2274801572149555103">"ადამიანი, რომელიც არტყამს"</item>
+    <item msgid="8795037201506843325">"ცურვა"</item>
+    <item msgid="3558421426169430451">"მოლაშქრე"</item>
+    <item msgid="7455070421232184932">"გოლფი"</item>
+    <item msgid="5841773092449126508">"სახელოსნოს ხელსაწყოები"</item>
+    <item msgid="4595330511709890409">"ქეისი"</item>
+    <item msgid="8352738347856724389">"ვარსკვლავი"</item>
+    <item msgid="7082783098151998721">"ლოტოსის ყვავილი"</item>
+    <item msgid="5772220259409264724">"ზედამხედველი"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 802688c..e14fbef 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"შეჩერებული"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"უცნობია"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"გადახედვა"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR კოდი"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"დაპატარავება"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"გადიდება"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ყოველთვის"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"სმენის აპარატის პარამეტრები"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"მალსახმობი, სმენის აპარატებთან თავსებადობა"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"წინასწარ დაყენებული"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"აუდიოლოგისტს არ დაუპროგრამებია წინასწარ დაყენებული პარამეტრები."</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"წინასწარ დაყენებულის განახლება ვერ მოხერხდა"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"გამომავალი აუდიო"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"აუდიოს გამოსატანის შესახებ"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ამ აპისთვის ენის არჩევა პარამეტრებიდან მიუწვდომელია."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ენა, შესაძლოა, განსხვავდებოდეს აპში ხელმისაწვდომი ენებისგან. ზოგიერთ აპს, შესაძლოა, არ ჰქონდეს ამ პარამეტრის მხარდაჭერა."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"დააყენეთ ენა თითოეული აპისთვის."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"თქვენი სისტემა, აპები და ვებსაიტები იყენებს პირველ მხარდაჭერილ ენას თქვენი უპირატესი ენებიდან."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"თქვენი მოწყობილობა, აპები და ვებსაიტები იყენებს პირველ მხარდაჭერილ ენას თქვენი უპირატესი ენებიდან.\n\nმრავალი აპი ასევე გამოიყენებს რეგიონს თქვენი უპირატესი ენიდან თარიღების, რიცხვებისა და ერთეულების დასაფორმატებლად. თქვენი რეგიონის შესაცვლელად დაამატეთ ენა, შემდეგ აირჩიეთ სასურველი რეგიონი."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"თითოეული აპისთვის ენის ასარჩევად, გადადით აპის ენების პარამეტრებში."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"შეიტყვეთ მეტი აპის ენების შესახებ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"გსურთ სისტემური ენის შეცვლა %s-ით?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"გამორთული"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}other{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"მიმდინარეობს ჩატვირთვა…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"ახლომდებარე მოწყობილობების ნებართვების მქონე აპებს შეუძლია დაკავშირებული მოწყობილობების პოზიციის განსაზღვრა."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"ახლომდებარე მოწყობილობების ნებართვების მქონე აპებს შეუძლია დაკავშირებული მოწყობილობების პოზიციის განსაზღვრა."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"აპებისა და სერვისების მდებარეობაზე წვდომა გამორთულია. თქვენი მოწყობილობის მდებარეობა მაინც გაიგზავნება გადაუდებელი დახმარების სამსახურში, როცა გადაუდებელი დახმარების სამსახურის ნომერზე დარეკავთ ან ტექსტურ შეტყობინებას გაგზავნით."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"შეიტყვეთ მეტი მდებარეობის პარამეტრების შესახებ"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"შესაცვლელად გადადით ChromeOS-ის პარამეტრებში &amp;gt კონფიდენციალურობა და უსაფრთხოება &gt; კონფიდენციალურობის მართვის პარამეტრები &gt; მდებარეობაზე წვდომა"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"დაემატა სახე და <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"დაემატა სახე, თითის ანაბეჭდი და <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"დაემატა სახე, თითის ანაბეჭდები და <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"ვინაობის დადასტურება ჩართულია"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticator-ით დისტანციურად განბლოკვა"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"დაემატა საათი"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"თქვენი საათის დაყენება"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"შეიტყვეთ მეტი საათის განბლოკვის შესახებ"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"საათის დამატება"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"საათის ამოშლა"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"თითის ანაბეჭდით და სახით განბლოკვა"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"სახით და ანაბეჭდით განბლოკვა"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"სახით და თითის ანაბეჭდით განბლოკვა სამსახურისთვის"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"საჭიროა დაყენება"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"სახე და თითის ანაბეჭდები დამატებულია"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"მიმდინარეობს პირადი სივრცის დაყენება…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"კერძო სივრცის დაყენება ვერ მოხერხდა"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ხელახლა ცდა"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"გასვლა"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"კერძო სივრცე მიუწვდომელია.\nშესაძლო გამომწვევი მიზეზების ნახვა"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"შესაძლო გამომწვევი მიზეზების ნახვა"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"გსურთ კერძო სივრცისთვის ახალი ჩაკეტვის არჩევა?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"შეგიძლიათ დააყენოთ ახალი ჩაკეტვა მხოლოდ კერძო სივრცისთვის, ან გამოიყენოთ იგივე ჩაკეტვა, რომელსაც იყენებთ თქვენი მოწყობილობის განბლოკვისთვის"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"გამოიყენეთ ეკრანის დაბლოკვა"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"გსურთ მოწყობილობის გადატვირთვა?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"დეტალური NFC აღრიცხვა გათვალისწინებულია მხოლოდ დეველოპერული მიზნებისთვის. დამატებითი NFC მონაცემები მოყვანილია სისტემის ხარვეზის ანგარიშებში, რომლებიც შეიძლება მოიცავდეს პირად ინფორმაციას. გადატვირთეთ თქვენი მოწყობილობა ამ პარამეტრის შესაცვლელად."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"გადატვირთვა"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ჩართული"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"გამორთული"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"გარე ეკრანი"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"გარე ეკრანის გამოყენება"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ეკრანის გარჩევადობა"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"გარე ეკრანთან კავშირი გაწყვეტილია"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"შეტრიალება"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"სტანდარტული"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"შეტრიალების ან გარჩევადობის შეცვლამ შეიძლება შეწყვიტოს მიმდინარე აპების მუშაობა"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"თქვენი მოწყობილობა დაკავშირებული უნდა იყოს გარე ეკრანთან, რათა თქვენი ეკრანის გამოსახულების ასლი შეიქმნას"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"სხვა ვარიანტები"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"ტრანსლირება"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"გამოსახულების ასლი"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"უსადენო ეკრანის ჩართვა"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"ადაპტაციური"</string>
     <string name="brightness" msgid="6216871641021779698">"სიკაშკაშის დონე"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"მორგებადი სიკაშკაშე"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"მორგებადი სიკაშკაშის შესახებ"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"თქვენი ეკრანის სიკაშკაშე ავტომატურად დარეგულირდება თქვენი გარემოსა და აქტივობების გათვალისწინებით. ამ სლაიდერის ამოძრავებას ხელითაც შეძლებთ, რითაც დაეხმარებით მორგებადი სიკაშკაშის პარამეტრს, შეიტყოს, თუ რას ანიჭებთ უპირატესობას."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ჩართული"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"გამორთული"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ვარიანტები"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"წვდომა"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ფიზიკური კლავიატურა"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ეკრანული კლავიატურის გამოყენება"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"აქტიური ფიზიკური კლავიატურისას ეკრანზე შენარჩუნება"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"კლავიშების ასხლეტა"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"კლავიატურა აიგნორებს <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> მილიწამის განმავლობაში ერთსა და იმავე კლავიშზე სწრაფ, განმეორებით დაჭერებს"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ნელი კლავიშები"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"არეგულირებს დროს, რომელიც სჭირდება კლავიშის დაჭერას <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> მილიწამამდე აქტივაციისთვის"</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="2396247040177734245">"მაუსის სამართავად გამოიყენეთ ფიზიკური კლავიატურა"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"კურსორის სტილის შეცვლა ყვითლად"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"კურსორის სტილის შეცვლა ვარდისფრად"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"კურსორის სტილის შეცვლა ლურჯად"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"კურსორის ხაზების სტილი"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"თეთრი"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"შავი"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"არცერთი"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"გაეცანით სენსორული ეკრანის ჟესტებს"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ტრეკპედი, ტრეკ პედი, მაუსი, კურსორი, გადაადგილება, გადაფურცვლა, მარჯვენა დაწკაპუნება, დაწკაპუნება, მანიშნებელი"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"მარჯვენა დაწკაპუნება, შეხება"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"მომხმარებლის მიერ არჩეული: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"მეტყველება"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"მანიშნებლის სიჩქარე"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"კურსორის ზომა"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"კურსორის ზომის შემცირება"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"კურსორის ზომის გაზრდა"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"თამაშის მეთვალყურე"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ვიბრაციის გადამისამართება"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"დაკავშირებისას ვიბრაციის სათამაშო კონტოლერზე გადამისამართება"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"მაინც გაგრძელება"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"გაუქმება"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"გადიდების პარამეტრები"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ერთი თითით პანირება"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"გადაადგილეთ გამადიდებელი 1 თითით"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ეკრანზე გადასაადგილებლად ჩაავლეთ 1 თითით"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"გაამოძრავეთ გადიდების ზონა ერთი თითის ჩავლებით."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"გაამოძრავეთ გადიდების ზონა ორი თითის ჩავლებით."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"მიუწვდომელია ეკრანის მხოლოდ ნაწილის გადიდებისას"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"მასშტაბირება ღილაკზე შეხებით"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"კონტენტის გასადიდებლად სწრაფად გაადიდეთ მასშტაბი ეკრანზე"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;მასშტაბის გასადიდებლად:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. გადიდების დასაწყებად გამოიყენეთ მალსახმობი&lt;br/&gt; {1,number,integer}. შეეხეთ ეკრანს&lt;br/&gt; {2,number,integer}. ჩაავლეთ 2 თითი ეკრანზე გადასაადგილებლად&lt;br/&gt; {3,number,integer}. მასშტაბის კორექტირებისთვის გამოიყენეთ თითებით მასშტაბირება 2 თითით&lt;br/&gt; {4,number,integer}. გადიდების შესაწყვეტად გამოიყენეთ მალსახმობი&lt;br/&gt;&lt;br/&gt;&lt;b&gt;მასშტაბის დროებით გასადიდებლად:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. გადიდების მასშტაბი სრულ ეკრანზე უნდა იყოს დაყენებული&lt;br/&gt; {1,number,integer}. გადიდების დასაწყებად გამოიყენეთ მალსახმობი&lt;br/&gt; {2,number,integer}. ხანგრძლივად შეეხეთ ეკრანს ნებისმიერ ადგილას&lt;br/&gt; {3,number,integer}. ჩაავლეთ თითი ეკრანზე გადასაადგილებლად&lt;br/&gt; {4,number,integer}. გადიდების შესაწყვეტად მოაშორეთ თითი"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;მასშტაბის გასადიდებლად:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. გადიდების დასაწყებად გამოიყენეთ მალსახმობი&lt;br/&gt; {1,number,integer}. შეეხეთ ეკრანს&lt;br/&gt; {2,number,integer}. ეკრანზე გადასაადგილებლად ჩაავლეთ 2 თითით&lt;br/&gt; {3,number,integer}. მასშტაბის კორექტირებისთვის გამოიყენეთ თითებით მასშტაბირება 2 თითით&lt;br/&gt; {4,number,integer}. გადიდების შეწყვეტისთვის გამოიყენეთ მალსახმობი&lt;br/&gt;&lt;br/&gt; თქვენ ასევე შეგიძლიათ დროებით გაადიდოთ მასშტაბი და შეასრულოთ სხვა მოქმედებები."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;მასშტაბის გასადიდებლად:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. გადიდების დასაწყებად გამოიყენეთ მალსახმობი&lt;br/&gt; {1,number,integer}. შეეხეთ ეკრანს&lt;br/&gt; {2,number,integer}. ეკრანზე გადასაადგილებლად ჩაავლეთ 1 ან 2 თითით&lt;br/&gt; {3,number,integer}. მასშტაბის კორექტირებისთვის გამოიყენეთ თითებით მასშტაბირება 2 თითით&lt;br/&gt; {4,number,integer}. გადიდების შეწყვეტისთვის გამოიყენეთ მალსახმობი&lt;br/&gt;&lt;br/&gt; თქვენ ასევე შეგიძლიათ დროებით გაადიდოთ მასშტაბი და შეასრულოთ სხვა მოქმედებები."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"როდესაც გადიდება ჩართულია, შეგიძლიათ გაადიდოთ მასშტაბი თქვენს ეკრანზე.\n\n"<b>"მასშტაბირებისთვის"</b>", დაიწყეთ გადიდება, შემდეგ შეეხეთ ეკრანის ნებისმიერ ადგილს.\n"<ul><li>"გადასაადგილებლად გადაატარეთ ეკრანს 2 ან მეტი თითი"</li>\n<li>"მასშტაბის დასარეგულირებლად ეკრანზე შეაერთეთ 2 ან მეტი თითი"</li></ul>\n\n<b>"მასშტაბის დროებით გასადიდებლად"</b>", დაიწყეთ გადიდება, შემდეგ ხანგრძლივად შეეხეთ ეკრანის ნებისმიერ ნაწილს.\n"<ul><li>"გადაატარეთ თითი ეკრანს მისი სხვადასხვა ნაწილის დასათვალიერებლად"</li>\n<li>"მასშტაბის შესამცირებლად ასწიეთ თითი"</li></ul>\n\n"კლავიატურისა და ნავიგაციის ზოლის მასშტაბის გაზრდა ვერ მოხერხდება."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"გვერდი <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> / <xliff:g id="NUM_PAGES">%2$d</xliff:g>-დან"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"მარტივი წვდომის ღილაკის მალსახმობი"</string>
@@ -2149,8 +2180,6 @@
     <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_software_gesture" msgid="8292555254353761635">"ორი თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად, ორი თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"სამი თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად, სამი თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{გადაფურცლეთ ზემოთ თქვენი ეკრანის ქვედა ნაწილიდან. ფუნქციებს შორის გადასართავად გადაფურცლეთ ზემოთ და დააყოვნეთ.}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>
@@ -2161,16 +2190,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ეკრანზე ორი თითით ორმაგი შეხება"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"სწრაფად შეეხეთ ეკრანს %1$d-ჯერ. ამან შესაძლოა თქვენი მოწყობილობა შეანელოს."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d თითით ორმაგად შეხება"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ ორი თითით"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"სამმაგად შეეხეთ ეკრანს"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"სამმაგი შეხება"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ. ამ მალსახმობმა შეიძლება მოწყობილობა შეანელოს"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"გაფართოებ."</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"მარტივი წვდომის ღილაკად დაყენებულია <xliff:g id="SERVICE">%1$s</xliff:g>. გადიდების გამოსაყენებლად ხანგრძლივად შეეხეთ მარტივი წვდომის ღილაკს, ხოლო შემდეგ აირჩიეთ გადიდება."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"მარტივი წვდომის ჟესტი დაყენებულია <xliff:g id="SERVICE">%1$s</xliff:g>-ზე. გადიდების გამოსაყენებლად, გადაფურცლეთ ორი თითით ეკრანის ქვედა კიდიდან ზემოთ და დააყოვნეთ. შემდეგ აირჩიეთ გადიდება."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ეს სერვისი გაუმართავად მუშაობს."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"მარტივი წვდომის მალსახმობები"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"სწრაფ პარამეტრებში ჩვენება"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"წითელი-მწვანე"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"მოწითალო-მომწვანო"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"წითელ-მწვანე, მწვანე სუსტი"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"წითელ-მწვანე, წითელი სუსტი"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ლურჯი-ყვითელი"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ნაცრისფერი ტონები"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ინტენსივობა"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"მკრთალი მწვანე, დეიტერანომალია"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"მკრთალი წითელი, პროტანომალია"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"მიუწვდომელია ნაცრისფერი ტონების რეჟიმისთვის ან ფერთა კორექციის გათიშვისას"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"დეიტერანომალია"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"პროტანომალია"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ტრიტანომალია"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"დამატებითი დაბინდვა"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ეკრანის დამატებით დაბინდვა"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ცისფერი"</string>
     <string name="color_yellow" msgid="5957551912912679058">"ყვითელი"</string>
     <string name="color_magenta" msgid="8943538189219528423">"მეწამული"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"დართავთ ნებას <xliff:g id="SERVICE">%1$s</xliff:g>-ს, სრულად მართოს თქვენი მოწყობილობა?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>-ს ესაჭიროება:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"აპის მიერ ნებართვის მოთხოვნის დაფარვის გამო, ვერ ხერხდება თქვენი პასუხის დადასტურება პარამეტრებით."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ითხოვს სრულ კონტროლს ამ მოწყობილობაზე. სერვისს შეუძლია ეკრანზე არსებული კონტენტის წაკითხვა და განსაკუთრებული საჭიროების მქონე მომხმარებლების სახელით მოქმედება. ამ დონის კონტროლი არ არის საჭირო აპების უმეტესობისთვის."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"სრული კონტროლი გამოსადეგია აპებისთვის, რომლებიც მარტივი წვდომის საჭიროებისას გეხმარებათ, მაგრამ არა აპების უმრავლესობისთვის."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ეკრანის ნახვა და მართვა"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"მას შეუძლია წაიკითხოს ეკრანზე არსებული მთელი კონტენტი და აჩვენოს კონტენტი სხვა აპებში."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"მოქმედებების ნახვა და შესრულება"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"მას შეუძლია თვალი მიადევნოს თქვენს ინტერაქციებს აპის ან აპარატურის სენსორის საშუალებით, ასევე, თქვენი სახელით აწარმოოს აპებთან ინტერაქცია."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"დაშვება"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"უარყოფა"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"გამორთვა"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{არცერთი}=1{დაყენებულია 1 განრიგი}other{დაყენებულია # განრიგი}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"არ შემაწუხოთ"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"პრიორიტეტული რეჟიმები"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"რეჟიმის დამატება"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"მინიმუმამდე შეამცირეთ ხელშემშლელი ფაქტორები და მართეთ თქვენი ყურადღება ძილის, სამუშაო, საავტომობილო და სხვა რეჟიმების მეშვეობით."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"საკუთარი რეჟიმის შექმნა"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"შეტყობინებების მიღება მხოლოდ მნიშვნელოვანი ხალხისგან და აპებიდან"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"განრიგის დაყენება"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"განრიგის საფუძველი:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"თარიღი და დრო"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„09:00 —17:00, კვირის დღეები“"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"კალენდრის მოვლენები"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} აქტიურია}=2{{mode_1} და {mode_2} აქტიურია}=3{{mode_1}, {mode_2} და {mode_3} აქტიურია}other{{mode_1}, {mode_2} და # სხვა აქტიურია}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 რეჟიმი შესაძლოა ჩაირთოს ავტომატურად}other{# რეჟიმი შესაძლოა ჩაირთოს ავტომატურად}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ჩართული"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"არ არის დაყენებული"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"გათიშულია"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"რეჟიმის შექმნა"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"მორგებული"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ახლავე ჩართვა"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"გამორთვა"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"რჟიმი ვერ მოიძებნა"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"წყვეტების შეზღუდვა"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"წყვეტებისა და ხელისშემშლელი ფაქტორების დაბლოკვა"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g>-ის დაყენება"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"„არ შემაწუხოთ“ რეჟიმის ჩართვა"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"შეწყვეტა შეუძლია მაღვიძარებს და მედიის ხმებს"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"განრიგები"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"განრიგების წაშლა"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"წაშლა"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"გადარქმევა"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"წაშლა"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"გსურთ „<xliff:g id="MODE">%1$s</xliff:g>“ რეჟიმის წაშლა?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"რედაქტირება"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"განრიგები"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"განრიგი"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ავტომატურად ჩართვა"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"კალენდრის დამატება"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"თქვენი კალენდრის გამოყენება"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"განრიგი"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"განრიგის დაყენება"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ავტომატურად ჩართვის დრო"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ღონისძიების განრიგი"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ჩართვა ღონისძიებებისას"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"სადაც მოწვევის პასუხია:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"დროის განრიგი"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"განრიგი"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> სთ, <xliff:g id="MINUTES">%2$d</xliff:g> წთ"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"განრიგი"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ხმის გამომცემი წყვეტების დაშვება"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ვიზუალური სიგნალების დაბლოკვა"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ვიზუალური სიგნალების დაშვება"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"შეტყობინებები, რომლებსაც თქვენთან დაკავშირება შეუძლიათ"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"დამატებითი მოქმედებები"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"შეტყობინების ფილტრები"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"დამატებითი პარამეტრები"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{გამორთულია}=1{გამორთულია / 1 რეჟიმი შეიძლება ავტომატურად ჩაირთოს}other{გამორთულია / # რეჟიმი შეიძლება ავტომატურად ჩაირთოს}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ეკრანის პარამეტრები"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ეკრანის ვარიანტები"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ნაცრისფერი ტონები"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"მუქი თემის ჩართვა"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"შეცვალეთ ოპერაციული სისტემა და აპები და უპირატესობა მიანიჭეთ ნათელ ტექსტს მუქ ფონზე, რაც თვალისთვის უფრო ადვილი აღსაქმელია და მნიშვნელოვნად ზოგავს ბატარეას ზოგიერთ მოწყობილობაზე"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ეკრანის ცვლილებები არ დაფიქსირებულა}=1{{effect_1}}=2{{effect_1} და {effect_2}}=3{{effect_1}, {effect_2} და {effect_3}}other{{effect_1}, {effect_2} და # სხვა}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"შეზღუდეთ შეტყობინების მიღების ფარგლები"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"შეფერხებები არ გაფილტრულა"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"გაფილტრული შეტყობინებების ეკრანის ვარიანტები"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"როცა ჩართულია „არ შემაწუხოთ“ რეჟიმი"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"შეტყობინებები ხმის გარეშე"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"შეტყობინების გახსნა"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"შეტყობინებების ჩაჩუმების დაშვება"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"შეტყობ. ნიშნული აპის ხატულაზე"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"შეტყობინების ნაკრებები"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"ბუშტები"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ბუშტები"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ამ მიმოწერის ბუშტად ჩვენება"</string>
@@ -3608,9 +3652,9 @@
     <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="4737150709382859870">"მორგებადი შეტყობინებები"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"მორგებადი შეტყობინებების გამოყენება"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"როცა მცირე დროის განმავლობაში ბევრ შეტყობინებას იღებთ, თქვენი ტელეფონი ხმას დაუწევს და მინიმალურამდე შეამცირებს ეკრანზე ამომხტარ ფანჯრებს ორი წუთის განმავლობაში. ზარები, მაღვიძარები და პრიორიტეტული საუბრები ისევ გამოსცემენ ვიბრაციას, ხმას ან გამოჩნდებიან ეკრანზე და ყველა შეტყობინება მარტივი საპოვნელი იქნება, როცა ჩამოწევთ ეკრანის ზემოდან."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"სამსახურის პროფილის აპებზე გავრცელება"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ვირტ. რეალობის დამხმარე სერვისები"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"კატეგორიები"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"სხვა"</string>
     <string name="no_channels" msgid="4716199078612071915">"ამ აპს შეტყობინებები არ გამოუქვეყნებია"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"გამოუყენებელი კატეგორიების ჩვენება"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"დამატებითი პარამეტრები აპში"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"გამოუყენებელი კატეგორიების ჩვენება"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"გამოუყენებელი კატეგორიების დამალვა"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"საუბრები"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"ყველა საუბარი"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"ყველა საუბარი"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"პრიორიტეტული საუბრები"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"პრიორიტეტული საუბრები"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"არცერთი"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"აპები, რომლებსაც შეწყვეტა შეუძლიათ"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"არჩეული აპები"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"არცერთი"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ყველა"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{არცერთ აპს არ შეუძლია შეწყვეტა}=1{{app_1}-ს შეუძლია შეწყვეტა}=2{{app_1}-ს და {app_2}-ს შეუძლია შეწყვეტა}=3{{app_1}-ს, {app_2}-ს და {app_3}-ს შეუძლია შეწყვეტა}other{{app_1}-ს, {app_2}-ს და # სხვას შეუძლია შეწყვეტა}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (სამუშაო)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"მიმდინარეობს გამოთვლა…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"აპებისთვის უგულებელყოფის დაშვება"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"აპები, რომლებსაც შეწყვეტა შეუძლია"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"მეტი აპის არჩევა"</string>
@@ -3784,6 +3832,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"განმეორებით აბონენტებს შეუძლიათ შეწყვეტა"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"შეწყვეტა შეუძლია ყველას"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"აბონენტების გამეორება"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"განმეორებითი აბონენტების დაშვება"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{შეცვალეთ სიგნალიზაცია მხოლოდ ერთი საათის განმავლობაში {time}-მდე}other{მაღვიძარების შეცვლა მხოლოდ # საათის განმავლობაში {time}-მდე}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"მაღვიძარებზე მხოლოდ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>-მდე გადაყვანა"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"„მუდმივად შეწყვეტის“ რეჟიმზე გადაყვანა"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"გადარქმევა"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ხატულის შეცვლა"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ხატულის შეცვლა"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"რეჟიმის რედაქტირება"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"რეჟიმის შექმნა"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"მორგებული რეჟიმი"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"რეჟიმის სახელი"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"კალენდრის მოვლენები"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"ძილისწინა რუტინა"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"მანქანის მართვისას"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"აპის პარამეტრები"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ინფორმაცია და პარამეტრები <xliff:g id="APP_NAME">%1$s</xliff:g>-ში"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"მართავს <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"გსურთ <xliff:g id="MODE_NAME">%1$s</xliff:g>-ის გათიშვა?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"რეჟიმის გათიშვის შემთხვევაში, ის არასდროს ჩაირთვება"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"გათიშვა"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"გსურთ <xliff:g id="MODE_NAME">%1$s</xliff:g>-ის ჩართვა?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"რეჟიმი შესაძლოა ავტომატურად ჩაირთოს თავისი პარამეტრების საფუძველზე"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ჩართვა"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"დააყენეთ რეჟიმი, რომელიც მიყვება რეგულარულ განრიგს"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"დააყენეთ რეჟიმი, რათა სინქრონიზდეთ კალენდრის მოვლენებთან და მოწვევის პასუხებთან"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"შექმენით ძილის დამამშვიდებელი რუტინა დააყენეთ მაღვიძარები, ჩააბნელეთ ეკრანი და დაბლოკეთ შეტყობინებები."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"მიანიჭეთ პრიორიტეტი უსაფრთხოებას ყურადღების გაფანტვის გარეშე მზავრობისათვის"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"შენიშვნა"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"დახურვა"</string>
     <string name="device_feedback" msgid="5351614458411688608">"გამოხმაურება ამ მოწყობილობის შესახებ"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"ფუტლარი"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ბატარეა"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"პარამეტრების პანელი"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"დესკტოპის რეჟიმის იძულებით გააქტიურება"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"დესკტოპის ექსპერიმენტული რეჟიმის იძულებით გააქტიურება მეორეულ ეკრანებზე"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"თავისუფალი ფორმის ფანჯრების ჩართვა"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"თავისუფალი ფორმის ფანჯრის ჩართვა დამატებით ეკრანზე"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ფიქსირებული ზომის აპის ჩართვა მრავალი ფანჯრის რეჟიმში"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ეს პარამეტრი საშუალებას იძლევა, აპი ზომის შეუცვლელად გამოჩნდეს მრავალი ფანჯრის რეჟიმში"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"გამუქების იძულების უგულებელყოფა"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"მობილური ინტერნეტი"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"მოწყობილობისგან მიღებული გამოცდილების გასაუმჯობესებლად, აპებსა და სერვისებს მაინც შეუძლია სკანირება Wi‑Fi ქსელების აღმოსაჩენად, ნებისმიერ დროს, მაშინაც კი, როცა Wi‑Fi გამორთულია. მაგალითისთვის, ეს შეიძლება გამოიყენებოდეს მდებარეობაზე დაფუძნებული ფუნქციების და სერვისების გასაუმჯობესებლად. ამის შეცვლა Wi-Fi სკანირების პარამეტრებში შეგიძლიათ."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"შეცვლა"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"დაკავშირებული"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"დროებით დაკავშირებული"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"დროებით იყენებს <xliff:g id="SUBNAME">%1$s</xliff:g>-ს"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"აპის ჩამაგრების გამოყენება"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"დეველოპერთა პარამეტრების გამოყენება"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ბეჭდვის სერვისის გამოყენება"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"მრავალი მომხმარებლის დაშვება"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"მომხმარებლის გადართვაზე ნების დართვა"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"დაშვება, მრავალჯერადი, მომხმარებელი, ნებართვა, ბევრი"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"რამდენიმე მომხმარებელი, პროფილი, ადამიანები, ანგარიშები, გადართვა, ბევრი"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"უსადენო გამართვის გამოყენება"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"აირჩიეთ, რას იხილავთ თქვენს ეკრანზე, როცა თქვენი ტაბლეტი დოკ-სადგურთან იქნება მიერთებული. ეკრანმზოგის გამოყენების შემთხვევაში თქვენმა მოწყობილობამ შეიძლება მეტი ენერგია გამოიყენოს."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"მორგება"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>-ის მორგება"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"თავისუფალი ფორმის მხარდაჭერის ჩასართავად საჭიროა გადატვირთვა."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"მეორეულ ეკრანზე დესკტოპ რეჟიმის იძულებით გასააქტიურებლად საჭიროა გადატვირთვა."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"თავისუფალი ფორმის ფანჯრის მხარდაჭერის ჩასართავად საჭიროა გადატვირთვა."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"თავისუფალი ფანჯრების მხარდაჭერის ხელმისაწვდომობის განახლებისთვის საჭიროა გადატივრთვა."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"თავისუფალი ფანჯრების მხარდაჭერის ჩართვისთვის საჭიროა მეორადი ეკრანების გადატვირთვა."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ახლავე გადატვირთვა"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"გადატვირთვა მოგვიანებით"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"სივრცითი აუდიო"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ვარდისფერი"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"მეწამული"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"იისფერი"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"მზადაა"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"შენახვა"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"გაუქმება"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ნაგულისხმევი"</string>
     <string name="contrast_medium" msgid="384414510709285811">"საშუალო"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ჩართული"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"გამორთული"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ჩართული"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"აუდიო %1$d%% მარცხენა, %2$d%% მარჯვენა"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"აუდიო %1$d%% მარჯვენა, %2$d%% მარცხენა"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"თქვენი მოწყობილობის სახელი ხილულია დაინსტალირებული აპებისთვის. მის დანახვას შეძლებენ სხვა პირებიც, როცა Bluetooth მოწყობილობებს ან Wi-Fi ქსელს დაუკავშირდებით, ან Wi-Fi უსადენო ქსელს დააყენებთ."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"გრამატიკული სქესი"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"აირჩიეთ გრამატიკული სქესი"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ნაკადის მოსმენა"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"დაასკანირეთ აუდიო ნაკადის QR კოდი<xliff:g id="DEVICE_NAME">%1$s</xliff:g> მოწყობილობასთან ერთად მოსასმენად"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"გაზიარების დროს შეუძლებელია პაროლის რედაქტირება. პაროლის შესაცვლელად, პირველ რიგში, გამორთეთ აუდიოს გაზიარება."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR კოდის სკანერი"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ძიების პარამეტრები"</string>
 </resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 4ff17f2..d527543 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Ұйқы режимі"</item>
-    <item msgid="4152450357280759894">"Көлік жүргізу"</item>
-    <item msgid="7096549258219399423">"Әсерлі"</item>
-    <item msgid="2760716776980432977">"Басқару"</item>
-    <item msgid="601734478369121764">"Жұлдыз"</item>
-    <item msgid="6243809315432780521">"Күнтізбе"</item>
-    <item msgid="4913577903148415331">"Уақыт"</item>
-    <item msgid="3653377604690057780">"Театр"</item>
-    <item msgid="3843711267408385410">"Гүл"</item>
+    <item msgid="2750940760340557109">"Жарты ай"</item>
+    <item msgid="8513969636586738035">"Автокөлік"</item>
+    <item msgid="957392343846370509">"Адам санасы"</item>
+    <item msgid="6734164279667121348">"Күнтізбе"</item>
+    <item msgid="4139559120353528558">"Сағат"</item>
+    <item msgid="5157711296814769020">"Жағажай қолшатыры"</item>
+    <item msgid="6635328761318954115">"Шатыр"</item>
+    <item msgid="1711994778883392255">"Кинопленка"</item>
+    <item msgid="9097658401859604879">"Ойын контроллері"</item>
+    <item msgid="755931364157422565">"Спортзалдағы гантель"</item>
+    <item msgid="8894207806795738429">"Доп лақтырып жатқан адам"</item>
+    <item msgid="2274801572149555103">"Теуіп жатқан адам"</item>
+    <item msgid="8795037201506843325">"Жүзу"</item>
+    <item msgid="3558421426169430451">"Жаяу адам"</item>
+    <item msgid="7455070421232184932">"Гольф"</item>
+    <item msgid="5841773092449126508">"Шеберхана құралдары"</item>
+    <item msgid="4595330511709890409">"Портфель"</item>
+    <item msgid="8352738347856724389">"Жұлдыз"</item>
+    <item msgid="7082783098151998721">"Лотос гүлі"</item>
+    <item msgid="5772220259409264724">"Супервайзер"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 1cd5013..be95fc1 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Тоқтатылған"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Белгісіз"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Алдын ала көру"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR коды"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Кішірек ету"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Үлкенірек ету"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Әрдайым"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Есту құрылғысының параметрлері"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Жылдам пәрмен, есту аппаратының үйлесімділігі"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Параметрлер жинағы"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Аудиолог бағдарламалаған параметрлер жинағы жоқ."</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Параметрлер жинағы жаңартылмады."</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудио шығысы"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Аудио шығысы туралы"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Бұл қолданба үшін \"Параметрлер\" бөлімінен тіл таңдау мүмкіндігі қолжетімсіз."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Тілдер қолданбадағы тілдерден өзгеше болуы мүмкін. Кейбір қолданба бұл параметрді қолдамауы мүмкін."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Әр қолданбаға бөлек тіл орнатыңыз."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Құрылғыңыздың жүйесі, ондағы қолданбалар мен веб-сайттар өзіңіз қолданатын тілдердің ішіндегі қолдау көрсетілетін алғашқы тілді пайдаланады."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Құрылғыңызда, қолданбаларыңызда және веб-сайттарыңызда таңдаулы тіл тізіміндегі бірінші қолдау көрсетілетін тіл пайдаланылады.\n\nСондай-ақ көптеген қолданба күндерді, сандарды және бірліктерді форматтау үшін таңдаулы тілге сәйкес аймақты пайдаланады. Аймағыңызды өзгерту үшін тіл қосыңыз, содан кейін қажетті аймақты таңдаңыз."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Әр қолданбаның өз тілін таңдау үшін сол қолданбаның тіл параметрлеріне өтіңіз."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Қолданба тілдері туралы толық ақпарат"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Жүйе тілін %s тіліне ауыстыру керек пе?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Өшірулі"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Қосулы / # қолданба локацияны пайдалана алады.}other{Қосулы / # қолданба локацияны пайдалана алады.}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктелуде…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Маңайдағы құрылғыларды пайдалану рұқсаты бар қолданбалар телефонға жалғанған құрылғылардың тиісті орнын анықтай алады."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"\"Маңайдағы құрылғылар\" рұқсаты бар қолданбалар жалғанған құрылғылардың тиісті орнын анықтай алады."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Қолданбалар мен қызметтер үшін локацияны пайдалану рұқсаты өшірулі. Бірақ құтқару қызметіне қоңырау шалатын немесе хабар жіберетін болсаңыз, құрылғыңыздың локациясы беріледі."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Локация параметрлері туралы толық ақпарат"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Өзгерту үшін ChromeOS жүйесінің \"Параметрлер &gt; Құпиялық және қауіпсіздік &gt; Құпиялық параметрлері &gt; Локацияны пайдалану рұқсаты\" бөліміне өтіңіз."</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Бет тану функциясы және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Бет тану функциясы, саусақ ізі және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Бет тану функциясы, саусақ іздері және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator құлпын ашу"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Сағат қосылды."</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Сағат параметрлерін реттеу"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Құлыпты сағат арқылы ашу туралы толық ақпарат"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Сағатты қосу"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Сағатты өшіру"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Бет және саусақ ізі арқылы құлыпты ашу"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Бет тану, саусақ ізімен ашу"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Жұмысқа арналған бет тану және саусақ ізімен ашу функциялары"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Реттеу қажет."</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Бет және саусақ іздері енгізілді."</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Құпия кеңістік реттеліп жатыр…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Құпия кеңістікті реттеу мүмкін болмады"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Қайталау"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Шығу"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Құпия кеңістік істемейді.\nЫқтимал себептерді көріңіз."</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Ықтимал себептерді көру"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Құпия кеңістікке жаңа құлып таңдау керек пе?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Құпия кеңістіктің өзіне жаңа құлып орната аласыз немесе құрылғыңыздың құлпын ашу үшін пайдаланатын құлыпты пайдалана аласыз."</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Экран құлпын пайдалану"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Құрылғыны өшіріп қосасыз ба?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Толық NFC журналы әзірлеу мақсаттарына ғана арналған. Қосымша NFC деректері қате туралы есептерге қосылған, ал онда құпия ақпарат болуы мүмкін. Бұл параметрді өзгерту үшін құрылғыны өшіріп қосыңыз."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Өшіріп қосу"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Қосулы"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Өшірулі"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Сыртқы дисплей"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Сыртқы дисплейді пайдалану"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Дисплей ажыратымдылығы"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Сыртқы дисплей ажыратылған."</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Бұру"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Стандартты"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Бұру шамасын немесе ажыратымдылықты өзгертсе, қазір жұмыс істеп тұрған қолданбалар тоқтауы мүмкін"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Экран көшірмесін көрсету үшін құрылғы сыртқы дисплейге қосылуы керек."</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Басқа опциялар"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Трансляция"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"айна"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Сымсыз дисплейді қосу"</string>
@@ -969,7 +990,7 @@
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"Кездейсоқ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"Құрылғыны қосу"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Құрылғыны “<xliff:g id="SSID">%1$s</xliff:g>” желісіне қосу үшін төмендегі QR кодын ортасына туралаңыз"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"QR кодын сканерлеу"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"QR кодын сканерлеңіз"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"“<xliff:g id="SSID">%1$s</xliff:g>” желісіне жалғау үшін төмендегі QR кодын ортасына туралаңыз"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Wi‑Fi желісіне қосылу үшін QR кодын сканерлеңіз."</string>
     <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Wi‑Fi желісін бөлісу"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Бейімделеді"</string>
     <string name="brightness" msgid="6216871641021779698">"Жарықтық деңгейі"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Жарықтықты бейімдеу"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Жарықтықты бейімдеу туралы"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Экран жарықтығы қоршаған ортаға және әрекеттерге автоматты түрде бейімделеді. Жүгірткіні қолмен жылжытсаңыз, функция қалауыңызды ескеретін болады."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Қосулы"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Өшірулі"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опциялар"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Арнайы мүмкіндіктер"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физикалық пернетақта"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Экрандағы пернетақтаны пайдалану"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Физикалық пернетақта қосулы кезде оны экранға шығару"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Қайтару пернелері"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Пернетақта перненің <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс ішінде жылдам қайталап басылғанын елемейді."</string>
     <string name="slow_keys" msgid="2891452895499690837">"Баяу пернелер"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Перненің <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс ішінде іске қосылуына қажетті уақытты реттейді."</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="2396247040177734245">"Тінтуірді басқару үшін физикалық пернетақтаны пайдаланыңыз."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Меңзердің бояу стилін сары түске өзгертеді."</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Меңзердің бояу стилін қызғылт түске өзгертеді."</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Меңзердің бояу стилін көк түске өзгертеді."</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Меңзер сызығының стилі"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Ақ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Қара"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Жоқ"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Сенсорлық тақта қимылдарын үйрену"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"сенсорлық тақта, тінтуір, курсор, айналдыру, сырғыту, тінтуірдің оң жақ түймесін басу, басу, клик, меңзер"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"тінтуірдің оң жақ түймесін басу, түрту"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Пайдаланушы таңдаған: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Сөз"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Меңзер жылдамдығы"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Меңзер өлшемі"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Меңзер өлшемін кішірейту"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Меңзер өлшемін ұлғайту"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Ойын бақылаушы"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Дірілді бағыттау"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Жалғанған кезде дірілді ойын контроллеріне бағыттау"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Бәрібір жалғастыру"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Бас тарту"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ұлғайту параметрлері"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Бір саусақпен панорамалау"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Ұлғайтқышты 1 саусақпен жылжытыңыз"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Экранда жылжу үшін 1 саусақпен сүйреңіз."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Ұлғайту аймағын бір саусақпен сүйреп жылжытыңыз."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Ұлғайту аймағын екі саусақпен сүйреп жылжытыңыз."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Экранның тек бір бөлігін ұлғайту кезінде қолданылмайды."</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Масштабтау үшін түймені түртіңіз"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Экранның масштабын тез өзгертіп, контентті үлғайта аласыз."</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Ұлғайту үшін:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.&lt;br/&gt; {1,number,integer}. Экранды түртіңіз.&lt;br/&gt; {2,number,integer}. Экранның басқа жеріне жылжу үшін 2 саусақпен сүйреңіз.&lt;br/&gt; {3,number,integer}. Ыңғайлы масштабты таңдау үшін 2 саусақ арасын ашыңыз немесе қосыңыз.&lt;br/&gt; {4,number,integer}. Жылдам пәрмен көмегімен ұлғайту режимінен шығыңыз.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Уақытша ұлғайту үшін:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ұлғайту түріне \"толық экран\" мәні тағайындалғанына көз жеткізіңіз.&lt;br/&gt; {1,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.&lt;br/&gt; {2,number,integer}. Экранның кез келген жерін түртіп ұстап тұрыңыз.&lt;br/&gt; {3,number,integer}. Экранның басқа жеріне жылжу үшін саусақпен сүйреңіз.&lt;br/&gt; {4,number,integer}. Ұлғайту режимінен шығу үшін саусағыңызды көтеріңіз."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Ұлғайту үшін:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.&lt;br/&gt; {1,number,integer}. Экранды түртіңіз.&lt;br/&gt; {2,number,integer}. Экранның басқа жеріне жылжу үшін 2 саусақпен сүйреңіз.&lt;br/&gt; {3,number,integer}. Масштабтаудты реттеу үшін 2 саусақ арасын ашыңыз.&lt;br/&gt; {4,number,integer}. Жылдам пәрмен көмегімен ұлғайтуды тоқтатыңыз.&lt;br/&gt;&lt;br/&gt; Сондай-ақ уақытша ұлғайта аласыз және басқа әрекеттерді орындауыңызға болады."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Ұлғайту үшін:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Жылдам пәрмен көмегімен ұлғайта бастаңыз.&lt;br/&gt; {1,number,integer}. Экранды түртіңіз.&lt;br/&gt; {2,number,integer}. Экранның басқа жеріне жылжу үшін 1 не 2 саусақпен сүйреңіз.&lt;br/&gt; {3,number,integer}. Масштабтаудты реттеу үшін 2 саусақ арасын ашыңыз.&lt;br/&gt; {4,number,integer}. Жылдам пәрмен көмегімен ұлғайтуды тоқтатыңыз.&lt;br/&gt;&lt;br/&gt; Сондай-ақ уақытша ұлғайта аласыз және басқа әрекеттерді орындауыңызға болады."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ұлғайту функциясы қосулы тұрғанда, экраныңызды ұлғайта аласыз.\n\n"<b>"Масштабтау үшін"</b>" ұлғайту функциясын іске қосып, экранның кез келген жерін түртіңіз.\n"<ul><li>"Айналдыру үшін екі немесе бірнеше саусақпен сүйреңіз."</li>\n<li>"Масштабтауды реттеу үшін екі немесе бірнеше саусақты жақындатыңыз."</li></ul>\n\n<b>"Уақытша масштабтау үшін"</b>" ұлғайту функциясын іске қосыңыз, содан кейін экранның кез келген жерін басып тұрыңыз.\n"<ul><li>"Жылжыту үшін саусағыңызды экранның бір жерінен екінші жеріне сүйреңіз."</li>\n<li>"Кішірейту үшін саусағыңызды көтеріңіз."</li></ul>\n\n"Пернетақтада және навигация жолағында ұлғайту мүмкін емес."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g> бет"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Арнайы мүмкіндіктер түймесінің жылдам пәрмені"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Экранның төменгі жағынан 2 саусағыңызбен жоғары сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 2 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Экранның төменгі жағынан 3 саусағыңызбен жоғарыға сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 3 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Экранның төменгі жағынан жоғары қарай сырғытыңыз. Бір функциядан екінші функцияға ауысу үшін жоғары қарай сырғытып, ұстап тұрыңыз.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Экранды екі саусақпен екі рет түрту"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Экранды %1$d рет жылдам түртіңіз. Бұдан құрылғы жұмысы баяулауы мүмкін."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d саусақпен екі рет түрту"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Экранды екі саусағыңызбен {0,number,integer} рет жылдам түртіңіз."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үш рет түрту"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"үш рет түрту"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} рет жылдам түртіңіз. Бұл жылдам пәрмен құрылғы жұмысын баяулатуы мүмкін."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Қосымша"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Арнайы мүмкіндіктер <xliff:g id="SERVICE">%1$s</xliff:g> қызметіне орнатылды. Ұлғайту функциясын пайдалану үшін арнайы мүмкіндіктер түймесін басып тұрып, ұлғайту пәрменін таңдаңыз."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Арнайы мүмкіндіктер қимылы <xliff:g id="SERVICE">%1$s</xliff:g> қызметіне орнатылған. Үлкейту үшін экранның төменгі жағынан жоғары қарай екі саусақпен сырғытып, ұстап тұрыңыз. Одан кейін үлкейтуді таңдаңыз."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Бұл қызмет жұмыс істемейді."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Арнайы мүмкіндіктердің жылдам пәрмендері"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Жылдам параметрлер арқылы көрсету"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Қызыл – жасыл"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Қызыл – жасыл"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Қызыл-жасыл, жасыл жеңіл"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Қызыл-жасыл, қызыл жеңіл"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Көк – сары"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сұр түстер"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Қанықтығы"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Жасылды көру қабілеті нашар, дейтераномалия"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Қызылды көру қабілеті нашар, протаномалия"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Сұр түстер режимінде не түсті түзету функциясы өшірілгенде қолданылмайды."</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Дейтераномалия"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномалия"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Экранды қарайту"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Экранды қарайту"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Көгілдір"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Сары"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Қызылкүрең"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметіне құрылғыны толық басқаруға рұқсат етілсін бе?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметіне қажет:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Бағдарлама рұқсат сұрауын жасырып тұрғандықтан, Параметрлер жауабыңызды тексере алмайды."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметі құрылғыға толық кіру мүмкіндігін сұрауда. Ол экрандағы мәліметтерді оқып, арнайы мүмкіндіктерді талап ететін пайдаланушылар атынан әрекет ете алады. Мұндай басқару деңгейі қолданбалардың көбісіне сәйкес келмейді."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Арнайы мүмкіндіктер бойынша көмектесетін қолданбаларға ғана құрылғыны толық басқару рұқсатын берген дұрыс."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Экранды көру және басқару"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ол экрандағы контентті толық оқиды және контентті басқа қолданбалардың үстінен көрсете алады."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Әрекеттерді көру және орындау"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ол қолданбамен немесе жабдық датчигімен істеген тапсырмаларыңызды бақылайды және қолданбаларды сіздің атыңыздан пайдаланады."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Рұқсат ету"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Тыйым салу"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өшіру"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Жоқ}=1{1 кесте қойылған}other{# кесте қойылған}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Мазаламау"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Басымдылық режимдері"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Режим қосу"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Алаңдататын факторларды азайтып, ұйқыға, жұмысқа, көлік жүргізуге және басқа да әрекеттерге арналған режимдер көмегімен зейініңізді қадағалаңыз."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Өз режиміңізді жасаңыз."</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Хабарландыруды маңызды адамдардан және қолданбалардан ғана алу"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Кесте құру"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Режим негізіндегі кесте"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Күн және уақыт"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00–17:00 жұмыс күндері\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Күнтізбедегі іс-шаралар"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} қосулы}=2{{mode_1} және {mode_2} қосулы}=3{{mode_1}, {mode_2} және {mode_3} қосулы}other{{mode_1}, {mode_2} және тағы # режим қосулы}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 режимді автоматты түрде қосуға болады.}other{# режимді автоматты түрде қосуға болады.}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ҚОСУЛЫ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Орнатылмаған"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Өшірілді"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Режим жасау"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Арнаулы"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Қазір қосу"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Өшіру"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Режим табылмады."</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Хабарландыруларды шектеу"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Кедергілер мен алаңдататын нәрселерді блоктау"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> режимін реттеу"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Мазаламау режимін қосу"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Оятқыштар мен мультимедиа дыбыстары тоқтата алады."</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Кестелер"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Кестелерді жою"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Жою"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Атын өзгерту"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Жою"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" режимі өшірілсін бе?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Өзгерту"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Кестелер"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Кесте"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Автоматты түрде қосу"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Күнтізбе қосыңыз"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Өз күнтізбеңізді пайдаланыңыз"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Жоспарлау"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Кесте құру"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Автоматты түрде қосу уақыты"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Іс-шаралар кестесі"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Іс-шаралар кезінде қосу"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Шақыруға берілген жауап орны"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Уақыт кестесі"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Кесте"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> сағ <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Кесте"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Дыбыстарға рұқсат ету"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Көрнекі мазалағыштарды бөгеу"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Визуалды сигналдарды қосу"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Сізге жіберілуі мүмкін хабарландырулар"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Қосымша әрекеттер"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Хабарландыру сүзгілері"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Қосымша параметрлер"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Өшірулі}=1{Өшірулі / 1 режимді автоматты түрде қосуға болады.}other{Өшірулі / # режимді автоматты түрде қосуға болады.}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Дисплей параметрлері"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Дисплей опциялары"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Сұр түстер"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"қараңғы режимді қосу"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Ашық түсті мәтін қараңғы фонда көрсетілу үшін операциялық жүйе мен қолданба режимін ауыстырыңыз. Сонда көзге жеңіл болады әрі кейбір құрылғылардың батареясын барынша үнемдейді."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Дисплей өзгерістері жоқ}=1{{effect_1}}=2{{effect_1} және {effect_2}}=3{{effect_1}, {effect_2} және {effect_3}}other{{effect_1}, {effect_2} және тағы # әсер}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Хабарландыруды шектеу"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Ешқандай кедергі іріктелмейді."</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Іріктелген хабарландыруларды көрсету опциялары"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Мазаламау режимі қосулы кезде"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Хабарландырулар дыбыссыз беріледі"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"хабарландыруды ашу"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Хабарландыруларды кейінге қалдыруға рұқсат беру"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Қолданба белгішесіндегі хабарландыру белгісі"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Хабарландыру топтары"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Қалқыма хабарлар"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Қалқыма хабарлар"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Осы әңгімені қалқыма хабар түрінде шығару"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Бейімделетін хабарландырулар"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Бейімделетін хабарландыруларды пайдалану"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Қысқа уақыт ішінде көп хабарландыру алған кезде, телефоныңыз дыбыс деңгейін азайтып, екі минутқа дейін экран бетіндегі қалқымалы терезелерді қысқартады. Қоңыраулар, оятқыштар және маңызды әңгімелер әдеттегідей дірілмен беріледі, дыбыс шығарады немесе экран бетінде көрсетіледі. Барлық хабарландыруды экранның жоғарғы жағынан төменге қарай сырғыту арқылы таба аласыз."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Жұмыс профиліндегі қолданбаларға қолдану"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Көмекші VR қызметтері"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Санаттар"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Басқа"</string>
     <string name="no_channels" msgid="4716199078612071915">"Бұл қолданба ешқандай хабарландыру жіберген жоқ."</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Пайдаланылмайтын санаттарды көрсету"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Қолданбадағы қосымша параметрлер"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Пайдаланылмайтын санаттарды көрсету"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Пайдаланылмайтын санаттарды жасыру"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Әңгімелер"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Барлық әңгіме"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"барлық әңгіме"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Маңызды әңгімелер"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"маңызды әңгімелер"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Жоқ"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Тоқтата алатын қолданбалар"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Таңдалған қолданбалар"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Жоқ"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Барлығы"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ешқандай қолданба кедергі келтіре алмайды}=1{{app_1} кедергі келтіре алады}=2{{app_1} және {app_2} кедергі келтіре алады}=3{{app_1}, {app_2} және {app_3} кедергі келтіре алады}other{{app_1}, {app_2} және тағы # қолданба кедергі келтіре алады}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (жұмыс)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Есептеліп жатыр…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Қолданбаларға қайта анықтауға рұқсат беру"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Тоқтата алатын қолданбалар"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Басқа да қолданбаларды таңдаңыз"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Адамдар қайта қоңырау шалғанда, олардың қоңырауы тоқтатылуы мүмкін."</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Барлығы тоқтата алады."</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Қайта қоңырау шалушылар"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Қайта қоңырау шалушыларға рұқсат ету"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Мына уақытқа дейін оятқышқа бір сағатқа өзгерту: {time}}other{Мына уақытқа дейін оятқышқа # сағатқа өзгерту: {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> дейін \"дабылдар ғана\" режиміне өзгерту"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Әрқашан тоқтатуға өзгерту"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Атын өзгерту"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Белгішені өзгерту"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Белгішені өзгерту"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Өзгерту режимі"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Режим жасау"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Пайдаланушы режимі"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Режим аты"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Күнтізбедегі іс-шаралар"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"\"Ұйқы\" режимі"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Көлік жүргізгенде"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Қолданба параметрлері"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Ақпарат пен параметрлерді қолданбада (<xliff:g id="APP_NAME">%1$s</xliff:g>) көруге болады."</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> басқарады"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> өшірілсін бе?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Өшірулі кезде бұл режим ешқашан қосылмайды."</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Өшіру"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> қосылсын ба?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Параметрлеріне қарай бұл режим автоматты түрде қосылуы мүмкін."</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Қосу"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Кәдімгі кесте бойынша істейтін режим орнатыңыз."</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Күнтізбедегі іс-шаралармен және шақыруға берілген жауаптармен синхрондау режимін орнатыңыз."</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Тыныштандыратын ұйқы режимін жасай аласыз. Оятқыш орнатыңыз, экранды қарайтыңыз және хабарландыруларды өшіріп қойыңыз."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Көлікті мұқият жүргізу үшін жол қауіпсіздігіне бірінші кезекте көңіл бөліңіз."</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Ескерту"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Жабу"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Осы құрылғы туралы пікір жіберу"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Корпус"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Параметрлер панелі"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Жұмыс үстелінің режимін мәжбүрлеп қосу"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Қосымша дисплейлерде эксперименттік жұмыс үстелі режимін мәжбүрлеп қосу"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Еркін пішінді терезелерге рұқсат беру"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Қосымша дисплейде еркін пішінді терезені қосу"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Өлшемі өзгермейтін қолданба мен көп терезелі режим"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Өлшемі өзгермейтін қолданбаларды көп терезелі режимде пайдалануға мүмкіндік береді."</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Қараңғылауға жол бермеу"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобильдік интернет"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Құрылғы жұмысын жақсарту үшін қолданбалар мен қызметтер Wi-Fi байланысы өшірулі кезде де Wi-Fi желілерін іздейді. Бұл, мысалы, локацияға негізделген функциялар мен қызметтерді жақсарту үшін пайдаланылуы мүмкін. Оны Wi-Fi іздеу параметрлерінен өзгерте аласыз."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Өзгерту"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Жалғанды"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Уақытша байланыс орнатылды."</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Уақытша <xliff:g id="SUBNAME">%1$s</xliff:g> операторы пайдаланылып жатыр."</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Қолданбаны бекіту функциясын пайдалану"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Әзірлеуші опцияларын пайдалану"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Баспа қызметін пайдалану"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Бірнеше пайдаланушыға рұқсат беру"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Пайдаланушыны ауыстыруға рұқсат беру"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"рұқсат беру, бірнеше, пайдаланушы, көп"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"бірнеше, пайдаланушылар, профильдер, адамдар, аккаунттар, ауыстыру, көп"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Сымсыз түзетуді пайдалану"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Планшет қондыру станциясына қойылған кезде, экраныңызда ненің көрсетілетінін таңдаңыз. Скринсейвер пайдаланылған кезде құрылғы көбірек қуат тұтынуы мүмкін."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Реттеу"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> скринсейверін бейімдеу"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Еркін түрде қолдау параметрін белсендіру үшін құрылғыны өшіріп қосу қажет."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Қосымша дисплейлерде жұмыс үстелі режимін мәжбүрлеп белсендіру үшін құрылғыны өшіріп қосу қажет."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Еркін пішінді терезелер мүмкіндігін қосу үшін құрылғыны өшіріп қосу қажет."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Еркін пішімді терезелерді қолдану мүмкіндігін жаңарту үшін құрылғыны өшіріп қосу керек."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Қосымша дисплейлерде еркін пішімді терезелерді қосу үшін құрылғыны өшіріп қосу керек."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Қазір өшіріп қосу"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Кейінірек өшіріп қосу"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Кеңістіктік дыбыс"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Раушан"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Қызғылт күлгін"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Күлгін"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Дайын"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Сақтау"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Бас тарту"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Әдепкі"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Орташа"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Қосулы"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Өшірулі"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Қосулы"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: сол жақ %1$d%%, оң жақ %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: сол жақ %1$d%%, оң жақ %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Құрылғыңыздың аты орнатылған қолданбаларға көрінеді. Bluetooth құрылғыларына, Wi-Fi желісіне қосылғанда немесе Wi-Fi хотспотын орнатқанда, басқа адамдарға да көрінуі мүмкін."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Грамматикалық тек"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Грамматикалық текті таңдаңыз"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Трансляцияны тыңдау"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Аудио трансляцияның QR кодын сканерлеп, құрылғымен (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) тыңдаңыз."</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Бөлісу кезінде құпия сөзді өзгертуге болмайды. Өзгерту үшін алдымен аудио бөлісу функциясын өшіріңіз."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR кодының сканері"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Іздеу параметрлері"</string>
 </resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index d5f03a9..32fbf05 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"ម៉ោង​គេង"</item>
-    <item msgid="4152450357280759894">"កំពុងបើកបរ"</item>
-    <item msgid="7096549258219399423">"ជក់ចិត្ត"</item>
-    <item msgid="2760716776980432977">"បាន​គ្រប់គ្រង"</item>
-    <item msgid="601734478369121764">"ផ្កាយ"</item>
-    <item msgid="6243809315432780521">"ប្រតិទិន"</item>
-    <item msgid="4913577903148415331">"ពេលវេលា"</item>
-    <item msgid="3653377604690057780">"រោង​ល្ខោន"</item>
-    <item msgid="3843711267408385410">"ផ្កា"</item>
+    <item msgid="2750940760340557109">"ព្រះ​ចន្ទមួយចំហៀង"</item>
+    <item msgid="8513969636586738035">"រថយន្ត"</item>
+    <item msgid="957392343846370509">"ចិត្តរបស់មនុស្ស"</item>
+    <item msgid="6734164279667121348">"ប្រតិទិន"</item>
+    <item msgid="4139559120353528558">"នាឡិកា"</item>
+    <item msgid="5157711296814769020">"ឆត្រនៅតាមឆ្នេរ"</item>
+    <item msgid="6635328761318954115">"តង់"</item>
+    <item msgid="1711994778883392255">"ដុំហ្វីលភាពយន្ត"</item>
+    <item msgid="9097658401859604879">"ឧបករណ៍បញ្ជាហ្គេម"</item>
+    <item msgid="755931364157422565">"ដុំដែកនៅកន្លែងហាត់ប្រាណ"</item>
+    <item msgid="8894207806795738429">"មនុស្សកំពុងគប់បាល់"</item>
+    <item msgid="2274801572149555103">"មនុស្សកំពុងធាក់"</item>
+    <item msgid="8795037201506843325">"ការហែលទឹក"</item>
+    <item msgid="3558421426169430451">"មនុស្សកំពុងដើរកាត់​ព្រៃភ្នំ"</item>
+    <item msgid="7455070421232184932">"កូនហ្គោល"</item>
+    <item msgid="5841773092449126508">"ឧបករណ៍រោងជាង"</item>
+    <item msgid="4595330511709890409">"កាបូបធ្វើការ"</item>
+    <item msgid="8352738347856724389">"ផ្កាយ"</item>
+    <item msgid="7082783098151998721">"ផ្កា​ឈូក"</item>
+    <item msgid="5772220259409264724">"អ្នកគ្រប់គ្រង"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 9abc37e..33107ac 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"បានផ្អាក"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"មិនស្គាល់"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"មើលសាកល្បង"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"កូដ QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"កំណត់ឲ្យតូចជាងមុន"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"កំណត់ឲ្យធំជាងមុន"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ជានិច្ច"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ការកំណត់ឧបករណ៍ជំនួយការស្ដាប់"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ផ្លូវកាត់ ភាពត្រូវគ្នាជាមួយនឹង​ឧបករណ៍​ជំនួយការស្ដាប់"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"កំណត់ជាមុន"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"មិនមានការកំណត់ជាមុនដែលរៀបចំដោយអ្នកជំនាញផ្នែកសោតវិញ្ញាណរបស់អ្នកទេ"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"មិនអាច​ប្ដូរ​ការកំណត់ជាមុន​បានទេ"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ឧបករណ៍បញ្ចេញសំឡេង"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"អំពីឧបករណ៍បញ្ចេញសំឡេង"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"មិនអាចជ្រើសរើសភាសាសម្រាប់កម្មវិធីនេះពីការកំណត់បានទេ។"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ភាសាអាចមាន​ភាពខុសគ្នាពី​ភាសាដែលមាននៅក្នុង​កម្មវិធី។ កម្មវិធីមួយចំនួន​ប្រហែលជាមិនអាចប្រើ​ការកំណត់នេះបានទេ។"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"កំណត់ភាសាសម្រាប់កម្មវិធីនីមួយៗ។"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"ប្រព័ន្ធ កម្មវិធី និងគេហទំព័រ​របស់អ្នក​ប្រើភាសាដែលស្គាល់ដំបូងគេពី​ភាសាដែលអ្នកចង់ប្រើ។"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"ឧបករណ៍ កម្មវិធី និងគេហទំព័រ​របស់អ្នក​ប្រើភាសាដែលស្គាល់ដំបូងគេពី​បញ្ជីភាសាដែលអ្នកចង់ប្រើ។\n\nកម្មវិធីជាច្រើនក៏នឹងប្រើតំបន់ពីភាសាដែលអ្នកចង់ប្រើដើម្បីកំណត់ទម្រង់កាលបរិច្ឆេទ លេខ និងឯកតាផងដែរ។ ដើម្បីផ្លាស់ប្ដូរតំបន់របស់អ្នក សូមបញ្ចូលភាសាមួយ បន្ទាប់មកជ្រើសរើសតំបន់ដែលអ្នកចង់ប្រើ។"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ដើម្បីជ្រើសរើស​ភាសាសម្រាប់​កម្មវិធីនីមួយៗ សូមចូលទៅកាន់​ការកំណត់ភាសាកម្មវិធី។"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ស្វែងយល់បន្ថែម​អំពីភាសាកម្មវិធី"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ផ្លាស់ប្ដូរ​ភាសាប្រព័ន្ធ​ទៅជាភាសា %s ឬ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"បិទ"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{បើក / កម្មវិធី # មានសិទ្ធិ​ចូលប្រើ​ទីតាំង}other{បើក / កម្មវិធី # មានសិទ្ធិ​ចូលប្រើ​ទីតាំង}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"កំពុងផ្ទុក…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"កម្មវិធីដែលមានការអនុញ្ញាត​ឱ្យប្រើឧបករណ៍នៅជិត​អាចកំណត់​ចម្ងាយពាក់ព័ន្ធ​នៃឧបករណ៍​ដែលបានភ្ជាប់។"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"កម្មវិធីដែលមានការអនុញ្ញាត​ឧបករណ៍នៅជិត​អាចកំណត់ទីតាំង​ដែលពាក់ព័ន្ធនៃឧបករណ៍​ដែលបានភ្ជាប់។"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ការចូលប្រើ​ទីតាំងត្រូវបានបិទ​សម្រាប់​កម្មវិធី និងសេវាកម្ម។ ទីតាំងឧបករណ៍របស់អ្នកនៅតែអាចត្រូវបានផ្ញើទៅអ្នកសង្គ្រោះបន្ទាន់ដដែល នៅពេលដែលអ្នកហៅទូរសព្ទ ឬផ្ញើសារជាអក្សរទៅលេខសង្គ្រោះបន្ទាន់។"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ស្វែងយល់បន្ថែម​អំពី​ការកំណត់​ទីតាំង"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ដើម្បីផ្លាស់ប្ដូរ សូមចូលទៅកាន់ការកំណត់ ChromeOS &gt; ឯកជនភាព និងសុវត្ថិភាព &gt; ការគ្រប់គ្រង​ឯកជនភាព &gt; ការចូលប្រើទីតាំង"</string>
@@ -295,7 +297,7 @@
     <string name="security_status_title" msgid="6958004275337618656">"ស្ថានភាព​សុវត្ថិភាព"</string>
     <string name="security_dashboard_summary" msgid="7571035662779425918">"ការចាក់សោ​អេក្រង់ កម្មវិធី​រកឧបករណ៍របស់ខ្ញុំ សុវត្ថិភាព​កម្មវិធី"</string>
     <string name="safety_center_title" msgid="7732397372178774777">"សន្តិសុខ និងឯកជនភាព"</string>
-    <string name="safety_center_summary" msgid="3554867379951053869">"សុវត្ថិភាពកម្មវិធី ការចាក់សោឧបករណ៍ ការអនុញ្ញាត"</string>
+    <string name="safety_center_summary" msgid="3554867379951053869">"សន្តិសុខកម្មវិធី ការចាក់សោឧបករណ៍ ការអនុញ្ញាត"</string>
     <string name="security_settings_face_preference_summary" msgid="6675126437396914838">"បាន​បញ្ចូល​មុខ"</string>
     <string name="security_settings_face_preference_summary_none" msgid="523320857738436024">"ត្រូវការរៀបចំ"</string>
     <string name="security_settings_face_preference_title" msgid="2126625155005348417">"ការដោះ​សោ​ដោយស្កេន​មុខ"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"បានបញ្ចូលមុខ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ការដោះសោពីចម្ងាយតាមកម្មវិធីផ្ទៀងផ្ទាត់"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"បានបញ្ចូលនាឡិកាហើយ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"រៀបចំនាឡិការបស់អ្នក"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ស្វែងយល់បន្ថែមអំពីការដោះសោដោយប្រើនាឡិកា"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"បញ្ចូលនាឡិកា"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ដកនាឡិកាចេញ"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ការដោះ​សោ​ដោយស្កេន​មុខ និងស្នាមម្រាមដៃ"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ការដោះសោ​ដោយស្កេនមុខ និង​ស្នាមម្រាមដៃ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ការដោះសោដោយស្កេន​ស្នាមម្រាមដៃ និងមុខ​សម្រាប់ការងារ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ត្រូវការរៀបចំ"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"បានបញ្ចូលស្នាមម្រាមដៃ និងមុខ"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"កំពុងរៀបចំលំហឯកជន…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"មិនអាចរៀបចំលំហឯកជនបានទេ"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ព្យាយាមម្ដងទៀត"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ចាកចេញ"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"មិនមានលំហឯកជនទេ។ \nសូមមើលមូលហេតុដែលអាចកើតមាន"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"មើលមូលហេតុដែលអាចកើតមាន"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ជ្រើសរើសការចាក់សោថ្មីសម្រាប់លំហឯកជនឬ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"អ្នកអាចកំណត់សោថ្មីសម្រាប់លំហឯកជន ឬប្រើសោដូចគ្នាដែលអ្នកប្រើដើម្បីដោះសោឧបករណ៍របស់អ្នក"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ប្រើ​ការ​ចាក់​សោ​អេក្រង់"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ចាប់ផ្តើម​ឧបករណ៍​ឡើង​វិញ​ឬ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ការកត់ត្រា NFC លម្អិត​គឺសម្រាប់តែការអភិវឌ្ឍប៉ុណ្ណោះ។ ទិន្នន័យ NFC បន្ថែម​ត្រូវបានរួមបញ្ចូល​ក្នុងរបាយការណ៍អំពីបញ្ហា​ដែលអាចមានព័ត៌មានឯកជន។ ចាប់ផ្ដើមឧបករណ៍​របស់អ្នក​ឡើងវិញ ដើម្បីប្ដូរ​ការកំណត់នេះ។"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ចាប់ផ្ដើមឡើងវិញ"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"បើក"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"បិទ"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ផ្ទាំង​អេក្រង់​ខាង​ក្រៅ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ប្រើផ្ទាំងអេក្រង់ខាងក្រៅ"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"កម្រិតគុណភាពផ្ទាំងអេក្រង់"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ផ្ទាំងអេក្រង់ខាងក្រៅត្រូវបានផ្ដាច់"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"ការ​បង្វិល"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"ស្តង់ដារ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ការប្ដូរការ​បង្វិល ឬកម្រិតគុណភាពអាចបញ្ឈប់កម្មវិធីទាំងឡាយដែលកំពុងដំណើរការនាពេលបច្ចុប្បន្ន"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"ត្រូវតែភ្ជាប់ឧបករណ៍របស់អ្នកជាមួយផ្ទាំងអេក្រង់ខាងក្រៅ ដើម្បីបញ្ចាំងអេក្រង់របស់អ្នក"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ជម្រើស​ច្រើនទៀត"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"ភ្ជាប់"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"កញ្ចក់"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"បើក​ការ​បង្ហាញ​ឥត​ខ្សែ"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"បត់បែន"</string>
     <string name="brightness" msgid="6216871641021779698">"កម្រិត​ពន្លឺ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"ពន្លឺ​មានភាពបត់បែន"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"អំពីពន្លឺ​មានភាពបត់បែន"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"កម្រិតពន្លឺ​នៅ​លើ​អេក្រង់​របស់អ្នក​នឹង​​កែតម្រូវ​ដោយស្វ័យប្រវត្តិ​ឱ្យ​ស្រប​នឹង​បរិយាកាសជុំវិញ និង​សកម្មភាព​របស់អ្នក។ អ្នក​អាច​ផ្លាស់ទី​របាររំកិល​ដោយដៃ ដើម្បី​ជួយ​ឱ្យ​កម្រិតពន្លឺ​​ដែល​មាន​ភាពបត់បែន​ស្គាល់​ចំណង់ចំណូលចិត្ត​របស់អ្នក។"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"បើក"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"បិទ"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ជម្រើស"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ភាពងាយស្រួល"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ក្ដារចុច​រូបវ័ន្ត"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ប្រើក្ដារចុច​លើអេក្រង់"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"រក្សា​នៅលើអេក្រង់ ពេលក្តារចុចរូបវ័ន្តកំពុងធ្វើ​​ប្រតិបត្តិការ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"គ្រាប់ចុចឡង"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"ក្ដារចុចមិនអើពើនឹងការចុចដដែលៗយ៉ាងរហ័សនៃគ្រាប់ចុចដដែលក្នុងរយៈពេល <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> មិល្លីវិនាទី"</string>
     <string name="slow_keys" msgid="2891452895499690837">"គ្រាប់ចុចយឺត"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"កែតម្រូវរយៈពេលនៃការចុចគ្រាប់ចុចដើម្បីបើកដំណើរការទៅ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> មិល្លីវិនាទី"</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="2396247040177734245">"ប្រើក្ដារចុចរូបវន្ត ដើម្បីគ្រប់គ្រងម៉ៅស៍។"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ប្ដូរស្តាយល៍បំពេញរបស់ព្រួញទៅលឿង"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ប្ដូរស្តាយល៍បំពេញរបស់ព្រួញទៅផ្កាឈូក"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ប្ដូរស្តាយល៍បំពេញរបស់ព្រួញទៅខៀវ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"រចនាប័ទ្មគំនូសសញ្ញាព្រួញ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ស"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ខ្មៅ"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"គ្មាន"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ស្វែងយល់អំពីចលនាផ្ទាំងប៉ះ"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ផ្ទាំងប៉ះ, ផ្ទាំងសម្រាប់ប៉ះ, ម៉ៅស៍, ទស្សន៍ទ្រនិច, រំកិល, អូស, ចុចម៉ៅស៍ខាងស្ដាំ, ចុច, ទ្រនិចរំកិល"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ចុចម៉ៅស៍ខាងស្ដាំ, ចុច"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"បានជ្រើសរើសដោយអ្នកប្រើប្រាស់៖ <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"ការ​និយាយ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"ល្បឿន​ព្រួញ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"សមាមាត្រសញ្ញាព្រួញ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"បន្ថយសមាមាត្រសញ្ញាព្រួញ"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"បង្កើនសមាមាត្រសញ្ញាព្រួញ"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"កម្មវិធី​ពិនិត្យ​ល្បែង"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ការ​ញ័រ​ពេល​បញ្ជូន​បន្ត"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"បញ្ជូន​រំញ័រ​ទៅ​ឧបករណ៍​បញ្ជា​ហ្គេម​នៅ​ពេល​ភ្ជាប់"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"មិនអីទេ បន្តចុះ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"បោះបង់"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ការកំណត់​ការពង្រីក"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ការចាប់អូសដោយម្រាមដៃមួយ"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ផ្លាស់ទីកែវពង្រីកដោយប្រើម្រាមដៃ 1"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"អូសម្រាមដៃ 1 ដើម្បីផ្លាស់ទីជុំវិញអេក្រង់"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ផ្លាស់ទីផ្ទៃពង្រីកដោយអូសម្រាមដៃមួយ។"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ផ្លាស់ទីផ្ទៃពង្រីកដោយអូសម្រាមដៃពីរ។"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"មិនអាចប្រើបានទេ ពេលពង្រីកតែផ្នែកនៃអេក្រង់"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ចុចប៊ូតុងដើម្បីពង្រីក ឬបង្រួម"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ពង្រីកនៅលើអេក្រង់យ៉ាងរហ័ស ដើម្បីបង្ហាញខ្លឹមសារធំជាងមុន"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ដើម្បីពង្រីក៖&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ប្រើ​ផ្លូវកាត់ ដើម្បីចាប់ផ្ដើម​ការពង្រីក&lt;br/&gt; {1,number,integer}. ចុច​អេក្រង់&lt;br/&gt; {2,number,integer}. អូស​ម្រាមដៃ 2 ដើម្បីផ្លាស់ទីនៅជុំវិញអេក្រង់&lt;br/&gt;{3,number,integer}. ច្បិច​ដោយប្រើ​ម្រាមដៃ 2 ដើម្បី​កែតម្រូវ​ការពង្រីកបង្រួម&lt;br/&gt; {4,number,integer}. ប្រើ​ផ្លូវកាត់ ដើម្បី​បញ្ឈប់​ការពង្រីក&lt;br/&gt;&lt;br/&gt; &lt;b&gt;ដើម្បីពង្រីក​ជាបណ្ដោះអាសន្ន៖&lt;/b&gt;&lt;br/&gt; {0,number,integer}. សូមប្រាកដថា ប្រភេទនៃការ​ពង្រីករបស់អ្នកត្រូវបានកំណត់ទៅពេញអេក្រង់&lt;br/&gt; {1,number,integer}. ប្រើ​ផ្លូវកាត់ ដើម្បី​ចាប់ផ្ដើម​ការពង្រីក&lt;br/&gt; {2,number,integer}. ចុចកន្លែងណាមួយ​នៅលើ​អេក្រង់ឱ្យជាប់&lt;br/&gt; {3,number,integer}. អូស​ម្រាមដៃ ដើម្បីផ្លាស់ទី​នៅជុំវិញ​អេក្រង់&lt;br/&gt; {4,number,integer}. ដកម្រាមដៃចេញ ដើម្បី​បញ្ឈប់​ការ​ពង្រីក"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ដើម្បីពង្រីក៖&lt;/b&gt;&lt;br/&gt; {0,number,integer}។ ប្រើ​ផ្លូវកាត់ ដើម្បីចាប់ផ្ដើម​ការពង្រីក&lt;br/&gt; {1,number,integer}។ ចុច​អេក្រង់&lt;br/&gt; {2,number,integer}។ អូស​ម្រាមដៃ 2 ដើម្បីផ្លាស់ទីលើអេក្រង់&lt;br/&gt;{3,number,integer}។ ច្បិច​ដោយប្រើ​ម្រាមដៃ 2 ដើម្បី​កែតម្រូវ​ការពង្រីកបង្រួម&lt;br/&gt; {4,number,integer}។ ប្រើផ្លូវកាត់ ដើម្បីបញ្ឈប់ការ​ពង្រីក&lt;br/&gt;&lt;br/&gt; អ្នកក៏អាចពង្រីកជាបណ្ដោះអាសន្ន និងធ្វើអ្វីៗជាច្រើនទៀតបានផងដែរ។"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ដើម្បីពង្រីក៖&lt;/b&gt;&lt;br/&gt; {0,number,integer}។ ប្រើ​ផ្លូវកាត់ ដើម្បីចាប់ផ្ដើម​ការពង្រីក&lt;br/&gt; {1,number,integer}។ ចុច​អេក្រង់&lt;br/&gt; {2,number,integer}។ អូសម្រាមដៃ 1 ឬ 2 ដើម្បីផ្លាស់ទីលើអេក្រង់&lt;br/&gt; {3,number,integer}។ ច្បិច​ដោយប្រើ​ម្រាមដៃ 2 ដើម្បី​កែតម្រូវ​ការពង្រីកបង្រួម&lt;br/&gt; {4,number,integer}។ ប្រើផ្លូវកាត់ ដើម្បីបញ្ឈប់ការ​ពង្រីក&lt;br/&gt;&lt;br/&gt; អ្នកក៏អាចពង្រីកជាបណ្ដោះអាសន្ន និងធ្វើអ្វីៗជាច្រើនទៀតបានផងដែរ។"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"នៅពេល​បើកការពង្រីក អ្នក​អាចពង្រីក​នៅលើអេក្រង់​របស់អ្នកបាន។\n\n"<b>"ដើម្បី​ពង្រីកបង្រួម"</b>" សូម​ចាប់ផ្ដើម​ការពង្រីក រួច​ចុចលើកន្លែងណាមួយ​នៅលើអេក្រង់។\n"<ul><li>"អូសដោយប្រើម្រាមដៃ 2 ឬច្រើនដើម្បីរំកិល"</li>\n<li>"ច្បិចដោយប្រើម្រាមដៃ 2 ឬច្រើន ដើម្បីកែតម្រូវ​ការពង្រីកបង្រួម"</li></ul>\n\n<b>"ដើម្បី​ពង្រីកបង្រួម​ជាបណ្តោះអាសន្ន"</b>" ចាប់ផ្តើម​ការពង្រីក បន្ទាប់មកចុចសង្កត់​កន្លែងណាមួយនៅលើអេក្រង់ឱ្យជាប់។\n"<ul><li>"អូសដើម្បីផ្លាស់ទីនៅលើអេក្រង់"</li>\n<li>"លើកម្រាមដៃឡើងដើម្បីបង្រួម"</li></ul>\n\n"អ្នកមិនអាចពង្រីកនៅលើក្តារចុច ឬរបាររុករកបានទេ។"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"ទំព័រទី <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> នៃ <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ផ្លូវកាត់ប៊ូតុង​ភាពងាយស្រួល"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"អូស​ឡើងលើ​ពីផ្នែកខាងក្រោម​នៃអេក្រង់ ដោយប្រើ​ម្រាមដៃ 2។\n\nដើម្បី​ប្ដូរ​រវាង​មុខងារ​ផ្សេងៗ សូមអូស​ឡើងលើ ដោយប្រើ​ម្រាមដៃ 2 រួច​សង្កត់ឱ្យជាប់។"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"អូស​ឡើងលើ​ពីផ្នែកខាងក្រោម​នៃអេក្រង់ ដោយប្រើ​ម្រាមដៃ 3។\n\nដើម្បី​ប្ដូរ​រវាង​មុខងារ​ផ្សេងៗ សូមអូស​ឡើងលើ ដោយប្រើ​ម្រាមដៃ 3 រួច​សង្កត់ឱ្យជាប់។"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{អូសពី​ផ្នែកខាងក្រោមនៃ​អេក្រង់របស់អ្នកឡើងលើ។ ដើម្បីប្ដូររវាងមុខងារផ្សេងៗ សូមអូសឡើងលើ ហើយសង្កត់ឱ្យជាប់។}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ចុចអេក្រង់ពីរដងដោយប្រើម្រាមដៃពីរ"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ចុចឱ្យលឿនលើអេក្រង់ %1$d ដង។ ការធ្វើបែបនេះអាចបន្ថយល្បឿនឧបករណ៍របស់អ្នក។"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ចុចពីរដងដោយប្រើម្រាមដៃ %1$d"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ចុចអេក្រង់ {0,number,integer} ដងឱ្យរហ័សដោយប្រើម្រាមដៃពីរ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ចុច​អេក្រង់​បីដង"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ចុចបីដង"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ចុចអេក្រង់ {0,number,integer} ដងឱ្យរហ័ស។ ផ្លូវកាត់​នេះ​អាច​ធ្វើឱ្យ​ឧបករណ៍​របស់អ្នក​ដើរយឺត"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"កម្រិតខ្ពស់"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ប៊ូតុងភាពងាយស្រួលត្រូវបានកំណត់ទៅ <xliff:g id="SERVICE">%1$s</xliff:g>។ ដើម្បីប្រើការពង្រីក សូមចុចប៊ូតុងភាពងាយស្រួលឲ្យជាប់ បន្ទាប់មកជ្រើសរើសការពង្រីក។"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ចលនា​ភាពងាយស្រួល​ត្រូវបានកំណត់​ទៅ <xliff:g id="SERVICE">%1$s</xliff:g> ។ ដើម្បី​ប្រើ​ការពង្រីក សូមអូស​ឡើងលើ​ដោយប្រើ​ម្រាមដៃ​ពីរ ពី​ផ្នែកខាងក្រោម​នៃអេក្រង់ ហើយ​សង្កត់ឱ្យជាប់។ បន្ទាប់មក ជ្រើសរើស​ការពង្រីក។"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"សេវាកម្ម​នេះ​កំពុង​ដំណើរការ​ខុសប្រក្រតី។"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ផ្លូវកាត់​ភាពងាយស្រួល"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"បង្ហាញ​នៅ​ក្នុង​ការ​កំណត់​​រហ័ស"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ក្រហម-បៃតង"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ក្រហម-បៃតង"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ខ្សោយពណ៌បៃតង ក្រហម-បៃតង"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ខ្សោយពណ៌ក្រហម ក្រហម-បៃតង"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ខៀវ-លឿង"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"មាត្រដ្ឋានពណ៌​ប្រផេះ"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"កម្រិត"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ខ្សោយពណ៌បៃតង (ខ្វាក់ពណ៌បៃតង)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ខ្សោយពណ៌ក្រហម (ខ្វាក់ពណ៌ក្រហម)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"មិនមានសម្រាប់មុខងារមាត្រដ្ឋាន​ពណ៌ប្រផេះ ឬនៅពេលការ​កែតម្រូវ​ពណ៌ត្រូវបានបិទ"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"អ្នកមើល​មិនឃើញ​ពណ៌បៃតង"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"អ្នកមើល​មិនឃើញ​ពណ៌ក្រហម"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ខ្វាក់ពណ៌ខៀវ"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ងងឹតខ្លាំង"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ធ្វើឱ្យ​អេក្រង់ងងឹតខ្លាំង"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ពណ៌កាប់ស្តាំង"</string>
     <string name="color_yellow" msgid="5957551912912679058">"ពណ៌លឿង"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ពណ៌ក្រហម​ស្វាយ"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"អនុញ្ញាតឱ្យ <xliff:g id="SERVICE">%1$s</xliff:g> គ្រប់គ្រងឧបករណ៍​របស់អ្នក​ទាំងស្រុង?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ត្រូវ​ការ៖"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"ដោយសារកម្មវិធីមួយកំពុងធ្វើឲ្យសំណើរអនុញ្ញាតមានភាពមិនច្បាស់ ការកំណត់នេះមិនអាចផ្ទៀងផ្ទាត់ការឆ្លើយតបរបស់អ្នកបានទេ។"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> កំពុង​ស្នើ​សុំគ្រប់គ្រង​ឧបករណ៍​នេះ​ទាំងស្រុង។ សេវាកម្ម​នេះអាច​អាន​អេក្រង់ និងធ្វើសកម្មភាពជំនួស​ឱ្យអ្នកប្រើប្រាស់​ដែលត្រូវការ​មុខងារ​ភាពងាយស្រួល។ កម្រិត​នៃការគ្រប់គ្រង​នេះ​មិនស័ក្តិសម​សម្រាប់​កម្មវិធី​ភាគច្រើនទេ។"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ការគ្រប់គ្រង​ទាំងស្រុងមានលក្ខណៈ​សមស្របសម្រាប់​កម្មវិធី ដែលជួយអ្នក​ទាក់ទងនឹងការប្រើមុខងារភាពងាយស្រួល ប៉ុន្តែមិនសមស្របសម្រាប់​កម្មវិធីភាគច្រើនទេ។"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"មើល និង​គ្រប់គ្រងអេក្រង់"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"វា​អាចអានខ្លឹមសារទាំងអស់​នៅលើអេក្រង់ និងបង្ហាញខ្លឹមសារ​លើកម្មវិធីផ្សេងទៀត។"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"មើល និង​ធ្វើសកម្មភាព"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"វា​អាចតាមដានអន្តរកម្មរបស់អ្នកជាមួយនឹងកម្មវិធី ឬសេនស័រហាតវែរ និងធ្វើអន្តរកម្ម​ជាមួយកម្មវិធីនានា​ជំនួសឱ្យអ្នក។"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"អនុញ្ញាត"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"បដិសេធ"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"បិទ"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{គ្មាន}=1{បានកំណត់​កាលវិភាគ 1}other{បានកំណត់​កាលវិភាគ #}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"កុំ​រំខាន"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ម៉ូដអាទិភាព"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"បញ្ចូលមុខងារ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"កាត់បន្ថយការរំខានឱ្យនៅតិចបំផុត និងគ្រប់គ្រងលើការយកចិត្តទុកដាក់របស់អ្នកដោយប្រើមុខងារសម្រាប់ការគេង ធ្វើការ បើកបរ និងគ្រប់យ៉ាងពាក់ព័ន្ធនឹងអ្វីៗទាំងនេះ។"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"បង្កើតមុខងាររបស់អ្នកផ្ទាល់"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"ទទួលការជូនដំណឹង​ពីកម្មវិធី និងមនុស្សសំខាន់ៗ​តែប៉ុណ្ណោះ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"កំណត់​កាលវិភាគ"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"កំណត់កាលវិភាគដោយផ្អែកលើ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ថ្ងៃ និងម៉ោង"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 ព្រឹក - 5 ល្ងាចនៃថ្ងៃធ្វើការ\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"ព្រឹត្តិការណ៍ក្នុង​ប្រតិទិន"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} កំពុង​ដំណើរការ}=2{{mode_1} និង {mode_2} កំពុង​ដំណើរការ}=3{{mode_1}, {mode_2} និង {mode_3} កំពុង​ដំណើរការ}other{{mode_1}, {mode_2}​និង # ទៀតកំពុង​ដំណើរការ}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{មុខងារ 1 អាច​បើកដោយស្វ័យប្រវត្តិ}other{មុខងារ # អាច​បើកដោយស្វ័យប្រវត្តិ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"បើក"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"មិនបានកំណត់"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"បាន​បិទ"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"បង្កើតមុខងារ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ផ្ទាល់ខ្លួន"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"បើក​ឥឡូវនេះ"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"បិទ"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"រកមិនឃើញមុខងារនេះទេ"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"កាត់បន្ថយ​ការរំខាន"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"​ទប់ស្កាត់កត្តារំខាន ឬការរំខាន"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"រៀបចំ <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"បើកមុខងារកុំរំខាន"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"សំឡេង​មេឌៀ និង​ម៉ោងរោទ៍​អាច​ផ្អាកបាន"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"កាលវិភាគ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"លុបកាលវិភាគ"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"លុប"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"ប្ដូរ​ឈ្មោះ"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"លុប"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"លុបមុខងារ \"<xliff:g id="MODE">%1$s</xliff:g>\" ឬ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"កែ"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"កាលវិភាគ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"កាលវិភាគ"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"បើកដោយស្វ័យប្រវត្តិ"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"បញ្ចូលប្រតិទិន"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ប្រើប្រតិទិនរបស់អ្នក"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"កាលវិភាគ"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"កំណត់​កាលវិភាគ"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ពេលដែលត្រូវបើកដោយស្វ័យប្រវត្តិ"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"កាលវិភាគព្រឹត្តិការណ៍"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"បើកក្នុងអំឡុងព្រឹត្តិការណ៍សម្រាប់"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"កន្លែងឆ្លើយតបការអញ្ជើញ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"កាលវិភាគតាមម៉ោង"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"កាលវិភាគ"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ម៉ <xliff:g id="MINUTES">%2$d</xliff:g> ន"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"កាលវិភាគ"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"អនុញ្ញាត​ការរំខានដែលបញ្ចេញសំឡេង"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"រារាំងការរំខានក្នុងការមើល"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"អនុញ្ញាត​សញ្ញា​ដែលមើល​ឃើញ"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"ការ​ជូនដំណឹងដែលអាចផ្សាយទៅដល់អ្នក"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"សកម្មភាព​បន្ថែម"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"តម្រងការជូនដំណឹង"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"ការកំណត់ច្រើនទៀត"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{បិទ}=1{បិទ / មុខងារ 1 អាច​បើកដោយស្វ័យប្រវត្តិ}other{បិទ / មុខងារ # អាច​បើកដោយស្វ័យប្រវត្តិ}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ការកំណត់​ផ្ទាំងអេក្រង់"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ជម្រើស​ផ្ទាំងអេក្រង់"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"មាត្រដ្ឋានពណ៌​ប្រផេះ"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"បើក​ទម្រង់រចនាងងឹត"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"ប្ដូរប្រព័ន្ធ​ប្រតិបត្តិការ និងកម្មវិធីទៅអក្សរពណ៌ស្រាលដែលចង់ប្រើនៅលើផ្ទៃខាងក្រោយងងឹត ដែលអាចមានភាពងាយស្រួលជាងមុនសម្រាប់ភ្នែក និងជួយសន្សំ​ថ្មបានច្រើននៅលើឧបករណ៍មួយចំនួន"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{មិនមានការផ្លាស់ប្ដូរចំពោះផ្ទាំងអេក្រង់ទេ}=1{{effect_1}}=2{{effect_1} និង {effect_2}}=3{{effect_1}, {effect_2} និង {effect_3}}other{{effect_1}, {effect_2} និង # ទៀត}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"ដាក់កំហិតលើអ្វីដែលអាចជូនដំណឹងដល់អ្នក"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"គ្មានការរំខានត្រូវបានត្រងទេ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ជម្រើសបង្ហាញសម្រាប់ការ​ជូនដំណឹងដែលបានត្រង"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"នៅ​ពេល​បើក​មុខងារ​កុំ​រំខាន"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"គ្មានសំឡេង​ពីការជូន​ដំណឹង"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"បើក​ការជូនដំណឹង"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"អនុញ្ញាត​ការផ្អាក​ការជូនដំណឹង"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ស្លាក​ជូនដំណឹង​នៅលើ​រូបកម្មវិធី"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"កញ្ចប់នៃការ​ជូនដំណឹង"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"ពពុះ"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ពពុះ"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"បង្ហាញ​ការសន្ទនានេះ​ជាពពុះ"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"ការជូនដំណឹងបត់បែន"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ប្រើការជូនដំណឹងបត់បែន"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"នៅពេលអ្នកទទួលបានការជូនដំណឹងច្រើនក្នុងរយៈពេលខ្លីមួយ ទូរសព្ទរបស់អ្នកនឹងបន្ថយកម្រិតសំឡេង និងបង្រួមផ្ទាំងលោតឡើងលើអេក្រង់រយៈពេលរហូតដល់ពីរនាទី។ ការហៅទូរសព្ទ ម៉ោងរោទ៍ និងការសន្ទនាអាទិភាពនៅតែញ័រ បន្លឺសំឡេង ឬបង្ហាញឡើងលើអេក្រង់ ហើយងាយស្រួលរកឃើញការជូនដំណឹងទាំងអស់ ពេលអ្នកទាញចុះពីផ្នែកខាងលើនៃអេក្រង់។"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ដាក់ប្រើលើកម្មវិធីកម្រងព័ត៌មានការងារ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"សេវាកម្មជំនួយ VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"ប្រភេទ"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"ផ្សេងៗ"</string>
     <string name="no_channels" msgid="4716199078612071915">"កម្មវិធី​នេះ​មិន​បាន​បង្ហោះ​ការជូនដំណឹង​ណាមួយ​ឡើយ"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"បង្ហាញប្រភេទដែលមិនប្រើ"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ការកំណត់បន្ថែមនៅក្នុងកម្មវិធីនេះ"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"បង្ហាញប្រភេទដែលមិនប្រើ"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"លាក់ប្រភេទដែលមិនប្រើ"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"ការសន្ទនា"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"ការសន្ទនា​ទាំងអស់"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"ការសន្ទនា​ទាំងអស់"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ការសន្ទនា​អាទិភាព"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ការសន្ទនា​អាទិភាព"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"គ្មាន"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"កម្មវិធី​ដែលអាច​ផ្អាកបាន"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"កម្មវិធីដែលបានជ្រើសរើស"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"គ្មាន"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ទាំងអស់"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{គ្មាន​កម្មវិធី​ដែលអាចផ្អាក​បានទេ}=1{{app_1} អាច​ផ្អាកបាន}=2{{app_1} និង {app_2} អាចផ្អាកបាន}=3{{app_1}, {app_2} និង {app_3} អាចផ្អាកបាន}other{{app_1}, {app_2} និង # ទៀតអាចផ្អាកបាន}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ការងារ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"កំពុងគណនា…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"អនុញ្ញាតឱ្យកម្មវិធី​លុបពីលើ"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"កម្មវិធី​ដែលអាច​ផ្អាកបាន"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ជ្រើសរើស​កម្មវិធី​ច្រើនទៀត"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"អ្នកហៅទូរសព្ទ​ដដែលៗអាចផ្អាកបាន"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"នរណា​ក៏អាច​ផ្អាក​បានដែរ"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"អ្នកហៅចូលសាជាថ្មី"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"អនុញ្ញាតអ្នក​ហៅ​ដដែលៗ"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{ប្ដូរទៅម៉ោងរោទ៍រយៈពេលតែមួយម៉ោងប៉ុណ្ណោះរហូតដល់ {time}}other{ប្ដូរទៅម៉ោងរោទ៍រយៈពេលតែ # ម៉ោងប៉ុណ្ណោះរហូតដល់ {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"ប្តូរទៅម៉ោងរោទិ៍រហូតទាល់តែដល់ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ប៉ុណ្ណោះ"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ប្តូរទៅរំខានជានិច្ច"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"ប្ដូរ​ឈ្មោះ"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ប្ដូរ​រូបតំណាង"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ប្ដូរ​រូបតំណាង"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"មុខងារកែ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"បង្កើតមុខងារ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"មុខងារផ្ទាល់ខ្លួន"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ឈ្មោះមុខងារ"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ព្រឹត្តិការណ៍ក្នុង​ប្រតិទិន"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"ទម្លាប់​នៅម៉ោងគេង"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ពេលកំពុងបើកបរ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ការកំណត់កម្មវិធី"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ព័ត៌មាន និងការកំណត់នៅក្នុង <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"គ្រប់គ្រងដោយ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"បិទ <xliff:g id="MODE_NAME">%1$s</xliff:g> ឬ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"មុខងារនេះនឹងមិនបើកឡើយ នៅពេលត្រូវបានបិទ"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"បិទ"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"បើក <xliff:g id="MODE_NAME">%1$s</xliff:g> ឬ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"មុខងារនេះអាចបើកដោយស្វ័យប្រវត្តិ ដោយផ្អែកលើការកំណត់របស់វា"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"បើក"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"កំណត់មុខងារដែលគោរពតាមកាលវិភាគទៀងទាត់"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"កំណត់មុខងារសម្រាប់ធ្វើសមកាលកម្មជាមួយព្រឹត្តិការណ៍ក្នុងប្រតិទិន និងការឆ្លើយតបចំពោះការអញ្ជើញ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"រៀបចំទម្លាប់គេងដែលស្ងប់ស្ងាត់។ កំណត់ម៉ោងរោទ៍ បន្ថយពន្លឺអេក្រង់ និងទប់ស្កាត់ការជូនដំណឹង។"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ផ្ដល់អាទិភាពដល់សុវត្ថិភាពនៅលើផ្លូវសម្រាប់ការបើកបរដែលផ្ចង់អារម្មណ៍ និងគ្មានការរំខាន"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"ការព្រមាន"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"បិទ"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ផ្ដល់​មតិ​កែលម្អ​អំពី​ឧបករណ៍​នេះ"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"ស្រោម"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ថ្ម"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ផ្ទាំងការកំណត់"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"បង្ខំ​មុខងារ​អេក្រង់ដើម"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"បង្ខំ​មុខងារ​អេក្រង់​ដើម​សាកល្បង​នៅលើ​អេក្រង់​ទី​ពីរ"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"បើកវិនដូទម្រង់សេរី"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"បើកវិនដូទម្រង់សេរីនៅលើផ្ទាំងអេក្រង់ទីពីរ"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"បើក​កម្មវិធីដែលមិនអាចប្ដូរទំហំបាន​នៅក្នុង​ពហុវិនដូ"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"អនុញ្ញាតឱ្យ​កម្មវិធីដែលមិនអាចប្ដូរទំហំបាន​ស្ថិតនៅក្នុង​ពហុវិនដូ"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"លុបពីលើ​មុខងារបង្ខំ​ឱ្យងងឹត"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ទិន្នន័យ​ទូរសព្ទចល័ត"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ដើម្បីកែលម្អបទពិសោធប្រើប្រាស់ឧបករណ៍ កម្មវិធី និង​សេវាកម្ម​នៅតែ​អាច​ស្កេនរក​បណ្តាញ Wi-Fi បានគ្រប់ពេល ទោះបីជានៅពេលបិទ Wi-Fi ក៏ដោយ។ សកម្មភាពនេះអាចត្រូវបានប្រើដើម្បីកែលម្អមុខងារ និងសេវាកម្មដែលផ្អែកលើទីតាំងជាដើម។ អ្នកអាចប្ដូរវាបាននៅក្នុងការកំណត់ការស្កេន Wi‑Fi។"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"ផ្លាស់ប្ដូរ"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"បានភ្ជាប់"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"បានភ្ជាប់ជាបណ្ដោះអាសន្ន"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"ប្រើ <xliff:g id="SUBNAME">%1$s</xliff:g> ជាបណ្ដោះអាសន្ន"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ប្រើការខ្ទាស់កម្មវិធី"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ប្រើ​ជម្រើសសម្រាប់អ្នកអភិវឌ្ឍន៍"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ប្រើសេវាកម្ម​បោះពុម្ព"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"អនុញ្ញាតអ្នកប្រើប្រាស់ច្រើន"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"អនុញ្ញាតឱ្យប្ដូរអ្នកប្រើប្រាស់"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"អនុញ្ញាត, ពហុ, អ្នកប្រើប្រាស់, ផ្ដល់សិទ្ធិ, ច្រើន"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ពហុ, អ្នកប្រើប្រាស់, កម្រងព័ត៌មាន, មនុស្ស, គណនី, ប្ដូរ, ច្រើន"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ប្រើ​ការជួសជុលដោយឥតខ្សែ"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ជ្រើសរើសអ្វីដែលអ្នកនឹងមើលឃើញនៅលើអេក្រង់របស់អ្នក នៅពេលភ្ជាប់ថេប្លេតរបស់អ្នក។ ឧបករណ៍របស់អ្នកអាចប្រើថាមពលកាន់តែច្រើន នៅពេលប្រើធាតុរក្សាអេក្រង់។"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"ប្ដូរតាមបំណង"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"ប្ដូរ <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> តាម​បំណង"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបើកជំនួយទម្រង់សេរី។"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបង្ខំមុខងារកុំព្យូទ័រនៅលើផ្ទាំងអេក្រង់បន្ទាប់បន្សំ។"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"តម្រូវឱ្យចាប់ផ្ដើមឡើងវិញ ដើម្បីបើកជំនួយវិនដូទម្រង់សេរី។"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"តម្រូវឱ្យ​ចាប់ផ្ដើមឡើងវិញ ដើម្បីធ្វើបច្ចុប្បន្នភាពលទ្ធភាពមានប្រើវិនដូទម្រង់សេរី។"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"តម្រូវឱ្យ​ចាប់ផ្ដើមឡើងវិញ ដើម្បីបើកវិនដូទម្រង់សេរីនៅលើផ្ទាំងអេក្រង់ទីពីរ។"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ចាប់ផ្ដើមឡើងវិញ​ឥឡូវនេះ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ចាប់​ផ្ដើម​ឡើង​វិញ​ពេល​ក្រោយ"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"សំឡេងលំហ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ក្រហមចាស់"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ក្រហមស្វាយ"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ត្របែក​ព្រៃ"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"រួចរាល់"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"រក្សាទុក"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"បោះបង់"</string>
     <string name="contrast_default" msgid="8918545965525226966">"លំនាំដើម"</string>
     <string name="contrast_medium" msgid="384414510709285811">"មធ្យម"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"បើក"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"បិទ"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"បើក"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"សំឡេងខាងឆ្វេង %1$d%% ខាងស្ដាំ %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"សំឡេងខាងស្ដាំ %1$d%% ខាងឆ្វេង %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"កម្មវិធីដែលអ្នកបានដំឡើងអាចមើលឃើញឈ្មោះឧបករណ៍របស់អ្នក។ មនុស្សផ្សេងទៀតក៏អាចមើលឃើញឈ្មោះឧបករណ៍នេះផងដែរ នៅពេលអ្នកភ្ជាប់ទៅឧបករណ៍​ប៊្លូធូស ភ្ជាប់ទៅបណ្ដាញ Wi-Fi ឬរៀបចំហតស្ប៉ត Wi-Fi។"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"យេនឌ័រតាមវេយ្យាករណ៍"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ជ្រើសរើសយេនឌ័រតាមវេយ្យាករណ៍"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ស្ដាប់ការចាក់"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"ស្កេនកូដ QR ការចាក់សំឡេងលើអ៊ីនធឺណិត ដើម្បីស្ដាប់ជាមួយ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"មិន​អាច​កែ​ពាក្យ​សម្ងាត់​ពេល​កំពុងស្ដាប់រួមគ្នាបានទេ។ ដើម្បីផ្លាស់ប្ដូរពាក្យសម្ងាត់ សូមបិទការស្ដាប់សំឡេងរួមគ្នាជាមុនសិន។"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"កម្មវិធី​ស្កេនកូដ QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ស្វែងរកការកំណត់"</string>
 </resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 70cbce5..8714ccf 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"ಬೆಡ್‌ಟೈಮ್"</item>
-    <item msgid="4152450357280759894">"ಡ್ರೈವಿಂಗ್"</item>
-    <item msgid="7096549258219399423">"ತಲ್ಲೀನಗೊಳಿಸುವ"</item>
-    <item msgid="2760716776980432977">"ನಿರ್ವಹಿಸಿರುವುದು"</item>
-    <item msgid="601734478369121764">"ಸ್ಟಾರ್"</item>
-    <item msgid="6243809315432780521">"ಕ್ಯಾಲೆಂಡರ್"</item>
-    <item msgid="4913577903148415331">"ಸಮಯ"</item>
-    <item msgid="3653377604690057780">"ಥಿಯೇಟರ್"</item>
-    <item msgid="3843711267408385410">"ಹೂವು"</item>
+    <item msgid="2750940760340557109">"ಅರ್ಧಚಂದ್ರ"</item>
+    <item msgid="8513969636586738035">"ಕಾರು"</item>
+    <item msgid="957392343846370509">"ವ್ಯಕ್ತಿಯ ಮನಸ್ಸು"</item>
+    <item msgid="6734164279667121348">"Calendar"</item>
+    <item msgid="4139559120353528558">"ಗಡಿಯಾರ"</item>
+    <item msgid="5157711296814769020">"ಬೀಚ್ ಛತ್ರಿಗಳು"</item>
+    <item msgid="6635328761318954115">"ಟೆಂಟ್"</item>
+    <item msgid="1711994778883392255">"ಫಿಲಂ ರೀಲ್"</item>
+    <item msgid="9097658401859604879">"ಗೇಮ್ ಕಂಟ್ರೋಲರ್"</item>
+    <item msgid="755931364157422565">"ಜಿಮ್ ಡಂಬೆಲ್"</item>
+    <item msgid="8894207806795738429">"ವ್ಯಕ್ತಿ ಚೆಂಡನ್ನು ಎಸೆಯುತ್ತಿರುವುದು"</item>
+    <item msgid="2274801572149555103">"ವ್ಯಕ್ತಿಯು ಒದೆಯುತ್ತಿರುವುದು"</item>
+    <item msgid="8795037201506843325">"ಈಜು"</item>
+    <item msgid="3558421426169430451">"ವ್ಯಕ್ತಿಯು ಹೈಕಿಂಗ್ ಮಾಡುತ್ತಿರುವುದು"</item>
+    <item msgid="7455070421232184932">"ಗಾಲ್ಫ್"</item>
+    <item msgid="5841773092449126508">"ಕಾರ್ಯಾಗಾರದ ಟೂಲ್‌ಗಳು"</item>
+    <item msgid="4595330511709890409">"ಬ್ರೀಫ್‌ಕೇಸ್"</item>
+    <item msgid="8352738347856724389">"ನಕ್ಷತ್ರ"</item>
+    <item msgid="7082783098151998721">"ಕಮಲದ ಹೂವು"</item>
+    <item msgid="5772220259409264724">"ಮೇಲ್ವಿಚಾರಕ"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 6f60ad9..bddfd29 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"ಅಪರಿಚಿತ"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"ಪೂರ್ವವೀಕ್ಷಣೆ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR ಕೋಡ್"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ಚಿಕ್ಕದಾಗಿಸು"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ದೊಡ್ಡದಾಗಿಸು"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ಯಾವಾಗಲೂ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ಶ್ರವಣ ಸಾಧನದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ಶಾರ್ಟ್‌ಕಟ್, ಶ್ರವಣ ಸಾಧನ ಹೊಂದಾಣಿಕೆ"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ಪ್ರಿಸೆಟ್"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"ನಿಮ್ಮ ಆಡಿಯಾಲಜಿಸ್ಟ್‌ರಿಂದ ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಲಾದ ಯಾವುದೇ ಪ್ರಿಸೆಟ್‌ಗಳಿಲ್ಲ"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"ಪ್ರಿಸೆಟ್ ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ಆಡಿಯೋ ಔಟ್‌ಪುಟ್"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ಆಡಿಯೋ ಔಟ್‌ಪುಟ್ ಕುರಿತು"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಮೂಲಕ ಈ ಆ್ಯಪ್‌ಗಾಗಿ ಭಾಷೆಯ ಆಯ್ಕೆಯು ಲಭ್ಯವಿಲ್ಲ."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ಆ್ಯಪ್‌ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಭಾಷೆಗಳಿಗಿಂತ ಭಾಷೆ ಭಿನ್ನವಾಗಿರಬಹುದು. ಕೆಲವು ಆ್ಯಪ್‌ಗಳು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬೆಂಬಲಿಸದಿರಬಹುದು."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ಪ್ರತಿ ಆ್ಯಪ್‌ಗಾಗಿ ಭಾಷೆಯನ್ನು ಸೆಟ್ ಮಾಡಿ."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"ನಿಮ್ಮ ಸಿಸ್ಟಂ, ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ವೆಬ್‌ಸೈಟ್‌ಗಳು ನಿಮ್ಮ ಆದ್ಯತೆಯ ಭಾಷೆಗಳಿಂದ ಮೊದಲ ಬೆಂಬಲಿತ ಭಾಷೆಯನ್ನು ಬಳಸುತ್ತವೆ."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"ನಿಮ್ಮ ಸಾಧನ, ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ವೆಬ್‌ಸೈಟ್‌ಗಳು ನಿಮ್ಮ ಆದ್ಯತೆಯ ಭಾಷಾ ಪಟ್ಟಿಯಿಂದ ಮೊದಲ ಬೆಂಬಲಿತ ಭಾಷೆಯನ್ನು ಬಳಸುತ್ತವೆ.\n\nಅನೇಕ ಆ್ಯಪ್‌ಗಳು ದಿನಾಂಕಗಳು, ಸಂಖ್ಯೆಗಳು ಮತ್ತು ಘಟಕಗಳನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲು ನಿಮ್ಮ ಆದ್ಯತೆಯ ಭಾಷೆಯಿಂದ ಪ್ರದೇಶವನ್ನು ಸಹ ಬಳಸುತ್ತವೆ. ನಿಮ್ಮ ಪ್ರದೇಶವನ್ನು ಬದಲಾಯಿಸಲು, ಭಾಷೆಯನ್ನು ಸೇರಿಸಿ, ನಂತರ ನಿಮ್ಮ ಆದ್ಯತೆಯ ಪ್ರದೇಶವನ್ನು ಆಯ್ಕೆಮಾಡಿ."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ಪ್ರತಿ ಆ್ಯಪ್‌ಗೆ ಭಾಷೆಯನ್ನು ಆಯ್ಕೆಮಾಡಲು, ಆ್ಯಪ್ ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ಆ್ಯಪ್ ಭಾಷೆಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ಸಿಸ್ಟಂ ಭಾಷೆಯನ್ನು %s ಗೆ ಬದಲಿಸಬೇಕೇ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ಆಫ್"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್ ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿದೆ}one{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್‌ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}other{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್‌ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ಲೋಡ್ ಆಗುತ್ತಿದೆ…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳ ಅನುಮತಿ ಹೊಂದಿರುವ ಆ್ಯಪ್‌ಗಳು ಕನೆಕ್ಟ್ ಮಾಡಿರುವ ಸಾಧನಗಳ ಸಂಬಂಧಿತ ಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಬಹುದು."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"ಸಮೀಪದ ಸಾಧನಗಳ ಅನುಮತಿ ಹೊಂದಿರುವ ಆ್ಯಪ್‌ಗಳು ಕನೆಕ್ಟ್ ಮಾಡಿರುವ ಸಾಧನಗಳ ಸಂಬಂಧಿತ ಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಬಹುದು."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಸ್ಥಳ ಪ್ರವೇಶಪಡೆಯುವಿಕೆ ಆಫ್ ಆಗಿದೆ. ನೀವು ತುರ್ತು ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿದಾಗ ಅಥವಾ ಪಠ್ಯ ಕಳುಹಿಸಿದಾಗ ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳವನ್ನು ತುರ್ತಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸುವವರಿಗೆ ಕಳುಹಿಸಬಹುದು."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ಬದಲಾಯಿಸಲು, ChromeOS ಸೆಟ್ಟಿಂಗ್‌ಗಳು &gt; ಗೌಪ್ಯತೆ ಮತ್ತು ಭದ್ರತೆ &gt; ಗೌಪ್ಯತೆ ನಿಯಂತ್ರಣಗಳು &gt; ಸ್ಥಳ ಆ್ಯಕ್ಸೆಸ್ ಎಂಬಲ್ಲಿಗೆ ಹೋಗಿ"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ಮುಖ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ಮುಖ, ಫಿಂಗರ್‌‍‍‍ಪ್ರಿಂಟ್‌ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ಮುಖ ಮತ್ತು ಫಿಂಗರ್‌‍‍‍ಪ್ರಿಂಟ್‌ಗಳನ್ನು, ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ರಿಮೋಟ್ Authenticator ಅನ್‌ಲಾಕ್"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ವಾಚ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ನಿಮ್ಮ ವಾಚ್ ಸೆಟಪ್ ಮಾಡಿ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ವಾಚ್ ಅನ್‌ಲಾಕ್ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ವಾಚ್ ಅನ್ನು ಸೇರಿಸಿ"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ವಾಚ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಮತ್ತು ಫೇಸ್ ಅನ್‌ಲಾಕ್"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ಫೇಸ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ಕೆಲಸಕ್ಕಾಗಿ ಫೇಸ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ಸೆಟಪ್ ಅಗತ್ಯವಿದೆ"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"ಫೇಸ್ ಮತ್ತು ಫಿಂಗರ್‌‍‍‍ಪ್ರಿಂಟ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ನಿರ್ಗಮಿಸಿ"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಲಭ್ಯವಿಲ್ಲ.\nಸಂಭವನೀಯ ಕಾರಣಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ಸಂಭವನೀಯ ಕಾರಣಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್‌ಗಾಗಿ ಹೊಸ ಲಾಕ್ ಆಯ್ಕೆಮಾಡಬೇಕೇ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"ನೀವು ಕೇವಲ ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್‌ಗಾಗಿ ಹೊಸ ಲಾಕ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಬಹುದು ಅಥವಾ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನೀವು ಬಳಸುವ ಅದೇ ಲಾಕ್ ಅನ್ನು ಬಳಸಬಹುದು"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಬಳಸಿ"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ವಿವರವಾದ NFC ಲಾಗಿಂಗ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಮಾತ್ರ ಉದ್ದೇಶಿಸಲಾಗಿದೆ. ದೋಷ ವರದಿಗಳು ಹೆಚ್ಚುವರಿ NFC ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ, ಅದು ಖಾಸಗಿ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರಬಹುದು. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಾಯಿಸಲು, ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ಆನ್ ಆಗಿದೆ"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ಆಫ್ ಆಗಿದೆ"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ಬಾಹ್ಯ ಡಿಸ್‌ಪ್ಲೇ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ಬಾಹ್ಯ ಡಿಸ್‌ಪ್ಲೇ ಬಳಸಿ"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ಡಿಸ್‌ಪ್ಲೇ ರೆಸಲ್ಯೂಷನ್"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ಬಾಹ್ಯ ಡಿಸ್‌ಪ್ಲೇ ಕನೆಕ್ಷನ್ ಕಡಿತಗೊಂಡಿದೆ"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"ತಿರುಗುವಿಕೆ"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"ಪ್ರಮಾಣಿತ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ತಿರುಗುವಿಕೆ ಅಥವಾ ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ ಪ್ರಸ್ತುತ ಚಾಲನೆಯಲ್ಲಿರುವ ಯಾವುದೇ ಆ್ಯಪ್‌ಗಳನ್ನು ನಿಲ್ಲಿಸಬಹುದು"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಅನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಬಾಹ್ಯ ಡಿಸ್‌ಪ್ಲೇಗೆ ಕನೆಕ್ಟ್ ಮಾಡಬೇಕು"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"ಕ್ಯಾಸ್ಟ್ ಮಾಡುವಿಕೆ"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"ಕನ್ನಡಿ"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ವೈರ್‌ಲೆಸ್ ಪ್ರದರ್ಶನ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
@@ -955,7 +976,7 @@
     <string name="wifi_eap_identity" msgid="3629406902174137028">"ಗುರುತಿಸುವಿಕೆ"</string>
     <string name="wifi_eap_anonymous" msgid="8630332141751267000">"ಅನಾಮಧೇಯ ಗುರುತಿಸುವಿಕೆ"</string>
     <string name="wifi_password" msgid="1458802324849513755">"ಪಾಸ್‌ವರ್ಡ್"</string>
-    <string name="wifi_show_password" msgid="6865993988238157923">"ಪಾಸ್‌ವರ್ಡ್‌ ತೋರಿಸು"</string>
+    <string name="wifi_show_password" msgid="6865993988238157923">"ಪಾಸ್‌ವರ್ಡ್‌ ತೋರಿಸಿ"</string>
     <string name="wifi_ap_choose_2G" msgid="1436802195991542016">"2.4 GHz ಬ್ಯಾಂಡ್"</string>
     <string name="wifi_ap_prefer_5G" msgid="2520628479818369902">"5.0 GHz ಬ್ಯಾಂಡ್‌ಗೆ ಆದ್ಯತೆ ನೀಡಿ"</string>
     <string name="wifi_ip_settings" msgid="6420498748726599133">"IP ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"ಅಡಾಪ್ಟಿವ್"</string>
     <string name="brightness" msgid="6216871641021779698">"ಪ್ರಖರತೆಯ ಮಟ್ಟ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"ಅಡಾಪ್ಟಿವ್‌ ಪ್ರಖರತೆ"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"ಅಡಾಪ್ಟಿವ್ ಬ್ರೈಟ್‌ನೆಸ್ ಕುರಿತು"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ಪ್ರಖರತೆಯು ನಿಮ್ಮ ಪರಿಸರ ಮತ್ತು ಚಟುವಟಿಕೆಗಳಿಗೆ ಅನುಗುಣವಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಡ್ಜಸ್ಟ್ ಆಗುತ್ತದೆ. ನಿಮ್ಮ ಆದ್ಯತೆಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳಲು ಅಡಾಪ್ಟಿವ್ ಪ್ರಖರತೆಗೆ ಸಹಾಯ ಮಾಡಲು ನೀವು ಹಸ್ತಚಾಲಿತವಾಗಿ ಸ್ಲೈಡರ್ ಅನ್ನು ಸರಿಸಬಹುದು."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ಆನ್"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ಆಫ್"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ಆಯ್ಕೆಗಳು"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್‌"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ಬಳಸಿ"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯವಾಗಿರುವಾಗ ಅದನ್ನು ಪರದೆಯ ಮೇಲೆ ಇರಿಸಿಕೊಳ್ಳಿ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ಬೌನ್ಸ್ ಕೀಗಳು"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ಮಿ.ಸೆ. ಒಳಗೆ ಒಂದೇ ಕೀಯ ಪುನರಾವರ್ತಿತ ಒತ್ತುವಿಕೆಗಳನ್ನು ಕೀಬೋರ್ಡ್ ತ್ವರಿತವಾಗಿ ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ಸ್ಲೋ ಕೀಗಳು"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ಮಿ.ಸೆ. ಗೆ ಸಕ್ರಿಯಗೊಳಿಸಲು ಕೀ ಒತ್ತುವಿಕೆಗೆ ಇದು ತೆಗೆದುಕೊಳ್ಳುವ ಸಮಯವನ್ನು ಹೊಂದಿಸುತ್ತದೆ"</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="2396247040177734245">"ಮೌಸ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಬಳಸಿ."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ಹಳದಿಗೆ ಪಾಯಿಂಟರ್ ಫಿಲ್ ಶೈಲಿ ಬದಲಿಸಿ"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ಪಿಂಕ್‌ಗೆ ಪಾಯಿಂಟರ್ ಫಿಲ್ ಶೈಲಿ ಬದಲಿಸಿ"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ನೀಲಿಗೆ ಪಾಯಿಂಟರ್ ಫಿಲ್ ಶೈಲಿ ಬದಲಿಸಿ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"ಪಾಯಿಂಟರ್ ಸ್ಟ್ರೋಕ್ ಶೈಲಿ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ಬಿಳಿ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ಕಪ್ಪು"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ಯಾವುದೂ ಇಲ್ಲ"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ಟಚ್‌ಪ್ಯಾಡ್ ಗೆಸ್ಚರ್‌ಗಳನ್ನು ಕಲಿಯಿರಿ"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ಟ್ರ್ಯಾಕ್‌ಪ್ಯಾಡ್, ಟ್ರ್ಯಾಕ್ ಪ್ಯಾಡ್, ಮೌಸ್, ಕರ್ಸರ್, ಸ್ಕ್ರಾಲ್, ಸ್ವೈಪ್, ಬಲ-ಕ್ಲಿಕ್, ಕ್ಲಿಕ್, ಪಾಯಿಂಟರ್"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ಬಲ ಕ್ಲಿಕ್, ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ಬಳಕೆದಾರರು ಆಯ್ಕೆಮಾಡಿರುವುದು: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"ಧ್ವನಿ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"ಪಾಯಿಂಟರ್ ವೇಗ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"ಪಾಯಿಂಟರ್ ಸ್ಕೇಲ್"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"ಪಾಯಿಂಟರ್ ಸ್ಕೇಲ್ ಕಡಿಮೆ ಮಾಡಿ"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"ಪಾಯಿಂಟರ್ ಸ್ಕೇಲ್ ಹೆಚ್ಚಿಸಿ"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ಆಟ ನಿಯಂತ್ರಕ"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ಕಂಪನವನ್ನು ಮರುನಿರ್ದೇಶಿಸಿ"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"ಸಂಪರ್ಕಗೊಂಡಾಗ ಆಟ ನಿಯಂತ್ರಕಕ್ಕೆ ಕಂಪನವನ್ನು ಕಳುಹಿಸಿ"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ಹೇಗಾದರೂ ಮುಂದುವರಿಸಿ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ರದ್ದುಮಾಡಿ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ಹಿಗ್ಗಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ಒಂದು ಬೆರಳಿನ ಪ್ಯಾನಿಂಗ್"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 ಬೆರಳಿನಿಂದ ಮ್ಯಾಗ್ನಿಫೈಯರ್ ಅನ್ನು ಸರಿಸಿ"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ಸರಿಸಲು 1 ಬೆರಳನ್ನು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ಒಂದು ಬೆರಳಿನಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡುವ ಮೂಲಕ ಹಿಗ್ಗಿಸುವಿಕೆಯ ಪ್ರದೇಶವನ್ನು ಸರಿಸಿ."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ಎರಡು ಬೆರಳುಗಳಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡುವ ಮೂಲಕ ಹಿಗ್ಗಿಸುವಿಕೆಯ ಪ್ರದೇಶವನ್ನು ಸರಿಸಿ."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ಸ್ಕ್ರೀನ್‌ನ ಭಾಗವನ್ನು ಹಿಗ್ಗಿಸುವಾಗ ಮಾತ್ರ ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ಝೂಮ್ ಮಾಡಲು ಒಂದು ಬಟನ್ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ವಿಷಯವು ದೊಡ್ಡದಾಗಿ ಕಾಣಿಸಲು ಸ್ಕ್ರೀನ್ ಮೇಲೆ ತ್ವರಿತವಾಗಿ ಝೂಮ್ ಇನ್ ಮಾಡಿ"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ಝೂಮ್ ಇನ್ ಮಾಡಲು:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ&lt;br/&gt; {1,number,integer}. ಸ್ಕ್ರೀನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ&lt;br/&gt; {2,number,integer}. ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ಸರಿಸಲು 2 ಬೆರಳುಗಳಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ&lt;br/&gt; {3,number,integer}. ಝೂಮ್ ಹೊಂದಿಸಲು 2 ಬೆರಳುಗಳಿಂದ ಪಿಂಚ್ ಮಾಡಿ&lt;br/&gt; {4,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಲು ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ&lt;br/&gt;&lt;br/&gt; &lt;b&gt;ತಾತ್ಕಾಲಿಕವಾಗಿ ಝೂಮ್ ಇನ್ ಮಾಡಲು:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ನಿಮ್ಮ ಹಿಗ್ಗಿಸುವಿಕೆಯ ವಿಧಾನವು ಫುಲ್‌ಸ್ಕ್ರೀನ್‌ಗೆ ಸೆಟ್ ಆಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ&lt;br/&gt; {1,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ&lt;br/&gt; {2,number,integer}. ಸ್ಕ್ರೀನ್‌ನ ಯಾವುದೇ ಭಾಗದಲ್ಲಿ ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿಹಿಡಿಯಿರಿ&lt;br/&gt; {3,number,integer}. ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ಸರಿಸಲು ಬೆರಳನ್ನು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ&lt;br/&gt; {4,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಲು ಬೆರಳನ್ನು ಮೇಲಕ್ಕೆತ್ತಿ"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ಝೂಮ್ ಇನ್ ಮಾಡಲು:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ&lt;br/&gt; {1,number,integer}. ಸ್ಕ್ರೀನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ&lt;br/&gt; {2,number,integer}. ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ಸರಿಸಲು 2 ಬೆರಳುಗಳಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ&lt;br/&gt; {3,number,integer}. ಝೂಮ್ ಹೊಂದಿಸಲು 2 ಬೆರಳುಗಳಿಂದ ಪಿಂಚ್ ಮಾಡಿ&lt;br/&gt; {4,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಲು ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ&lt;br/&gt;&lt;br/&gt; ನೀವು ತಾತ್ಕಾಲಿಕವಾಗಿ ಝೂಮ್‌ ಇನ್‌ ಹಾಗೂ ಇನ್ನಷ್ಟು ಮಾಡಬಹುದು."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ಝೂಮ್ ಇನ್ ಮಾಡಲು:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ&lt;br/&gt; {1,number,integer}. ಸ್ಕ್ರೀನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ&lt;br/&gt; {2,number,integer}. ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ಸರಿಸಲು 1 ಅಥವಾ 2 ಬೆರಳುಗಳಿಂದ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ&lt;br/&gt; {3,number,integer}. ಝೂಮ್ ಹೊಂದಿಸಲು 2 ಬೆರಳುಗಳಿಂದ ಪಿಂಚ್ ಮಾಡಿ&lt;br/&gt; {4,number,integer}. ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಲು ಶಾರ್ಟ್‌ಕಟ್ ಬಳಸಿ&lt;br/&gt;&lt;br/&gt; ನೀವು ತಾತ್ಕಾಲಿಕವಾಗಿ ಝೂಮ್‌ ಇನ್‌ ಹಾಗೂ ಇನ್ನಷ್ಟು ಮಾಡಬಹುದು."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ಹಿಗ್ಗಿಸುವಿಕೆ ಅನ್ನು ಆನ್ ಮಾಡಿದಾಗ, ನಿಮ್ಮ ಪರದೆಯಲ್ಲಿ ನೀವು ಝೂಮ್‌ ಇನ್‌ ಮಾಡಬಹುದು.\n\n"<b>"ಝೂಮ್‌ ಮಾಡಲು"</b>", ಹಿಗ್ಗಿಸುವಿಕೆ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ, ನಂತರ ಪರದೆಯ ಮೇಲೆ ಎಲ್ಲಿಯಾದರೂ ಟ್ಯಾಪ್ ಮಾಡಿ.\n"<ul><li>"ಸ್ಕ್ರಾಲ್ ಮಾಡಲು 2 ಅಥವಾ ಹೆಚ್ಚು ಬೆರಳುಗಳನ್ನು ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</li>\n<li>"ಝೂಮ್ ಹೊಂದಿಸಲು, 2 ಅಥವಾ ಹೆಚ್ಚು ಬೆರಳುಗಳಿಂದ ಪಿಂಚ್ ಮಾಡಿ"</li></ul>\n\n<b>"ತಾತ್ಕಾಲಿಕವಾಗಿ ಝೂಮ್ ಮಾಡಲು"</b>", ಮ್ಯಾಗ್ನಿಫಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾಂಭಿಸಿ, ನಂತರ ಪರದೆಯ ಮೇಲೆ ಎಲ್ಲಾದರೂ ಸ್ಪರ್ಶಿಸಿ, ಒತ್ತಿಹಿಡಿಯಿರಿ.\n"<ul><li>"ಪರದೆಯಲ್ಲಿ ಅತ್ತಿತ್ತ ಸರಿಸಲು, ಡ್ರ್ಯಾಗ್ ಮಾಡಿ"</li>\n<li>"ಝೂಮ್ ಔಟ್ ಮಾಡಲು ಬೆರಳನ್ನು ಎತ್ತಿ"</li></ul>\n\n"ನೀವು ಕೀಬೋರ್ಡ್ ಅಥವಾ ನ್ಯಾವಿಗೇಶನ್ ಬಾರ್‌ನಲ್ಲಿ ಝೂಮ್ ಇನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"ಪುಟ <xliff:g id="NUM_PAGES">%2$d</xliff:g> ರಲ್ಲಿ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಶಾರ್ಟ್‌ಕಟ್"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್‌ನ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nಒಂದು ಫೀಚರ್‌ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ಹೋಗಲು, 2 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nವೈಶಿಷ್ಟ್ಯಗಳ ನಡುವೆ ಬದಲಿಸಲು, 3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ಕೆಳಗಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಫೀಚರ್‌ಗಳ ನಡುವೆ ಬದಲಿಸಲು, ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ.}one{ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ಕೆಳಗಿನಿಂದ # ಬೆರಳುಗಳಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ಫೀಚರ್‌ಗಳ ನಡುವೆ ಬದಲಿಸಲು, # ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್ ಮಾಡಿ.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ಎರಡು ಬೆರಳಿನ ಡಬಲ್-ಟ್ಯಾಪ್ ಸ್ಕ್ರೀನ್"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ಪರದೆಯನ್ನು %1$d ಬಾರಿ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ. ಇದು ನಿಮ್ಮ ಸಾಧನವನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ಬೆರಳಿನ ಡಬಲ್ ಟ್ಯಾಪ್"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ಎರಡು ಬೆರಳುಗಳಿಂದ ಸ್ಕ್ರೀನ್ ಅನ್ನು {0,number,integer} ಬಾರಿ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಮೂರು ಬಾರಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ಟ್ರಿಪಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ {0,number,integer} ಸಲ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ. ಈ ಶಾರ್ಟ್‌ಕಟ್, ನಿಮ್ಮ ಸಾಧನವನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ಸುಧಾರಿತ"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಅನ್ನು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ. ಹಿಗ್ಗಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು, ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ, ಒತ್ತಿಹಿಡಿಯಿರಿ; ನಂತರ, ಹಿಗ್ಗಿಸುವಿಕೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಗೆಸ್ಚರ್ ಅನ್ನು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ. ವರ್ಧನೆಯನ್ನು ಬಳಸಲು, ಪರದೆಯ ಕೆಳಗಿನಿಂದ ಎರಡು ಬೆರಳುಗಳಲ್ಲಿ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹಿಡಿದುಕೊಳ್ಳಿ. ನಂತರ ವರ್ಧನೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ಈ ಸೇವೆಯು ಅಸಮರ್ಪಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್‌‌ಗಳಲ್ಲಿ ತೋರಿಸು"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ಕೆಂಪು-ಹಸಿರು"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ಕೆಂಪು-ಹಸಿರು"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ಕೆಂಪು-ಹಸಿರು, ಹಸಿರು ದುರ್ಬಲವಾಗಿದೆ"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ಕೆಂಪು-ಹಸಿರು, ಕೆಂಪು ದುರ್ಬಲವಾಗಿದೆ"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ನೀಲಿ-ಹಳದಿ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ಗ್ರೇಸ್ಕೇಲ್"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ತೀವ್ರತೆ"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ಹಸಿರು ಬಣ್ಣದ ದೃಷ್ಟಿಹೀನತೆ, ಡ್ಯುಟೆರೊನೊಮಲಿ"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ಕೆಂಪು ಬಣ್ಣದ ದೃಷ್ಟಿಹೀನತೆ, ಪ್ರೊಟಾನಾಮಲಿ"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ಗ್ರೇಸ್ಕೇಲ್ ಮೋಡ್‌ಗೆ ಅಥವಾ ಬಣ್ಣದ ತಿದ್ದುಪಡಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿರುವಾಗ ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ಡ್ಯುಟೆರೊನೊಮಾಲಿ"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ಪ್ರೊಟನೊಮಾಲಿ"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ಟ್ರೈಟನೊಮಾಲಿ"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ಇನ್ನಷ್ಟು ಮಬ್ಬು"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ಸ್ಕ್ರೀನ್ ಅನ್ನು ಇನ್ನಷ್ಟು ಮಬ್ಬಾಗಿಸಿ"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ಹಸಿರುನೀಲಿ"</string>
     <string name="color_yellow" msgid="5957551912912679058">"ಹಳದಿ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ಕೆನ್ನೇರಿಳೆ"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"ನಿಮ್ಮ ಸಾಧನದ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು ಹೊಂದಲು <xliff:g id="SERVICE">%1$s</xliff:g> ಗೆ ಅನುಮತಿಸಬೇಕೇ?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಮಾಡುತ್ತದೆ:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"ಅನುಮತಿ ವಿನಂತಿಯನ್ನು ಅಪ್ಲಿಕೇಶನ್ ಮರೆಮಾಚುತ್ತಿರುವ ಕಾರಣ, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"ಈ ಸಾಧನದ ಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು <xliff:g id="SERVICE">%1$s</xliff:g>ವಿನಂತಿಸುತ್ತಿದೆ. ಸೇವೆಯು ಸ್ಕ್ರೀನ್ ಅನ್ನು ಓದಬಹುದು ಮತ್ತು ಪ್ರವೇಶ ಅಗತ್ಯಗಳೊಂದಿಗೆ ಬಳಕೆದಾರರ ಪರವಾಗಿ ಕಾರ್ಯನಿರವಹಿಸುತ್ತದೆ. ಹೆಚ್ಚಿನ ಆ್ಯಪ್‌ಗಳಿಗೆ ಈ ಮಟ್ಟದ ನಿಯಂತ್ರಣ ಸೂಕ್ತವಲ್ಲ."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಅವಶ್ಯಕತೆಗಳ ಕುರಿತು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುವ ಆ್ಯಪ್‌ಗಳಿಗೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ ನೀಡುವುದು ಸೂಕ್ತವಾಗಿರುತ್ತದೆ, ಆದರೆ ಬಹುತೇಕ ಆ್ಯಪ್‌ಗಳಿಗೆ ಇದು ಸೂಕ್ತವಲ್ಲ."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ಸ್ಕ್ರೀನ್ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ಇದು ಪರದೆಯ ಮೇಲಿನ ಎಲ್ಲಾ ಕಂಟೆಂಟ್‌ ಅನ್ನು ಓದಬಹುದು ಮತ್ತು ಇತರ ಆ್ಯಪ್‌ಗಳ ಮೇಲೆ ಕಂಟೆಂಟ್‌ ಅನ್ನು ಪ್ರದರ್ಶಿಸಬಹುದು."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ಕ್ರಿಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ಇದು ಆ್ಯಪ್ ಅಥವಾ ಹಾರ್ಡ್‌ವೇರ್ ಸೆನ್ಸರ್‌ನ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಂವಹನಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು, ಮತ್ತು ನಿಮ್ಮ ಪರವಾಗಿ ಆ್ಯಪ್‌ಗಳ ಜೊತೆ ಸಂವಹನ ನಡೆಸಬಹುದು."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ಅನುಮತಿಸಿ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ನಿರಾಕರಿಸಿ"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ಆಫ್ ಮಾಡಿ"</string>
@@ -3168,7 +3188,7 @@
     <string name="cloned_app_created_summary" msgid="7277912971544890710">"ಕ್ಲೋನ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="cloned_app_creation_toast_summary" msgid="3854494347144867870">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ಕ್ಲೋನ್ ರಚಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="cloned_app_created_toast_summary" msgid="755225403495544163">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ಕ್ಲೋನ್ ರಚಿಸಲಾಗಿದೆ"</string>
-    <string name="system_dashboard_summary" msgid="7400745270362833832">"ಭಾಷೆಗಳು, ಗೆಸ್ಚರ್‌ಗಳು, ಸಮಯ, ಬ್ಯಾಕಪ್"</string>
+    <string name="system_dashboard_summary" msgid="7400745270362833832">"ಭಾಷೆಗಳು, ಜೆಸ್ಚರ್‌ಗಳು, ಸಮಯ, ಬ್ಯಾಕಪ್"</string>
     <string name="languages_setting_summary" msgid="2650807397396180351">"ಸಿಸ್ಟಂ ಭಾಷೆಗಳು, ಆ್ಯಪ್ ಭಾಷೆಗಳು, ಪ್ರಾದೇಶಿಕ ಆದ್ಯತೆಗಳು, ಧ್ವನಿ"</string>
     <string name="keywords_wifi" msgid="8156528242318351490">"ವೈಫೈ, ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕ, ಇಂಟರ್ನೆಟ್, ವೈರ್‌ಲೆಸ್, ಡೇಟಾ, ವೈ ಫೈ"</string>
     <string name="keywords_wifi_notify_open_networks" msgid="6580896556389306636">"ವೈ-ಫೈ ನೋಟಿಫಿಕೇಶನ್‍, ವೈಫೈ ನೋಟಿಫಿಕೇಶನ್‍"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ಯಾವುದೂ ಇಲ್ಲ}=1{1 ವೇಳಾಪಟ್ಟಿಯನ್ನು ಸೆಟ್ ಮಾಡಲಾಗಿದೆ}one{# ವೇಳಾಪಟ್ಟಿಗಳನ್ನು ಸೆಟ್ ಮಾಡಲಾಗಿದೆ}other{# ವೇಳಾಪಟ್ಟಿಗಳನ್ನು ಸೆಟ್ ಮಾಡಲಾಗಿದೆ}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ಆದ್ಯತೆಯ ಮೋಡ್‌ಗಳು"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ಮೋಡ್ ಸೇರಿಸಿ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ಅಡಚಣೆಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಿ ಮತ್ತು ನಿದ್ರೆ, ಕೆಲಸ, ಡ್ರೈವಿಂಗ್ ಹಾಗೂ ಇವುಗಳ ನಡುವೆ ಮಾಡುವ ಎಲ್ಲಾ ಕಾರ್ಯಗಳ ಮೇಲೆ ಮೋಡ್‌ಗಳ ಮೂಲಕ ನಿಮ್ಮ ಗಮನವನ್ನು ನಿಯಂತ್ರಿಸಿ."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"ನಿಮ್ಮದೇ ಆದ ಮೋಡ್ ಅನ್ನು ರಚಿಸಿ"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"ಪ್ರಮುಖ ಜನರು ಮತ್ತು ಆ್ಯಪ್‌ಗಳಿಂದ ಮಾತ್ರ ನೋಟಿಫಿಕೇಶನ್‌ ಪಡೆಯಿರಿ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"ವೇಳಾಪಟ್ಟಿಯನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"ಇದನ್ನು ಆಧರಿಸಿ ವೇಳಾಪಟ್ಟಿ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ದಿನ ಮತ್ತು ಸಮಯ"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"ವಾರದ ದಿನಗಳಲ್ಲಿ 9 AM - 5 PM\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್‌ಗಳು"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ಸಕ್ರಿಯವಾಗಿದೆ}=2{{mode_1} ಮತ್ತು {mode_2} ಸಕ್ರಿಯವಾಗಿವೆ}=3{{mode_1}, {mode_2}, ಮತ್ತು {mode_3} ಸಕ್ರಿಯವಾಗಿವೆ}one{{mode_1}, {mode_2}, ಮತ್ತು # ಇತ್ಯಾದಿಗಳು ಸಕ್ರಿಯವಾಗಿವೆ}other{{mode_1}, {mode_2}, ಮತ್ತು # ಇತ್ಯಾದಿಗಳು ಸಕ್ರಿಯವಾಗಿವೆ}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 ಮೋಡ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗಬಹುದು}one{# ಮೋಡ್‌ಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗಬಹುದು}other{# ಮೋಡ್‌ಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗಬಹುದು}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ಆನ್ ಆಗಿದೆ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"ಸೆಟ್ ಮಾಡಿಲ್ಲ"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"ಮೋಡ್ ಅನ್ನು ರಚಿಸಿ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ಕಸ್ಟಮ್"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ಈಗ ಆನ್ ಮಾಡಿ"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ಆಫ್ ಮಾಡಿ"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ಮೋಡ್ ಕಂಡುಬಂದಿಲ್ಲ"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ಅಡಚಣೆಗಳನ್ನು ಮಿತಿಗೊಳಿಸಿ"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"ಅಡಚಣೆಗಳು ಮತ್ತು ಗೊಂದಲಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಅನ್ನು ಆನ್ ಮಾಡಿ"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ಅಲಾರಾಂಗಳು ಮತ್ತು ಮೀಡಿಯಾ ಧ್ವನಿಗಳು ಅಡಚಣೆಯಾಗಬಹುದು"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ವೇಳಾಪಟ್ಟಿಗಳು"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ವೇಳಾಪಟ್ಟಿಗಳನ್ನು ಅಳಿಸಿ"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ಅಳಿಸಿ"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"ಮರುಹೆಸರಿಸಿ"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ಅಳಿಸಿ"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" ಮೋಡ್ ಅನ್ನು ಅಳಿಸಬೇಕೆ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ಎಡಿಟ್"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ವೇಳಾಪಟ್ಟಿಗಳು"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"ವೇಳಾಪಟ್ಟಿ"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಮಾಡಿ"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"ಕ್ಯಾಲೆಂಡರ್‌ ಅನ್ನು ಸೇರಿಸಿ"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ನಿಮ್ಮ ಕ್ಯಾಲೆಂಡರ್‌ ಅನ್ನು ಬಳಸಿ"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"ವೇಳಾಪಟ್ಟಿ"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ವೇಳಾಪಟ್ಟಿಯನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ಯಾವಾಗ ಸ್ವಯಂಚಾಲಿತ ಆನ್ ಆಗಬೇಕು"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ಈವೆಂಟ್ ವೇಳಾಪಟ್ಟಿ"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ಇದರ ಈವೆಂಟ್‌ ಸಮಯದಲ್ಲಿ ಆನ್ ಮಾಡಿ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ಆಹ್ವಾನ ಪ್ರತ್ಯುತ್ತರ ಇರುವಲ್ಲಿ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"ಸಮಯದ ವೇಳಾಪಟ್ಟಿ"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ವೇಳಾಪಟ್ಟಿ"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ಗಂ, <xliff:g id="MINUTES">%2$d</xliff:g> ನಿಮಿ"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ಅವಧಿ"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ಅಡಚಣೆಗಳ ಧ್ವನಿಯನ್ನು ಅನುಮತಿಸಿ"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ದೃಶ್ಯ ಅಡಚಣೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ದೃಶ್ಯ ಸಂಕೇತಗಳನ್ನು ಅನುಮತಿಸಿ"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"ನಿಮ್ಮನ್ನು ತಲುಪಬಹುದಾದ ನೋಟಿಫಿಕೇಶನ್‌ಗಳು"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"ಹೆಚ್ಚುವರಿ ಆ್ಯಕ್ಷನ್‌ಗಳು"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"ನೋಟಿಫಿಕೇಶನ್ ಫಿಲ್ಟರ್‌ಗಳು"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"ಇನ್ನಷ್ಟು ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ಆಫ್ ಆಗಿದೆ}=1{ಆಫ್ ಆಗಿದೆ / 1 ಮೋಡ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗಬಹುದು}one{ಆಫ್ ಆಗಿದೆ / # ಮೋಡ್‌ಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗಬಹುದು}other{ಆಫ್ ಆಗಿದೆ / # ಮೋಡ್‌ಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗಬಹುದು}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ಡಿಸ್‌ಪ್ಲೇ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ಡಿಸ್‌ಪ್ಲೇ ಆಯ್ಕೆಗಳು"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ಗ್ರೇಸ್ಕೇಲ್"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ಡಾರ್ಕ್ ಥೀಮ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"ಡಾರ್ಕ್ ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಲೈಟ್ ಟೆಕ್ಸ್ಟ್‌ಗೆ ಆದ್ಯತೆ ನೀಡಲು OS ಮತ್ತು ಆ್ಯಪ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ, ಇದರಿಂದ ಕಣ್ಣಿಗೆ ಆಯಾಸವಾಗುವುದಿಲ್ಲ ಮತ್ತು ಇದು ಕೆಲವು ಸಾಧನಗಳಲ್ಲಿ ಗಮನಾರ್ಹವಾಗಿ ಬ್ಯಾಟರಿ ಹೆಚ್ಚುಕಾಲ ಉಳಿಯುವಂತೆ ಮಾಡುತ್ತದೆ."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ಯಾವುದೇ ಡಿಸ್‌ಪ್ಲೇ ಬದಲಾವಣೆಗಳಿಲ್ಲ}=1{{effect_1}}=2{{effect_1} ಮತ್ತು {effect_2}}=3{{effect_1}, {effect_2} ಮತ್ತು {effect_3}}one{{effect_1}, {effect_2} ಮತ್ತು ಇನ್ನೂ #}other{{effect_1}, {effect_2} ಮತ್ತು ಇನ್ನೂ #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"ನಿಮಗೆ ಏನನ್ನು ಸೂಚಿಸಬಹುದು ಎಂಬುದನ್ನು ಮಿತಿಗೊಳಿಸಿ"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"ಯಾವುದೇ ಅಡಚಣೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ಫಿಲ್ಟರ್ ಮಾಡಲಾದ ನೋಟಿಫಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಡಿಸ್‌ಪ್ಲೇ ಆಯ್ಕೆಗಳು"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"ಅಡಚಣೆ ಮಾಡಬೇಡ ಆನ್‌ ಇರುವಾಗ"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ಅಧಿಸೂಚನೆಗಳಿಂದ ಯಾವುದೇ ಧ್ವನಿ ಇಲ್ಲ"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"ಅಧಿಸೂಚನೆಯನ್ನು ತೆರೆಯಿರಿ"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಸ್ನೂಜ್ ಮಾಡಲು ಅನುಮತಿಸಿ"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ಆ್ಯಪ್ ಐಕಾನ್‌ ಮೇಲೆ ನೋಟಿಫಿಕೇಶನ್‌ ಡಾಟ್"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"ನೋಟಿಫಿಕೇಶನ್ ಬಂಡಲ್‌ಗಳು"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"ಬಬಲ್ಸ್"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ಬಬಲ್ಸ್"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ಈ ಸಂಭಾಷಣೆಗೆ ಬಬಲ್ ಗುರುತು ಮಾಡಿ"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"ಅಡಾಪ್ಟಿವ್ ನೋಟಿಫಿಕೇಶನ್‌ಗಳು"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ಅಡಾಪ್ಟಿವ್ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಬಳಸಿ"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"ನೀವು ಕಡಿಮೆ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚಿನ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ, ನಿಮ್ಮ ಫೋನ್ ವಾಲ್ಯೂಮ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಎರಡು ನಿಮಿಷಗಳವರೆಗೆ ಸ್ಕ್ರೀನ್ ಮೇಲಿನ ಪಾಪ್-ಅಪ್‌ಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಕರೆಗಳು, ಅಲಾರಂಗಳು ಮತ್ತು ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು ಇನ್ನೂ ವೈಬ್ರೇಟ್ ಆಗುತ್ತವೆ, ಶಬ್ದ ಮಾಡುತ್ತವೆ ಅಥವಾ ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಕಾಣಿಸುತ್ತವೆ ಮತ್ತು ನೀವು ಸ್ಕ್ರೀನ್ ಅನ್ನು ಮೇಲಿನಿಂದ ಕೆಳಕ್ಕೆ ಎಳೆದಾಗ ಎಲ್ಲಾ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಹುಡುಕುವುದು ಸುಲಭ."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ಆ್ಯಪ್‌ಗಳಿಗೆ ಅನ್ವಯಿಸಿ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ಸಹಾಯ ಸೇವೆಗಳು"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"ವಿಭಾಗಗಳು"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"ಇತರೆ"</string>
     <string name="no_channels" msgid="4716199078612071915">"ಯಾವುದೇ ಅಧಿಸೂಚನೆಗಳನ್ನು ಈ ಅಪ್ಲಿಕೇಶನ್‌ ಪೋಸ್ಟ್‌ ಮಾಡಿಲ್ಲ"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"ಬಳಕೆಯಾಗದ ವರ್ಗಗಳನ್ನು ತೋರಿಸಿ"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ಆ್ಯಪ್‍‍ನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"ಬಳಕೆಯಾಗದ ವರ್ಗಗಳನ್ನು ತೋರಿಸಿ"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ಬಳಕೆಯಾಗದ ವರ್ಗಗಳನ್ನು ಮರೆಮಾಡಿ"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"ಸಂಭಾಷಣೆಗಳು"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"ಎಲ್ಲಾ ಸಂಭಾಷಣೆಗಳು"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"ಎಲ್ಲಾ ಸಂಭಾಷಣೆಗಳು"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ಯಾವುದೂ ಇಲ್ಲ"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"ಅಡಚಣೆ ಉಂಟುಮಾಡಬಹುದಾದ ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ಆಯ್ಕೆ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ಯಾವುದೂ ಅಲ್ಲ"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ಎಲ್ಲಾ"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ಯಾವುದೇ ಆ್ಯಪ್‌ಗಳು ಅಡಚಣೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ}=1{{app_1} ಅಡಚಣೆ ಮಾಡಬಹುದು}=2{{app_1} ಮತ್ತು {app_2} ಅಡಚಣೆ ಮಾಡಬಹುದು}=3{{app_1}, {app_2} ಮತ್ತು {app_3} ಅಡಚಣೆ ಮಾಡಬಹುದು}one{{app_1}, {app_2} ಮತ್ತು # ಇನ್ನಷ್ಟು ಅಡಚಣೆ ಮಾಡಬಹುದು}other{{app_1}, {app_2} ಮತ್ತು # ಇನ್ನಷ್ಟು ಅಡಚಣೆ ಮಾಡಬಹುದು}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ಕೆಲಸ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ಲೆಕ್ಕ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ಅತಿಕ್ರಮಿಸಲು ಆ್ಯಪ್‌ಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ಅಡಚಣೆ ಉಂಟುಮಾಡಬಹುದಾದ ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ಇನ್ನಷ್ಟು ಆ್ಯಪ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"ಪುನರಾವರ್ತಿತ ಕರೆ ಮಾಡುವವರು ಅಡಚಣೆ ಮಾಡಬಹುದು"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"ಎಲ್ಲಾ ಜನರು ಅಡಚಣೆ ಮಾಡಬಹುದು"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ಪುನರಾವರ್ತಿತ ಕರೆದಾರರು"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ಪುನರಾವರ್ತಿತ ಕರೆದಾರರಿಗೆ ಅನುಮತಿಸಿ"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} ವರೆಗೆ, ಒಂದು ಗಂಟೆಯವರೆಗೆ ಮಾತ್ರ ಅಲಾರಾಂಗಳನ್ನು ಬದಲಾಯಿಸಿ}one{{time} ವರೆಗೆ, # ಗಂಟೆಗಳವರೆಗೆ ಮಾತ್ರ ಅಲಾರಾಂಗಳನ್ನು ಬದಲಾಯಿಸಿ}other{{time} ವರೆಗೆ, # ಗಂಟೆಗಳವರೆಗೆ ಮಾತ್ರ ಅಲಾರಾಂಗಳನ್ನು ಬದಲಾಯಿಸಿ}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ವರೆಗೆ ಮಾತ್ರ ಅಲಾರಮ್‌ಗಳಲ್ಲಿ ಬದಲಾವಣೆ"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ಯಾವಾಗಲೂ ಅಡಚಣೆಗೆ ಬದಲಾಯಿಸಿ"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"ಮರುಹೆಸರಿಸಿ"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ಐಕಾನ್ ಬದಲಾಯಿಸಿ"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ಐಕಾನ್ ಬದಲಾಯಿಸಿ"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ಎಡಿಟ್ ಮೋಡ್"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"ಮೋಡ್ ಅನ್ನು ರಚಿಸಿ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ಕಸ್ಟಮ್ ಮೋಡ್"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ಮೋಡ್ ಹೆಸರು"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್‌ಗಳು"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"ಬೆಡ್‌ಟೈಮ್ ದಿನಚರಿ"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ಡ್ರೈವಿಂಗ್ ಮಾಡುವಾಗ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ಆ್ಯಪ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ನಲ್ಲಿನ ಮಾಹಿತಿ ಮತ್ತು ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗಿದೆ"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಕೆ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಾಗ ಈ ಮೋಡ್ ಎಂದಿಗೂ ಆನ್ ಆಗುವುದಿಲ್ಲ"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ಸಕ್ರಿಯಗೊಳಿಸಬೇಕೆ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ಈ ಮೋಡ್ ಅದರ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಧರಿಸಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗಬಹುದು"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"ನಿಯಮಿತ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಅನುಸರಿಸುವ ಮೋಡ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"ಕ್ಯಾಲೆಂಡರ್ ಈವೆಂಟ್‌ಗಳೊಂದಿಗೆ ಸಿಂಕ್ ಮಾಡಲು ಮೋಡ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಿ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಆಹ್ವಾನಿಸಿ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"ಶಾಂತ ನಿದ್ರೆಯ ದಿನಚರಿಯನ್ನು ರಚಿಸಿ. ಅಲಾರಂಗಳನ್ನು ಸೆಟ್ ಮಾಡಿ, ಸ್ಕ್ರೀನ್ ಅನ್ನು ಮಬ್ಬುಗೊಳಿಸಿ ಮತ್ತು ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ಗಮನಹರಿಸುವ ಮತ್ತು ಯಾವುದೇ ಗೊಂದಲವಿಲ್ಲದೆ ಚಾಲನೆ ಮಾಡುವ ಮೂಲಕ ರಸ್ತೆಯ ಸುರಕ್ಷತೆಗೆ ಆದ್ಯತೆ ನೀಡಿ"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"ಎಚ್ಚರಿಕೆ"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"ಮುಚ್ಚಿರಿ"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ಈ ಸಾಧನದ ಕುರಿತು ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸಿ"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"ಕೇಸ್"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ಬ್ಯಾಟರಿ"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪ್ಯಾನಲ್"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ಡೆಸ್ಕ್‌ಟಾಪ್ ಮೋಡ್ ಅನ್ನು ಒತ್ತಾಯ ಮಾಡಿ"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ಸೆಕೆಂಡರಿ ಡಿಸ್‌ಪ್ಲೇಗಳಲ್ಲಿ ಪ್ರಾಯೋಗಿಕ ಡೆಸ್ಕ್‌ಟಾಪ್ ಮೋಡ್ ಅನ್ನು ಒತ್ತಾಯ ಮಾಡಿ"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"ಎರಡನೇ ಡಿಸ್‌ಪ್ಲೇಯಲ್ಲಿ ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋ ಸಕ್ರಿಯ ಮಾಡಿ."</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ಬಹು-ವಿಂಡೋದಲ್ಲಿ ಮರುಗಾತ್ರಗೊಳಿಸಲು ಆಗದಿರುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ಮರುಗಾತ್ರಗೊಳಿಸಲು ಆಗದ ಆ್ಯಪ್‌ಗಳನ್ನು ಬಹು-ವಿಂಡೋದಲ್ಲಿ ಇರಲು ಅನುಮತಿಸುತ್ತದೆ"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ಫೋರ್ಸ್-ಡಾರ್ಕ್ ಅನ್ನು ಓವರ್‌ರೈಡ್ ಮಾಡಿ"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ವೈ-ಫೈ ಆಫ್ ಇದ್ದಾಗಲೂ ಸಹ, ಸಾಧನದ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು, ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳು ಯಾವಾಗ ಬೇಕಾದರೂ ಸಹ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಸ್ಥಳ ಆಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದು. ನೀವು ಇದನ್ನು ವೈ-ಫೈ ಸ್ಕ್ಯಾನಿಂಗ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"ಬದಲಿಸಿ"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"ಕನೆಕ್ಟ್ ಆಗಿದೆ"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ತಾತ್ಕಾಲಿಕವಾಗಿ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> ಅನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಬಳಸಲಾಗುತ್ತಿದೆ"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್ ಬಳಸಿ"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳನ್ನು ಬಳಸಿ"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ಪ್ರಿಂಟ್ ಸೇವೆಯನ್ನು ಬಳಸಿ"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"ಬಹು ಬಳಕೆದಾರರನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ಬಳಕೆದಾರರ ಬದಲಾಯಿಸುವಿಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ಅನುಮತಿಸಿ, ಬಹು, ಬಳಕೆದಾರರು, ಪರವಾನಗಿ, ಹಲವು"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ಅನೇಕ, ಬಳಕೆದಾರರು, ಪ್ರೊಫೈಲ್‌ಗಳು, ಜನರು, ಖಾತೆಗಳು, ಸ್ವಿಚ್, ಹಲವು"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ವೈರ್‌ಲೆಸ್ ಡೀಬಗಿಂಗ್ ಅನ್ನು ಬಳಸಿ"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಡಾಕ್ ಮಾಡಿದಾಗ ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ನಿಮಗೇನು ಕಾಣಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ. ಸ್ಕ್ರೀನ್ ಸೇವರ್ ಬಳಸಿದಾಗ ನಿಮ್ಮ ಸಾಧನ ಹೆಚ್ಚಿನ ಶಕ್ತಿಯನ್ನು ಬಳಸಬಹುದು."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"ಕಸ್ಟಮೈಸ್ ಮಾಡಿ"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ಕಸ್ಟಮೈಸ್ ಮಾಡಿ"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ಫ್ರೀಫಾರ್ಮ್ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ಸೆಕೆಂಡರಿ ಡಿಸ್‌ಪ್ಲೇಗಳಲ್ಲಿ ಡೆಸ್ಕ್‌ಟಾಪ್ ಮೋಡ್ ಅನ್ನು ಬಲವಂತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋ ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋಗಳ ಲಭ್ಯತೆಯನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ರೀಬೂಟ್ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ಎರಡನೇ ಡಿಸ್‌ಪ್ಲೇಗಳಲ್ಲಿ ಫ್ರೀಫಾರ್ಮ್ ವಿಂಡೋಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ರೀಬೂಟ್ ಅಗತ್ಯವಿದೆ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ಈಗಲೇ ರೀಬೂಟ್ ಮಾಡಿ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ನಂತರ ರೀಬೂಟ್ ಮಾಡಿ"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ಸ್ಪೇಷಿಯಲ್ ಆಡಿಯೋ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ಗುಲಾಬಿ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ಮೆಜೆಂತಾ"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ನೇರಳೆ"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"ಆಯಿತು"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"ಸೇವ್ ಮಾಡಿ"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ರದ್ದುಮಾಡಿ"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ಡೀಫಾಲ್ಟ್"</string>
     <string name="contrast_medium" msgid="384414510709285811">"ಮಧ್ಯಮ"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ಆನ್"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ಆಫ್"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ಆನ್"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ಆಡಿಯೊ %1$d%% ಎಡ, %2$d%% ಬಲ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ಆಡಿಯೊ %1$d%% ಬಲ, %2$d%% ಎಡ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"ನೀವು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳಿಗೆ ನಿಮ್ಮ ಸಾಧನದ ಹೆಸರು ಗೋಚರಿಸುತ್ತದೆ. ನೀವು ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ, ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ ಅಥವಾ ವೈ-ಫೈ ಹಾಟ್‌ಸ್ಪಾಟ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿದಾಗ ಇತರ ಜನರು ಸಹ ಅದನ್ನು ನೋಡಬಹುದು."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ವ್ಯಾಕರಣ ಲಿಂಗ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ವ್ಯಾಕರಣದ ಲಿಂಗವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಆಲಿಸಿ"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಜೊತೆ ಕೇಳಲು ಆಡಿಯೋ ಸ್ಟ್ರೀಮ್ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ಹಂಚಿಕೊಳ್ಳುವಾಗ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಪಾಸ್‌ವರ್ಡ್ ಬದಲಾಯಿಸಲು, ಮೊದಲು ಆಡಿಯೋ ಹಂಚಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಆಫ್ ಮಾಡಿ."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR ಕೋಡ್ ಸ್ಕ್ಯಾನರ್"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ಹುಡುಕಾಟ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index fe1ffa0..7815f2a 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"취침 시간"</item>
-    <item msgid="4152450357280759894">"운전"</item>
-    <item msgid="7096549258219399423">"몰입형"</item>
-    <item msgid="2760716776980432977">"관리형"</item>
-    <item msgid="601734478369121764">"별표"</item>
-    <item msgid="6243809315432780521">"캘린더"</item>
-    <item msgid="4913577903148415331">"시간"</item>
-    <item msgid="3653377604690057780">"영화관"</item>
-    <item msgid="3843711267408385410">"꽃"</item>
+    <item msgid="2750940760340557109">"반달"</item>
+    <item msgid="8513969636586738035">"자동차"</item>
+    <item msgid="957392343846370509">"사람의 마음"</item>
+    <item msgid="6734164279667121348">"캘린더"</item>
+    <item msgid="4139559120353528558">"시계"</item>
+    <item msgid="5157711296814769020">"비치 파라솔"</item>
+    <item msgid="6635328761318954115">"텐트"</item>
+    <item msgid="1711994778883392255">"필름 릴"</item>
+    <item msgid="9097658401859604879">"게임 컨트롤러"</item>
+    <item msgid="755931364157422565">"헬스장 덤벨"</item>
+    <item msgid="8894207806795738429">"공을 던지는 사람"</item>
+    <item msgid="2274801572149555103">"발차기를 하는 사람"</item>
+    <item msgid="8795037201506843325">"수영"</item>
+    <item msgid="3558421426169430451">"하이킹 중인 사람"</item>
+    <item msgid="7455070421232184932">"골프"</item>
+    <item msgid="5841773092449126508">"워크숍 도구"</item>
+    <item msgid="4595330511709890409">"서류 가방"</item>
+    <item msgid="8352738347856724389">"별"</item>
+    <item msgid="7082783098151998721">"연꽃"</item>
+    <item msgid="5772220259409264724">"감독자"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 706d8dc..90de177 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"일시 정지됨"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"알 수 없음"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"미리보기"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR 코드"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"축소"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"확대"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"항상"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"청각 보조 기기 설정"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"단축키, 보청기 호환성"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"미리 설정"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"청능사가 사전 설정한 프로그램이 없습니다."</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"사전 설정을 업데이트할 수 없음"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"오디오 출력"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"오디오 출력 정보"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"설정에서 이 앱의 언어를 선택할 수 없습니다."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"언어가 앱에서 사용 가능한 언어와 다를 수 있습니다. 일부 앱에서는 이 설정을 지원하지 않을 수도 있습니다."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"각 앱에 사용할 언어를 설정하세요."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"시스템, 앱, 웹사이트는 기본 언어 중 최우선 지원 언어를 사용합니다."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"기기, 앱, 웹사이트는 사용자의 선호 언어 목록 중 최우선 지원 언어를 사용합니다.\n\n많은 앱에서도 사용자의 선호 언어 지역을 사용해 날짜, 숫자, 단위의 형식을 지정합니다. 지역을 변경하려면 언어를 추가한 후 원하는 지역을 선택하세요."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"앱별로 언어를 선택하려면 앱 언어 설정으로 이동하세요."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"앱 언어 자세히 알아보기"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"시스템 언어를 %s 언어로 변경하시겠습니까?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"사용 안함"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{사용 - 앱 #개가 위치 정보에 액세스할 수 있음}other{사용 - 앱 #개가 위치 정보에 액세스할 수 있음}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"로드 중…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"근처 기기 액세스 권한이 있는 앱은 연결된 기기 간의 상대적인 위치를 파악할 수 있습니다."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"근처 기기 권한이 있는 앱이 연결된 기기의 상대적인 위치를 파악할 수 있습니다."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"앱 및 서비스에 대한 위치 정보 액세스가 사용 중지되어 있습니다. 그래도 긴급 전화번호로 전화를 걸거나 문자 메시지를 보내면 기기의 위치 정보가 긴급 구조원에게 전달될 수 있습니다."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"위치 설정에 대해 자세히 알아보기"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"변경하려면 ChromeOS 설정 &gt; 개인 정보 보호 및 보안 &gt; 개인 정보 보호 설정 &gt; 위치 액세스로 이동하세요."</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"얼굴 및 <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator 잠금 해제"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"시계 추가됨"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"시계 설정하기"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"스마트시계 잠금 해제 자세히 알아보기"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"시계 추가"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"시계 삭제"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"지문 및 얼굴 인식 잠금 해제"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"얼굴 인식/지문 잠금 해제"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"직장용 얼굴 인식/지문 잠금 해제"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"설정 필요"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"얼굴 및 지문 추가됨"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"비공개 스페이스 설정 중…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"비공개 스페이스를 설정할 수 없음"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"다시 시도"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"종료"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"비공개 스페이스를 사용할 수 없습니다.\n가능한 원인 보기"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"가능한 원인 보기"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"새로운 비공개 스페이스용 잠금 방식을 선택하시겠습니까?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"비공개 스페이스에만 새 잠금 방식을 설정하거나 기기 잠금 해제에 사용하는 것과 동일한 잠금 방식을 사용할 수 있습니다."</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"화면 잠금 사용"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"기기를 다시 시작하시겠습니까?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"세부 NFC 로깅은 개발용으로만 사용됩니다. 추가 NFC 데이터는 버그 신고에 포함되며, 여기에는 개인 정보가 포함될 수 있습니다. 이 설정을 변경하려면 기기를 다시 시작하세요."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"다시 시작"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"사용"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"사용 안함"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"외부 디스플레이"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"외부 디스플레이 사용"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"디스플레이 해상도"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"외부 디스플레이가 연결되지 않았습니다"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"회전"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"표준"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"회전 또는 해상도를 변경하면 현재 실행 중인 앱이 중지될 수 있습니다"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"화면을 미러링하려면 기기가 외부 디스플레이에 연결되어 있어야 합니다"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"옵션 더보기"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"전송"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"미러링"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"무선 디스플레이 사용"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"색상 자동 조절"</string>
     <string name="brightness" msgid="6216871641021779698">"밝기 수준"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"밝기 자동 조절"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"밝기 자동 조절 정보"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"화면 밝기가 환경 및 활동에 맞게 자동으로 조정됩니다. 슬라이더를 수동으로 이동하여 밝기 자동 조절 기능이 사용자의 환경설정을 학습하도록 할 수 있습니다."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"사용"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"사용 안함"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"옵션"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"접근성"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"물리적 키보드"</string>
-    <string name="show_ime" msgid="4334255501724746849">"터치 키보드 사용"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"물리적 키보드가 활성 상태인 경우 화면에 켜 둠"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"바운스 키"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g>밀리초 이내에 동일한 키를 빠르게 반복해서 누를 시 키보드에서 이를 무시합니다."</string>
     <string name="slow_keys" msgid="2891452895499690837">"느린 키"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"키를 누를 때 활성화하기까지 걸리는 시간을 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g>밀리초로 조정합니다."</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="2396247040177734245">"실제 키보드를 사용해서 마우스를 제어합니다."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"포인터 채움 스타일을 노란색으로 변경"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"포인터 채움 스타일을 분홍색으로 변경"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"포인터 채움 스타일을 파란색으로 변경"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"포인터 획 스타일"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"흰색"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"검은색"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"없음"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"터치패드 동작 알아보기"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"트랙패드, 트랙 패드, 마우스, 커서, 스크롤, 스와이프, 마우스 오른쪽 버튼으로 클릭, 클릭, 포인터"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"마우스 오른쪽 버튼으로 클릭, 탭"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"사용자 선택: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"음성"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"포인터 속도"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"포인터 크기"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"포인터 크기 줄이기"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"포인터 크기 늘리기"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"게임 컨트롤러"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"진동 리디렉션"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"게임 컨트롤러가 연결되어 있으면 진동을 컨트롤러로 전송합니다."</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"무시하고 계속하기"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"취소"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"확대 설정"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"한 손가락으로 패닝"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"한 손가락으로 돋보기 이동"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"한 손가락으로 드래그하여 화면을 움직입니다"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"한 손가락으로 드래그하여 확대 영역을 이동하세요."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"두 손가락으로 드래그하여 확대 영역을 이동하세요."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"화면의 일부만 확대하는 동안에는 사용할 수 없음"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"버튼을 탭하여 확대/축소"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"화면을 빠르게 확대하여 콘텐츠를 더 크게 표시합니다."</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;확대하는 방법:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 바로가기를 사용하여 확대를 시작합니다.&lt;br/&gt; {1,number,integer}. 화면을 탭합니다.&lt;br/&gt; {2,number,integer}. 두 손가락으로 드래그하여 화면을 움직입니다.&lt;br/&gt; {3,number,integer}. 두 손가락을 모아서 배율을 조정합니다.&lt;br/&gt; {4,number,integer}. 바로가기를 사용하여 확대를 멈춥니다.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;일시적으로 확대하는 방법:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 확대 유형이 전체 화면으로 설정되어 있어야 합니다.&lt;br/&gt; {1,number,integer}. 바로가기를 사용하여 확대를 시작합니다.&lt;br/&gt; {2,number,integer}. 화면 아무 곳이나 길게 터치합니다.&lt;br/&gt; {3,number,integer}. 손가락으로 드래그하여 화면을 움직입니다.&lt;br/&gt; {4,number,integer}. 손가락을 떼어 확대를 멈춥니다."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;확대하는 방법:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 단축키를 사용하여 확대를 시작합니다.&lt;br/&gt; {1,number,integer}. 화면을 탭합니다.&lt;br/&gt; {2,number,integer}. 두 손가락으로 드래그하여 화면을 움직입니다.&lt;br/&gt; {3,number,integer}. 두 손가락을 모으거나 벌려서 확대/축소 배율을 조정합니다.&lt;br/&gt; {4,number,integer}. 단축키를 사용해 확대를 멈춥니다.&lt;br/&gt;&lt;br/&gt; 일시적으로 확대하는 등의 작업을 수행할 수도 있습니다."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;확대하는 방법:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 단축키를 사용하여 확대를 시작합니다.&lt;br/&gt; {1,number,integer}. 화면을 탭합니다.&lt;br/&gt; {2,number,integer}. 한 손가락 또는 두 손가락으로 드래그하여 화면을 움직입니다.&lt;br/&gt; {3,number,integer}. 두 손가락을 모으거나 벌려서 확대/축소 배율을 조정합니다.&lt;br/&gt; {4,number,integer}. 단축키를 사용해 확대를 멈춥니다.&lt;br/&gt;&lt;br/&gt; 일시적으로 확대하는 등의 작업을 수행할 수도 있습니다."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"확대 기능을 사용 설정하면 화면을 확대할 수 있습니다.\n\n"<b>"화면을 확대하려면"</b>" 확대 기능을 시작한 다음 화면에서 아무 곳이나 탭합니다.\n"<ul><li>"스크롤하려면 2개 이상의 손가락으로 드래그합니다."</li>\n<li>"확대/축소 수준을 조정하려면 2개 이상의 손가락을 모읍니다."</li></ul>\n\n<b>"화면을 일시적으로 확대하려면"</b>" 확대를 시작한 다음 화면에서 아무 곳이나 길게 터치합니다.\n"<ul><li>"화면에서 이동하려면 드래그합니다."</li>\n<li>"축소하려면 손가락을 뗍니다."</li></ul>\n\n"키보드 또는 탐색 메뉴는 확대할 수 없습니다."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>페이지 중 <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>페이지"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"접근성 버튼 바로가기"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"두 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 두 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"세 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 세 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{화면 하단에서 위로 스와이프합니다. 기능 간에 전환하려면 위로 스와이프한 후 잠시 기다립니다.}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>
@@ -2161,16 +2191,12 @@
     <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">"볼륨 키 2개를 길게 누릅니다."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"두 손가락으로 화면을 두 번 탭하기"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"화면을 빠르게 %1$d번 탭합니다. 이렇게 하면 기기가 느려질 수 있습니다."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"손가락 %1$d개를 사용하여 두 번 탭"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"두 손가락으로 화면을 {0, 숫자, 정수}번 빠르게 탭하세요."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"세 번 탭하기"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"세 번 탭"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"화면을 {0,number,integer}번 빠르게 탭합니다. 이 바로가기를 사용하면 기기가 느려질 수 있습니다."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"고급"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"접근성 버튼이 <xliff:g id="SERVICE">%1$s</xliff:g>(으)로 설정되어 있습니다. 확대를 사용하려면 접근성 버튼을 길게 터치한 다음 확대를 선택하세요."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"접근성 동작이 <xliff:g id="SERVICE">%1$s</xliff:g>(으)로 설정되어 있습니다. 확대 기능을 사용하려면 두 손가락을 사용하여 화면 하단에서 위로 스와이프한 다음 잠시 기다리세요. 그런 다음 확대를 선택합니다."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"이 서비스가 제대로 작동하지 않습니다."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"접근성 단축키"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"빠른 설정에 표시"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"빨간색과 초록색"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"빨간색과 초록색"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"적녹색약, 녹색약"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"적녹색약, 적색약"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"파란색과 노란색"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"그레이 스케일"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"강도"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"녹색약"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"적색약"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"그레이 스케일 모드에서나 색상 보정이 사용 중지된 경우 사용할 수 없습니다"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"녹색약"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"적색약"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"청색약"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"더 어둡게"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"화면 더 어둡게 하기"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"청록색"</string>
     <string name="color_yellow" msgid="5957551912912679058">"노란색"</string>
     <string name="color_magenta" msgid="8943538189219528423">"자홍색"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>에서 기기를 완전히 제어하도록 허용하시겠습니까?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>에 필요한 기능:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"권한 요청을 보이지 않게 하는 앱이 있어서 설정에서 내 응답을 확인할 수 없습니다."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>이(가) 기기의 전체 제어 권한을 요청합니다. 서비스가 화면을 읽고 거동이 불편한 사용자를 대신하여 작업을 실행할 수 있습니다. 대부분의 앱에는 이러한 제어 수준이 적절하지 않습니다."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"접근성 관련 지원을 제공하는 앱에는 완벽한 제어권을 부여하는 것이 좋으나, 대부분의 앱에는 적합하지 않습니다."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"화면 확인 및 제어"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"화면에 표시된 모든 콘텐츠를 읽고 다른 앱 위에 콘텐츠를 표시할 수 있습니다."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"작업 확인 및 실행"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"앱 또는 하드웨어 센서와의 상호작용을 추적할 수 있으며 나를 대신해 앱과 상호작용할 수 있습니다."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"허용"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"거부"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"사용 중지"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{없음}=1{예약 1개 설정됨}other{예약 #개 설정됨}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"방해 금지 모드"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"우선순위 모드"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"모드 추가"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"수면, 업무, 운전 등 모든 상황에 맞는 모드로 방해 요소를 최소화하고 중요한 사항에 집중하세요."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"나만의 모드 만들기"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"중요한 사람과 앱의 알림만 받기"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"일정 설정"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"다음 자동 일정"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"요일 및 시간"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\'평일 오전 9시~오후 5시\'"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"캘린더 일정"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} 모드가 활성화됨}=2{{mode_1} 및 {mode_2} 모드가 활성화됨}=3{{mode_1}, {mode_2}, {mode_3} 모드가 활성화됨}other{{mode_1}, {mode_2} 외 #개 모드가 활성화됨}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{모드 1개가 자동으로 사용 설정될 수 있음}other{모드 #개가 자동으로 사용 설정될 수 있음}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"사용"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"설정되지 않음"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"사용 중지됨"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"모드 만들기"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"커스텀"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"지금 사용 설정"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"사용 중지"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"모드를 찾을 수 없음"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"방해 요소 제한"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"방해 요소 차단"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> 설정"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"방해 금지 모드 사용 설정"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"알람 및 미디어 소리 예외"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"예약"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"예약 삭제"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"삭제"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"이름 변경"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"삭제"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\'<xliff:g id="MODE">%1$s</xliff:g>\' 모드를 삭제하시겠습니까?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"수정"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"예약"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"예약"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"자동으로 사용 설정"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"캘린더 추가"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"내 캘린더 사용"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"일정"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"일정 설정"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"자동으로 사용 설정되는 시기"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"이벤트 일정"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"다음 이벤트 중에 사용 설정"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"초대 답장 위치"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"시간 일정"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"일정"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>시간 <xliff:g id="MINUTES">%2$d</xliff:g>분"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"예약"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"소리를 내는 방해 요소 허용"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"시각적 방해 차단"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"시각적 신호 허용"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"알림 허용 항목"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"추가 작업"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"알림 필터"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"설정 더보기"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{꺼짐}=1{꺼짐/모드 1개가 자동으로 사용 설정될 수 있음}other{꺼짐/모드 #개가 자동으로 사용 설정될 수 있음}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"디스플레이 설정"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"디스플레이 옵션"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"그레이 스케일"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"어두운 테마 사용"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"어두운 배경에 밝은 텍스트를 표시하도록 OS와 앱을 전환합니다. 이렇게 하면 눈의 피로도를 낮출 수 있고, 일부 기기에서는 배터리를 크게 절약할 수 있습니다."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{디스플레이 변경사항 없음}=1{{effect_1}}=2{{effect_1} 및 {effect_2}}=3{{effect_1}, {effect_2}, {effect_3}}other{{effect_1}, {effect_2} 외 #개}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"알림을 허용할 항목 제한"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"방해 금지 필터링 안함"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"필터링한 알림에 대한 표시 옵션"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"방해 금지 모드 사용 시"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"알림 소리 차단"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"알림 열기"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"다시 알림 허용"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"앱 아이콘에 알림 표시 점 사용"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"알림 번들"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"대화창"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"대화창"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"이 대화를 대화창으로 표시"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"적응형 알림"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"적응형 알림 사용"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"짧은 시간 내에 많은 알림을 받으면 휴대전화에서 볼륨을 낮추고 최대 2분간 화면에 표시되는 팝업을 최소화합니다. 통화, 알람, 우선순위 대화의 경우 여전히 진동 또는 소리가 울리거나 화면에 표시되며 화면 상단을 아래로 당기면 모든 알림을 간편하게 확인할 수 있습니다."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"직장 프로필 앱에 적용"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 도우미 서비스"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"카테고리"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"기타"</string>
     <string name="no_channels" msgid="4716199078612071915">"이 앱에서 게시한 알림이 없음"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"사용하지 않는 카테고리 표시"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"앱 내 추가 설정"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"사용하지 않는 카테고리 표시"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"사용하지 않는 카테고리 숨기기"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>~<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"대화"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"모든 대화"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"모든 대화"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"우선순위 대화"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"우선순위 대화"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"없음"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"예외 앱"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"선택한 앱"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"없음"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"모두"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{예외 앱 없음}=1{{app_1} 예외}=2{{app_1} 및 {app_2} 예외}=3{{app_1}, {app_2}, {app_3} 예외}other{{app_1}, {app_2} 외 #가지 예외}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g>(직장용)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"계산 중…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"앱에서 무시하도록 허용"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"예외 앱"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"앱 추가 선택"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"반복 발신자의 방해 허용"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"모든 사람 예외"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"반복 발신자"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"반복 발신자 허용"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time}까지 1시간 동안 알람만 허용으로 변경}other{{time}까지 #시간 동안 알람만 허용으로 변경}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>까지 알람만 수신 모드로 변경"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"항상 알림 모드로 변경"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"이름 변경"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"아이콘 변경"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"아이콘 변경"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"수정 모드"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"모드 만들기"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"커스텀 모드"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"모드 이름"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"캘린더 일정"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"취침 시간 루틴"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"운전 중"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"앱 설정"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>의 정보 및 설정"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"관리자: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> 모드를 사용 중지하시겠습니까?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"이 모드를 사용 중지하면 다시 사용 설정할 수 없습니다."</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"사용 중지"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> 모드를 사용 설정하시겠습니까?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"이 모드는 해당 설정에 따라 자동으로 사용 설정될 수 있습니다."</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"사용"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"규칙적인 일정을 따르는 모드를 설정합니다."</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"캘린더 일정 및 초대 응답을 동기화하는 모드를 설정합니다."</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"마음이 차분해지는 수면 루틴을 설계합니다. 알람을 설정하고, 화면을 어둡게 하고, 알림을 차단합니다."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"방해받지 않으며 집중되는 운전을 위해 도로에서의 안전을 최우선으로 고려합니다."</string>
+    <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="warning_button_text" msgid="1274234338874005639">"주의"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"닫기"</string>
     <string name="device_feedback" msgid="5351614458411688608">"이 기기에 대한 의견 보내기"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"케이스"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"배터리"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"설정 패널"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"데스크톱 모드 강제 사용"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"보조 디스플레이에서 실험적 데스크톱 모드 강제 사용"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"자유 형식 창 사용"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"보조 디스플레이에서 자유 형식 창을 사용하도록 설정"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"멀티 윈도우에서 크기 조정 불가 앱 사용"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"멀티 윈도우에서 크기 조정 불가 앱 허용"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"강제로 어둡게 재정의"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"모바일 데이터"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"기기 환경을 개선하기 위해 Wi‑Fi가 꺼져 있을 때도 앱과 서비스에서 Wi‑Fi 네트워크를 검색할 수 있습니다. 예를 들면 위치 기반 기능 및 서비스를 개선하는 데 이 기능이 사용되기도 합니다. 이 설정은 Wi‑Fi 검색 설정에서 변경할 수 있습니다."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"변경"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"연결됨"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"일시적으로 연결됨"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"일시적으로 <xliff:g id="SUBNAME">%1$s</xliff:g> 사용"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"앱 고정 사용"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"개발자 옵션 사용"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"인쇄 서비스 사용"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"여러 사용자 허용"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"사용자 전환 허용"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"허용, 멀티, 사용자, 허가, 다수"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"다중, 사용자, 프로필, 사람, 계정, 전환, 다수"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"무선 디버깅 사용"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"태블릿이 도킹되었을 때 화면에 표시할 항목을 선택하세요. 화면 보호기를 사용하면 기기에서 더 많은 에너지를 사용할 수 있습니다."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"맞춤설정"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> 맞춤설정"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"자유 형식 지원을 사용 설정하려면 재부팅해야 합니다."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"보조 디스플레이에서 데스크톱 모드를 강제 실행하려면 재부팅해야 합니다."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"자유 형식 창 지원을 사용 설정하려면 재부팅해야 합니다."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"자유 형식 창의 사용 가능 여부를 업데이트하려면 재부팅해야 합니다."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"보조 디스플레이에서 자유 형식 창을 사용하려면 재부팅해야 합니다."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"지금 재부팅"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"나중에 재부팅"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"공간 음향"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"장미색"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"자홍색"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"보라색"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"완료"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"저장"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"취소"</string>
     <string name="contrast_default" msgid="8918545965525226966">"기본값"</string>
     <string name="contrast_medium" msgid="384414510709285811">"보통"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"사용"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"사용 안함"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"사용"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"오디오 %1$d%% 왼쪽, %2$d%% 오른쪽"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"오디오 %1$d%% 오른쪽, %2$d%% 왼쪽"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"기기 이름이 설치한 앱에 표시됩니다. 블루투스 기기 및 Wi-Fi 네트워크에 연결하거나 Wi-Fi 핫스팟을 설정할 때도 기기 이름이 다른 사용자에게 표시될 수 있습니다."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"문법적 성별"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"문법적 성별 선택"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"스트림 듣기"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"오디오 스트림 QR 코드를 스캔하여 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 기기로 들으세요."</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"공유 중에는 비밀번호를 수정할 수 없습니다. 비밀번호를 변경하려면 먼저 오디오 공유를 사용 중지하세요."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR 코드 스캐너"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"설정 검색"</string>
 </resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 6ae4795..7923352 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Уйку режими"</item>
-    <item msgid="4152450357280759894">"Унаа айдоо"</item>
-    <item msgid="7096549258219399423">"Сүңгүтүүчү"</item>
-    <item msgid="2760716776980432977">"Башкарылган"</item>
-    <item msgid="601734478369121764">"Жылдыз"</item>
-    <item msgid="6243809315432780521">"Жылнаама"</item>
-    <item msgid="4913577903148415331">"Убакыт"</item>
-    <item msgid="3653377604690057780">"Театр"</item>
-    <item msgid="3843711267408385410">"Гүл"</item>
+    <item msgid="2750940760340557109">"Жарым ай"</item>
+    <item msgid="8513969636586738035">"Унаа"</item>
+    <item msgid="957392343846370509">"Адамдын акылы"</item>
+    <item msgid="6734164279667121348">"Жылнаама"</item>
+    <item msgid="4139559120353528558">"Саат"</item>
+    <item msgid="5157711296814769020">"Кумдуу жээктеги чатыр"</item>
+    <item msgid="6635328761318954115">"Чатыр"</item>
+    <item msgid="1711994778883392255">"Тасма түрмөгү"</item>
+    <item msgid="9097658401859604879">"Оюн көзөмөлдөгүчү"</item>
+    <item msgid="755931364157422565">"Спортзалдагы гантель"</item>
+    <item msgid="8894207806795738429">"Топ ыргытып жаткан киши"</item>
+    <item msgid="2274801572149555103">"Тээп жаткан киши"</item>
+    <item msgid="8795037201506843325">"Сууда сүзүү"</item>
+    <item msgid="3558421426169430451">"Сейилдеп бараткан киши"</item>
+    <item msgid="7455070421232184932">"Гольф"</item>
+    <item msgid="5841773092449126508">"Устаканадагы аспаптар"</item>
+    <item msgid="4595330511709890409">"Портфель"</item>
+    <item msgid="8352738347856724389">"Жылдыз"</item>
+    <item msgid="7082783098151998721">"Лотос гүлү"</item>
+    <item msgid="5772220259409264724">"Жетекчи"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 92280b5..956cefb 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Убактылуу токтотулду"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Белгисиз"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Алдын ала көрүү"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR коду"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Кичирээк кылуу"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Чоңураак кылуу"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Ар дайым"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Угуу аппаратынын параметрлери"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Ыкчам баскыч, угуу аппаратынын шайкештиги"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Алдын ала коюлган параметрлер"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Булар аудиолог тарабынан алдын ала коюлган параметрлер эмес"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Алдын ала коюлган параметрлер жаңыртылган жок"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудио түзмөк"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Аудио түзмөк жөнүндө"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Бул колдонмонун тилин Параметрлерден тандоого болбойт."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Тил колдонмодо жеткиликтүү тилдерден айырмаланышы мүмкүн. Бул параметр айрым колдонмолор тарабынан колдоого алынбайт болушу мүмкүн."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Ар бир колдонмого өзүнчө тил тандаңыз."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Керектүү тилдердин тизмесиндеги биринчи колдоого алынган тил системанын, колдонмолордун жана вебсайттардын тили болуп калат."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Керектүү тилдердин тизмесиндеги биринчи колдоого алынган тил түзмөктүн, колдонмолордун жана вебсайттардын тили болуп калат.\n\nКөпчүлүк колдонмолор күндөрдү, сандарды жана бирдиктерди форматтоо үчүн тандалган тилдин регионун да колдонушат. Регионду өзгөртүү үчүн тил кошуп, андан соң каалаган регионду тандаңыз."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ар бир колдонмого өзүнчө тил тандоо үчүн анын тилдер параметрлерине өтүңүз."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Колдонмонун тилдери жөнүндө кеңири маалымат"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Системанын тилин %s тилине өзгөртөсүзбү?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Өчүк"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Күйүк / # колдонмо жайгашкан жерди көрө алат}other{Күйүк / # колдонмо жайгашкан жерди көрө алат}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктөлүүдө…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Жакын жердеги түзмөктөрдү көрө алган колдонмолор туташкан түзмөктөрдүн абалын аныкташы мүмкүн."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Жакын жердеги түзмөктөрдү көрүүгө уруксаты бар колдонмолор туташкан түзмөктөрдүн абалын көрө алышат."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Колдонмолор менен кызматтар түзмөктүн жайгашкан жерин көрө алышпайт. Кырсыктаганда жардамга келчү кызматка чалып же билдирүү жөнөтүп жатканыңызда, ага түзмөгүңүздүн жайгашкан жери көрүнөт."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Жайгашкан жерди аныктоо параметрлери жөнүндө кеңири маалымат"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Өзгөртүү үчүн ChromeOS параметрлери &gt; Купуялык жана коопсуздук &gt; Купуялыкты көзөмөлдөө параметрлери &gt; Жайгашкан жерди аныктоо бөлүмүнө өтүңүз"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Жүз жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator менен кулпусун ачуу"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Саат кошулду"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Саатыңызды тууралап алыңыз"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Кулпуну саат менен ачуу тууралуу кеңири маалымат"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Саат кошуу"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Саатты өчүрүү"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Манжа изи жана Жүзүнөн таанып ачуу"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Түзмөктү жүз жана манжа изи менен ачуу"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Жумуш профилинде жүз жана манжа изи менен ачуу функциясы"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Коюу керек"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Жүз жана манжа изи кошулду"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Жеке мейкиндик туураланууда…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Жеке мейкиндик туураланган жок"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Кайталоо"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Чыгуу"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Жеке мейкиндик жеткиликсиз.\nМүмкүн болгон себептерди көрүү"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Мүмкүн болгон себептерди көрүү"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Жеке мейкиндикти башкача жол менен кулпулайсызбы?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Жеке мейкиндик үчүн жаңы кулпу коюп же түзмөгүңүздүн кулпусун ачкан ыкманы пайдалана аласыз"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Экран кулпусун колдонуу"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Түзмөк өчүп күйсүнбү?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC\'нин толук таржымалы иштеп чыгуу максатында гана колдонулат. NFC тууралуу кошумча маалыматта мүчүлүштүктөр тууралуу кабарлар жана купуя маалымат камтылышы мүмкүн. Бул параметрди өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Өчүрүп күйгүзүү"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Күйүк"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Өчүк"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Тышкы экран"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Тышкы экранды колдонуу"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Экрандын дааналыгы"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Тышкы экран ажыратылды"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Буруу"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Кадимки"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Буруу же дааналыгын өзгөртүү учурда иштеп жаткан колдонмолорду токтотушу мүмкүн"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Башка экранга чыгаруу үчүн түзмөгүңүз тышкы экранга туташтырылышы керек"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Башка варианттар"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Тышкы экранга чыгаруу"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"күзгү"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Зымсыз мониторду иштетүү"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Ыңгайлаштырылуучу"</string>
     <string name="brightness" msgid="6216871641021779698">"Жарык деңгээли"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Ыңгайлашуучу жарык"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Ыңгайлаштырылуучу жарык жөнүндө"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Экрандын жарыктыгы жүргөн жериңизге жана аткарган ишиңизге жараша автоматтык түрдө өзгөрөт. Сыдырманы колуңуз менен сыдырып, жарыкты өзүңүз каалагандай ыңгайлаштырып алыңыз."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Күйүк"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Өчүк"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Параметрлер"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Атайын мүмкүнчүлүктөр"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Аппараттык баскычтоп"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Экрандагы баскычтопту колдонуу"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Баскычтоп иштетилгенде экранда көрүнүп турат"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Кайтаруу баскычтары"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мсек. ичинде баскычтын удаа басылганы этибарга алынбайт"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Жай баскычтар"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мсек. өткөндөн кийин басылган баскыч эске алынат"</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="2396247040177734245">"Чычканды аппараттык баскычтоп аркылуу башкарасыз"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Толтуруу стилин сарыга өзгөртүү"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Толтуруу стилин күлгүнгө өзгөртүү"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Толтуруу стилин көккө өзгөртүү"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Көрсөткүчтүн стили"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Ак"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Кара"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Жок"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Сенсордук тактанын жаңсоолорун үйрөнүү"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"трекпад, трекпад, чычкан, курсор, сыдыруу, сүрүү, оң баскычын чыкылдатуу, чыкылдатуу, көрсөткүч"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"оң баскычын чыкылдатуу, таптап коюу"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Колдонуучу тандаган: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Кеп"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Көрсөткүчтүн ылдамдыгы"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Көрсөткүчтүн өлчөмү"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Көрсөткүчтүн өлчөмүн кичирейтүү"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Көрсөткүчтүн өлчөмүн чоңойтуу"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Оюн контроллери"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Дирилдөөнү багыттоо"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Туташкан учурларда, дирилдөөнү оюн көзөмөлдөгүчүнө жөнөтүү"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Баары бир улантуу"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Жок"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Чоңойтуу параметрлери"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Бир манжа менен жылдыруу"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Лупаны 1 манжаңыз менен жылдырыңыз"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Экрандын башка бөлүгүнө 1 манжаңыз менен жылыңыз"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Чоңойтуу аймагын бир манжаңыз менен сүйрөп жылдырыңыз."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Чоңойтуу аймагын эки манжаңыз менен сүйрөп жылдырыңыз."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Экрандын бир бөлүгүн гана чоңойткондо жеткиликсиз"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Чоңойтуп/кичирейтүү үчүн баскычты басыңыз"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Экранды оңой чоңойто аласыз"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Жакындатуу үчүн:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз&lt;br/&gt; {1,number,integer}. Экранды басыңыз&lt;br/&gt; {2,number,integer}. Экрандын башка бөлүгүнө 2 манжаңыз менен жылыңыз&lt;br/&gt; {3,number,integer}. Чоңойтуп/кичирейтүү үчүн 2 манжаңызды бириктириңиз&lt;br/&gt; {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн ыкчам баскычты басыңыз&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Убактылуу жакындатуу үчүн:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Чоңойтуу режими толук экранга орнотулганын текшериңиз&lt;br/&gt; {1,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз&lt;br/&gt; {2,number,integer}. Экрандын бир жерин коё бербей басып туруңуз&lt;br/&gt; {3,number,integer}. Экрандын башка бөлүгүнө манжаңыз менен жылыңыз&lt;br/&gt; {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн манжаңызды көтөрүп коюңуз"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Жакындатуу үчүн:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз&lt;br/&gt; {1,number,integer}. Экранды басыңыз&lt;br/&gt; {2,number,integer}. Экрандын башка бөлүгүнө 2 манжаңыз менен жылыңыз&lt;br/&gt; {3,number,integer}. Чоңойтуп/кичирейтүү үчүн 2 манжаңызды бириктириңиз&lt;br/&gt; {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн ыкчам баскычты басыңыз&lt;br/&gt;&lt;br/&gt; Ошондой эле, убактылуу жакындатып жана башка аракеттерди аткара аласыз."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Жакындатуу үчүн:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Чоңойтуу режимин иштетүү үчүн ыкчам баскычты басыңыз&lt;br/&gt; {1,number,integer}. Экранды басыңыз&lt;br/&gt; {2,number,integer}. Экрандын башка бөлүгүнө 1 же 2 манжаңыз менен жылыңыз&lt;br/&gt; {3,number,integer}. Чоңойтуп/кичирейтүү үчүн 2 манжаңызды бириктириңиз&lt;br/&gt; {4,number,integer}. Чоңойтуу режиминен чыгуу үчүн ыкчам баскычты басыңыз&lt;br/&gt;&lt;br/&gt; Ошондой эле, убактылуу жакындатып жана башка аракеттерди аткара аласыз."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Бул функциянын жардамы менен, экрандагы нерсени чоңойтуп, кичирейте аласыз.\n\n"<b>"Чоңойткуңуз келсе"</b>", кызматты иштетип туруп, экрандын бир жерин басыңыз.\n"<ul><li>"Чоңойгон жерди ары-бери жылдырып көргүңүз келсе, экранды эки же үч манжаңыз менен сүрүңүз."</li>\n<li>"Чоңойтуп/кичирейтүү үчүн эки же үч манжаңызды бириктирип/ажыратыңыз."</li></ul>\n\n<b>"Убактылуу чоңойтуп/кичирейтүү үчүн"</b>" кызматты иштетип, экрандын бир жерин коё бербей басып туруңуз.\n"<ul><li>"Экранды жылдырып көрүү үчүн аны манжаңыз менен сүрүңүз."</li>\n<li>"Кызматты өчүрүү үчүн манжаңызды көтөрүңүз."</li></ul>\n\n"Баскычтопто же чабыттоо тилкесинде көрүнүш чоңойбойт."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> ичинен <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>-барак"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Атайын мүмкүнчүлүктөр ыкчам баскычы"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Экранды 2 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 2 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Экранды 3 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 3 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Экранды төмөндөн жогору карай сүрүңүз. Функцияларды которуштуруу үчүн өйдө сүрүп, кармап туруңуз.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Экранды эки манжа менен эки жолу таптоо"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Экранды %1$d жолу тез таптаңыз. Түзмөгүңүз жайыраак иштеп калышы мүмкүн."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d манжа менен эки жолу таптоо"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Экранды эки манжаңыз менен {0,number,integer} жолу тез таптаңыз"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үч жолу басуу"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"үч жолу таптап коюу"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} жолу тез басыңыз. Бул ыкчам баскыч түзмөгүңүздү жайлатышы мүмкүн"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Өркүндөтүлгөн"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Атайын мүмкүнчүлүктөр баскычы <xliff:g id="SERVICE">%1$s</xliff:g> кызматы үчүн коюлган. Чоңойтуу функциясын колдонуу үчүн Атайын мүмкүнчүлүктөр баскычын басып, кармап туруңуз да, чоңойтуу функциясын тандаңыз."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Атайын мүмкүнчүлүктөр жаңсоосу <xliff:g id="SERVICE">%1$s</xliff:g> функциясына коюлду. Масштабын чоңойтуу үчүн эки манжаңыз менен экранды ылдыйдан өйдө сүрүп, кармап туруңуз. Андан соң чоңойтууну тандаңыз."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Бул кызмат туура эмес иштеп жатат."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Атайын мүмкүнчүлүктөрдүн ыкчам баскычтары"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Ылдам тууралоолор абалында көргөзүү"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Кызыл-жашыл"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Кызыл-жашыл"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Кызыл-жашыл, жашыл түстү көрө албайт"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Кызыл-жашыл, кызыл түстү көрө албайт"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Көк-сары"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Боз"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интенсивдүүлүк"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Дейтераномалия (жашыл түстү көрө албайт)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Протаномалия (кызыл түстү көрө албайт)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Боз режимде же түстөрдү тууралоо өчүрүлгөндө жеткиликсиз"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Дейтераномалия"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномалия"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Кошумча караңгылатуу"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Экранды кошумча караңгылатуу"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Көгүш"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Сары"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Кочкул"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> кызматына түзмөгүңүздү толугу менен көзөмөлдөөгө уруксат бересизби?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Колдонмо уруксат суроо-талабын түшүнбөй жаткандыктан, Параметрлер жообуңузду текшере албайт."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> бул түзмөктү толук көзөмөлдөөнү талап кылууда. Бул кызмат экранды окуп, атайын мүмкүнчүлүктөрдү пайдаланган колдонуучулардын атынан аракеттерди жасай алат. Көзөмөлдүн деңгээли колдонмолордун көбүнө ылайыксыз."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Толук көзөмөл атайын мүмкүнчүлүктөрдү иштеткен колдонмолорго керек болуп, калган көптөгөн колдонмолорго кереги деле жок."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Экранды көрүп, көзөмөлдөө"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Кызмат экрандагы нерселерди окуп, аларды башка колдонмолордун үстүнөн көрсөтөт."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Аракеттерди көрүп, аткаруу"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Кызмат колдонмодо жасаган аракеттериңизге же түзмөктүн сенсорлоруна көз салып, сиздин атыңыздан буйруктарды берет."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ооба"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Жок"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өчүрүү"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Жок}=1{1 график коюлду}other{# график коюлду}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Тынчымды алба"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Маанилүүлүк режимдери"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Режим кошуу"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Алаксытуучу нерселерди азайтып, уйку, жумуш, айдоо жана башка режимдердин жардамы менен көңүлүңүздү керектүү нерселерге буруңуз."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Өзүңүздүн режимиңизди түзүңүз"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Маанилүү байланыштар менен колдонмолордон гана билдирмелерди алып турасыз"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"График түзүү"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Графикти автоматтык түрдө түзүү"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Күн жана убакыт"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"Иш күндөрү саат 09:00 баштап 17:00 чейин\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Жылнаамадагы иш-чаралар"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} иштеп жатат}=2{{mode_1} жана {mode_2} иштеп жатат}=3{{mode_1}, {mode_2} жана {mode_3} иштеп жатат}other{{mode_1}, {mode_2} жана дагы # иштеп жатат}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 режимди автоматтык түрдө күйгүзүүгө болот}other{# режимди автоматтык түрдө күйгүзүүгө болот}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"КҮЙҮК"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Туураланган эмес"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Өчүк"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Режим түзүү"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Жеке"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Күйгүзүү"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Өчүрүү"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Режим табылган жок"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Билдирмелерди чектөө"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Алаксытууларды же үзгүлтүккө учуратуучу нерселерди бөгөттөө"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> режимин тууралоо"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\"Тынчымды алба\" режимин күйгүзүү"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Ойготкучтар менен медиа добуштар үзгүлтүккө учуратышы мүмкүн"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ырааттамалар"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Ырааттамаларды өчүрүү"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Өчүрүү"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Аталышын өзгөртүү"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Өчүрүү"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" режими өчүрүлсүнбү?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Түзөтүү"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ырааттамалар"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Ырааттама"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Автоматтык түрдө күйөт"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Жылнаама кошуу"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Жылнааманы колдонуу"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"График"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"График түзүү"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Качан автоматтык түрдө күйсүн"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Иш-чаранын графиги"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Иш-чараларда күйгүзүү"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Чакырууга жооп берүү"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Убакыт графиги"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"График"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> с. <xliff:g id="MINUTES">%2$d</xliff:g> мүн."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ырааттама"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Үнү чыккан билдирмелерге уруксат берүү"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Визуалдык билдирмелерди бөгөттөө"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Визуалдык сигнал иштетилсин"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Сиз ала турган билдирмелер"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Кошумча аракеттер"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Билдирме чыпкалары"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Дагы параметрлер"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Өчүк}=1{Өчүк / 1 режим автоматтык түрдө иштетилет}other{Өчүк / # режим автоматтык түрдө иштетилет}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Көрүнүш параметрлери"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Көрүнүш параметрлери"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Боз"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"караңгы теманы иштетүү"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Текстти күңүрт фондо ачык түстө көрүү үчүн OS менен колдонмолорду которуңуз. Бул көзүңүзгө доо кетирбей, айрым түзмөктөрдө батареяны олуттуу үнөмдөөгө жардам бериши мүмкүн"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Көрүнүш өзгөргөн жок}=1{{effect_1}}=2{{effect_1} жана {effect_2}}=3{{effect_1}, {effect_2} жана {effect_3}}other{{effect_1}, {effect_2} жана дагы #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Билдирмелерди чектөө"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Билдирмелер чыпкаланган жок"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Чыпкаланган билдирмелерди көрсөтүү параметрлери"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"\"Тынчымды алба\" режими күйүп турганда"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Билдирмелердин үнү чыкпайт"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"билдирмени ачуу"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Билдирмени тындырууга уруксат берүү"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Колдонмонун сүрөтчөсүндөгү билдирменин белгиси"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Билдирмелердин топтомдору"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Калкып чыкма билдирмелер"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Калкып чыкма билдирмелер"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Калкып чыкма билдирмелерди көрсөтүү"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Ыңгайлаштырылуучу билдирмелер"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Ыңгайлаштырылуучу билдирмелерди колдонуу"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Кыска убакыттын ичинде көп сандагы билдирмелерди алганыңызда, телефонуңуз үнүн акырындатып, экрандагы калкыма терезелерди эки мүнөткө чейин азайтат. Чалуулар, ойготкучтар жана маанилүү жазышуулар дирилдеп, үн чыгарып же экранда көрүнө берет. Бардык билдирмелерди экранды өйдө жагынан ылдый сүрүп, оңой таап алууга болот."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Жумуш профилинин колдонмолоруна карата пайдаланыңыз"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR көмөкчү кызматтары"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Категориялар"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Башка"</string>
     <string name="no_channels" msgid="4716199078612071915">"Бул колдонмодон эч кандай билдирме келген жок"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Колдонулбаган категорияларды көрсөтүү"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Колдонмонун кошумча параметрлери"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Колдонулбаган категорияларды көрсөтүү"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Колдонулбаган категорияларды жашыруу"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Сүйлөшүүлөр"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Бардык жазышуулар"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"бардык сүйлөшүүлөр"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Маанилүү сүйлөшүүлөр"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"маанилүү жазышуулар"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Эч бири"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"\"Тынчымды алба\" режими таасир этпеген колдонмолор"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Тандалган колдонмолор"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Жок"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Баары"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Бир да колдонмо үзгүлтүккө учурата албайт}=1{{app_1} үзгүлтүккө учурата алат}=2{{app_1} жана {app_2} үзгүлтүккө учурата алат}=3{{app_1}, {app_2} жана {app_3} үзгүлтүккө учурата алат}other{{app_1}, {app_2} жана дагы # үзгүлтүккө учурата алат}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (жумуш)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Эсептелүүдө…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Колдонмолорго өзгөртүп коюуга уруксат берүү"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"\"Тынчымды алба\" режими таасир этпеген колдонмолор"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Дагы колдонмолорду тандаңыз"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Кайра чалуучулар үзгүлтүккө учурайт"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Бардык байланыштар үзгүлтүккө учуратышы мүмкүн"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Кайра чалуучулар"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Кайра чалып жаткан абоненттерге уруксат берүү"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} чейин бир саатка \"Ойготкучтар гана\" режимине өзгөртүү}other{{time} чейин # саатка \"Ойготкучтар гана\" режимине өзгөртүү}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> чейин \"Ойготкучтар гана\" режимин иштетүү"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Ар дайым үзгүлтүккө учуратуу режимине өзгөртүү"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Аталышын өзгөртүү"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Сүрөтчөнү өзгөртүү"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Сүрөтчөнү өзгөртүү"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Режимди түзөтүү"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Режим түзүү"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Жеке режим"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Режимдин аталышы"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Жылнаамадагы иш-чаралар"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Уктоо жана ойгонуу убакыты"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Айдап бара жатканда"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Колдонмонун параметрлери"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосундагы маалымат жана параметрлер"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> башкарат"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> режимин өчүрөсүзбү?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Өчүп турганда бул режим эч качан күйбөйт"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Өчүрүү"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> иштетилсинби?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Бул режим параметрлерине жараша автоматтык түрдө күйүшү мүмкүн"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Иштетүү"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Кадимки графикке ылайык режимди тууралаңыз"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Жылнаамадагы иш-чаралар жана чакыруу жооптору менен шайкештештирүү үчүн режимди тууралаңыз"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Тынчтандыруучу уйку тартибин түзүңүз. Ойготкучтарды тууралап экранды күңүрт кылып, билдирмелерди бөгөттөңүз."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Көңүл буруп, алаксыбай айдоо үчүн жолдогу коопсуздукка артыкчылык бериңиз"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Эскертүү"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Жабуу"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Түзмөк тууралуу пикир билдирүү"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Кутуча"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Параметрлер панели"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Иш такта режимин күйгүзүү"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Иш тактанын сынамык режими көмөкчү экрандарда мажбурлап иштетилет"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Эркин формадагы терезелерди түзүүнү иштетүү"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Эркин формадагы терезелерди кошумча экранда түзүүнү иштетүү"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Өлчөмү өзгөрбөгөн колдонмолорду бир нече терезеде иштетүү"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Өлчөмү өзгөрбөгөн колдонмолор бир нече терезеде көрүнөт"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Түнкү режимди мажбурлап иштетүү функциясын өзгөртүп коюу"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилдик трафик"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Түзмөктүн иштешин жакшыртуу (мисалы, турган жериңизди тагыраак аныктоо) үчүн  колдонмолор менен кызматтар Wi‑Fi өчүп турса да зымсыз тармактарды издей беришет. Издебесин десеңиз, Wi-Fi тармактарын издөө дегенди өчүрүп коюңуз."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Өзгөртүү"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Туташты"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Убактылуу туташып турат"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> убактылуу колдонулууда"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Колдонмону кадап коюу функциясын иштетүү"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Иштеп чыгуучулардын параметрлерин колдонуу"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Басып чыгаруу кызматын колдонуу"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Бир нече колдонуучуга уруксат берүү"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Башка колдонуучуга которулууга уруксат берүү"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"уруксат берүү, бир нече, колдонуучу, уруксат, көп"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"бир нече, колдонуучулар, профилдер, адамдар, аккаунттар, которуштуруу, көп"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Мүчүлүштүктөрдү Wi-Fi аркылуу оңдоону колдонуу"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Планшет док бекетке туташып турганда экранда эмне көрүнөрүн тандаңыз. Көшөгө иштетилгенде, түзмөк көбүрөөк кубат керектеши мүмкүн."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Ыңгайлаштыруу"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ыңгайлаштыруу"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Эркин форма режиминде колдоону иштетүү үчүн өчүрүп-күйгүзүү керек."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Кошумча экрандарда иш такта режимин мажбурлап иштетүү үчүн өчүрүп-күйгүзүү керек."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Эркин формадагы терезелерди түзүү үчүн өчүрүп-күйгүзүү керек."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Эркин формадагы терезелердин түзүлүшүн жаңыртуу үчүн өчүрүп-күйгүзүү талап кылынат."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Эркин формадагы терезелерди кошумча экрандарда түзүүнү иштетүү үчүн өчүрүп-күйгүзүү талап кылынат."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Азыр өчүрүп-күйгүзүү"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Кийинчерээк өчүрүп-күйгүзүү"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Мейкиндиктүү үн"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Кызгылтым"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Маджента"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Кызгылт көк"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Бүттү"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Сактоо"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Жок"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Демейки"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Орточо"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Күйүк"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Өчүк"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Күйүк"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: %1$d%% (сол), %2$d%% (оң)"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: %1$d%% (оң), %2$d%% (сол)"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Түзмөгүңүздүн аталышы орнотулган колдонмолорго көрүнүп турат. Ошондой эле, Bluetooth түзмөктөрүнө, Wi‑Fi тармагына туташып же Wi‑Fi байланыш түйүнүн тууралаганыңызда башка адамдарга көрүнүшү мүмкүн."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Грамматикалык жак"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Грамматикалык жакты тандаңыз"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Агымды угуу"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> түзмөгүндө угуу үчүн аудио агымдын QR кодун скандаңыз"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Чогуу угуп жатканда сырсөздү түзөтүүгө болбойт. Сырсөздү өзгөртүү үчүн, адегенде чогуу угууну өчүрүңүз."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR кодунун сканери"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Издөө параметрлери"</string>
 </resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index 5d26ac9..b1b7562 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"ເວລານອນ"</item>
-    <item msgid="4152450357280759894">"ການຂັບຂີ່"</item>
-    <item msgid="7096549258219399423">"ສົມຈິງ"</item>
-    <item msgid="2760716776980432977">"ທີ່ມີການຈັດການ"</item>
-    <item msgid="601734478369121764">"ດາວ"</item>
-    <item msgid="6243809315432780521">"ປະຕິທິນ"</item>
-    <item msgid="4913577903148415331">"ເວລາ"</item>
-    <item msgid="3653377604690057780">"ໂຮງລະຄອນ"</item>
-    <item msgid="3843711267408385410">"ດອກໄມ້"</item>
+    <item msgid="2750940760340557109">"ເດືອນເຄິ່ງດວງ"</item>
+    <item msgid="8513969636586738035">"ລົດ"</item>
+    <item msgid="957392343846370509">"ຈິດໃຈຄົນ"</item>
+    <item msgid="6734164279667121348">"ປະຕິທິນ"</item>
+    <item msgid="4139559120353528558">"ໂມງ"</item>
+    <item msgid="5157711296814769020">"ຄັນຮົ່ມຫາດຊາຍ"</item>
+    <item msgid="6635328761318954115">"ເຕັ້ນ"</item>
+    <item msgid="1711994778883392255">"ມ້ວນຟີມ"</item>
+    <item msgid="9097658401859604879">"ມືເກມ"</item>
+    <item msgid="755931364157422565">"ດຳເບວສຳລັບຢີມ"</item>
+    <item msgid="8894207806795738429">"ຄົນໂຍນບານ"</item>
+    <item msgid="2274801572149555103">"ຄົນເຕະ"</item>
+    <item msgid="8795037201506843325">"ລອຍນ້ຳ"</item>
+    <item msgid="3558421426169430451">"ຄົນຍ່າງປ່າ"</item>
+    <item msgid="7455070421232184932">"ກັອບ"</item>
+    <item msgid="5841773092449126508">"ເຄື່ອງມືເວີກຊັອບ"</item>
+    <item msgid="4595330511709890409">"ກະເປົາເອກະສານ"</item>
+    <item msgid="8352738347856724389">"ດາວ"</item>
+    <item msgid="7082783098151998721">"ດອກບົວ"</item>
+    <item msgid="5772220259409264724">"ຫົວໜ້າວຽກ"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 5a38182..c9535aa 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"ຖືກລະງັບແລ້ວ"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"ບໍ່ຮູ້ຈັກ"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"ສະແດງຕົວຢ່າງ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"ລະຫັດ QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ເຮັດໃຫ້ນ້ອຍລົງ"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ເຮັດໃຫ້ໃຫຍ່ຂຶ້ນ"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ທຸກເທື່ອ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ການຕັ້ງຄ່າອຸປະກອນຊ່ວຍຟັງ"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ທາງລັດ, ການໃຊ້ຮ່ວມກັນໄດ້ຂອງເຄື່ອງຊ່ວຍຟັງ"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ຄ່າທີ່ກຳນົດລ່ວງໜ້າ"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"ບໍ່ມີພຣີເຊັດທີ່ນັກສຳຜັດວິທະຍາຂອງທ່ານຕັ້ງໂປຣແກຣມໄວ້"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"ບໍ່ສາມາດອັບເດດການຕັ້ງຄ່າລ່ວງໜ້າໄດ້"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ເອົ້າພຸດສຽງ"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ກ່ຽວກັບເອົ້າພຸດສຽງ"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ບໍ່ສາມາດເລືອກພາສາສຳລັບແອັບນີ້ຈາກການຕັ້ງຄ່າໄດ້."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ພາສາອາດແຕກຕ່າງໄປຈາກພາສາທີ່ສາມາດໃຊ້ໄດ້ໃນແອັບ. ບາງແອັບອາດບໍ່ຮອງຮັບການຕັ້ງຄ່ານີ້."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ຕັ້ງພາສາສຳລັບແຕ່ລະແອັບ."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"ລະບົບ, ແອັບ ແລະ ເວັບໄຊຂອງທ່ານຈະໃຊ້ພາສາທີ່ຮອງຮັບກ່ອນຈາກພາສາທີ່ທ່ານຕ້ອງການ."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"ອຸປະກອນ, ແອັບ ແລະ ເວັບໄຊຂອງທ່ານຈະໃຊ້ພາສາທີ່ຮອງຮັບຈາກລາຍຊື່ພາສາທີ່ທ່ານຕ້ອງການກ່ອນ.\n\nຫຼາຍແອັບຈະໃຊ້ພາກພື້ນຈາກພາສາທີ່ທ່ານຕ້ອງການເພື່ອຈັດຮູບແບບວັນທີ, ຕົວເລກ ແລະ ຫົວໜ່ວຍຕ່າງໆນຳ. ເພື່ອປ່ຽນພາກພື້ນຂອງທ່ານ, ໃຫ້ເພີ່ມພາສາໃດໜຶ່ງ, ຈາກນັ້ນເລືອກພາກພື້ນທີ່ທ່ານຕ້ອງການ."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ເພື່ອເລືອກພາສາໃດໜຶ່ງສຳລັບແຕ່ລະແອັບ, ໃຫ້ເຂົ້າໄປການຕັ້ງຄ່າພາສາແອັບ."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບພາສາແອັບ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ປ່ຽນພາສາຂອງລະບົບໄປເປັນ %s ບໍ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ປິດ"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ເປີດຢູ່ / # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}other{ເປີດຢູ່ / # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ກຳລັງໂຫລດ…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"ແອັບທີ່ມີການອະນຸຍາດອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງສາມາດລະບຸສະຖານທີ່ທີ່ກ່ຽວຂ້ອງກັນຂອງອຸປະກອນທີ່ເຊື່ອມຕໍ່ໄດ້."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"ແອັບທີ່ມີການອະນຸຍາດອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງສາມາດລະບຸຕຳແໜ່ງທີ່ສຳພັນກັນຂອງອຸປະກອນທີ່ເຊື່ອມຕໍ່ແລ້ວໄດ້."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ການເຂົ້າເຖິງສະຖານທີ່ຖືກປິດໄວ້ສຳລັບແອັບ ແລະ ບໍລິການຕ່າງໆ. ສະຖານທີ່ອຸປະກອນອາດຍັງຄົງຖືກສົ່ງໄປຫາທີມກູ້ໄພເມື່ອທ່ານໂທ ຫຼື ສົ່ງຂໍ້ຄວາມຫາເບີໂທສຸກເສີນ."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການຕັ້ງຄ່າສະຖານທີ່"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ເພື່ອປ່ຽນ ໃຫ້ເຂົ້າໄປການຕັ້ງຄ່າ ChromeOS &gt; ຄວາມເປັນສ່ວນຕົວ ແລະ ຄວາມປອດໄພ &gt; ການຄວບຄຸມຄວາມເປັນສ່ວນຕົວ &gt; ສິດເຂົ້າເຖິງສະຖານທີ່"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ເພີ່ມໃບໜ້າ ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ການປົດລັອກ Authenticator ຈາກທາງໄກ"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ເພີ່ມໂມງແລ້ວ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ຕັ້ງຄ່າໂມງຂອງທ່ານ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການປົດລັອກດ້ວຍໂມງ"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ເພີ່ມໂມງ"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ລຶບໂມງອອກ"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ໜ້າ"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ປົດລັອກດ້ວຍໜ້າ ແລະ ລາຍນິ້ວມື"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ການປົດລັອກດ້ວຍໜ້າ ແລະ ລາຍນິ້ວມືສຳລັບການເຮັດວຽກ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ຕ້ອງຕັ້ງຄ່າ"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"ເພີ່ມໜ້າ ແລະ ລາຍນິ້ວມືແລ້ວ"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"ກຳລັງຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"ບໍ່ສາມາດຕັ້ງຄ່າພື້ນທີ່ສ່ວນບຸກຄົນໄດ້"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ລອງໃໝ່"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ອອກ"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"ພື້ນທີ່ສ່ວນບຸກຄົນບໍ່ພ້ອມໃຫ້ນຳໃຊ້.\nເບິ່ງສາເຫດທີ່ເປັນໄປໄດ້"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ເບິ່ງສາເຫດທີ່ເປັນໄປໄດ້"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ເລືອກການລັອກໃໝ່ສຳລັບພື້ນທີ່ສ່ວນບຸກຄົນບໍ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"ທ່ານສາມາດຕັ້ງຄ່າການລັອກໃໝ່ສຳລັບພື້ນທີ່ສ່ວນບຸກຄົນໄດ້ເທົ່ານັ້ນ ຫຼື ຈະໃຊ້ການລັອກດຽວກັນທີ່ທ່ານໃຊ້ປົດລັອກອຸປະກອນຂອງທ່ານກໍໄດ້"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ໃຊ້ການລັອກໜ້າຈໍ"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ຣີສະຕາດອຸປະກອນບໍ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ການບັນທຶກລາຍລະອຽດຂອງ NFC ແມ່ນສຳລັບຈຸດປະສົງການພັດທະນາເທົ່ານັ້ນ. ຂໍ້ມູນເພີ່ມເຕີມຂອງ NFC ຈະຮວມຢູ່ໃນລາຍງານຂໍ້ຜິດພາດ, ເຊິ່ງອາດມີຂໍ້ມູນສ່ວນຕົວ. ຣີສະຕາດອປະກອນເພື່ອປ່ຽນການຕັ້ງຄ່ານີ້."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ຣີສະຕາດ"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ເປີດ"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ປິດ"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ຈໍສະແດງຜົນພາຍນອກ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ໃຊ້ຈໍສະແດງຜົນພາຍນອກ"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ຄວາມລະອຽດຂອງຈໍສະແດງຜົນ"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ຍົກເລີກການເຊື່ອມຕໍ່ຈໍສະແດງຜົນພາຍນອກແລ້ວ"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"ການໝຸນ"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"ມາດຕະຖານ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ການປ່ຽນການໝຸນ ຫຼື ຄວາມລະອຽດອາດຢຸດແອັບໃດກໍຕາມທີ່ກຳລັງເຮັດວຽກຢູ່ໃນປັດຈຸບັນ"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"ອຸປະກອນຂອງທ່ານຕ້ອງເຊື່ອມຕໍ່ກັບຈໍສະແດງຜົນພາຍນອກເພື່ອສະທ້ອນໜ້າຈໍຂອງທ່ານ"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ຕົວເລືອກເພີ່ມເຕີມ"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"ການສົ່ງສັນຍານ"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"ແວ່ນສະທ້ອນ"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ເປີດໃຊ້ງານການສະແດງພາບໄຮ້ສາຍ"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"ປັບປ່ຽນໄດ້"</string>
     <string name="brightness" msgid="6216871641021779698">"ລະດັບ​ຄວາມແຈ້ງ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"ປັບ​ຄວາມ​ແຈ້ງ​ອັດຕະໂນມັດ"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"ກ່ຽວກັບຄຸນສົມບັດປັບຄວາມແຈ້ງອັດຕະໂນມັດ"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"ຄວາມແຈ້ງໜ້າຈໍຂອງທ່ານຈະຖືກປັບໂດຍອັດຕະໂນມັດໂດຍອ້າງອີງຈາກສະພາບແວດລ້ອມ ແລະ ກິດຈະກຳທີ່ທ່ານເຮັດ. ທ່ານສາມາດຍ້າຍຕົວເລື່ອນດ້ວຍຕົນເອງເພື່ອຊ່ວຍໃຫ້ລະບົບຮຽນຮູ້ການຕັ້ງຄ່າຂອງທ່ານໄດ້."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ເປີດ"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ປິດ"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ຕົວເລືອກ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ແປ້ນພິມພາຍນອກ"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ໃຊ້ແປ້ນພິມຢູ່ໜ້າຈໍ"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"ປະມັນໄວ້ໃນໜ້າຈໍເມື່ອໃຊ້ແປ້ນພິມພາຍນອກ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ປຸ່ມດີດກັບ"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"ແປ້ນພິມຈະລະເວັ້ນການກົດປຸ່ມດຽວຊ້ຳໆຢ່າງວ່ອງໄວພາຍໃນ <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ເພີ່ມໄລຍະເວລາໃນການກົດປຸ່ມ"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"ປັບເວລາທີ່ມັນໃຊ້ສໍາລັບການກົດປຸ່ມເພື່ອເປີດໃຊ້ເປັນ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"ໃຊ້ແປ້ນພິມພາຍນອກເພື່ອຄວບຄຸມເມົ້າ."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ຮູບແບບການຕື່ມຕົວຊີ້ເປັນສີເຫຼືອງ"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ຮູບແບບການຕື່ມຕົວຊີ້ເປັນສີບົວ"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ຮູບແບບການຕື່ມຕົວຊີ້ເປັນສີຟ້າ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"ຮູບແບບລາຍເສັ້ນຂອງຕົວຊີ້"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ສີຂາວ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ສີດຳ"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ບໍ່ມີ"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ສຶກສາທ່າທາງຂອງແຜ່ນສຳຜັດ"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ແທຣັກແຜດ, ແທຣັກ ແຜດ, ເມົ້າ, ເຄີເຊີ, ເລື່ອນ, ປັດ, ຄລິກຂວາ, ຄລິກ, ຕົວຊີ້"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ຄລິກຂວາ, ແຕະ"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ຜູ້ໃຊ້ໄດ້ເລືອກ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"ສຽງເວົ້າ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"ຄວາມໄວລູກສອນ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"ຂະໜາດຂອງຕົວຊີ້"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"ຫຼຸດຂະໜາດຂອງຕົວຊີ້"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"ເພີ່ມຂະໜາດຂອງຕົວຊີ້"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ມືເກມ"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ປ່ຽນເສັ້ນທາງການສັ່ນເຕືອນ"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Send vibration to game controller when connected"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ຢືນຢັນດຳເນີນການຕໍ່"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ຍົກເລີກ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ການຕັ້ງຄ່າການຂະຫຍາຍ"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ການເລື່ອນດ້ວຍນິ້ວດຽວ"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ໃຊ້ 1 ນິ້ວຍ້າຍແວ່ນຂະຫຍາຍ"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ໃຊ້ 1 ນິ້ວລາກເພື່ອຍ້າຍໄປອ້ອມຮອບໜ້າຈໍ"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ຍ້າຍພື້ນທີ່ການຂະຫຍາຍໂດຍການລາກໜຶ່ງນິ້ວ."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ຍ້າຍພື້ນທີ່ການຂະຫຍາຍໂດຍການລາກສອງນິ້ວ."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ບໍ່ສາມາດໃຊ້ໄດ້ໃນລະຫວ່າງທີ່ກຳລັງຂະຫຍາຍພາກສ່ວນຂອງໜ້າຈໍ"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ແຕະປຸ່ມເພື່ອຊູມ"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ຊູມເຂົ້າໄວໆຢູ່ໜ້າຈໍເພື່ອເຮັດໃຫ້ເນື້ອຫາໃຫຍ່ຂຶ້ນ"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ເພື່ອຊູມເຂົ້າ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ&lt;br/&gt; {1,number,integer}. ແຕະໃສ່ໜ້າຈໍ&lt;br/&gt; {2,number,integer}. ລາກ 2 ນິ້ວເພື່ອເລື່ອນໄປມາຢູ່ໜ້າຈໍ&lt;br/&gt; {3,number,integer}. ບີບດ້ວຍ 2 ນິ້ວເພື່ອປັບແກ້ການຊູມ&lt;br/&gt; {4,number,integer}. ໃຊ້ທາງລັດເພື່ອຢຸດການຂະຫຍາຍ&lt;br/&gt;&lt;br/&gt;&lt;b&gt;ເພື່ອຊູມເຂົ້າຊົ່ວຄາວ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ກວດສອບວ່າປະເພດການຂະຫຍາຍຂອງທ່ານແມ່ນຕັ້ງເປັນເຕັມຈໍແລ້ວ&lt;br/&gt; {1,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ&lt;br/&gt; {2,number,integer}. ແຕະຢູ່ບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍຄ້າງໄວ້&lt;br/&gt; {3,number,integer}. ລາກນິ້ວເພື່ອເລື່ອນໄປມາຢູ່ໜ້າຈໍ&lt;br/&gt; {4,number,integer}. ຍົກນິ້ວຂຶ້ນເພື່ອຢຸດການຂະຫຍາຍ"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ເພື່ອຊູມເຂົ້າ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ&lt;br/&gt; {1,number,integer}. ແຕະໜ້າຈໍ&lt;br/&gt; {2,number,integer}. ໃຊ້ 2 ນິ້ວລາກເພື່ອຍ້າຍໄປອ້ອມຮອບໜ້າຈໍ&lt;br/&gt; {3,number,integer}. ໃຊ້ 2 ນິ້ວບີບເພື່ອປັບການຊູມ&lt;br/&gt; {4,number,integer}. ໃຊ້ທາງລັດເພື່ອຢຸດການຂະຫຍາຍ&lt;br/&gt;&lt;br/&gt; ທ່ານຍັງສາມາດຊູມເຂົ້າຊົ່ວຄາວ ແລະ ເຮັດສິ່ງອື່ນໆໄດ້ນຳ."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ເພື່ອຊູມເຂົ້າ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ໃຊ້ທາງລັດເພື່ອເລີ່ມການຂະຫຍາຍ&lt;br/&gt; {1,number,integer}. ແຕະໜ້າຈໍ&lt;br/&gt; {2,number,integer}. ໃຊ້ 1 ຫຼື 2 ນິ້ວລາກເພື່ອຍ້າຍໄປອ້ອມຮອບໜ້າຈໍ&lt;br/&gt; {3,number,integer}. ໃຊ້ 2 ນິ້ວບີບເພື່ອປັບການຊູມ&lt;br/&gt; {4,number,integer}. ໃຊ້ທາງລັດເພື່ອຢຸດການຂະຫຍາຍ&lt;br/&gt;&lt;br/&gt; ທ່ານຍັງສາມາດຊູມເຂົ້າຊົ່ວຄາວ ແລະ ເຮັດສິ່ງອື່ນໆໄດ້ນຳ."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ເມື່ອເປີດໃຊ້ການຂະຫຍາຍແລ້ວ, ທ່ານສາມາດຊູມເຂົ້າຢູ່ໜ້າຈໍຂອງທ່ານໄດ້.\n\n"<b>"ເພື່ອຊູມ"</b>", ໃຫ້ເລີ່ມການຂະຫຍາຍ, ຈາກນັ້ນແຕະໃສ່ບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍ.\n"<ul><li>"ລາກ 2 ນິ້ວ ຫຼື ຫຼາຍກວ່ານັ້ນເພື່ອເລື່ອນ"</li>\n<li>"ຖ່າງ 2 ນິ້ວ ຫຼື ຫຼາຍກວ່ານັ້ນເພື່ອປັບແຕ່ງການຊູມ"</li></ul>\n\n<b>"ເພື່ອຊູມຊົ່ວຄາວ"</b>", ໃຫ້ເລີ່ມການຂະຫຍາຍ, ຈາກນັ້ນແຕະໃສ່ບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍຄ້າງໄວ້.\n"<ul><li>"ລາກເພື່ອຍ້າຍໄປມາຢູ່ໜ້າຈໍ"</li>\n<li>"ຍົກນິ້ວຂຶ້ນເພື່ອຊູມອອກ"</li></ul>\n\n"ທ່ານບໍ່ສາມາດຊູມໃສ່ແປ້ນພິມ ຫຼື ແຖບການນຳທາງໄດ້."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"ໜ້າທີ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> ຈາກທັງໝົດ <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ທາງລັດຂອງປຸ່ມການຊ່ວຍເຂົ້າເຖິງ"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 2 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 2 ນິ້ວແລ້ວຄ້າງໄວ້."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 3 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 3 ນິ້ວແລ້ວຄ້າງໄວ້."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍຂອງທ່ານ. ເພື່ອສະຫຼັບໄປມາລະຫວ່າງຄຸນສົມບັດຕ່າງໆ, ໃຫ້ປັດຂຶ້ນ ແລ້ວກົດຄ້າງໄວ້.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍສອງເທື່ອ"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ແຕະໜ້າຈໍ %1$d ເທື່ອຢ່າງວ່ອງໄວ. ການດຳເນີນການນີ້ອາດເຮັດໃຫ້ອຸປະກອນຂອງທ່ານຊ້າລົງ."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ໃຊ້ %1$d ນິ້ວແຕະສອງເທື່ອ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍ {0,number,integer} ເທື່ອແບບໄວໆ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ແຕະໃສ່ໜ້າຈໍສາມເທື່ອ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ແຕະສາມເທື່ອ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ແຕະໜ້າຈໍໄວໆ {0,number,integer} ເທື່ອ. ທາງລັດນີ້ອາດເຮັດໃຫ້ອຸປະກອນຂອງທ່ານຊ້າລົງ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ຂັ້ນສູງ"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ປຸ່ມການຊ່ວຍເຂົ້າເຖິງຖືກຕັ້ງເປັນ <xliff:g id="SERVICE">%1$s</xliff:g> ແລ້ວ. ເພື່ອໃຊ້ການຂະຫຍາຍ, ໃຫ້ແຕະປຸ່ມການຊ່ວຍເຂົ້າເຖິງຄ້າງໄວ້, ຈາກນັ້ນເລືອກການຂະຫຍາຍ."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ຕັ້ງທ່າທາງການຊ່ວຍເຫຼືອເປັນ <xliff:g id="SERVICE">%1$s</xliff:g> ແລ້ວ. ເພື່ອໃຊ້ການຂະຫຍາຍ, ໃຫ້ປັດຂຶ້ນດ້ວຍສອງນິ້ວຈາກລຸ່ມສຸດຂອງໜ້າຈໍຄ້າງໄວ້. ຈາກນັ້ນເລືອກການຂະຫຍາຍ."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ບໍລິການນີ້ເຮັດວຽກຜິດປົກກະຕິ."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ທາງລັດການຊ່ວຍເຂົ້າເຖິງ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"ສະ​ແດງໃນການຕັ້ງຄ່າດ່ວນ"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ສີແດງ-ຂຽວ"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ສີແດງ-ຂຽວ"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ສີແດງ-ຂຽວ, ເຫັນສີຂຽວໄດ້ໜ້ອຍ"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ສີແດງ-ສີຂຽວ, ເຫັນສີແດງໄດ້ໜ້ອຍ"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ສີຟ້າ-ເຫຼືອງ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ຂາວດຳ"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ຄວາມເຂັ້ມ"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ເຫັນສີຂຽວໄດ້ໜ້ອຍ, ຕາບອດສີຂຽວ"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ເຫັນສີແດງໄດ້ໜ້ອຍ, ຕາບອດສີແດງ"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ບໍ່ສາມາດໃຊ້ໄດ້ສຳລັບໂໝດຂາວດຳ ຫຼື ເມື່ອການແກ້ໄຂສີຖືກປິດການນຳໃຊ້"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ຕາບອດຈາງສີຂຽວ"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ຕາບອດຈາງສີແດງ"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ຕາບອດຈາງສີຟ້າ"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ຫຼຸດແສງເປັນພິເສດ"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ຫຼຸດແສງໜ້າຈໍລົງເປັນພິເສດ"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ຟ້າຂຽວ"</string>
     <string name="color_yellow" msgid="5957551912912679058">"ເຫຼືອງ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ແດງມ່ວງ"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"ອະນຸຍາດໃຫ້ <xliff:g id="SERVICE">%1$s</xliff:g> ຄວບຄຸມອຸປະກອນທ່ານໄດ້ເຕັມຮູບແບບບໍ?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ຕ້ອງການ:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"ເພາະ​ວ່າ​ແອັບຯ​ກຳ​ລັງ​ຂັດ​ຂວາງ​ການ​ຂໍ​ອະ​ນຸ​ຍາດ, ການ​ຕັ້ງ​ຄ່າ​ບໍ່​ສາ​ມາດກວດ​ສອບ​ການ​ຕອບ​ຮັບ​ຂອງ​ທ່ານ​ໄດ້."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ກຳລັງຮ້ອງຂໍການຄວບຄຸມອຸປະກອນນີ້ຢ່າງເຕັມຮູບແບບ. ບໍລິການຈະສາມາດອ່ານໜ້າຈໍ ແລະ ດຳເນີນການໃນນາມຜູ້ໃຊ້ທີ່ມີຄວາມຕ້ອງການຊ່ວຍເຂົ້າເຖິງໄດ້. ການຄວບຄຸມລະດັບນີ້ບໍ່ເໝາະສົມສຳລັບແອັບສ່ວນໃຫຍ່."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ການຄວບຄຸມແບບເຕັມຮູບແບບແມ່ນເໝາະສົມສຳລັບແອັບທີ່ຊ່ວຍທ່ານໃນດ້ານການຊ່ວຍເຂົ້າເຖິງ, ແຕ່ບໍ່ເໝາະສຳລັບທຸກແອັບ."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ເບິ່ງ ແລະ ຄວບຄຸມໜ້າຈໍ"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ມັນສາມາດອ່ານເນື້ອຫາທັງໝົດຢູ່ໜ້າຈໍ ແລະ ສະແດງເນື້ອຫາບັງແອັບອື່ນໄດ້."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ເບິ່ງ ແລະ ດຳເນີນການ"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ມັນສາມາດຕິດຕາມການໂຕ້ຕອບຂອງທ່ານກັບແອັບ ຫຼື ເຊັນເຊີຮາດແວໃດໜຶ່ງ ແລະ ໂຕ້ຕອບກັບແອັບໃນນາມຂອງທ່ານໄດ້."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ອະນຸຍາດ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ປະຕິເສດ"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ປິດ"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ບໍ່ມີ}=1{ຕັ້ງກຳນົດເວລາ 1 ລາຍການແລ້ວ}other{ຕັ້ງກຳນົດເວລາ # ລາຍການແລ້ວ}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ຫ້າມລົບກວນ"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ໂໝດຄວາມສຳຄັນ"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ເພີ່ມໂໝດ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ຫຼຸດສິ່ງລົບກວນ ແລະ ມີສະມາທິຢູ່ກັບສິ່ງທີ່ທ່ານສົນໃຈດ້ວຍໂໝດສຳລັບການນອນຫຼັບ, ການເຮັດວຽກ, ການຂັບຂີ່ ແລະ ອື່ນໆອີກຫຼາກຫຼາຍ."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"ສ້າງໂໝດຂອງທ່ານເອງ"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"ຮັບການແຈ້ງເຕືອນສະເພາະຄົນ ແລະ ແອັບສຳຄັນເທົ່ານັ້ນ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"ຕັ້ງກຳນົດເວລາ"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"ກຳນົດເວລາຕາມ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ມື້ ແລະ ເວລາ"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"09:00 - 17:00 ໂມງ ຈັນຫາສຸກ\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"ນັດໝາຍປະຕິທິນ"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ເຮັດວຽກຢູ່}=2{{mode_1} ແລະ {mode_2} ເຮັດວຽກຢູ່}=3{{mode_1}, {mode_2} ແລະ {mode_3} ເຮັດວຽກຢູ່}other{{mode_1}, {mode_2} ແລະ ອີກ # ໂໝດເຮັດວຽກຢູ່}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{ສາມາດເປີດໃຊ້ 1 ໂໝດໂດຍອັດຕະໂນມັດ}other{ສາມາດເປີດໃຊ້ # ໂໝດໂດຍອັດຕະໂນມັດ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ເປີດ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"ບໍ່ໄດ້ຕັ້ງຄ່າ"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"ປິດການນຳໃຊ້ຢູ່"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"ສ້າງໂໝດ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ກຳນົດເອງ"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ເປີດຕອນນີ້ເລີຍ"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ປິດ"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ບໍ່ພົບໂໝດ"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ຈຳກັດການລົບກວນ"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"ບລັອກສິ່ງລົບກວນ ແລະ ສິ່ງທີ່ເຮັດໃຫ້ເສຍສະມາທິ"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"ຕັ້ງຄ່າ <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"ເປີດໂໝດຫ້າມລົບກວນ"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ສຽງໂມງປຸກ ແລະ ມີເດຍສາມາດລົບກວນໄດ້"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ກຳນົດເວລາ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ລຶບກຳນົດເວ​ລາ"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ລຶບ"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"ປ່ຽນຊື່"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ລຶບ"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"ລຶບໂໝດ \"<xliff:g id="MODE">%1$s</xliff:g>\" ບໍ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ແກ້ໄຂ"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ການກຳນົດເວລາ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"ກຳນົດເວລາ"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ເປີດອັດຕະໂນມັດ"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"ເພີ່ມປະຕິທິນ"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ໃຊ້ປະຕິທິນຂອງທ່ານ"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"ກຳນົດເວລາ"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ຕັ້ງກຳນົດເວລາ"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ເມື່ອໃດຄວນເປີດໂດຍອັດຕະໂນມັດ"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ກຳນົດການຂອງນັດໝາຍ"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ເປີດໃນລະຫວ່າງນັດໝາຍສຳລັບ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ເມື່ອການຕອບກັບຄຳເຊີນເປັນ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"ກຳນົດເວລາ"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ກຳນົດເວລາ"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ຊມ, <xliff:g id="MINUTES">%2$d</xliff:g> ນທ"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ກຳນົດເວລາ"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ອະນຸຍາດການລົບກວນທີ່ມີສຽງ"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ບລັອກການລົບກວນທາງພາບ"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ອະນຸຍາດສັນຍານພາບ"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"ການແຈ້ງເຕືອນທີ່ທ່ານອາດໄດ້ຮັບ"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"ຄຳສັ່ງເພີ່ມເຕີມ"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"ຕົວກັ່ນຕອງການແຈ້ງເຕືອນ"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"ການຕັ້ງຄ່າເພີ່ມເຕີມ"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ປິດ}=1{ປິດ / 1 ໂໝດຈະສາມາດເປີດໄດ້ໂດຍອັດຕະໂນມັດ}other{ປິດ / # ໂໝດຈະສາມາດເປີດໄດ້ໂດຍອັດຕະໂນມັດ}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ການຕັ້ງຄ່າການສະແດງຜົນ"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ຕົວເລືອກການສະແດງຜົນ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ຂາວດຳ"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ເປີດການນຳໃຊ້ຮູບແບບສີສັນມືດ"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"ສະຫຼັບລະບົບປະຕິບັດການ ແລະ ແອັບເພື່ອໃຊ້ຂໍ້ຄວາມສີອ່ອນເທິງພື້ນຫຼັງສີເຂັ້ມ, ເຊິ່ງອາດສະບາຍຕາຫຼາຍຂຶ້ນ ແລະ ຊ່ວຍປະຢັດແບັດເຕີຣີໄດ້ຫຼາຍໃນອຸປະກອນບາງປະເພດ"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ບໍ່ມີການປ່ຽນແປງການສະແດງຜົນ}=1{{effect_1}}=2{{effect_1} ແລະ {effect_2}}=3{{effect_1}, {effect_2} ແລະ {effect_3}}other{{effect_1}, {effect_2} ແລະ ອີກ # ລາຍການ}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"ຈຳກັດການແຈ້ງເຕືອນທີ່ທ່ານຈະໄດ້ຮັບ"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"ບໍ່ໄດ້ກັ່ນຕອງການຂັດຈັງຫວະ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ຕົວເລືອກການສະແດງຜົນສຳລັບການແຈ້ງເຕືອນທີ່ຖືກກັ່ນຕອງ"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"ເມື່ອເປີດໃຊ້ໂໝດຫ້າມລົບກວນ"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ບໍ່ມີສຽງຈາກການແຈ້ງເຕືອນ"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"ເປີດການແຈ້ງເຕືອນ"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"ອະນຸຍາດໃຫ້ເລື່ອນການແຈ້ງເຕືອນ"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ໄອຄອນຈຸດການແຈ້ງເຕືອນຢູ່ແອັບ"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"ກຸ່ມການແຈ້ງເຕືອນ"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbles"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbles"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ສະແດງການສົນທະນານີ້ເປັນຟອງ"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"ການແຈ້ງເຕືອນແບບປັບອັດຕະໂນມັດ"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ໃຊ້ການແຈ້ງເຕືອນແບບປັບອັດຕະໂນມັດ"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"ເມື່ອທ່ານໄດ້ຮັບການແຈ້ງເຕືອນຈຳນວນຫຼາຍພາຍໃນເວລາສັ້ນໆ, ໂທລະສັບຂອງທ່ານຈະຫຼຸດສຽງລົບກວນ ແລະ ຫຼຸດຈຳນວນປັອບອັບຢູ່ໜ້າຈໍເປັນເວລາສູງສຸດ 2 ນາທີ. ໂດຍການໂທ, ການປຸກ ແລະ ການສົນທະນາສຳຄັນຈະຍັງຄົງສັ່ນເຕືອນ, ເປີດສຽງ ຫຼື ສະແດງຢູ່ໜ້າຈໍ ແລະ ຍັງສາມາດຊອກຫາການແຈ້ງເຕືອນທັງໝົດໄດ້ຢ່າງງ່າຍດາຍເມື່ອທ່ານເລື່ອນລົງຈາກເທິງສຸດຂອງໜ້າຈໍ."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ໃຊ້ກັບແອັບໃນໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"ບໍລິການຕົວຊ່ວຍ VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"ໝວດໝູ່"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"ອື່ນໆ"</string>
     <string name="no_channels" msgid="4716199078612071915">"ແອັບນີ້ຍັງບໍ່ໄດ້ໂພສການແຈ້ງເຕືອນໃດເທື່ອ"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"ສະແດງໝວດໝູ່ທີ່ບໍ່ໄດ້ໃຊ້"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ການຕັ້ງຄ່າເພີ່ມເຕີມໃນແອັບ"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"ສະແດງໝວດໝູ່ທີ່ບໍ່ໄດ້ໃຊ້"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ເຊື່ອງໝວດໝູ່ທີ່ບໍ່ໄດ້ໃຊ້"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"ການສົນທະນາ"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"ການສົນທະນາທັງໝົດ"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"ການສົນທະນາທັງໝົດ"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ການສົນທະນາສຳຄັນ"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ການສົນທະນາສຳຄັນ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ບໍ່ມີ"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"ແອັບທີ່ສາມາດລົບກວນໄດ້"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ແອັບທີ່ເລືອກແລ້ວ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ບໍ່ມີ"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ທັງໝົດ"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ບໍ່ໃຫ້ແອັບໃດລົບກວນໄດ້ເລີຍ}=1{{app_1} ສາມາດລົບກວນໄດ້}=2{{app_1} ແລະ {app_2} ສາມາດລົບກວນໄດ້}=3{{app_1}, {app_2} ແລະ {app_3} ສາມາດລົບກວນໄດ້}other{{app_1}, {app_2} ແລະ ອີກ # ແອັບສາມາດລົບກວນໄດ້}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ວຽກ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ກຳລັງຄຳນວນ…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ອະນຸຍາດໃຫ້ແອັບຍົກເລີກໄດ້"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ແອັບທີ່ສາມາດລົບກວນໄດ້"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ເລືອກແອັບເພີ່ມເຕີມ"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"ຜູ້ໂທຊ້ຳສາມາດລົບກວນໄດ້"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"ທຸກຄົນສາມາດລົບກວນໄດ້"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ຜູ້ໂທຊ້ຳໆ"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ອະນຸຍາດຜູ້ໂທທີ່ໂທຊ້ຳ"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{ປ່ຽນເປັນໂມງປຸກພຽງແຕ່ໜຶ່ງຊົ່ວໂມງຈົນຮອດ {time} ເທົ່ານັ້ນ}other{ປ່ຽນເປັນໂມງປຸກພຽງແຕ່ # ຊົ່ວໂມງຈົນຮອດ {time} ເທົ່ານັ້ນ}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"ປ່ຽນ​ເປັນ​ໂມງ​ປຸກ​ເທົ່າ​ນັ້ນຈົນ​ຮອດ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ປ່ຽນ​ເປັນ​ຂັດ​ຈັງ​ຫວະ​ທຸກ​ຄັ້ງ"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"ປ່ຽນຊື່"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ປ່ຽນໄອຄອນ"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ປ່ຽນໄອຄອນ"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ໂໝດແກ້ໄຂ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"ສ້າງໂໝດ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ໂໝດທີ່ກຳນົດເອງ"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ຊື່ໂໝດ"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ນັດໝາຍປະຕິທິນ"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"ສິ່ງທີ່ເຮັດປະຈຳໃນເວລານອນ"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ໃນຂະນະຂັບລົດ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ການຕັ້ງຄ່າແອັບ"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ຂໍ້ມູນ ແລະ ການຕັ້ງຄ່າໃນ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"ຈັດການໂດຍ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"ປິດການນຳໃຊ້ <xliff:g id="MODE_NAME">%1$s</xliff:g> ບໍ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"ໂໝດນີ້ຈະບໍ່ເປີດເມື່ອປິດການນຳໃຊ້ຢູ່"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"ປິດການນຳໃຊ້"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"ເປີດການນຳໃຊ້ <xliff:g id="MODE_NAME">%1$s</xliff:g> ບໍ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ໂໝດນີ້ອາດເປີດໂດຍອັດຕະໂນມັດຕາມການຕັ້ງຄ່າ"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ເປີດການນຳໃຊ້"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"ຕັ້ງຄ່າໂໝດທີ່ເປັນໄປຕາມກຳນົດເວລາປົກກະຕິ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"ຕັ້ງຄ່າໂໝດການຊິ້ງກັບນັດໝາຍປະຕິທິນ ແລະ ການຕອບກັບຄຳເຊີນ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"ອອກແບບກິດຈະວັດການນອນທີ່ຜ່ອນຄາຍ. ຕັ້ງໂມງປຸກ, ຫຼຸດແສງໜ້າຈໍ ແລະ ບລັອກການແຈ້ງເຕືອນ."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ໃຫ້ຄວາມສຳຄັນກັບຄວາມປອດໄພເທິງຖະໜົນເພື່ອການຂັບລົດທີ່ມີສະມາທິ ແລະ ບໍ່ມີສິ່ງລົບກວນ"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"ຄໍາເຕືອນ"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"ປິດ"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ສົ່ງ​ຄຳ​ຕິ​ຊົມ​ກ່ຽວ​ກັບ​ອຸ​ປະ​ກອນ​ນີ້"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"ເຄສ"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ແບັດເຕີຣີ"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ແຜງການຕັ້ງຄ່າ"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ບັງຄັບໂໝດເດັສທັອບ"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ບັງຄັບໂໝດເດັສທັອບແບບທົດລອງໃຊ້ຢູ່ໜ້າຈໍທີສອງ"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ເປີດການນຳໃຊ້ໜ້າຈໍຮູບແບບອິດສະຫຼະ"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"ເປີດການນຳໃຊ້ໜ້າຈໍຮູບແບບອິດສະຫຼະຢູ່ຈໍສະແດງຜົນສຳຮອງ"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ເປີດການນຳໃຊ້ແບບບໍ່ສາມາດປັບຂະໜາດໃນການໃຊ້ຫຼາຍໜ້າຈໍ"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ອະນຸຍາດໃຫ້ມີແອັບແບບບໍ່ສາມາດປັບຂະໜາດໄດ້ໃນການໃຊ້ຫຼາຍໜ້າຈໍ"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ຍົກເລີກການບັງຄັບໃຫ້ໃຊ້ແບບມືດ"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ອິນເຕີເນັດມືຖື"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ເພື່ອປັບປຸງປະສົບການອຸປະກອນ, ແອັບ ແລະ ບໍລິການຍັງຄົງສາມາດສະແກນຫາເຄືອຂ່າຍ Wi‑Fi ຕອນໃດກໍໄດ້, ເຖິງແມ່ນວ່າຈະປິດ Wi‑Fi ໄວ້ກໍຕາມ. ສິ່ງນີ້ສາມາດໃຊ້ເພື່ອປັບປຸງຄຸນສົມບັດ ແລະ ບໍລິການທີ່ອ້າງອີງສະຖານທີ່ໄດ້. ທ່ານສາມາດປ່ຽນສິ່ງນີ້ໄດ້ໃນການຕັ້ງຄ່າການສະແກນ Wi‑Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"ປ່ຽນ"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"ເຊື່ອມຕໍ່ແລ້ວ"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ເຊື່ອມຕໍ່ແລ້ວຊົ່ວຄາວ"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"ກຳລັງໃຊ້ <xliff:g id="SUBNAME">%1$s</xliff:g> ຊົ່ວຄາວ"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ໃຊ້ການປັກໝຸດແອັບ"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ໃຊ້ຕົວເລືອກນັກພັດທະນາ"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ໃຊ້ບໍລິການພິມ"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"ອະນຸຍາດຜູ້ໃຊ້ຫຼາຍຄົນ"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ອະນຸຍາດໃຫ້ຜູ້ໃຊ້ປ່ຽນໄດ້"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ອະນຸຍາດ, ຫຼາຍຄົນ, ຜູ້ໃຊ້, ອະນຸຍາດ, ຫຼາຍ"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ຫຼາຍ, ຜູ້ໃຊ້, ໂປຣໄຟລ໌, ຄົນ, ບັນຊີ, ສະຫຼັບ, ຫຼາຍ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ໃຊ້ການດີບັກໄຮ້ສາຍ"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ເລືອກວ່າທ່ານຈະເຫັນຫຍັງຢູ່ໜ້າຈໍຂອງທ່ານເມື່ອແທັບເລັດຂອງທ່ານຕັ້ງຢູ່ດັອກ. ອຸປະກອນຂອງທ່ານອາດໃຊ້ພະລັງງານຫຼາຍຂຶ້ນເມື່ອໃຊ້ສະກຣີນເຊບເວີ."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"ປັບແຕ່ງ"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"ປັບແຕ່ງ <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ຕ້ອງປິດ​ເປີດ​ໃໝ່ເພື່ອເປີດການນຳໃຊ້ການຊ່ວຍເຫຼືອຮູບແບບອິດສະລະ."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ຕ້ອງປິດ​ເປີດ​ໃໝ່ເພື່ອບັງຄັບໂໝດເດັສທັອບຢູ່ໜ້າຈໍທີສອງ."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ຕ້ອງປິດ​ເປີດ​ໃໝ່ເພື່ອເປີດການນຳໃຊ້ການຊ່ວຍເຫຼືອໜ້າຈໍຮູບແບບອິດສະລະ."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອອັບເດດຄວາມພ້ອມໃນການນຳໃຊ້ໜ້າຈໍແບບອິດສະຫຼະ."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ຕ້ອງປິດເປີດໃໝ່ເພື່ອເປີດການນຳໃຊ້ໜ້າຈໍຮູບແບບອິດສະຫຼະຢູ່ຈໍສະແດງຜົນສຳຮອງ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ປິດ​ເປີດ​ໃໝ່ໃນຕອນນີ້"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ປິດ​ເປີດ​ໃໝ່ໃນພາຍຫຼັງ"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ສຽງຮອບທິດທາງ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ສີດອກກຸຫຼາບ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ສີແດງມ່ວງ"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ສີມ່ວງ"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"ແລ້ວໆ"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"ບັນທຶກ"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ຍົກເລີກ"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="contrast_medium" msgid="384414510709285811">"ປານກາງ"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ເປີດ"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ປິດ"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ເປີດ"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ສຽງ %1$d%% ຊ້າຍ, %2$d%% ຂວາ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ສຽງ %1$d%% ຂວາ, %2$d%% ຊ້າຍ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"ຊື່ອຸປະກອນຂອງທ່ານຈະສະແດງໃຫ້ແອັບທີ່ທ່ານຕິດຕັ້ງໄວ້ເຫັນ. ມັນອາດຖືກສະແດງໃຫ້ຄົນອື່ນເຫັນໃນເວລາທີ່ທ່ານເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth, ເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍ Wi-Fi ຫຼື ຕັ້ງຄ່າຮັອດສະປອດ Wi-Fi ນຳ."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ເພດທາງໄວຍາກອນ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ເລືອກເພດທາງໄວຍາກອນ"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ຟັງສະຕຣີມ"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"ສະແກນລະຫັດ QR ການສະຕຣີມສຽງເພື່ອຟັງກັບ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ບໍ່ສາມາດແກ້ໄຂລະຫັດຜ່ານໃນລະຫວ່າງທີ່ແບ່ງປັນໄດ້. ເພື່ອປ່ຽນລະຫັດຜ່ານ, ທຳອິດໃຫ້ປິດການແບ່ງປັນສຽງ."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"ຕົວສະແກນລະຫັດ QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ຊອກຫາໃນການຕັ້ງຄ່າ"</string>
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 24db083..b42dc68 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Laikas miegoti"</item>
-    <item msgid="4152450357280759894">"Vairavimas"</item>
-    <item msgid="7096549258219399423">"Įtraukiantis"</item>
-    <item msgid="2760716776980432977">"Tvarkoma"</item>
-    <item msgid="601734478369121764">"Žvaigždė"</item>
-    <item msgid="6243809315432780521">"Kalendorius"</item>
-    <item msgid="4913577903148415331">"Laikas"</item>
-    <item msgid="3653377604690057780">"Teatras"</item>
-    <item msgid="3843711267408385410">"Gėlė"</item>
+    <item msgid="2750940760340557109">"Pusmėnulis"</item>
+    <item msgid="8513969636586738035">"Automobilis"</item>
+    <item msgid="957392343846370509">"Asmens mintis"</item>
+    <item msgid="6734164279667121348">"Kalendorius"</item>
+    <item msgid="4139559120353528558">"Laikrodis"</item>
+    <item msgid="5157711296814769020">"Paplūdimio skėtis"</item>
+    <item msgid="6635328761318954115">"Palapinė"</item>
+    <item msgid="1711994778883392255">"Kino juosta"</item>
+    <item msgid="9097658401859604879">"Žaidimų valdiklis"</item>
+    <item msgid="755931364157422565">"Sporto hanteliai"</item>
+    <item msgid="8894207806795738429">"Kamuolį metantis asmuo"</item>
+    <item msgid="2274801572149555103">"Spiriantis asmuo"</item>
+    <item msgid="8795037201506843325">"Plaukimas"</item>
+    <item msgid="3558421426169430451">"Žygiuojantis asmuo"</item>
+    <item msgid="7455070421232184932">"Golfas"</item>
+    <item msgid="5841773092449126508">"Darbo įrankiai"</item>
+    <item msgid="4595330511709890409">"Portfelis"</item>
+    <item msgid="8352738347856724389">"Žvaigždė"</item>
+    <item msgid="7082783098151998721">"Lotoso žiedas"</item>
+    <item msgid="5772220259409264724">"Prižiūrėtojas"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index b3a53b5..eb5f2dd 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pristabdyta"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Nežinoma"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Peržiūra"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kodas"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Padaryti mažesnius"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Padaryti didesnius"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Visada"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Klausos įrenginio nustatymai"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Spartusis klavišas, klausos aparato suderinamumas"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Išankstiniai nustatymai"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Nėra jūsų audiologo suprogramuotų išankstinių nustatymų"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Išankstinių nustatymų atnaujinti nepavyko"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Garso išvestis"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Apie garso išvestį"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Šios programos kalbos pasirinkimas nepasiekiamas iš skilties „Nustatymai“."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Kalba gali skirtis nuo programoje pasiekiamų kalbų. Kai kuriose programose šis nustatymas gali būti nepalaikomas."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Nustatykite kiekvienos programos kalbą."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Jūsų sistema, programos ir svetainės naudoja pirmąją palaikomą kalbą iš pageidaujamų sąrašo."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Jūsų įrenginys, programos ir svetainės naudoja pirmąją palaikomą kalbą iš pageidaujamų kalbų sąrašo.\n\nDaug programų taip pat naudos regioną pagal pageidaujamą kalbą, kad nustatytų datų, skaičių ir matavimo vienetų formatą. Jei norite pakeisti regioną, pridėkite kalbą, tada pasirinkite pageidaujamą regioną."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Norėdami pasirinkti kalbą kiekvienai programai, eikite į programų kalbų nustatymus."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Sužinokite daugiau apie programos kalbas"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Pakeisti sistemos kalbą į %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Išjungti"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Įjungta / # programa gali pasiekti vietovę}one{Įjungta / # programa gali pasiekti vietovę}few{Įjungta / # programos gali pasiekti vietovę}many{Įjungta / # programos gali pasiekti vietovę}other{Įjungta / # programų gali pasiekti vietovę}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Įkeliama…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Programos, turinčios netoliese esančių įrenginių leidimą, gali nustatyti apytikslį atstumą iki prijungtų įrenginių."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Programos, turinčios netoliese esančių įrenginių leidimą, gali nustatyti apytikslę prijungtų įrenginių poziciją."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Programų ir paslaugų prieiga prie vietovės išjungta. Įrenginio vietovės informacija vis tiek gali būti siunčiama pagalbos tarnyboms skambinant ar siunčiant teksto pranešimą pagalbos numeriu."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Sužinokite daugiau apie vietovės nustatymus."</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Jei norite pakeisti, eikite į „ChromeOS“ nustatymus &gt; „Privatumas ir sauga“ &gt; „Privatumo valdikliai“ &gt; „Prieiga prie vietovės“"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Pridėti veido ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Pridėti veido, piršto atspaudo ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Pridėti veido, piršto atspaudų ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Nuotolinės Autentifikavimo priemonės atrakinimas"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Laikrodis pridėtas"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nustatykite laikrodį"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Sužinokite daugiau apie funkciją „Laikrodžio atrakinimas“"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pridėti laikrodį"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Pašalinti laikrodį"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Atrakinimas piršto atspaudu ir pagal veidą"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Atrakinimas pagal veidą ir piršto atspaudu"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Atrakinimas pagal veidą ir piršto atspaudu darbe"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Reikia nustatyti"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Pridėtas veidas ir kontroliniai kodai"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nustatoma privati erdvė…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Nepavyko nustatyti privačios erdvės"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Bandyti dar kartą"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Išeiti"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privati erdvė nepasiekiama.\nPeržiūrėkite galimas priežastis."</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Peržiūrėti galimas priežastis"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Pasirinkti naują privačios erdvės užraktą?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Galite nustatyti naują užraktą tik privačiai erdvei arba naudoti tą patį užraktą, kurį naudojate įrenginiui užrakinti"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Naudoti ekrano užraktą"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Paleisti įrenginį iš naujo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Išsamių NFC duomenų įrašymas gali būti naudojamas tik kuriant produktą. Į pranešimus apie riktus įtraukiama papildomų NFC duomenų, kuriuose gali būti privačios informacijos. Jei norite pakeisti šį nustatymą, paleiskite įrenginį iš naujo."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Paleisti iš naujo"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Įjungta"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Išjungta"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Išorinis vaizdo įrenginys"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Išorinio vaizdo įrenginio naudojimas"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ekrano skyra"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Išorinis vaizdo įrenginys atjungtas"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Pasukimas"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Įprastas"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Pakeitus pasukimą arba skyrą, gali būti sustabdytos šiuo metu veikiančios programos"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Įrenginys turi būti prijungtas prie išorinio vaizdo įrenginio, kad būtų galima bendrinti ekrano vaizdą"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Daugiau parinkčių"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Perdavimas"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"ekrano vaizdo bendrinimas"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Įgalinti belaidį rodymą"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Prisitaikanti"</string>
     <string name="brightness" msgid="6216871641021779698">"Šviesumo lygis"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Prisitaikantis šviesumas"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Apie prisitaikantį šviesumą"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Ekrano šviesumas automatiškai prisitaikys prie jūsų aplinkos ir veiklos. Galite šliaužiklį perkelti patys, kad prisitaikantis šviesumas įsimintų jūsų nuostatas."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Įjungta"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Išjungta"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Parinktys"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pritaikomumas"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizinė klaviatūra"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Ekrano klaviatūros naudojimas"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Palikti ekrane, kol fizinė klaviatūra aktyvi"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Peradresavimo klavišai"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Klaviatūra nepaiso greitai kartojamų to paties klavišo paspaudimų <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> milisek."</string>
     <string name="slow_keys" msgid="2891452895499690837">"Lėtieji klavišai"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Laikas, per kurį aktyvinamas klavišo paspaudimas, koreguojamas į <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> milisek."</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Naudokite fizinę klaviatūrą, kad galėtumėte valdyti pelę."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Keisti rodyklės užpildymo stilių į geltoną"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Keisti rodyklės užpildymo stilių į rožinį"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Keisti rodyklės užpildymo stilių į mėlyną"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Rodyklės brūkšnio stilius"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Balta"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Juoda"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nėra"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Sužinokite jutiklinės dalies gestus"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"jutiklinė dalis, pelė, žymeklis, slinkti, perbraukti, spustelėti dešiniuoju klavišu, spustelėti"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"spustelėti dešiniuoju klavišu, paliesti"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Pasirinktas naudotojo: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Kalba"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Žymiklio greitis"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Žymeklio dydis"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Sumažinti žymeklį"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Padidinti žymeklį"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Žaidimų valdiklis"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Nukreipti vibravimą"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Siųsti vibraciją į žaidimų valdiklį, kai jis prijungtas"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vis tiek tęsti"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Atšaukti"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Didinimo nustatymai"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Stumdymas vienu pirštu"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Perkelkite didintuvą vienu pirštu"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Judėkite ekrane vilkdami pirštu."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Perkelkite didinimo sritį vilkdami vienu pirštu."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Perkelkite didinimo sritį vilkdami dviem pirštais."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nepasiekiama, kol didinama tik dalis ekrano"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Palieskite mygtuką, kad keistumėte mastelį"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Sparčiai artinkite ekrane, kad turinys būtų didesnis"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Kad priartintumėte, atlikite toliau nurodytus veiksmus.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.&lt;br/&gt; {1,number,integer}. Palieskite ekraną.&lt;br/&gt; {2,number,integer}. Pereikite nuo vieno ekrano elemento prie kito vilkdami dviem pirštais.&lt;br/&gt; {3,number,integer}. Koreguokite mastelį suėmę dviem pirštais.&lt;br/&gt; {4,number,integer}. Sustabdykite didinimo funkciją sparčiuoju klavišu.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Kad laikinai priartintumėte, atlikite toliau nurodytus veiksmus.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Įsitikinkite, kad didinimo tipas nustatytas į viso ekrano.&lt;br/&gt; {1,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.&lt;br/&gt; {2,number,integer}. Palieskite ir palaikykite bet kurią ekrano vietą.&lt;br/&gt; {3,number,integer}. Pereikite nuo vieno ekrano elemento prie kito vilkdami pirštu.&lt;br/&gt; {4,number,integer}. Sustabdykite didinimo funkciją pakeldami pirštą."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Kad priartintumėte, atlikite toliau nurodytus veiksmus.:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.&lt;br/&gt; {1,number,integer}. Palieskite ekraną.&lt;br/&gt; {2,number,integer}. Judėkite ekrane vilkdami dviem pirštais.&lt;br/&gt; {3,number,integer}. Koreguokite mastelį suėmę dviem pirštais.&lt;br/&gt; {4,number,integer}. Sustabdykite didinimo funkciją sparčiuoju klavišu.&lt;br/&gt;&lt;br/&gt; Taip pat galite laikinai priartinti ir atlikti kitus veiksmus."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Kad priartintumėte, atlikite toliau nurodytus veiksmus.:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Paleiskite didinimo funkciją sparčiuoju klavišu.&lt;br/&gt; {1,number,integer}. Palieskite ekraną.&lt;br/&gt; {2,number,integer}. Judėkite ekrane vilkdami vienu arba dviem pirštais.&lt;br/&gt; {3,number,integer}. Koreguokite mastelį suėmę dviem pirštais.&lt;br/&gt; {4,number,integer}. Sustabdykite didinimo funkciją sparčiuoju klavišu.&lt;br/&gt;&lt;br/&gt; Taip pat galite laikinai priartinti ir atlikti kitus veiksmus."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kai didinimas įjungtas, galite artinti ekraną.\n\n"<b>"Jei norite keisti mastelį,"</b>", įjunkite didinimą, tada palieskite bet kurioje ekrano vietoje.\n"<ul><li>"Slinkite vilkdami dviem ar daugiau pirštų"</li>\n<li>"Koreguokite mastelį suimdami dviem ar daugiau pirštų"</li></ul>\n\n<b>"Jei norite laikinai pakeisti mastelį"</b>", įjunkite didinimą, tada palieskite ir palaikykite bet kurioje ekrano vietoje.\n"<ul><li>"Naršykite ekraną vilkdami pirštu"</li>\n<li>"Pakelkite pirštą, kad tolintumėte"</li></ul>\n\n"Negalite artinti naudodami klaviatūrą ar naršymo juostą."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g> psl. iš <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Pritaikomumo mygtuko spartusis klavišas"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Palieskite dengiamąjį mygtuką"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pritaikomumo gestas"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Palieskite pritaikomumo mygtuką <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ekrano apačioje. Norėdami perjungti funkcijas, palieskite ir palaikykite pritaikomumo mygtuką."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Perbraukite aukštyn dviem pirštais nuo ekrano apačios.\n\nJei norite perjungti funkcijas, perbraukite aukštyn dviem pirštais ir palaikykite."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Perbraukite aukštyn trimis pirštais nuo ekrano apačios.\n\nJei norite perjungti funkcijas, perbraukite aukštyn trimis pirštais ir palaikykite."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Perbraukite aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite aukštyn ir palaikykite.}one{Perbraukite # pirštu aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # pirštu aukštyn ir palaikykite.}few{Perbraukite # pirštais aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # pirštais aukštyn ir palaikykite.}many{Perbraukite # piršto aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # piršto aukštyn ir palaikykite.}other{Perbraukite # pirštų aukštyn nuo ekrano apačios. Norėdami perjungti funkcijas, perbraukite # pirštų aukštyn ir palaikykite.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Daugiau parinkčių"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Sužinokite daugiau apie paslaugą „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Garsumo klavišai"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"garsumo klavišai"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Paspauskite ir palaikykite abu garsumo klavišus"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dukart palieskite ekraną dviem pirštais"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Palietimas du kartus tiek pirštų: %1$d"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Greitai du kartus palieskite ekraną tiek pirštų: %1$d"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Palietimas tris kartus"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Greitai palieskite ekraną %1$d k. Įrenginys gali veikti lėčiau."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Palietimas du kartus tiek pirštų: %1$d"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Greitai palieskite ekraną {0,number,integer} k. dviem pirštais"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrano palietimas tris kartus"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"palietimas tris kartus"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Sparčiai palieskite ekraną {0,number,integer} k. Dėl šio sparčiojo klavišo įrenginys gali veikti lėčiau"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Išplėstin."</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Pritaikymo mobiliesiems mygtukas nustatytas į „<xliff:g id="SERVICE">%1$s</xliff:g>“. Jei norite naudoti didinimo funkciją, palieskite ir palaikykite pritaikymo neįgaliesiems mygtuką, tada pasirinkite didinimo funkciją."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pritaikomumo gestas nustatytas į „<xliff:g id="SERVICE">%1$s</xliff:g>“. Norėdami naudoti didinimą, perbraukite dviem pirštais iš ekrano apačios ir palaikykite. Tada pasirinkite didinimą."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ši paslauga veikia netinkamai."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Pritaikomumo spartieji klavišai"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Rodyti sparčiuosiuose nustatymuose"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Raudona, žalia"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Raudona, žalia"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Raudona-žalia, silpna žalia"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Raudona-žalia, silpna raudona"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Mėlyna, geltona"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Pilkumo tonas"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensyvumas"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Silpna žalia (deuteranomalija)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Silpna raudona (protanomalija)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nepasiekiama naudojant pilkumo tono režimą arba kai spalvų taisymas yra išjungtas"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalija"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalija"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Itin blanku"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Padaryti ekraną itin blankų"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Žalsvai mėlyna"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Geltona"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Purpurinė"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Leisti „<xliff:g id="SERVICE">%1$s</xliff:g>“ valdyti visas įrenginio funkcijas?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"„<xliff:g id="SERVICE">%1$s</xliff:g>“ reikia:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Kadangi programa užstoja leidimo užklausą, nustatymuose negalima patvirtinti jūsų atsakymo."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"„<xliff:g id="SERVICE">%1$s</xliff:g>“ nori valdyti visas šio įrenginio funkcijas. Paslauga gali skaityti ekraną ir veikti specialiųjų poreikių turinčių naudotojų vardu. Šis valdymo lygis nėra tinkamas daugumai programų."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Galimybę valdyti visas funkcijas patariama suteikti programoms, kurios padeda specialiųjų poreikių turintiems asmenims, bet ne daugumai programų."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekrano peržiūra ir valdymas"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Naudojant šį ekrano valdiklį galima skaityti visą ekrane rodomą turinį ir rodyti turinį virš kitų programų."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Veiksmų peržiūra ir atlikimas"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Naudojant šią funkciją galima stebėti jūsų sąveiką su programa ar aparatinės įrangos jutikliu ir sąveikauti su programomis jūsų vardu."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leisti"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Atmesti"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Išjungti"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nė vieno}=1{Nustatytas 1 tvarkaraštis}one{Nustatytas # tvarkaraštis}few{Nustatyti # tvarkaraščiai}many{Nustatyta # tvarkaraščio}other{Nustatyta # tvarkaraščių}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Netrukdymo režimas"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioriteto režimai"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Pridėti režimą"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Sumažinkite blaškančių veiksnių ir valdykite savo dėmesį naudodami miego, darbo, vairavimo ir įvairius kitus režimus."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Sukurkite savo režimą"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Gauti pranešimus tik iš svarbių žmonių ar programų"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Nustatyti tvarkaraštį"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Tvarkaraštis pagal"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Diena ir laikas"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„9.00–17.00 darbo dienomis“"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalendoriaus įvykiai"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Aktyvus režimas „{mode_1}“}=2{Aktyvūs režimai „{mode_1}“ ir „{mode_2}“}=3{Aktyvūs režimai „{mode_1}“, „{mode_2}“ ir „{mode_3}“}one{Aktyvūs režimai „{mode_1}“ ir „{mode_2}“ ir dar #}few{Aktyvūs režimai „{mode_1}“ ir „{mode_2}“ ir dar #}many{Aktyvūs režimai „{mode_1}“ ir „{mode_2}“ ir dar #}other{Aktyvūs režimai „{mode_1}“ ir „{mode_2}“ ir dar #}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Vieną režimą galima įjungti automatiškai}one{# režimą galima įjungti automatiškai}few{# režimus galima įjungti automatiškai}many{# režimo galima įjungti automatiškai}other{# režimų galima įjungti automatiškai}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ĮJUNGTA"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nenustatyta"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Išjungta"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Režimo kūrimas"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tinkinta"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Įjungti dabar"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Išjungti"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Režimas nerastas"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Pertraukčių apribojimas"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokuoti pertrauktis ir trukdžius"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Nustatyti „<xliff:g id="MODE">%1$s</xliff:g>“"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Netrukdymo režimo įjungimas"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Signalai ir medijos garsai gali trikdyti"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tvarkaraščiai"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Tvarkaraščių trynimas"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Ištrinti"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Pervardyti"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Ištrinti"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Ištrinti režimą „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redaguoti"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Tvarkaraščiai"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Tvarkaraštis"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Įjungti automatiškai"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Pridėti kalendorių"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Naudoti kalendorių"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Tvarkaraštis"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nustatykite tvarkaraštį"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kada įjungti automatiškai"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Įvykio tvarkaraštis"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Įjungti per įvykius, skirtus"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kur yra atsakymas į kvietimą"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Tvarkaraštis pagal laiką"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Tvarkaraštis"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> val. <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Tvarkaraštis"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Leisti pertrauktis, skleidžiančias garsą"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokuoti vaizdinius trikdžius"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Leisti vaizdinius signalus"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Leidžiami pranešimai"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Papildomi veiksmai"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Pranešimų filtrai"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Daugiau nustatymų"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Išjungta}=1{Išjungta / vienas režimas gali įsijungti automatiškai}one{Išjungta / # režimas gali įsijungti automatiškai}few{Išjungta / # režimai gali įsijungti automatiškai}many{Išjungta / # režimo gali įsijungti automatiškai}other{Išjungta / # režimų gali įsijungti automatiškai}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Vaizdo nustatymai"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Pateikties parinktys"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Pilkumo tonas"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"įgalinti tamsiąją temą"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Perjunkite, kad OS ir programos teiktų pirmenybę šviesiam tekstui tamsiame fone, nes taip mažiau pavargsta akys ir labai tausojamas akumuliatorius kai kuriuose įrenginiuose"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nėra vaizdo pakeitimų}=1{{effect_1}}=2{{effect_1} ir {effect_2}}=3{{effect_1}, {effect_2} ir {effect_3}}one{{effect_1}, {effect_2} ir dar #}few{{effect_1}, {effect_2} ir dar #}many{{effect_1}, {effect_2} ir dar #}other{{effect_1}, {effect_2} ir dar #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Apribokite, kokius pranešimus gausite"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nefiltruojami jokie trukdžiai"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Išfiltruotų pranešimų rodymo parinktys"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kai įjungtas netrukdymo režimas"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Neskambėti gavus pranešimų"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"atidaromas pranešimas"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Leisti nustatyti pranešimus snausti"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Pranešimo taškas programos piktogramoje"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Pranešimų rinkiniai"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Burbulai"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbulai"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Rodyti šio pokalbio burbulą"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ši programa nepalaiko išplėstinių nustatymų"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Daugiau nustatymų"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Daugiau nustatymų pasiekiama šioje programoje"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptyvieji pranešimai"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Naudokite adaptyviuosius pranešimus"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kai per trumpą laiką gaunate daug pranešimų, telefonas sumažina garsumą ir iššokančiųjų langų skaičių ekrane ne daugiau nei dviem minutėms. Apie skambučius, signalus ir prioritetinius pokalbius bus pranešama vibravimu, garso signalu arba jie bus pateikiami ekrane, o visus pranešimus lengva rasti perbraukus žemyn nuo ekrano viršaus."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Pranešimų neaktyvumo laikotarpis"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Naudoti pranešimų neaktyvumo laikotarpį"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kai per trumpą laiką gaunate daug pranešimų, įrenginys sumažina garsumą ir įspėjimų skaičių ekrane ne daugiau nei dviem minutėms. Skambučiai, signalai ir prioritetiniai pokalbiai nepaveikiami. \n\nNeaktyvumo laikotarpiu gautus pranešimus galima rasti perbraukus žemyn iš ekrano viršaus."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Taikyti darbo profiliams"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Taikyti darbo profilio programoms"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pagalbinės virtualiosios realybės paslaugos"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorijos"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Kita"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ši programa nepaskelbė jokių pranešimų"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Rodyti nenaudojamas kategorijas"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Papildomi programos nustatymai"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Rodyti nenaudojamas kategorijas"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Slėpti nenaudojamas kategorijas"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Pokalbiai"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Visi pokalbiai"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"visi pokalbiai"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Svarbiausi pokalbiai"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritetiniai pokalbiai"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nėra"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Programos, kurios gali trikdyti"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Pasirinktos programos"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Netaikoma"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Viskas"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Jokios programos negali trukdyti}=1{„{app_1}“ gali trukdyti}=2{„{app_1}“ ir „{app_2}“ gali trukdyti}=3{„{app_1}“, „{app_2}“ ir „{app_3}“ gali trukdyti}one{„{app_1}“, „{app_2}“ ir dar # programa gali trukdyti}few{„{app_1}“, „{app_2}“ ir dar # programos gali trukdyti}many{„{app_1}“, „{app_2}“ ir dar # programos gali trukdyti}other{„{app_1}“, „{app_2}“ ir dar # programų gali trukdyti}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"„<xliff:g id="APP_LABEL">%s</xliff:g>“ (darbas)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Skaičiuojama…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"Dar <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Leisti programoms nepaisyti"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programos, kurios gali trikdyti"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pasirinkti daugiau programų"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niekas negali trikdyti"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Niekas negali trikdyti"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Kai kurie žmonės gali trikdyti"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Pakartotinai skambinantys žmonės gali trukdyti"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Visi žmonės gali trikdyti"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Pakartotinai skambinantys"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Leisti pakartotinai skambinančius žm."</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Pakeisti į signalus tik vienai valandai iki {time}}one{Pakeisti į signalus tik # valandai iki {time}}few{Pakeisti į signalus tik # valandoms iki {time}}many{Pakeisti į signalus tik # valandos iki {time}}other{Pakeisti į signalus tik # valandų iki {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Pakeisti tik į signalus iki <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Pakeisti į pertraukimo nustatymą visam laikui"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Pervardyti"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Keisti piktogramą"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Piktogramos keitimas"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Redagavimo režimas"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Režimo kūrimas"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Tinkintas režimas"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Režimo pavadinimas"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendoriaus įvykiai"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Laiko miegoti veiksmų seka"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Vairuojant"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Programos nustatymai"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacija ir nustatymai programoje „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Tvarko „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Išjungti režimą: <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Šis režimas niekada neįsijungs, kai yra išjungtas"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Išjungti"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Įgalinti režimą: <xliff:g id="MODE_NAME">%1$s</xliff:g>“?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Šis režimas gali būti įjungtas automatiškai, atsižvelgiant į jo nustatymus"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Įgalinti"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Nustatykite režimą, atitinkantį įprastą tvarkaraštį"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Nustatykite režimą, kad būtų sinchronizuojama su kalendoriaus įvykiais ir atsakymais į kvietimus"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Sukurkite raminančią miego veiksmų seką. Nustatykite signalus, pritemdykite ekraną ir užblokuokite pranešimus."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Teikite pirmenybę saugumui kelyje, kad užtikrintumėte dėmesingą vairavimą be dėmesį blaškančių elementų"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokuokite dėmesį blaškančius ar trikdančius elementus įrenginyje, kad sutelktumėte dėmesį"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Pašalinkite visus dėmesį blaškančius elementus, kad užtikrintumėte tylią aplinką"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Suasmeninkite įrenginio funkcijas ir nustatymus skirtingiems naudotojams"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Sumažinkite trikdžius leisdami tik svarbiems žmonėms ir programoms jus pasiekti"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Perspėjimas"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Uždaryti"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Siųsti atsiliepimą apie šį įrenginį"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Dėklas"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akumuliatorius"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Nustatymų skydelis"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Priverstinai įjungti darbalaukio režimą"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Priverstinai įjungti eksperimentinį darbalaukio režimą antriniuose ekranuose"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Įgalinti laisvos formos langus"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Įgalinti laisvos formos langus papildomame ekrane"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Įgalinti nekeičiamo dydžio progr. naud. kelių langų funkciją"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Leidžiama naudoti nekeičiamo dydžio programas su kelių langų funkcija"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Nepaisyti priverst. tamsaus rež. įgalin."</string>
@@ -4969,7 +5040,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiliojo ryšio duomenims"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Kad pagerintų įrenginio funkcijas, programos ir paslaugos vis tiek gali bet kada nuskaityti ieškodamos „Wi‑Fi“ tinklų, net jei „Wi‑Fi“ išjungtas. Tai gali būti naudojama siekiant pagerinti pagal vietovę teikiamas funkcijas ir paslaugas. Tai galite pakeisti „Wi-Fi“ nuskaitymo nustatymuose."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Pakeisti"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Prisijungta"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Laikinai prijungta"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Laikinai naudojama „<xliff:g id="SUBNAME">%1$s</xliff:g>“"</string>
@@ -5001,7 +5071,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Programos prisegimo naudojimas"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Kūrėjo parinkčių naudojimas"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Naudoti spausdinimo paslaugą"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Kelių naudotojų leidimas"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Leisti perjungti naudotoją"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"leisti, keli, naudotojas, leidimas, daug"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"keli, naudotojai, profiliai, žmonės, paskyros, perjungti, daug"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Belaidžio ryšio derinimo naudojimas"</string>
@@ -5115,8 +5185,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Pasirinkite, kas bus rodoma ekrane, kai planšetinis kompiuteris bus prijungtas prie doko. Naudojant ekrano užsklandą gali būti eikvojama daugiau įrenginio energijos."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Tinkinti"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Tinkinti skiltį „<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>“"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Norint įgalinti laisvos formos palaikymą, būtina paleisti iš naujo."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Norint priverstinai įjungti darbalaukio režimą antriniuose ekranuose, būtina paleisti iš naujo."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Norint įgalinti laisvos formos langų palaikymą, būtina paleisti iš naujo."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Norint atnaujinti laisvos formos langų pasiekiamumą, būtina paleisti iš naujo."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Norint įgalinti laisvos formos langus papildomuose ekranuose, būtina paleisti iš naujo."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Paleisti iš naujo dabar"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Paleisti iš naujo vėliau"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Erdvinis garsas"</string>
@@ -5213,7 +5284,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rožinė"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Purpurinė"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violetinė"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Atlikta"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Išsaugoti"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Atšaukti"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Numatytasis"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Vidutinis"</string>
@@ -5234,6 +5305,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Įjungta"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Išjungta"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Įjungta"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Garsas %1$d%% kairėje, %2$d%% dešinėje"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Garsas %1$d%% dešinėje, %2$d%% kairėje"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Įrenginio pavadinimas matomas jūsų įdiegtoms programoms. Kai prisijungiate prie „Bluetooth“ įrenginių ar „Wi-FI“ tinklo arba nustatote „Wi-Fi“ viešosios interneto prieigos tašką, jį taip pat gali matyti kiti žmonės."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatinė giminė"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Pasirinkite gramatinę giminę"</string>
@@ -5345,4 +5418,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Klausyti srauto"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Nuskaitykite garso srauto QR kodą, kad galėtumėte klausyti naudodami „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Bendrinant negalima redaguoti slaptažodžio. Jei norite pakeisti slaptažodį, pirmiausia išjunkite garso įrašų bendrinimą."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kodų skaitytuvas"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Nustatymų paieška"</string>
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 249e6cb..268c276 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Naktsmiers"</item>
-    <item msgid="4152450357280759894">"Braukšana pie stūres"</item>
-    <item msgid="7096549258219399423">"Iekļaujošs"</item>
-    <item msgid="2760716776980432977">"Pārvaldīts"</item>
-    <item msgid="601734478369121764">"Zvaigzne"</item>
-    <item msgid="6243809315432780521">"Kalendārs"</item>
-    <item msgid="4913577903148415331">"Laiks"</item>
-    <item msgid="3653377604690057780">"Kinoteātris"</item>
-    <item msgid="3843711267408385410">"Zieds"</item>
+    <item msgid="2750940760340557109">"Pusmēness"</item>
+    <item msgid="8513969636586738035">"Automašīna"</item>
+    <item msgid="957392343846370509">"Cilvēka prāts"</item>
+    <item msgid="6734164279667121348">"Kalendārs"</item>
+    <item msgid="4139559120353528558">"Pulkstenis"</item>
+    <item msgid="5157711296814769020">"Saulessargs"</item>
+    <item msgid="6635328761318954115">"Telts"</item>
+    <item msgid="1711994778883392255">"Filmas rullītis"</item>
+    <item msgid="9097658401859604879">"Spēles vadāmierīce"</item>
+    <item msgid="755931364157422565">"Sporta zāles hantele"</item>
+    <item msgid="8894207806795738429">"Cilvēks met bumbu"</item>
+    <item msgid="2274801572149555103">"Cilvēks sper"</item>
+    <item msgid="8795037201506843325">"Peldēšana"</item>
+    <item msgid="3558421426169430451">"Cilvēks pārgājienā"</item>
+    <item msgid="7455070421232184932">"Golfs"</item>
+    <item msgid="5841773092449126508">"Darbnīcas rīki"</item>
+    <item msgid="4595330511709890409">"Portfelis"</item>
+    <item msgid="8352738347856724389">"Zvaigznīte"</item>
+    <item msgid="7082783098151998721">"Lotosa zieds"</item>
+    <item msgid="5772220259409264724">"Uzraugs"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 4475843..ff63d75 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Atlikts"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Nezināms"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Priekšskatījums"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Kvadrātkods"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Samazināt"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Palielināt"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vienmēr"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Dzirdes aparāta iestatījumi"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Saīsne, saderība ar dzirdes aparātiem."</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Pirmsiestatījums"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Jūsu audiologs nav ieprogrammējis nekādus pirmsiestatījumus."</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Nebija iespējams atjaunināt pirmsiestatījumu."</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio izeja"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Par audio izvadi"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Iestatījumos nav pieejama valodas atlase šai lietotnei."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Valoda var atšķirties no lietotnē pieejamās valodas. Dažās lietotnēs šis iestatījums var netikt atbalstīts."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Iestatiet valodu katrai lietotnei."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistēmā, lietotnēs un tīmekļa vietnēs tiek izmantota pirmā atbalstītā valoda no jūsu vēlamajām valodām."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Jūsu ierīcē, lietotnēs un vietnēs tiek izmantota pirmā atbalstītā valoda no vēlamo valodu saraksta.\n\nDaudzās lietotnēs datumu, ciparu un mērvienību formātam tiks izmantots arī reģions no jūsu iestatītās vēlamās valodas. Lai mainītu reģionu, pievienojiet valodu un pēc tam izvēlēties vēlamo reģionu."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Lai atlasītu valodu katrai lietotnei, pārejiet uz lietotnes valodas iestatījumiem."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Plašāka informācija par lietotņu valodām"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vai mainīt sistēmas valodu uz šādu: %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Izslēgta"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ieslēgta/# lietotnei ir piekļuve atrašanās vietai.}zero{Ieslēgta/# lietotnēm ir piekļuve atrašanās vietai.}one{Ieslēgta/# lietotnei ir piekļuve atrašanās vietai.}other{Ieslēgta/# lietotnēm ir piekļuve atrašanās vietai.}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Notiek ielāde…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Lietotnes, kurām ir atļauja noteikt tuvumā esošās ierīces, var noteikt pievienoto ierīču relatīvo pozīciju."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Lietotnes, kurām ir atļauja noteikt tuvumā esošās ierīces, var noteikt pievienoto ierīču relatīvo pozīciju."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Lietotnēm un pakalpojumiem nav atļaujas piekļūt atrašanās vietai. Jūsu ierīces atrašanās vietas datus joprojām var nosūtīt ārkārtas dienestiem, ja zvanīsiet vai sūtīsiet īsziņu uz ārkārtas numuru."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Uzzināt vairāk par atrašanās vietas iestatījumiem"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Lai to mainītu, dodieties uz ChromeOS sadaļu Iestatījumi &gt; Drošība un konfidencialitāte &gt; Konfidencialitātes vadīklas &gt; Piekļuve atrašanās vietai"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Pievienota seja un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Pievienota seja, pirksta nospiedums un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Pievienota seja, pirkstu nospiedumi un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Atbloķēšana ar Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Pulkstenis pievienots"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Pulksteņa iestatīšana"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Uzzināt vairāk par funkciju “Atbloķēšana ar pulksteni”"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pievienot pulksteni"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Noņemt pulksteni"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Autorizācija ar pirksta nospiedumu un pēc sejas"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Autorizācija pēc sejas un pirksta nospieduma"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Autorizācija pēc sejas un pirksta nospieduma darba profilam"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nepieciešama iestatīšana"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Seja un pirksta nospiedumi ir pievienoti"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Notiek privātās telpas iestatīšana…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Nevarēja izveidot privāto telpu"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Mēģināt vēlreiz"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Iziet"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privātā telpa nav pieejama.\nSkatīt iespējamos cēloņus"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Skatīt iespējamos cēloņus"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Vai bloķēt privāto telpu ar jaunu metodi?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Privātajai telpai varat izmantot jaunu bloķēšanas metodi vai izmantot to pašu metodi, ko lietojat ierīces atbloķēšanai."</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Izmantot ekrāna bloķēšanu"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vai restartēt ierīci?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detalizētu NFC datu reģistrēšana ir paredzēta tikai ar izstrādi saistītiem nolūkiem. Papildu NFC dati tiek iekļauti kļūdu pārskatos, un tajos var būt ietverta privāta informācija. Lai mainītu šo iestatījumu, restartējiet ierīci."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Restartēt"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Ieslēgts"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Izslēgts"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ārējais displejs"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Izmantot ārējo displeju"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Displeja izšķirtspēja"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Ārējais displejs ir atvienots"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Virziens"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standarta"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Mainot virzienu vai izšķirtspēju, var tikt apturētas lietotnes, kas pašlaik darbojas"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Lai varētu spoguļot ekrānu, ierīcei jābūt savienotai ar ārēju displeju"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Citas iespējas"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Apraide"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"spogulis"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Bezvadu attēlošanas iespējošana"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptīva krāsa"</string>
     <string name="brightness" msgid="6216871641021779698">"Spilgtuma līmenis"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptīvs spilgtums"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Par adaptīvo spilgtumu"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Ekrāna spilgtums automātiski tiks pielāgots apkārtējai videi un veiktajām darbībām. Lai adaptīvajam spilgtumam iestatītu savas preferences, pārvietojiet slīdni."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Ieslēgt"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Izslēgts"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcijas"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pieejamība"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziskā tastatūra"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Izmantot ekrāna tastatūru"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Paturēt ekrānā, kamēr ir aktīva fiziskā tastatūra"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Atlēcienu taustiņi"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatūra ignorē ātru taustiņa nospiešanu vairākas reizes, ja tas tiek atkārtoti nospiests <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms laikā."</string>
     <string name="slow_keys" msgid="2891452895499690837">"Lēnie taustiņi"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Laiks, kas nepieciešams, lai aktivizētu nospiestu taustiņu, tiek pielāgots uz <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms."</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Izmantojiet fizisko tastatūru, lai kontrolētu peli."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mainīt aizpildījumu uz dzeltenu"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mainīt aizpildījuma stilu uz rozā"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mainīt aizpildījuma stilu uz zilu"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Rādītāja vilkuma stils"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Balts"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Melns"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nav"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Apgūt skārienpaliktņa žestus"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"skārienpaliktnis, pele, kursors, ritināt, vilkt, noklikšķināt ar peles labo pogu, noklikšķināt, rādītājs"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"noklikšķināt ar peles labo pogu, pieskarties"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Lietotāja atlasītais izkārtojums: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Runa"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Rādītāja ātrums"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Rādītāja mērogs"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Samazināt rādītāja mērogu"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Palielināt rādītāja mērogu"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Spēļu vadība"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Vibrācijas novirzīšana"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Novirzīt vibrāciju uz spēles vadāmierīci, kad ir izveidots savienojums"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Tomēr turpināt"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Atcelt"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Palielināšanas iestatījumi"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Pārvietošana ar vienu pirkstu"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Pārvietot lupu ar vienu pirkstu"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Velciet ar pirkstu, lai pārvietotos ekrānā."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Palielinājuma apgabala pārvietošanai velciet vienu pirkstu."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Palielinājuma apgabala pārvietošanai velciet divus pirkstus."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nav pieejama, kad tiek palielināta tikai daļa ekrāna"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Pieskarieties pogai, lai palielinātu"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Ātri tuviniet ekrānu, lai palielinātu saturu"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Tuvināšana&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Izmantojiet īsinājumtaustiņu, lai sāktu palielināšanu.&lt;br/&gt; {1,number,integer}. Pieskarieties ekrānam.&lt;br/&gt; {2,number,integer}. Lai pārvietotos ekrānā, velciet ar diviem pirkstiem.&lt;br/&gt; {3,number,integer}. Lai regulētu tālummaiņu, savelciet ar diviem pirkstiem.&lt;br/&gt; {4,number,integer}. Izmantojiet īsinājumtaustiņu, lai pārtrauktu palielināšanu.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Īslaicīga tuvināšana&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Pārliecinieties, vai iestatītais palielinājuma veids ir “Pilnekrāna režīms”.&lt;br/&gt; {1,number,integer}. Izmantojiet īsinājumtaustiņu, lai sāktu palielināšanu.&lt;br/&gt; {2,number,integer}. Pieskarieties un turiet jebkurā ekrāna vietā.&lt;br/&gt; {3,number,integer}. Lai pārvietotos ekrānā, velciet ar pirkstu.&lt;br/&gt; {4,number,integer}. Paceliet pirkstu, lai pārtrauktu palielināšanu."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Tuvināšana&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Izmantojiet saīsni, lai sāktu palielināšanu.&lt;br/&gt; {1,number,integer}. Pieskarieties ekrānam.&lt;br/&gt; {2,number,integer}. Lai pārvietotos ekrānā, velciet ar diviem pirkstiem.&lt;br/&gt; {3,number,integer}. Lai regulētu tālummaiņu, savelciet ar diviem pirkstiem.&lt;br/&gt; {4,number,integer}. Lai atceltu palielinājumu, izmantojiet saīsni.&lt;br/&gt;&lt;br/&gt; Varat arī tuvināt īslaicīgi un veikt vēl citas darbības."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Tuvināšana&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Izmantojiet saīsni, lai sāktu palielināšanu.&lt;br/&gt; {1,number,integer}. Pieskarieties ekrānam.&lt;br/&gt; {2,number,integer}. Lai pārvietotos ekrānā, velciet ar vienu vai diviem pirkstiem.&lt;br/&gt; {3,number,integer}. Lai regulētu tālummaiņu, savelciet ar diviem pirkstiem.&lt;br/&gt; {4,number,integer}. Lai atceltu palielinājumu, izmantojiet saīsni.&lt;br/&gt;&lt;br/&gt; Varat arī tuvināt īslaicīgi un veikt vēl citas darbības."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kad ir ieslēgts palielinājums, ekrānā varat izmantot tuvināšanu.\n\n"<b>"Lai izmantotu tālummaiņu"</b>", aktivizējiet palielinājumu un pēc tam pieskarieties jebkur ekrānā.\n"<ul><li>"Velciet ar vismaz 2 pirkstiem, lai ritinātu."</li>\n<li>"Savelciet kopā vismaz 2 pirkstus, lai pielāgotu tālummaiņu."</li></ul>\n\n<b>"Lai veiktu īslaicīgu tālummaiņu"</b>", aktivizējiet palielinājumu un pēc tam pieskarieties jebkurai vietai ekrānā un turiet to.\n"<ul><li>"Velciet ar pirkstu, lai pārvietotos pa ekrānu."</li>\n<li>"Paceliet pirkstu, lai veiktu tālināšanu."</li></ul>\n\n"Tastatūrā vai navigācijas joslā nevarat veikt tuvināšanu."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. lapa no <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Saīsne: pieejamības poga"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Pieskarieties peldošajai pogai"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Pieejamības žests"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekrāna apakšdaļā pieskarieties pieejamības pogai <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Lai pārslēgtu funkcijas, pieskarieties pieejamības pogai un turiet to."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Velciet ar 2 pirkstiem augšup no ekrāna apakšdaļas.\n\nLai pārslēgtu funkcijas, velciet ar 2 pirkstiem augšup un turiet."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Velciet ar 3 pirkstiem augšup no ekrāna apakšdaļas.\n\nLai pārslēgtu funkcijas, velciet ar 3 pirkstiem augšup un turiet."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Velciet augšup no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup un turiet.}zero{Velciet augšup ar # pirkstiem no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup ar # pirkstiem un turiet.}one{Velciet augšup ar # pirkstu no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup ar # pirkstu un turiet.}other{Velciet augšup ar # pirkstiem no ekrāna apakšdaļas. Lai pārslēgtu funkcijas, velciet augšup ar # pirkstiem un turiet.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Citas opcijas"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Plašāka informācija par: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Skaļuma pogas"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"skaļuma pogas"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Nospiediet un turiet abas skaļuma pogas"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dubultskāriens ekrānam ar diviem pirkstiem"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dubultskāriens ar %1$d pirkstiem"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ātri pieskarieties ekrānam divas reizes ar %1$d pirkstiem."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trīskāršais skāriens"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ātri pieskarieties ekrānam %1$d reizes. Var tikt palēnināta ierīces darbība."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dubultskāriens ar %1$d pirkstiem"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ar diviem pirkstiem {0,number,integer} reizes ātri pieskarieties ekrānam."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Pieskaršanās ekrānam 3 reizes"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trīskāršais skāriens"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ātri pieskarieties ekrānam {0,number,integer} reizes. Šī saīsne var palēnināt ierīces darbību."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Papildu"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Pieejamības pogai ir iestatīts pakalpojums <xliff:g id="SERVICE">%1$s</xliff:g>. Lai izmantotu palielināšanu, pieskarieties pieejamības pogai un pēc tam atlasiet palielināšanu."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Pieejamības žestam ir iestatīts <xliff:g id="SERVICE">%1$s</xliff:g>. Lai izmantotu palielinājumu, velciet ar diviem pirkstiem no ekrāna apakšdaļas un turiet. Pēc tam atlasiet palielinājumu."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Šis pakalpojums nedarbojas pareizi."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Pieejamības saīsnes"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Rādīt ātrajos iestatījumos"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Sarkana/zaļa krāsa"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Sarkana/zaļa krāsa"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Sarkanā/zaļā krāsa, vāja jutība pret zaļo"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Sarkanā/zaļā krāsa, vāja jutība pret sarkano"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Zila/dzeltena krāsa"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Pelēktoņu iestatījums"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitāte"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Vāja jutība pret zaļo krāsu, deiteranomālija"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Vāja jutība pret sarkano krāsu, protanomālija"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nav pieejams pelēktoņu režīmā vai tad, ja ir atspējota krāsu korekcija."</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deiteranomālija"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomālija"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomālija"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Papildu aptumšošana"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Izmantot ekrāna papildu aptumšošanu"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Ciānzila"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Dzeltena"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Fuksīnsarkana"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Vai atļaut pakalpojumam <xliff:g id="SERVICE">%1$s</xliff:g> pilnībā kontrolēt jūsu ierīci?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"Pakalpojumam <xliff:g id="SERVICE">%1$s</xliff:g> nepieciešams:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Lietotne Iestatījumi nevar verificēt jūsu atbildi, jo cita lietotne aizsedz atļaujas pieprasījumu."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Pakalpojums <xliff:g id="SERVICE">%1$s</xliff:g> pieprasa pilnīgu šīs ierīces kontroli. Pakalpojums var piekļūt ekrānā redzamajai informācijai un veikt darbības to lietotāju vārdā, kuriem ir īpašas vajadzības. Šāda līmeņa kontrole vairākumam lietotņu nav nepieciešama."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Pilnīga kontrole ir piemērota lietotnēm, kas nepieciešamas lietotājiem ar īpašām vajadzībām, taču ne lielākajai daļai lietotņu."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekrāna skatīšana un pārvaldīšana"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Tā var nolasīt visu ekrānā esošo saturu un attēlot saturu citām lietotnēm."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Darbību skatīšana un veikšana"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tā var izsekot jūsu mijiedarbību ar lietotni vai aparatūras sensoru un mijiedarboties ar lietotnēm jūsu vārdā."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Atļaut"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neatļaut"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izslēgt"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nav}=1{Iestatīts viens grafiks}zero{Iestatīti # grafiki}one{Iestatīts # grafiks}other{Iestatīti # grafiki}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Netraucēt"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritātes režīmi"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Pievienot režīmu"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Samaziniet traucēkļus un pārņemiet kontroli pār savu uzmanību, izmantojot režīmus miegam, darbam, automašīnas vadīšanai un visam pārējam."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Izveidot savu režīmu"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Saņemiet paziņojumus tikai no svarīgām personām un lietotnēm."</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Iestatīt grafiku"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Informācija grafika pamatā"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Diena un laiks"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"“Darbdienās plkst. 9:00–17:00”"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalendāra pasākumi"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Režīms {mode_1} ir aktīvs}=2{Režīmi {mode_1} un {mode_2} ir aktīvi}=3{Režīmi {mode_1}, {mode_2} un {mode_3} ir aktīvi}zero{Režīmi {mode_1}, {mode_2} un vēl # ir aktīvi}one{Režīmi {mode_1}, {mode_2} un vēl # ir aktīvi}other{Režīmi {mode_1}, {mode_2} un vēl # ir aktīvi}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 režīmu var ieslēgt automātiski}zero{# režīmus var ieslēgt automātiski}one{# režīmu var ieslēgt automātiski}other{# režīmus var ieslēgt automātiski}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"IESLĒGTS"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nav iestatīts"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Atspējots"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Režīma izveide"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Pielāgots"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Ieslēgt tūlīt"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Izslēgt"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Režīms nav atrasts"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Traucējumu ierobežošana"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloķējiet pārtraukumus un traucējumus"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Iestatiet: <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Režīma “Netraucēt” ieslēgšana"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Modinātāji un multivides skaņas, kam atļauts pārtraukt"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Grafiki"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Grafiku dzēšana"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Dzēst"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Pārdēvēt"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Dzēst"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vai dzēst režīmu “<xliff:g id="MODE">%1$s</xliff:g>”?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Rediģēt"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Grafiki"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Grafiks"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automātiska ieslēgšana"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Pievienot kalendāru"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Izmantot kalendāru"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Grafiks"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Iestatiet grafiku"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kad automātiski ieslēgt"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Pasākuma grafiks"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Kura kalendāra pasākumu laikā?"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Ja atbilde uz uzaicinājumu ir"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Laika grafiks"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Grafiks"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Grafiks"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Atļaut pārtraukumus ar skaņas signālu"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloķēt vizuālos traucējumus"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Vizuālu signālu atļaušana"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Paziņojumi, kas var jūs sasniegt"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Papildu darbības"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Paziņojumu filtri"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Citi iestatījumi"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Izslēgts}=1{Izslēgts; viens režīms var tikt ieslēgts automātiski}zero{Izslēgts; # režīmi var tikt ieslēgti automātiski}one{Izslēgts; # režīms var tikt ieslēgts automātiski}other{Izslēgts; # režīmi var tikt ieslēgti automātiski}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Attēlojuma iestatījumi"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Attēlojuma iespējas"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Pelēktoņu iestatījums"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"iespējot tumšo motīvu"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Iestatiet, lai operētājsistēmā un lietotnēs priekšroka tiktu dota gaišam tekstam uz tumša fona. Tas var mazāk nogurdināt acis un ievērojami ietaupīt akumulatora jaudu dažās ierīcēs."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nav attēlojuma izmaiņu}=1{{effect_1}}=2{{effect_1} un {effect_2}}=3{{effect_1}, {effect_2} un {effect_3}}zero{{effect_1}, {effect_2} un vēl #}one{{effect_1}, {effect_2} un vēl #}other{{effect_1}, {effect_2} un vēl #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ierobežot saņemamo paziņojumu veidus"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Netiek filtrēts neviens traucēklis"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Filtrētu paziņojumu attēlojuma iespējas"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kad ir ieslēgts režīms “Netraucēt”"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Nav skaņas signālu no paziņojumiem"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"atvērt paziņojumu"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Atļaut paziņojumu atlikšanu"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Paziņojuma punkts lietotnes ikonā"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paziņojumu komplekti"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Burbuļi"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Burbuļi"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Sarunas rādīšana burbulī"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Šajā lietotnē netiek atbalstīti izvērsti iestatījumi."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Citi iestatījumi"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Lietotnē ir pieejami citi iestatījumi"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptīvie paziņojumi"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Izmantot adaptīvos paziņojumus"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Ja īsā laika posmā saņemsiet daudz paziņojumu, tālrunis samazinās skaļumu un uznirstošo elementu rādīšanu ekrānā līdz pat divām minūtēm. Saņemot zvanus, signālus un prioritārās sarunas, tālrunī joprojām tiks aktivizēta vibrācija, atskaņots signāls vai ekrānā parādīts paziņojums. Visus paziņojumus ir viegli atrast, pavelkot lejup no ekrāna augšdaļas."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Nogaidīšanas periods paziņojumiem"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Izmantot nogaidīšanas periodu paziņojumiem"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Ja īsā laika posmā saņemsiet daudz paziņojumu, ierīce samazinās skaļumu un brīdinājumu rādīšanu līdz pat divām minūtēm. Tas neattiecas uz zvaniem, signāliem un prioritārām sarunām. \n\nNogaidīšanas perioda laikā saņemtos paziņojumus var atrast, pavelkot lejup no ekrāna augšdaļas."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Lietot darba profiliem"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Lietot darba profila lietotnēm"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR palīga pakalpojumi"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorijas"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Cits"</string>
     <string name="no_channels" msgid="4716199078612071915">"Šai lietotnei nav neviena paziņojuma."</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Rādīt neizmantotās kategorijas"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Lietotnes papildu iestatījumi"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Rādīt neizmantotās kategorijas"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Paslēpt neizmantotās kategorijas"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Sarunas"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Visas sarunas"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"visas sarunas"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioritāras sarunas"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritārās sarunas"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nav"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Lietotnes, kas var pārtraukt"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Atlasītās lietotnes"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Neviena"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Visas"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nevienai lietotnei nav atļauts pārtraukt}=1{Lietotnei {app_1} ir atļauts pārtraukt}=2{Lietotnēm {app_1} un {app_2} ir atļauts pārtraukt}=3{Lietotnēm {app_1}, {app_2} un {app_3} ir atļauts pārtraukt}zero{Lietotnēm {app_1} un {app_2}, kā arī vēl # lietotnēm ir atļauts pārtraukt}one{Lietotnēm {app_1} un {app_2}, kā arī vēl # lietotnei ir atļauts pārtraukt}other{Lietotnēm {app_1} un {app_2}, kā arī vēl # lietotnēm ir atļauts pārtraukt}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (darbam)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Notiek aprēķināšana…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Atļaut lietotnēm ignorēt režīmu “Netraucēt”"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Lietotnes, kas var pārtraukt"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Citu lietotņu atlase"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nekam nav atļauts pārtraukt"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nevienai personai nav atļauts pārtraukt"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Dažām personām ir atļauts pārtraukt"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Atkārtotiem zvanītājiem ir atļauts pārtraukt"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Visām personām ir atļauts pārtraukt"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Atkārtoti zvani"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Atkārtotu zvanu atļaušana"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Vienu stundu pāriet uz režīmu “Tikai signāli” (līdz: {time})}zero{# stundas pāriet uz režīmu “Tikai signāli” (līdz: {time})}one{# stundu pāriet uz režīmu “Tikai signāli” (līdz: {time})}other{# stundas pāriet uz režīmu “Tikai signāli” (līdz: {time})}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Pāriet uz režīmu “Tikai signāli” līdz plkst. <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Pāriet uz “Vienmēr pārtraukt”"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Pārdēvēt"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Mainīt ikonu"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Mainīt ikonu"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Režīma rediģēšana"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Režīma izveide"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Pielāgots režīms"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Režīma nosaukums"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendāra pasākumi"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Gulēšanas laiks"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Braukšanas laikā"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Lietotnes iestatījumi"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informācija un iestatījumi lietotnē <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Pārvalda <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Vai jāatspējo <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ja šis režīms būs atspējots, tas nekad netiks ieslēgts."</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Atspējot"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Vai jāiespējo <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Šis režīms var tikt ieslēgts automātiski, ņemot vērā tā iestatījumus."</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Iespējot"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Iestatiet režīmu, kas ņem vērā parasto grafiku."</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Iestatiet režīmu sinhronizēšanai ar kalendāra pasākumiem un atbildēm uz uzaicinājumiem."</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Izveidojiet nomierinošu miega režīma darbību secību. Iestatiet modinātāja signālus, aptumšojiet ekrānu un bloķējiet paziņojumus."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Koncentrējieties uz braukšanu bez traucēkļiem, lai gādātu par drošību uz ceļa."</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloķējiet traucējumus no ierīces, lai varētu koncentrēties."</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Novērsiet visus traucēkļus, lai radītu klusu vidi."</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizējiet ierīces lietošanas iespējas un iestatījumus dažādiem lietotājiem."</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Samaziniet traucēkļus, atļaujot paziņojumus tikai no svarīgām kontaktpersonām un lietotnēm."</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Brīdinājums"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Aizvērt"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Sūtīt atsauksmes par šo ierīci"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Futrālis"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Akumulators"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Iestatījumu panelis"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Veikt piespiedu darbvirsmas režīma atvēršanu"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Veikt piespiedu eksperimentālā darbvirsmas režīma atvēršanu sekundārajos displejos"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Iespējot brīvās formas logus"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Iespējot brīvās formas logus sekundārajā displejā"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Vairāku logu režīmā iespējot nemainīga lieluma lietotnes"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Šis iestatījums ļauj vairāku logu režīmā rādīt lietotnes, kuru lielums nav maināms"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Tumšā režīma piespiedu ieslēgšanas ignorēšana"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilie dati"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Lai uzlabotu ierīces lietošanas iespējas, lietotnes un pakalpojumi joprojām varēs meklēt Wi-Fi tīklus jebkurā laikā, pat ja Wi-Fi būs izslēgts. Šo iestatījumu var izmantot, piemēram, lai uzlabotu ar atrašanās vietu saistītas funkcijas un pakalpojumus. Varat to mainīt Wi-Fi meklēšanas iestatījumos."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Mainīt"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Ir izveidots savienojums"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Īslaicīgi izveidots savienojums"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Īslaicīgi tiek izmantots pakalpojums <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Izmantot lietotņu piespraušanu"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Izmantot izstrādātāju opcijas"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Izmantot drukāšanas pakalpojumu"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Atļaut vairākus lietotājus"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Atļaut lietotāju pārslēgšanu"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ļaut, vairāki, lietotājs, atļaut, daudz"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"vairāki, lietotāji, profili, personas, konti, pārslēgties, daudzi"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Izmantot bezvadu atkļūdošanu"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Izvēlieties, kas būs redzams ekrānā, kad planšetdators būs dokots. Ja izmantosiet ekrānsaudzētāju, ierīce var patērēt vairāk enerģijas."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Pielāgot"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Pielāgot ekrānsaudzētāju “<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>”"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Lai iespējotu brīvās formas atbalstu, nepieciešama atkārtota palaišana."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Lai piespiedu kārtā aktivizētu darbvirsmas režīmu sekundārajos displejos, nepieciešama atkārtota palaišana."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Lai iespējotu brīvās formas logu atbalstu, nepieciešama atkārtota palaišana."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Lai atjauninātu brīvās formas logu pieejamību, nepieciešama atkārtota palaišana."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Lai iespējotu brīvās formas logus sekundāros displejos, nepieciešama atkārtota palaišana."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Atkārtoti palaist tūlīt"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Atkārtoti palaist vēlāk"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Telpiskais audio"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Sārta"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Fuksīnsarkana"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Gatavs"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Saglabāt"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Atcelt"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Noklusējums"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Vidējs"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Ieslēgti"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Izslēgti"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Ieslēgti"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio: %1$d%% — pa kreisi, %2$d%% — pa labi"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio: %1$d%% — pa labi, %2$d%% — pa kreisi"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Jūsu ierīces nosaukums ir redzams jūsu instalētajām lietotnēm. Tas var būt redzams arī citām personām, ja izveidosiet savienojumu ar Bluetooth ierīcēm, Wi-Fi tīklu vai iestatīsiet Wi-Fi tīklāju."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatiskā dzimte"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Atlasiet gramatisko dzimti"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Klausīties straumi"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenējiet audio straumes kvadrātkodu, lai to klausītos ierīcē <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kopīgošanas laikā paroli nevar rediģēt. Lai mainītu paroli, vispirms izslēdziet audio kopīgošanu."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Kvadrātkoda skeneris"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Meklēšanas iestatījumi"</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-b+sr+Latn/strings.xml b/res/values-mcc262-mnc02-b+sr+Latn/strings.xml
index 6aaa944..246589e 100644
--- a/res/values-mcc262-mnc02-b+sr+Latn/strings.xml
+++ b/res/values-mcc262-mnc02-b+sr+Latn/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Ne možete da upućujete hitne pozive pomoću pozivanja preko WiFi-a. Ako probate da uputite hitan poziv, uređaj će automatski koristiti mobilnu mrežu. Hitni pozivi mogu da se upućuju samo u oblastima pokrivenim mobilnom mrežom."</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Ne možete da upućujete hitne pozive pomoću pozivanja preko Wi-Fi-ja. Ako probate da uputite hitan poziv, uređaj će automatski koristiti mobilnu mrežu. Hitni pozivi mogu da se upućuju samo u oblastima pokrivenim mobilnom mrežom."</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-mn/strings.xml b/res/values-mcc262-mnc02-mn/strings.xml
index 9a96f74..ac2a7a4 100644
--- a/res/values-mcc262-mnc02-mn/strings.xml
+++ b/res/values-mcc262-mnc02-mn/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Та Wi-Fi дуудлагаар яаралтай дуудлага хийх боломжгүй. Хэрэв та яаралтай дуудлага хийвэл таны төхөөрөмж хөдөлгөөнт холбооны сүлжээг автоматаар ашиглана. Яаралтай дуудлагыг зөвхөн хөдөлгөөнт холбооны сүлжээтэй газар хийх боломжтой."</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Та Wi-Fi дуудлагаар яаралтай дуудлага хийх боломжгүй. Хэрэв та яаралтай дуудлага хийвэл таны төхөөрөмж мобайл сүлжээг автоматаар ашиглана. Яаралтай дуудлагыг зөвхөн мобайл сүлжээтэй газар хийх боломжтой."</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-nb/strings.xml b/res/values-mcc262-mnc02-nb/strings.xml
index 68999e8..f77da80 100644
--- a/res/values-mcc262-mnc02-nb/strings.xml
+++ b/res/values-mcc262-mnc02-nb/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Du kan ikke ringe nødnumre via wifi-anrop. Hvis du prøver å ringe et nødnummer, bruker enheten automatisk mobilnettverket. Du kan bare ringe nødnumre i områder med mobildekning."</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Du kan ikke ringe nødnumre via Wi-Fi-anrop. Hvis du prøver å ringe et nødnummer, bruker enheten automatisk mobilnettverket. Du kan bare ringe nødnumre i områder med mobildekning."</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-ne/strings.xml b/res/values-mcc262-mnc02-ne/strings.xml
index c7da875..a850fff 100644
--- a/res/values-mcc262-mnc02-ne/strings.xml
+++ b/res/values-mcc262-mnc02-ne/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"तपाईं Wi-Fi को कल गर्ने सुविधामार्फत आपत्‌कालीन कलहरू गर्न सक्नुहुन्न। तपाईंले आपत्‌कालीन कल गर्न खोज्नुभयो भने तपाईंको यन्त्रले स्वतः मोबाइल नेटवर्कको प्रयोग गर्ने छ। मोबाइल नेटवर्क उपलब्ध भएका क्षेत्रहरूबाट मात्र आपत्‌कालीन कलहरू गर्न सकिन्छ।"</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"तपाईं Wi-Fi को कल गर्ने सुविधामार्फत आपतकालीन कलहरू गर्न सक्नुहुन्न। तपाईंले आपतकालीन कल गर्न खोज्नुभयो भने तपाईंको यन्त्रले स्वतः मोबाइल नेटवर्कको प्रयोग गर्ने छ। मोबाइल नेटवर्क उपलब्ध भएका क्षेत्रहरूबाट मात्र आपतकालीन कलहरू गर्न सकिन्छ।"</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-sr/strings.xml b/res/values-mcc262-mnc02-sr/strings.xml
index f20f3f4..abb56b6 100644
--- a/res/values-mcc262-mnc02-sr/strings.xml
+++ b/res/values-mcc262-mnc02-sr/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Не можете да упућујете хитне позиве помоћу позивања преко WiFi-а. Ако пробате да упутите хитан позив, уређај ће аутоматски користити мобилну мрежу. Хитни позиви могу да се упућују само у областима покривеним мобилном мрежом."</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Не можете да упућујете хитне позиве помоћу позивања преко Wi-Fi-ја. Ако пробате да упутите хитан позив, уређај ће аутоматски користити мобилну мрежу. Хитни позиви могу да се упућују само у областима покривеним мобилном мрежом."</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-sv/strings.xml b/res/values-mcc262-mnc02-sv/strings.xml
index b37dbb8..fea75e9 100644
--- a/res/values-mcc262-mnc02-sv/strings.xml
+++ b/res/values-mcc262-mnc02-sv/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Det går inte att ringa nödsamtal via wifi. Om du ringer ett nödnummer på enheten används mobilnätverket automatiskt. Det går bara att ringa nödsamtal där mobilnätet har täckning."</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"Det går inte att ringa nödsamtal via Wi-Fi. Om du ringer ett nödnummer på enheten används mobilnätverket automatiskt. Det går bara att ringa nödsamtal där mobilnätet har täckning."</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-te/strings.xml b/res/values-mcc262-mnc02-te/strings.xml
index e230bc5..9d9a240 100644
--- a/res/values-mcc262-mnc02-te/strings.xml
+++ b/res/values-mcc262-mnc02-te/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"మీరు Wi-Fi కాలింగ్ ద్వారా అత్యవసర కాల్స్‌ను చేయలేరు. అత్యవసర కాల్ చేయడానికి ప్రయత్నిస్తే, మీ పరికరం ఆటోమేటిక్‌గా మొబైల్ నెట్‌వర్క్‌ని ఉపయోగిస్తుంది. మొబైల్ నెట్‌వర్క్‌ కవరేజ్ ఉన్న ప్రాంతాల్లో మాత్రమే అత్యవసర కాల్స్‌ చేయబడతాయి."</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"మీరు Wi-Fi కాలింగ్ ద్వారా అత్యవసర కాల్‌లను చేయలేరు. అత్యవసర కాల్ చేయడానికి ప్రయత్నిస్తే, మీ పరికరం స్వయంచాలకంగా మొబైల్ నెట్‌వర్క్‌ని ఉపయోగిస్తుంది. మొబైల్ నెట్‌వర్క్‌ కవరేజ్ ఉన్న ప్రాంతాల్లో మాత్రమే అత్యవసర కాల్‌లు చేయబడతాయి."</string>
 </resources>
diff --git a/res/values-mcc262-mnc02-zh-rHK/strings.xml b/res/values-mcc262-mnc02-zh-rHK/strings.xml
index c04326a..b713374 100644
--- a/res/values-mcc262-mnc02-zh-rHK/strings.xml
+++ b/res/values-mcc262-mnc02-zh-rHK/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"你不可透過 Wi-Fi 通話撥打緊急電話。如果你嘗試撥打緊急電話,裝置會自動使用流動網絡。你只可在有流動網絡覆蓋的地方撥打緊急電話。"</string>
+    <string name="wifi_calling_off_explanation_2" msgid="5645212744935818562">\n\n"您不可透過 Wi-Fi 通話撥打緊急電話。如果您嘗試撥打緊急電話,裝置會自動使用流動網絡。您只可在有流動網絡覆蓋的地方撥打緊急電話。"</string>
 </resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 2409007..0d3d7d2 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Време за спиење"</item>
-    <item msgid="4152450357280759894">"Возење"</item>
-    <item msgid="7096549258219399423">"Реалистично"</item>
-    <item msgid="2760716776980432977">"Управувано"</item>
-    <item msgid="601734478369121764">"Ѕвезда"</item>
-    <item msgid="6243809315432780521">"Календар"</item>
-    <item msgid="4913577903148415331">"Време"</item>
-    <item msgid="3653377604690057780">"Театар"</item>
-    <item msgid="3843711267408385410">"Цвет"</item>
+    <item msgid="2750940760340557109">"Полумесечина"</item>
+    <item msgid="8513969636586738035">"Автомобил"</item>
+    <item msgid="957392343846370509">"Умот на лицето"</item>
+    <item msgid="6734164279667121348">"Календар"</item>
+    <item msgid="4139559120353528558">"Часовник"</item>
+    <item msgid="5157711296814769020">"Чадор за плажа"</item>
+    <item msgid="6635328761318954115">"Шатор"</item>
+    <item msgid="1711994778883392255">"Филмска лента"</item>
+    <item msgid="9097658401859604879">"Контролер за игри"</item>
+    <item msgid="755931364157422565">"Тег за теретана"</item>
+    <item msgid="8894207806795738429">"Лице кое фрла топка"</item>
+    <item msgid="2274801572149555103">"Лице кое клоца"</item>
+    <item msgid="8795037201506843325">"Пливање"</item>
+    <item msgid="3558421426169430451">"Лице кое планинари"</item>
+    <item msgid="7455070421232184932">"Голф"</item>
+    <item msgid="5841773092449126508">"Алати на работилницата"</item>
+    <item msgid="4595330511709890409">"Актовка"</item>
+    <item msgid="8352738347856724389">"Ѕвезда"</item>
+    <item msgid="7082783098151998721">"Цвет на лотос"</item>
+    <item msgid="5772220259409264724">"Надзорник"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 8dd319e..701817a 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Суспендирани"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Непознато"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Преглед"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-код"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Намали"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Зголеми"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Секогаш"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Поставки за слушни апарати"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Кратенка, компатибилност со слушни помагала"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Зададена вредност"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Нема зададени вредности што ги програмирал вашиот аудиолог"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Не можеше да се ажурира зададената вредност"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудиоизлез"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"За аудио-излезот"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Не може да се бира јазик за апликацијава од „Поставките“."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Јазикот може да се разликува од јазиците достапни во апликацијата. Некои апликации може да не ја поддржуваат оваа поставка."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Поставете го јазикот за секоја апликација."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Системот, апликациите и веб-сајтовите го користат првиот поддржан јазик од вашите претпочитани јазици."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Уредот, апликациите и веб-сајтовите го користат првиот поддржан јазик од списокот со претпочитани јазици.\n\nМногу апликации ќе го користат и регионот од вашиот претпочитан јазик за форматирање на датумите, броевите и единиците. За да го промените регионот, додајте јазик, а потоа изберете го претпочитаниот регион."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"За да изберете јазик за поединечна апликација, одете во поставките за јазик на апликацијата."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Дознајте повеќе за јазиците за апликации"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Да се промени системскиот јазик во %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Исклучено"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Вклучено/# апликација има пристап до локацијата}one{Вклучено/# апликација имаат пристап до локацијата}other{Вклучено/# апликации имаат пристап до локацијата}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Се вчитува…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликациите со дозвола за пристап до уредите во близина може да ја утврдуваат релативната положба на поврзаните уреди."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Апликациите со дозволата „Уреди во близина“ може да ја утврдуваат релативната положба на поврзаните уреди."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Пристапот до локацијата е исклучен за апликации и услуги. Сепак, можно е локацијата на уредот да се испрати до службите за спасување во итни случаи кога ќе ги повикате или кога ќе испратите порака на број за итни случаи."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Дознајте повеќе за „Поставките за локација“"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"За да промените, одете во „Поставките за ChromeOS &gt; Приватност и безбедност &gt; Контроли на приватноста &gt; Пристап до локацијата“"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додадени се лик и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додадени се лик, отпечаток и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додадени се лик, отпечатоци и <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Отклучување со далечински автентикатор"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Часовникот е додаден"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Поставете го часовникот"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Дознајте повеќе за „Отклучување со часовник“"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додај часовник"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Отстрани часовник"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отклучување со отпечаток и лик"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Отклучување со лик и отпечаток"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Отклучување со лик и отпечаток за работа"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Потребно е поставување"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Ликот и отпечатоците се додадени"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Се поставува „Приватен простор“…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Не можеше да се постави „Приватен простор“"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Обиди се пак"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Излези"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"„Приватен простор“ не е достапна.\nПогледнете ги можните причини"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Погледнете ги можните причини"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Да се избере ново заклучување за „Приватен простор“?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Може да поставите ново заклучување само за „Приватен простор“ или да го користите истото заклучување што го користите за отклучување на уредот"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Користете заклучување екран"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Да се рестартира уредот?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Деталното евидентирање на NFC е наменето само за развојни цели. Дополнителни податоци од NFC се вклучени во извештаите за грешки, коишто може да содржат приватни податоци. Рестартирајте го уредов за да ја промените оваа поставка."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Рестартирај"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Вклучено"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Исклучено"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Надворешен екран"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Користи надворешен екран"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Резолуција на екранот"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Надворешниот екран е исклучен"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Ротација"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Стандардно"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Промената на ротацијата или резолуцијата може да ги сопре сите апликации што се извршуваат во моментов"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Вашиот уред мора да биде поврзан со надворешен екран за да го отсликува вашиот екран"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Повеќе опции"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Емитување"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"огледало"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Овозможи приказ на безжични мрежи"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Адаптивни"</string>
     <string name="brightness" msgid="6216871641021779698">"Ниво на осветленост"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Адаптивна осветленост"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"За „Адаптивна осветленост“"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Осветленоста на екранот ќе се приспособува автоматски на вашата околина и активности. Може да го поместите лизгачот рачно за да ѝ помогнете на адаптивната осветленост да научи што ви одговара."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Вклучено"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Исклучена"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опции"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Пристапност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физичка тастатура"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Користете тастатура на екран"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Прикажувај ја на екранот додека е активна физичката тастатура"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Игнорирај повторени притискања"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Тастатурата игнорира брзи притискања на истото копче што се повторуваат во <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Бавни копчиња"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Времето за активирање по притискање копче го приспособува на <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Користете ја физичката тастатура за да го контролирате глувчето."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Промена на стил. на покаж. во жолт"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Промена на стил. на покаж. во розов"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Промена на стил. на покаж. во син"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Стил на потег со покажувачот"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Бела"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Црна"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Нема"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Научете движења за подлога за допир"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"подлога на допир, допирна подлога, глувче, курсор, лизгање, повлекување, кликнување со десното копче, клик, покажувач"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"кликнување со десното копче, допир"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Корисникот избрал: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Говор"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Брзина на покажувачот"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Големина на покажувачот"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Намали го покажувачот"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Зголеми го покажувачот"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Контролор на игра"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Пренасочување вибрации"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Испрати вибрации кон контролорот на игра кога е поврзан"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Сепак продолжи"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Откажи"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Поставки за зголемување"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Повлекување со еден прст"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Движете ја лупата со 1 прст"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Повлечете со 1 прст за движење низ екранот"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Преместете го зголемување со повлекување со еден прст."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Преместете го зголемување со повлекување со два прста."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Недостапно кога се зголемува само дел од екранот"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Допрете копче за зумирање"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Брзо зумирајте на екранот за да ги направите содржините поголеми"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;За да зумирате:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Употребете кратенка за почеток на зголемувањето&lt;br/&gt; {1,number,integer}. Допрете го екранот&lt;br/&gt; {2,number,integer}. Повлечете со два прста за да се движите низ екранот&lt;br/&gt; {3,number,integer}. Штипнете со два прста за да го приспособите зумот&lt;br/&gt; {4,number,integer}. Употребете кратенка за крај на зголемувањето&lt;br/&gt;&lt;br/&gt;&lt;b&gt;За да зумирате привремено:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Погрижете се типот на зголемувањето да биде поставен на цел екран&lt;br/&gt; {1,number,integer}. Употребете кратенка за почеток на зголемувањето&lt;br/&gt; {2,number,integer}. Допрете и задржете каде било на екранот&lt;br/&gt; {3,number,integer}. Повлечете со прст за да се движите низ екранот&lt;br/&gt; {4,number,integer}. Подигнете го прстот за крај на зголемувањето"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;За да зумирате:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Употребете кратенка за почеток на зголемувањето&lt;br/&gt; {1,number,integer}. Допрете го екранот&lt;br/&gt; {2,number,integer}. Повлечете со 2 прста за да се движите низ екранот&lt;br/&gt; {3,number,integer}. Штипнете со 2 прста за да го приспособите зумот&lt;br/&gt; {4,number,integer}. Употребете кратенка за сопирање на зголемувањето&lt;br/&gt;&lt;br/&gt; Може и да зумирате привремено и друго."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;За да зумирате:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Употребете кратенка за почеток на зголемувањето&lt;br/&gt; {1,number,integer}. Допрете го екранот&lt;br/&gt; {2,number,integer}. Повлечете со 1 или 2 прста за да се движите низ екранот&lt;br/&gt; {3,number,integer}. Штипнете со 2 прста за да го приспособите зумот&lt;br/&gt; {4,number,integer}. Употребете кратенка за сопирање на зголемувањето&lt;br/&gt;&lt;br/&gt; Може и да зумирате привремено и друго."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Кога е вклучено зумирањето, може да зумирате на екранот.\n\n"<b>"За да зумирате"</b>", стартувајте го зголемувањето, па допрете каде било на екранот.\n"<ul><li>"Повлечете со два или повеќе прсти за да лизгате"</li>\n<li>"Штипнете со два или повеќе прсти за да го приспособите зумот"</li></ul>\n\n<b>"За да зумирате привремено"</b>", стартувајте го зголемувањето, а потоа допрете и задржете каде било на екранот.\n"<ul><li>"Повлечете за да се движите околу екранот"</li>\n<li>"Подигнете го прстот за да одзумирате"</li></ul>\n\n"Не може да зумирате на тастатурата или на лентата за навигација."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Страница <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> од <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Кратенка за копчето за пристапност"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Повлечете нагоре од дното на екранот со два прста.\n\nЗа да се префрлите на друга функција, повлечете нагоре со два прста и задржете."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Повлечете нагоре од дното на екранот со три прста.\n\nЗа префрлање помеѓу функциите, повлечете нагоре со три прста и задржете."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Повлечете нагоре од долниот дел на екранот. За префрлање меѓу функциите, повлечете нагоре и задржете.}one{Повлечете нагоре со # прст од долниот дел на екранот. За префрлање меѓу функциите, повлечете нагоре со # прст и задржете.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Допрете го екранот двапати со два прста"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Брзо допрете го екранот %1$d пати. Со ова може да се забави уредот."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Двоен допир со %1$d прста"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Брзо допрете го екранот {0,number,integer} пати со два прста"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Троен допир на екранот"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"троен допир"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо допрете го екранот {0,number,integer} пати Оваа кратенка може да го забави уредот"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Напредно"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Копчето за „Пристапност“ е поставено на <xliff:g id="SERVICE">%1$s</xliff:g>. За да користите зголемување, допрете го и задржете го копчето за „Пристапност“, а потоа изберете „Зголемување“."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Ова движење за пристапност е поставено за <xliff:g id="SERVICE">%1$s</xliff:g>. За да користите зголемување, повлечете нагоре со два прста од дното на екранот и задржете. Потоа изберете зголемување."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Услугава е дефектна."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Кратенки за пристапност"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Прикажи во „Брзи поставки“"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Црвена и зелена"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Црвена и зелена"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Црвена и зелена, слаба зелена"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Црвена и зелена, слаба црвена"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Сина и жолта"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сиви тонови"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интензитет"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Слаба зелена, девтераномалија"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Слаба црвена, протаномалија"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недостапно за режимот на „Сиви тонови“ или кога е оневозможена „Корекција на боите“"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Девтераномалија"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномалија"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалија"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Дополнително затемнување"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Дополнително затемнување на екранот"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Тиркизна"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Жолта"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Магента"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Да се дозволи <xliff:g id="SERVICE">%1$s</xliff:g> да има целосна контрола врз вашиот уред?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> треба да:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Бидејќи апликацијата го прикрива барањето за дозвола, Поставките не може да го потврдат вашиот одговор."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> бара целосна контрола на уредов. Услугава може да го чита екранот и да делува во име на корисниците со потреба за пристапност. Ова ниво на контрола не е соодветно за повеќето апликации."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Целосната контрола е соодветна за апликации што ви помагаат со потребите за пристапност, но не и за повеќето апликации."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Преглед и контрола на екранот"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Може да ги чита сите содржини на екранот и да прикажува содржини врз другите апликации."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Преглед и вршење дејства"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да ја следи вашата интеракција со апликациите или со хардверските сензори и да врши интеракција со апликациите во ваше име."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Исклучи"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ниеден}=1{Поставен е 1 распоред}one{Поставен е # распоред}other{Поставени се # распореди}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Не вознемирувај"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Приоритетни режими"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Додајте режим"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Минимизирајте ги работите што го одвлекуваат вниманието и контролирајте го вашето внимание со режимите за спиење, работа, возење и многу други."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Создајте свој режим"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Добивајте известувања само од важни луѓе и апликации"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Поставете распоред"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Распоред според"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Ден и време"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„работни денови, 9:00 – 17:00“"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Настани во календарот"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Активен е {mode_1}}=2{Активни се {mode_1} и {mode_2}}=3{Активни се {mode_1}, {mode_2} и {mode_3}}one{Активни се {mode_1}, {mode_2} и уште #}other{Активни се {mode_1}, {mode_2} и уште #}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 режим може да се вклучи автоматски}one{# режим може да се вклучат автоматски}other{# режими може да се вклучат автоматски}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ВКЛУЧЕНО"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Не е поставено"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Оневозможено"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Создајте режим"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Приспособено"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Вклучи сега"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Исклучи"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Режимот не е најден"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ограничете ги прекините"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Блокирајте ги прекините и одвлекувањата на внимание"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Поставете <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Исклучување на „Не вознемирувај“"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Алармите и звуците од аудиовизуелните содржини може да го прекинуваат"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Распореди"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Избришете ги распоредите"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Избриши"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Преименувај"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Избриши"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Да се избрише режимот „<xliff:g id="MODE">%1$s</xliff:g>“?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Измени"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Распореди"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Распоред"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Автоматско вклучување"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Додајте календар"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Користете го календарот"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Распоред"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Поставете распоред"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Кога да се вклучи автоматски"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Распоред на настани"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Вклучи во текот на настани за"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Каде одговорот на поканата е"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Распоред според време"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Распоред"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ч. <xliff:g id="MINUTES">%2$d</xliff:g> мин."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Распоред"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Дозволете прекинувања што произведуваат звук"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Блокирајте визуелни нарушувања"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Дозволи визуелни сигнали"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Известувања што може да стигнат до вас"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Дополнителни дејства"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Филтри за известувања"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Повеќе поставки"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Исклучено}=1{Исклучено/1 режим може да се вклучи автоматски}one{Исклучено/# режим може да се вклучат автоматски}other{Исклучено/# режими може да се вклучат автоматски}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Поставки за екранот"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Опции за екранот"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Сиви тонови"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"овозможете темна тема"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Префрлете ги OS и апликациите за да претпочитаат светол текст на темна заднина, што може да биде полесно за очите и овозможува значителна заштеда на батеријата на некои уреди"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Нема промени на екранот}=1{{effect_1}}=2{{effect_1} и {effect_2}}=3{{effect_1}, {effect_2} и {effect_3}}one{{effect_1}, {effect_2} и уште #}other{{effect_1}, {effect_2} и уште #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ограничете ги известувањата"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Не се филтрираат прекините"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Опции за прикажување филтрирани известувања"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Кога е вклучен режимот „Не вознемирувај“"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Без звук од известувањата"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"отворете го известувањето"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Дозволи одложување на известувањата"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Точка за известување на икона за апликацијата"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Пакети известувања"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Балончиња"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Балончиња"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Стави го разговорот во балонче"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Адаптивни известувања"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Користи „Адаптивни известувања“"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Кога ќе добиете многу известувања во краток временски период, вашиот телефон ќе го намали звукот и ќе ги минимизира скокачките прозорци на екранот во период до две минути. Известувањата за повиците, алармите и приоритетните разговори сè уште вибрираат, испуштаат звук или се појавуваат на екранот, а сите известувања може да се најдат лесно кога ќе повлечете одозгора надолу на екранот."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Применете на апликациите во работниот профил"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Помошни услуги за VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Категории"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Друго"</string>
     <string name="no_channels" msgid="4716199078612071915">"Апликацијава не објави ниедно известување"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Прикажи ги некористените категории"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Дополнителни поставки во апликацијата"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Прикажи ги некористените категории"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Скриј ги некористените категории"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Разговори"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Сите разговори"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"сите разговори"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Приоритетни разговори"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"приоритетни разговори"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ниеден"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Апликации што може да прекинуваат"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Избрани апликации"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Нема"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Сите"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ниедна апликација не може да го прекинува}=1{{app_1} може да го прекинува}=2{{app_1} и {app_2} може да го прекинуваат}=3{{app_1}, {app_2} и{app_3} може да го прекинуваат}one{{app_1}, {app_2} и уште # може да го прекинуваат}other{{app_1}, {app_2} и уште # може да го прекинуваат}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (работа)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Се пресметува…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+ <xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволете апликациите да занемаруваат"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Апликации што може да го прекинуваат режимот"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Изберете уште апликации"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Повторните повикувачи може да го прекинат"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Сите луѓе може да го прекинуваат"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Редовни повикувачи"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дозволи повторни повикувачи"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Смени само на аларми во траење од еден час до {time}}one{Смени само на аларми во траење од # час до {time}}other{Смени само на аларми во траење од # часа до {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Промена на аларми само до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Промени секогаш да се прекине"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Преименувајте"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Променете ја иконата"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Променете ја иконата"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Изменете режим"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Создајте режим"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Приспособете го режимот"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Име на режимот"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Настани во календарот"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Рутина за времето за спиење"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"При возење"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Поставки за апликации"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Податоци и поставки во <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Управувано од <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Да се оневозможи <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Овој режим никогаш нема да се вклучи кога е оневозможен"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Оневозможи"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Да се овозможи <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Овој режим може да се вклучи автоматски според неговите поставки"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Овозможи"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Поставете режим што следи редовен распоред"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Поставете режим за синхронизација со настани во календарот и одговори на поканите"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Создајте смирувачка рутина за спиење. Поставете аларми, затемнете го екранот и блокирајте ги известувањата."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"За фокусирано возење без одвлекување на вниманието, безбедноста на патот нека ви биде приоритет"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Опомена"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Затвори"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Повратни информации за уредов"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Футрола за полнење"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерија"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Табла за поставки"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Наметни режим на работна површина"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Наметнете го експерименталниот режим на работна површина на секундарните екрани"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Овозможете прозорци со менлива големина"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Овоз. прозорци со менлива големина на секун. екран"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Овозможи фиксна големина во режим со повеќе прозорци"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Овозможува апликации со фиксна големина да бидат во режим со повеќе прозорци"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Отфрли го наметнувањето темен режим"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилен интернет"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"За да се подобри доживувањето на уредот, апликациите и услугите може сѐ уште да скенираат за Wi‑Fi мрежи во секое време, дури и кога Wi‑Fi е исклучено. Ова може да се користи, на пример, за подобрување на функциите и услугите според локацијата. Може да го промените ова во поставките за „Скенирање за Wi-Fi“."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Измени"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Поврзано"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Привремено поврзано"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Привремено преку <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Користи „Закачување апликации“"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Користи „Програмерски опции“"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Користи ја услугата за печатење"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Дозволи повеќе корисници"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Дозволете менување корисници"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"дозволи, повеќекратно, корисник, дозвола, многу"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"повеќе, корисници, профили, лица, сметки, смени, многу"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Користи „Безжично отстранување грешки“"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Изберете што да се прикажува на екранот кога таблетот е приклучен на док. Уредот може да користи повеќе енергија кога се користи штедач на екранот."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Приспособете"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Приспособете го <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Потребно е рестартирање за да се овозможи поддршка со слободна форма."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Потребно е рестартирање за да се присили режимот на компјутер на секундарни екрани."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Потребно е рестартирање за да се овозможи поддршка за прозорци со менлива големина."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Потребно е рестартирање за да се ажурира достапноста на прозорци со менлива големина."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Потребно е рестартирање за да се овозможат прозорци со менлива големина на секундарни екрани."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартирај сега"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартирај подоцна"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Просторен звук"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ружа"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Магента"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Виолетова"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Готово"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Зачувај"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Откажи"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Стандардно"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Средно"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Вклучено"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Исклучено"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Вклучено"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: %1$d%% одлево, %2$d%% оддесно"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: %1$d%% оддесно, %2$d%% одлево"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Името на уредот е видливо за апликациите што сте ги инсталирале. Може да го видат и други луѓе кога ќе се поврзете со уреди со Bluetooth, на Wi-Fi мрежа или кога ќе поставите точка на пристап за Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Граматички род"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Изберете граматички род"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слушнете го стримот"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Скенирајте го QR-кодот на аудиостримот за да слушате со <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Лозинката не може да се измени додека се споделува. За промена на лозинката, прво исклучете го споделувањето аудио."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Скенер на QR-кодови"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Пребарувајте низ поставките"</string>
 </resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index 824f470..c7f0a13 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"ബെഡ്‌ടൈം"</item>
-    <item msgid="4152450357280759894">"ഡ്രൈവിംഗ്"</item>
-    <item msgid="7096549258219399423">"ഇമേഴ്‌സീവ്"</item>
-    <item msgid="2760716776980432977">"മാനേജ് ചെയ്യുന്നത്"</item>
-    <item msgid="601734478369121764">"നക്ഷത്രം"</item>
-    <item msgid="6243809315432780521">"കലണ്ടർ"</item>
-    <item msgid="4913577903148415331">"സമയം"</item>
-    <item msgid="3653377604690057780">"തിയേറ്റർ"</item>
-    <item msgid="3843711267408385410">"പൂവ്"</item>
+    <item msgid="2750940760340557109">"അർദ്ധ ചന്ദ്രൻ"</item>
+    <item msgid="8513969636586738035">"കാർ"</item>
+    <item msgid="957392343846370509">"മനസ്സ്"</item>
+    <item msgid="6734164279667121348">"കലണ്ടർ"</item>
+    <item msgid="4139559120353528558">"ക്ലോക്ക്"</item>
+    <item msgid="5157711296814769020">"ബീച്ച് കുട"</item>
+    <item msgid="6635328761318954115">"ടെന്റ്"</item>
+    <item msgid="1711994778883392255">"ഫിലിം റീൽ"</item>
+    <item msgid="9097658401859604879">"ഗെയിം കൺട്രോളർ"</item>
+    <item msgid="755931364157422565">"ജിം ഡംബെൽ"</item>
+    <item msgid="8894207806795738429">"പന്ത് എറിയുന്ന വ്യക്തി"</item>
+    <item msgid="2274801572149555103">"കിക്ക് ചെയ്യുന്ന വ്യക്തി"</item>
+    <item msgid="8795037201506843325">"നീന്തൽ"</item>
+    <item msgid="3558421426169430451">"ഹൈക്ക് ചെയ്യുന്ന വ്യക്തി"</item>
+    <item msgid="7455070421232184932">"ഗോൾഫ്"</item>
+    <item msgid="5841773092449126508">"വർക്ക്‌ഷോപ്പ് ടൂളുകൾ"</item>
+    <item msgid="4595330511709890409">"ബ്രീഫ്കെയ്‌സ്"</item>
+    <item msgid="8352738347856724389">"നക്ഷത്രം"</item>
+    <item msgid="7082783098151998721">"താമരപ്പൂവ്"</item>
+    <item msgid="5772220259409264724">"സൂപ്പർവൈസർ"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 91dabd2..c288111 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"താൽക്കാലികമായി നിർത്തി"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"അജ്ഞാതം"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"പ്രിവ്യൂ ചെയ്യുക"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR കോഡ്"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ചെറുതാക്കുക"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"വലുതാക്കുക"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"എപ്പോഴും"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ശ്രവണ സഹായിയുടെ ക്രമീകരണം"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"കുറുക്കുവഴി, ശ്രവണ സഹായ അനുയോജ്യത"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"പ്രീസെറ്റ്"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"ഓഡിയോളജിസ്റ്റ് പ്രോഗ്രാം ചെയ്ത പ്രീസെറ്റുകളൊന്നുമില്ല"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"പ്രീസെറ്റ് അപ്ഡേറ്റ് ചെയ്യാനായില്ല"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ഓഡിയോ ഔട്ട്പുട്ട്"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ഓഡിയോ ഔട്ട്‌പുട്ടിനെ കുറിച്ച്"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ക്രമീകരണത്തിൽ നിന്ന് ഈ ആപ്പിനുള്ള ഭാഷ തിരഞ്ഞെടുക്കാനുള്ള ഓപ്‌ഷൻ ലഭ്യമല്ല."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ആപ്പിൽ ലഭ്യമായ ഭാഷകളിൽ നിന്ന് ഭാഷ വ്യത്യാസപ്പെട്ടേക്കാം. ചില ആപ്പുകൾ ഈ ക്രമീകരണത്തെ പിന്തുണച്ചേക്കില്ല."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ഓരോ ആപ്പിനുമുള്ള ഭാഷ സജ്ജീകരിക്കുക."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"നിങ്ങളുടെ സിസ്റ്റം, ആപ്പുകൾ, വെബ്സൈറ്റുകൾ എന്നിവ നിങ്ങൾ മുൻഗണന നൽകിയിരിക്കുന്ന പിന്തുണയുള്ള ഭാഷകളിൽ ആദ്യത്തെ ഭാഷ ഉപയോഗിക്കുന്നു."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"നിങ്ങളുടെ ഉപകരണം, ആപ്പുകൾ, വെബ്സൈറ്റുകൾ എന്നിവ നിങ്ങൾ തിരഞ്ഞെടുത്ത ഭാഷാ ലിസ്റ്റിലെ പിന്തുണയുള്ള ഭാഷകളിൽ ആദ്യത്തെ ഭാഷ ഉപയോഗിക്കുന്നു.\n\nതീയതികൾ, നമ്പറുകൾ, യൂണിറ്റുകൾ എന്നിവ ഫോർമാറ്റ് ചെയ്യാൻ പല ആപ്പുകളും നിങ്ങൾ തിരഞ്ഞെടുത്ത ഭാഷയുടെ പ്രദേശം ഉപയോഗിക്കും. നിങ്ങളുടെ മേഖല മാറ്റാൻ, ഭാഷ ചേർക്കുക, തുടർന്ന് നിങ്ങൾ മുൻഗണന നൽകുന്ന മേഖല തിരഞ്ഞെടുക്കുക."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ഓരോ ആപ്പിനുമുള്ള ഭാഷ തിരഞ്ഞെടുക്കാൻ, ആപ്പ് ഭാഷാ ക്രമീകരണത്തിലേക്ക് പോകുക."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ആപ്പ് ഭാഷകളെ കുറിച്ച് കൂടുതലറിയൂ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"സിസ്റ്റം ഭാഷ %s എന്നതിലേക്ക് മാറ്റണോ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ഓഫാക്കുക"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ഓണാണ് / # ആപ്പിന് ലൊക്കേഷനിലേക്ക് ആക്‌സസ് ഉണ്ട്}other{ഓണാണ് / # ആപ്പുകൾക്ക് ലൊക്കേഷനിലേക്ക് ആക്‌സസ് ഉണ്ട്}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ലോഡ് ചെയ്യുന്നു…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"സമീപമുള്ള ഉപകരണങ്ങളുടെ അനുമതിയുള്ള ആപ്പുകൾക്ക്, കണക്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഉപകരണങ്ങളുടെ ആപേക്ഷിക സ്ഥാനം നിർണ്ണയിക്കാനാകും."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"സമീപമുള്ള ഉപകരണങ്ങളുടെ അനുമതിയുള്ള ആപ്പുകൾക്ക്, കണക്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഉപകരണങ്ങളുടെ ഏകദേശ സ്ഥാനം നിർണ്ണയിക്കാനാകും."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ആപ്പുകൾക്കും സേവനങ്ങൾക്കും ലൊക്കേഷൻ ആക്‌സസ് ഓഫാണ്. നിങ്ങൾ അടിയന്തര നമ്പറിലേക്ക് കോൾ ചെയ്യുമ്പോഴോ ടെക്‌സ്‌റ്റ് ചെയ്യുമ്പോഴോ നിങ്ങളുടെ ഉപകരണ ലൊക്കേഷൻ, അടിയന്തര സാഹചര്യത്തിൽ പ്രതികരിക്കുന്നവർക്ക് തുടർന്നും അയച്ചേക്കാം."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ലൊക്കേഷൻ ക്രമീകരണത്തെക്കുറിച്ച് കൂടുതലറിയുക"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"മാറ്റാൻ, ChromeOS ക്രമീകരണം &gt; സ്വകാര്യതയും സുരക്ഷയും &gt; സ്വകാര്യതാ നിയന്ത്രണങ്ങൾ &gt; ലൊക്കേഷൻ ആക്സസ് എന്നിങ്ങനെ പോകുക"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"മുഖവും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"മുഖവും ഫിംഗർപ്രിന്റും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"മുഖവും ഫിംഗർപ്രിന്റുകളും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"വിദൂര Authenticator അൺലോക്ക്"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"വാച്ച് ചേർത്തു"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"നിങ്ങളുടെ വാച്ച് സജ്ജീകരിക്കൂ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"വാച്ച് അൺലോക്കിനെ കുറിച്ച് കൂടുതലറിയുക"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"വാച്ച് ചേർക്കുക"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"വാച്ച് നീക്കം ചെയ്യുക"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ഫിംഗർപ്രിന്റ് &amp; ഫേസ് അൺലോക്ക്"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ഫെയ്‌സ്, ഫിംഗർപ്രിന്റ് അൺലോക്ക്"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ഔദ്യോഗികാവശ്യത്തിനുള്ള ഫെയ്‌സ്, ഫിംഗർപ്രിന്റ് അൺലോക്ക്"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"സജ്ജീകരിക്കേണ്ടതുണ്ട്"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"മുഖവും ഫിംഗർപ്രിന്റുകളും ചേർത്തു"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കുന്നു…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"സ്വകാര്യ സ്‌പേസ് സജ്ജീകരിക്കാനായില്ല"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"വീണ്ടും ശ്രമിക്കുക"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"പുറത്തുകടക്കുക"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"സ്വകാര്യ സ്പേസ് ലഭ്യമല്ല.\nസാധ്യതയുള്ള കാരണങ്ങൾ കാണുക"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"സാധ്യതയുള്ള കാരണങ്ങൾ കാണുക"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"സ്വകാര്യ സ്‌പേസിന് പുതിയ ലോക്ക് തിരഞ്ഞെടുക്കണോ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"സ്വകാര്യ സ്പേസിന് മാത്രമായി നിങ്ങൾക്ക് പുതിയൊരു ലോക്ക് സജ്ജീകരിക്കാം അല്ലെങ്കിൽ നിങ്ങളുടെ ഉപകരണം അൺലോക്ക് ചെയ്യാനുപയോഗിക്കുന്ന അതേ ലോക്ക് തന്നെ ഉപയോഗിക്കാം"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യണോ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ഡെവലപ്പ്മെന്റ് ആവശ്യങ്ങൾക്ക് മാത്രം ഉദ്ദേശിച്ചുള്ളതാണ് വിശദമായ NFC ലോഗ് ചെയ്യൽ. ബഗ് റിപ്പോർട്ടുകളിൽ അധിക NFC ഡാറ്റ ഉൾപ്പെടുത്തിയിരിക്കുന്നു, അവയിൽ സ്വകാര്യ വിവരങ്ങൾ അടങ്ങിയിരിക്കാം. ഈ ക്രമീകരണം മാറ്റാൻ നിങ്ങളുടെ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യുക."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"റീസ്റ്റാർട്ട് ചെയ്യൂ"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ഓണാണ്"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ഓഫാണ്"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ബാഹ്യ ഡിസ്പ്ലേ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ബാഹ്യ ഡിസ്പ്ലേ ഉപയോഗിക്കുക"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ഡിസ്‌പ്ലേ റെസല്യൂഷൻ"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ബാഹ്യ ഡിസ്പ്ലേ വിച്ഛേദിച്ചിരിക്കുന്നു"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"റൊട്ടേഷൻ"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"സ്‌റ്റാൻഡേർഡ്"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"റൊട്ടേഷൻ അല്ലെങ്കിൽ റെസല്യൂഷൻ മാറ്റുന്നത് നിലവിൽ റൺ ചെയ്യുന്ന ഏത് ആപ്പിന്റെയും പ്രവർത്തനം അവസാനിപ്പിക്കും"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"സ്‌ക്രീൻ മിറർ ചെയ്യാൻ നിങ്ങളുടെ ഉപകരണം ഒരു ബാഹ്യ ഡിസ്‌പ്ലേയിലേക്ക് കണക്റ്റ് ചെയ്യേണ്ടതുണ്ട്"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"കൂടുതൽ ഓപ്ഷനുകൾ"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"കാസ്‌റ്റ് ചെയ്യുക"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"മിറർ"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"വയർലസ്‌ഡിസ്പ്ലേ സജീവമാക്കൂ"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"അനുയോജ്യമായത്"</string>
     <string name="brightness" msgid="6216871641021779698">"തെളിച്ചനില"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"അനുയോജ്യമായ തെളിച്ചം"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"അനുയോജ്യമായ തെളിച്ചത്തെ കുറിച്ച്"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"നിങ്ങളുടെ ചുറ്റുപാട്, പ്രവർത്തനം എന്നിവ അനുസരിച്ച് സ്‌ക്രീൻ തെളിച്ചം സ്വയമേവ ക്രമീകരിക്കും. നിങ്ങളുടെ താൽപര്യം മനസ്സിലാക്കാൻ അനുയോജ്യമായ തെളിച്ചത്തിനെ സഹായിക്കുന്നതിന് സ്ലൈഡർ നേരിട്ട് നീക്കാം."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ഓണാണ്"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ഓഫ്"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ഓപ്‌ഷനുകൾ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ഉപയോഗസഹായി"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ഫിസിക്കൽ കീബോർഡ്"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ഓൺ-സ്‌ക്രീൻ കീബോർഡ് ഉപയോഗിക്കുക"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"ഫിസിക്കൽ കീബോർഡ് സജീവമായിരിക്കുമ്പോൾ സ്ക്രീനിൽ നിലനിർത്തുക"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ബൗൺസ് കീകൾ"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> മില്ലിസെക്കൻഡിനുള്ളിൽ ഒരേ കീ അതിവേഗം ആവർത്തിച്ച് അമർത്തുന്നത് കീബോർഡ് അവഗണിക്കും"</string>
     <string name="slow_keys" msgid="2891452895499690837">"സ്ലോ കീകൾ"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"കീ പ്രസ്സ് പ്രവർത്തിക്കാൻ എടുക്കുന്ന സമയം <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> മില്ലിസെക്കൻഡ് ആയി ക്രമീകരിക്കും"</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="2396247040177734245">"മൗസ് നിയന്ത്രിക്കാൻ, ഫിസിക്കൽ കീബോർഡ് ഉപയോഗിക്കുക."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"പോയിന്റർ ഫിൽ സ്റ്റൈൽ മഞ്ഞയാക്കൂ"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"പോയിന്റർ ഫിൽ സ്റ്റൈൽ പിങ്ക് ആക്കൂ"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"പോയിന്റർ ഫിൽ സ്റ്റൈൽ നീലയാക്കൂ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"പോയിന്റർ സ്‌ട്രോക്ക് സ്‌റ്റൈൽ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"വെള്ള"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"കറുപ്പ്"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ഒന്നുമില്ല"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ടച്ച്പാഡ് ജെസ്ച്ചറുകൾ മനസ്സിലാക്കുക"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ട്രാക്ക്പാഡ്, ട്രാക്ക് പാഡ്, മൗസ്, കഴ്‌സർ, സ്ക്രോൾ, സ്വൈപ്പ്, വലത് ക്ലിക്ക്, ക്ലിക്ക്, പോയിന്റർ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"വലത് ക്ലിക്ക്, ടാപ്പ്"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"തിരഞ്ഞെടുത്ത ഉപയോക്താവ്: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"സംഭാഷണം"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"പോയിന്റർ വേഗത"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"പോയിന്റർ സ്‌കെയിൽ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"പോയിന്റർ സ്‌കെയിൽ കുറയ്ക്കുക"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"പോയിന്റർ സ്‌കെയിൽ വർദ്ധിപ്പിക്കുക"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ഗെയിം കൺട്രോളർ"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"വൈബ്രേഷൻ റീഡയറക്റ്റ് ചെയ്യുക"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"കണക്‌റ്റ് ചെയ്‌തിരിക്കുമ്പോൾ, ഗെയിം കൺട്രോളറിലേക്ക് വൈബ്രേഷൻ അയയ്‌ക്കുക"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"എന്തായാലും തുടരുക"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"റദ്ദാക്കുക"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"മാഗ്നിഫിക്കേഷൻ ക്രമീകരണം"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ഒരു വിരൽ കൊണ്ടുള്ള പാനിംഗ്"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ഒരു വിരൽ ഉപയോഗിച്ച് മാഗ്നിഫയർ നീക്കുക"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"സ്ക്രീനിലുടനീളം നീങ്ങാൻ ഒരു വിരൽ ഉപയോഗിച്ച് വലിച്ചിടുക"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ഒരു വിരൽ കൊണ്ട് വലിച്ച് മാഗ്നിഫിക്കേഷൻ ഏരിയ നീക്കുക."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"രണ്ട് വിരലുകൾ കൊണ്ട് വലിച്ച് മാഗ്നിഫിക്കേഷൻ ഏരിയ നീക്കുക."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"സ്ക്രീനിന്റെ ഒരു ഭാഗം മാത്രം വലുതാക്കിയിരിക്കുമ്പോൾ ലഭ്യമല്ല"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"സൂം ചെയ്യുന്നതിന് ബട്ടണിൽ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ഉള്ളടക്കം വലുതാക്കാൻ സ്ക്രീനിൽ വേഗത്തിൽ സൂം ഇൻ ചെയ്യുക"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;സൂം ഇൻ ചെയ്യാൻ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക&lt;br/&gt; {1,number,integer}. സ്ക്രീനിൽ ടാപ്പ് ചെയ്യുക&lt;br/&gt; {2,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് വലിച്ചിടുക&lt;br/&gt; {3,number,integer}. സൂം ക്രമീകരിക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് പിഞ്ച് ചെയ്യുക&lt;br/&gt; {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ കുറുക്കുവഴി ഉപയോഗിക്കുക&lt;br/&gt;&lt;br/&gt; &lt;b&gt;താൽക്കാലികമായി സൂം ഇൻ ചെയ്യാൻ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. നിങ്ങളുടെ മാഗ്‌നിഫിക്കേഷൻ തരം പൂർണ്ണ സ്‌ക്രീനിലേക്ക് സജ്ജീകരിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക&lt;br/&gt; {1,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക&lt;br/&gt; {2,number,integer}. സ്ക്രീനിൽ എവിടെയെങ്കിലും സ്‌പർശിച്ച് പിടിക്കുക&lt;br/&gt; {3,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ വിരൽ ഉപയോഗിച്ച് വലിച്ചിടുക&lt;br/&gt; {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ വിരൽ സ്ക്രീനിൽ നിന്ന് എടുക്കുക"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;സൂം ഇൻ ചെയ്യാൻ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക&lt;br/&gt; {1,number,integer}. സ്ക്രീനിൽ ടാപ്പ് ചെയ്യുക&lt;br/&gt; {2,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് വലിച്ചിടുക&lt;br/&gt; {3,number,integer}. സൂം ക്രമീകരിക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് പിഞ്ച് ചെയ്യുക&lt;br/&gt; {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ കുറുക്കുവഴി ഉപയോഗിക്കുക&lt;br/&gt;&lt;br/&gt; നിങ്ങൾക്ക് താൽകാലികമായും മറ്റും സൂം ഇൻ ചെയ്യാനും കഴിയും."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;സൂം ഇൻ ചെയ്യാൻ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാൻ കുറുക്കുവഴി ഉപയോഗിക്കുക&lt;br/&gt; {1,number,integer}. സ്ക്രീനിൽ ടാപ്പ് ചെയ്യുക&lt;br/&gt; {2,number,integer}. സ്ക്രീനിലുടനീളം നീക്കാൻ 1 അല്ലെങ്കിൽ 2 വിരലുകൾ ഉപയോഗിച്ച് വലിച്ചിടുക&lt;br/&gt; {3,number,integer}. സൂം ക്രമീകരിക്കാൻ 2 വിരലുകൾ ഉപയോഗിച്ച് പിഞ്ച് ചെയ്യുക&lt;br/&gt; {4,number,integer}. മാഗ്നിഫിക്കേഷൻ നിർത്താൻ കുറുക്കുവഴി ഉപയോഗിക്കുക&lt;br/&gt;&lt;br/&gt; നിങ്ങൾക്ക് താൽകാലികമായും മറ്റും സൂം ഇൻ ചെയ്യാനും കഴിയും."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"മാഗ്നിഫിക്കേഷൻ ഓണാക്കിയിരിക്കുമ്പോൾ, നിങ്ങളുടെ സ്‌ക്രീനിൽ സൂം ഇൻ ചെയ്യാവുന്നതാണ്.\n\n"<b>"സൂം ചെയ്യാൻ"</b>", മാഗ്നിഫിക്കേഷൻ ആരംഭിച്ച ശേഷം നിങ്ങളുടെ സ്‌ക്രീനിൽ എവിടെയെങ്കിലും ടാപ്പ് ചെയ്യുക.\n"<ul><li>"സ്‌ക്രോൾ ചെയ്യാൻ രണ്ടോ അതിലധികമോ വിരലുകൾ ഇഴയ്‌ക്കുക"</li>\n<li>"സൂം ക്രമീകരിക്കാൻ രണ്ടോ അതിലധികമോ വിരലുകൾ പിഞ്ച് ചെയ്യുക"</li></ul>\n\n<b>"താൽക്കാലികമായി സൂം ചെയ്യാൻ"</b>", മാഗ്നിഫിക്കേഷൻ ആരംഭിച്ച ശേഷം സ്‌ക്രീനിൽ എവിടെയെങ്കിലും സ്‌പർശിച്ചുപിടിക്കുക.\n"<ul><li>"സ്‌ക്രീനിന് ചുറ്റും നീക്കാൻ വലിച്ചിടുക"</li>\n<li>"സൂം ഔട്ട് ചെയ്യാൻ വിരൽ എടുക്കുക"</li></ul>\n\n"കീബോർഡിലും നാവിഗേഷൻ ബാറിലും നിങ്ങൾക്ക് സൂം ഇൻ ചെയ്യാനാവില്ല."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> പേജുകളിൽ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>-ാമത്തെ പേജ്"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ഉപയോഗസഹായി ബട്ടണിന്റെ കുറുക്കുവഴി"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"നിങ്ങളുടെ സ്‌ക്രീനിന്റെ താഴെ നിന്ന് രണ്ട് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ രണ്ട് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്‌ത് പിടിക്കുക."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"നിങ്ങളുടെ സ്‌ക്രീനിന്റെ ചുവട്ടിൽ നിന്ന് മൂന്ന് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ മൂന്ന് വിരലുകൾ കൊണ്ട് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്‌ത് പിടിക്കുക."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{സ്ക്രീനിന്റെ താഴെ നിന്ന് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക. ഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്ത് പിടിക്കുക.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്‌ക്രീനിൽ ഡബിൾ ടാപ്പ് ചെയ്യുക"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d തവണ അതിവേഗം സ്ക്രീൻ ടാപ്പ് ചെയ്യുക. ഇത് നിങ്ങളുടെ ഉപകരണത്തിന്റെ വേഗത കുറച്ചേക്കാം."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-വിരൽ ഉപയോഗിച്ചുള്ള ഡബിൾ ടാപ്പ്"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"സ്ക്രീൻ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ട്രിപ്പിൾ ടാപ്പ്"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക. ഈ കുറുക്കുവഴി നിങ്ങളുടെ ഉപകരണത്തിന്റെ വേഗത കുറച്ചേക്കാം"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"വിപുലമായത്"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"<xliff:g id="SERVICE">%1$s</xliff:g> സേവനത്തിലേക്ക് ഉപയോഗസഹായി ബട്ടൺ സജ്ജമാക്കിയിരിക്കുന്നു. മാഗ്നിഫിക്കേഷൻ ഉപയോഗിക്കുന്നതിന് ഉപയോഗസഹായി ബട്ടൺ സ്‌പർശിച്ചുപിടിച്ച് മാഗ്നിഫിക്കേഷൻ തിരഞ്ഞെടുക്കുക."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ഉപയോഗസഹായി വിരൽചലനം <xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിൽ ക്രമീകരിച്ചു. മാഗ്നിഫിക്കേഷൻ ഉപയോഗിക്കാൻ, സ്‌ക്രീനിന്റെ താഴെ നിന്ന് രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്‌ത് പിടിക്കുക. തുടർന്ന് മാഗ്നിഫിക്കേഷൻ തിരഞ്ഞെടുക്കുക."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ഈ സേവനം ശരിയായി പ്രവർത്തിക്കുന്നില്ല."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ഉപയോഗസഹായി കുറുക്കുവഴികൾ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"ദ്രുത്ര ക്രമീകരണങ്ങളിൽ ദൃശ്യമാക്കുക"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ചുവപ്പ്-പച്ച"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ചുവപ്പ്-പച്ച"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ചുവപ്പ്-പച്ച, പച്ച കാണാനാകില്ല"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ചുവപ്പ്-പച്ച, ചുവപ്പ് കാണാനാകില്ല"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"നീല-മഞ്ഞ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ഗ്രേസ്‌കെയിൽ"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"തീവ്രത"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"പച്ച നിറം കാണാനാകില്ല, വർണ്ണാന്ധത"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ചുവപ്പ് നിറം കാണാനാകില്ല, വർണ്ണാന്ധത"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ഗ്രേസ്‌കെയിൽ മോഡിലോ \'നിറം ശരിയാക്കൽ\' പ്രവർത്തനരഹിതമായിരിക്കുമ്പോഴോ ലഭ്യമല്ല"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ചുവപ്പ്, പച്ച നിറങ്ങളോടുള്ള വർണ്ണാന്ധത"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ചുവപ്പ്, പച്ച നിറങ്ങളോടുള്ള വർണ്ണാന്ധത"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"നീല, മഞ്ഞ നിറങ്ങളോടുള്ള വർണ്ണാന്ധത"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"കൂടുതൽ ഡിം ചെയ്യൽ"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"സ്‌ക്രീൻ കൂടുതൽ ഡിം ചെയ്യിക്കുക"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"സിയാൻ"</string>
     <string name="color_yellow" msgid="5957551912912679058">"മഞ്ഞ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"മജന്ത"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിന് നിങ്ങളുടെ ഉപകരണത്തിൻ്റെ പൂർണ്ണ നിയന്ത്രണം അനുവദിക്കണോ?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിന് ഇവ ആവശ്യമാണ്:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"അനുമതി അഭ്യർത്ഥനയെ ഒരു അപ്ലിക്കേഷൻ മറയ്‌ക്കുന്നതിനാൽ, ക്രമീകരണത്തിന് നിങ്ങളുടെ പ്രതികരണം പരിശോധിച്ചുറപ്പിക്കാനാകില്ല."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>, ഈ ഉപകരണത്തിന്റെ പൂർണ്ണ നിയന്ത്രണം അഭ്യർത്ഥിക്കുന്നു. ഉപയോഗസഹായം ആവശ്യമുള്ള ഉപയോക്താക്കൾക്ക് വേണ്ടി, സ്ക്രീനിലുള്ളത് വായിക്കാനും അവർക്ക് വേണ്ടി പ്രവർത്തിക്കാനും സേവനത്തിന് കഴിയും. മിക്ക ആപ്പുകളിലും ഈ തലത്തിലുള്ള നിയന്ത്രണം ഉചിതമല്ല."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ഉപയോഗസഹായി ആവശ്യങ്ങൾക്കായി നിങ്ങളെ സഹായിക്കുന്ന ആപ്പുകൾക്ക് പൂർണ്ണ നിയന്ത്രണം അനുയോജ്യമാണെങ്കിലും മിക്ക ആപ്പുകൾക്കും അതിന്റെ ആവശ്യമില്ല."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"സ്‌ക്രീൻ കാണുക, നിയന്ത്രിക്കുക"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ഇതിന് സ്‌ക്രീനിലെ എല്ലാ ഉള്ളടക്കവും വായിക്കാനും മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ ഉള്ളടക്കം പ്രദർശിപ്പിക്കാനുമാകും."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"കാണുക, പ്രവർത്തനങ്ങൾ നിർവഹിക്കുക"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ഇതിന് ഒരു ആപ്പുമായോ ഹാർഡ്‌വെയർ സെൻസറുമായോ ഉള്ള നിങ്ങളുടെ ആശയവിനിമയങ്ങൾ ട്രാക്ക് ചെയ്യാനും നിങ്ങളുടെ പേരിൽ ആശയവിനിമയം നടത്താനും കഴിയും."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"അനുവദിക്കൂ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"നിരസിക്കുക"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ഓഫാക്കുക"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ഒന്നുമില്ല}=1{ഒരു ഷെഡ്യൂൾ സജ്ജീകരിച്ചു}other{# ഷെഡ്യൂളുകൾ സജ്ജീകരിച്ചു}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ശല്യപ്പെടുത്തരുത്"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"മുൻഗണനാ മോഡുകൾ"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ഒരു മോഡ് ചേർക്കുക"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ശ്രദ്ധ തിരിക്കുന്ന ഘടകങ്ങൾ കുറയ്‌ക്കുകയും ഉറക്കം, ജോലി, ഡ്രൈവിംഗ് എന്നിവയ്ക്കും ഇവയ്ക്കിടയിലുള്ള മറ്റെല്ലാത്തിനും മോഡുകൾ സജ്ജീകരിച്ചുകൊണ്ട് ശ്രദ്ധ കേന്ദ്രീകരിക്കാൻ സഹായിക്കുകയും ചെയ്യുന്നു."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"നിങ്ങളുടെ സ്വന്തം മോഡ് സൃഷ്‌ടിക്കൂ"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"പ്രധാനപ്പെട്ട ആളുകളിൽ നിന്നും ആപ്പുകളിൽ നിന്നുമുള്ള അറിയിപ്പ് മാത്രം നേടുക"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"ഷെഡ്യൂൾ സജ്ജീകരിക്കുക"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"ഇതിന്റെ അടിസ്ഥാനത്തിൽ ഷെഡ്യൂൾ ചെയ്യൂ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ദിവസവും സമയവും"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"പ്രവൃത്തിദിവസങ്ങളിൽ 9 AM - 5 PM\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"കലണ്ടർ ഇവന്റുകൾ"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} സജീവമാണ്}=2{{mode_1}, {mode_2} എന്നിവ സജീവമാണ്}=3{{mode_1}, {mode_2}, {mode_3} എന്നിവ സജീവമാണ്}other{{mode_1}, {mode_2} എന്നിവയും മറ്റ് # എണ്ണവും സജീവമാണ്}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{ഒരു മോഡിന് സ്വയമേവ ഓണാകാനാകും}other{# മോഡുകൾക്ക് സ്വയമേവ ഓണാകാനാകും}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ഓണാണ്"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"സജ്ജീകരിച്ചിട്ടില്ല"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"പ്രവർത്തനരഹിതമാക്കി"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"മോഡ് സൃഷ്ടിക്കുക"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ഇഷ്‌ടാനുസൃതം"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ഇപ്പോൾ ഓണാക്കുക"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ഓഫാക്കുക"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"മോഡ് കണ്ടെത്തിയില്ല"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"തടസ്സങ്ങൾ പരിമിതപ്പെടുത്തുക"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"തടസ്സങ്ങളും ശ്രദ്ധ തിരിക്കുന്ന കാര്യങ്ങളും ബ്ലോക്ക് ചെയ്യുക"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> സജ്ജീകരിക്കുക"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'ശല്യപ്പെടുത്തരുത്\' ഓണാക്കുക"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"അലാറങ്ങൾക്കും മീഡിയ ശബ്‌ദങ്ങൾക്കും തടസ്സപ്പെടുത്താൻ കഴിയും"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ഷെഡ്യൂളുകൾ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ഷെഡ്യൂളുകൾ ഇല്ലാതാക്കുക"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ഇല്ലാതാക്കുക"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"പേരുമാറ്റുക"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ഇല്ലാതാക്കുക"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" മോഡ് ഇല്ലാതാക്കണോ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"എഡിറ്റ് ചെയുക"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ഷെഡ്യൂളുകൾ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"ഷെഡ്യൂള്‍‌"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"സ്വയമേവ ഓണാക്കുക"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"കലണ്ടർ ചേർക്കുക"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"നിങ്ങളുടെ കലണ്ടർ ഉപയോഗിക്കുക"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"ഷെഡ്യൂൾ"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ഷെഡ്യൂൾ സജ്ജീകരിക്കുക"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"എപ്പോൾ സ്വയമേവ ഓണാകണം"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ഇവന്റ് ഷെഡ്യൂൾ"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ഇതിനായി ഇവന്റിനിടയിൽ ഓണാക്കൂ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ക്ഷണത്തിന് ഈ മറുപടി ലഭിക്കുമ്പോൾ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"സമയ ഷെഡ്യൂൾ"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ഷെഡ്യൂൾ"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> മണിക്കൂർ, <xliff:g id="MINUTES">%2$d</xliff:g> മിനിറ്റ്"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ഷെഡ്യൂള്‍‌ ചെയ്യുക"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ശബ്‌ദമുണ്ടാക്കുന്ന തടസ്സങ്ങൾ അനുവദിക്കുക"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ദൃശ്യതടസങ്ങൾ ബ്ലോക്കുചെയ്യൂ"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ദൃശ്യ സിഗ്നലുകൾ അനുവദിക്കുക"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"നിങ്ങൾക്ക് ലഭിക്കുന്ന അറിയിപ്പുകൾ"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"കൂടുതൽ പ്രവർത്തനങ്ങൾ"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"അറിയിപ്പ് ഫിൽട്ടറുകൾ"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"കൂടുതൽ ക്രമീകരണം"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ഓഫാണ്}=1{ഓഫാണ് / ഒരു മോഡിന് സ്വയമേവ ഓണാകാനാകും}other{ഓഫാണ് / # മോഡുകൾക്ക് സ്വയമേവ ഓണാകാനാകും}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ഡിസ്പ്ലേ ക്രമീകരണം"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ഡിസ്പ്ലേ ഓപ്ഷനുകൾ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ഗ്രേസ്കെയിൽ"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ഡാർക്ക് തീം പ്രവർത്തനക്ഷമമാക്കുക"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"ഇരുണ്ട പശ്ചാത്തലത്തിലെ ലൈറ്റ് ടെക്‌സ്റ്റിന് മുൻഗണന നൽകാൻ OS-ഉം ആപ്പുകളും തമ്മിൽ മാറുക, ഇത് കണ്ണുകൾക്ക് അനുയോജ്യമായേക്കാം, ചില ഉപകരണങ്ങളിൽ കാര്യമായ തോതിൽ ബാറ്ററി ലാഭിക്കാനും സഹായിച്ചേക്കാം"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ഡിസ്പ്ലേ മാറ്റങ്ങളൊന്നുമില്ല}=1{{effect_1}}=2{{effect_1}, {effect_2} എന്നിവ}=3{{effect_1}, {effect_2}, {effect_3} എന്നിവ}other{{effect_1}, {effect_2} എന്നിവയും മറ്റ് # എണ്ണവും}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"നിങ്ങൾക്ക് ഏതൊക്കെ അറിയിപ്പുകൾ ലഭിക്കണമെന്നത് പരിമിതപ്പെടുത്തുക"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"തടസ്സങ്ങളൊന്നും ഫിൽട്ടർ ചെയ്തിട്ടില്ല"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ഫിൽട്ടർ ചെയ്ത അറിയിപ്പുകൾക്കുള്ള ഡിസ്പ്ലേ ഓപ്ഷനുകൾ"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓണാക്കുമ്പോൾ"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"അറിയിപ്പുകൾക്ക് ശബ്‍ദം വേണ്ട"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"അറിയിപ്പ് തുറക്കുക"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"അറിയിപ്പ് സ്‌നൂസ് ചെയ്യൽ അനുവദിക്കുക"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ആപ്പ് ഐക്കണിലെ അറിയിപ്പ് ഡോട്ട്"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"അറിയിപ്പ് ബണ്ടിലുകൾ"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"ബബിളുകൾ"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ബബിളുകൾ"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ഈ സംഭാഷണം ബബിൾ ചെയ്യുക"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"അഡാപ്‌റ്റീവ് അറിയിപ്പുകൾ"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"അഡാപ്‌റ്റീവ് അറിയിപ്പുകൾ ഉപയോഗിക്കുക"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"ചെറിയൊരു കാലയളവിൽ നിങ്ങൾക്ക് ധാരാളം അറിയിപ്പുകൾ ലഭിച്ചാൽ രണ്ട് മിനിറ്റോളം നിങ്ങളുടെ ഫോൺ, ശബ്ദം കുറയ്ക്കുകയും സ്‌ക്രീനിലെ പോപ്പ്-അപ്പുകൾ ചെറുതാക്കുകയും ചെയ്യും. കോളുകളും അലാറങ്ങളും മുൻഗണനയുള്ള സംഭാഷണങ്ങളും തുടർന്നും വൈബ്രേറ്റ് ചെയ്യുകയും ശബ്ദമുണ്ടാക്കുകയും സ്‌ക്രീനിൽ ദൃശ്യമാകുകയും ചെയ്യും, സ്‌ക്രീനിന് മുകളിൽ നിന്ന് താഴോട്ട് വലിക്കുകയാണെങ്കിൽ നിങ്ങൾക്ക് എല്ലാ അറിയിപ്പുകളും എളുപ്പത്തിൽ കണ്ടെത്തുകയും ചെയ്യാം."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ഔദ്യോഗിക പ്രൊഫൈൽ ആപ്പുകൾക്ക് ബാധകമാക്കുക"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR സഹായി സേവനങ്ങൾ"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"വിഭാഗങ്ങള്‍"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"മറ്റുള്ളവ"</string>
     <string name="no_channels" msgid="4716199078612071915">"ഈ ആപ്പ് അറിയിപ്പുകളൊന്നും പോസ്‌റ്റ് ചെയ്‌തിട്ടില്ല"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"ഉപയോഗിക്കാത്ത വിഭാഗങ്ങൾ കാണിക്കൂ"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ആപ്പിലെ അധിക ക്രമീകരണം"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"ഉപയോഗിക്കാത്ത വിഭാഗങ്ങൾ കാണിക്കൂ"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ഉപയോഗിക്കാത്ത വിഭാഗങ്ങൾ മറയ്ക്കൂ"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"സംഭാഷണങ്ങൾ"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"എല്ലാ സംഭാഷണങ്ങളും"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"എല്ലാ സംഭാഷണങ്ങളും"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"മുൻഗണനാ സംഭാഷണം"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"മുൻഗണനയുള്ള സംഭാഷണങ്ങൾ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ഒന്നും വേണ്ട"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"തടസ്സപ്പെടുത്താൻ കഴിയുന്ന ആപ്പുകൾ"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"തിരഞ്ഞെടുത്ത ആപ്പുകൾ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ഒന്നുമില്ല"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"എല്ലാം"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ഒരു ആപ്പിനും തടസ്സപ്പെടുത്താൻ കഴിയില്ല}=1{{app_1} എന്നതിന് തടസ്സപ്പെടുത്താൻ കഴിയും}=2{{app_1}, {app_2} എന്നിവയ്ക്ക് തടസ്സപ്പെടുത്താൻ കഴിയും}=3{{app_1}, {app_2}, {app_3} എന്നിവയ്ക്ക് തടസ്സപ്പെടുത്താൻ കഴിയും}other{{app_1}, {app_2} എന്നിവയ്ക്കും മറ്റ് # എണ്ണത്തിനും തടസ്സപ്പെടുത്താൻ കഴിയും}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ഔദ്യോഗികം)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"കണക്കാക്കുന്നു…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"അസാധുവാക്കാൻ ആപ്പുകളെ അനുവദിക്കുക"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"തടസ്സപ്പെടുത്താൻ കഴിയുന്ന ആപ്പുകൾ"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"കൂടുതൽ ആപ്പുകൾ തിരഞ്ഞെടുക്കുക"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"ആവർത്തിച്ച് വിളിക്കുന്നവർ തടസ്സം സൃഷ്ടിക്കാം"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"എല്ലാ ആളുകൾക്കും തടസ്സപ്പെടുത്താൻ കഴിയും"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ആവർത്തിച്ച് വിളിക്കുന്നവർ"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ആവർത്തിച്ച് വിളിക്കുന്നവരെ അനുവദിക്കുക"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} വരെ ഒരു മണിക്കൂർ നേരത്തേക്ക് \'അലാറങ്ങൾ മാത്രം\' എന്നതിലേക്ക് മാറ്റുക}other{{time} വരെ # മണിക്കൂർ നേരത്തേക്ക് \'അലാറങ്ങൾ മാത്രം\' എന്നതിലേക്ക് മാറ്റുക}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> വരെ മാത്രം അലാറങ്ങളിലേക്ക് മാറ്റുക"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"\'എല്ലായ്‌പ്പോഴും തടസ്സപ്പെടുത്തുക\' എന്നതിലേക്ക് മാറ്റുക"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"പേര് മാറ്റുക"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ഐക്കൺ മാറ്റുക"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ഐക്കൺ മാറ്റുക"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"എഡിറ്റ് മോഡ്"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"മോഡ് സൃഷ്ടിക്കുക"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ഇഷ്‍ടാനുസൃത മോഡ്"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"മോഡിന്റെ പേര്"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"കലണ്ടർ ഇവന്റുകൾ"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"ഉറക്ക സമയ ദിനചര്യ"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ഡ്രൈവ് ചെയ്യുമ്പോൾ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ആപ്പ് ക്രമീകരണം"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ആപ്പിലെ വിവരങ്ങളും ക്രമീകരണവും"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> മാനേജ് ചെയ്യുന്നത്"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> പ്രവർത്തനരഹിതമാക്കണോ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"പ്രവർത്തനരഹിതമാക്കിയിരിക്കുമ്പോൾ ഒരിക്കലും ഈ മോഡ് ഓണാകില്ല"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"പ്രവർത്തനരഹിതമാക്കുക"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> പ്രവർത്തനക്ഷമമാക്കണോ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ഈ മോഡ് ഇതിന്റെ ക്രമീകരണത്തിന്റെ അടിസ്ഥാനത്തിൽ സ്വയമേവ ഓണായേക്കാം"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"പതിവ് ഷെഡ്യൂൾ പിന്തുടരുന്ന ഒരു മോഡ് സജ്ജീകരിക്കുക"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"കലണ്ടർ ഇവന്റുകൾ സമന്വയിപ്പിക്കുന്നതിനും പ്രതികരണങ്ങൾ ക്ഷണിക്കുന്നതിനും ഒരു മോഡ് സജ്ജീകരിക്കുക"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"ശാന്തമായ ഉറക്ക ദിനചര്യ ഡിസൈൻ ചെയ്യുക. അലാറങ്ങൾ സജ്ജീകരിക്കുക, സ്ക്രീൻ മങ്ങിക്കുക, അറിയിപ്പുകൾ ബ്ലോക്ക് ചെയ്യുക."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ശ്രദ്ധ കേന്ദ്രീകരിച്ച് സുരക്ഷിതമായി വാഹനമോടിക്കാൻ റോഡിലെ സുരക്ഷയ്ക്ക് മുൻഗണന നൽകുക"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"മുന്നറിയിപ്പ്"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"അടയ്‌ക്കുക"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ഇതേക്കുറിച്ചുള്ള ഫീഡ്‌ബാക്ക് അയയ്‌ക്കൂ"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"കെയ്‌സ്"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ബാറ്ററി"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ക്രമീകരണ പാനൽ"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ഡെസ്ക്ടോപ്പ് മോഡിലേക്ക് നിർബന്ധിച്ച് വരുത്തുക"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ദ്വിതീയ ഡിസ്‌പ്ലേകളിൽ, പരീക്ഷണാത്മക ഡെസ്ക്ടോപ്പ് മോഡിലേക്ക് നിർബന്ധിച്ച് വരുത്തുക"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ഫ്രീഫോം വിൻഡോകൾ പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"സെക്കൻഡറി ഡിസ്പ്ലേയിൽ ഫ്രീഫോം വിൻഡോകൾ പ്രവർത്തനക്ഷമമാക്കൂ"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"വലുപ്പം മാറ്റാനാകാത്തവ മൾട്ടി വിൻഡോയിൽ പ്രവർത്തനക്ഷമമാക്കൂ"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"വലുപ്പം മാറ്റാൻ കഴിയാത്ത ആപ്പുകൾ മൾട്ടി വിൻഡോയിൽ അനുവദിക്കുന്നു"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"നിർബന്ധിത ഡാർക്ക് മോഡ് അസാധുവാക്കുക"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"മൊബൈൽ ഡാറ്റ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ഉപകരണ അനുഭവം മെച്ചപ്പെടുത്താൻ, വൈഫൈ ഓഫാക്കിയിരിക്കുമ്പോൾ പോലും ആപ്പുകൾക്കും സേവനങ്ങൾക്കും വൈഫൈ നെറ്റ്‌വർക്കുകൾ കണ്ടെത്താൻ ഏത് സമയത്തും സ്‌കാൻ ചെയ്യാനാകും. ഉദാഹരണത്തിന്, ലൊക്കേഷൻ അധിഷ്‌ഠിത ഫീച്ചറുകളും സേവനങ്ങളും മെച്ചപ്പെടുത്താൻ ഇത് ഉപയോഗിക്കാം. നിങ്ങൾക്ക് ഇത് വൈഫൈ സ്‌കാനിംഗ് ക്രമീകരണത്തിൽ മാറ്റാം."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"മാറ്റുക"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"കണക്റ്റ് ചെയ്തു"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"താൽക്കാലികമായി കണക്റ്റ് ചെയ്തിരിക്കുന്നു"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"താൽക്കാലികമായി <xliff:g id="SUBNAME">%1$s</xliff:g> ഉപയോഗിക്കുന്നു"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ആപ്പ് പിൻ ചെയ്യൽ ഉപയോഗിക്കുക"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ഡെവലപ്പർ ഓ‌പ്ഷനുകൾ ഉപയോഗിക്കുക"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"പ്രിന്റ് സേവനം ഉപയോഗിക്കുക"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"ഒന്നിലധികം ഉപയോക്താക്കളെ അനുവദിക്കുക"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ഉപയോക്താവിനെ മാറാൻ അനുവദിക്കുക"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"അനുവദിക്കുക, ഒന്നിലധികം, ഉപയോക്താവ്, അനുവാദം, നിരവധി"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ഒന്നിലധികം, ഉപയോക്താക്കൾ, പ്രൊഫൈലുകൾ, ആളുകൾ, അക്കൗണ്ടുകൾ, മാറുക, നിരവധി"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"വയർലസ് ഡീബഗ്ഗിംഗ് ഉപയോഗിക്കുക"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് ഡോക്ക് ചെയ്തിരിക്കുമ്പോൾ സ്ക്രീനിൽ എന്ത് കാണണമെന്ന് തിരഞ്ഞെടുക്കുക. സ്ക്രീൻ സേവർ ഉപയോഗിക്കുമ്പോൾ ഉപകരണം കൂടുതൽ ഊർജ്ജം ഉപയോഗിച്ചേക്കാം."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"ഇഷ്‌ടാനുസൃതമാക്കുക"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ഇഷ്‌ടാനുസൃതമാക്കുക"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ഫ്രീംഫോം പിന്തുണ പ്രവർത്തനക്ഷമമാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ദ്വിതീയ ഡിസ്പ്ലേകളെ നിർബന്ധിതമായി ഡെസ്ക്ക്ടോപ്പ് മോഡിലാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ഫ്രീംഫോം വിൻഡോയ്ക്കുള്ള പിന്തുണ പ്രവർത്തനക്ഷമമാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ഫ്രീഫോം വിൻഡോകളുടെ ലഭ്യത അപ്ഡേറ്റ് ചെയ്യാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"സെക്കൻഡറി ഡിസ്പ്ലേകളിൽ ഫ്രീഫോം വിൻഡോകൾ പ്രവർത്തനക്ഷമമാക്കാൻ റീബൂട്ട് ചെയ്യേണ്ടതുണ്ട്."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ഇപ്പോൾ റീബൂട്ട് ചെയ്യുക"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"പിന്നീട് റീബൂട്ട് ചെയ്യുക"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"സ്പേഷ്യൽ ഓഡിയോ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"റോസ്"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"മജന്ത"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"വയലറ്റ്"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"പൂർത്തിയായി"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"സംരക്ഷിക്കുക"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"റദ്ദാക്കുക"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ഡിഫോൾട്ട്"</string>
     <string name="contrast_medium" msgid="384414510709285811">"ഇടത്തരം"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ഓണാണ്"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ഓഫാണ്"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ഓണാണ്"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ഇടതുവശത്തെ ഓഡിയോ %1$d%%, വലതുവശം %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"വലതുവശത്തെ ഓഡിയോ %1$d%%, ഇടതുവശം %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"നിങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്‌ത ആപ്പുകൾക്ക് നിങ്ങളുടെ ഉപകരണത്തിന്റെ പേര് ദൃശ്യമാണ്. Bluetooth ഉപകരണങ്ങളിലേക്കോ വൈഫൈ നെറ്റ്‌വർക്കിലേക്കോ കണക്റ്റ് ചെയ്യുമ്പോഴോ ഒരു വൈഫൈ ഹോട്ട്സ്പോട്ട് സജ്ജീകരിക്കുമ്പോഴോ ഇത് മറ്റ് ആളുകൾക്കും കാണാനായേക്കും."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"വ്യാകരണ ലിംഗഭേദം"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"വ്യാകരണ ലിംഗഭേദം തിരഞ്ഞെടുക്കുക"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"സ്ട്രീം ചെയ്യുന്നത് കേൾക്കുക"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ഉപയോഗിച്ച് കേൾക്കാൻ ഓഡിയോ സ്ട്രീം QR കോഡ് സ്കാൻ ചെയ്യുക"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"പങ്കിടുമ്പോൾ പാസ്‌വേഡ് എഡിറ്റ് ചെയ്യാനാകില്ല. പാസ്‌വേഡ് മാറ്റാൻ, ആദ്യം ഓഡിയോ പങ്കിടൽ ഓഫാക്കുക."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR കോഡ് സ്കാനർ"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"തിരയൽ ക്രമീകരണം"</string>
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index ff5dfe0..c7d973f 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Унтлагын цаг"</item>
-    <item msgid="4152450357280759894">"Жолоо барих"</item>
-    <item msgid="7096549258219399423">"Бодит мэт"</item>
-    <item msgid="2760716776980432977">"Удирддаг"</item>
-    <item msgid="601734478369121764">"Од"</item>
-    <item msgid="6243809315432780521">"Календарь"</item>
-    <item msgid="4913577903148415331">"Хугацаа"</item>
-    <item msgid="3653377604690057780">"Театр"</item>
-    <item msgid="3843711267408385410">"Цэцэг"</item>
+    <item msgid="2750940760340557109">"Тал сар"</item>
+    <item msgid="8513969636586738035">"Машин"</item>
+    <item msgid="957392343846370509">"Хүний оюун ухаан"</item>
+    <item msgid="6734164279667121348">"Календарь"</item>
+    <item msgid="4139559120353528558">"Цаг"</item>
+    <item msgid="5157711296814769020">"Далайн эргийн шүхэр"</item>
+    <item msgid="6635328761318954115">"Майхан"</item>
+    <item msgid="1711994778883392255">"Зургийн хальс"</item>
+    <item msgid="9097658401859604879">"Тоглоомын удирдлага"</item>
+    <item msgid="755931364157422565">"Биеийн тамирын заалны гантель"</item>
+    <item msgid="8894207806795738429">"Бөмбөг шидэж буй хүн"</item>
+    <item msgid="2274801572149555103">"Өшиглөж буй хүн"</item>
+    <item msgid="8795037201506843325">"Усанд сэлэлт"</item>
+    <item msgid="3558421426169430451">"Явган алхаж буй хүн"</item>
+    <item msgid="7455070421232184932">"Гольф"</item>
+    <item msgid="5841773092449126508">"Урлангийн хэрэгсэл"</item>
+    <item msgid="4595330511709890409">"Чемодан"</item>
+    <item msgid="8352738347856724389">"Од"</item>
+    <item msgid="7082783098151998721">"Бадамлянхуа цэцэг"</item>
+    <item msgid="5772220259409264724">"Хянагч"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 05673cb..a9f4663 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Түр хаасан"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Тодорхойгүй"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Урьдчилан үзэх"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR код"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Жижигрүүлэх"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Томруулах"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Үргэлж"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Сонсголын төхөөрөмжийн тохиргоо"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Товчлол, сонсголын төхөөрөмжийн зохицол"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Урьдчилсан тохируулга"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Сонсгол судлаачийн программчилсан урьдчилсан тохируулга алга"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Урьдчилсан тохируулгыг шинэчилж чадсангүй"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудио гаралт"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Аудио оролтын тухай"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Энэ аппын хэлийг Тохиргоо хэсгээс сонгох боломжгүй байна."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Хэл нь аппад боломжтой хэлээс шалтгаалан харилцан адилгүй байж болно. Зарим апп энэ тохиргоог дэмждэггүй байж магадгүй."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Апп тус бүрд хэл тохируулна уу."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Таны систем, аппууд болон вебсайтууд таны сонгосон хэлээс эхний дэмжигдсэн хэлийг ашигладаг."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Таны төхөөрөмж, апп, вебсайтууд илүүд үзсэн хэлний жагсаалтаас тань эхний дэмжигдсэн хэлийг ашигладаг.\n\nОлон апп мөн огноо, тоо, нэгжийг форматлахдаа таны сонгосон хэлний бүс нутгийг ашиглана. Бүс нутгаа өөрчлөхийн тулд хэл нэмээд, дараа нь илүүд үзсэн бүс нутгаа сонгоно уу."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Апп тус бүрд хэл сонгохын тулд аппын хэлний тохиргоо руу очно уу."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Аппын хэлний талаар нэмэлт мэдээлэл авах"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Системийн хэлийг %s болгож өөрчлөх үү?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Унтраалттай"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Асаалттай / # апп байршилд хандах эрхтэй}other{Асаалттай / # апп байршилд хандах эрхтэй}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ачаалж байна…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Ойролцоох төхөөрөмжүүдийн зөвшөөрөлтэй аппууд холбогдсон төхөөрөмжүүдийн харгалзах байрлалыг тодорхойлох боломжтой."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Ойролцоох төхөөрөмжийн зөвшөөрөлтэй аппууд холбогдсон төхөөрөмжийн харгалзах байрлалыг тодорхойлох боломжтой."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Аппууд болон үйлчилгээнүүдэд байршлын хандалт унтраалттай байна. Таныг яаралтай тусламжийн утасны дугаар луу залгах эсвэл мессеж бичих үед таны төхөөрөмжийн байршлыг яаралтай тусламжийн үйлчилгээ үзүүлэгчид рүү илгээсэн хэвээр байж магадгүй."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Байршлын тохиргооны талаар нэмэлт мэдээлэл авах"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Өөрчлөхийн тулд ChromeOS-н Тохиргоо &gt; Нууцлал, аюулгүй байдал &gt; Нууцлалын тохиргоо &gt; Байршлын хандалт руу очно уу"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Царай болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator-н түгжээг тайлах"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Цаг нэмсэн"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Цагаа тохируулна уу"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Утасны түгжээг цагаараа тайлах онцлогийн талаар нэмэлт мэдээлэл авах"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Цаг нэмэх"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Цагийг хасах"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Хурууны хээ болон Царайгаар түгжээ тайлах"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Царай, хурууны хээгээр түгжээ тайлах"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ажилд зориулсан Царай, хурууны хээгээр түгжээ тайлах"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Тохируулга шаардлагатай"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Царай болон хурууны хээнүүд нэмсэн"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Хаалттай орон зайг тохируулж байна…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Хаалттай орон зайг тохируулж чадсангүй"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Дахин оролдох"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Гарах"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Хаалттай орон зай боломжгүй байна.\nБолзошгүй шалтгаануудыг харах"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Болзошгүй шалтгаануудыг харах"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Хаалттай орон зайд шинэ түгжээ сонгох уу?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Та зөвхөн хаалттай орон зайд шинэ түгжээ тохируулах эсвэл төхөөрөмжийнхөө түгжээг тайлахад ашигладаг ижил түгжээг ашиглах боломжтой"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Дэлгэцийн түгжээг ашиглах"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Төхөөрөмжийг дахин эхлүүлэх үү?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Нарийвчилсан NFC лог нь зөвхөн хөгжүүлэлтийн зориулалттай. Нэмэлт NFC өгөгдлийг алдааны мэдээнд багтаасан бөгөөд энэ нь хувийн мэдээлэл агуулж байж магадгүй. Энэ тохиргоог өөрчлөхийн тулд төхөөрөмжөө дахин эхлүүлнэ үү."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Дахин эхлүүлэх"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Асаалттай"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Унтраалттай"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Гаднын дэлгэц"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Гаднын дэлгэц ашиглах"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Дэлгэцийн нягтрал"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Гаднын дэлгэц салсан"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Эргүүлэлт"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Стандарт"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Эргүүлэлт эсвэл нягтралыг өөрчлөх нь одоо ажиллаж буй аливаа аппыг зогсоож магадгүй"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Таны дэлгэцийн тусгалыг үүсгэхийн тулд таны төхөөрөмж гаднын дэлгэцэд холбогдсон байх ёстой"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Бусад сонголт"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Дамжуулах"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"тусгал"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Утасгүй дэлгэцийг идэвхжүүлэх"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Дасан зохицох"</string>
     <string name="brightness" msgid="6216871641021779698">"Гэрэлтүүлгийн түвшин"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Орчинтой зохицох гэрэлтүүлэг"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Орчинтой зохицох гэрэлтүүлгийн тухай"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Дэлгэцийн гэрэлтүүлэг таны хүрээлэн буй орчин болон үйл ажиллагаанд автоматаар тохирно. Орчинтой зохицох гэрэлтүүлэгт таны тохиргоог мэдэхэд нь туслахын тулд гулсуулагчийг гараараа хөдөлгөх боломжтой."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Асаасан"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Идэвхгүй"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Сонголт"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Хандалт"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Биет гар"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Дэлгэц дээрх гарыг ашиглах"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Биет гар идэвхтэй үед үүнийг дэлгэцэд харуулна уу"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ойх түлхүүрүүд"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Гар нь <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс доторх нэг товчлуурын шуурхай давтагдсан даралтыг үл хэрэгсэнэ"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Удаан товчнууд"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Товчлуур даралт идэвхжихэд зарцуулах хугацааг <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс болгож тохируулна"</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="2396247040177734245">"Хулганыг хянахад биет гарыг ашиглана уу."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Заагчийг дүүргэх загварыг шар болго"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Заагчийг дүүргэх загварыг ягаан болго"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Заагчийг дүүргэх загварыг цэнхэр болго"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Заагчийн зурлагын загвар"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Цагаан"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Хар"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Байхгүй"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Мэдрэгч самбарын зангааг мэдэж авах"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"мэдрэгч самбар, мэдрэгч самбар, хулгана, курсор, гүйлгэх, шудрах, баруун талыг товших, товших, заагч"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"баруун талыг товших, товших"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Хэрэглэгчийн сонгосон: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Яриа"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Заагчийн хурд"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Заагчийн хэмжээ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Заагчийн хэмжээг багасгах"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Заагчийн хэмжээг өсгөх"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Тоглоом Контроллер"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Чичиргээг дахин чиглүүлэх"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Холбогдсон үедээ тоглоомын хянагчид чичиргээ илгээнэ үү"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ямартай ч үргэлжлүүлэх"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Цуцлах"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Томруулах тохиргоо"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Нэг хуруугаар чиглүүлэх"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Томруулагчийг 1 хуруугаараа зөөх"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Дэлгэцийн эргэн тойронд шилжихийн тулд 1 хуруугаараа чир"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Нэг хуруугаар чирч, томруулах хэсгийг зөөнө үү."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Хоёр хуруугаар чирч, томруулах хэсгийг зөөнө үү."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Дэлгэцийн зөвхөн нэг хэсгийг томруулж байхад боломжгүй"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Томруулахын тулд товчлуурыг товшино уу"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Контентыг илүү том болгохын тулд дэлгэц дээр шуурхай томруулна уу"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Томруулахын тулд:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Томруулах онцлогийг эхлүүлэхийн тулд товчлол ашиглана уу&lt;br/&gt; {1,number,integer}. Дэлгэцийг товшино уу&lt;br/&gt; {2,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд 2 хуруугаа чирнэ үү&lt;br/&gt; {3,number,integer}. Томруулалтыг тохируулахын тулд 2 хуруугаараа чимхэнэ үү&lt;br/&gt; {4,number,integer}. Томруулах онцлогийг зогсоохын тулд товчлол ашиглана уу&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Түр хугацаанд томруулахын тулд:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Таны томруулах төрлийг бүтэн дэлгэц болгож тохируулсан эсэхийг шалгана уу&lt;br/&gt; {1,number,integer}. Томруулах онцлогийг эхлүүлэхийн тулд товчлол ашиглана уу&lt;br/&gt; {2,number,integer}. Дэлгэцийн аль нэг хэсгийг удаан дарна уу&lt;br/&gt; {3,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд хуруугаа чирнэ үү&lt;br/&gt; {4,number,integer}. Томруулах онцлогийг зогсоохын тулд хуруугаа хөндийрүүлнэ үү"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Томруулахын тулд:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Томруулж эхлэхийн тулд товчлол ашиглана уу&lt;br/&gt; {1,number,integer}. Дэлгэц дээр товшино уу&lt;br/&gt; {2,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд 2 хуруугаараа чирнэ үү&lt;br/&gt; {3,number,integer}. Томруулах хэмжээг тохируулахын тулд 2 хуруугаараа чимхэнэ үү&lt;br/&gt; {4,number,integer}. Томруулахыг зогсоохын тулд товчлолыг ашиглана уу&lt;br/&gt;&lt;br/&gt; Та мөн түр зуур томруулах болон бусад зүйлийг хийх боломжтой."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Томруулахын тулд:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Томруулж эхлэхийн тулд товчлол ашиглана уу&lt;br/&gt; {1,number,integer}. Дэлгэц дээр товшино уу&lt;br/&gt; {2,number,integer}. Дэлгэцийн эргэн тойронд шилжихийн тулд 1 эсвэл 2 хуруугаараа чирнэ үү&lt;br/&gt; {3,number,integer}. Томруулах хэмжээг тохируулахын тулд 2 хуруугаараа чимхэнэ үү&lt;br/&gt; {4,number,integer}. Томруулахыг зогсоохын тулд товчлолыг ашиглана уу&lt;br/&gt;&lt;br/&gt; Та мөн түр зуур томруулах болон бусад зүйлийг хийх боломжтой."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Томруулах сонголт асаалттай үед та дэлгэцээ томруулж болно.\n\n"<b>"Томруулахын тулд "</b>" томруулах сонголтыг эхлүүлж, дэлгэцийн аль нэг хэсгийг товшино уу.\n"<ul><li>"Гүйлгэхийн тулд 2 эсвэл түүнээс дээш хуруугаараа чирнэ үү"</li>\n<li>"Томруулах хэмжээг тохируулахын тулд 2 эсвэл түүнээс дээш хуруугаараа чимхэнэ үү"</li></ul>\n\n<b>"Түр хугацаанд томруулахын тулд "</b>" томруулах сонголтыг эхлүүлээд, дэлгэцийн аль нэг хэсэг дээр удаан дарна уу.\n"<ul><li>"Дэлгэцийн эргэн тойронд очихын тулд чирнэ үү"</li>\n<li>"Жижигрүүлэхийн тулд хуруугаа авна уу"</li></ul>\n\n"Та гар эсвэл навигацын самбарт томруулах боломжгүй."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>-н <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>-р хуудас"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Хандалтын товчлуурын товчлол"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Дэлгэцийн доороос дээш 2 хуруугаар шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 2 хуруугаар дээш шудраад удаан дарна уу."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Дэлгэцийн доороос дээш 3 хуруугаар шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 3 хуруугаар дээш шудраад удаан дарна уу."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Дэлгэцийнхээ доод талаас дээш шударна уу. Онцлогуудын хооронд сэлгэхийн тулд дээш шудраад, удаан дарна уу.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Дэлгэцийг хоёр хуруугаараа хоёр товшино уу"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Дэлгэц дээр %1$d удаа хурдан товшино уу. Энэ нь таны төхөөрөмжийг удаашруулж магадгүй."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d хуруугаар хоёр товших"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Дэлгэцийг хоёр хуруугаараа {0,number,integer} удаа шуурхай товшино уу"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Дэлгэцийг гурав товших"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"гурав товших"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Дэлгэцийг {0,number,integer} удаа хурдан товшино уу. Энэ товчлол таны төхөөрөмжийг удаашруулж магадгүй."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Дэлгэрэнгүй"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Хүртээмжийн товчлуурыг <xliff:g id="SERVICE">%1$s</xliff:g> болгож тохируулсан. Томруулахын тулд Хүртээмжийн товчлуурыг удаан дараад, томруулахыг сонгоно уу."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Хандалтын зангааг <xliff:g id="SERVICE">%1$s</xliff:g>-д тохирууллаа. Томруулахыг ашиглахын тулд хоёр хуруугаараа дэлгэцийн доороос дээш шудраад удаан дарна уу. Дараа нь томруулахыг сонгоно уу."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Энэ үйлчилгээ буруу ажиллаж байна."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Хандалтын товчлол"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Шуурхай Тохиргоонд харуулах"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Улаан-ногоон"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Улаан-ногоон"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Улаан-ногоон, ногоон нь сул"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Улаан-ногоон, улаан нь сул"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Цэнхэр-шар"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Саарал өнгө"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Нэвчилт"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Ногоон сул, дьютераномаль"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Улаан сул, протаномаль"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Саарал өнгөний горимын хувьд эсвэл өнгө засахыг идэвхгүй болгосон байхад боломжгүй"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Дьютераномаль"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномаль"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомаль"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Хэт бүүдгэр"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Дэлгэцийг хэт бүүдгэр болгох"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Шар хөх"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Шар"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Улаан"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g>-д таны төхөөрөмжийг бүрэн хянахыг зөвшөөрөх үү?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> шаардлага:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Апп нь зөвшөөрөл авах хүсэлтийг танихгүй байгаа тул Тохиргооноос таны хариултыг баталгаажуулж чадахгүй байна."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> энэ төхөөрөмжийг бүрэн хянах хүсэлтэй байна. Энэ үйлчилгээ дэлгэцийг уншиж, хүртээмжийн үйлчилгээ шаардлагатай хэрэглэгчдийн өмнөөс үйлдэл хийх боломжтой. Энэ түвшний хяналт нь ихэнх аппад тохиромжгүй."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Бүрэн хянах нь таны хандалтын үйлчилгээний шаардлагад тусалдаг аппуудад тохиромжтой боловч ихэнх аппад тохиромжгүй байдаг."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Дэлгэцийг харах ба хянах"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Энэ нь дэлгэц дээрх бүх контентыг унших болон контентыг бусад аппад харуулах боломжтой."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Үйлдлийг харах болон гүйцэтгэх"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Энэ нь таны апп болон техник хангамжийн мэдрэгчтэй хийх харилцан үйлдлийг хянах болон таны өмнөөс апптай харилцан үйлдэл хийх боломжтой."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Зөвшөөрөх"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Татгалзах"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Унтраах"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Байхгүй}=1{1 хуваарийг тохируулсан}other{# хуваарийг тохируулсан}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Бүү саад бол"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Чухал байдлаар нь ангилах горим"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Горим нэмэх"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Унтах, ажиллах, жолоо барих болон эдгээрийн хоорондох бүх зүйлд зориулсан горимоор саад болох зүйлийг багасгаж, анхаарал төвлөрөлтийнхөө хяналтыг гартаа аваарай."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Өөрийн горимыг үүсгэх"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Зөвхөн чухал хүмүүс болон аппуудаас мэдэгдэл авах"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Хуваарь тохируулах"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Дараахад тулгуурлан хуваарь гаргах"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Өдөр ба цаг"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"Ажлын өдрүүдэд 09:00 - 17:00\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Календарийн үйл явдал"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} идэвхтэй байна}=2{{mode_1} болон {mode_2} идэвхтэй байна}=3{{mode_1}, {mode_2}, {mode_3} идэвхтэй байна}other{{mode_1}, {mode_2} болон өөр # горим идэвхтэй байна}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 горим автоматаар асах боломжтой}other{# горим автоматаар асах боломжтой}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"АСААЛТТАЙ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Тохируулаагүй"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Идэвхгүй болгосон"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Горим үүсгэх"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Захиалгат"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Одоо асаах"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Унтраах"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Горим олдсонгүй"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Саад болох зүйлсийг хязгаарлах"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Саад болох, анхаарал сарниулах зүйлсийг блоклоно уу"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g>-г тохируулна уу"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Бүү саад бол горимыг асаах"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Сэрүүлэг болон медиагийн ая нь тасалдуулах боломжтой"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Хуваарь"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Хуваарийг устгах"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Устгах"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Нэр өөрчлөх"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Устгах"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" горимыг устгах уу?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Засах"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Хуваарь"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Хуваарь"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Автоматаар асаах"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Календарь нэмээрэй"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Календариа ашиглаарай"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Хуваарь"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Хуваарь тохируулах"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Хэзээ автоматаар асаах вэ?"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Үйл явдлын хуваарь"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Дараахын үйл явдлын үеэр асаах"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Урилгын хариу байгаа газар"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Цагийн хуваарь"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Хуваарь"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> цаг, <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Хуваарь"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Дуу гаргадаг саад болох зүйлсийг зөвшөөрөх"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Харааны саадыг блоклох"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Харагдаж буй дохиог зөвшөөрөх"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Танд хүрэх боломжтой мэдэгдэл"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Нэмэлт үйлдлүүд"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Мэдэгдлийн шүүлтүүр"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Бусад тохиргоо"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Унтраалттай}=1{Унтраалттай / 1 горимыг автоматаар асааж болно}other{Унтраалттай / # горимыг автоматаар асааж болно}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Дэлгэцийн тохиргоо"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Дэлгэцийн сонголтууд"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Саарал өнгө"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"бараан загварыг идэвхжүүлэх"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"OS, аппуудыг бараан дэвсгэр дээрх цайвар текстийг илүүд үзэх болгож сэлгэнэ үү. Энэ нь нүдэнд амар байж болох бөгөөд зарим төхөөрөмж дээр батарей ихээр хэмнэдэг"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Дэлгэцийн ямар ч өөрчлөлт байхгүй}=1{{effect_1}}=2{{effect_1}, {effect_2}}=3{{effect_1}, {effect_2}, {effect_3}}other{{effect_1}, {effect_2}, өөр #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Танд юу мэдэгдэж болохыг хязгаарлах"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Ямар ч тасалдлыг шүүгээгүй"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Шүүсэн мэдэгдэлд зориулсан дэлгэцийн сонголтууд"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Бүү саад бол горим асаалттай үед"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Мэдэгдлийн дууг хаах"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"мэдэгдлийг нээх"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Мэдэгдлийг түр хойшлуулахыг зөвшөөрөх"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Аппын дүрс тэмдэг дэх мэдэгдлийн цэг"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Мэдэгдлийн багц"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Бөмбөлгүүд"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Бөмбөлгүүд"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Энэ харилцан яриаг бөмбөлөг болгох"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Дасан зохицох мэдэгдэл"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Дасан зохицох мэдэгдлийг ашиглах"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Та богино хугацаанд олон мэдэгдэл авсан үед таны утас хоёр хүртэлх минутын турш дууны түвшнийг сулруулж, дэлгэц дээрх попапыг багасгана. Дуудлага, сэрүүлэг, чухал харилцан яриа өмнөхтэй адилаар чичрэх, дуу гаргах, дэлгэц дээр харагдах бөгөөд таныг дэлгэцийн дээд талаас доош татах үед бүх мэдэгдэл олоход хялбар байна."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Ажлын профайлын аппуудад ашиглах"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR туслагч үйлчилгээ"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Ангилал"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Бусад"</string>
     <string name="no_channels" msgid="4716199078612071915">"Энэ апп ямар ч мэдэгдэл нийтлээгүй"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Ашиглаагүй ангиллуудыг харуулах"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Аппын нэмэлт тохиргоо"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Ашиглаагүй ангиллуудыг харуулах"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ашиглаагүй ангиллуудыг нуух"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Харилцан яриа"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Бүх харилцан яриа"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"бүх харилцан яриа"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Чухал харилцан яриа"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"чухал харилцан яриа"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Байхгүй"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Тасалдуулах боломжтой аппууд"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Сонгосон аппууд"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Байхгүй"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Бүгд"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ямар ч апп тасалдуулах боломжгүй}=1{{app_1} тасалдуулах боломжтой}=2{{app_1} болон {app_2} тасалдуулах боломжтой}=3{{app_1}, {app_2}, {app_3} тасалдуулах боломжтой}other{{app_1}, {app_2} болон өөр # апп тасалдуулах боломжтой}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ажил)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Тооцоолж байна…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Аппуудад дарахыг нь зөвшөөрөх"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Тасалдуулах боломжтой аппууд"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Бусад аппыг сонгох"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Давтан дуудлага хийгчид тасалдуулах боломжтой"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Бүх хүн тасалдуулах боломжтой"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Давтан дуудлага хийгч"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Давтан дуудлага хийгчийг зөвшөөрөх"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} хүртэл зөвхөн нэг цагийн турш сэрүүлэг болгож өөрчилнө}other{{time} хүртэл зөвхөн # цагийн турш сэрүүлэг болгож өөрчилнө}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> хүртэл анхааруулах горимд шилжих"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Үргэлж саад бол горимд шилжих"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Нэр өөрчлөх"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Дүрс тэмдэг өөрчлөх"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Дүрс тэмдэг өөрчлөх"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Засах горим"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Горим үүсгэх"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Захиалгат горим"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Горимын нэр"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Календарийн үйл явдал"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Унтах цагийн хэвшил"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Жолоо барьж байхад"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Aппын тохиргоо"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> дахь мэдээлэл ба тохиргоо"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g>-н удирддаг"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g>-г унтраах уу?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Идэвхгүй болгосон байхад энэ горим хэзээ ч асахгүй"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Идэвхгүй болгох"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g>-г идэвхжүүлэх үү?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Энэ горим тохиргооноосоо хамааран автоматаар асаж магадгүй"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Идэвхжүүлэх"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Тогтмол хуваарийг дагадаг горим тохируулаарай"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Календарийн үйл явдал болон урилгын хариуг синк хийхийн тулд горим тохируулаарай"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Унтахдаа хэрэгжүүлэх тайвшруулах хэвшлийг загварчлаарай. Сэрүүлэг тавьж, дэлгэцийг бүдгэрүүлж, мэдэгдлийг блоклоорой."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Төвлөрч, саадгүй жолоо барихын тулд зам дээр аюулгүй байдлыг чухалчлаарай"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Сануулга"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Хаах"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Энэ төхөөрөмжийн талаар санал илгээх"</string>
@@ -4463,7 +4534,7 @@
     <string name="credman_picker_title" msgid="8442086614222006564">"Нууц үг, нэвтрэх түлхүүр болон автоматаар бөглөхөд илүүд үзсэн үйлчилгээ"</string>
     <string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s-г унтраах уу?"</string>
     <string name="credman_confirmation_message" msgid="2357324543658635239">"&lt;b&gt;Энэ үйлчилгээг унтраах уу?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Нууц үг, нэвтрэх түлхүүр, төлбөрийн хэрэгсэл болон бусад хадгалсан мэдээллийг таныг нэвтрэх үед бөглөхгүй. Хадгалсан мэдээллээ ашиглахын тулд нууц үг, нэвтрэх түлхүүр эсвэл өгөгдлийн үйлчилгээ сонгоно уу."</string>
-    <string name="account_dashboard_title_with_passkeys" msgid="648242372086733541">"Нууц үг, нэвтрэх түлхүүр ба бүртгэлүүд"</string>
+    <string name="account_dashboard_title_with_passkeys" msgid="648242372086733541">"Нууц үг, нэвтрэх түлхүүр, бүртгэл"</string>
     <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Бүх үйлчилгээг унтраах уу?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Нууц үг, нэвтрэх түлхүүр болон бусад хадгалсан мэдээлэл таныг нэвтрэх үед автоматаар бөглөх хэсэгт боломжгүй байх болно"</string>
     <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Илүүд үзсэн үйлчилгээгээ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; болгож өөрчлөх үү?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Шинэ нууц үг, нэвтрэх түлхүүр болон бусад мэдээллийг одооноос энд хадгална. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; юуг автоматаар бөглөж болохыг тодорхойлохын тулд таны дэлгэц дээр байгаа зүйлсийг ашиглаж магадгүй"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s-г ашиглах уу?"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Гэр"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарей"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Тохиргооны самбар"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Дэлгэцийн горимыг хүчлэх"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Дэлгэцийн туршилтын горимыг хоёрдогч дэлгэцэд хүчлэх"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Чөлөөт хэлбэрийн цонхыг идэвхжүүлэх"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Хоёрдогч дэлгэцэд чөлөөт хэлбэрийн цонх идэвхжүүл"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Хэмжээг өөрчлөх боломжгүй аппуудыг олон цонхонд идэвхжүүлэх"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Хэмжээг нь өөрчлөх боломжгүй аппуудыг олон цонхонд байхыг нь зөвшөөрнө"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Хүчээр бүдгэрүүлэхийг дарах"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобайл дата"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Төхөөрөмжийн хэрэглээг сайжруулахын тулд аппууд болон үйлчилгээнүүд нь Wi-Fi сүлжээг хүссэн үедээ буюу Wi-Fi-г унтраалттай байсан ч скан хийх боломжтой хэвээр байна. Үүнийг байршилд тулгуурласан онцлогууд болон үйлчилгээнүүдийг сайжруулах зэргээр ашиглаж болно. Та үүнийг Wi-Fi скан хийх тохиргоонд өөрчлөх боломжтой."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Өөрчлөх"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Холбогдсон"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Түр зуур холбогдсон"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g>-г түр зуур ашиглаж байна"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Апп бэхлэхийг ашиглах"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Хөгжүүлэгчийн тохиргоог ашиглах"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Хэвлэгчийн үйлчилгээ ашиглах"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Олон хэрэглэгчийг зөвшөөрөх"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Хэрэглэгч сэлгэхийг зөвшөөрөх"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"зөвшөөрөх, хэд хэдэн, хэрэглэгч, зөвшөөрөл олгох, олон"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"олон, хэрэглэгч, профайл, хүмүүс, бүртгэл, сэлгүүр, хэд хэдэн"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Wireless debugging-г ашиглах"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Таблетаа холбох үед дэлгэцэн дээр юу харагдахыг сонгоно уу. Дэлгэц амраагч ашиглах үед таны төхөөрөмж илүү их эрчим хүч зарцуулж болзошгүй."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Өөрчлөх"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>-г өөрчлөх"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Чөлөөт хэлбэрийн дэмжлэгийг идэвхжүүлэхийн тулд дахин асаах шаардлагатай."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Хоёрдогч дэлгэц дээр дэлгэцийн горимыг хүчлэхийн тулд дахин асаах шаардлагатай."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Чөлөөт хэлбэрийн цонхны дэмжлэгийг идэвхжүүлэхэд дахин асаах шаардлагатай."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Чөлөөт хэлбэрийн цонхны боломжтой байдлыг шинэчлэхэд дахин асаах шаардлагатай."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Хоёрдогч дэлгэцэд чөлөөт хэлбэрийн цонхыг идэвхжүүлэхэд дахин асаах шаардлагатай."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Одоо дахин асаах"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Дараа дахин асаах"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Орчны аудио"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Сарнай"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Гүн нил ягаан"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Хөх ягаан"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Болсон"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Хадгалах"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Цуцлах"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Өгөгдмөл"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Дунд зэрэг"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Асаалттай"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Унтраалттай"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Асаалттай"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио %1$d%% зүүн, %2$d%% баруун"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио %1$d%% баруун, %2$d%% зүүн"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Таны төхөөрөмжийн нэр суулгасан аппуудад тань харагдана. Таныг Bluetooth төхөөрөмжүүд, Wi-Fi сүлжээнд холбогдох эсвэл Wi-Fi сүлжээний цэг тохируулах үед үүнийг мөн бусад хүн харж магадгүй."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Хэл зүйн хүйс"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Хэл зүйн хүйс сонгох"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Дамжуулалтыг сонсох"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-р сонсохын тулд аудио дамжуулалтын QR кодыг скан хийнэ үү"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Хуваалцаж байхад нууц үгийг засах боломжгүй. Нууц үгийг өөрчлөхийн тулд эхлээд аудио хуваалцахыг унтраана уу."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR код сканнер"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Хайлтын тохиргоо"</string>
 </resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index d2fa083..90a6931 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"बेडटाइम"</item>
-    <item msgid="4152450357280759894">"ड्रायव्हिंग"</item>
-    <item msgid="7096549258219399423">"इमर्सिव्ह"</item>
-    <item msgid="2760716776980432977">"व्यवस्थापित"</item>
-    <item msgid="601734478369121764">"तारा"</item>
-    <item msgid="6243809315432780521">"कॅलेंडर"</item>
-    <item msgid="4913577903148415331">"वेळ"</item>
-    <item msgid="3653377604690057780">"थिएटर"</item>
-    <item msgid="3843711267408385410">"फूल"</item>
+    <item msgid="2750940760340557109">"अर्धचंद्र"</item>
+    <item msgid="8513969636586738035">"कार"</item>
+    <item msgid="957392343846370509">"व्यक्तीचे मन"</item>
+    <item msgid="6734164279667121348">"कॅलेंडर"</item>
+    <item msgid="4139559120353528558">"घड्याळ"</item>
+    <item msgid="5157711296814769020">"समुद्रकिनाऱ्यावर वापरली जाणारी छत्री"</item>
+    <item msgid="6635328761318954115">"तंबू"</item>
+    <item msgid="1711994778883392255">"फिल्म रील"</item>
+    <item msgid="9097658401859604879">"गेम कंट्रोलर"</item>
+    <item msgid="755931364157422565">"व्यायामशाळेतील डंबेल"</item>
+    <item msgid="8894207806795738429">"बॉल फेकत असलेली व्यक्ती"</item>
+    <item msgid="2274801572149555103">"किक मारत असलेली व्यक्ती"</item>
+    <item msgid="8795037201506843325">"पोहणे"</item>
+    <item msgid="3558421426169430451">"हायकिंग करत असलेली व्यक्ती"</item>
+    <item msgid="7455070421232184932">"गोल्फ"</item>
+    <item msgid="5841773092449126508">"कारखान्यातील अवजारे"</item>
+    <item msgid="4595330511709890409">"ब्रीफकेस"</item>
+    <item msgid="8352738347856724389">"तारा"</item>
+    <item msgid="7082783098151998721">"कमळाचे फूल"</item>
+    <item msgid="5772220259409264724">"पर्यवेक्षक"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 800051d..8b17ab6 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"निलंबित"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"अज्ञात"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"पूर्वावलोकन"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR कोड"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"आणखी लहान करा"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"आणखी मोठे करा"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"नेहमी"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"श्रवणयंत्राची सेटिंग्ज"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"शॉर्टकट, श्रवणयंत्राची कंपॅटिबिलिटी"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"प्रीसेट"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"तुमच्या ऑडिओलॉजिस्टने प्रोग्राम केलेले प्रीसेट नाहीत"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"प्रीसेट अपडेट करता आले नाही"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ऑडिओ आउटपुट"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ऑडिओ आउटपुटबद्दल"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"या अ‍ॅपसाठीची भाषा निवडणे हे सेटिंग्ज मध्ये उपलब्ध नाही."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"अ‍ॅपमध्ये उपलब्ध असलेल्या भाषांपेक्षा भाषा वेगळी असू शकते. काही अ‍ॅप्स कदाचित या सेटिंगला सपोर्ट करत नाहीत."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"प्रत्येक ॲपसाठी भाषा सेट करा."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"तुमची सिस्टीम, अ‍ॅप्स आणि वेबसाइट या तुमच्या प्राधान्य दिलेल्या भाषांमधील पहिली सपोर्ट असलेली भाषा वापरतात."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"तुमचे डिव्हाइस, अ‍ॅप्स आणि वेबसाइट या तुमच्या प्राधान्य दिलेल्या भाषा सूचीमधील पहिली सपोर्ट असलेली भाषा वापरतात.\n\nअनेक ॲप्स तुमच्या प्राध्यान्य दिलेल्या भाषेतील प्रदेशाचा वापर तारखा, संख्या आणि युनिट फॉरमॅट करण्यासाठी करतील. तुमचा प्रदेश बदलण्यासाठी भाषा जोडा त्यानंतर तुम्ही प्राधान्‍य दिलेली भाषा निवडा."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"प्रत्येक अ‍ॅपसाठी भाषा निवडण्यासाठी, अ‍ॅप भाषा सेटिंग्जवर जा."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ॲपच्या भाषांविषयी अधिक जाणून घ्या"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"सिस्टीमची भाषा %s वर बदलायची आहे का ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"बंद"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{सुरू आहे / # अ‍ॅपला स्थानाचा अ‍ॅक्सेस आहे}other{सुरू आहे / # अ‍ॅप्सना स्थानाचा अ‍ॅक्सेस आहे}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड करत आहे…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"जवळपासच्या डिव्हाइसची परवानगी असणारी ॲप्स कनेक्ट केलेल्या डिव्हाइसचे संबंधित स्थान निर्धारित करू शकतात."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"जवळपासच्या डिव्हाइसची परवानगी असणारी ॲप्स कनेक्ट केलेल्या डिव्हाइसचे संबंधित स्थान निर्धारित करू शकतात."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ॲप्स आणि सेवांसाठी स्थान अ‍ॅक्सेस बंद आहे. तुम्ही आणीबाणी नंबरवर कॉल केल्यास किंवा एसएमएस पाठवल्यास तुमच्या डिव्हाइसचे स्थान आणीबाणी प्रतिसादकर्त्यांना अद्याप पाठवले जाऊ शकते."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"स्थान सेटिंग्जबद्दल अधिक जाणून घ्या"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"बदलण्यासाठी ChromeOS सेटिंग्ज &gt; गोपनीयता आणि सुरक्षा &gt; गोपनीयता नियंत्रणे &gt; स्थान अ‍ॅक्सेस वर जा"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator अनलॉक करा"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"वॉच जोडले आहे"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"तुमचे वॉच सेट करा"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"वॉच अनलॉक बद्दल अधिक जाणून घ्या"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"वॉच जोडा"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"वॉच काढून टाका"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फिंगरप्रिंट आणि फेस अनलॉक"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"फेस आणि फिंगरप्रिंट अनलॉक"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"कार्य प्रोफाइलसाठी फेस आणि फिंगरप्रिंट अनलॉक"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप आवश्यक आहे"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"चेहरा आणि फिंगरप्रिंट जोडल्या"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"खाजगी स्पेस सेट करत आहे…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"खाजगी स्पेस सेट करता आली नाही"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"पुन्हा प्रयत्न करा"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"बाहेर पडा"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"खाजगी स्पेस उपलब्ध नाही.\nसंभाव्य कारणे पहा"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"संभाव्य कारणे पहा"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"खाजगी स्पेससाठी नवीन लॉक निवडायचे आहे का?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"तुम्ही फक्त खाजगी स्पेससाठी नवीन लॉक सेट करू शकता किंवा तुम्ही तुमचे डिव्हाइस अनलॉक करण्यासाठी वापरता तेच लॉक वापरू शकता"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"स्क्रीन लॉक वापरा"</string>
@@ -689,7 +696,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>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"डिव्हाइस रीस्टार्ट करायचे आहे का?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"तपशीलवार NFC लॉगिंग हे फक्त विकासाच्या उद्देशाने आहे. बग रिपोर्टमध्ये अतिरिक्त NFC डेटाचा समावेश केला आहे, ज्यामध्ये खाजगी माहितीचा समावेश असू शकतो. हे सेटिंग बदलण्यासाठी तुमचे डिव्हाइस रीस्टार्ट करा."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"रीस्टार्ट करा"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"सुरू आहे"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"बंद आहे"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"बाह्य डिस्प्ले"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"बाह्य डिस्प्ले वापरा"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"डिस्प्ले रेझोल्यूशन"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"बाह्य डिस्प्ले डिस्कनेक्ट केला आहे"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"रोटेशन"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"साधारण"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"९०°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"१८०°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"२७०°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"रोटेशन किंवा रेझोल्यूशन बदलल्याने सध्या सुरू असलेली कोणतीही अ‍ॅप्स थांबू शकतात"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"तुमची स्क्रीन मिरर करण्यासाठी तुमचे डिव्हाइस बाह्य डिस्प्लेशी कनेक्ट केलेले असणे आवश्यक आहे"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"आणखी पर्याय"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"कास्‍ट करा"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"मिरर करा"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"वायरलेस डिस्प्ले सुरू करा"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"अडॅप्टिव्ह"</string>
     <string name="brightness" msgid="6216871641021779698">"ब्राइटनेस पातळी"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"अडॅप्टिव्ह ब्राइटनेस"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"अडॅप्टिव्ह ब्राइटनेसबद्दल"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"तुमच्या स्क्रीनचा ब्राइटनेस तुमच्या वातावरण आणि अ‍ॅक्टिव्हिटीशी आपोआप अ‍ॅडजस्ट होईल. अडॅप्टिव्ह ब्राइटनेसला तुमची प्राधान्ये जाणून घेण्यात मदत करण्यासाठी तुम्ही स्लाइडर मॅन्युअली हलवू शकता."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"सुरू"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"बंद"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"पर्याय"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"अ‍ॅक्सेसिबिलिटी"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"वास्तविक कीबोर्ड"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ऑन-स्क्रीन कीबोर्ड वापरा"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"वास्तविक कीबोर्ड अ‍ॅक्टिव्ह असताना त्यास स्क्रीनवर ठेवा"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"बाउन्स की"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"कीबोर्ड <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> मिसेमध्ये एकच की वारंवार प्रेस करण्याकडे दुर्लक्ष करतो"</string>
     <string name="slow_keys" msgid="2891452895499690837">"स्लो की"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> मिसेपर्यंत अ‍ॅक्टिव्हेट होण्यासाठी की प्रेस करण्याकरिता लागणारा वेळ अ‍ॅडजस्ट करा"</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="2396247040177734245">"माउस नियंत्रणासाठी वास्तविक कीबोर्ड वापरा."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"पॉइंटर फिलची शैली बदलून पिवळी करा"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"पॉइंटर फिलची शैली बदलून गुलाबी करा"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"पॉइंटर फिलची शैली बदलून निळी करा"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"पॉइंटरच्या स्‍ट्रोकची शैली"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"पांढरा"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"काळा"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"कोणताही नाही"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"टचपॅड जेश्चर जाणून घ्या"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ट्रॅकपॅड, ट्रॅक पॅड, माउस, कर्सर, स्क्रोल करा, स्‍वाइप करा, राइट-क्लिक करा, क्लिक करा, पॉइंटर"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"राइट-क्लिक करा, टॅप करा"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"वापरकर्त्याने निवडले आहे: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"भाषण"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"पॉइंटर वेग"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"पॉइंटर स्केल"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"पॉइंटर स्केल कमी करा"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"पॉइंटर स्केल वाढवा"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"गेम नियंत्रक"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"व्हायब्रेट पुनर्निर्देशित करा"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"कनेक्ट केले असताना गेम नियंत्रकाला व्हायब्रेशन पाठवा"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"तरीही पुढे सुरू ठेवा"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"रद्द करा"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"मॅग्निफिकेशन सेटिंग्ज"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"एका बोटाने पॅन करणे"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"मॅग्निफायर एका बोटाने हलवा"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"स्क्रीनभोवती हलवण्यासाठी १ बोट ड्रॅग करा"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"एका बोटाने ड्रॅग करून मॅग्निफिकेशनचा भाग हलवा."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"दोन बोटांनी ड्रॅग करून मॅग्निफिकेशनचा भाग हलवा."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"फक्त स्क्रीनचा भाग मॅग्निफाय करताना उपलब्ध नसेल"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"झूम करण्यासाठी बटणावर टॅप करा"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"आशय आणखी मोठा करून पाहण्यासाठी स्क्रीनवर झटपट झूम इन करा"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;झूम इन करण्यासाठी:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. मॅग्निफिकेशन सुरू करण्यासाठी शॉर्टकट वापरा&lt;br/&gt; {1,number,integer}. स्क्रीनवर टॅप करा&lt;br/&gt; {2,number,integer}. स्क्रीनवर हलवण्यासाठी दोन बोटांनी ड्रॅग करा&lt;br/&gt; {3,number,integer}. झूम अ‍ॅडजस्ट करण्यासाठी दोन बोटांनी पिंच करा&lt;br/&gt; {4,number,integer}. मॅग्निफिकेशन थांबवण्यासाठी शॉर्टकट वापरा&lt;br/&gt;&lt;br/&gt; &lt;b&gt;तात्पुरते झूम इन करण्यासाठी:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. तुमचा मॅग्निफिकेशनचा प्रकार फुल स्क्रीनवर सेट केला असल्याची खात्री करा&lt;br/&gt; {1,number,integer}. मॅग्निफिकेशन सुरू करण्यासाठी शॉर्टकट वापरा&lt;br/&gt; {2,number,integer}. स्क्रीनवर कुठेही स्पर्श कऱून धरून ठेवा&lt;br/&gt; {3,number,integer}. स्क्रीनवर हलवण्यासाठी बोटाने ड्रॅग करा&lt;br/&gt; {4,number,integer}. मॅग्निफिकेशन थांबवण्यासाठी बोट उचला"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;झूम इन करण्यासाठी:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. मॅग्निफिकेशन सुरू करण्यासाठी शॉर्टकट वापरा&lt;br/&gt; {1,number,integer}. स्क्रीनवर टॅप करा&lt;br/&gt; {2,number,integer}. स्क्रीनवर हलवण्यासाठी २ बोटे ड्रॅग करा&lt;br/&gt; {3,number,integer}. झूम अ‍ॅडजस्ट करण्यासाठी २ बोटांनी पिंच करा&lt;br/&gt; {4,number,integer}. मॅग्निफिकेशन थांबवण्यासाठी शॉर्टकट वापरा&lt;br/&gt;&lt;br/&gt; तुम्ही तात्पुरते झूम इन करू शकता आणि आणखी बरेच काही करू शकता."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;झूम इन करण्यासाठी:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. मॅग्निफिकेशन सुरू करण्यासाठी शॉर्टकट वापरा&lt;br/&gt; {1,number,integer}. स्क्रीनवर टॅप करा&lt;br/&gt; {2,number,integer}. स्क्रीनवर हलवण्यासाठी १ किंवा २ बोटे ड्रॅग करा&lt;br/&gt; {3,number,integer}. झूम अ‍ॅडजस्ट करण्यासाठी २ बोटांनी पिंच करा&lt;br/&gt; {4,number,integer}. मॅग्निफिकेशन थांबवण्यासाठी शॉर्टकट वापरा&lt;br/&gt;&lt;br/&gt; तुम्ही तात्पुरते झूम इन करू शकता आणि आणखी बरेच काही करू शकता."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"मॅग्निफिकेशन सुरू असल्यास, तुम्ही तुमची स्क्रीन झूम इन करू शकता.\n\n"<b>"झूम करण्यासाठी"</b>", मॅग्निफिकेशन सुरू करा आणि त्यानंतर स्क्रीनवर कुठेही टॅप करा.\n"<ul><li>"स्क्रोल करण्यासाठी दोन किंवा अधिक बोटांनी ड्रॅग करा."</li>\n<li>"झूम अ‍ॅडजस्ट करण्यासाठी दोन किंवा अधिक बोटांनी पिंच करा"</li></ul>\n\n<b>"तात्पुरते झूम करण्यासाठी "</b>", मॅग्निफिकेशन सुरू करा आणि स्क्रीनवर कुठेही धरून ठेवा.\n"<ul><li>"स्क्रीनवर कुठेही जाण्यासाठी ड्रॅग करा "</li>\n<li>"झूम आउट करण्यासाठी बोट उचला"</li></ul>\n\n"तुम्ही कीबोर्ड किंवा नेव्हिगेशन बार वर झूम इन करू शकत नाही."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> पैकी <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> पेज"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"अ‍ॅक्सेसिबिलिटी बटणासाठी शॉर्टकट"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"दोन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी दोन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"तीन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी तीन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{तुमच्या स्क्रीनच्या तळापासून वर स्‍वाइप करा. वैशिष्ट्यांदरम्यान स्विच करण्यासाठी, वर स्वाइप करून धरून ठेवा.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"दोन बोटांनी स्क्रीनवर दोनदा टॅप करा"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"स्क्रीनवर %1$d वेळा झटपट टॅप करा. यामुळे तुमच्या डिव्हाइसचा वेग कमी होऊ शकतो."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d बोटांनी दोन वेळा टॅप करा"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"दोन बोटांनी स्क्रीनवर {0,number,integer} वेळा झटपट टॅप करा"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीनवर तीन वेळा टॅप करा"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"तीन वेळा टॅप करा"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीनवर झटपट {0,number,integer} वेळा टॅप करा. हा शॉर्टकट तुमच्या डिव्हाइसचा वेग कमी करू शकताे"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"प्रगत"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"प्रवेशयोग्यता बटण <xliff:g id="SERVICE">%1$s</xliff:g> वर सेट केले आहे. मॅग्निफिकेशन वापरण्यासाठी, प्रवेशयोग्यता बटणाला स्पर्श करा आणि धरून ठेवा, नंतर मॅग्निफिकेशन निवडा."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"अ‍ॅक्सेसिबिलिटी जेश्चर <xliff:g id="SERVICE">%1$s</xliff:g> वर सेट केले आहे. मॅग्निफिकेशन वापरण्यासाठी, स्क्रीनच्या खालच्या बाजूने दोन बोटांनी वर स्वाइप करा आणि धरून ठेवा. त्यानंतर मॅग्निफिकेशन निवडा."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"या सेवेमध्ये बिघाड आहे."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"अ‍ॅक्सेसिबिलिटी शॉर्टकट"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"द्रुत सेटिंग्जमध्ये दर्शवा"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"लाल-हिरवा"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"लाल-हिरवा"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"लाल-हिरवा, हिरवा रंग न दिसणे"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"लाल-हिरवा, लाल रंग न दिसणे"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"निळा-पिवळा"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ग्रेस्केल"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"तीव्रता"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"हिरवा रंग न दिसणे, द्वितीयवर्ण दृष्टिक्षीणता"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"लाल रंग न दिसणे, प्रथमवर्ण दृष्टिक्षीणता"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ग्रेस्केल मोडसाठी किंवा रंग सुधारणा बंद असताना उपलब्ध नाही"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"आंशिक हरितवर्णांधता"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"क्षीण रक्तवर्णांधता"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"तृतीयवर्ण दृष्टिक्षीणता"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"आणखी डिम"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"स्क्रीन आणखी डिम करा"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"हिरवट निळा"</string>
     <string name="color_yellow" msgid="5957551912912679058">"पिवळा"</string>
     <string name="color_magenta" msgid="8943538189219528423">"किरमिजी तांबडा"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> ला तुमच्या डिव्हाइसचे संपूर्ण नियंत्रण देण्यासाठी अनुमती द्यायची आहे का?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"यासाठी <xliff:g id="SERVICE">%1$s</xliff:g> आवश्यक आहे:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"अ‍ॅप परवानगी विनंती अस्पष्‍ट करीत असल्‍याने, सेटिंग्ज आपल्या प्रतिसादाची पडताळणी करू शकत नाहीत."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>या डिव्हाइसच्या पूर्ण नियंत्रणासाठी विनंती करत आहे. सेवा स्क्रीन रीड करू शकते आणि अ‍ॅक्सेसिबिलिटीच्या गरजा असलेल्या वापरकर्त्यांच्या वतीने कृती करू शकते. नियंत्रणाची ही पातळी बहुतांश अ‍ॅप्ससाठी योग्य नाही."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"जी ॲप्स तुमच्या ॲक्सेसिबिलिटी गरजा पूर्ण करतात अशा ॲप्ससाठी संपूर्ण नियंत्रण योग्य आहे. पण ते सर्व ॲप्सना लागू होईल असे नाही."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"स्क्रीन पहा आणि नियंत्रित करा"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ते स्क्रीनवरील सर्व आशय वाचू शकते आणि इतर ॲप्सवर आशय प्रदर्शित करू शकते."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"पहा आणि क्रिया करा"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"हे तुमचा ॲप किंवा हार्डवेअर सेन्सरसोबतचा परस्‍परसंवाद ट्रॅक करू शकते आणि इतर ॲप्ससोबत तुमच्या वतीने संवाद साधू शकते."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमती द्या"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नकार द्या"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करा"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{None}=1{एक शेड्युल सेट केले}other{# शेड्युल सेट केली}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"व्यत्यय आणू नका"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"प्राधान्य मोड"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"मोड जोडा"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"व्यत्यय कमी करा आणि झोप, काम, ड्रायव्हिंग आणि आणखी बऱ्याच मोडसह तुमचे लक्ष नियंत्रित करा."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"तुमचा स्वतःचा मोड तयार करा"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"फक्त महत्त्वाच्या लोकांच्या आणि अ‍ॅप्सच्या सूचना मिळवा"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"शेड्यूल सेट करा"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"यावर आधारित शेड्यूल"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"तारीख आणि वेळ"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"आठवड्यातील दिवस सकाळी ९ - संध्याकाळी ५\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"कॅलेंडर इव्हेंट"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} अ‍ॅक्टिव्ह आहे}=2{{mode_1} आणि {mode_2} अ‍ॅक्टिव्ह आहेत}=3{{mode_1}, {mode_2} आणि{mode_3} अ‍ॅक्टिव्ह आहेत}other{{mode_1}, {mode_2} आणि आणखी # अ‍ॅक्टिव्ह आहेत}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{१ मोड आपोआप सुरू होऊ शकतो}other{# मोड आपोआप सुरू होऊ शकतात}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"सुरू आहे"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"सेट केलेला नाही"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"बंद केला आहे"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"मोड तयार करा"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"कस्टम"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"आता सुरू करा"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"बंद करा"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"मोड आढळला नाही"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"व्यत्यय मर्यादित करा"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"व्यत्यय ब्लॉक करा"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> सेट करा"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"व्यत्यय आणू नका सुरू करा"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"अलार्म आणि मीडियाचे आवाज व्यत्यय आणू शकतात"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"शेड्युल"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"शेड्युल हटवा"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"हटवा"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"नाव बदला"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"हटवा"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" मोड हटवायचा आहे का?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"संपादित करा"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"शेड्युल"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"शेड्युल"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"आपोआप सुरू करा"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"कॅलेंडर जोडा"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"तुमचे कॅलेंडर वापरा"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"शेड्यूल"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"शेड्यूल सेट करा"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"आपोआप सुरू कधी करायचे"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"इव्‍हेंटचे शेड्यूल"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"साठी इव्‍हेंटदरम्यान सुरू करा"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"आमंत्रणाला उत्तर आले की"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"वेळेचे शेड्यूल"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"शेड्यूल"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> तास <xliff:g id="MINUTES">%2$d</xliff:g> मिनिटे"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"शेड्युल"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"आवाज करतात त्या सर्व व्यत्ययांना अनुमती द्या"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"दृश्य व्यत्यय ब्लॉक करा"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"व्हिज्युअल सिग्नलना अनुमती द्या"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"तुमच्यापर्यंत पोहोचू शकणारी नोटिफिकेशन"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"अतिरिक्त कृती"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"नोटिफिकेशन फिल्टर"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"आणखी सेटिंग्ज"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{बंद आहे}=1{बंद आहे / १ मोड आपोआप सुरू होऊ शकतो}other{बंद आहे / # मोड आपोआप सुरू होऊ शकतात}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"डिस्प्ले सेटिंग्ज"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"डिस्प्ले पर्याय"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ग्रेस्केल"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"गडद थीम सुरू करा"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"गडद बॅकग्राउंडवर फिकट मजकुराला प्राधान्य देण्यासाठी OS आणि ॲप्स स्विच करा, ज्यामुळे डोळ्यांवर ताण येत नाही व काही डिव्हाइसवर लक्षणीय प्रमाणात बॅटरीची बचत होते"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{No display changes}=1{{effect_1}}=2{{effect_1} आणि {effect_2}}=3{{effect_1}, {effect_2} आणि {effect_3}}other{{effect_1}, {effect_2} आणि आणखी #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"कशाबाबत सूचित केले जाऊ शकते ते मर्यादित करा"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"कोणतेही व्यत्यय फिल्टर केलेले नाहीत"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"फिल्टर केलेल्या नोटिफिकेशनसाठी डिस्प्ले पर्याय"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"व्यत्यय आणू नका सुरू असते तेव्हा"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"सूचना आल्यावर आवाज नाही"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"सूचना उघडा"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"सूचना स्नूझ करण्याची अनुमती द्या"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ॲप आयकनवर सूचना बिंदू"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"नोटिफिकेशन बंडल"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"बबल"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"बबल"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"हे संभाषण बबल करा"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"अ‍डॅप्टिव्ह नोटिफिकेशन"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"अ‍डॅप्टिव्ह नोटिफिकेशन वापरा"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"तुम्हाला थोड्या कालावधीमध्ये बरीच नोटिफिकेशन मिळतात, तेव्हा तुमचा फोन व्हॉल्यूम कमी करेल आणि दोन मिनिटांपर्यंत स्क्रीनवर पॉप-अप कमी करेल. कॉल, अलार्म आणि प्राधान्य दिलेल्या संभाषणांसाठी नोटिफिकेशन व्हायब्रेट करतात, आवाज करतात किंवा स्क्रीनवर दिसतात आणि तुम्ही स्क्रीनच्या वरून खाली खेचता, तेव्हा सर्व नोटिफिकेशन शोधणे सोपे आहे."</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_work" msgid="8823596456640216391">"कार्य प्रोफाइलला लागू करा"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"कार्य प्रोफाइलच्या अ‍ॅप्सना लागू करा"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR मदतनीस सेवा"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"वर्गवाऱ्या"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"अन्य"</string>
     <string name="no_channels" msgid="4716199078612071915">"या ॲपने कोणत्याही सूचना पोस्ट केल्या नाहीत"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"न वापरलेल्या वर्गवाऱ्या दाखवा"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"अ‍ॅपमधील अतिरिक्त सेटिंग्ज"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"न वापरलेल्या वर्गवाऱ्या दाखवा"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"न वापरलेल्या वर्गवाऱ्या लपवा"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"संभाषणे"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"सर्व संभाषणे"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"सर्व संभाषणे"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"प्राधान्य दिलेली संभाषणे"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"प्राधान्य दिलेली संभाषणे"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"कोणतीही नाहीत"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"व्यत्यय आणू शकणारी ॲप्स"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"निवडलेली अ‍ॅप्स"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"कोणतेही नाही"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"सर्व"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{No apps can interrupt}=1{{app_1} व्यत्यय आणू शकते}=2{{app_1} आणि {app_2} व्यत्यय आणू शकतात}=3{{app_1}, {app_2} आणि {app_3} व्यत्यय आणू शकतात}other{{app_1}, {app_2} आणि आणखी # व्यत्यय आणू शकतात}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ऑफिस)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"मोजत आहे…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ॲप्सना ओव्हरराइड करण्याची अनुमती द्या"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"व्यत्यय आणू शकणारी ॲप्स"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"आणखी ॲप्स निवडा"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"पुन्हा कॉल करणारे कॉलर व्यत्यय आणू शकतात"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"सर्व लोक व्यत्यय आणू शकतात"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"नियमित कॉलर"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"पुन्हा कॉल करणाऱ्यांना अनुमती द्या"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} पर्यंत फक्त एका तासासाठी अलार्मवर बदला}other{{time} पर्यंत फक्त # तासांसाठी अलार्मवर बदला}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"केवळ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> पर्यंत अलार्मवर बदला"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"नेहमी व्‍यत्यय आणा वर बदला"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"नाव बदला"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"आयकन बदला"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"आयकन बदला"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"संपादन मोड"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"मोड तयार करा"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"कस्टम मोड"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"मोडचे नाव"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"कॅलेंडर इव्हेंट"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"झोपतानाचे वेळापत्रक"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ड्राइव्ह करत असताना"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"अ‍ॅप सेटिंग्ज"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ची माहिती आणि त्यातील सेटिंग्ज"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> द्वारे व्यवस्थापित"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> बंद करायचा आहे का?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"हा मोड बंद असताना कधीही सुरू होणार नाही"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"बंद करा"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> सुरू करायचे?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"हा मोड त्याच्या सेटिंग्जवर आधारित आपोआप सुरू होऊ शकतो"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"सुरू करा"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"नियमित शेड्यूल फॉलो करणारा मोड सेट करा"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"कॅलेंडर इव्हेंट आणि आमंत्रणांच्या प्रतिसादांसह सिंक करणारा मोड सेट करा"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"शांत झोपेसाठी दिनक्रम तयार करा. अलार्म सेट करा, स्क्रीन डिम करा आणि नोटिफिकेशन ब्लॉक करा."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"लक्ष विचलित न होता ते केंद्रित करून ड्राइव्ह करण्यासाठी रस्त्यावरील सुरक्षिततेला प्राधान्य द्या"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"चेतावणी"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"बंद करा"</string>
     <string name="device_feedback" msgid="5351614458411688608">"या डिव्हाइसबद्दल फीडबॅक पाठवा"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"केस"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"बॅटरी"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"सेटिंग्ज पॅनल"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"डेस्कटॉप मोडची सक्ती करा"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"दुसऱ्या डिस्प्लेवर प्रायोगिक डेस्कटॉप मोडला सक्ती करा"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"फ्रीफॉर्म विंडो सुरू करा"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"दुय्यम डिस्प्लेवर फ्रीफॉर्म विंडो सुरू करा"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"मल्टी विंडोमध्ये आकार बदलू न शकणारे ॲप सुरू करा"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"आकार बदलू न शकणाऱ्या ॲप्सना मल्टी विंडोमध्ये राहण्याची परवानगी देते"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"फोर्स-डार्क ओव्हरराइड करते"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"मोबाइल डेटा"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"वाय-फाय बंद असतानादेखील, डिव्हाइससंबंधी अनुभवामध्ये सुधारणा करण्यासाठी अ‍ॅप्स आणि सेवा वाय-फाय नेटवर्क कधीही स्कॅन करू शकतात. उदाहरणार्थ, हे स्थानावर आधारित वैशिष्ट्ये आणि सेवांमध्ये सुधारणा करण्यासाठी वापरले जाऊ शकते. तुम्ही हे वाय-फाय स्कॅनिंग सेटिंग्जमध्ये बदलू शकता."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"बदला"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"कनेक्ट केले आहे"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"तात्पुरते कनेक्ट केलेले"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> तात्पुरता वापरत आहे"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ॲप पिनिंग वापरणे"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"डेव्हलपर पर्याय वापरणे"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"प्रिंट सेवा वापरा"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"एकाहून अधिक वापरकर्त्यांना अनुमती द्या"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"वापरकर्ता स्विच करण्याची अनुमती द्या"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"अनुमती द्या, एकाहून अधिक, वापरकर्ता, परवानगी द्या, बरेच"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"एकाहून अधिक, वापरकर्ते, प्रोफाइल, लोक, खाती, स्विच करा, अनेक"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"वायरलेस डीबगिंग वापरणे"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"तुमचा टॅबलेट डॉक केलेला असतो, तेव्हा तुम्ही तुमच्या स्क्रीनवर काय पाहाल ते निवडा. स्क्रीन सेव्हर वापरला जातो, तेव्हा तुमचे डिव्हाइस आणखी ऊर्जा वापरू शकते."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"कस्टमाइझ करा"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> कस्टमाइझ करा"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"फ्रीफॉर्म सपोर्ट सुरू करण्यासाठी, रीबूट करणे आवश्यक आहे."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"दुय्यम डिस्प्लेवर डेस्कटॉप मोडची सक्ती करण्यासाठी, रीबूट करणे आवश्यक आहे."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"फ्रीफॉर्म विंडो सपोर्ट सुरू करण्यासाठी रीबूट करणे आवश्यक आहे."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"फ्रीफॉर्म विंडोची उपलब्धता अपडेट करण्यासाठी रीबूट करणे आवश्यक आहे."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"दुय्यम डिस्प्लेवर फ्रीफॉर्म विंडो सुरू करण्यासाठी रीबूट करणे आवश्यक आहे."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"आता रीबूट करा"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"नंतर रीबूट करा"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"स्पेशियल ऑडिओ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"गुलाब"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"मजेंटा"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"जांभळा"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"पूर्ण झाले"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"सेव्ह करा"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"रद्द करा"</string>
     <string name="contrast_default" msgid="8918545965525226966">"डीफॉल्ट"</string>
     <string name="contrast_medium" msgid="384414510709285811">"मध्यम"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"सुरू आहे"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"बंद आहे"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"सुरू आहे"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ऑडिओ %1$d%% डावीकडे, %2$d%% उजवीकडे"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ऑडिओ %1$d%% उजवीकडे, %2$d%% डावीकडे"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"तुम्ही इंस्टॉल केलेल्या ॲप्सना तुमच्या डिव्हाइसचे नाव दृश्यमान आहे. तुम्ही ब्लूटूथ डिव्हाइसशी कनेक्ट करता, वाय-फाय नेटवर्कशी कनेक्ट करता किंवा वाय-फाय हॉटस्पॉट सेट करता, तेव्हा हे इतर लोकदेखील पाहू शकतात."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"व्याकरणानुसार लिंगासंबंधी माहिती"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"व्याकरणानुसार लिंगासंबंधी माहिती निवडा"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"स्ट्रीम ऐका"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> वापरून ऐकण्यासाठी ऑडिओ स्ट्रीमचा QR कोड स्कॅन करा"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"शेअर करताना पासवर्ड संपादित करू शकत नाही. पासवर्ड बदलण्यासाठी सर्वप्रथम ऑडिओ शेअरिंग बंद करा."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR कोड स्कॅनर"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"शोध सेटिंग्ज"</string>
 </resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index 8ac2247..2ef500e 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Waktu tidur"</item>
-    <item msgid="4152450357280759894">"Memandu"</item>
-    <item msgid="7096549258219399423">"Mengasyikkan"</item>
-    <item msgid="2760716776980432977">"Terurus"</item>
-    <item msgid="601734478369121764">"Bintang"</item>
-    <item msgid="6243809315432780521">"Kalendar"</item>
-    <item msgid="4913577903148415331">"Masa"</item>
-    <item msgid="3653377604690057780">"Teater"</item>
-    <item msgid="3843711267408385410">"Bunga"</item>
+    <item msgid="2750940760340557109">"Bulan Separa"</item>
+    <item msgid="8513969636586738035">"Kereta"</item>
+    <item msgid="957392343846370509">"Minda seseorang"</item>
+    <item msgid="6734164279667121348">"Kalendar"</item>
+    <item msgid="4139559120353528558">"Jam"</item>
+    <item msgid="5157711296814769020">"Payung pantai"</item>
+    <item msgid="6635328761318954115">"Khemah"</item>
+    <item msgid="1711994778883392255">"Gelendong filem"</item>
+    <item msgid="9097658401859604879">"Pengawal permainan"</item>
+    <item msgid="755931364157422565">"Dumbel gim"</item>
+    <item msgid="8894207806795738429">"Orang membaling bola"</item>
+    <item msgid="2274801572149555103">"Orang menendang"</item>
+    <item msgid="8795037201506843325">"Berenang"</item>
+    <item msgid="3558421426169430451">"Orang mengembara berjalan kaki"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Alatan bengkel"</item>
+    <item msgid="4595330511709890409">"Beg bimbit"</item>
+    <item msgid="8352738347856724389">"Bintang"</item>
+    <item msgid="7082783098151998721">"Bunga teratai"</item>
+    <item msgid="5772220259409264724">"Penyelia"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index d9492fe..1917ce7 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Digantung"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Tidak diketahui"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pratonton"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Kod QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kecilkan"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Besarkan"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sentiasa"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Tetapan peranti pendengaran"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Pintasan, keserasian alat bantu pendengaran"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Pratetapan"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Tiada pratetapan yang diaturkan oleh ahli audiologi anda"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Tidak dapat mengemaskinikan pratetapan"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Output audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Perihal output audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Pemilihan bahasa untuk apl ini tidak tersedia daripada Tetapan."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Bahasa mungkin berbeza daripada bahasa yang tersedia dalam apl. Sesetengah apl mungkin tidak menyokong tetapan ini."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Tetapkan bahasa untuk setiap apl."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistem, apl dan laman web anda menggunakan bahasa pertama yang disokong daripada bahasa pilihan anda."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Peranti, apl dan laman web anda menggunakan bahasa pertama yang disokong daripada senarai bahasa pilihan anda.\n\nPelbagai apl juga akan menggunakan rantau daripada bahasa pilihan anda untuk memformatkan tarikh, nombor dan unit. Untuk menukar rantau anda, tambahkan bahasa, kemudian pilih rantau pilihan anda."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Untuk memilih bahasa bagi setiap apl, pergi ke tetapan bahasa apl."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Ketahui lebih lanjut tentang bahasa apl"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Tukar bahasa sistem kepada %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Mati"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Hidup / # apl memiliki akses kepada lokasi}other{Hidup / # apl memiliki akses kepada lokasi}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Memuatkan…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apl dengan kebenaran peranti Berdekatan boleh menentukan kedudukan relatif peranti tersambung."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apl dengan kebenaran peranti berdekatan boleh menentukan kedudukan relatif peranti tersambung."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Akses lokasi dimatikan untuk apl dan perkhidmatan. Lokasi peranti anda mungkin tetap dihantar kepada pasukan bantuan kecemasan apabila anda menghubungi atau menghantar teks kepada nombor kecemasan."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ketahui lebih lanjut tentang tetapan Lokasi"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Untuk membuat perubahan, lawati Tetapan ChromeOS &gt; Privasi dan keselamatan &gt; Kawalan privasi &gt; Akses lokasi"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Wajah dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Wajah, cap jari dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Wajah, cap jari dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Buka Kunci Authenticator Jauh"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Jam tangan ditambahkan"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Sediakan jam tangan anda"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Ketahui lebih lanjut tentang Buka Kunci Jam Tangan"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tambahkan jam tangan"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Alih keluar jam tangan"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Buka Kunci Cap Jari &amp; Wajah"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Buka Kunci Wajah &amp; Cap Jari"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Buka Kunci Wajah &amp; Cap Jari untuk kerja"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Persediaan diperlukan"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Wajah dan cap jari ditambahkan"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Menyediakan ruang privasi…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Tidak dapat menyediakan ruang peribadi"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Cuba Lagi"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Keluar"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Ruang persendirian tidak tersedia.\nLihat sebab yang berkemungkinan"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Lihat sebab yang berkemungkinan"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Pilih kunci baharu untuk ruang privasi?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Anda boleh menetapkan kunci baharu hanya untuk ruang privasi atau menggunakan kunci sama yang anda gunakan untuk membuka kunci peranti"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gunakan kunci skrin"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Mulakan Semula Peranti?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Pengelogan butiran NFC adalah khusus untuk tujuan pembangunan sahaja. Data tambahan NFC disertakan dalam laporan pepijat yang mungkin mengandungi maklumat peribadi. Mulakan semula peranti anda untuk menukar tetapan ini."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Mulakan semula"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Hidup"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Mati"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Paparan Luaran"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Gunakan paparan luaran"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Peleraian paparan"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Paparan luaran diputuskan sambungan"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Putaran"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Penukaran putaran atau peleraian boleh menghentikan mana-mana apl yang sedang dijalankan"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Peranti anda mestilah disambungkan kepada paparan luaran untuk mencerminkan skrin anda"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Lagi pilihan"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"cermin"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Dayakan paparan wayarles"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Boleh suai"</string>
     <string name="brightness" msgid="6216871641021779698">"Tahap kecerahan"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Kecerahan boleh suai"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Perihal kecerahan boleh suai"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Kecerahan skrin akan dilaraskan secara automatik dengan persekitaran dan aktiviti anda. Anda boleh mengalihkan peluncur secara manual untuk membantu kecerahan boleh suai mempelajari pilihan anda."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Hidup"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Mati"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Pilihan"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Kebolehaksesan"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Papan kekunci fizikal"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Gunakan papan kekunci pada skrin"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Pastikan papan kekunci itu pada skrin semasa papan kekunci fizikal aktif"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Kekunci lantun"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Papan kekunci mengabaikan penekanan kekunci yang sama secara berulang dan cepat dalam masa <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Kekunci perlahan"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Melaraskan masa yang diambil untuk mengaktifkan tekanan kekunci kepada <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Gunakan papan kekunci fizikal untuk mengawal tetikus."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Tukar gaya isian penunjuk kepada warna kuning"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Tukar gaya isian penunjuk kepada warna merah jambu"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Tukar gaya isian penunjuk kepada warna biru"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Gaya lejang penuding"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Putih"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Hitam"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Tiada"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Ketahui gerak isyarat pad sentuh"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"pad jejak, pad jejak, tetikus, kursor, tatal, leret, klik kanan, klik, penuding"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"klik kanan, ketik"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Pengguna dipilih: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Pertuturan"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Kelajuan penuding"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Skala penuding"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Kurangkan skala penuding"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Tingkatkan skala penuding"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Pengawal Permainan"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Ubah hala getaran"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Hantar getaran ke pengawal permainan apabila disambungkan"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Teruskan juga"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Batal"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Tetapan pembesaran"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Penyorotan satu jari"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Gerakkan kanta pembesar menggunakan 1 jari"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Seret 1 jari untuk menerokai skrin"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Alihkan kawasan pembesaran dengan menyeret satu jari."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Alihkan kawasan pembesaran dengan menyeret dua jari."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Tidak tersedia semasa hanya membesarkan sebahagian daripada skrin"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Ketik butang untuk mengezum"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zum masuk dengan pantas pada skrin untuk menjadikan kandungan lebih besar"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Untuk mengezum masuk:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gunakan pintasan untuk memulakan pembesaran&lt;br/&gt; {1,number,integer}. Ketik skrin&lt;br/&gt; {2,number,integer}. Seret 2 jari untuk menerokai skrin&lt;br/&gt; {3,number,integer}. Jepit dengan 2 jari untuk melaraskan zum&lt;br/&gt; {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Untuk mengezum masuk sementara:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Pastikan jenis pembesaran ditetapkan kepada skrin penuh&lt;br/&gt; {1,number,integer}. Gunakan pintasan untuk memulakan pembesaran&lt;br/&gt; {2,number,integer}. Sentuh &amp; tahan di mana-mana pada skrin&lt;br/&gt; {3,number,integer}. Seret jari untuk menerokai skrin&lt;br/&gt; {4,number,integer}. Angkat jari untuk menghentikan pembesaran"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Untuk mengezum masuk:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gunakan pintasan untuk memulakan pembesaran&lt;br/&gt; {1,number,integer}. Ketik skrin&lt;br/&gt; {2,number,integer}. Seret 2 jari untuk menerokai skrin&lt;br/&gt; {3,number,integer}. Cubit dengan 2 jari untuk melaraskan zum&lt;br/&gt; {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran&lt;br/&gt;&lt;br/&gt; Anda juga boleh mengezum masuk untuk sementara waktu dan banyak lagi."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Untuk mengezum masuk:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gunakan pintasan untuk memulakan pembesaran&lt;br/&gt; {1,number,integer}. Ketik skrin&lt;br/&gt; {2,number,integer}. Seret 1 atau 2 jari untuk menerokai skrin&lt;br/&gt; {3,number,integer}. Cubit dengan 2 jari untuk melaraskan zum&lt;br/&gt; {4,number,integer}. Gunakan pintasan untuk menghentikan pembesaran&lt;br/&gt;&lt;br/&gt; Anda juga boleh mengezum masuk untuk sementara waktu dan banyak lagi."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Apabila pembesaran dihidupkan, anda boleh mengezum masuk pada skrin.\n\n"<b>"Untuk mengezum"</b>", mulakan pembesaran, kemudian ketik di mana-mana pada skrin.\n"<ul><li>"Seret sekurang-kurangnya 2 jari untuk menatal"</li>\n<li>"Cubit menggunakan sekurang-kurangnya 2 jari untuk melaraskan zum"</li></ul>\n\n<b>"Untuk mengezum sementara"</b>", mulakan pembesaran, kemudian sentuh &amp; tahan di mana-mana pada skrin.\n"<ul><li>"Seret untuk beralih-alih di sekitar skrin"</li>\n<li>"Angkat jari untuk mengezum keluar"</li></ul>\n\n"Anda tidak boleh mengezum masuk pada papan kekunci atau bar navigasi."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Halaman <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> daripada <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Pintasan butang kebolehaksesan"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Leret ke atas dari bahagian bawah skrin menggunakan 2 jari.\n\nUntuk beralih antara ciri, leret ke atas menggunakan 2 jari dan tahan."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Leret ke atas dari bahagian bawah skrin menggunakan 3 jari.\n\nUntuk beralih antara ciri, leret ke atas menggunakan 3 jari dan tahan."</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_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>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Kekunci kelantangan"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"kekunci kelantangan"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tekan &amp; tahan kedua-dua kekunci kelantangan"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ketik skrin dua kali menggunakan dua jari"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Ketik dua kali menggunakan %1$d jari"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ketik skrin dua kali dengan pantas menggunakan %1$d jari"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Ketik tiga kali"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ketik skrin %1$d kali dengan pantas. Tindakan ini mungkin akan memperlahan peranti anda."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Ketik dua kali menggunakan %1$d jari"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ketik skrin {0,number,integer} kali dengan cepat menggunakan dua jari"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ketik tiga kali pada skrin"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ketik tiga kali"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ketik skrin {0,number,integer} kali dengan pantas. Pintasan ini mungkin memperlahankan peranti anda"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Terperinci"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Butang Kebolehaksesan ditetapkan kepada <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan pembesaran, sentuh &amp; tahan butang Kebolehaksesan, kemudian pilih pembesaran."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gerak isyarat kebolehaksesan ditetapkan pada <xliff:g id="SERVICE">%1$s</xliff:g>. Untuk menggunakan pembesaran, leret ke atas menggunakan dua jari dari bahagian bawah skrin dan tahan. Kemudian, pilih pembesaran."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Perkhidmatan ini tidak berfungsi."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Pintasan kebolehaksesan"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Tunjukkan dalam Tetapan Pantas"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Merah-hijau"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Merah-hijau"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Merah-hijau, hijau lemah"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Merah-hijau, merah lemah"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Biru-kuning"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Skala kelabu"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Keamatan"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Hijau lemah, deuteranomali"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Merah lemah, protanomali"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Tidak tersedia untuk mod skala kelabu atau apabila pembetulan warna dilumpuhkan"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomali"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomali"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Amat malap"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Jadikan skrin amat malap"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Biru kehijauan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Kuning"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Benarkan <xliff:g id="SERVICE">%1$s</xliff:g> mengawal peranti anda sepenuhnya?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> perlu:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Oleh sebab apl melindungi permintaan kebenaran, Tetapan tidak dapat mengesahkan jawapan anda."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> meminta kawalan sepenuhnya ke atas peranti ini. Perkhidmatan dapat membaca skrin dan bertindak bagi pihak pengguna dengan keperluan kebolehaksesan. Tahap kawalan ini tidak sesuai untuk kebanyakan apl."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Kawalan penuh sesuai untuk apl yang membantu anda dengan keperluan kebolehaksesan tetapi bukan untuk kebanyakan apl."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Melihat dan mengawal skrin"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ciri ini boleh membaca semua kandungan pada skrin dan memaparkan kandungan di atas apl lain."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Melihat dan melaksanakan tindakan"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ciri ini boleh menjejaki interaksi anda dengan apl atau penderia perkakasan dan berinteraksi dengan apl bagi pihak anda."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Benarkan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Matikan"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Tiada}=1{1 jadual ditetapkan}other{# jadual ditetapkan}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Jangan Ganggu"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Mod Keutamaan"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Tambahkan mod"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimumkan gangguan dan kawal perhatian anda dengan mod untuk tidur, bekerja, memandu dan semua perkara yang lain."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Buat mod anda sendiri"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Dapatkan pemberitahuan daripada orang dan apl penting sahaja"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Tetapkan jadual"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Jadual berdasarkan"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Hari dan masa"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 PG - 5 PTG hari biasa\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Acara kalendar"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} aktif}=2{{mode_1} dan {mode_2} aktif}=3{{mode_1}, {mode_2} dan {mode_3} aktif}other{{mode_1}, {mode_2} dan # lagi aktif}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mod boleh dihidupkan secara automatik}other{# mod boleh dihidupkan secara automatik}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"HIDUP"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Tidak ditetapkan"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Dilumpuhkan"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Buat mod"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tersuai"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Hidupkan sekarang"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Matikan"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mod tidak ditemukan"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Hadkan gangguan"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Sekat gangguan"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Sediakan <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Hidupkan Jangan Ganggu"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Bunyi penggera dan media boleh ganggu"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Jadual"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Padamkan jadual"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Padam"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Namakan semula"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Padam"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Padamkan mod \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Jadual"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Jadual"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Hidupkan secara automatik"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Tambahkan kalendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Gunakan kalendar anda"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Jadual"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Tetapkan jadual"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Masa dihidupkan secara automatik"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Jadual acara"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Hidupkan semasa acara untuk"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Apabila balasan undangan ialah"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Jadual masa"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Jadual"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> jam, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Jadual"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Benarkan gangguan yang berbunyi"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Sekat gangguan visual"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Benarkan isyarat visual"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Pemberitahuan yang boleh anda terima"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Tindakan tambahan"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Penapis pemberitahuan"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Lagi tetapan"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Mati}=1{Mati / 1 mod boleh dihidupkan secara automatik}other{Mati / # mod boleh dihidupkan secara automatik}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Tetapan paparan"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Pilihan paparan"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Skala kelabu"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"dayakan tema gelap"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Tukar OS dan apl untuk mengutamakan teks terang pada latar gelap, yang mungkin lebih mudah dilihat dan memperoleh penjimatan bateri yang ketara pada sesetengah peranti"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Tiada perubahan paparan}=1{{effect_1}}=2{{effect_1} dan {effect_2}}=3{{effect_1}, {effect_2} dan {effect_3}}other{{effect_1}, {effect_2} dan # lagi}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Hadkan sumber pemberitahuan anda"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Tiada gangguan ditapis"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Pilihan paparan untuk pemberitahuan yang ditapis"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Apabila Jangan Ganggu dihidupkan"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Tiada bunyi daripada pemberitahuan"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"buka pemberitahuan"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Benarkan penundaan pemberitahuan"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Titik pemberitahuan pada ikon apl"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Himpunan pemberitahuan"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Gelembung"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Gelembung"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Gelembungkan perbualan ini"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Apl ini tidak menyokong tetapan dipertingkatkan"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Lagi tetapan"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Lagi tetapan tersedia dalam apl ini"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Pemberitahuan Boleh Suai"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gunakan pemberitahuan boleh suai"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Apabila anda menerima banyak pemberitahuan dalam tempoh masa yang singkat, telefon anda akan mengurangkan kelantangan dan meminimumkan tetingkap timbul pada skrin hingga dua minit. Panggilan, penggera dan perbualan keutamaan masih bergetar, mengeluarkan bunyi atau dipaparkan pada skrin dan semua pemberitahuan mudah ditemukan apabila anda menarik bahagian atas skrin ke bawah."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Tempoh bertenang pemberitahuan"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gunakan tempoh bertenang pemberitahuan"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Apabila anda menerima banyak pemberitahuan dalam tempoh masa yang singkat, peranti anda akan mengurangkan kelantangan dan meminimumkan makluman hingga 2 minit. Panggilan, penggera dan perbualan keutamaan tidak terjejas. \n\nPemberitahuan yang diterima semasa tempoh bertenang boleh ditemukan dengan menarik ke bawah daripada bahagian atas skrin."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Gunakan pada profil kerja"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Gunakan pada apl profil kerja"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Perkhidmatan pembantu VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategori"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Lain-lain"</string>
     <string name="no_channels" msgid="4716199078612071915">"Apl ini belum menyiarkan sebarang pemberitahuan"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Tunjukkan kategori tidak digunakan"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Tetapan tambahan dalam apl"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Tunjukkan kategori tidak digunakan"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Sembunyikan kategori tidak digunakan"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Perbualan"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Semua perbualan"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"semua perbualan"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Perbualan keutamaan"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"perbualan keutamaan"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Tiada"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apl yang boleh ganggu"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apl yang dipilih"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Tiada"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Semua"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Tiada apl yang boleh ganggu}=1{{app_1} boleh ganggu}=2{{app_1} dan {app_2} boleh ganggu}=3{{app_1}, {app_2} dan {app_3} boleh ganggu}other{{app_1}, {app_2} dan # lagi boleh ganggu}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Kerja)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Mengira…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Benarkan apl membatalkan Jangan Ganggu"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apl yang boleh ganggu"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pilih lagi apl"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Tiada apa-apa yang boleh ganggu"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Tiada seorang pun boleh ganggu"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Sesetengah orang boleh ganggu"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Pemanggil berulang boleh mengganggu"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Semua orang boleh ganggu"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Pemanggil berulang"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Benarkan pemanggil berulang"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Tukar kepada penggera sahaja selama satu jam hingga {time}}other{Tukar kepada penggera sahaja selama # jam hingga {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Tukar kepada penggera sahaja hingga <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Tukar kepada sentiasa ganggu"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Namakan semula"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Tukar ikon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Tukar ikon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Mod edit"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Buat mod"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mod tersuai"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nama mod"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Acara kalendar"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutin waktu tidur"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Semasa memandu"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Tetapan apl"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Maklumat dan tetapan dalam <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Diurus oleh <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Lumpuhkan <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Mod ini tidak akan dihidupkan apabila dilumpuhkan"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Lumpuhkan"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Dayakan <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Mod ini boleh dihidupkan secara automatik berdasarkan tetapan mod tersebut"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Dayakan"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Tetapkan mod yang mengikut jadual yang tetap"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Tetapkan mod untuk disegerakkan dengan acara kalendar dan maklum balas undangan"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Rancang rutin tidur yang menenangkan. Tetapkan penggera, malapkan skrin dan sekat pemberitahuan."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Utamakan keselamatan di atas jalan untuk mendapatkan pemanduan yang fokus dan bebas gangguan"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Sekat gangguan daripada peranti anda untuk menambahkan fokus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Singkirkan semua gangguan untuk persekitaran yang senyap"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Peribadikan pengalaman dan tetapan peranti untuk pengguna yang berlainan"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimumkan gangguan dengan membenarkan orang dan apl yang penting sahaja menghubungi anda"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Amaran"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Tutup"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Hantar maklum balas peranti ini"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Sarung"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateri"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel Tetapan"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Paksa mod desktop"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Paksa mod desktop percubaan pada paparan kedua"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Dayakan tetingkap bentuk bebas"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Dayakan tetingkap bentuk bebas pada paparan kedua"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Dayakan tidak boleh diubah saiz dalam berbilang tetingkap"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Benarkan apl tidak boleh diubah saiz dalam berbilang tetingkap"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Batalkan paksa gelap"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"data mudah alih"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Untuk meningkatkan pengalaman peranti, apl dan perkhidmatan masih dapat melakukan imbasan untuk mengesan rangkaian Wi-Fi pada bila-bila masa, meskipun apabila Wi-Fi dimatikan. Ini dapat digunakan, contohnya, untuk meningkatkan ciri dan perkhidmatan berasaskan lokasi. Anda boleh menukar pilihan ini dalam tetapan pengimbasan Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Tukar"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Disambungkan"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Disambungkan buat sementara waktu"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Menggunakan <xliff:g id="SUBNAME">%1$s</xliff:g> buat sementara waktu"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Gunakan penyematan apl"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Gunakan pilihan pembangun"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Gunakan perkhidmatan cetakan"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Benarkan berbilang pengguna"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Benarkan penukaran pengguna"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"izinkan, beberapa, pengguna, benarkan, banyak"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"berbilang, pengguna, profil, pengguna, akaun, tukar, pelbagai"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Gunakan nyahpepijat wayarles"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Pilih paparan yang ditampilkan pada skrin apabila tablet didok. Peranti mungkin menggunakan lebih banyak tenaga apabila penyelamat skrin digunakan."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Sesuaikan"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Sesuaikan <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"But semula diperlukan untuk mendayakan sokongan bentuk bebas."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"But semula diperlukan untuk memaksa mod desktop pada paparan sekunder."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"But semula diperlukan untuk mendayakan sokongan tetingkap bentuk bebas."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"But semula diperlukan untuk mengemaskinikan ketersediaan tetingkap bentuk bebas."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"But semula diperlukan untuk mendayakan tetingkap bentuk bebas pada paparan kedua."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"But semula sekarang"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"But semula kemudian"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio Ruang"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ros"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Lembayung"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Selesai"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Simpan"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Batal"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Lalai"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Sederhana"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Hidup"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Mati"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Hidup"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% kiri, %2$d%% kanan"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% kanan, %2$d%% kiri"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nama peranti anda boleh dilihat oleh apl yang anda pasang. Nama peranti anda juga boleh dilihat oleh orang lain apabila anda menyambung kepada peranti Bluetooth, menyambung kepada rangkaian Wi-Fi atau menyediakan tempat liputan Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Jantina tatabahasa"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Pilih Jantina tatabahasa"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Dengar strim"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Imbas kod QR strim audio untuk mendengar dengan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Tidak dapat mengedit kata laluan semasa perkongsian. Untuk mengubah kata laluan, matikan perkongsian audio dahulu."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Pengimbas kod QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Tetapan Carian"</string>
 </resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index c8b18db..4ba249d 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"အိပ်ရာဝင်ချိန်"</item>
-    <item msgid="4152450357280759894">"ကားမောင်းခြင်း"</item>
-    <item msgid="7096549258219399423">"စီးမျောခြင်း"</item>
-    <item msgid="2760716776980432977">"စီမံပြီးဖြစ်သည်"</item>
-    <item msgid="601734478369121764">"ကြယ်"</item>
-    <item msgid="6243809315432780521">"ပြက္ခဒိန်"</item>
-    <item msgid="4913577903148415331">"အချိန်"</item>
-    <item msgid="3653377604690057780">"ပြဇာတ်ရုံ"</item>
-    <item msgid="3843711267408385410">"ပန်းပွင့်"</item>
+    <item msgid="2750940760340557109">"လခြမ်းတစ်ဝက်"</item>
+    <item msgid="8513969636586738035">"ကား"</item>
+    <item msgid="957392343846370509">"လူ့စိတ်"</item>
+    <item msgid="6734164279667121348">"ပြက္ခဒိန်"</item>
+    <item msgid="4139559120353528558">"နာရီ"</item>
+    <item msgid="5157711296814769020">"ကမ်းခြေထီး"</item>
+    <item msgid="6635328761318954115">"တဲ"</item>
+    <item msgid="1711994778883392255">"ဖလင်လိပ်"</item>
+    <item msgid="9097658401859604879">"ဂိမ်းထိန်းချုပ်ကိရိယာ"</item>
+    <item msgid="755931364157422565">"အားကစားရုံ ဝိတ်တုံး"</item>
+    <item msgid="8894207806795738429">"ဘောလုံးပစ်နေသူ"</item>
+    <item msgid="2274801572149555103">"ကန်နေသူ"</item>
+    <item msgid="8795037201506843325">"ရေကူးခြင်း"</item>
+    <item msgid="3558421426169430451">"တောင်တက်နေသူ"</item>
+    <item msgid="7455070421232184932">"ဂေါက်ရိုက်ခြင်း"</item>
+    <item msgid="5841773092449126508">"အလုပ်ရုံတူးလ်များ"</item>
+    <item msgid="4595330511709890409">"ရုံးသုံးလက်ဆွဲအိတ်"</item>
+    <item msgid="8352738347856724389">"ကြယ်"</item>
+    <item msgid="7082783098151998721">"ကြာပန်း"</item>
+    <item msgid="5772220259409264724">"ကြီးကြပ်ရေးမှူး"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index f2d62d1..a37ca2e 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"ဆိုင်းငံ့ထားသည်"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"မသိ"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"အစမ်းကြည့်ပါ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR ကုဒ်"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ပိုသေးအောင် ပြုလုပ်ပါ"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ပိုကြီးအောင် ပြုလုပ်ပါ"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"အမြဲတမ်း"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"နားကြားကိရိယာ ဆက်တင်များ"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ဖြတ်လမ်းလင့်ခ်၊ နားကြားကိရိယာ တွဲဖက်အသုံးပြုနိုင်မှု"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ကြိုတင်သတ်မှတ်ချက်"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"သင့်နားအထူးကုဆရာဝန်က စီမံပေးထားသည့် အသင့်သုံးများ မရှိပါ"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"အသင့်သုံးကို အပ်ဒိတ်လုပ်၍မရပါ"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"အသံထွက်မည့် ကိရိယာ"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"အသံထွက်မည့် ကိရိယာအကြောင်း"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ဤအက်ပ်အတွက် ‘ဆက်တင်များ’ မှ ဘာသာစကား ရွေးချယ်မှု မရရှိနိုင်ပါ။"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ဘာသာစကားသည် အက်ပ်တွင် ရရှိနိုင်သော ဘာသာစကားများမှ ကွဲပြားနိုင်သည်။ အချို့အက်ပ်များက ဤဆက်တင်ကို မပံ့ပိုးနိုင်ပါ။"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"အက်ပ်တစ်ခုစီအတွက် ဘာသာစကား သတ်မှတ်သည်။"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"သင့်စနစ်၊ အက်ပ်နှင့် ဝဘ်ဆိုက်များက သင့်စိတ်ကြိုက်ဘာသာစကားများမှ ပထမဆုံး ပံ့ပိုးပေးသည့် ဘာသာစကားကို သုံးသည်။"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"သင်၏ စက်၊ အက်ပ်နှင့် ဝဘ်ဆိုက်များသည် သင့်ဦးစားပေးဘာသာစကားစာရင်းမှ ပထမဆုံးပံ့ပိုးပေးသော ဘာသာစကားကို အသုံးပြုသည်။\n\nအက်ပ်အများအပြားသည် ရက်စွဲ၊ နံပါတ်နှင့် ယူနစ်များကို ပုံစံချရန်အတွက် သင့်ဦးစားပေးဘာသာစကားမှ ဒေသကိုလည်း သုံးပါမည်။ သင့်ဒေသကို ပြောင်းရန်အတွက် ဘာသာစကားထည့်ပြီးနောက် ဦးစားပေးဒေသကို ရွေးပါ။"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"အက်ပ်တစ်ခုချင်းစီအတွက် ဘာသာစကားရွေးရန် အက်ပ်ဘာသာစကား ဆက်တင်များသို့ သွားပါ။"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"အက်ပ်ဘာသာစကားများအကြောင်း ပိုမိုလေ့လာခြင်း"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"စနစ်ဘာသာစကားကို %s သို့ပြောင်းမလား။"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ပိတ်"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ဖွင့် / အက်ပ် # ခုက တည်နေရာသုံးခွင့် ရှိသည်}other{ဖွင့် / အက်ပ် # ခုက တည်နေရာသုံးခွင့် ရှိသည်}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ဖွင့်နေသည်…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"အနီးတစ်ဝိုက်ရှိ စက်များ၏ ခွင့်ပြုချက်ကိုရထားသော အက်ပ်များက ချိတ်ဆက်ထားသောစက်များ၏ ဆက်စပ်နေရာကို တွက်ချက်နိုင်သည်။"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"အနီးတစ်ဝိုက်ရှိ စက်များ၏ ခွင့်ပြုချက်ကိုရထားသော အက်ပ်များက ချိတ်ဆက်ထားသောစက်များ၏ ဆက်စပ်နေရာကို တွက်ချက်နိုင်သည်။"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"အက်ပ်နှင့် ဝန်ဆောင်မှုများအတွက် တည်နေရာသုံးခွင့်ကို ပိတ်ထားသည်။ သင် အရေးပေါ် နံပါတ်ကို ဖုန်းဆက်သောအခါ (သို့) စာတိုပို့သောအခါ သင့်စက်၏တည်နေရာကို အရေးပေါ်ဆောင်ရွက်ပေးသူများထံ ပို့နိုင်ပါသည်။"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"တည်နေရာပြ ဆက်တင်များအကြောင်း ပိုမိုလေ့လာရန်"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ပြောင်းရန် ChromeOS ဆက်တင်များ &gt; ကိုယ်ရေးအချက်အလက် လုံခြုံမှုနှင့် လုံခြုံရေး &gt; ကိုယ်ရေးအချက်အလက်လုံခြုံမှု ဆက်တင်များ &gt; တည်နေရာ အသုံးပြုခွင့်သို့ သွားပါ"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"မျက်နှာနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"မျက်နှာ၊ လက်ဗွေနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"မျက်နှာ၊ လက်ဗွေများနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"‘အထောက်အထား စစ်ဆေးခြင်း’ ဖွင့်ထားသည်"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"အဝေးထိန်း Authenticator ဖွင့်ခြင်း"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"နာရီထည့်လိုက်ပြီ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"လက်ပတ်နာရီ စနစ်ထည့်သွင်းခြင်း"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"‘နာရီဖြင့်ဖွင့်ခြင်း’ အကြောင်း ပိုမိုလေ့လာရန်"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"နာရီထည့်ရန်"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"နာရီ ဖယ်ရှားရန်"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"လက်ဗွေနှင့် မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"မျက်နှာ၊ လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"အလုပ်အတွက် ‘မျက်နှာပြနှင့် လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"စနစ်ထည့်သွင်းရန် လိုအပ်သည်"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"မျက်နှာနှင့် လက်ဗွေများ ထည့်ပြီးပါပြီ"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"သီးသန့်နေရာကို စနစ်ထည့်သွင်းနေသည်…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"သီးသန့်နေရာကို စနစ်ထည့်သွင်း၍မရပါ"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ထပ်စမ်းရန်"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ထွက်ရန်"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"သီးသန့်နေရာ မရနိုင်ပါ။\nဖြစ်နိုင်သော အကြောင်းရင်းများကို ကြည့်ပါ"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ဖြစ်နိုင်သော အကြောင်းရင်းများကို ကြည့်ပါ"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"သီးသန့်နေရာအတွက် လော့ခ်အသစ် ရွေးမလား။"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"သီးသန့်နေရာအတွက် လော့ခ်အသစ် သတ်မှတ်နိုင်သည် (သို့) သင့်စက်ဖွင့်ရန်သုံးသည့် တူညီသော လော့ခ်ကို အသုံးပြုနိုင်သည်"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ဖန်သားပြင်လော့ခ် သုံးရန်"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"စက်ကို ပြန်စမလား။"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"အသေးစိတ် NFC မှတ်တမ်းတင်ခြင်းကို ဆော့ဖ်ဝဲရေးရန်အတွက်သာ ရည်ရွယ်ထားသည်။ ကိုယ်ရေးကိုယ်တာ အချက်အလက်များ ပါရှိနိုင်သော ချွတ်ယွင်းမှု အစီရင်ခံချက်များတွင် ထပ်ဆောင်း NFC ဒေတာ ပါဝင်သည်။ ဤဆက်တင်ပြောင်းရန် သင့်စက်ကို ပြန်စပါ။"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ပြန်စရန်"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ဖွင့်"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ပိတ်"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ပြင်ပဖန်သားပြင်"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ပြင်ပဖန်သားပြင် သုံးရန်"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ဖန်သားပြင် ပုံရိပ်ပြတ်သားကိန်း"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ပြင်ပဖန်သားပြင်နှင့် ချိတ်ဆက်မှုမရှိပါ"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"လှည့်ခြင်း"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"ပုံမှန်"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ပုံရိပ်ပြတ်သားကိန်း (သို့) လှည့်ခြင်းကို ပြောင်းလိုက်ပါက လက်ရှိဖွင့်ထားသော အက်ပ်များ ရပ်သွားနိုင်သည်"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"သင့်ဖန်သားပြင်ကို စကရင်ပွားရန် သင့်စက်ကို ပြင်ပဖန်သားပြင်နှင့် ချိတ်ဆက်ထားရမည်"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"နောက်ထပ် ရွေးစရာများ"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"ကာစ်"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"စကရင်ပွားရန်"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ကြိုးမဲ့ ပြသမှုကို ဖွင့်ရန်"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"အလိုက်အထိုက်"</string>
     <string name="brightness" msgid="6216871641021779698">"တောက်ပမှု အဆင့်"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"အလိုက်သင့် တောက်ပမှု"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"အလိုက်သင့် တောက်ပမှုအကြောင်း"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"သင်၏ ဖန်သားပြင်တောက်ပမှုသည် ပတ်ဝန်းကျင်နှင့် လုပ်ဆောင်ချက်များကိုလိုက်၍ အလိုအလျောက် ချိန်ညှိသွားပါမည်။ သင့်ရွေးချယ်မှုများကို အလိုက်သင့် တောက်ပမှုပြောင်းလဲခြင်းစနစ်က ပိုမိုလေ့လာနိုင်စေရန် ရွှေ့တုန်းကို သင်ကိုယ်တိုင် ရွှေ့နိုင်ပါသည်။"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ဖွင့်"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ပိတ်"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ရွေးစရာများ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"အများသုံးနိုင်မှု"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"စက်၏ ကီးဘုတ်"</string>
-    <string name="show_ime" msgid="4334255501724746849">"မျက်နှာပြင်လက်ကွက်ကို သုံးခြင်း"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"စက်၏ကီးဘုတ် ဖွင့်ထားစဉ်တွင် ၎င်းကို ဖန်သားပြင်ပေါ်တွင် ဆက်ထားပါ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ပြန်ကန်ကီးများ"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"ကီးဘုတ်သည် <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms အတွင်း ကီးတစ်ခုတည်း အကြိမ်ကြိမ် အမြန်နှိပ်ခြင်းကို လျစ်လျူရှုသည်"</string>
     <string name="slow_keys" msgid="2891452895499690837">"အနှေးကီးများ"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms ဖွင့်ရန် ခလုတ်နှိပ်ခြင်းအတွက် ကြာချိန်ကို ပြင်နိုင်သည်"</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="2396247040177734245">"မောက်စ်ကို ထိန်းချုပ်ရန် ပကတိကီးဘုတ်ကိုသုံးပါ။"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"မြား ဖြည့်စွက်ပုံစံကို အဝါ ပြောင်းရန်"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"မြား ဖြည့်စွက်ပုံစံကို ပန်းရောင် ပြောင်းရန်"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"မြား ဖြည့်စွက်ပုံစံကို အပြာ ပြောင်းရန်"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"မြားစုတ်ချက် ပုံစံ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"အဖြူ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"အမည်း"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"မရှိ"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"တာ့ချ်ပက်လက်ဟန်များကို လေ့လာရန်"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"တာ့ချ်ပက်၊ တာ့ချ်ပက်၊ မောက်စ်၊ ကာဆာ၊ လှိမ့်၊ ပွတ်ဆွဲ၊ ညာဘက်ခလုတ်ကို နှိပ်၊ နှိပ်၊ မြား"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ညာဘက်ခလုတ်ကို နှိပ်၊ တို့"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"အသုံးပြုသူ၏ ရွေးချယ်မှု- <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"စကားသံ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"မြားရွေ့နှုန်း"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"မြားအရွယ်အစား"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"မြားအရွယ်အစား သေးရန်"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"မြားအရွယ်အစား ကြီးရန်"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ဂိမ်းထိန်းချုပ်ခြင်း"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"တစ်ဆင့်ပြန်ညွှန်ပြခြင်း တုန်ခါမှု"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"ချိတ်ဆက်ထားသည့်အခါ တုန်ခါမှုကို ဂိမ်းခလုတ်ဆီသို့ ပို့ရန်"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"မည်သို့ပင်ဖြစ်စေ ရှေ့ဆက်ရန်"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"မလုပ်တော့"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ပုံကြီးချဲ့ခြင်း ဆက်တင်များ"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"လက်တစ်ချောင်းသုံး ရွှေ့ကြည့်ခြင်း"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"မှန်ဘီလူးကို လက် ၁ ချောင်းဖြင့် ရွှေ့ပါ"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ဖန်သားပြင်ပေါ်တွင် ရွှေ့ကြည့်ရန် လက် ၁ ချောင်းဖြင့် ဖိဆွဲပါ"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"လက်တစ်ချောင်းဖြင့် ဖိဆွဲ၍ ချဲ့ပြသည့်အကွက်ကို ရွှေ့နိုင်သည်။"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"လက်နှစ်ချောင်းဖြင့် ဖိဆွဲ၍ ချဲ့ပြသည့်အကွက်ကို ရွှေ့နိုင်သည်။"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ဖန်သားပြင်၏တစ်စိတ်တစ်ပိုင်းကိုသာ ချဲ့နေစဉ် မရနိုင်ပါ"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ဇူးမ်အသုံးပြုရန် ခလုတ်ကို တို့ပါ"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"အကြောင်းအရာပိုကြီးလာစေရန် ဖန်သားပြင်တွင် အမြန်ဇူးမ်ဆွဲနိုင်သည်"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ဇူးမ်ဆွဲရန်အတွက်-&lt;/b&gt;&lt;br/&gt; {0,number,integer}။ စတင်ချဲ့ရန် ဖြတ်လမ်းလင့်ခ်ကို သုံးပါ&lt;br/&gt; {1,number,integer}။ ဖန်သားပြင်ကို တို့ပါ&lt;br/&gt; {2,number,integer}။ ဖန်သားပြင်ပေါ်တွင် ရွှေ့ကြည့်ရန် လက် ၂ ချောင်းဖြင့် ဖိဆွဲပါ&lt;br/&gt; {3,number,integer}။ ဇူးမ်ချိန်ညှိရန် လက် ၂ ချောင်းဖြင့် ချဲ့ချုံ့ပါ&lt;br/&gt; {4,number,integer}။ ချဲ့ခြင်းကို ရပ်ရန် ဖြတ်လမ်းလင့်ခ်ကို သုံးပါ&lt;br/&gt;&lt;br/&gt; &lt;b&gt;ယာယီ ဇူးမ်ဆွဲရန်-&lt;/b&gt;&lt;br/&gt; {0,number,integer}။ ချဲ့သည့်ပုံစံကို ဖန်သားပြင်အပြည့် သတ်မှတ်ထားကြောင်း သေချာပါစေ&lt;br/&gt; {1,number,integer}။ စတင်ချဲ့ရန် ဖြတ်လမ်းလင့်ခ်ကို သုံးပါ&lt;br/&gt; {2,number,integer}။ ဖန်သားပြင်တစ်နေရာတွင် ထိပြီး ဖိထားပါ&lt;br/&gt; {3,number,integer}။ ဖန်သားပြင်ပေါ်တွင် ရွှေ့ကြည့်ရန် လက်ချောင်းကို ဖိဆွဲပါ&lt;br/&gt; {4,number,integer}။ ချဲ့ခြင်း ရပ်ရန် လက်ချောင်းကို ကြွပါ"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ဇူးမ်ဆွဲရန်အတွက်-&lt;/b&gt;&lt;br/&gt; {0,number,integer}။ စတင်ချဲ့ရန် ဖြတ်လမ်းလင့်ခ်ကို သုံးပါ&lt;br/&gt; {1,number,integer}။ ဖန်သားပြင်ကို တို့ပါ&lt;br/&gt; {2,number,integer}။ ဖန်သားပြင်ပေါ်တွင် ရွှေ့ကြည့်ရန် လက် ၂ ချောင်းဖြင့် ဖိဆွဲပါ&lt;br/&gt; {3,number,integer}။ ဇူးမ်ချိန်ညှိရန် လက် ၂ ချောင်းဖြင့် ချဲ့ချုံ့ပါ&lt;br/&gt; {4,number,integer}။ ချဲ့ခြင်းကိုရပ်ရန် ဖြတ်လမ်းအသုံးပြုပါ&lt;br/&gt;&lt;br/&gt; ယာယီဇူးမ်ဆွဲခြင်းနှင့် အခြားအရာများလည်း လုပ်နိုင်သည်။"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ဇူးမ်ဆွဲရန်အတွက်-&lt;/b&gt;&lt;br/&gt; {0,number,integer}။ စတင်ချဲ့ရန် ဖြတ်လမ်းလင့်ခ်ကို သုံးပါ&lt;br/&gt; {1,number,integer}။ ဖန်သားပြင်ကို တို့ပါ&lt;br/&gt; {2,number,integer}။ ဖန်သားပြင်ပေါ်တွင် ရွှေ့ကြည့်ရန် လက် ၁ ချောင်း သို့မဟုတ် ၂ ချောင်းဖြင့် ဖိဆွဲပါ&lt;br/&gt; {3,number,integer}. ဇူးမ်ချိန်ညှိရန် လက် ၂ ချောင်းဖြင့် ချဲ့ချုံ့ပါ&lt;br/&gt; {4,number,integer}။ ချဲ့ခြင်းကိုရပ်ရန် ဖြတ်လမ်းအသုံးပြုပါ&lt;br/&gt;&lt;br/&gt; ယာယီဇူးမ်ဆွဲခြင်းနှင့် အခြားအရာများလည်း လုပ်နိုင်သည်။"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"မှန်ဘီလူးကို ဖွင့်ထားသည့်အခါ သင့်ဖန်သားပြင်ပေါ်တွင် ဇူးမ်ဆွဲနိုင်ပါသည်။\n\n"<b>"ဇူးမ်ဆွဲရန်"</b>" မှန်ဘီလူးကို ဖွင့်ပြီး ဖန်သားပြင်ပေါ်ရှိ နေရာတစ်ခုတွင် တို့ပါ။\n"<ul><li>"လှိမ့်ရွှေ့ရန် အနည်းဆုံး လက်ချောင်း ၂ ချောင်းဖြင့် ဖိဆွဲပါ"</li>\n<li>"ဇူးမ်ကို ချိန်ညှိရန် အနည်းဆုံး လက်ချောင်း ၂ ချောင်းဖြင့် ဆွဲကပ်ပါ"</li></ul>\n\n<b>"ယာယီဇူးမ်ဆွဲရန်"</b>" မှန်ဘီလူးကို ဖွင့်ပြီး ဖန်သားပြင်ပေါ်ရှိ တစ်နေနေရာတွင် ဖိထားပါ။\n"<ul><li>"ဖန်သားပြင်တစ်လျှောက် ရွှေ့ကြည့်ရန် ဖိဆွဲပါ"</li>\n<li>"ဇူးမ်ဖြုတ်ရန် လက်ချောင်းကို မ လိုက်ပါ"</li></ul>\n\n"ကီးဘုတ် သို့မဟုတ် လမ်းညွှန်ဘားကို ဇူးမ်ဆွဲ၍ မရပါ။"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"စာမျက်နှာ <xliff:g id="NUM_PAGES">%2$d</xliff:g> မျက်နှာအနက် <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> မျက်နှာ"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"သုံးနိုင်မှုခလုတ် ဖြတ်လမ်းလင့်ခ်"</string>
@@ -2149,8 +2180,6 @@
     <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_software_gesture" msgid="8292555254353761635">"လက် ၂ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၂ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"လက် ၃ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၃ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{သင့်ဖန်သားပြင် အောက်ခြေမှ အပေါ်သို့ ပွတ်ဆွဲပါ။ ဝန်ဆောင်မှုများအကြား ပြောင်းရန် အပေါ်သို့ ပွတ်ဆွဲပြီး ဖိထားပါ။}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>
@@ -2161,16 +2190,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"စခရင်ကို လက်နှစ်ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ဖန်သားပြင်ကို %1$d ကြိမ် အမြန်တို့ပါ။ ၎င်းသည် သင့်စက်ကို နှေးသွားစေနိုင်သည်။"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"လက် %1$d ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"စခရင်ကို {0,number,integer} ကြိမ် လက်နှစ်ချောင်းဖြင့် အမြန်တို့ပါ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"မျက်နှာပြင်ကို သုံးချက်တို့ပါ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"သုံးချက်တို့ခြင်း"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ဖန်သားပြင်ကို {0,number,integer} ကြိမ် အမြန်တို့ပါ။ ဤဖြတ်လမ်းလင့်ခ်သည် သင့်စက်ကို နှေးသွားစေနိုင်သည်"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"အဆင့်မြင့်"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"အများသုံးနိုင်မှု ခလုတ်ကို <xliff:g id="SERVICE">%1$s</xliff:g> အဖြစ် သတ်မှတ်ထားသည်။ ပုံကြီးချဲ့ခြင်းကို အသုံးပြုရန် အများသုံးနိုင်မှု ခလုတ်ကို ထိထားပြီးနောက် ပုံကြီးချဲ့ခြင်းကို ရွေးပါ။"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"အများသုံးနိုင်မှု လက်ဟန်ကို <xliff:g id="SERVICE">%1$s</xliff:g> အဖြစ် သတ်မှတ်ထားသည်။ ပုံကြီးချဲ့ခြင်းကို အသုံးပြုရန် မျက်နှာပြင်၏ အောက်ခြေမှနေ၍ အပေါ်သို့ လက်နှစ်ချောင်းဖြင့် ပွတ်ဆွဲပြီး ဖိထားပါ။ ထို့နောက် ပုံကြီးချဲ့ခြင်းကို ရွေးပါ။"</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ဤဝန်ဆောင်မှု ချွတ်ယွင်းနေသည်။"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"အများသုံးနိုင်မှု ဖြတ်လမ်းလင့်ခ်များ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"အမြန်ဆက်တင်များတွင်ပြပါ"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"အနီ-အစိမ်း"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"အနီ-အစိမ်း"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"အနီ-အစိမ်း၊ အစိမ်း အားနည်း"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"အနီ-အစိမ်း၊ အနီ အားနည်း"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"အပြာ-အဝါ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"အဖြူအမည်း"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"တောက်ပမှု"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"အစိမ်းရောင်အားနည်းခြင်း၊ အစိမ်းမမြင်ရခြင်း"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"အနီရောင်အားနည်းခြင်း၊ အနီမမြင်ရခြင်း"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"အဖြူအမည်းမုဒ်အတွက် (သို့) အရောင်အမှန်ပြင်ခြင်းကို ပိတ်ထားချိန်တွင် မရနိုင်ပါ"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"အနီ−အစိမ်း အရောင်ကန်းခြင်း"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"အနီ−အစိမ်း အရောင်ကန်းခြင်း"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"အပြာ-အဝါ အရောင်ကန်းခြင်း"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ပိုမှိန်ခြင်း"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ဖန်သားပြင်ကို ပိုမှိန်အောင်လုပ်ခြင်း"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"စိမ်းပြာ"</string>
     <string name="color_yellow" msgid="5957551912912679058">"အဝါ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ပန်းခရမ်း"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> အား သင့်စက်ပစ္စည်းကို အပြည့်အဝ ထိန်းချုပ်ခွင့်ပေးလိုပါသလား။"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ကလုပ်ဆောင်ရန်များ-"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"အပလီကေးရှင်းသည် ခွင့်ပြုချက်တောင်းခံမှုကို ပိတ်လိုက်ခြင်းကြောင့်၊ သင့်တုန့်ပြန်မှုကို အချိန်ညှိချက်များ အတည်မပြုနိုင်ပါ။"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> က ဤကိရိယာကို အပြည့်အဝ ထိန်းချုပ်ခွင့် တောင်းဆိုနေသည်။ ဤဝန်ဆောင်မှုက ဖန်သားပြင်ရှိအရာများကို ဖတ်နိုင်ပြီး အများသုံးနိုင်မှု လိုအပ်ချက်များသုံး၍ အသုံးပြုသူများကိုယ်စား လုပ်ဆောင်နိုင်သည်။ ဤထိန်းချုပ်မှု အဆင့်သည် အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"အများသုံးနိုင်မှု လိုအပ်ချက်များအတွက် အထောက်အကူပြုသည့် အက်ပ်များကို အပြည့်အဝထိန်းချုပ်ခြင်းသည် သင့်လျော်သော်လည်း အက်ပ်အများစုအတွက် မသင့်လျော်ပါ။"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ဖန်သားပြင်ကို ကြည့်ရှုထိန်းချုပ်ခြင်း"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"၎င်းသည် မျက်နှာပြင်ပေါ်ရှိ အကြောင်းအရာအားလုံးကို ဖတ်နိုင်ပြီး အခြားအက်ပ်များအပေါ်တွင် အကြောင်းအရာကို ဖော်ပြနိုင်သည်။"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"လုပ်ဆောင်ချက်များကို ကြည့်ရှုဆောင်ရွက်ခြင်း"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"၎င်းသည် သင်နှင့် အက်ပ်တစ်ခု (သို့) အာရုံခံကိရိယာအကြား ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ခွင့်ပြု"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ပယ်ရန်"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ပိတ်ရန်"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{မရှိ}=1{အချိန်ဇယား ၁ ခု သတ်မှတ်ထားသည်}other{အချိန်ဇယား # ခု သတ်မှတ်ထားသည်}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"မနှောင့်ယှက်ရ"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ဦးစားပေးမုဒ်"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"မုဒ်ထည့်ရန်"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"အိပ်ခြင်း၊ အလုပ်လုပ်ခြင်း၊ ကားမောင်းခြင်းနှင့် ၎င်းတို့ကြားရှိ အရာရာအတွက် မုဒ်များဖြင့် အနှောင့်အယှက်များကို လျှော့ချပြီး သင့်အာရုံစိုက်မှုကို ထိန်းချုပ်နိုင်သည်။"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"ကိုယ်ပိုင်မုဒ် ပြုလုပ်ရန်"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"အရေးကြီးပုဂ္ဂိုလ်များနှင့် အက်ပ်များထံမှသာ အကြောင်းကြားချက် ရယူပါ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"အချိန်ဇယား သတ်မှတ်ရန်"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"အောက်ပါကို အခြေခံထားသော အချိန်ဇယား"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ရက်စွဲနှင့် အချိန်"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"“ကြားရက်များ နံနက် ၉ နာရီ - ညနေ ၅ နာရီ”"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"ပြက္ခဒိန်အစီအစဉ်များ"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ကို အသုံးပြုနေသည်}=2{{mode_1} နှင့် {mode_2} တို့ကို အသုံးပြုနေသည်}=3{{mode_1}၊ {mode_2} နှင့် {mode_3} တို့ကို အသုံးပြုနေသည်}other{{mode_1}၊ {mode_2} နှင့် နောက်ထပ် # ခုတို့ကို အသုံးပြုနေသည်}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{မုဒ် ၁ ခု အလိုအလျောက်ပွင့်နိုင်သည်}other{မုဒ် # ခု အလိုအလျောက်ပွင့်နိုင်သည်}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ဖွင့်"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"သတ်မှတ်မထားပါ"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"ပိတ်ထားသည်"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"မုဒ် ပြုလုပ်ခြင်း"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"စိတ်ကြိုက်"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ယခုဖွင့်ရန်"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ပိတ်ရန်"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"မုဒ် မတွေ့ပါ"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"အနှောင့်အယှက်များကို တားဆီးသည်"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"အာရုံပျံ့စရာ (သို့) အနှောင့်အယှက်များကို ပိတ်ထားနိုင်သည်"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> ကို စနစ်ထည့်သွင်းရန်"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'မနှောင့်ယှက်ရ\' ဖွင့်ခြင်း"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"နိုးစက်နှင့် မီဒီယာအသံများ ကြားဖြတ်နိုင်သည်"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"အချိန်ဇယားများ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"အချိန်ဇယားများ ဖျက်ရန်"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ဖျက်ရန်"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"အမည်ပြောင်းရန်"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ဖျက်ရန်"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"“<xliff:g id="MODE">%1$s</xliff:g>” ကို ဖျက်မလား။"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"တည်းဖြတ်ရန်"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"အချိန်ဇယားများ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"အချိန်ဇယား"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"အလိုအလျောက်ဖွင့်ရန်"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"ပြက္ခဒိန်ထည့်ရန်"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"သင့်ပြက္ခဒိန်သုံးရန်"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"စီစဉ်ရန်"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"အချိန်ဇယား သတ်မှတ်ပါ"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"အလိုအလျောက်ဖွင့်မည့်အချိန်"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"အစီအစဉ် အချိန်ဇယား"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"၎င်းအတွက် အစီအစဉ်အတွင်းဖွင့်ပါ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ဖိတ်ကြားမှုပြန်စာ ရှိသည့်နေရာ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"အချိန်ဇယား"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"အချိန်ဇယားဆွဲရန်"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> နာရီ၊ <xliff:g id="MINUTES">%2$d</xliff:g> မိနစ်"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"အချိန်ဇယား"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"အသံပေးသည့် ကြားဖြတ်မှုများ ခွင့်ပြုပါ"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"မြင်ကွင်းပိတ်ခြင်းမှတားဆီးပါ"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ပြသမှုများကို ခွင့်ပြုရန်"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"သင့်ထံ ဆက်သွယ်နိုင်သော အကြောင်းကြားချက်များ"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"နောက်ထပ် လုပ်ဆောင်ချက်များ"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"အကြောင်းကြားချက် စစ်ထုတ်မှုများ"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"နောက်ထပ်ဆက်တင်များ"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ပိတ်ရန်}=1{ပိတ်ရန် / မုဒ် ၁ ခု အလိုအလျောက်ပွင့်နိုင်သည်}other{ပိတ်ရန် / မုဒ် # ခု အလိုအလျောက်ပွင့်နိုင်သည်}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ဖန်သားပြင် ဆက်တင်များ"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ဖန်သားပြင်တွင် ပြသမှုရွေးစရာများ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"အဖြူအမည်း"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"အမှောင်နောက်ခံ သုံးရန်"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"အမှောင်နောက်ခံတွင် လင်းသောစာသားကို ပိုမိုနှစ်သက်ပါက OS နှင့် အက်ပ်များကို ပြောင်းနိုင်သည်။ ၎င်းသည် မျက်လုံးအားစိုက်ရမှု ပိုမိုသက်သာစေနိုင်ပြီး စက်ပစ္စည်းအချို့တွင် ဘက်ထရီ သိသာစွာ ချွေတာနိုင်သည်"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ဖန်သားပြင်တွင် အပြောင်းအလဲ မရှိပါ}=1{{effect_1}}=2{{effect_1} နှင့် {effect_2}}=3{{effect_1}၊ {effect_2} နှင့် {effect_3}}other{{effect_1}၊ {effect_2} နှင့် နောက်ထပ် # ခု}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"သင့်အား အကြောင်းကြားနိုင်သည်များကို ကန့်သတ်ရန်"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"အနှောင့်အယှက်များကို စစ်ထုတ်ထားခြင်း မရှိပါ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"စစ်ထုတ်ထားသော အကြောင်းကြားချက်များအတွက် ပြသမှု ရွေးစရာများ"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"\'မနှောင့်ယှက်ရ\' ဖွင့်ထားသည့်အခါ"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"အကြောင်းကြားချက် အသံမဖွင့်ရန်"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"အကြောင်းကြားချက်ကို ဖွင့်ရန်"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"အကြောင်းကြားချက် ဆိုင်းငံ့ခြင်းကို ခွင့်ပြုပါ"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"အက်ပ်သင်္ကေတပေါ်ရှိ အကြောင်းကြားချက် အစက်"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"အတွဲလိုက် အကြောင်းကြားချက်များ"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"ပူဖောင်းကွက်များ"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ပူဖောင်းကွက်များ"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ဤစကားဝိုင်းကို ပူဖောင်းကွက်အဖြစ် ပြရန်"</string>
@@ -3608,9 +3652,9 @@
     <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="4737150709382859870">"အလိုက်သင့် အကြောင်းကြားချက်များ"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"အလိုက်သင့် အကြောင်းကြားချက်များ သုံးခြင်း"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"အချိန်တိုအတွင်း အကြောင်းကြားချက်များစွာ ရရှိပါက သင့်ဖုန်းသည် နှစ်မိနစ်ကြာသည်အထိ အသံတိုးပြီး စခရင်ပေါ်ရှိ ပေါ့ပ်အပ်များကို လျှော့ချပါမည်။ ခေါ်ဆိုမှု၊ နှိုးစက်နှင့် ဦးစားပေးစကားဝိုင်းများအတွက် တုန်ခါခြင်း၊ အသံမြည်ခြင်း၊ ဖန်သားပြင်တွင် ပေါ်လာခြင်းတို့ ဆက်ရှိဦးမည်ဖြစ်ပြီး အကြောင်းကြားချက်အားလုံးကို ဖန်သားပြင်ထိပ်မှ ဆွဲချခြင်းဖြင့် အလွယ်တကူ ရှာတွေ့နိုင်သည်။"</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_work" msgid="8823596456640216391">"အလုပ်ပရိုဖိုင်များတွင် သုံးရန်"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"အလုပ်ပရိုဖိုင်အက်ပ်များတွင် သုံးရန်"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR အထောက်အကူပြု ဝန်ဆောင်မှုများ"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"အမျိုးအစားများ"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"အခြား"</string>
     <string name="no_channels" msgid="4716199078612071915">"ဤအက်ပ်က မည်သည့် အကြောင်းကြားချက်ကိုမျှ ပို့စ်တင်မထားပါ"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"မသုံးသော အမျိုးအစားများကို ပြပါ"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"အက်ပ်အတွင်း နောက်ထပ်ဆက်တင်များ"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"မသုံးသော အမျိုးအစားများကို ပြရန်"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"မသုံးသော အမျိုးအစားများကို ဝှက်ရန်"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"စကားဝိုင်းများ"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"စကားဝိုင်းအားလုံး"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"စကားဝိုင်းအားလုံး"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ဦးစားပေး စကားဝိုင်းများ"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ဦးစားပေးစကားဝိုင်းများ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"မရှိ"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"ကြားဖြတ်နိုင်သည့် အက်ပ်များ"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ရွေးချယ်ထားသော အက်ပ်များ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"မရှိ"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"အားလုံး"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{မည်သည့်အက်ပ်မျှ ကြားမဖြတ်နိုင်ပါ}=1{{app_1} က ကြားဖြတ်နိုင်သည်}=2{{app_1} နှင့် {app_2} က ကြားဖြတ်နိုင်သည်}=3{{app_1}၊ {app_2} နှင့်{app_3} က ကြားဖြတ်နိုင်သည်}other{{app_1}၊ {app_2} နှင့် နောက်ထပ်အက်ပ် # ခုက ကြားဖြတ်နိုင်သည်}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (အလုပ်သုံး)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"တွက်ချက်နေသည်…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"အက်ပ်များကို အစားထိုးခွင့်ပြုပါ"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ကြားဖြတ်နိုင်သည့် အက်ပ်များ"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"နောက်ထပ်အက်ပ်များကို ရွေးပါ"</string>
@@ -3784,6 +3832,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"အကြိမ်ကြိမ်ခေါ်ဆိုသူများသည် ကြားဖြတ်နိုင်သည်"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"လူတိုင်းက ကြားဖြတ်နိုင်သည်"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"အကြိမ်ကြိမ်ခေါ်ဆိုသူများ"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ထပ်မံခေါ်ဆိုသူများကို ခွင့်ပြုပါ"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} အထိ တစ်နာရီအတွက်သာ နှိုးစက်များတွင် ပြောင်းမည်}other{{time} အထိ # နာရီအတွက်သာ နှိုးစက်များတွင် ပြောင်းမည်}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> အထိနိုးစက်သာလျှင် သို့ပြောင်းမည်"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"အမြဲတမ်း ကြားဖြတ်ရန်သို့ ပြောင်းမည်"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"အမည်ပြောင်းရန်"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"သင်္ကေတပြောင်းရန်"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"သင်္ကေတပြောင်းရန်"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"မုဒ်ပြင်ခြင်း"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"မုဒ် ပြုလုပ်ခြင်း"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"စိတ်ကြိုက်မုဒ်"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"မုဒ်အမည်"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ပြက္ခဒိန်အစီအစဉ်"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"အိပ်ရာဝင်ချိန် ပုံမှန်အစီအစဉ်"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ကားမောင်းနေစဉ်"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"အက်ပ်ဆက်တင်များ"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ရှိ အချက်အလက်နှင့် ဆက်တင်များ"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> က စီမံခန့်ခွဲခြင်း"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ကို ပိတ်မလား။"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"ပိတ်ထားပါက ဤမုဒ်ကို မည်သည့်အခါမှ အလိုအလျောက်ဖွင့်မည် မဟုတ်ပါ"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"ပိတ်ရန်"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ကို ဖွင့်မလား။"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ဤမုဒ်သည် ၎င်း၏ဆက်တင်များပေါ် အခြေခံ၍ အလိုအလျောက်ပွင့်နိုင်သည်"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ဖွင့်ရန်"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"ပုံမှန်အချိန်ဇယားအတိုင်း လုပ်ဆောင်သည့်မုဒ် သတ်မှတ်ပါ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"ပြက္ခဒိန်အစီအစဉ်နှင့် ဖိတ်ကြားချက်တုံ့ပြန်မှုများကို စင့်ခ်လုပ်ရန် မုဒ်သတ်မှတ်ပါ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"စိတ်အေးချမ်းသော အိပ်ချိန်ပုံမှန်အစီအစဉ် ပြုလုပ်ပါ။ နှိုးစက်သတ်မှတ်၍ စခရင်ကိုမှိန်ကာ အကြောင်းကြားချက်များ ပိတ်ပါ။"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"အနှောင့်အယှက်ကင်းကင်း အာရုံစိုက်ပြီး မောင်းနှင်နိုင်ရန်အတွက် လမ်းပေါ်တွင် ဘေးကင်းရေးကို ဦးစားပေးပါ"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"သတိပေးချက်"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"ပိတ်ရန်"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ဤကိရိယာအတွက် အကြံပြုချက် ပို့ရန်"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"နားကြပ်အိတ်"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ဘက်ထရီ"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ဆက်တင်များ အကန့်"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ဒက်စ်တော့ပုံစံ မဖြစ်မနေ ပြောင်းရန်"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ဒုတိယ မျက်နှာပြင်ပြသမှုများတွင် ဒက်စ်တော့ပုံစံ မဖြစ်မနေ စမ်းသပ်ရန်"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"အလွတ်ပုံစံဝင်းဒိုးများ ဖွင့်ခြင်း"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"အရန်ဖန်သားပြင်များတွင် အလွတ်ပုံစံဝင်းဒိုး ဖွင့်ရန်"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"အရွယ်မပြင်နိုင်သည်များကို ဝင်းဒိုးများစွာတွင် ဖွင့်ရန်"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"အရွယ်မပြင်နိုင်သည့် အက်ပ်များကို ဝင်းဒိုးများစွာတွင် ဖွင့်ခွင့်ပြုသည်"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"မဖြစ်မနေအမှောင်ချခြင်းကို အစားထိုးရန်"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"မိုဘိုင်းဒေတာ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"စက်ကို ပိုမိုကောင်းမွန်စွာ အသုံးပြုနိုင်ရန် Wi-Fi ပိတ်ထားသည့်တိုင် အက်ပ်နှင့် ဝန်ဆောင်မှုများက Wi-Fi ကွန်ရက်များကို အချိန်မရွေး ရှာကြည့်နိုင်သည်။ ဥပမာအားဖြင့် တည်နေရာကို အခြေခံသည့် လုပ်ဆောင်ချက်နှင့် ဝန်ဆောင်မှုများ ပိုမိုကောင်းမွန်လာစေရန် ၎င်းကို အသုံးပြုနိုင်သည်။ ၎င်းကို Wi-Fi ရှာဖွေခြင်း ဆက်တင်များတွင် ပြောင်းနိုင်သည်။"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"ပြောင်းရန်"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"ချိတ်ဆက်ထားသည်"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ယာယီချိတ်ဆက်ထားသည်"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> ကို ယာယီသုံးနေသည်"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"အက်ပ်ပင်ထိုးခြင်းကို သုံးရန်"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ဆော့ဖ်ဝဲရေးသူ ရွေးစရာများကို သုံးရန်"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ပုံနှိပ်ဝန်ဆောင်မှုကို သုံးရန်"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"အသုံးပြုသူအများအပြား ခွင့်ပြုရန်"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"အသုံးပြုသူ ပြောင်းခွင့်ပြုရန်"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ခွင့်ပြုရန်၊ အမျိုးစုံ၊ အသုံးပြုသူ၊ ခွင့်ပြုချက်၊ အများအပြား"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"အများအပြား၊ အသုံးပြုသူများ၊ ပရိုဖိုင်များ၊ လူများ၊ အကောင့်များ၊ ပြောင်းရန်၊ များစွာ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ကြိုးမဲ့ အမှားရှာပြင်ခြင်းကို သုံးပါ"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"တက်ဘလက် တပ်ဆင်ထားချိန် စခရင်တွင် မြင်ရမည့်အရာကို ရွေးနိုင်သည်။ စခရင်နားချိန်ပုံသုံးပါက သင်၏စက်က စွမ်းအင်ပိုသုံးနိုင်သည်။"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"စိတ်ကြိုက်လုပ်ရန်"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ကို စိတ်ကြိုက်လုပ်ရန်"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"freeform အကူအညီကို ဖွင့်ရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"အရန်ဖန်သားပြင်တွင် ဒက်စ်တော့မုဒ်ကို မဖြစ်မနေ အသုံးပြုရန်အတွက် ပြန်လည်စတင်ရန် လိုအပ်သည်။"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"အလွတ်ပုံစံ ဝင်းဒိုးပံ့ပိုးမှုကို ဖွင့်ရန်အတွက် ပြန်လည်စတင်ရမည်။"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"အလွတ်ပုံစံ ဝင်းဒိုးအသုံးပြုမှု ရနိုင်ခြင်းကို အပ်ဒိတ်လုပ်ရန် ပြန်လည်စတင်ရမည်။"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"အရန်ဖန်သားပြင်များတွင် အလွတ်ပုံစံ ဝင်းဒိုးများကို ဖွင့်ရန် ပြန်လည်စတင်ရမည်။"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ယခု ပြန်လည်စတင်ရန်"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"နောက်မှ ပြန်လည်စတင်ရန်"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ထောင့်စုံအော်ဒီယို"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"နှင်းဆီရောင်"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ပန်းခရမ်း"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ခရမ်း"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"ပြီးပြီ"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"သိမ်းရန်"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"မလုပ်တော့"</string>
     <string name="contrast_default" msgid="8918545965525226966">"မူရင်း"</string>
     <string name="contrast_medium" msgid="384414510709285811">"အသင့်အတင့်"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ဖွင့်"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ပိတ်"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ဖွင့်"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"အသံ %1$d%% ဘယ်၊ %2$d%% ညာ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"အသံ %1$d%% ညာ၊ %2$d%% ဘယ်"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"သင့်စက်အမည်ကို သင်ထည့်သွင်းထားသည့် အက်ပ်များက မြင်ရပါသည်။ ဘလူးတုသ်သုံးစက်များသို့ ချိတ်ဆက်သည့်အခါ၊ Wi-Fi ကွန်ရက်သို့ ချိတ်ဆက်သည့်အခါ (သို့) Wi-Fi ဟော့စပေါ့ ထုတ်လွှင့်သည့်အခါ တို့တွင်လည်း ၎င်းကို အခြားသူများက မြင်နိုင်ပါသည်။"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"သဒ္ဒါနည်းကျ လိင်အမျိုးအစား"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"သဒ္ဒါနည်းကျ လိင်အမျိုးအစား ရွေးရန်"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ထုတ်လွှင့်မှုကို နားထောင်ရန်"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ဖြင့် နားထောင်ရန် အသံ ထုတ်လွှင့်ခြင်း QR ကုဒ်ကို စကင်ဖတ်နိုင်သည်"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"မျှဝေစဉ် စကားဝှက်ကို ပြင်၍မရပါ။ စကားဝှက် ပြောင်းရန် အော်ဒီယို မျှဝေခြင်းကို ဦးစွာပိတ်ပါ။"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR ကုဒ် စကင်ဖတ်စနစ်"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ဆက်တင်များတွင် ရှာရန်"</string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 99d4d6e..40a2bfa 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Sengetid"</item>
-    <item msgid="4152450357280759894">"Kjøring"</item>
-    <item msgid="7096549258219399423">"Oppslukende"</item>
-    <item msgid="2760716776980432977">"Administrert"</item>
-    <item msgid="601734478369121764">"Stjerne"</item>
-    <item msgid="6243809315432780521">"Kalender"</item>
-    <item msgid="4913577903148415331">"Tid"</item>
-    <item msgid="3653377604690057780">"Teater"</item>
-    <item msgid="3843711267408385410">"Blomst"</item>
+    <item msgid="2750940760340557109">"Halvmåne"</item>
+    <item msgid="8513969636586738035">"Bil"</item>
+    <item msgid="957392343846370509">"Sinnet til en person"</item>
+    <item msgid="6734164279667121348">"Kalender"</item>
+    <item msgid="4139559120353528558">"Klokke"</item>
+    <item msgid="5157711296814769020">"Strandparasoll"</item>
+    <item msgid="6635328761318954115">"Telt"</item>
+    <item msgid="1711994778883392255">"Filmspole"</item>
+    <item msgid="9097658401859604879">"Spillkontroller"</item>
+    <item msgid="755931364157422565">"Håndvekt"</item>
+    <item msgid="8894207806795738429">"Person som kaster en ball"</item>
+    <item msgid="2274801572149555103">"Person som sparker"</item>
+    <item msgid="8795037201506843325">"Svømming"</item>
+    <item msgid="3558421426169430451">"Person som går tur"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Verktøy på verksted"</item>
+    <item msgid="4595330511709890409">"Koffert"</item>
+    <item msgid="8352738347856724389">"Stjerne"</item>
+    <item msgid="7082783098151998721">"Lotusblomst"</item>
+    <item msgid="5772220259409264724">"Leder"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 84470be..d92a441 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Satt på vent"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Ukjent"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Forhåndsvisning"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-kode"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Gjør mindre"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Gjør større"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alltid"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Innstillinger for høreapparater"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Snarvei, kompatibilitet med høreapparater"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Forhåndsinnstilling"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Ingen forhåndsinnstillinger er programmert av audiografen"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Kunne ikke oppdatere forhåndsinnstillingen"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Utenhet for lyd"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Om lyd"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Språkvalg for denne appen er ikke tilgjengelig fra innstillingene."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Språket kan være forskjellig fra språkene som er tilgjengelige i appen. Noen apper støtter muligens ikke denne innstillingen."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Velg språk for hver app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Systemet, apper og nettsteder bruker det første språket som støttes, av de foretrukne språkene dine."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Enheten, appene og nettstedet bruker det første språket som støttes, av språkene på listen over foretrukne språk.\n\nMange apper bruker også regionen fra det foretrukne språket ditt til å formatere datoer, tall og enheter. For å endre regionen, legg til et språk og velg foretrukket region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"For å velge et språk for hver app, gå til innstillingene for appspråk."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Finn ut mer om appspråk"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vil du bytte systemspråk til %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Av"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{På / # app har tilgang til posisjon}other{På / # apper har tilgang til posisjon}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laster inn …"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apper med tillatelsen for enheter i nærheten kan fastslå den relative posisjonen til tilkoblede enheter."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apper med tillatelsen for enheter i nærheten kan fastslå den relative posisjonen til tilkoblede enheter."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Posisjonstilgang er av for apper og tjenester. Enhetsposisjonen kan fremdeles sendes til utrykningspersonell når du ringer eller sender tekstmelding til et nødnummer."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Finn ut mer om posisjonsinnstillinger"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"For å bytte, gå til ChromeOS-innstillingene &gt; Personvern og sikkerhet &gt; Personverninnstillinger &gt; Posisjonstilgang"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansiktet og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansiktet, fingeravtrykket og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansiktet, fingeravtrykkene og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Opplåsing med Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Klokken er lagt til"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurer klokken"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Finn ut mer om klokkelåsen"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Legg til en klokke"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjern klokken"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Opplåsing med fingeravtrykk og ansiktslås"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Opplåsing med ansikt og fingeravtrykk"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansiktslås og opplåsing med fingeravtrykk for jobb"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfigurering kreves"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Ansikt og fingeravtrykk er lagt til"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Konfigurerer det private området …"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Kunne ikke konfigurere et privat område"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Prøv på nytt"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Avslutt"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Det private området er ikke tilgjengelig.\nSe mulige årsaker"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Se mulige årsaker"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Vil du velge en ny lås for det private området?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Du kan angi en ny lås for det private området eller bruke den samme låsen som du bruker til å låse opp enheten"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Bruk skjermlåsen"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vil du starte enheten på nytt?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljert NFC-loggføring er bare beregnet på utviklingsformål. Det inkluderes ekstra NFC-data i feilrapporter. Dette kan omfatte privat informasjon. Hvis du vil endre denne innstillingen, må du starte enheten på nytt."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Start på nytt"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"På"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Av"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ekstern skjerm"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Bruk ekstern skjerm"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Skjermoppløsning"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Ekstern skjerm er frakoblet"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotasjon"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Hvis rotasjon eller oppløsning endres, kan apper som kjører nå, stoppe"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Enheten må være koblet til en ekstern skjerm for å speile skjermen din"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Flere alternativer"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"speil"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Slå på trådløs skjermdeling"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Tilpasset"</string>
     <string name="brightness" msgid="6216871641021779698">"Lysstyrkenivå"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Tilpasset lysstyrke"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Om tilpasset lysstyrke"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Lysstyrken på skjermen justeres automatisk etter omgivelser og aktiviteter. Du kan flytte glidebryteren manuelt for lære tilpasset lysstyrke om preferansene dine."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"På"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Av"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Alternativer"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Tilgjengelighet"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Bruk skjermtastaturet"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Ha det på skjermen når det fysiske tastaturet er aktivt"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Filtertaster"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tastaturet ignorerer raskt gjentatte trykk på samme tast innenfor <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Hengende taster"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Justerer aktiveringstiden for tastetrykk til <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Bruk det fysiske tastaturet for å kontrollere musen."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Endre markørfyllstilen til gul"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Endre markørfyllstilen til rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Endre markørfyllstilen til blå"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Pekerstrøkstil"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Hvit"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Svart"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ingen"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Lær styreflatebevegelser"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"styreflate, styre flate, mus, markør, rull, sveip, høyreklikk, klikk, peker"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"høyreklikk, trykk"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Brukervalgt: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Tale"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Pekerhastighet"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Skala for pekeren"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Reduser skalaen for pekeren"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Øk skalaen for pekeren"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Spillkontroller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Viderekoble vibrering"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Send vibrering til spillkontrolleren hvis den er koblet til"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsett likevel"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Avbryt"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Innstillinger for forstørring"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Panorer med én finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Flytt lupen med 1 finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Dra 1 finger for å bevege deg rundt på skjermen."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Flytt forstørringsområdet ved å dra én finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Flytt forstørringsområdet ved å dra to fingre."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ikke tilgjengelig ved forstørring av bare en del av skjermen"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Trykk på en knapp for å zoome"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoom raskt inn på skjermen for å gjøre innhold større"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Slik zoomer du inn:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Bruk snarveien for å starte forstørring.&lt;br/&gt; {1,number,integer}. Trykk på skjermen.&lt;br/&gt; {2,number,integer}. Dra to fingre for å bevege deg rundt på skjermen.&lt;br/&gt; {3,number,integer}. Klyp med to fingre for å justere zoomen.&lt;br/&gt; {4,number,integer}. Bruk snarveien for å stoppe forstørring.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Slik zoomer du inn midlertidig:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Sørg for at forstørringstype er satt til fullskjerm.&lt;br/&gt; {1,number,integer}. Bruk snarveien for å starte forstørring.&lt;br/&gt; {2,number,integer}. Trykk og hold hvor som helst på skjermen.&lt;br/&gt; {3,number,integer}. Dra en finger for å bevege deg rundt på skjermen.&lt;br/&gt; {4,number,integer}. Løft fingeren for å stoppe forstørring."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Slik zoomer du inn:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Bruk snarveien for å starte forstørring.&lt;br/&gt; {1,number,integer}. Trykk på skjermen.&lt;br/&gt; {2,number,integer}. Dra 2 fingre for å bevege deg rundt på skjermen.&lt;br/&gt; {3,number,integer}. Klyp med 2 fingre for å justere zoomen.&lt;br/&gt; {4,number,integer}. Bruk snarveien for å stoppe forstørringen.&lt;br/&gt;&lt;br/&gt; Du kan også zoome inn midlertidig med mer."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Slik zoomer du inn:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Bruk snarveien for å starte forstørring.&lt;br/&gt; {1,number,integer}. Trykk på skjermen.&lt;br/&gt; {2,number,integer}. Dra 1 eller 2 fingre for å bevege deg rundt på skjermen.&lt;br/&gt; {3,number,integer}. Klyp med 2 fingre for å justere zoomen.&lt;br/&gt; {4,number,integer}. Bruk snarveien for å stoppe forstørringen.&lt;br/&gt;&lt;br/&gt; Du kan også zoome inn midlertidig med mer."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Når forstørrelse er slått på, kan du zoome inn på skjermen.\n\n"<b>"For å zoome"</b>", start forstørring og trykk hvor som helst på skjermen.\n"<ul><li>"Dra to eller flere fingre for å rulle"</li>\n<li>"Knip to eller flere fingre for å justere zoomen"</li></ul>\n\n<b>"For å zoome midlertidig"</b>", start forstørring og trykk og hold hvor som helst på skjermen.\n"<ul><li>"Dra for å bevege deg rundt på skjermen"</li>\n<li>"Løft fingeren for å zoome ut"</li></ul>\n\n"Du kan ikke zoome inn på tastaturet eller navigasjonsraden."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Side <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> av <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Snarvei via Tilgjengelighet-knappen"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Trykk på den svevende knappen"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Tilgjengelighetsbevegelse"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Trykk på Tilgjengelighet-knappen <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> nederst på skjermen. For å bytte mellom funksjoner, trykk og hold på Tilgjengelighet-knappen."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Sveip opp fra bunnen av skjermen med to fingre.\n\nFor å bytte mellom funksjoner, sveip opp med to fingre og hold."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Sveip opp fra bunnen av skjermen med tre fingre.\n\nFor å bytte mellom funksjoner, sveip opp med tre fingre og hold."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Sveip opp fra bunnen av skjermen. For å bytte mellom funksjoner, sveip opp og hold.}other{Sveip opp med # fingre fra bunnen av skjermen. For å bytte mellom funksjoner, sveip opp med # fingre og hold.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Flere alternativer"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Finn ut mer om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volumtaster"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volumtaster"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Trykk og hold inne begge volumtastene"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dobbelttrykk på skjermen med to fingre"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dobbelttrykk med %1$d fingre"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Trykk raskt på skjermen to ganger med %1$d fingre"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trippeltrykk"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Trykk raskt på skjermen %1$d ganger. Dette kan gjøre enheten tregere."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dobbelttrykk med %1$d fingre"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Trykk raskt på skjermen {0,number,integer} ganger med to fingre"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trippeltrykk på skjermen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trippeltrykk"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Trykk raskt på skjermen {0,number,integer} ganger. Denne snarveien kan gjøre enheten tregere"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avansert"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tilgjengelighet-knappen er satt til <xliff:g id="SERVICE">%1$s</xliff:g>. For å bruke forstørrelse, trykk på og hold inne Tilgjengelighet-knappen, og velg deretter forstørrelse."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Tilgjengelighetsbevegelsen er satt til <xliff:g id="SERVICE">%1$s</xliff:g>. For å bruke forstørring, sveip opp med to fingre fra bunnen av skjermen og hold. Deretter velger du forstørring."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Denne tjenesten fungerer ikke som den skal."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Hurtigtaster for tilgjengelighet"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Vis i hurtiginnstillingene"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rød-grønn"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rød-grønn"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rød-grønn – grønn er svak"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rød-grønn – rød er svak"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blå-gul"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gråtoner"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitet"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Svak grønn, deuteranomali"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Svak rød, protanomali"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Utilgjengelig for gråtonemodus eller når fargekorrigering er slått av"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomali"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomali"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Ekstra dimmet"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Ekstra dimmet skjerm"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Gul"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Vil du gi <xliff:g id="SERVICE">%1$s</xliff:g> full kontroll over enheten din?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> må"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Fordi en app skjuler tillatelsesforespørselen, kan ikke Innstillinger bekrefte svaret ditt."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ber om full kontroll over denne enheten. Tjenesten kan lese skjermen og handle på vegne av brukere med tilgjengelighetsbehov. Dette kontrollnivået er ikke passende for de fleste apper."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Full kontroll er passende for apper som hjelper deg med tilgjengelighetsbehov, men ikke for de fleste apper."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Se og kontroller skjermen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Den kan lese alt innhold på skjermen og vise innhold over andre apper."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Se og utfør handlinger"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore kommunikasjonen din med en app eller maskinvaresensor og kommunisere med apper på dine vegne."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillat"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Avvis"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå av"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ingen}=1{1 tidsplan er angitt}other{# tidsplaner er angitt}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ikke forstyrr"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioritetsmoduser"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Legg til en modus"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Reduser distraksjoner til et minimum, og ta kontroll på oppmerksomheten med moduser for søvn, jobb, kjøring og alt mulig annet."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Lag din egen modus"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Bli bare varslet av viktige personer og apper"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Angi en tidsplan"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Tidsplanen er basert på"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dag og klokkeslett"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"«9:00–17:00 på hverdager»"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalenderaktiviteter"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} er aktiv}=2{{mode_1} og {mode_2} er aktive}=3{{mode_1}, {mode_2} og {mode_3} er aktive}other{{mode_1}, {mode_2} og # til er aktive}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modus kan slås på automatisk}other{# moduser kan slås på automatisk}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"PÅ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ikke angitt"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Deaktivert"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Opprett en modus"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Egendefinert"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Slå på nå"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Slå av"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Fant ikke modusen"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Begrens forstyrrelser"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokker forstyrrelser og distraksjoner"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Konfigurer <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Slå på Ikke forstyrr"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmer og medielyder kan forstyrre"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Tidsplaner"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Slett tidsplaner"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Slett"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Gi nytt navn"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Slett"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vil du slette «<xliff:g id="MODE">%1$s</xliff:g>»-modus?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Endre"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Tidsplaner"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Tidsplan"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Slå på automatisk"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Legg til en kalender"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Bruk kalenderen"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Tidsplan"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Angi en tidsplan"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Tidspunkt for auto-påslåing"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Aktivitetsoversikt"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Slå på under aktiviteter for"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Der invitasjonssvaret er"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Tidsplan"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Tidsplan"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> t, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Tidsplan"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Tillat forstyrrelser som lager lyd"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokkér visuelle forstyrrelser"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Tillat visuelle signaler"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Varsler som kan nå deg"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Flere handlinger"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Varselsfiltre"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Flere innstillinger"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Av}=1{Av / 1 modus kan slås på automatisk}other{Av / # moduser kan slås på automatisk}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Visningsinnstillinger"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Visningsalternativer"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Gråtoner"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"slå på mørkt tema"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Bytt til at OS-et og appene foretrekker lys tekst på mørk bakgrunn, som kan være mer behagelig for øynene og gir betydelig batterisparing på noen enheter."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Ingen visningsendringer}=1{{effect_1}}=2{{effect_1} og {effect_2}}=3{{effect_1}, {effect_2} og {effect_3}}other{{effect_1}, {effect_2} og # andre}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Begrens hva du får varsler for"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Ingen avbrytelser blir filtrert bort"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Visningsalternativer for filtrerte varsler"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Når «Ikke forstyrr» er på"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Ingen lydvarsling"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"åpne varsel"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Tillat slumring av varsler"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Varselprikk på appikoner"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Varselspakker"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bobler"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bobler"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Lag boble for denne samtalen"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Denne appen støtter ikke utvidete innstillinger"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Flere innstillinger"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Flere innstillinger er tilgjengelige i denne appen"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Tilpassede varsler"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Bruk tilpassede varsler"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Når du får mange varsler på kort tid, reduserer telefonen volumet og minimerer forgrunnsvinduer på skjermen i opptil to minutter. Anrop, alarmer og prioriterte samtaler vibrerer, spiller av en lyd eller vises på skjermen fortsatt, og det er enkelt å finne alle varsler når du drar ned fra toppen av skjermen."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Varseldemping"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bruk varseldemping"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Når du får mange varsler på kort tid, reduserer enheten volumet og minimerer varsler i opptil to minutter. Anrop, alarmer og prioriterte samtaler berøres ikke. \n\nDu kan se varsler du får mens dempingen er aktiv, ved å dra ned fra toppen av skjermen."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Bruk for jobbprofiler"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Bruk for apper i jobbprofilen"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Hjelpetjenester for VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorier"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Annet"</string>
     <string name="no_channels" msgid="4716199078612071915">"Denne appen har ikke publisert noen varsler"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Vis kategorier som ikke brukes"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Flere innstillinger i appen"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Vis kategorier som ikke brukes"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Skjul kategorier som ikke brukes"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Samtaler"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Alle samtaler"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"alle samtaler"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioriterte samtaler"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioriterte samtaler"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ingen"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apper som kan forstyrre"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"De valgte appene"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ingen"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alle"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ingen apper kan forstyrre}=1{{app_1} kan forstyrre}=2{{app_1} og {app_2} kan forstyrre}=3{{app_1}, {app_2} og {app_3} kan forstyrre}other{{app_1}, {app_2} og # til kan forstyrre}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (jobb)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Beregner …"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillat at apper overstyrer"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apper som kan forstyrre"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Velg flere apper"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Ingenting kan forstyrre"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ingen kan forstyrre"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Noen personer kan forstyrre"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Gjentatte anrop kan forstyrre"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Alle personer kan forstyrre"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Gjentatte anrop"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tillat gjentatte anrop"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Endre til bare alarmer i én time frem til {time}}other{Endre til bare alarmer i # timer frem til {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Endre til Bare alarmer frem til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Bytt til Alltid forstyrr"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Gi nytt navn"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Endre ikonet"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Endre ikonet"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Rediger modusen"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Opprett en modus"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Egendefinert modus"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Modusnavn"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenderaktiviteter"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Sengetidsrutine"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Under kjøring"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Appinnstillinger"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informasjon og innstillinger i <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Administreres av <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Vil du slå av <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Denne modusen slås aldri på når den er slått av"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Slå av"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Vil du slå på <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Denne modusen kan slås på automatisk basert på innstillingene"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Slå på"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Angi en modus som følger en regelmessig tidsplan"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Angi en modus for å synkronisere med kalenderaktiviteter og svare på invitasjoner"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Lag en avslappende søvnrutine. Angi alarmer, demp skjermen og blokker varsler."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioriter sikkerhet på veien for fokusert kjøring uten distraksjoner"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokker distraksjoner og forstyrrelser fra enheten for å fokusere"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Fjern alle distraksjoner for å få et stille miljø"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Gi enhetsopplevelser og innstillinger personlig preg for forskjellige brukere"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimer distraksjoner ved å bare la viktige personer og apper nå deg"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Varsel"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Lukk"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Send tilbakemelding om enheten"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Innstillinger-panel"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Tvungen skrivebordsmodus"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Tvungen eksperimentell skrivebordsmodus på sekundære skjermer"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Slå på vinduer i fritt format"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Slå på vinduer i fritt format på sekundærskjermen"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Slå på apper som ikke kan endre størrelse, i flervindusmodus"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Tillater apper som ikke kan endre størrelse, i flervindusmodus"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Overstyr tving mørk"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobildata"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"For å forbedre brukeropplevelsen på enheten kan apper og tjenester søke etter wifi-nettverk når som helst – også når wifi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester. Du kan endre dette i innstillingene for wifi-skanning."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Endre"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Tilkoblet"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Koblet til midlertidig"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Bruker <xliff:g id="SUBNAME">%1$s</xliff:g> midlertidig"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Bruk festing av apper"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Bruk utvikleralternativer"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Bruk utskriftstjeneste"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Tillat flere brukere"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Tillat brukerbytte"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"tillat, flere, bruker, tillatelse, mange"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"flere, brukere, profiler, personer, kontoer, bytt, mange"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Bruk trådløs feilsøking"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Velg hva du ser på skjermen når nettbrettet er i dokken. Enheten kan bruke mer energi når en skjermsparer brukes."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Tilpass"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Tilpass <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"En omstart kreves for å slå på støtte for fritt format."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"En omstart kreves for å tvinge skrivebordmodus på sekundære skjermer."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"En omstart kreves for å slå på støtte for vinduer i fritt format."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"En omstart kreves for å oppdatere tilgjengeligheten for vinduer i fritt format."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"En omstart kreves for å slå på vinduer i fritt format på sekundærskjermer."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Start på nytt nå"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Start på nytt senere"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Romlig lyd"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Fiolett"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Ferdig"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Lagre"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Avbryt"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Standard"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Middels"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"På"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Av"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"På"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Lyd %1$d %% venstre, %2$d %% høyre"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Lyd %1$d %% høyre, %2$d %% venstre"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Enhetsnavnet ditt er synlig for apper du har installert. Det kan også ses av andre personer når du kobler til Bluetooth-enheter, kobler til et wifi-nettverk eller konfigurerer en wifi-sone."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatisk kjønn"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Velg grammatisk kjønn"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lytt til strømmen"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skann en QR-kode for en lydstrøm for å lytte med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kan ikke redigere passordet under deling. For å bytte passord, slå først av lyddelingen."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kodeskanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Søk i innstillingene"</string>
 </resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index 8e3f198..85f23f1 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"सुत्ने समय"</item>
-    <item msgid="4152450357280759894">"ड्राइभिङ"</item>
-    <item msgid="7096549258219399423">"इमर्सिभ"</item>
-    <item msgid="2760716776980432977">"व्यवस्थापन गरिएका"</item>
-    <item msgid="601734478369121764">"तारा"</item>
-    <item msgid="6243809315432780521">"पात्रो"</item>
-    <item msgid="4913577903148415331">"समय"</item>
-    <item msgid="3653377604690057780">"नाटकघर"</item>
-    <item msgid="3843711267408385410">"फूल"</item>
+    <item msgid="2750940760340557109">"अर्धचन्द्र"</item>
+    <item msgid="8513969636586738035">"कार"</item>
+    <item msgid="957392343846370509">"व्यक्तिको दिमाग"</item>
+    <item msgid="6734164279667121348">"पात्रो"</item>
+    <item msgid="4139559120353528558">"घडी"</item>
+    <item msgid="5157711296814769020">"समुद्री तटमा प्रयोग गरिने छाता"</item>
+    <item msgid="6635328761318954115">"पाल"</item>
+    <item msgid="1711994778883392255">"फिल्म रिल"</item>
+    <item msgid="9097658401859604879">"गेम कन्ट्रोलर"</item>
+    <item msgid="755931364157422565">"व्यायामशालामा प्रयोग गरिने डम्बेल"</item>
+    <item msgid="8894207806795738429">"बल फ्याँकिरहेको व्यक्ति"</item>
+    <item msgid="2274801572149555103">"किक हानिरहेको व्यक्ति"</item>
+    <item msgid="8795037201506843325">"पौडी"</item>
+    <item msgid="3558421426169430451">"पदयात्रा गरिरहेको व्यक्ति"</item>
+    <item msgid="7455070421232184932">"गल्फ"</item>
+    <item msgid="5841773092449126508">"वर्कसप प्रयोग गरिने औजारहरू"</item>
+    <item msgid="4595330511709890409">"ब्रिफकेस"</item>
+    <item msgid="8352738347856724389">"तारा"</item>
+    <item msgid="7082783098151998721">"कमल फूल"</item>
+    <item msgid="5772220259409264724">"सुपरिवेक्षक"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 7757e0e..e744a44 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"निलम्बित"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"अज्ञात"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"प्रिभ्यु"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR कोड"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"अझ सानो बनाउनुहोस्"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"अझ ठुलो बनाउनुहोस्"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"सधैँ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"श्रवण यन्त्रसम्बन्धी सेटिङ"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"सर्टकट, हियरिङ डिभाइस कम्प्याटिबिलिटी"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"पूर्व निर्धारित"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"तपाईंका अडियोलोजिस्टले कुनै पनि प्रिसेट तय गर्नुभएको छैन"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"प्रिसेट अपडेट गर्न सकिएन"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"अडियो आउटपुट"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"अडियो आउटपुटका बारेमा"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"सेटिङबाट यो एपका लागि भाषा चयन गर्न मिल्दैन।"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"यो भाषा एपमा उपलब्ध भाषाहरूभन्दा फरक हुन सक्छ। यो सेटिङले केही एपमा काम नगर्न सक्छ।"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"हरेक एपमा उक्त भाषा सेट गर्नुहोस्।"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"तपाईंका सिस्टम, एप र वेबसाइटहरूले तपाईंले रुचाएको भाषाको सूचीमा रहेको प्रयोग गर्न सकिने पहिलो भाषा प्रयोग गर्छन्।"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"तपाईंका डिभाइस, सिस्टम र वेबसाइटहरूले तपाईंले रुचाएको भाषाको सूचीमा रहेको प्रयोग गर्न सकिने पहिलो भाषा प्रयोग गर्छन्।\n\nथुप्रै एपहरूले मिति, सङ्ख्या र एकाइहरूको फर्म्याट निर्धारण गर्न तपाईंले रुचाएको भाषाको क्षेत्र पनि प्रयोग गर्छन्। आफ्नो क्षेत्र बदल्न कुनै भाषा हाल्नुहोस् अनि आफूले रुचाएको क्षेत्र छान्नुहोस्।"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"हरेक एपका हकमा बेग्लाबेग्लै भाषा चयन गर्न एपको भाषासम्बन्धी सेटिङमा जानुहोस्।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"एपका भाषाहरूका बारेमा थप जान्नुहोस्"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"सिस्टमको भाषा परिवर्तन गरी %s बनाउने हो?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"निष्क्रिय"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{अन छ / # वटा एपलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}other{अन छ / # वटा एपहरूलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड गर्दै…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"वरपर रहेका ब्लुटुथ चल्ने डिभाइसहरू खोज्ने अनुमति दिइएका एपहरूले कनेक्ट गरिएका डिभाइसहरूको सापेक्ष लोकेसन पत्ता लगाउन सक्छन्।"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"नजिकैका डिभाइसहरू खोज्ने अनुमति दिइएका एपहरूले कनेक्ट गरिएका डिभाइसहरूको सापेक्षिक लोकेसन पत्ता लगाउन सक्छन्।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"एप तथा सेवाहरूलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छैन। तपाईंले कुनै आपत्‌कालीन नम्बरमा कल गर्दा वा टेक्स्ट म्यासेज पठाउँदा भने आपत्‌कालीन सेवा प्रदान गर्ने निकायलाई तपाईंको डिभाइसको लोकेसन पठाइन सक्छ।"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"लोकेसन सेटिङका बारेमा थप जान्नुहोस्"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"परिवर्तन गर्न \"ChromeOS का सेटिङ &gt; गोपनीयता र सुरक्षा &gt; गोपनीयतासम्बन्धी सेटिङ &gt; लोकेसन एक्सेस\" मा जानुहोस्"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"अनुहार र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"अनुहार, फिंगरप्रिन्ट र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"अनुहार, फिंगरप्रिन्टहरू र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरिए"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"स्मार्ट वाच हालिएको छ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"आफ्नो स्मार्ट वाच सेटअप गर्नुहोस्"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"स्मार्ट वाच अनलक गर्ने सुविधाका बारेमा थप जान्नुहोस्"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"स्मार्ट वाच कनेक्ट गर्नुहोस्"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"स्मार्ट वाच डिस्कनेक्ट गर्नुहोस्"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फिंगरप्रिन्ट तथा फेस अनलक"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"फेस र फिंगरप्रिन्ट अनलक"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"कार्य प्रोफाइलका लागि फेस र फिंगरप्रिन्ट अनलक"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप गर्नु पर्ने हुन्छ"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"फेस तथा फिंगरप्रिन्टहरू थपिए"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"निजी स्पेस सेटअप गरिँदै छ…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"निजी स्पेस सेटअप गर्न सकिएन"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"फेरि प्रयास गर्नुहोस्"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"बाहिरिनुहोस्"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"निजी स्पेस उपलब्ध छैन।\nसम्भावित कारणहरू हेर्नुहोस्"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"सम्भावित कारणहरू हेर्नुहोस्"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"निजी स्पेसका लागि नयाँ लक चयन गर्ने हो?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"तपाईं निजी स्पेसका लागि मात्र नयाँ लक सेट गर्न वा तपाईंले आफ्नो डिभाइस अनलक गर्न प्रयोग गर्ने लक नै प्रयोग गर्न सक्नुहुन्छ"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"स्क्रिन लक प्रयोग गर्नुहोस्"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"डिभाइस रिस्टार्ट गर्ने हो?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC को विस्तृत लग राख्ने सुविधा सफ्टवेयर विकास गर्ने प्रयोजनका लागि मात्र बनाइएको हो। बग रिपोर्टहरूमा NFC का अतिरिक्त डेटा समावेश हुन्छन्। यी डेटामा निजी जानकारी पनि समावेश हुन सक्छन्। यो सेटिङ बदल्न आफ्नो डिभाइस रिस्टार्ट गर्नुहोस्।"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"रिस्टार्ट गर्नुहोस्"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"अन छ"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"अफ छ"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"बाह्य डिस्प्ले"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"बाह्य डिस्प्ले प्रयोग गर्नुहोस्"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"डिस्प्लेको रिजोल्युसन"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"बाह्य डिस्प्ले डिस्कनेक्ट गरिएको छ"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"रोटेसन"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"स्ट्यान्डर्ड"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"९०°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"१८०°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"२७०°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"तपाईंले रोटेसन वा रिजोल्युसन बदल्नुभयो भने हाल चलिरहेका एपहरू बन्द हुन सक्छन्"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"तपाईंको डिभाइस बाह्य डिस्प्लेमा कनेक्ट गरिएको छ भने मात्र डिभाइसको स्क्रिन मिरर गर्न सकिन्छ"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"थप विकल्पहरू"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"स्क्रिन मिरर गर्नुहोस्"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"वायरलेस प्रदर्शन सक्षम गर्नुहोस्"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"एड्याप्टिभ"</string>
     <string name="brightness" msgid="6216871641021779698">"चमकको स्तर"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"एड्याप्टिभ ब्राइटनेस"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"अनुकूलनयोग्य चमकका बारेमा"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"स्क्रिनको चमक तपाईंको वातावरण र गतिविधिअनुसार स्वतः समायोजन हुन्छ। तपाईं स्लाइडर सारेर एड्याप्टिभ ब्राइटनेसलाई तपाईंको रूची पहिचान गर्न मद्दत गर्न सक्नुहुन्छ।"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"सक्रिय छ"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"निष्क्रिय छ"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"विकल्पहरू"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"एक्सेसिबिलिटी सुविधा"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"फिजिकल किबोर्ड"</string>
-    <string name="show_ime" msgid="4334255501724746849">"अनस्क्रिन किबोर्ड प्रयोग गर्नुहोस्"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"फिजिकल किबोर्ड सक्रिय हुँदा यसलाई स्क्रिनमा राख्नुहोस्"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"बाउन्स की"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"किबोर्डले <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> मिलिसेकेन्डभित्र एउटै कीमा छिटो छिटो दोहोर्‍याएर थिचिएका खण्डमा बेवास्ता गर्छ"</string>
     <string name="slow_keys" msgid="2891452895499690837">"स्लो की"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> मिलिसेकेन्डमा एक्टिभेट गर्नका लागि कुनै की थिच्न लाग्ने समय समायोजन गर्छ"</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="2396247040177734245">"माउस नियन्त्रण गर्न भौतिक किबोर्ड प्रयोग गर्नुहोस्।"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"पोइन्टर फिलको शैली बदलेर पहेँलो बनाउनुहोस्"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"पोइन्टर फिलको शैली बदलेर गुलाबी बनाउनुहोस्"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"पोइन्टर फिलको शैली बदलेर निलो बनाउनुहोस्"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"पोइन्टर स्ट्रोकको शैली"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"सेतो"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"कालो"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"कुनै पनि होइन"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"टचप्याड इसाराहरूका बारेमा जानकारी"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ट्र्याकप्याड, ट्र्याक प्याड, माउस, कर्सर, स्क्रोल, स्वाइप, राइट क्लिक, क्लिक, पोइन्टर"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"राइट क्लिक, ट्याप"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"प्रयोगकर्ता चयन गरिएको: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"बोली"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"पोइन्टरको गति"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"पोइन्टरको स्केल"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"पोइन्टरको स्केल घटाउनुहोस्"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"पोइन्टरको स्केल बढाउनुहोस्"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"खेल नियन्त्रक"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"कम्पन रिडिरेक्ट गर्नुहोस्"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"जडान हुँदा खेलको नियन्त्रकमा कम्पन गराउनुहोस्"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"जे भए पनि जारी राख्नुहोस्"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"रद्द गर्नु…"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"म्याग्निफिकेसनसम्बन्धी सेटिङ"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"एउटा औंलाले प्यान गर्ने सुविधा"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"एउटा औँलाले म्याग्निफायर सार्नुहोस्"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"स्क्रिनमा यताउता सार्न एउटा औँलाले ड्र्याग गर्नुहोस्"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"एउटा औंला ड्र्याग गरेर जुम इन गरिएको क्षेत्र यताउता सार्नुहोस्।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"दुई औंला ड्र्याग गरेर जुम इन गरिएको क्षेत्र यताउता सार्नुहोस्।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"स्क्रिनको कुनै भाग मात्र जुम इन गरेका बेला यो टगल उपलब्ध हुँदैन"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"जुम गर्न बटनमा ट्याप गर्नुहोस्"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"तपाईं सामग्री अझ ठुलो बनाउन चाहनुहुन्छ भने द्रुत रूपमा स्क्रिनमा जुम इन गर्नुहोस्"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;तपाईं जुम इन गर्न चाहनुहुन्छ भने निम्न कार्य गर्नुहोस्:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. जुम इन गर्ने सुविधा प्रयोग गर्न थाल्न सर्टकट प्रयोग गर्नुहोस्&lt;br/&gt; {1,number,integer}. स्क्रिनमा ट्याप गर्नुहोस्&lt;br/&gt; {2,number,integer}. स्क्रिनमा सामग्री यताउता सार्न २ वटा औँलाले ड्र्याग गर्नुहोस्&lt;br/&gt; {3,number,integer}. जुम इन वा जुम आउट गर्न २ वटा औँलाले पिन्च गर्नुहोस्&lt;br/&gt; {4,number,integer}. जुम इन गर्ने सुविधा बन्द गर्न सर्टकट प्रयोग गर्नुहोस्&lt;br/&gt;&lt;br/&gt; &lt;b&gt;तपाईं केही समयका लागि जुम इन गर्न चाहनुहुन्छ भने निम्न कार्य गर्नुहोस्:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. जुम इनको प्रकार फुल स्क्रिन तय गरिएको छ भन्ने कुरा सुनिश्चित गर्नुहोस्&lt;br/&gt; {1,number,integer}. जुम इन गर्ने सुविधा प्रयोग गर्न थाल्न सर्टकट प्रयोग गर्नुहोस्&lt;br/&gt; {2,number,integer}. स्क्रिनको कुनै भागमा टच एण्ड होल्ड गर्नुहोस्&lt;br/&gt; {3,number,integer}. स्क्रिनमा सामग्री यताउता सार्न औँलाले ड्र्याग गर्नुहोस्&lt;br/&gt; {4,number,integer}. जुम इन गर्ने सुविधा बन्द गर्न औँला उठाउनुहोस्"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;जुम इन गर्न:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. जुम इन गर्न थाल्न सर्टकट प्रयोग गर्नुहोस्&lt;br/&gt; {1,number,integer}. स्क्रिनमा ट्याप गर्नुहोस्&lt;br/&gt; {2,number,integer}. स्क्रिनमा यताउता सार्न २ वटा औँलाले ड्र्याग गर्नुहोस्&lt;br/&gt; {3,number,integer}. जुमको स्तर मिलाउन २ वटा औँलाले पिन्च गर्नुहोस्&lt;br/&gt; {4,number,integer}. जुम इन गर्न छाड्न सर्टकट प्रयोग गर्नुहोस्&lt;br/&gt;&lt;br/&gt; तपाईं केही समयका लागि जुम इन गर्नेलगायतका अन्य कार्यहरू गर्न पनि सक्नुहुन्छ।"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;जुम इन गर्न:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. जुम इन गर्न थाल्न सर्टकट प्रयोग गर्नुहोस्&lt;br/&gt; {1,number,integer}. स्क्रिनमा ट्याप गर्नुहोस्&lt;br/&gt; {2,number,integer}. स्क्रिनमा यताउता सार्न एउटा वा २ वटा औँलाले ड्र्याग गर्नुहोस्&lt;br/&gt; {3,number,integer}. जुमको स्तर मिलाउन २ वटा औँलाले पिन्च गर्नुहोस्&lt;br/&gt; {4,number,integer}. जुम इन गर्न छाड्न सर्टकट प्रयोग गर्नुहोस्&lt;br/&gt;&lt;br/&gt; तपाईं केही समयका लागि जुम इन गर्नेलगायतका अन्य कार्यहरू गर्न पनि सक्नुहुन्छ।"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"म्याग्निफिकेसन सुविधा सक्रिय गरेपछि, तपाईं आफ्नो स्क्रिनमा जुम इन गर्न सक्नुहुन्छ।\n\n"<b>"जुम गर्न"</b>", म्याग्निफिकेसन सुविधा सुरु गर्नुहोस्, त्यसपछि स्क्रिनको कुनै पनि भागमा ट्याप गर्नुहोस्।\n"<ul><li>"स्क्रोल गर्न २ वा सोभन्दा बढी औँलाले ड्र्याग गर्नुहोस्"</li>\n<li>"जुम समायोजन गर्न २ वा सोभन्दा बढी औँलाले पिन्च गर्नुहोस्"</li></ul>\n\n<b>"केहीबेरका लागि जुम गर्न"</b>", म्याग्निफिकेसन सुविधा सुरु गर्नुहोस्, त्यसपछि स्क्रिनको कुनै पनि भागमा केहीबेर छोइरहनुहोस्।\n"<ul><li>"स्क्रिनमा यताउता जान ड्र्याग गर्नुहोस्"</li>\n<li>"जुम आउट गर्न औँला उचाल्नुहोस्"</li></ul>\n\n"तपाईं किबोर्ड वा नेभिगेसन पट्टीमा जुम इन गर्न सक्नुहुन्न।"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> मध्ये <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> औँ पृष्ठ"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"एक्सेसिबिलिटी बटनको सर्टकट"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"२ वटा औँलाले स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान २ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा टच एण्ड होल्ड गर्नुहोस्।"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"३ वटा औँलाले स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान ३ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा टच एण्ड होल्ड गर्नुहोस्।"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{स्क्रिनको फेदबाट माथितिर स्वाइप गर्नुहोस्। एउटा सुविधाबाट अर्को सुविधामा जान माथितिर स्वाइप गर्नुहोस् र होल्ड गर्नुहोस्।}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"स्क्रिनमा दुई वटा औँलाले डबल ट्याप गर्नुहोस्"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"स्क्रिनमा %1$d पटक छिटो छिटो ट्याप गर्नुहोस्। तपाईंले यसो गर्नुभयो भने तपाईंको डिभाइस ढिलो चल्न सक्छ।"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-औँलाले डबल ट्याप"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"स्क्रिनमा दुई वटा औँलाले {0,number,integer} पटक छिटो छिटो ट्याप गर्नुहोस्"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रिनमा तीन पटक ट्याप गर्नुहोस्"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ट्रिपल ट्याप"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रिनमा द्रुत रूपमा {0,number,integer} पटक ट्याप गर्नुहोस्। यो सर्टकट प्रयोग गर्दा तपाईंको डिभाइस ढिलो चल्न सक्छ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"उन्नत"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"पहुँच बटनलाई <xliff:g id="SERVICE">%1$s</xliff:g> मा सेट गरिएको छ। म्याग्निफिकेसन प्रयोग गर्नाका लागि पहुँच बटनलाई केहीबेर छोइरहनुहोस् र त्यसपछि म्याग्निफिकेसन चयन गर्नुहोस्।"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"पहुँचको इसारा सेट गरी <xliff:g id="SERVICE">%1$s</xliff:g> बनाइयो। म्याग्निफिकेसन प्रयोग गर्न दुई वटा औँलाले स्क्रिनको फेदबाट माथितिर स्वाइप गरी थिचिराख्नुहोस्। त्यसपछि म्याग्निफिकेसन चयन गर्नुहोस्।"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"यो सेवाले राम्ररी काम गरिरहेको छैन।"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"एक्सेसिबिलिटी सर्टकट"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"द्रुत सेटिङमा देखाउनुहोस्"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"रातो-हरियो"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"रातो-हरियो"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"रातो-हरियो, हरियो रङ ठम्याउन नसकिने समस्या"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"रातो-हरियो, रातो रङ ठम्याउन नसकिने समस्या"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"निलो-पहेँलो"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ग्रेस्केल"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"सघनता"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"हरियो रङ ठम्याउन नसक्ने समस्या, ड्युटेरानोमेली"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"रातो रङ ठम्याउन नसक्ने समस्या, प्रोटानोमेली"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ग्रेस्केल मोड वा रङ सच्याउने सुविधा अफ हुँदा यो प्रयोग गर्न मिल्दैन"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ड्युटेरानोमेली"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"प्रोटानोमेली"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ट्रिटानोमेली"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"अझै मधुरो"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"स्क्रिन अझै मधुरो बनाउनुहोस्"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"सायन"</string>
     <string name="color_yellow" msgid="5957551912912679058">"पहेँलो"</string>
     <string name="color_magenta" msgid="8943538189219528423">"म्याजेन्टा"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई आफ्नो डिभाइस पूर्ण रूपमा नियन्त्रण गर्न दिने हो?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई आवश्यक:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"एपले अनुमति अनुरोधलाई अस्पष्ट मानिरहेको हुनाले, सेटिङहरूलले तपाईंको प्रतिक्रियालाई प्रमाणित गर्न सक्दैनन्।"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ले यो डिभाइस पूर्ण रूपमा नियन्त्रण गर्ने अनुमति माग्दै छ। यो सेवाले स्क्रिनमा भएका जानकारी पढ्न तथा पहुँचसम्बन्धी आवश्यकता भएका प्रयोगकर्ताहरूका तर्फबाट कारबाही गर्न सक्छ। धेरैजसो एपका हकमा यो स्तरको नियन्त्रण उपयुक्त हुँदैन।"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"तपाईंका विशेष आवश्यकतामा सहयोग गर्ने एपमाथि पूर्ण नियन्त्रण गर्न दिनु उपयुक्त हुन्छ तर अधिकांश एपका हकमा यस्तो नियन्त्रण उपयुक्त हुँदैन।"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"स्क्रिन हेर्नुहोस् र नियन्त्रण गर्नुहोस्"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"यसले स्क्रिनमा देखिने सबै सामग्री पढ्न सक्छ र अन्य एपहरूमा उक्त सामग्री देखाउन सक्छ।"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"कारबाहीहरू हेर्नुहोस् र तिनमा कार्य गर्नुहोस्"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यसले कुनै एप वा हार्डवेयर सेन्सरसँग तपाईंले गर्ने अन्तर्क्रिया ट्र्याक गर्न सक्छ र तपाईंका तर्फबाट एपहरूसँग अन्तर्क्रिया गर्न सक्छ।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दिनुहोस्"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नदिनुहोस्"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"अफ गर्नुहोस्"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{कुनै पनि समयतालिका बनाइएको छैन}=1{एउटा समयतालिका बनाइएको छ}other{# वटा समयतालिका बनाइएको छ}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"बाधा नपुऱ्याउनुहोस्"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"महत्त्वपूर्ण मोडहरू"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"मोड हाल्नुहोस्"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"सुत्ने, काम गर्ने, सवारी साधन चलाउनेलगायतका कार्यहरू गर्नका निम्ति मोडहरू सेट गरेर अवरोधहरू कम गर्नुहोस् र आफ्नो ध्यानलाई आफ्नो काबुमा राख्नुहोस्।"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"आफ्नै मोड बनाउनुहोस्"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"महत्त्वपूर्ण मान्छे र एपका सूचना मात्र प्राप्त गर्नुहोस्"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"समयतालिका सेट गर्नुहोस्"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"निम्न कुराका आधारमा समयतालिका सेट गर्नुहोस्"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"दिन र समय"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"सप्ताहान्तबाहेकका दिन बिहान ९ देखि साँझ ५ बजेसम्म\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"पात्रोमा सेट गरिएका कार्यक्रमहरू"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} सक्रिय छ}=2{{mode_1} र {mode_2} सक्रिय छन्}=3{{mode_1}, {mode_2} र {mode_3} सक्रिय छन्}other{{mode_1}, {mode_2} र अरू # वटा मोड सक्रिय छन्}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{एउटा मोड स्वतः अन हुन सक्छ}other{# वटा मोड स्वतः अन हुन सक्छन्}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"अन छ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"सेट गरिएको छैन"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"अफ गरिएको छ"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"मोड बनाउनुहोस्"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"कस्टम"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"अहिले नै अन गर्नुहोस्"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"अफ गर्नुहोस्"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"मोड भेटिएन"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"अवरोधहरू सीमित पार्नुहोस्"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"अवरोधहरू ब्लक गर्नुहोस्"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> सेटअप गर्नुहोस्"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"बाधा नपुऱ्याउनुहोस् नामक मोडलाई अन गर्नुहोस्"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"अलार्म तथा मिडियाका आवाजहरूले अवरोध गर्न सक्छन्"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"समयतालिकाहरू"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"समयतालिकाहरू मेट्नुहोस्"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"मेट्नुहोस्"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"नाम बदल्नुहोस्"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"मेटाउनुहोस्"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" मोड मेटाउने हो?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"सम्पादन गर्नुहोस्"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"समयतालिकाहरू"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"समयतालिका"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"स्वतः अन गर्नुहोस्"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"कुनै पात्रो हाल्नुहोस्"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"आफ्नो पात्रो प्रयोग गर्नुहोस्"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"समयतालिका"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"समयतालिका सेट गर्नुहोस्"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"स्वतः अन गरिने समय"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"कार्यक्रमको समयतालिका"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"कार्यक्रम भइरहेका बेला अन गर्नुहोस्"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"निम्तोको जवाफ यस्तो आउँदा"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"समयतालिका सेट गर्नुहोस्"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"समयतालिका"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> घण्टा, <xliff:g id="MINUTES">%2$d</xliff:g> मिनेट"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"समयतालिका"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"साउन्डसहित आउने कुरालाई अनुमति दिनुहोस्"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"दृश्य सम्बन्धी बाधालाई रोक्नु"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"सङ्केतहरूलाई देखिन दिनुहोस्"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"तपाईंले प्राप्त गर्न सक्ने नोटिफिकेसनहरू"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"अतिरिक्त कारबाहीहरू"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"नोटिफिकेसन फिल्टरहरू"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"थप सेटिङ"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{अफ छ}=1{अफ छ / एउटा मोड स्वतः अन हुन सक्छ}other{अफ छ / # वटा मोड स्वतः अन हुन सक्छन्}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"डिस्प्लेसम्बन्धी सेटिङ"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"डिस्प्लेसम्बन्धी विकल्पहरू"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ग्रेस्केल"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"\"अँध्यारो थिम\" अन गर्नुहोस्"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"अँध्यारो ब्याकग्राउन्डमा हल्का रङको टेक्स्टलाई प्राथमिकता दिन OS र एपहरू अदलबदल गर्नुहोस्। तपाईंले यसो गर्नुभयो भने तपाईंको आँखामा धेरै असर पर्दैन र यसले केही डिभाइसहरूको ब्याट्री उल्लेख्य रूपमा बचत गर्छ।"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{डिस्प्लेमा कुनै पनि परिवर्तन गरिएको छैन}=1{{effect_1}}=2{{effect_1} र {effect_2}}=3{{effect_1}, {effect_2} र {effect_3}}other{{effect_1}, {effect_2} र थप # वटा}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"तपाईंलाई सूचित गर्न सक्ने कुरा सीमित गर्नुहोस्"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"कुनै पनि अवरोध फिल्टर गरिँदैन"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"फिल्टर गरिएका नोटिफिकेसनसम्बन्धी विकल्पहरू देखाउनुहोस्"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"बाधा नपुऱ्याउनुहोस् मोड अन हुँदा"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"सूचना आउँदा साउन्ड नआओस्"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"सूचना खोल्नुहोस्"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"सूचना स्नुज गर्न दिनुहोस्"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"एपको आइकनमा देखिने नोटिफिकेसन डट"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"नोटिफिकेसन बन्डलहरू"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"बबलहरू"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"बबलहरू"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"यो वार्तालाप बबलमा देखाउनुहोस्"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"एड्याप्टिभ नोटिफिकेसन"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"एड्याप्टिभ नोटिफिकेसन प्रयोग गर्नुहोस्"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"तपाईंले छोटो समयमा धेरै नोटिफिकेसन प्राप्त गर्दा तपाईंको फोनले बढीमा दुई मिनेटसम्म भोल्युम घटाउँछ र स्क्रिनमा कम पप-अप देखाउँछ। तर कल आउँदा, अलार्म बज्दा र महत्त्वपूर्ण वार्तालापसम्बन्धी नोटिफिकेसन प्राप्त हुँदा भने फोन भाइब्रेट हुन्छ, साउन्ड बज्छ वा स्क्रिनमा उक्त नोटिफिकेसन देखिन्छ र तपाईं स्क्रिनको सिरानबाट तलतिर स्वाइप गरेर सजिलैसँग सबै नोटिफिकेसन हेर्न सक्नुहुन्छ।"</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_work" msgid="8823596456640216391">"कार्य प्रोफाइलहरूमा लागू गर्नुहोस्"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"कार्य प्रोफाइलका एपहरूमा लागू गर्नुहोस्"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR का सहायक सेवाहरू"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"कोटिहरू"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"अन्य"</string>
     <string name="no_channels" msgid="4716199078612071915">"यो एपले कुनै पनि सूचना पोस्ट गरेको छैन"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"प्रयोग नगरिएका कोटीहरू देखाउनुहोस्"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"एपका अतिरिक्त सेटिङहरू"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"प्रयोग नगरिएका कोटीहरू देखाउनुहोस्"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"प्रयोग नगरिएका कोटीहरू लुकाइयोस्"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"वार्तालापहरू"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"सबै वार्तालापहरू"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"सबै वार्तालापहरू"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"महत्वपूर्ण वार्तालापहरू"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"महत्त्वपूर्ण वार्तालापहरू"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"कुनै पनि होइन"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"बाधा पुऱ्याउने अनुमति दिइएका एपहरू"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"चयन गरिएका एपहरू"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"कुनै पनि होइन"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"सबै"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{कुनै पनि एपले बाधा पुर्‍याउन सक्दैन}=1{{app_1} ले बाधा पुर्‍याउन सक्छ}=2{{app_1} र {app_2} ले बाधा पुर्‍याउन सक्छन्}=3{{app_1}, {app_2} र {app_3} ले बाधा पुर्‍याउन सक्छन्}other{{app_1}, {app_2} र अरू # एपले बाधा पुर्‍याउन सक्छन्}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (काम)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"हिसाब गरिँदै छ…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"एपहरूलाई ओभरराइड गर्ने अनुमति दिनुहोस्"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"अफ गर्न सक्ने एपहरू"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"थप एपहरू चयन गर्नुहोस्"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"दोहोर्‍याएर कल गर्ने व्यक्तिहरूले बाधा पुर्‍याउन सक्छन्"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"सबै मान्छेहरू अवरोध गर्न सक्छन्"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"कलरहरू दोरोर्‍याउनुहोस्"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"धेरै कल गर्ने व्यक्तिहरू"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} सम्म एक घण्टाका लागि मोड बदलेर \"अलार्महरू मात्र\" बनाउनुहोस्}other{{time} सम्म # घण्टाका लागि मोड बदलेर \"अलार्महरू मात्र\" बनाउनुहोस्}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> सम्मको लागि मात्र अलार्म परिवर्तन गर्नुहोस्"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"सधैं अवरोध गर्ने गरी परिवर्तन गर्नुहोस्"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"नाम बदल्नुहोस्"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"आइकन बदल्नुहोस्"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"आइकन बदल्नुहोस्"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"मोड परिवर्तन गर्नुहोस्"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"मोड बनाउनुहोस्"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"कस्टम मोड"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"मोडको नाम"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"पात्रोमा सेट गरिएका कार्यक्रमहरू"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"सुत्ने समयको रुटिन"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"सवारी साधन चलाइरहेका बेला"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"एपका सेटिङ"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> मा रहेका जानकारी तथा सेटिङ"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ले व्यवस्थापन गरेको"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> अफ गर्ने हो?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"यो सुविधा अफ गरिएका बेला यो मोड कहिल्यै पनि अन गरिने छैन"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"अफ गर्नुहोस्"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> अन गर्ने हो?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"यो मोड यसका सेटिङ आधारमा स्वतः अन हुन सक्छ"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"अन गर्नुहोस्"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"नियमित रुटिन पालना गर्ने मोड सेट गर्नुहोस्"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"पात्रोमा सेट गरिएका कार्यक्रम र निम्तोका जवाफसहित सिंक गर्न कुनै मोड सेट गर्नुहोस्"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"शान्त निद्रासम्बन्धी रुटिन डिजाइन गर्नुहोस्। अलार्महरू सेट गर्नुहोस्, स्क्रिन मधुरो बनाउनुहोस् र नोटिफिकेसनहरू ब्लक गर्नुहोस्।"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ध्यान केन्द्रित गरी निर्बाध रूपमा गाडी चलाउन सडकमा सुरक्षालाई प्राथमिकता दिनुहोस्"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"चेतावनी"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"बन्द गर्नुहोस्"</string>
     <string name="device_feedback" msgid="5351614458411688608">"डिभाइसका बारेमा प्रतिक्रिया पठाउनुहोस्"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"खोल"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ब्याट्री"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"सेटिङहरू नामक प्यानल"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"बलपूर्वक डेस्कटप मोड लागू गर्नुहोस्"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"सहायक डिस्प्लेमा प्रयोगात्मक डेस्कटप मोड बलपूर्वक लागू गर्नुहोस्"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"फ्रिफर्म विन्डोहरू अन गर्नुहोस्"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"दोस्रो डिस्प्लेमा फ्रिफर्म विन्डो अन गर्नुहोस्"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"एउटै विन्डोमा नअट्ने एपहरू एकभन्दा बढी विन्डोमा खोल्न दिइयोस्"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"विन्डोको आकार मिलाउन नसकिने एपहरू एकभन्दा बढी विन्डोमा खोल्न दिइयोस्"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"\'फोर्स डार्क\' ओभरराइड गर्नुहोस्"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"मोबाइल डेटा"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"डिभाइस प्रयोगको अनुभवमा सुधार गर्न, एप तथा सेवाहरूले अझै पनि जुनसुकै बेला (Wi‑Fi अफ भएका बेलामा पनि) Wi‑Fi नेटवर्क खोज्न सक्छन्। यसलाई लोकेसनमा आधारित सुविधा तथा सेवाहरूमा सुधार गर्ने जस्ता कार्यहरू गर्नका लागि प्रयोग गर्न सकिन्छ। तपाईं यसलाई Wi-Fi स्क्यानिङका सेटिङमा गई परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"बदल्नुहोस्"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"इन्टरनेटमा कनेक्ट गरिएको छ"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"यसमा केही समयका लागि कनेक्ट गरिएको हो"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"केही समयका लागि <xliff:g id="SUBNAME">%1$s</xliff:g> प्रयोग गरिँदै छ"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"\"एप पिनिङ\" प्रयोग गर्नुहोस्"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"\'विकासकर्ता विकल्पहरू\' प्रयोग गर्नुहोस्"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"प्रिन्ट सेवा चलाउनुहोस्"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"एकभन्दा बढी व्यक्तिलाई प्रयोग गर्न दिनुहोस्"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"प्रयोगकर्ता बदल्न दिनुहोस्"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"अनुमति दिनुहोस्, एकभन्दा बढी, प्रयोगकर्ता, अनुमति, धेरै"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"एकभन्दा बढी, प्रयोगकर्ता, प्रोफाइल, मान्छे, खाता, स्विच, धेरै"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"\'वायरलेस डिबगिङ\' सुविधा प्रयोग गर्नुहोस्"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"तपाईंको ट्याब्लेट डक गरिएका बेला तपाईंको डिभाइसमा देखाइनु पर्ने कुराहरू छान्नुहोस्। स्क्रिन सेभर प्रयोग गरिएका बेला तपाईंको डिभाइसले अरू बेलाको तुलनामा बढी ब्याट्री खपत गर्न सक्छ।"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"कस्टमाइज गर्नुहोस्"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> कस्टमाइज गर्नुहोस्"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"फ्रिफर्म मोड अन गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"सहायक डिस्प्लेहरूमा डेस्कटप मोड बलपूर्वक लागू गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"फ्रिफर्म विन्डो प्रयोग गर्ने सुविधा अन गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"फ्रिफर्म विन्डोको उपलब्धता अपडेट गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"सहायक डिस्प्लेहरूमा फ्रिफर्म विन्डो अन गर्न रिबुट गर्नु पर्ने हुन्छ।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"अहिले नै रिबुट गर्नुहोस्"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"पछि रिबुट गर्नुहोस्"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"स्पेशियल अडियो"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"गुलाबी रङ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"मजेन्टा"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"बैजनी रङ"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"सम्पन्न भयो"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"सेभ गर्नुहोस्"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"रद्द गर्नुहोस्"</string>
     <string name="contrast_default" msgid="8918545965525226966">"डिफल्ट"</string>
     <string name="contrast_medium" msgid="384414510709285811">"मध्यम"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"अन छ"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"अफ छ"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"अन छ"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"अडियो %1$d%% बायाँ, %2$d%% दायाँ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"अडियो %1$d%% दायाँ, %2$d%% बायाँ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"तपाईंका डिभाइसमा इन्स्टल गरिएका एपहरूले तपाईंको डिभाइसको नाम हेर्न सक्छन्। तपाईंले ब्लुटुथ चल्ने डिभाइसमा कनेक्ट गर्दा, कुनै Wi-Fi नेटवर्कमा कनेक्ट गर्दा वा कुनै Wi-Fi हटस्पट सेटअप गर्दा अरू मान्छेहरूले पनि डिभाइसको नाम देख्न सक्छन्।"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ग्रामाटिकल जेन्डर"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ग्रामाटिकल जेन्डर चयन गर्नुहोस्"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"स्ट्रिम सुन्नुहोस्"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सँग अडियो स्ट्रिम सुन्न उक्त स्ट्रिमको QR कोड स्क्यान गर्नुहोस्"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"अडियो सेयर गरिरहेका बेला पासवर्ड बदल्न मिल्दैन। पासवर्ड बदल्न सर्वप्रथम अडियो सेयर गर्ने सुविधा अफ गर्नुहोस्।"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR कोड स्क्यानर"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"सेटिङ खोज्नुहोस्"</string>
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 7c14907..50a8947 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Bedtijd"</item>
-    <item msgid="4152450357280759894">"Autorijden"</item>
-    <item msgid="7096549258219399423">"Immersief"</item>
-    <item msgid="2760716776980432977">"Beheerd"</item>
-    <item msgid="601734478369121764">"Ster"</item>
-    <item msgid="6243809315432780521">"Agenda"</item>
-    <item msgid="4913577903148415331">"Tijd"</item>
-    <item msgid="3653377604690057780">"Theater"</item>
-    <item msgid="3843711267408385410">"Bloem"</item>
+    <item msgid="2750940760340557109">"Halvemaan"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Iemands gedachten"</item>
+    <item msgid="6734164279667121348">"Agenda"</item>
+    <item msgid="4139559120353528558">"Klok"</item>
+    <item msgid="5157711296814769020">"Parasol"</item>
+    <item msgid="6635328761318954115">"Tent"</item>
+    <item msgid="1711994778883392255">"Filmrol"</item>
+    <item msgid="9097658401859604879">"Gamecontroller"</item>
+    <item msgid="755931364157422565">"Dumbbell"</item>
+    <item msgid="8894207806795738429">"Persoon die een bal gooit"</item>
+    <item msgid="2274801572149555103">"Persoon die schopt"</item>
+    <item msgid="8795037201506843325">"Zwemmen"</item>
+    <item msgid="3558421426169430451">"Persoon die wandelt"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Werkplaatsgereedschap"</item>
+    <item msgid="4595330511709890409">"Koffertje"</item>
+    <item msgid="8352738347856724389">"Ster"</item>
+    <item msgid="7082783098151998721">"Lotusbloem"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 18f5506..3efcd2a 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Opgeschort"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Onbekend"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Voorbeeld"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Verkleinen"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Vergroten"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Altijd"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Instellingen voor hoortoestel"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Sneltoets, geschiktheid voor hoortoestellen"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Voorinstelling"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Geen voorinstellingen geprogrammeerd door je audioloog"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Kan voorinstelling niet updaten"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio-uitvoer"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Over audio-uitvoer"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Taalselectie voor deze app is niet beschikbaar via Instellingen."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"De taal kan verschillen van de beschikbare talen in de app. Sommige apps ondersteunen deze instelling mogelijk niet."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Stel de taal in voor elke app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Je systeem, apps en websites gebruiken de eerste ondersteunde taal uit je voorkeurstalen."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Je apparaat, apps en websites gebruiken de eerste ondersteunde taal uit je lijst met voorkeurstalen.\n\nVeel apps gebruiken ook de regio van je voorkeurstaal voor de notatie van datums, cijfers en eenheden. Als je de regio wilt wijzigen, voeg je een taal toe en kies je daarna je voorkeursregio."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Als je een taal voor een specifieke app wilt selecteren, ga je naar de taalinstellingen van die app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Meer informatie over app-talen"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Systeemtaal wijzigen in %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Uit"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aan: # app heeft toegang tot de locatie}other{Aan: # apps hebben toegang tot de locatie}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laden…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps met rechten voor apparaten in de buurt kunnen ongeveer inschatten waar verbonden apparaten zijn."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps met rechten voor apparaten in de buurt kunnen de relatieve positie van verbonden apparaten bepalen."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Toegang tot de locatie staat uit voor apps en services. De locatie van je apparaat kan nog steeds worden gestuurd naar nooddiensten als je een alarmnummer belt of sms\'t."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Meer informatie over locatie-instellingen"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Wijzig dit via ChromeOS-instellingen &gt; Privacy en beveiliging &gt; Privacyopties &gt; Locatietoegang"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gezicht en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gezicht, vingerafdruk en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gezicht, vingerafdrukken en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Ontgrendelen via Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch toegevoegd"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Je smartwatch instellen"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Meer informatie over Ontgrendelen via smartwatch"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Smartwatch toevoegen"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Smartwatch verwijderen"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Ontgrendelen via vingerafdruk en gezicht"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Ontgrendelen via gezichtsherkenning en met vingerafdruk"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ontgrendelen via gezichtsherkenning en vingerafdruk voor werk"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Instellen nodig"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Gezicht en vingerafdrukken toegevoegd"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Privégedeelte instellen…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Kan privégedeelte niet instellen"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Opnieuw proberen"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Sluiten"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Privégedeelte is niet beschikbaar.\nBekijk mogelijke oorzaken"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Bekijk mogelijke oorzaken"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Nieuwe vergrendeling voor privégedeelte kiezen?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Je kunt een nieuwe vergrendeling alleen voor het privégedeelte instellen, of dezelfde vergrendeling gebruiken die je gebruikt om je apparaat te ontgrendelen"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Schermvergrendeling gebruiken"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Apparaat opnieuw opstarten?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Gedetailleerde NFC-logboekregistratie is alleen bedoeld voor ontwikkelings­doeleinden. Aanvullende NFC-gegevens worden opgenomen in bugrapporten. Deze kunnen privé-informatie bevatten. Start je apparaat opnieuw op om deze instelling te wijzigen."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Opnieuw opstarten"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Aan"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Uit"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Extern scherm"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Extern scherm gebruiken"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Schermresolutie"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Extern scherm is losgekoppeld"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotatie"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standaard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Als je de rotatie of resolutie wijzigt, kunnen actieve apps worden gestopt"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Je apparaat moet verbonden zijn met een extern scherm om je scherm te mirroren"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Meer opties"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Casten"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"mirroren"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Draadloze weergave aanzetten"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Aanpasbaar"</string>
     <string name="brightness" msgid="6216871641021779698">"Helderheidsniveau"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Aanpasbare helderheid"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Over aanpasbare helderheid"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Je schermhelderheid wordt automatisch aangepast aan je omgeving en je activiteiten. Je kunt de schuifregelaar handmatig verplaatsen zodat Aanpasbare helderheid je voorkeuren leert kennen."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Aan"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Uit"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opties"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Toegankelijkheid"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysiek toetsenbord"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Schermtoetsenbord gebruiken"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Toon op het scherm terwijl het fysieke toetsenbord actief is"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bouncetoetsen"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Het toetsenbord negeert het binnen <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms snel herhaald indrukken van dezelfde toets"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Langzame toetsen"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Past de tijd voordat een toetsaanslag wordt geactiveerd aan naar <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Gebruik het fysieke toetsenbord om de muis te bedienen."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Vulstijl voor aanwijzer wijzigen in geel"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Vulstijl voor aanwijzer wijzigen in roze"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Vulstijl voor aanwijzer wijzigen in blauw"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Streekstijl van aanwijzer"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Wit"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Zwart"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Geen"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Touchpadgebaren leren"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, muis, cursor, aanwijzer, scrollen, swipen, vegen, klikken met de rechtermuisknop, rechtsklikken, klikken, klik"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"klikken met de rechtermuisknop, rechtsklikken, tikken"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Door de gebruiker geselecteerd: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Spraak"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Snelheid van aanwijzer"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Aanwijzerschaal"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Aanwijzerschaal verkleinen"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aanwijzerschaal vergroten"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Gamecontroller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Trilling omleiden"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Trilling verzenden naar gamecontroller wanneer deze is aangesloten"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Toch doorgaan"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuleren"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Instellingen voor vergroting"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Pannen met 1 vinger"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Verplaats het vergrootglas met 1 vinger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Sleep met 1 vinger om te navigeren op het scherm."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Verplaats je vergrotingsgebied door met 1 vinger te slepen."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Verplaats je vergrotingsgebied door met 2 vingers te slepen."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Niet beschikbaar als alleen een deel van het scherm wordt vergroot"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Zoomen door te tikken op een knop"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zoom snel in op het scherm om content groter te maken"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Zo zoom je in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.&lt;br/&gt; {1,number,integer}. Tik op het scherm.&lt;br/&gt; {2,number,integer}. Sleep met 2 vingers om te navigeren op het scherm.&lt;br/&gt; {3,number,integer}. Knijp met 2 vingers om het zoomniveau aan te passen.&lt;br/&gt; {4,number,integer}. Gebruik de snelkoppeling om de vergroting te stoppen.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Zo zoom je tijdelijk in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Zorg dat je vergrotingstype is ingesteld op volledig scherm.&lt;br/&gt; {1,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.&lt;br/&gt; {2,number,integer}. Houd je vinger op het scherm.&lt;br/&gt; {3,number,integer}. Sleep met een vinger om te navigeren op het scherm.&lt;br/&gt; {4,number,integer}. Haal je vinger van het scherm om de vergroting te stoppen."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Zo zoom je in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.&lt;br/&gt; {1,number,integer}. Tik op het scherm.&lt;br/&gt; {2,number,integer}. Sleep met 2 vingers om te navigeren op het scherm.&lt;br/&gt; {3,number,integer}. Knijp met 2 vingers om het zoomniveau aan te passen.&lt;br/&gt; {4,number,integer}. Gebruik de snelkoppeling om de vergroting te stoppen.&lt;br/&gt;&lt;br/&gt; Je kunt ook tijdelijk inzoomen en meer."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Zo zoom je in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gebruik de snelkoppeling om de vergroting te starten.&lt;br/&gt; {1,number,integer}. Tik op het scherm.&lt;br/&gt; {2,number,integer}. Sleep 1 of 2 vingers om over het scherm te bewegen.&lt;br/&gt; {3,number,integer}. Knijp met 2 vingers om het zoomniveau aan te passen.&lt;br/&gt; {4,number,integer}. Gebruik de snelkoppeling om de vergroting te stoppen.&lt;br/&gt;&lt;br/&gt; Je kunt ook tijdelijk inzoomen en meer."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Als vergroting aanstaat, kun je op je scherm het beeld vergroten.\n\n"<b>"Als je wilt inzoomen"</b>", start je de vergroting en tik je waar dan ook op het scherm.\n"<ul><li>"Veeg met 2 of meer vingers om te scrollen."</li>\n<li>"Knijp 2 of meer vingers samen om de zoom aan te passen."</li></ul>\n\n<b>"Als je tijdelijk wilt zoomen"</b>", start je de vergroting, waarna je ergens op het scherm tikt en vasthoudt.\n"<ul><li>"Sleep om een ander deel van het scherm weer te geven."</li>\n<li>"Haal je vinger van het scherm om uit te zoomen."</li></ul>\n\n"Je kunt niet inzoomen op het toetsenbord of de navigatiebalk."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Pagina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> van <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Snelkoppeling met knop Toegankelijkheid"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tik op de zwevende knop"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Toegankelijkheidsgebaar"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tik onderaan het scherm op de knop Toegankelijkheid <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Houd je vinger op de knop om tussen functies te wisselen."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe met twee vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met twee vingers omhoog en houd vast om tussen functies te schakelen."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe met 3 vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met 3 vingers omhoog en houd vast om tussen functies te schakelen."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swipe omhoog vanaf de onderkant van het scherm. Swipe omhoog en houd vast om tussen functies te wisselen.}other{Swipe met # vingers omhoog vanaf de onderkant van het scherm. Swipe met # vingers omhoog en houd vast om tussen functies te wisselen.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Meer opties"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Meer informatie over <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volumeknoppen"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volumeknoppen"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Houd beide volumeknoppen ingedrukt"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dubbeltik met 2 vingers op het scherm"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dubbeltikken met %1$d vingers"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tik snel 2 keer op het scherm met %1$d vingers"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"3 keer tikken"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tik snel %1$d keer op het scherm. Hierdoor kan je apparaat vertragen."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dubbeltikken met %1$d vingers"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tik snel {0,number,integer} keer op het scherm met 2 vingers"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"3 keer op het scherm tikken"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"3 keer tikken"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tik snel {0,number,integer} keer op het scherm. Deze snelkoppeling kan je apparaat vertragen."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Geavanceerd"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Toegankelijkheid is ingesteld op <xliff:g id="SERVICE">%1$s</xliff:g>. Als je vergroting wilt gebruiken, tik je op de knop Toegankelijkheid, houd je deze vast en selecteer je Vergroting."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Het toegankelijkheidsgebaar is ingesteld op <xliff:g id="SERVICE">%1$s</xliff:g>. Als je vergroting wilt gebruiken, swipe je met twee vingers omhoog vanaf het onderkant van het scherm en houd je vast. Selecteer vervolgens Vergroting."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Deze service werkt niet goed."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Snelkoppelingen voor toegankelijkheid"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Tonen in Snelle instellingen"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rood-groen"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rood-groen"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rood-groen, groen zwak"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rood-groen, rood zwak"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Blauw-geel"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grijstinten"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiteit"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Groen zwak, deuteranomalie"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Rood zwak, protanomalie"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Niet beschikbaar voor de modus Grijstinten of als kleurcorrectie uitstaat"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalie"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalie"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extra dimmen"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Scherm extra dimmen"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyaan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Geel"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Toestaan dat <xliff:g id="SERVICE">%1$s</xliff:g> volledige controle over je apparaat heeft?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"\'<xliff:g id="SERVICE">%1$s</xliff:g>\' moet het volgende kunnen:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Aangezien een app een rechtenverzoek afdekt, kan Instellingen je reactie niet verifiëren."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> vraagt om volledig beheer voor dit apparaat. De service kan het scherm lezen en handelen namens gebruikers met toegankelijkheidsbehoeften. Dit beheerniveau is voor de meeste apps niet gepast."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Volledige controle is gepast voor apps die je helpen met toegankelijkheid, maar niet voor de meeste andere apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Scherm bekijken en bedienen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"De functie kan alle content op het scherm lezen en content bovenop andere apps weergeven."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Acties bekijken en uitvoeren"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"De functie kan je interacties met een app of een hardwaresensor bijhouden en namens jou met apps communiceren."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Toestaan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weigeren"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Uitzetten"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Geen}=1{1 planning ingesteld}other{# planningen ingesteld}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Niet storen"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioriteitsmodi"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Modus toevoegen"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimaliseer afleidingen en houd de controle over je aandacht met modi voor slapen, werken, autorijden en alles daartussenin."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Je eigen modus maken"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Krijg alleen meldingen van belangrijke mensen en apps"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Schema instellen"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Schema gebaseerd op"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dag en tijd"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\'9:00 - 17:00 uur werkdagen\'"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Agenda-afspraken"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} is actief}=2{{mode_1} en {mode_2} zijn actief}=3{{mode_1}, {mode_2} en {mode_3} zijn actief}other{{mode_1}, {mode_2} en nog # zijn actief}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modus kan automatisch worden aangezet}other{# modi kunnen automatisch worden aangezet}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AAN"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Niet ingesteld"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Uitgezet"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Een modus maken"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Aangepast"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Nu aanzetten"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Uitzetten"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modus niet gevonden"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Onderbrekingen beperken"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Onderbrekingen en afleidingen blokkeren"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> instellen"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Zet Niet storen aan."</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Wekkers en mediageluiden mogen onderbreken"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Schema\'s"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Schema\'s verwijderen"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Verwijderen"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Naam wijzigen"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Verwijderen"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Modus <xliff:g id="MODE">%1$s</xliff:g> verwijderen?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Bewerken"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Schema\'s"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Schema"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automatisch aanzetten"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Agenda toevoegen"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Je agenda gebruiken"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Schema"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Schema instellen"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Wanneer automatisch aanzetten"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Afspraakplanning"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Aanzetten bij afspraken voor"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Als het uitnodigingsantwoord is"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Tijdschema"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schema"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> u <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schema"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Onderbrekingen toestaan die een geluid laten horen"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokkeer visuele onderbreking"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Visuele signalen toestaan"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Meldingen die je mogen storen"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Aanvullende acties"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Meldingsfilters"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Meer instellingen"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Uit}=1{Uit / 1 modus kan automatisch aangaan}other{Uit / # modi kunnen automatisch aangaan}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Weergave-instellingen"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Weergaveopties"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Grijstinten"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"donker thema aanzetten"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"OS en apps wijzigen zodat de voorkeur wordt gegeven aan lichte tekst op een donkere achtergrond, wat prettiger voor de ogen kan zijn en op sommige apparaten een aanzienlijke batterijbesparing oplevert"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Geen weergavewijzigingen}=1{{effect_1}}=2{{effect_1} en {effect_2}}=3{{effect_1}, {effect_2} en {effect_3}}other{{effect_1}, {effect_2} en nog #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Beperken wat jou meldingen kan sturen"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Er worden geen onderbrekingen gefilterd"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Weergaveopties voor gefilterde meldingen"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Als Niet storen aanstaat"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Geen geluid van meldingen"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"melding openen"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Snoozen van meldingen toestaan"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Meldingsstipje op app-icoon"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Meldingsbundels"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubbels"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubbels"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Dit gesprek als bubbel tonen"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Deze app ondersteunt geen uitgebreide instellingen"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Meer instellingen"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Er zijn meer instellingen beschikbaar in deze app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Aanpasbare meldingen"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Aanpasbare meldingen gebruiken"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Als je in korte tijd veel meldingen krijgt, wordt het volume op je telefoon lager gezet en worden pop-ups op het scherm geminimaliseerd gedurende maximaal 2 minuten. Gesprekken, wekkers en prioriteitsgesprekken trillen nog wel, laten een geluid horen of worden op het scherm getoond. Alle meldingen zijn makkelijk te vinden als je omlaag swipet vanaf de bovenkant van het scherm."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Afkoelperiode voor meldingen"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Afkoelperiode van meldingen gebruiken"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Als je in korte tijd veel meldingen krijgt, wordt het volume op je apparaat lager gezet en worden meldingen geminimaliseerd gedurende maximaal 2 minuten. Dit is niet van invloed op gesprekken, wekkers en prioriteitsgesprekken. \n\nJe kunt meldingen die je tijdens de afkoelperiode krijgt, vinden door omlaag te swipen vanaf de bovenkant van het scherm."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Toepassen op werkprofielen"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Toepassen op apps in werkprofiel"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR-helperservices"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorieën"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Anders"</string>
     <string name="no_channels" msgid="4716199078612071915">"Deze app heeft geen meldingen geplaatst"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Niet-gebruikte categorieën tonen"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Extra instellingen in de app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Niet-gebruikte categorieën tonen"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Niet-gebruikte categorieën beperken"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Gesprekken"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Alle gesprekken"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"alle gesprekken"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioriteitsgesprekken"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioriteitsgesprekken"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Geen"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps die je mogen storen"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Geselecteerde apps"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Geen"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alles"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Apps mogen je niet storen}=1{{app_1} mag je storen}=2{{app_1} en {app_2} mogen je storen}=3{{app_1}, {app_2} en {app_3} mogen je storen}other{{app_1}, {app_2} en nog # mogen je storen}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (werk)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Berekenen…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Apps toestaan dit te negeren"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps die je mogen storen"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Meer apps selecteren"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Niets mag onderbreken"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Niemand mag onderbreken"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Bepaalde mensen mogen je storen"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Terugkerende bellers mogen je storen"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Alle mensen mogen onderbreken"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Terugkerende bellers"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Terugkerende bellers toestaan"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Wijzigen in alleen alarmen gedurende 1 uur tot {time}}other{Wijzigen in alleen alarmen gedurende # uur tot {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Wijzigen in \'Alleen wekkers\' tot <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Wijzigen in \'Altijd onderbreken\'"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Naam wijzigen"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Icoon wijzigen"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Icoon wijzigen"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Bewerkingsmodus"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Modus maken"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Aangepaste modus"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Naam van modus"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Agenda-afspraken"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Bedtijdroutine"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Tijdens het autorijden"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"App-instellingen"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informatie en instellingen in <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Beheerd door <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> uitzetten?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"De modus wordt nooit aangezet als deze uitstaat"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Uitzetten"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> aanzetten?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Deze modus kan automatisch worden aangezet op basis van de bijbehorende instellingen"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aanzetten"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Stel een modus in die een vast schema volgt"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Stel een modus in voor synchronisatie met agenda-afspraken en reacties op uitnodigingen"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Ontwerp een rustgevende slaaproutine. Zet wekkers, dim het scherm en blokkeer meldingen."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Geef prioriteit aan veiligheid op de weg voor een gefocuste rit zonder afleidingen"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokkeer afleidingen of onderbrekingen van je apparaat zodat je je beter kunt focussen"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimineer afleidingen voor een rustige omgeving"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personaliseer apparaatfuncties en -instellingen voor verschillende gebruikers"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimaliseer onderbrekingen door alleen toe te staan dat belangrijke mensen en apps je mogen storen"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Waarschuwing"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Sluiten"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Feedback sturen over dit apparaat"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batterij"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Instellingenvenster"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Desktopmodus afdwingen"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Dwing experimentele desktopmodus af op secundaire schermen"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Vensters met vrije vorm aanzetten"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Vensters met vrije vorm aanzetten op secundair scherm"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Apps met niet-aanpasbaar formaat aanzetten in meerdere vensters"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Dit staat apps met een niet-aanpasbaar formaat toe in meerdere vensters"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Gedwongen donker maken negeren"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobiele data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Voor een betere apparaatfunctionaliteit kunnen apps en services nog steeds op elk moment zoeken naar wifi-netwerken, zelfs als wifi uitstaat. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren. Je kunt dit wijzigen in de instellingen voor wifi-scannen."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Wijzigen"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>: <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Verbonden"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tijdelijk verbonden"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> wordt tijdelijk gebruikt"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"App vastzetten gebruiken"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Ontwikkelaarsopties gebruiken"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Afdrukservice gebruiken"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Meerdere gebruikers toestaan"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Van gebruiker wisselen toestaan"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"toestaan, meerdere, gebruiker, toestemming, veel"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"meerdere, gebruikers, profielen, personen, accounts, wisselen, veel"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Draadloze foutopsporing gebruiken"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Kies wat je op het scherm wilt zien wanneer de tablet is gedockt. Het apparaat gebruikt misschien meer energie als je een screensaver instelt."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Aanpassen"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> aanpassen"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Je moet opnieuw opstarten om ondersteuning voor vrije vorm aan te zetten."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Je moet opnieuw opstarten om de desktopmodus af te dwingen op secundaire schermen."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Je moet opnieuw opstarten om ondersteuning voor vensters met vrije vorm aan te zetten."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Je moet opnieuw opstarten om de beschikbaarheid van vensters met vrije vorm te updaten."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Je moet opnieuw opstarten om vensters met vrije vorm aan te zetten op secundaire schermen."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Nu opnieuw opstarten"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Later opnieuw opstarten"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Ruimtelijke audio"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Roze"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Klaar"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Opslaan"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Annuleren"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Standaard"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Gemiddeld"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Aan"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Uit"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Aan"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% links, %2$d%% rechts"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% rechts, %2$d%% links"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"De naam van je apparaat is zichtbaar voor de apps die je hebt geïnstalleerd. Ook kunnen anderen die zien als je verbinding maakt met bluetooth-apparaten of een wifi-netwerk, of als je een wifi-hotspot instelt."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammaticaal geslacht"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Grammaticaal geslacht selecteren"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Luisteren naar stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scan de QR-code van een audiostream om mee te luisteren met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Kan wachtwoord niet bewerken tijdens het delen. Als je het wachtwoord wilt wijzigen, zet je audio delen eerst uit."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-codescanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Zoeken in Instellingen"</string>
 </resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index a871b7d..ea54f60 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"ଶୋଇବା ସମୟ"</item>
-    <item msgid="4152450357280759894">"ଡ୍ରାଇଭିଂ"</item>
-    <item msgid="7096549258219399423">"ଇମର୍ସିଭ"</item>
-    <item msgid="2760716776980432977">"ପରିଚାଳିତ ହୋ‍ଇଛି"</item>
-    <item msgid="601734478369121764">"ଷ୍ଟାର"</item>
-    <item msgid="6243809315432780521">"କେଲେଣ୍ଡର"</item>
-    <item msgid="4913577903148415331">"ସମୟ"</item>
-    <item msgid="3653377604690057780">"ଥିଏଟର"</item>
-    <item msgid="3843711267408385410">"ଫୁଲ"</item>
+    <item msgid="2750940760340557109">"ଅର୍ଦ୍ଧ-ଚନ୍ଦ୍ର"</item>
+    <item msgid="8513969636586738035">"କାର"</item>
+    <item msgid="957392343846370509">"ବ୍ୟକ୍ତିଙ୍କ ମନ"</item>
+    <item msgid="6734164279667121348">"କେଲେଣ୍ଡର"</item>
+    <item msgid="4139559120353528558">"ଘଣ୍ଟା"</item>
+    <item msgid="5157711296814769020">"ବେଳାଭୂମିରେ ଛତା"</item>
+    <item msgid="6635328761318954115">"ଟେଣ୍ଟ"</item>
+    <item msgid="1711994778883392255">"ଫିଲ୍ମ ରିଲ"</item>
+    <item msgid="9097658401859604879">"ଗେମ କଣ୍ଟ୍ରୋଲର"</item>
+    <item msgid="755931364157422565">"ଜିମ ଡମ୍ବେଲ"</item>
+    <item msgid="8894207806795738429">"ବଲ ଫିଙ୍ଗୁଥିବା ବ୍ୟକ୍ତି"</item>
+    <item msgid="2274801572149555103">"କିକ ମାରୁଥିବା ବ୍ୟକ୍ତି"</item>
+    <item msgid="8795037201506843325">"ସୁଇମିଂ"</item>
+    <item msgid="3558421426169430451">"ହାଇକିଂ କରୁଥିବା ବ୍ୟକ୍ତି"</item>
+    <item msgid="7455070421232184932">"ଗଲ୍ଫ"</item>
+    <item msgid="5841773092449126508">"ୱାର୍କସପ ଟୁଲ"</item>
+    <item msgid="4595330511709890409">"ବ୍ରିଫକେସ"</item>
+    <item msgid="8352738347856724389">"ଷ୍ଟାର"</item>
+    <item msgid="7082783098151998721">"ପଦ୍ମ ଫୁଲ"</item>
+    <item msgid="5772220259409264724">"ସୁପରଭାଇଜର"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index fd944bc..7fe1728 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"ସସ୍ପେଣ୍ଡ ହୋଇଛି"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"ଅଜଣା"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"ପ୍ରିଭ୍ୟୁ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR କୋଡ"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ଛୋଟ କରନ୍ତୁ"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ବହୁତ ବଡ଼ କରନ୍ତୁ"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ସର୍ବଦା"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ହିଅରିଂ ଡିଭାଇସ ସେଟିଂସ"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ସର୍ଟକଟ, ଶ୍ରବଣଯନ୍ତ୍ର ଉପଯୋଗୀ"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ପ୍ରିସେଟ"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"ଅଡିଓଲୋଜିଷ୍ଟଙ୍କ ଦ୍ଵାରା ପ୍ରୋଗ୍ରାମ ହୋଇଥିବା କୌଣସି ପ୍ରିସେଟ ନାହିଁ"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"ପ୍ରିସେଟକୁ ଅପଡେଟ କରାଯାଇପାରିବ ନାହିଁ"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ଅଡିଓ ଆଉଟପୁଟ"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ଅଡିଓ ଆଉଟପୁଟ ବିଷୟରେ"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ସେଟିଂସରୁ ଏହି ଆପ ପାଇଁ ଭାଷା ଚୟନ ଉପଲବ୍ଧ ନାହିଁ।"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ଆପରେ ଉପଲବ୍ଧ ଥିବା ଭାଷାଗୁଡ଼ିକଠାରୁ ଏହି ଭାଷା ଭିନ୍ନ ହୋଇପାରେ। କିଛି ଆପ୍ସ ଏହି ସେଟିଂସକୁ ସମର୍ଥନ କରିନପାରେ।"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ପ୍ରତ୍ୟେକ ଆପ ପାଇଁ ଭାଷା ସେଟ କରନ୍ତୁ।"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"ଆପଣଙ୍କ ସିଷ୍ଟମ, ଆପ୍ସ ଏବଂ ୱେବସାଇଟଗୁଡ଼ିକ ଆପଣଙ୍କର ପସନ୍ଦର ଭାଷାଗୁଡ଼ିକରୁ ପ୍ରଥମ ସମର୍ଥିତ ଭାଷାକୁ ବ୍ୟବହାର କରେ।"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"ଆପଣଙ୍କ ଡିଭାଇସ, ଆପ୍ସ ଏବଂ ୱେବସାଇଟଗୁଡ଼ିକ ଆପଣଙ୍କ ପସନ୍ଦର ଭାଷା ତାଲିକାରୁ ପ୍ରଥମ ସପୋର୍ଟ କରୁଥିବା ଭାଷାକୁ ବ୍ୟବହାର କରେ।\n\nତାରିଖ, ସଂଖ୍ୟା ଏବଂ ୟୁନିଟକୁ ଫର୍ମାଟ କରିବା ପାଇଁ ଅନେକ ଆପ୍ସ ଆପଣଙ୍କ ପସନ୍ଦର ଭାଷାରୁ ଏହି ଅଞ୍ଚଳ ମଧ୍ୟ ବ୍ୟବହାର କରିବ। ଆପଣଙ୍କ ଅଞ୍ଚଳ ପରିବର୍ତ୍ତନ କରିବାକୁ ଏକ ଭାଷା ଯୋଗ କରନ୍ତୁ, ତା\'ପରେ ଆପଣଙ୍କ ପସନ୍ଦର ଅଞ୍ଚଳ ବାଛନ୍ତୁ।"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ପ୍ରତ୍ୟେକ ଆପ ପାଇଁ ଏକ ଭାଷା ଚୟନ କରିବାକୁ, ଆପ ଭାଷା ସେଟିଂସକୁ ଯାଆନ୍ତୁ।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ଆପ ଭାଷାଗୁଡ଼ିକ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ସିଷ୍ଟମ ଭାଷା %sକୁ ପରିବର୍ତ୍ତନ କରିବେ?"</string>
@@ -277,12 +279,12 @@
     <string name="owner_info_settings_title" msgid="3555626140700093017">"ଲକ ସ୍କ୍ରିନରେ ଟେକ୍ସଟ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="owner_info_settings_summary" msgid="347238313388083297">"କିଛି ନାହିଁ"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="841926875876050274">"ଯେପରିକି ଶୁଭ୍ରାର Android।"</string>
-    <string name="location_settings_title" msgid="8375074508036087178">"ଲୋକେସନ୍‌"</string>
+    <string name="location_settings_title" msgid="8375074508036087178">"ଲୋକେସନ"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ଲୋକେସନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ବନ୍ଦ"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ଚାଲୁ ଅଛି / # ଆପର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}other{ଚାଲୁ ଅଛି / # ଆପ୍ସର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ଲୋଡ୍ ହେଉଛି…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ ଅନୁମତି ଥିବା ଆପ୍ସ କନେକ୍ଟ ହୋଇଥିବା ଡିଭାଇସଗୁଡ଼ିକର ଆପେକ୍ଷିକ ଅବସ୍ଥିତିକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବ।"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ ଅନୁମତି ଥିବା ଆପ୍ସ କନେକ୍ଟେଡ ଡିଭାଇସଗୁଡ଼ିକର ଆପେକ୍ଷିକ ଅବସ୍ଥିତିକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବ।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ଆପ୍ସ ଓ ସେବାଗୁଡ଼ିକ ପାଇଁ ଲୋକେସନ ଆକ୍ସେସ ବନ୍ଦ ଅଛି। ଆପଣ ଏକ ଜରୁରୀକାଳୀନ ନମ୍ବରକୁ କଲ କରିବା କିମ୍ବା ଟେକ୍ସଟ ମେସେଜ ପଠାଇବା ସମୟରେ ଆପଣଙ୍କ ଡିଭାଇସର ଲୋକେସନ ଏବେ ବି ଜରୁରୀକାଳୀନ ଉତ୍ତରଦାତାମାନଙ୍କୁ ପଠାଯାଇପାରେ।"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ଲୋକେସନ ସେଟିଂସ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ପରିବର୍ତ୍ତନ କରିବାକୁ ChromeOS ସେଟିଂସ &gt; ଗୋପନୀୟତା ଏବଂ ସୁରକ୍ଷା &gt; ଗୋପନୀୟତା ନିୟନ୍ତ୍ରଣ &gt; ଲୋକେସନ ଆକ୍ସେସକୁ ଯାଆନ୍ତୁ"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ଫେସ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ରିମୋଟ ଅଥେଣ୍ଟିକେଟର ଅନଲକ"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ୱାଚ ଯୋଗ କରାଯାଇଛି"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ଆପଣଙ୍କ ୱାଚ ସେଟ ଅପ କରନ୍ତୁ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ୱାଚ ଅନଲକ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ୱାଚ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ୱାଚକୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଏବଂ ଫେସ ଅନଲକ"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ଫେସ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ୱାର୍କ ପାଇଁ ଫେସ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ସେଟଅପ ଆବଶ୍ୟକ"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"ଚେହେରା ଏବଂ ଟିପଚିହ୍ନଗୁଡ଼ିକ ଯୋଗ କରାଯାଇଛି"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରାଯାଉଛି…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"ଏକ ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରାଯାଇପାରିଲା ନାହିଁ"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ବାହାରି ଯାଆନ୍ତୁ"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଉପଲବ୍ଧ ନୁହେଁ।\nସମ୍ଭାବ୍ୟ କାରଣଗୁଡ଼ିକ ଭ୍ୟୁ କରନ୍ତୁ"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ସମ୍ଭାବ୍ୟ କାରଣଗୁଡ଼ିକ ଭ୍ୟୁ କରନ୍ତୁ"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଏକ ନୂଆ ଲକ ବାଛିବେ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"ଆପଣ କେବଳ ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଏକ ନୂଆ ଲକ ସେଟ କରିପାରିବେ କିମ୍ବା ଆପଣଙ୍କ ଡିଭାଇସକୁ ଅନଲକ କରିବା ପାଇଁ ଆପଣ ବ୍ୟବହାର କରୁଥିବା ସେହି ସମାନ ଲକ ବ୍ୟବହାର କରିପାରିବେ"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରନ୍ତୁ"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରିବେ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ସବିଶେଷ NFC ଲଗିଂ କେବଳ ଉନ୍ନତି ପାଇଁ ଉଦ୍ଦିଷ୍ଟ। ବଗ ରିପୋର୍ଟରେ ଅତିରିକ୍ତ NFC ଡାଟା ଅନ୍ତର୍ଭୁକ୍ତ କରାଯାଏ, ଯେଉଁଥିରେ ବ୍ୟକ୍ତିଗତ ସୂଚନା ଥାଇପାରେ। ଏହି ସେଟିଂକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ଚାଲୁ ଅଛି"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ବନ୍ଦ ଅଛି"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ଡିସପ୍ଲେ ରିଜୋଲ୍ୟୁସନ"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେକୁ ଡିସକନେକ୍ଟ କରାଯାଇଛି"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"ରୋଟେସନ"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"ଷ୍ଟାଣ୍ଡାର୍ଡ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ରୋଟେସନ କିମ୍ବା ରିଜୋଲ୍ୟୁସନକୁ ପରିବର୍ତ୍ତନ କରିବା ଫଳରେ ଏହା ବର୍ତ୍ତମାନ ଚାଲୁଥିବା ଯେ କୌଣସି ଆପ୍ସକୁ ବନ୍ଦ କରିପାରେ"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"ଆପଣଙ୍କ ସ୍କ୍ରିନକୁ ମିରର କରିବା ପାଇଁ ଆପଣଙ୍କର ଡିଭାଇସକୁ ଏକ ଏକ୍ସଟର୍ନଲ ଡିସପ୍ଲେ ସହ କନେକ୍ଟ କରାଯିବା ଆବଶ୍ୟକ"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ଅଧିକ ବିକଳ୍ପ"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"କାଷ୍ଟ"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"ମିରର୍"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ୱେୟାରଲେସ୍‌ ପ୍ରଦର୍ଶନ ସକ୍ଷମ କରନ୍ତୁ"</string>
@@ -1035,7 +1056,7 @@
     <string name="wifi_modify" msgid="5127926476383659412">"ସଂଶୋଧନ"</string>
     <string name="wifi_save" msgid="2312643132472226807">"ସେଭ୍‍ କରନ୍ତୁ"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ନେଟୱାର୍କ୍‌ ସେଭ୍‌ କରି ପାରିଲା ନାହିଁ"</string>
-    <string name="wifi_cancel" msgid="6698897376888935410">"ବାତିଲ"</string>
+    <string name="wifi_cancel" msgid="6698897376888935410">"ବାତିଲ କରନ୍ତୁ"</string>
     <string name="wifi_forget_dialog_title" msgid="4363829200968563164">"ନେଟୱର୍କକୁ ଭୁଲିଯିବେ?"</string>
     <string name="wifi_saved_access_points_summary" msgid="6637163320524940353">"{count,plural, =1{1ଟି ନେଟୱାର୍କ}other{#ଟି ନେଟୱାର୍କ}}"</string>
     <string name="wifi_saved_passpoint_access_points_summary" msgid="8939933724918673785">"{count,plural, =1{1ଟି ସଦସ୍ୟତା}other{#ଟି ସଦସ୍ୟତା}}"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"ଆଡେପ୍ଟିଭ"</string>
     <string name="brightness" msgid="6216871641021779698">"ଉଜ୍ଜ୍ୱଳତା ସ୍ତର"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"ଆଡେପ୍ଟିଭ ଉଜ୍ଜ୍ୱଳତା"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"ଆଡେପ୍ଟିଭ ଉଜ୍ଜ୍ୱଳତା ବିଷୟରେ"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"ଆପଣଙ୍କ ସ୍କ୍ରିନର ଉଜ୍ଜ୍ଵଳତା ଆପଣଙ୍କ ପରିବେଶ ଓ କାର୍ଯ୍ୟକଳାପ ଅନୁସାରେ ସ୍ୱତଃ ଆଡଜଷ୍ଟ ହେବ। ଆପଣ ସ୍ଲାଇଡରକୁ ମାନୁଆଲି ମୁଭ କରି ଆଡେପ୍ଟିଭ ଉଜ୍ଜ୍ୱଳତାକୁ ଆପଣଙ୍କ ପସନ୍ଦଗୁଡ଼ିକ ଜାଣିବାରେ ସାହାଯ୍ୟ କରିପାରିବେ।"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ଚାଲୁ"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ବନ୍ଦ"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ବିକଳ୍ପଗୁଡ଼ିକ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ଆକ୍ସେସିବିଲିଟୀ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ଫିଜିକାଲ୍ କୀବୋର୍ଡ"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ଅନ୍-ସ୍କ୍ରିନ୍ କୀବୋର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"ଫିଜିକାଲ୍‌ କୀବୋର୍ଡ ସକ୍ରିୟ ଥିବାବେଳେ ଏହାକୁ ସ୍କ୍ରିନ୍‌ ଉପରେ ରଖନ୍ତୁ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ବାଉନ୍ସ କୀଗୁଡ଼ିକ"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"କୀବୋର୍ଡ <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ମଧ୍ୟରେ ସମାନ କୀ ଶୀଘ୍ର ବାରମ୍ବାର ଦବାଇବାକୁ ଅଣଦେଖା କରେ"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ଶ୍ଲୋ କୀଗୁଡ଼ିକ"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> msକୁ ସକ୍ରିୟ କରିବାକୁ ଏକ କୀ ଦବାଇବା ପାଇଁ ଲାଗୁଥିବା ସମୟକୁ ଏହା ଆଡଜଷ୍ଟ କରେ"</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="2396247040177734245">"ମାଉସକୁ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ ଫିଜିକାଲ କୀବୋର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ।"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ପଏଣ୍ଟର ଫିଲ ଷ୍ଟାଇଲ ହଳଦିଆରେ ବଦଳାନ୍ତୁ"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ପଏଣ୍ଟର ଫିଲ ଷ୍ଟାଇଲ ଗୋଲାପିରେ ବଦଳାନ୍ତୁ"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ପଏଣ୍ଟର ଫିଲ ଷ୍ଟାଇଲକୁ ନୀଳରେ ବଦଳାନ୍ତୁ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"ପଏଣ୍ଟର ଷ୍ଟ୍ରୋକର ଷ୍ଟାଇଲ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ଧଳା"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"କଳା"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"କିଛି ନାହିଁ"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ଟଚପେଡର ଜେଶ୍ଚରଗୁଡ଼ିକ ବିଷୟରେ ଜାଣନ୍ତୁ"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ଟ୍ରାକପେଡ ଟ୍ରାକ ପେଡ, ମାଉସ, କର୍ସର, ସ୍କ୍ରୋଲ, ସ୍ୱାଇପ, ଡାହାଣ କ୍ଲିକ, କ୍ଲିକ, ପଏଣ୍ଟର"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ଡାହାଣ କ୍ଲିକ, ଟାପ"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ୟୁଜର ଚୟନିତ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"ସ୍ପିଚ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"ପଏଣ୍ଟର୍‌ର ବେଗ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"ପଏଣ୍ଟର ସ୍କେଲ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"ପଏଣ୍ଟର ସ୍କେଲ କମାନ୍ତୁ"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"ପଏଣ୍ଟର ସ୍କେଲ ବଢ଼ାନ୍ତୁ"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ଗେମ କଣ୍ଟ୍ରୋଲର"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ଭାଇବ୍ରେଶନ୍‌ ରିଡାଇରେକ୍ଟ କରନ୍ତୁ"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"ସଂଯୋଗ ହୋ‌ଇଥିବା ବେଳେ ଗେମ୍ କଣ୍ଟ୍ରୋଲର୍‌ରେ ଭାଇବ୍ରେଶନ୍ କରନ୍ତୁ"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ଯେ କୌଣସି ମତେ ଜାରି ରଖନ୍ତୁ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ବାତିଲ କର"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ମାଗ୍ନିଫିକେସନ ସେଟିଂସ"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ଗୋଟିଏ ଆଙ୍ଗୁଠିରେ ପେନିଂ"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 ଆଙ୍ଗୁଠିରେ ମେଗ୍ନିଫାୟାରକୁ ମୁଭ କରନ୍ତୁ"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ସ୍କ୍ରିନରେ ଚାରିଆଡ଼େ ମୁଭ କରିବାକୁ 1 ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ଗୋଟିଏ ଆଙ୍ଗୁଠିକୁ ଟାଣି ମ୍ୟାଗ୍ନିଫିକେସନ ଏରିଆକୁ ମୁଭ କରନ୍ତୁ।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ଦୁଇ ଆଙ୍ଗୁଠିକୁ ଟାଣି ମ୍ୟାଗ୍ନିଫିକେସନ ଏରିଆକୁ ମୁଭ କରନ୍ତୁ।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ସ୍କ୍ରିନର କେବଳ କିଛି ଅଂଶ ମେଗ୍ନିଫାଏ କରାଯିବା ସମୟରେ ଉପଲବ୍ଧ ନାହିଁ"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ଜୁମ୍‌ କରିବା ପାଇଁ ଗୋଟିଏ ବଟନ୍‌ ଉପରେ ଟାପ୍‌ କରନ୍ତୁ"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ବିଷୟବସ୍ତୁକୁ ଆହୁରି ବଡ଼ କରିବା ପାଇଁ ସ୍କ୍ରିନରେ ଶୀଘ୍ର ଜୁମ ଇନ କରନ୍ତୁ"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ଜୁମ ଇନ କରିବାକୁ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ&lt;br/&gt; {1,number,integer}. ସ୍କ୍ରିନରେ ଟାପ କରନ୍ତୁ&lt;br/&gt; {2,number,integer}. ସ୍କ୍ରିନର ଚାରିପଟେ ମୁଭ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ&lt;br/&gt; {3,number,integer}. ଜୁମ ଆଡଜଷ୍ଟ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ କରନ୍ତୁ&lt;br/&gt; {4,number,integer}. ମେଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ&lt;br/&gt;&lt;br/&gt; &lt;b&gt;ଅସ୍ଥାୟୀ ଭାବେ ଜୁମ ଇନ କରିବାକୁ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ଆପଣଙ୍କ ମେଗ୍ନିଫିକେସନ ପ୍ରକାର ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନରେ ସେଟ ହୋଇଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ&lt;br/&gt; {1,number,integer}. ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ&lt;br/&gt; {2,number,integer}. ସ୍କ୍ରିନରେ ଯେ କୌଣସି ସ୍ଥାନରେ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ&lt;br/&gt; {3,number,integer}. ସ୍କ୍ରିନର ଚାରିପଟେ ମୁଭ କରିବାକୁ ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ&lt;br/&gt; {4,number,integer}. ମେଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବା ପାଇଁ ଆଙ୍ଗୁଠିକୁ ଉଠାନ୍ତୁ"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ଜୁମ ଇନ କରିବାକୁ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ&lt;br/&gt; {1,number,integer}. ସ୍କ୍ରିନରେ ଟାପ କରନ୍ତୁ&lt;br/&gt; {2,number,integer}. ସ୍କ୍ରିନରେ ଚାରିଆଡ଼େ ମୁଭ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ&lt;br/&gt; {3,number,integer}. ଜୁମ ଆଡଜଷ୍ଟ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ କରନ୍ତୁ&lt;br/&gt; {4,number,integer}. ମେଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବା ପାଇଁ ସର୍ଟକଟକୁ ବ୍ୟବହାର କରନ୍ତୁ&lt;br/&gt;&lt;br/&gt; ଆପଣ ଅସ୍ଥାୟୀ ଭାବେ ଏବଂ ଅଧିକ ଜୁମ ଇନ ମଧ୍ୟ କରିପାରିବେ।"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ଜୁମ ଇନ କରିବାକୁ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ କରିବାକୁ ସର୍ଟକଟ ବ୍ୟବହାର କରନ୍ତୁ&lt;br/&gt; {1,number,integer}. ସ୍କ୍ରିନରେ ଟାପ କରନ୍ତୁ&lt;br/&gt; {2,number,integer}. ସ୍କ୍ରିନରେ ଚାରିଆଡ଼େ ମୁଭ କରିବାକୁ 1 କିମ୍ବା 2 ଆଙ୍ଗୁଠିରେ ଡ୍ରାଗ କରନ୍ତୁ&lt;br/&gt; {3,number,integer}. ଜୁମ ଆଡଜଷ୍ଟ କରିବାକୁ 2 ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ କରନ୍ତୁ&lt;br/&gt; {4,number,integer}. ମେଗ୍ନିଫିକେସନ ବନ୍ଦ କରିବା ପାଇଁ ସର୍ଟକଟକୁ ବ୍ୟବହାର କରନ୍ତୁ&lt;br/&gt;&lt;br/&gt; ଆପଣ ଅସ୍ଥାୟୀ ଭାବେ ଏବଂ ଅଧିକ ଜୁମ ଇନ ମଧ୍ୟ କରିପାରିବେ।"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଚାଲୁଥିବା ସମୟରେ, ଆପଣଙ୍କ ସ୍କ୍ରିନ୍‌ର ଜୁମ୍ ବଢ଼ାଇ ପାରିବେ।\n\n"<b>"ଜୁମ୍ କରିବାକୁ"</b>", ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଆରମ୍ଭ କରନ୍ତୁ, ତା’ପରେ ସ୍କ୍ରିନ୍‌ର ଯେ କୌଣସି ସ୍ଥାନରେ ଟାପ୍ କରନ୍ତୁ।\n"<ul><li>"ସ୍କ୍ରୋଲ୍ କରିବାକୁ 2 ବା ଅଧିକ ଆଙ୍ଗୁଠିରେ ଟାଣନ୍ତୁ"</li>\n<li>"ଜୁମ୍ ଆଡ୍‌ଜଷ୍ଟ କରିବାକୁ 2 ବା ଅଧିକ ଆଙ୍ଗୁଠିରେ ପିଞ୍ଚ୍ କରନ୍ତୁ"</li></ul>\n\n<b>"ଅସ୍ଥାୟୀ ଭାବେ ଜୁମ୍ କରିବାକୁ"</b>", ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଆରମ୍ଭ କରନ୍ତୁ, ତା’ପରେ ସ୍କ୍ରିନ୍‌ର ଯେ କୌଣସି ସ୍ଥାନରେ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ।\n"<ul><li>"ସ୍କ୍ରିନ୍‌ର ଚାରିପଟରେ ଘୁଞ୍ଚାଇବାକୁ ଟାଣନ୍ତୁ"</li>\n<li>"ଜୁମ୍ କମାଇବାକୁ ଆଙ୍ଗୁଠି ବାହାର କରି ଦିଅନ୍ତୁ"</li></ul>\n\n"ଆପଣ କୀବୋର୍ଡ ବା ନେଭିଗେସନ୍ ବାର୍ ଉପରେ ଜୁମ୍ ବଢ଼ାଇ ପାରିବେ ନାହିଁ।"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> ମଧ୍ୟରୁ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> ପୃଷ୍ଠା"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ ସର୍ଟକଟ"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"2ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 2ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 3ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ଆପଣଙ୍କ ସ୍କ୍ରିନର ନିମ୍ନରୁ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ। ଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସୁଇଚ କରିବା ପାଇଁ ଉପରକୁ ସ୍ୱାଇପ କରି ଧରି ରଖନ୍ତୁ।}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ସ୍କ୍ରିନକୁ ଦୁଇଟି-ଆଙ୍ଗୁଠିରେ ଦୁଇଥର-ଟାପ କରନ୍ତୁ"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ସ୍କ୍ରିନରେ ଶୀଘ୍ର %1$d ଥର ଟାପ କରନ୍ତୁ। ଏହା ଆପଣଙ୍କ ଡିଭାଇସକୁ ଧୀର କରିପାରେ।"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ଆଙ୍ଗୁଠିରେ ଦୁଇଥର ଟାପ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ କରନ୍ତୁ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ଟ୍ରିପଲ୍ ଟାପ୍ ସ୍କ୍ରିନ୍"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ତିନିଥର ଟାପ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ସ୍କ୍ରିନରେ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ୍ କରନ୍ତୁ। ଏହି ସର୍ଟକଟ୍ ଆପଣଙ୍କ ଡିଭାଇସକୁ ଧୀର କରିପାରେ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ଉନ୍ନତ"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"<xliff:g id="SERVICE">%1$s</xliff:g>କୁ ଆକ୍‌ସେସିବିଲିଟୀ ବଟନ୍‌ ସେଟ୍‌ କରାଯାଇଛି। ମାଗ୍ନିଫିକେଶନ୍‌କୁ ବ୍ୟବହାର କରିବା ପାଇଁ ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍‌କୁ ଦାବି ଧରନ୍ତୁ, ତା’ପରେ ମାଗ୍ନିଫିକେଶନ୍‌କୁ ଚୟନ କରନ୍ତୁ।"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ଆକ୍ସେସିବିଲିଟୀ ଜେଶ୍ଚର୍ <xliff:g id="SERVICE">%1$s</xliff:g>ରେ ସେଟ୍ କରାଯାଇଛି। ମ୍ୟାଗ୍ନିଫିକେସନ୍ ବ୍ୟବହାର କରିବା ପାଇଁ, ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନ୍‌ର ତଳୁ ଉପର ଆଡ଼କୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ। ତା’ପରେ ମ୍ୟାଗ୍ନିଫିକେସନ୍ ଚୟନ କରନ୍ତୁ।"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ଏହି ସେବା ଠିକ୍‌ରୂପେ କାମ କରୁ ନାହିଁ।"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ଆକ୍ସେସିବିଲିଟୀ ସର୍ଟକଟଗୁଡ଼ିକ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"କ୍ୱିକ୍ ସେଟିଂସରେ ଦେଖାନ୍ତୁ"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ଲାଲ୍-ସବୁଜ"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ଲାଲ୍-ସବୁଜ"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ଲାଲ-ସବୁଜ, ସବୁଜ ରଙ୍ଗ ଦେଖିବାରେ ସମସ୍ୟା"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ଲାଲ-ସବୁଜ, ଲାଲ ରଙ୍ଗ ଦେଖିବାରେ ସମସ୍ୟା"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ନୀଳ-ହଳଦିଆ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ଗ୍ରେସ୍କେଲ୍"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ତୀବ୍ରତା"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ସବୁଜ ରଙ୍ଗ ଦେଖିବାରେ ସମସ୍ୟା, ଡ୍ୟୁଟେରାନୋମାଲି"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ଲାଲ୍ ରଙ୍ଗ ଦେଖିବାରେ ସମସ୍ୟା, ପ୍ରୋଟାନୋମାଲି"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ଗ୍ରେସ୍କେଲ ମୋଡ କିମ୍ବା ରଙ୍ଗ ସଂଶୋଧନ ଅକ୍ଷମ ଥିବା ସମୟରେ ଅନୁପଲବ୍ଧ ଅଟେ"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ଡ୍ୟୁଟେରାନୋମାଲି"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ପ୍ରୋଟାନୋମାଲି"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ଟ୍ରିଟାନୋମାଲି"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ଅତ୍ୟଧିକ ଡିମ"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ସ୍କ୍ରିନକୁ ଅତ୍ୟଧିକ ଡିମ କରନ୍ତୁ"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ସିଆନ୍"</string>
     <string name="color_yellow" msgid="5957551912912679058">"ହଳଦିଆ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ମାଜେଣ୍ଟା"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"ଆପଣଙ୍କ ଡିଭାଇସର ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ କରିବାକୁ <xliff:g id="SERVICE">%1$s</xliff:g>କୁ ଅନୁମତି ଦେବେ?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ଆବଶ୍ୟକ କରେ:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"ଗୋଟିଏ ଆପ ଏକ ଅସ୍ପଷ୍ଟ ଅନୁରୋଧକୁ ଅଣଦେଖା କରୁଥିବା ଯୋଗୁଁ, ସେଟିଂସ ଆପଣଙ୍କ ଉତ୍ତରକୁ ଯାଞ୍ଚ କରିପାରିବ ନାହିଁ।"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>, ଏହି ଡିଭାଇସର ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ଅନୁରୋଧ କରୁଛି। ଏହି ସେବା, ସ୍କ୍ରିନ ପଢ଼ିପାରିବ ଏବଂ ଆକ୍ସେସିବିଲିଟି ଆବଶ୍ୟକତା ଅନୁଯାୟୀ ୟୁଜର ତରଫରୁ କାର୍ଯ୍ୟ କରିପାରିବ। ଅଧିକାଂଶ ଆପ ପାଇଁ ଏହି ସ୍ତରର ନିୟନ୍ତ୍ରଣ ସଠିକ୍ ନୁହେଁ।"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ଯେଉଁ ଆପ୍ସ ଆପଣଙ୍କୁ ଆକ୍ସେସିବିଲିଟୀ ଆବଶ୍ୟକତାରେ ସହାୟତା କରେ, ସେହି ଆପ୍ସ ପାଇଁ ସମ୍ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ଉପଯୁକ୍ତ ଅଟେ, କିନ୍ତୁ ଅଧିକାଂଶ ଆପ୍ସ ପାଇଁ ଉପଯୁକ୍ତ ନୁହେଁ।"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ସ୍କ୍ରିନକୁ ଦେଖନ୍ତୁ ଏବଂ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ଏହା ସ୍କ୍ରିନ୍‍ର ସମସ୍ତ ବିଷୟବସ୍ତୁ ପଢ଼ିପାରେ ଏବଂ ଅନ୍ୟ ଆପ୍ସରେ ବିଷୟବସ୍ତୁ ପ୍ରଦର୍ଶନ କରିପାରେ।"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ଦେଖନ୍ତୁ ଏବଂ କାର୍ଯ୍ୟ ସମ୍ପାଦନ କରନ୍ତୁ"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ଏହା କୌଣସି ଆପ କିମ୍ବା ହାର୍ଡୱେର ସେନ୍ସର ସହ ଆପଣଙ୍କର ଇଣ୍ଟେରାକ୍ସନକୁ ଟ୍ରାକ କରିପାରେ ଏବଂ ଆପଣଙ୍କ ତରଫରୁ ଆପ୍ସ ସହ ଇଣ୍ଟରାକ୍ଟ କରିପାରେ।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ଅନୁମତି"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ଅଗ୍ରାହ୍ୟ"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{କିଛି ନାହିଁ}=1{1ଟି ସିଡୁଲ୍ ସେଟ୍ ହୋଇଛି}other{#ଟି ସିଡୁଲ୍ ସେଟ୍ ହୋଇଛି}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ପ୍ରାଥମିକତା ମୋଡ"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ଏକ ମୋଡ ଯୋଗ କରନ୍ତୁ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ବିଭ୍ରାନ୍ତିକୁ କମ କରନ୍ତୁ ଏବଂ ଶୋଇବା, କାମ କରିବା, ଡ୍ରାଇଭିଂ କରିବା ଏବଂ ଏହା ମଧ୍ୟରେ ଥିବା ସବୁକିଛି ପାଇଁ ମୋଡ ସହିତ ଆପଣଙ୍କର ଧ୍ୟାନକୁ ନିୟନ୍ତ୍ରଣ କରନ୍ତୁ।"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"ଆପଣଙ୍କ ନିଜର ମୋଡ ତିଆରି କରନ୍ତୁ"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"କେବଳ ଗୁରୁତ୍ଵପୂର୍ଣ୍ଣ ଲୋକ ଏବଂ ଆପ୍ସ ଦ୍ୱାରା ସୂଚନା ପାଆନ୍ତୁ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"ଏକ ସିଡୁଲ ସେଟ କରନ୍ତୁ"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"ସିଡୁଲ ଏହା ଉପରେ ଆଧାରିତ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ଦିନ ଏବଂ ସମୟ"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 AM - 5 PM କାର୍ଯ୍ୟ ଦିବସଗୁଡ଼ିକ\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"କେଲେଣ୍ଡର ଇଭେଣ୍ଟଗୁଡ଼ିକ"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ସକ୍ରିୟ ଅଛି}=2{{mode_1} ଏବଂ {mode_2} ସକ୍ରିୟ ଅଛି}=3{{mode_1}, {mode_2} ଏବଂ {mode_3} ସକ୍ରିୟ ଅଛି}other{{mode_1}, {mode_2} ଏବଂ # ଅଧିକ ସକ୍ରିୟ ଅଛି}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 ମୋଡ ସ୍ୱତଃ ଚାଲୁ ହୋଇପାରିବ}other{# ମୋଡ ସ୍ୱତଃ ଚାଲୁ ହୋଇପାରିବ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ଚାଲୁ ଅଛି"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"ସେଟ କରାଯାଇନାହିଁ"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"ଅକ୍ଷମ କରାଯାଇଛି"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"ଏକ ମୋଡ ତିଆରି କରନ୍ତୁ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"କଷ୍ଟମ"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ଏବେ ଚାଲୁ କରନ୍ତୁ"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ବନ୍ଦ କରନ୍ତୁ"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ମୋଡ ମିଳିଲା ନାହିଁ"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ବ୍ୟାଘାତଗୁଡ଼ିକୁ ସୀମିତ କରନ୍ତୁ"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"ବାଧା ଏବଂ ବିଭ୍ରାନ୍ତିକୁ ବ୍ଲକ କରନ୍ତୁ"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> ସେଟ ଅପ କରନ୍ତୁ"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\" ଅନ୍ କରନ୍ତୁ"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ଆଲାରାମ୍ ଏବଂ ମିଡିଆ ସାଉଣ୍ଡ ବାଧା ଦେଇପାରେ"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ସିଡୁଲ୍"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ସିଡୁଲ୍ ଡିଲିଟ୍ କରନ୍ତୁ"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ଡିଲିଟ୍ କରନ୍ତୁ"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"ରିନେମ କରନ୍ତୁ"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ଡିଲିଟ କରନ୍ତୁ"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" ମୋଡକୁ ଡିଲିଟ କରିବେ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ଏଡିଟ"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ସିଡୁଲ୍"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"ସିଡୁଲ୍"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ସ୍ୱଚାଳିତ ଭାବେ ଚାଲୁ ହୋଇଥାଏ"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"ଏକ କେଲେଣ୍ଡର ଯୋଗ କରନ୍ତୁ"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ଆପଣଙ୍କ କେଲେଣ୍ଡରକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"ସିଡୁଲ"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ଏକ ସିଡୁଲ ସେଟ କରନ୍ତୁ"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ସ୍ୱତଃ ଚାଲୁ ହେବାର ସମୟ"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ଇଭେଣ୍ଟ ସିଡୁଲ"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ଏଥିପାଇଁ ଇଭେଣ୍ଟ ମଧ୍ୟରେ ଚାଲୁ କର"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ଯେଉଁଠି ଆମନ୍ତ୍ର‍ଣର ଉତ୍ତର ଥାଏ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"ସମୟ ସିଡୁଲ"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ସିଡୁଲ"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ଘଣ୍ଟା, <xliff:g id="MINUTES">%2$d</xliff:g> ମିନିଟ"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ସିଡୁଲ୍"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ବାଧାଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ ଯାହା ଶବ୍ଦ କରେ"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ଭିଜୁଆଲ୍‌ ବାଧା ଅବରୋଧ କରନ୍ତୁ"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ଭିଜୁଆଲ୍‌ ସଙ୍କେତ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"ଆପଣଙ୍କ ପାଖରେ ପହଞ୍ଚିପାରିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"ଅତିରିକ୍ତ ପଦକ୍ଷେପ"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"ବିଜ୍ଞପ୍ତି ଫିଲ୍ଟର"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"ଅଧିକ ସେଟିଂସ"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ବନ୍ଦ ଅଛି}=1{ବନ୍ଦ ଅଛି / 1 ମୋଡ ସ୍ୱତଃ ଚାଲୁ ହୋଇପାରିବ}other{ବନ୍ଦ ଅଛି / # ମୋଡ ସ୍ୱତଃ ଚାଲୁ ହୋଇପାରିବ}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ଡିସପ୍ଲେ ସେଟିଂସ"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ଡିସପ୍ଲେ ବିକଳ୍ପଗୁଡ଼ିକ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ଗ୍ରେସ୍କେଲ"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ଡାର୍କ ଥିମକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"ଆଖି ପାଇଁ ଆରାମଦାୟକ ଏବଂ କିଛି ଡିଭାଇସରେ ଉଲ୍ଲେଖନୀୟ ବେଟେରୀ ସେଭ କରୁଥିବା ଡାର୍କ ବେକଗ୍ରାଉଣ୍ଡରେ ଲାଇଟ ଟେକ୍ସଟ ପସନ୍ଦ କରିବାକୁ OS ଏବଂ ଆପ୍ସ ସୁଇଚ କରନ୍ତୁ"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ଡିସପ୍ଲେରେ କୌଣସି ପରିବର୍ତ୍ତନ ନାହିଁ}=1{{effect_1}}=2{{effect_1} ଏବଂ {effect_2}}=3{{effect_1}, {effect_2} ଏବଂ {effect_3}}other{{effect_1}, {effect_2} ଏବଂ # ଅଧିକ}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"ଆପଣଙ୍କୁ କ\'ଣ ସୂଚିତ କରାଯାଇପାରିବ ତାହା ସୀମିତ କରନ୍ତୁ"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"କୌଣସି ବାଧା ଫିଲ୍ଟର ହୋଇନାହିଁ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ଫିଲ୍ଟର କରାଯାଇଥିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପାଇଁ ଡିସପ୍ଲେ ବିକଳ୍ପ"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"\'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\' ଚାଲୁ ଥିବା ସମୟରେ"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ବିଜ୍ଞପ୍ତି ଆସିଲେ କୌଣସି ସାଉଣ୍ଡ ନାହିଁ"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"ବିଜ୍ଞପ୍ତି ଖୋଲନ୍ତୁ"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"ବିଜ୍ଞପ୍ତି ସ୍ନୁଜ କରିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ଆପ ଆଇକନରେ ବିଜ୍ଞପ୍ତି ଡଟ"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"ବିଜ୍ଞପ୍ତିର ବଣ୍ଡଲ"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"ବବଲ୍‌ଗୁଡ଼ିକ"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ବବଲ୍‌ଗୁଡ଼ିକ"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ଏହି ବାର୍ତ୍ତାଳାପକୁ ବବଲ କରନ୍ତୁ"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"ଆଡେପ୍ଟିଭ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ଆଡେପ୍ଟିଭ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"ଆପଣ ଅଳ୍ପ ସମୟ ମଧ୍ୟରେ ଅନେକ ବିଜ୍ଞପ୍ତି ପାଇଲେ, ଆପଣଙ୍କ ଫୋନ ଭଲ୍ୟୁମକୁ କମ କରିବ ଏବଂ ସ୍କ୍ରିନରେ ପପ-ଅପକୁ ଦୁଇ ମିନିଟ ପର୍ଯ୍ୟନ୍ତ ହ୍ରାସ କରିବ। କଲ, ଆଲାରାମ ଏବଂ ପ୍ରାଥମିକତା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ ପାଇଁ ଏବେ ବି ଭାଇବ୍ରେଟ କରାଯିବ, ଏକ ସାଉଣ୍ଡ କରାଯିବ କିମ୍ବା ସ୍କ୍ରିନରେ ଦେଖାଯିବ ଏବଂ ଆପଣ ସ୍କ୍ରିନର ଶୀର୍ଷରୁ ତଳକୁ ଟାଣିଲେ ସମସ୍ତ ବିଜ୍ଞପ୍ତି ଖୋଜିବା ସହଜ ଅଟେ।"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ୱାର୍କ ପ୍ରୋଫାଇଲ ଆପ୍ସରେ ଲାଗୁ କରନ୍ତୁ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ସାହାଯ୍ୟକାରୀ ସେବାଗୁଡ଼ିକ"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"ବର୍ଗ"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"ଅନ୍ୟ"</string>
     <string name="no_channels" msgid="4716199078612071915">"ଏହି ଆପଟି କୌଣସି ବିଜ୍ଞପ୍ତି ପୋଷ୍ଟ୍ କରିନାହିଁ"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"ଅବ୍ୟବହୃତ ବର୍ଗଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ଆପର ଅତିରିକ୍ତ ସେଟିଂସ"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"ଅବ୍ୟବହୃତ ବର୍ଗଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ଅବ୍ୟବହୃତ ବର୍ଗଗୁଡ଼ିକ ଲୁଚାନ୍ତୁ"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"ସମସ୍ତ ବାର୍ତ୍ତାଳାପ"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"ସମସ୍ତ ବାର୍ତ୍ତାଳାପ"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ପ୍ରାଥମିକତା ଦିଆଯାଇଥିବା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ପ୍ରାଥମିକତା ଥିବା ବାର୍ତ୍ତାଳାପ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"କିଛି ନାହିଁ"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"ବାଧା ସୃଷ୍ଟି କରିପାରୁଥିବା ଆପଗୁଡ଼ିକ"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ଚୟନିତ ଆପ୍ସ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"କିଛି ନାହିଁ"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ସମସ୍ତ"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{କୌଣସି ଆପ୍ସ ବାଧା ସୃଷ୍ଟି କରିପାରିବ ନାହିଁ}=1{{app_1} ବାଧା ସୃଷ୍ଟି କରିପାରିବ}=2{{app_1} ଏବଂ {app_2} ବାଧା ସୃଷ୍ଟି କରିପାରିବ}=3{{app_1}, {app_2} ଏବଂ {app_3} ବାଧା ସୃଷ୍ଟି କରିପାରିବ}other{{app_1}, {app_2} ଏବଂ # ଅଧିକ ଆପ୍ସ ବାଧା ସୃଷ୍ଟି କରିପାରିବ}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ୱାର୍କ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ଗଣନା କରାଯାଉଛି…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ନିଷ୍କ୍ରିୟ କରିବାକୁ ଆପ୍ସକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ବାଧା ସୃଷ୍ଟି କରିପାରୁଥିବା ଆପଗୁଡ଼ିକ"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ଅଧିକ ଆପ୍ ଚୟନ କରନ୍ତୁ"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"ରିପିଟ କଲର ବାଧା ସୃଷ୍ଟି କରିପାରେ"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"ସବୁ ଲୋକ ବାଧା ଉପୁଯାଇପାରିବେ"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ବାରମ୍ୱାର ଫୋନ୍‌ କରୁଥିବା କଲର୍"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ବାରମ୍ବାର କଲ କରୁଥିବା ବ୍ୟକ୍ତିଙ୍କ ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} ପର୍ଯ୍ୟନ୍ତ କେବଳ ଏକ ଘଣ୍ଟା ପାଇଁ ଆଲାରାମରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ}other{{time} ପର୍ଯ୍ୟନ୍ତ କେବଳ # ଘଣ୍ଟା ପାଇଁ ଆଲାରାମରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ପର୍ଯ୍ୟନ୍ତ କେବଳ ଆଲାର୍ମଗୁଡିକ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ସର୍ବଦା ବାଧାକୁ ବଦଳାନ୍ତୁ"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"ରିନେମ କରନ୍ତୁ"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ଆଇକନ ବଦଳାନ୍ତୁ"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ଆଇକନ ବଦଳାନ୍ତୁ"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ମୋଡ ଏଡିଟ କରନ୍ତୁ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"ଏକ ମୋଡ ତିଆରି କରନ୍ତୁ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"କଷ୍ଟମ ମୋଡ"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ମୋଡର ନାମ"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"କେଲେଣ୍ଡର ଇଭେଣ୍ଟଗୁଡ଼ିକ"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"ଶୋଇବା ସମୟ ରୁଟିନ"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ଡ୍ରାଇଭିଂ କରିବା ସମୟରେ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ଆପ ସେଟିଂସ"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>ରେ ସୂଚନା ଏବଂ ସେଟିଂସ"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ଦ୍ୱାରା ପରିଚାଳିତ"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g>କୁ ଅକ୍ଷମ କରିବେ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"ଅକ୍ଷମ ଥିବା ସମୟରେ ଏହି ମୋଡ କେବେ ବି ଚାଲୁ ହେବ ନାହିଁ"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"ଅକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g>କୁ ସକ୍ଷମ କରିବେ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ଏହି ମୋଡ ଏହାର ସେଟିଂସ ଆଧାରରେ ସ୍ୱତଃ ଚାଲୁ ହୋଇପାରେ"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ସକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"ଏକ ନିୟମିତ ସିଡୁଲକୁ ଫଲୋ କରୁଥିବା ଏକ ମୋଡ ସେଟ କରନ୍ତୁ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"କେଲେଣ୍ଡର ଇଭେଣ୍ଟ ଏବଂ ଆମନ୍ତ୍ରଣ ଉତ୍ତରଗୁଡ଼ିକ ସହ ସିଙ୍କ କରିବାକୁ ଏକ ମୋଡ ସେଟ କରନ୍ତୁ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"ଏକ ଶାନ୍ତ ଶୋଇବା ରୁଟିନ ଡିଜାଇନ କରନ୍ତୁ। ଆଲାରାମ ସେଟ କରନ୍ତୁ, ସ୍କ୍ରିନକୁ ଡିମ କରନ୍ତୁ ଏବଂ ବିଜ୍ଞପ୍ତିକୁ ବ୍ଲକ କରନ୍ତୁ।"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ଏକ ଫୋକସ ଏବଂ ବିଭ୍ରାନ୍ତି-ମୁକ୍ତ ଡ୍ରାଇଭ ପାଇଁ ରାସ୍ତାରେ ସୁରକ୍ଷାକୁ ପ୍ରାଥମିକତା ଦିଅନ୍ତୁ"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"ଚେତାବନୀ"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ଏହି ଡିଭାଇସ ବିଷୟରେ ମତାମତ ପଠାନ୍ତୁ"</string>
@@ -4792,8 +4863,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"କେସ୍‍"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ବେଟେରୀ"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ସେଟିଂସ ପ୍ୟାନେଲ"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ଫୋର୍ସ ଡେସ୍କଟପ୍‍ ମୋଡ୍‍"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ଦ୍ବିତୀୟ ପ୍ରଦର୍ଶନରେ ଫୋର୍ସ ପରୀକ୍ଷାମୂଳକ ମୋଡ୍‍"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ସକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ସକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ମଲ୍ଟି ୱିଣ୍ଡୋରେ ରିସାଇଜ୍ କରାଯାଇପାରୁନଥିବାକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ରିସାଇଜ୍ କରାଯାଇପାରୁନଥିବା ଆପଗୁଡ଼ିକୁ ମଲ୍ଟି ୱିଣ୍ଡୋରେ ରହିବା ପାଇଁ ଅନୁମତି ଦିଏ"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ଫୋର୍ସ୍-ଡାର୍କ୍ ଓଭର୍‍ରାଇଡ୍ କରନ୍ତୁ"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ମୋବାଇଲ ଡାଟା"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ଡିଭାଇସ ଅନୁଭୂତିକୁ ଉନ୍ନତ କରିବା ପାଇଁ, ୱାଇ-ଫାଇ ବନ୍ଦ ଥିଲେ ମଧ୍ୟ ଆପ୍ସ ଏବଂ ସେବାଗୁଡ଼ିକ ଏବେ ବି ଯେ କୌଣସି ସମୟରେ ୱାଇ-ଫାଇ ନେଟୱାର୍କ ପାଇଁ ସ୍କାନ କରିପାରିବେ। ଉଦାହରଣ ସ୍ଵରୂପ, ଲୋକେସନ-ଆଧାରିତ ଫିଚର ଓ ସେବାଗୁଡ଼ିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଏହାକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ। ଆପଣ ଏହାକୁ ୱାଇ-ଫାଇ ସ୍କାନିଂ ସେଟିଂସରେ ପରିବର୍ତ୍ତନ କରିପାରିବେ।"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"ସଂଯୋଗ କରାଯାଇଛି"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ଅସ୍ଥାୟୀ ରୂପେ କନେକ୍ଟ କରାଯାଇଛି"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"ଅସ୍ଥାୟୀ ରୂପେ <xliff:g id="SUBNAME">%1$s</xliff:g>କୁ ବ୍ୟବହାର କରୁଛି"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ଆପ୍ ପିନିଂ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ଡେଭଲପରଙ୍କ ପାଇଁ ବିକଳ୍ପଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ପ୍ରିଣ୍ଟ ସେବା ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"ଏକାଧିକ ୟୁଜରଙ୍କୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ୟୁଜର ସୁଇଚକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ଅନୁମତି, ଏକାଧିକ, ୟୁଜର, ପରମିଟ, ଅନେକ"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ଏକାଧିକ, ୟୁଜର, ପ୍ରୋଫାଇଲ, ଲୋକମାନେ, ଆକାଉଣ୍ଟ, ସୁଇଚ, ଅନେକ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ୱାୟାରଲେସ୍ ଡିବଗିଂ ବ୍ୟବହାର କରନ୍ତୁ"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ଆପଣଙ୍କ ଟାବଲେଟକୁ ଡକ କରାଯାଇଥିବା ସମୟରେ ଆପଣ ଆପଣଙ୍କ ସ୍କ୍ରିନରେ କଣ ଦେଖିବେ ତାହା ବାଛନ୍ତୁ। ଏକ ସ୍କ୍ରିନ ସେଭର ବ୍ୟବହାର କରାଯିବା ସମୟରେ ଆପଣଙ୍କ ଡିଭାଇସ ଅଧିକ ଏନର୍ଜି ବ୍ୟବହାର କରିପାରେ।"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"କଷ୍ଟମାଇଜ କରନ୍ତୁ"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>କୁ କଷ୍ଟମାଇଜ କରନ୍ତୁ"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ଫ୍ରିଫର୍ମ ସହାୟତାକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଡେସ୍କଟପ ମୋଡକୁ ବାଧ୍ୟତାମୂଳକ ଭାବେ ଚାଲୁ କରିବା ପାଇଁ ରିବୁଟ କରିବା ଆବଶ୍ୟକ।"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋ ସପୋର୍ଟକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋର ଉପଲବ୍ଧତାକୁ ଅପଡେଟ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ସେକେଣ୍ଡାରୀ ଡିସପ୍ଲେରେ ଫ୍ରିଫର୍ମ ୱିଣ୍ଡୋକୁ ସକ୍ଷମ କରିବା ପାଇଁ ଏକ ରିବୁଟ ଆବଶ୍ୟକ।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ବର୍ତ୍ତମାନ ରିବୁଟ କରନ୍ତୁ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ପରେ ରିବୁଟ କରନ୍ତୁ"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ସ୍ପେସିଆଲ ଅଡିଓ"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ରୋଜ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ମାଜେଣ୍ଟା"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ବାଇଗଣୀ"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"ହୋଇଗଲା"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"ସେଭ କରନ୍ତୁ"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ବାତିଲ କରନ୍ତୁ"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ଡିଫଲ୍ଟ"</string>
     <string name="contrast_medium" msgid="384414510709285811">"ମଧ୍ୟମ"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ଚାଲୁ ଅଛି"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ବନ୍ଦ ଅଛି"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ଚାଲୁ ଅଛି"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ଅଡିଓ %1$d%% ବାମ, %2$d%% ଡାହାଣ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ଅଡିଓ %1$d%% ଡାହାଣ, %2$d%% ବାମ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"ଆପଣ ଇନଷ୍ଟଲ କରିଥିବା ଆପ୍ସକୁ ଆପଣଙ୍କ ଡିଭାଇସ ନାମ ଦେଖାଯାଇଥାଏ। ଯେତେବେଳେ ଆପଣ ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକ ସହ କନେକ୍ଟ କରନ୍ତି, ଏକ ୱାଇ-ଫାଇ ନେଟୱାର୍କ ସହ କନେକ୍ଟ କରନ୍ତି କିମ୍ବା ଏକ ୱାଇ-ଫାଇ ହଟସ୍ପଟ ସେଟ ଅପ କରନ୍ତି, ସେତେବେଳେ ଏହା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ମଧ୍ୟ ଦେଖାଯାଇପାରେ।"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ବ୍ୟାକରଣଗତ ଲିଙ୍ଗ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ବ୍ୟାକରଣଗତ ଲିଙ୍ଗ ଚୟନ କରନ୍ତୁ"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ଷ୍ଟ୍ରିମକୁ ଶୁଣନ୍ତୁ"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହିତ ଶୁଣିବା ପାଇଁ ଏକ ଅଡିଓ ଷ୍ଟ୍ରିମ QR କୋଡକୁ ସ୍କାନ କରନ୍ତୁ"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ସେୟାର କରୁଥିବା ସମୟରେ ପାସୱାର୍ଡକୁ ଏଡିଟ କରିପାରିବେ ନାହିଁ। ପାସୱାର୍ଡକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ, ପ୍ରଥମେ ଅଡିଓ ସେୟାରିଂକୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR କୋଡ ସ୍କାନର"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ସର୍ଚ୍ଚ ସେଟିଂସ"</string>
 </resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index db56959..689d288 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"ਬੈੱਡਟਾਈਮ"</item>
-    <item msgid="4152450357280759894">"ਡਰਾਈਵਿੰਗ"</item>
-    <item msgid="7096549258219399423">"ਇਮਰਸਿਵ"</item>
-    <item msgid="2760716776980432977">"ਪ੍ਰਬੰਧਿਤ"</item>
-    <item msgid="601734478369121764">"ਤਾਰਾ"</item>
-    <item msgid="6243809315432780521">"ਕੈਲੰਡਰ"</item>
-    <item msgid="4913577903148415331">"ਸਮਾਂ"</item>
-    <item msgid="3653377604690057780">"ਥੀਏਟਰ"</item>
-    <item msgid="3843711267408385410">"ਫੁੱਲ"</item>
+    <item msgid="2750940760340557109">"ਅੱਧਾ-ਚੰਨ"</item>
+    <item msgid="8513969636586738035">"ਕਾਰ"</item>
+    <item msgid="957392343846370509">"ਵਿਅਕਤੀ ਦਾ ਮਨ"</item>
+    <item msgid="6734164279667121348">"ਕੈਲੰਡਰ"</item>
+    <item msgid="4139559120353528558">"ਘੜੀ"</item>
+    <item msgid="5157711296814769020">"ਬੀਚ ਵਾਲੀ ਛੱਤਰੀ"</item>
+    <item msgid="6635328761318954115">"ਤੰਬੂ"</item>
+    <item msgid="1711994778883392255">"ਫ਼ਿਲਮ ਰੀਲ"</item>
+    <item msgid="9097658401859604879">"ਗੇਮ ਕੰਟਰੋਲਰ"</item>
+    <item msgid="755931364157422565">"ਜਿਮ ਦਾ ਡੰਬਲ"</item>
+    <item msgid="8894207806795738429">"ਗੇਂਦ ਸੁੱਟਦਾ ਵਿਅਕਤੀ"</item>
+    <item msgid="2274801572149555103">"ਕਿੱਕ ਮਾਰਦਾ ਵਿਅਕਤੀ"</item>
+    <item msgid="8795037201506843325">"ਤੈਰਾਕੀ"</item>
+    <item msgid="3558421426169430451">"ਹਾਈਕਿੰਗ ਕਰਦਾ ਵਿਅਕਤੀ"</item>
+    <item msgid="7455070421232184932">"ਗੌਲਫ਼"</item>
+    <item msgid="5841773092449126508">"ਵਰਕਸ਼ਾਪ ਦੇ ਔਜ਼ਾਰ"</item>
+    <item msgid="4595330511709890409">"ਬ੍ਰੀਫ਼ਕੇਸ"</item>
+    <item msgid="8352738347856724389">"ਤਾਰਾ"</item>
+    <item msgid="7082783098151998721">"ਕਮਲ ਦਾ ਫੁੱਲ"</item>
+    <item msgid="5772220259409264724">"ਨਿਰੀਖਕ"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 3cddba6..77bef71 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"ਮੁਅੱਤਲ ਕੀਤਾ"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"ਅਣਪਛਾਤਾ"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"ਪੂਰਵ-ਝਲਕ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR ਕੋਡ"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ਛੋਟਾ ਕਰੋ"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ਵੱਡਾ ਕਰੋ"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ਹਮੇਸ਼ਾਂ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ਸੁਣਨ ਵਾਲੇ ਡੀਵਾਈਸ ਸੰਬੰਧੀ ਸੈਟਿੰਗਾਂ"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ਸ਼ਾਰਟਕੱਟ, ਸੁਣਨ ਦੇ ਸਾਧਨ ਦੀ ਅਨੁਰੂਪਤਾ"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ਪ੍ਰੀਸੈੱਟ"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"ਤੁਹਾਡੇ ਆਡੀਓਲਾਜਿਸਟ ਵੱਲੋਂ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਕੋਈ ਪ੍ਰੀਸੈੱਟ ਨਹੀਂ ਹੈ"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"ਪ੍ਰੀਸੈੱਟ ਨੂੰ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ਆਡੀਓ ਆਊਟਪੁੱਟ"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ਆਡੀਓ ਆਊਟਪੁੱਟ ਬਾਰੇ"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਇਸ ਐਪ ਲਈ ਭਾਸ਼ਾ ਦੀ ਚੋਣ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ਭਾਸ਼ਾ ਐਪ ਵਿਚਲੀਆਂ ਉਪਲਬਧ ਭਾਸ਼ਾਵਾਂ ਨਾਲੋਂ ਵੱਖਰੀ ਹੋ ਸਕਦੀ ਹੈ। ਕੁਝ ਐਪਾਂ ਸ਼ਾਇਦ ਇਸ ਸੈਟਿੰਗਾਂ ਦਾ ਸਮਰਥਨ ਨਾ ਕਰਨ।"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ਹਰੇਕ ਐਪ ਲਈ ਭਾਸ਼ਾ ਸੈੱਟ ਕਰੋ।"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"ਤੁਹਾਡਾ ਸਿਸਟਮ, ਐਪਾਂ ਅਤੇ ਵੈੱਬਸਾਈਟਾਂ ਤੁਹਾਡੀਆਂ ਤਰਜੀਹੀ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚੋਂ ਪਹਿਲੀ ਸਮਰਥਿਤ ਭਾਸ਼ਾ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ।"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"ਤੁਹਾਡਾ ਡੀਵਾਈਸ, ਐਪਾਂ ਅਤੇ ਵੈੱਬਸਾਈਟਾਂ ਤੁਹਾਡੀ ਤਰਜੀਹੀ ਭਾਸ਼ਾ ਸੂਚੀ ਵਿੱਚੋਂ ਪਹਿਲੀ ਸਮਰਥਿਤ ਭਾਸ਼ਾ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ।\n\nਕਈ ਐਪਾਂ ਵੀ ਤਾਰੀਖਾਂ, ਨੰਬਰਾਂ ਅਤੇ ਇਕਾਈਆਂ ਦੇ ਫਾਰਮੈਟ ਲਈ ਤੁਹਾਡੀ ਤਰਜੀਹੀ ਭਾਸ਼ਾ ਨੂੰ ਵਰਤਣਗੀਆਂ। ਆਪਣੇ ਖੇਤਰ ਨੂੰ ਬਦਲਣ ਲਈ, ਭਾਸ਼ਾ ਸ਼ਾਮਲ ਕਰ ਕੇ, ਆਪਣਾ ਤਰਜੀਹੀ ਖੇਤਰ ਚੁਣੋ।"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ਹਰੇਕ ਐਪ ਲਈ ਕੋਈ ਭਾਸ਼ਾ ਚੁਣਨ ਵਾਸਤੇ, ਐਪ ਦੀਆਂ ਭਾਸ਼ਾ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ਐਪ ਭਾਸ਼ਾਵਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ਕੀ ਸਿਸਟਮ ਭਾਸ਼ਾ ਨੂੰ %s ਵਿੱਚ ਬਦਲਣਾ ਹੈ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ਬੰਦ"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ਚਾਲੂ / # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}one{ਚਾਲੂ / # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}other{ਚਾਲੂ / # ਐਪਾਂ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਵਾਲੀਆਂ ਐਪਾਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਦੀ ਸੰਬੰਧਿਤ ਸਥਿਤੀ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਵਾਲੀਆਂ ਐਪਾਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਦੀ ਸੰਬੰਧਿਤ ਸਥਿਤੀ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਲਈ ਟਿਕਾਣਾ ਪਹੁੰਚ ਬੰਦ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਐਮਰਜੈਂਸੀ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰਨ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹਾ ਭੇਜਣ \'ਤੇ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਐਮਰਜੈਂਸੀ ਮਦਦਗਾਰਾਂ ਨੂੰ ਭੇਜੀ ਜਾ ਸਕਦੀ ਹੈ।"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"ਬਦਲਣ ਲਈ, ChromeOS ਸੈਟਿੰਗਾਂ &gt; ਪਰਦੇਦਾਰੀ ਅਤੇ ਸੁਰੱਖਿਆ &gt; ਪਰਦੇਦਾਰੀ ਕੰਟਰੋਲ &gt; ਟਿਕਾਣਾ ਪਹੁੰਚ \'ਤੇ ਜਾਓ"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ਚਿਹਰੇ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator ਅਣਲਾਕ"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ਘੜੀ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ਆਪਣੀ ਘੜੀ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ਵਾਚ ਅਣਲਾਕ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ਘੜੀ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ਘੜੀ ਨੂੰ ਹਟਾਓ"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ਫ਼ੇਸ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਲਈ ਫ਼ੇਸ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ਸੈੱਟਅੱਪ ਦੀ ਲੋੜ ਹੈ"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"ਚਿਹਰੇ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"ਪ੍ਰਾਈਵੇਟ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"ਪ੍ਰਾਈਵੇਟ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ਬਾਹਰ ਜਾਓ"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"ਪ੍ਰਾਈਵੇਟ ਸਪੇਸ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।\nਸੰਭਾਵੀ ਕਾਰਨ ਦੇਖੋ"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ਸੰਭਾਵੀ ਕਾਰਨ ਦੇਖੋ"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ਕੀ ਪ੍ਰਾਈਵੇਟ ਸਪੇਸ ਲਈ ਨਵਾਂ ਲਾਕ ਚੁਣਨਾ ਹੈ?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"ਤੁਸੀਂ ਬਸ ਪ੍ਰਾਈਵੇਟ ਸਪੇਸ ਲਈ ਨਵੇਂ ਲਾਕ ਨੂੰ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਬਿਲਕੁਲ ਉਹੀ ਲਾਕ ਵਰਤੋ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਵਰਤਦੇ ਹੋ"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"ਕੀ ਡੀਵਾਈਸ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"ਵੇਰਵੇ ਵਾਲੀ NFC ਲੌਗਿੰਗ ਨੂੰ ਸਿਰਫ਼ ਵਿਕਾਸ ਦੇ ਉਦੇਸ਼ਾਂ ਲਈ ਬਣਾਇਆ ਗਿਆ ਹੈ। ਬੱਗ ਰਿਪੋਰਟਾਂ ਵਿੱਚ ਵਧੀਕ NFC ਡਾਟਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਪ੍ਰਾਈਵੇਟ ਜਾਣਕਾਰੀ ਸ਼ਾਮਲ ਹੋ ਸਕਦੀ ਹੈ। ਇਸ ਸੈਟਿੰਗ ਨੂੰ ਬਦਲਣ ਲਈ ਆਪਣਾ ਡੀਵਾਈਸ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ।"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ਚਾਲੂ"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ਬੰਦ ਹੈ"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ਬਾਹਰੀ ਡਿਸਪਲੇ"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ਬਾਹਰੀ ਡਿਸਪਲੇ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ਡਿਸਪਲੇ ਰੈਜ਼ੋਲਿਊਸ਼ਨ"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ਬਾਹਰੀ ਡਿਸਪਲੇ ਡਿਸਕਨੈਕਟ ਹੈ"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"ਘੁਮਾਅ"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"ਮਿਆਰੀ"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"ਘੁਮਾਅ ਜਾਂ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਨੂੰ ਬਦਲਣ ਨਾਲ ਫ਼ਿਲਹਾਲ ਚੱਲ ਰਹੀਆਂ ਕੁਝ ਐਪਾਂ ਬੰਦ ਹੋ ਸਕਦੀਆਂ ਹਨ"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਨੂੰ ਪ੍ਰਤਿਬਿੰਬਿਤ ਕਰਨ ਲਈ, ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਇੱਕ ਬਾਹਰੀ ਡਿਸਪਲੇ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾਣਾ ਲਾਜ਼ਮੀ ਹੈ"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ਹੋਰ ਵਿਕਲਪ"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"ਕਾਸਟ ਕਰੋ"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"ਸ਼ੀਸ਼ਾ"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"ਵਾਇਰਲੈਸ ਡਿਸਪਲੇ ਚਾਲੂ ਕਰੋ"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"ਅਡੈਪਟਿਵ"</string>
     <string name="brightness" msgid="6216871641021779698">"ਚਮਕ ਦਾ ਪੱਧਰ"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"ਅਡੈਪਟਿਵ ਬ੍ਰਾਈਟਨੈੱਸ"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"ਅਡੈਪਟਿਵ ਬ੍ਰਾਈਟਨੈੱਸ ਬਾਰੇ"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਦੀ ਚਮਕ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਵਾਤਾਵਰਨ ਅਤੇ ਤੁਹਾਡੇ ਵੱਲੋਂ ਕੀਤੀਆਂ ਜਾਣ ਵਾਲੀਆਂ ਸਰਗਰਮੀਆਂ ਦੇ ਮੁਤਾਬਕ ਵੱਧ-ਘੱਟ ਹੋਵੇਗੀ। ਅਡੈਪਟਿਵ ਬ੍ਰਾਈਟਨੈੱਸ ਨੂੰ ਤੁਹਾਡੀਆਂ ਤਰਜੀਹਾਂ ਬਾਰੇ ਸਿੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ ਤੁਸੀਂ ਸਲਾਈਡਰ ਨੂੰ ਹੱਥੀਂ ਹਿਲਾ ਸਕਦੇ ਹੋ।"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ਚਾਲੂ"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ਬੰਦ"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ਵਿਕਲਪ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ਪਹੁੰਚਯੋਗਤਾ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ਆਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡ ਨੂੰ ਵਰਤੋ"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਦੌਰਾਨ ਇਸ ਨੂੰ ਸਕ੍ਰੀਨ \'ਤੇ ਬਣਾਈ ਰੱਖੋ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ਬਾਊਂਸ ਕੁੰਜੀਆਂ"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ਮਿਲੀਸਕਿੰਟਾਂ ਵਿੱਚ ਵਾਰ-ਵਾਰ ਇੱਕੋ ਕੁੰਜੀ ਨੂੰ ਦਬਾਉਂਦੇ ਰਹਿਣ \'ਤੇ ਕੀ-ਬੋਰਡ ਉਸਨੂੰ ਅਣਡਿੱਠ ਕਰ ਦਿੰਦਾ ਹੈ"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ਸਲੋ ਕੁੰਜੀਆਂ"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"ਕਿਸੇ ਕੁੰਜੀ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਵਿੱਚ ਲੱਗਣ ਵਾਲੇ ਸਮੇਂ ਨੂੰ <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ਮਿਲੀਸਕਿੰਟਾਂ ਤੱਕ ਵਿਵਸਥਿਤ ਕਰਦਾ ਹੈ"</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="2396247040177734245">"ਮਾਊਸ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਵਰਤੋ।"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"ਪੁਆਇੰਟਰ ਭਰਨ ਦਾ ਸਟਾਈਲ ਪੀਲੇ ਵਿੱਚ ਬਦਲੋ"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"ਪੁਆਇੰਟਰ ਭਰਨ ਦਾ ਸਟਾਈਲ ਗੁਲਾਬੀ \'ਚ ਬਦਲੋ"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"ਪੁਆਇੰਟਰ ਭਰਨ ਦਾ ਸਟਾਈਲ ਨੀਲੇ ਵਿੱਚ ਬਦਲੋ"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"ਪੁਆਇੰਟਰ ਸਟ੍ਰੋਕ ਸਟਾਈਲ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ਸਫ਼ੈਦ"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ਕਾਲਾ"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ਕੋਈ ਨਹੀਂ"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ਟੱਚਪੈਡ ਇਸ਼ਾਰਿਆਂ ਬਾਰੇ ਜਾਣੋ"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ਟਰੈਕਪੈਡ, ਟਰੈਕ ਪੈਡ, ਮਾਊਸ, ਕਰਸਰ, ਸਕ੍ਰੋਲ ਕਰੋ, ਸਵਾਈਪ ਕਰੋ, ਸੱਜਾ ਕਲਿੱਕ, ਕਲਿੱਕ ਕਰੋ, ਪੁਆਇੰਟ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"ਸੱਜਾ ਕਲਿੱਕ, ਟੈਪ ਕਰੋ"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ਵਰਤੋਂ ਦੀ ਚੋਣ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"ਬੋਲੀ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"ਪੁਆਇੰਟਰ ਸਪੀਡ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"ਪੁਆਇੰਟਰ ਦਾ ਸਕੇਲ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"ਪੁਆਇੰਟਰ ਦੇ ਸਕੇਲ ਨੂੰ ਘਟਾਓ"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"ਪੁਆਇੰਟਰ ਦੇ ਸਕੇਲ ਨੂੰ ਵਧਾਓ"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ਗੇਮ ਕੰਟ੍ਰੋਲਰ"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"ਥਰਥਰਾਹਟ ਰੀਡਾਇਰੈਕਟ ਕਰੋ"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"ਕਨੈਕਟ ਕੀਤੇ ਜਾਣ \'ਤੇ ਗੇਮ ਕੰਟਰੋਲਰ \'ਤੇ ਥਰਥਰਾਹਟ ਕਰੋ"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ਫਿਰ ਵੀ ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ਰੱਦ ਕਰੋ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ਵੱਡਦਰਸ਼ੀਕਰਨ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ਇੱਕ ਉਂਗਲ ਨਾਲ ਪੈਨਿੰਗ"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 ਉਂਗਲ ਨਾਲ ਵੱਡਦਰਸ਼ੀ ਨੂੰ ਇੱਧਰ-ਉੱਧਰ ਲਿਜਾਓ"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ਸਕ੍ਰੀਨ \'ਤੇ ਇੱਧਰ-ਉੱਧਰ ਜਾਣ ਲਈ 1 ਉਂਗਲ ਘਸੀਟੋ"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ਇੱਕ ਉਂਗਲ ਨਾਲ ਘਸੀਟ ਕੇ ਵੱਡਦਰਸ਼ੀਕਰਨ ਖੇਤਰ ਨੂੰ ਹਿਲਾਓ।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਘਸੀਟ ਕੇ ਵੱਡਦਰਸ਼ੀਕਰਨ ਖੇਤਰ ਨੂੰ ਹਿਲਾਓ।"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ਸਿਰਫ਼ ਸਕ੍ਰੀਨ ਦਾ ਇੱਕ ਹਿੱਸਾ ਵੱਡਦਰਸ਼ੀਕਰਨ ਦੌਰਾਨ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"ਜ਼ੂਮ ਕਰਨ ਲਈ ਬਟਨ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ਸਮੱਗਰੀ ਨੂੰ ਵੱਡਾ ਕਰਨ ਲਈ ਸਕ੍ਰੀਨ \'ਤੇ ਤੇਜ਼ੀ ਨਾਲ ਜ਼ੂਮ ਵਧਾਓ"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ&lt;br/&gt; {1,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ&lt;br/&gt; {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਇੱਧਰ-ਉੱਧਰ ਜਾਣ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਘਸੀਟੋ&lt;br/&gt; {3,number,integer}. ਜ਼ੂਮ ਵਿੱਚ ਵਾਧ-ਘਾਟ ਕਰਨ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ&lt;br/&gt; {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ&lt;br/&gt;&lt;br/&gt; &lt;b&gt;ਕੁਝ ਸਮੇਂ ਲਈ ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ਪੱਕਾ ਕਰੋ ਕਿ ਤੁਹਾਡੀ ਵੱਡਦਰਸ਼ੀਕਰਨ ਕਿਸਮ ਪੂਰੀ ਸਕ੍ਰੀਨ \'ਤੇ ਸੈੱਟ ਹੈ&lt;br/&gt; {1,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ&lt;br/&gt; {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਕਿਤੇ ਵੀ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖੋ&lt;br/&gt; {3,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਇੱਧਰ-ਉੱਧਰ ਜਾਣ ਲਈ ਉਂਗਲ ਨਾਲ ਘਸੀਟੋ&lt;br/&gt; {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਉਂਗਲ ਚੁੱਕੋ"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ&lt;br/&gt; {1,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ&lt;br/&gt; {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਘੁਮਾਉਣ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਘਸੀਟੋ&lt;br/&gt; {3,number,integer}. ਜ਼ੂਮ ਵਿੱਚ ਵਾਧ-ਘਾਟ ਕਰਨ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ&lt;br/&gt; {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਸ਼ਾਰਟਕੱਟ ਦੀ ਵਰਤੋਂ ਕਰੋ&lt;br/&gt;&lt;br/&gt; ਤੁਸੀਂ ਕੁਝ ਸਮੇਂ ਲਈ ਜ਼ੂਮ ਵਧਾ ਅਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ ਕਰ ਸਕਦੇ ਹੋ।"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;ਜ਼ੂਮ ਵਧਾਉਣ ਲਈ:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਸ਼ਾਰਟਕੱਟ ਵਰਤੋ&lt;br/&gt; {1,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ&lt;br/&gt; {2,number,integer}. ਸਕ੍ਰੀਨ \'ਤੇ ਘੁਮਾਉਣ ਲਈ 1 ਜਾਂ 2 ਉਂਗਲਾਂ ਨਾਲ ਘਸੀਟੋ&lt;br/&gt; {3,number,integer}. ਜ਼ੂਮ ਵਿੱਚ ਵਾਧ-ਘਾਟ ਕਰਨ ਲਈ 2 ਉਂਗਲਾਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ&lt;br/&gt; {4,number,integer}. ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਰੋਕਣ ਲਈ ਸ਼ਾਰਟਕੱਟ ਦੀ ਵਰਤੋਂ ਕਰੋ&lt;br/&gt;&lt;br/&gt; ਤੁਸੀਂ ਕੁਝ ਸਮੇਂ ਲਈ ਜ਼ੂਮ ਵਧਾ ਅਤੇ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ ਕਰ ਸਕਦੇ ਹੋ।"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"ਜਦੋਂ ਵੱਡਦਰਸ਼ੀਕਰਨ ਚਾਲੂ ਹੋਵੇ, ਤੁਸੀਂ ਸਕ੍ਰੀਨ \'ਤੇ ਜ਼ੂਮ ਵਧਾ ਸਕਦੇ ਹੋ।\n\n"<b>"ਜ਼ੂਮ ਕਰਨ ਲਈ"</b>", ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਸਕ੍ਰੀਨ \'ਤੇ ਕਿਤੇ ਵੀ ਟੈਪ ਕਰੋ।\n"<ul><li>"ਸਕ੍ਰੋਲ ਕਰਨ ਲਈ 2 ਜਾਂ ਜ਼ਿਆਦਾ ਉਂਗਲਾਂ ਘਸੀਟੋ"</li>\n<li>" ਜ਼ੂਮ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ 2 ਜਾਂ ਜ਼ਿਆਦਾ ਉਂਗਲਾਂ ਨਾਲ ਚੂੰਢੀ ਭਰੋ"</li></ul>\n\n<b>"ਅਸਥਾਈ ਤੌਰ \'ਤੇ ਜ਼ੂਮ ਕਰਨ ਲਈ"</b>", ਵੱਡਦਰਸ਼ੀਕਰਨ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ ਸਕ੍ਰੀਨ \'ਤੇ ਕੀਤੇ ਵੀ ਸਪਰਸ਼ ਕਰਕੇ ਰੱਖੋ।\n"<ul><li>"ਸਕ੍ਰੀਨ \'ਤੇ ਆਲੇ-ਦੁਆਲੇ ਜਾਣ ਲਈ ਘਸੀਟੋ"</li>\n<li>"ਜ਼ੂਮ ਘਟਾਉਣ ਲਈ ਉਂਗਲ ਚੁੱਕੋ"</li></ul>\n\n"ਤੁਸੀਂ ਕੀ-ਬੋਰਡ ਜਾਂ ਦਿਸ਼ਾ-ਨਿਰਦੇਸ਼ ਪੱਟੀ \'ਤੇ ਜ਼ੂਮ ਵਧਾ ਨਹੀਂ ਸਕਦੇ।"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> ਵਿੱਚੋਂ ਪੰਨਾ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਦਾ ਸ਼ਾਰਟਕੱਟ"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"2 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 2 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 3 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਸਵਿੱਚ ਕਰਨ ਲਈ, ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।}one{# ਉਂਗਲ ਨਾਲ ਆਪਣੀ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਸਵਿੱਚ ਕਰਨ ਲਈ, # ਉਂਗਲ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"ਸਕ੍ਰੀਨ \'ਤੇ %1$d ਵਾਰ ਤੇਜ਼ੀ ਨਾਲ ਟੈਪ ਕਰੋ। ਇਸ ਨਾਲ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਹੌਲੀ ਹੋ ਸਕਦਾ ਹੈ।"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ਤੇਜ਼ੀ ਨਾਲ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ ਉਂਗਲਾਂ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ਸਕ੍ਰੀਨ \'ਤੇ ਟ੍ਰਿਪਲ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"ਤਿੰਨ ਵਾਰ ਟੈਪ ਕਰੋ"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ਸਕ੍ਰੀਨ \'ਤੇ ਤੇਜ਼ੀ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ। ਇਹ ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਇਦ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਹੌਲੀ ਕਰ ਦੇਵੇ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ਅਡਵਾਂਸ"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ <xliff:g id="SERVICE">%1$s</xliff:g> \'ਤੇ ਸੈੱਟ ਹੈ। ਵੱਡਦਰਸ਼ੀਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ, ਫਿਰ ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਚੁਣੋ।"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ਪਹੁੰਚਯੋਗਤਾ ਸੰਕੇਤਾਂ ਨੂੰ <xliff:g id="SERVICE">%1$s</xliff:g> \'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਵਰਤਣ ਲਈ, ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ। ਫਿਰ ਵੱਡਦਰਸ਼ੀਕਰਨ ਚੁਣੋ।"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ਇਹ ਸੇਵਾ ਸਹੀ ਢੰਗ ਨਾਲ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀ ਹੈ।"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ਪਹੁੰਚਯੋਗਤਾ ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਦਿਖਾਓ"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ਲਾਲ-ਹਰਾ"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ਲਾਲ-ਹਰਾ"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"ਅਜਿਹੀ ਸਮੱਸਿਆ, ਜਿਸ ਵਿੱਚ ਲਾਲ ਰੰਗ ਹਰਾ ਦਿਸਦਾ ਹੈ"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"ਅਜਿਹੀ ਸਮੱਸਿਆ, ਜਿਸ ਵਿੱਚ ਹਰਾ ਰੰਗ ਲਾਲ ਦਿਸਦਾ ਹੈ"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"ਨੀਲਾ-ਪੀਲਾ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"ਗ੍ਰੇਸਕੇਲ"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ਤੀਬਰਤਾ"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"ਉਹ ਸਮੱਸਿਆ ਜਿਸ ਵਿੱਚ ਹਰਾ ਰੰਗ ਲਾਲ ਦਿਸਦਾ ਹੈ"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"ਉਹ ਸਮੱਸਿਆ ਜਿਸ ਵਿੱਚ ਲਾਲ ਰੰਗ ਹਰਾ ਦਿਸਦਾ ਹੈ"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ਗ੍ਰੇਸਕੇਲ ਮੋਡ ਜਾਂ ਰੰਗ ਸੁਧਾਈ ਵਿਸ਼ੇਸ਼ਤਾ ਬੰਦ ਹੋਣ \'ਤੇ ਇਹ ਸੈਟਿੰਗ ਉਪਲਬਧ ਨਹੀਂ ਹੁੰਦੀ"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ਡਿਊਟ੍ਰੈਨੋਮਲੀ"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ਪ੍ਰੋਟੈਨੋਮਲੀ"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ਰੰਗ ਅਸਪਸ਼ਟਤਾ"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ਜ਼ਿਆਦਾ ਘੱਟ ਚਮਕ"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"ਸਕ੍ਰੀਨ ਦੀ ਚਮਕ ਜ਼ਿਆਦਾ ਘੱਟ ਕਰੋ"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ਹਰਾ ਨੀਲਾ"</string>
     <string name="color_yellow" msgid="5957551912912679058">"ਪੀਲਾ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ਮਜੈਂਟਾ"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਪੂਰਾ ਕੰਟਰੋਲ ਦੇਣਾ ਹੈ?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਇਹ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"ਕਿਉਂਕਿ ਇੱਕ ਐਪ ਇੱਕ ਇਜਾਜ਼ਤ ਬੇਨਤੀ ਨੂੰ ਅਸਪਸ਼ਟ ਬਣਾ ਰਿਹਾ ਹੈ, ਸੈਟਿੰਗਾਂ ਤੁਹਾਡੇ ਜਵਾਬ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ।"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ਇਸ ਡੀਵਾਈਸ ਦੇ ਪੂਰੇ ਕੰਟਰੋਲ ਲਈ ਬੇਨਤੀ ਕਰ ਰਹੀ ਹੈ। ਸੇਵਾ ਸਕ੍ਰੀਨ ਨੂੰ ਪੜ੍ਹ ਕੇ ਪਹੁੰਚਯੋਗਤਾ ਜ਼ਰੂਰਤਾਂ ਵਾਲੇ ਵਰਤੋਂਕਾਰਾਂ ਵਜੋਂ ਕੰਮ ਕਰ ਸਕਦੀ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਲਈ ਕੰਟਰੋਲ ਦਾ ਇਹ ਪੱਧਰ ਢੁਕਵਾਂ ਨਹੀਂ ਹੈ।"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"ਪੂਰਾ ਕੰਟਰੋਲ ਉਨ੍ਹਾਂ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਹੈ ਜੋ ਪਹੁੰਚਯੋਗਤਾ ਸੰਬੰਧੀ ਲੋੜਾਂ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦੀਆਂ ਹਨ, ਪਰ ਜ਼ਿਆਦਾਤਰ ਐਪਾਂ ਲਈ ਢੁਕਵਾਂ ਨਹੀਂ ਹੁੰਦਾ।"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ਸਕ੍ਰੀਨ ਨੂੰ ਦੇਖਣਾ ਅਤੇ ਕੰਟਰੋਲ ਕਰਨਾ"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"ਇਹ ਸਕ੍ਰੀਨ \'ਤੇ ਸਾਰੀ ਸਮੱਗਰੀ ਪੜ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਸਮੱਗਰੀ ਨੂੰ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਪਰ ਦਿਖਾ ਸਕਦੀ ਹੈ।"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ਕਾਰਵਾਈਆਂ ਦੇਖਣਾ ਅਤੇ ਕਰਨਾ"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ਇਹ ਕਿਸੇ ਐਪ ਜਾਂ ਹਾਰਡਵੇਅਰ ਸੈਂਸਰ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਅੰਤਰਕਿਰਿਆਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰ ਸਕਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੀ ਤਰਫ਼ੋਂ ਐਪਾਂ ਦੇ ਨਾਲ ਅੰਤਰਕਿਰਿਆ ਕਰ ਸਕਦੀ ਹੈ।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ਕਰਨ ਦਿਓ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ਨਾ ਕਰਨ ਦਿਓ"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ਬੰਦ ਕਰੋ"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ਕੋਈ ਨਹੀਂ}=1{1 ਸਮਾਂ-ਸੂਚੀ ਸੈੱਟ ਹੈ}other{# ਸਮਾਂ-ਸੂਚੀਆਂ ਸੈੱਟ ਹਨ}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ਤਰਜੀਹ ਮੋਡ"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ਕੋਈ ਮੋਡ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ਧਿਆਨ ਭਟਕਾਉਣ ਵਾਲੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਘਟਾਓ ਅਤੇ ਸੌਣ, ਕੰਮ ਕਰਨ, ਡਰਾਈਵ ਕਰਨ ਅਤੇ ਇਸ ਦੌਰਾਨ ਕੁਝ ਵੀ ਕਰਨ ਸੰਬੰਧੀ ਮੋਡਾਂ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ।"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"ਆਪਣਾ ਖੁਦ ਦਾ ਮੋਡ ਬਣਾਓ"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"ਸਿਰਫ਼ ਮਹੱਤਵਪੂਰਨ ਲੋਕਾਂ ਅਤੇ ਐਪਾਂ ਵੱਲੋਂ ਸੂਚਨਾ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"ਕੋਈ ਸਮਾਂ-ਸੂਚੀ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"ਮੋਡ ਦੇ ਆਧਾਰ \'ਤੇ ਸਮਾਂ-ਸੂਚੀ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"ਦਿਨ ਅਤੇ ਸਮਾਂ"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"ਕੰਮਕਾਜੀ ਦਿਨਾਂ ਨੂੰ ਸਵੇਰ 9 ਵਜੇ - ਸ਼ਾਮ 5 ਵਜੇ\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"ਕੈਲੰਡਰ ਇਵੈਂਟ"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ਕਿਰਿਆਸ਼ੀਲ ਹੈ}=2{{mode_1} ਅਤੇ {mode_2} ਕਿਰਿਆਸ਼ੀਲ ਹਨ}=3{{mode_1}, {mode_2} ਅਤੇ {mode_3} ਕਿਰਿਆਸ਼ੀਲ ਹਨ}other{{mode_1}, {mode_2}, ਅਤੇ # ਹੋਰ ਕਿਰਿਆਸ਼ੀਲ ਹਨ}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 ਮੋਡ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਹੋ ਸਕਦਾ ਹੈ}other{# ਮੋਡ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਹੋ ਸਕਦੇ ਹਨ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ਚਾਲੂ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"ਸੈੱਟ ਨਹੀਂ ਹੈ"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"ਬੰਦ ਹੈ"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"ਕੋਈ ਮੋਡ ਬਣਾਓ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"ਵਿਉਂਤਬੱਧ"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ਹੁਣੇ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ਬੰਦ ਕਰੋ"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ਮੋਡ ਨਹੀਂ ਮਿਲਿਆ"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"ਰੁਕਾਵਟਾਂ ਸੀਮਤ ਕਰੋ"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"ਰੁਕਾਵਟਾਂ ਅਤੇ ਧਿਆਨ ਭਟਕਾਉਣ ਵਾਲੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਬਲਾਕ ਕਰੋ"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ਅਲਾਰਮ ਅਤੇ ਮੀਡੀਆ ਧੁਨੀਆਂ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"ਸਮਾਂ-ਸੂਚੀਆਂ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ਸਮਾਂ-ਸੂਚੀਆਂ ਮਿਟਾਓ"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ਮਿਟਾਓ"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"ਨਾਮ ਬਦਲੋ"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ਮਿਟਾਓ"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"ਕੀ \"<xliff:g id="MODE">%1$s</xliff:g>\" ਮੋਡ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ਸੰਪਾਦਨ ਕਰੋ"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"ਸਮਾਂ-ਸੂਚੀਆਂ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"ਸਮਾਂ-ਸੂਚੀ"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਕਰੋ"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"ਕੋਈ ਕੈਲੰਡਰ ਸ਼ਾਮਲ ਕਰੋ"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ਆਪਣਾ ਕੈਲੰਡਰ ਵਰਤੋ"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"ਸਮਾਂ-ਸੂਚੀ"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ਕੋਈ ਸਮਾਂ-ਸੂਚੀ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ਆਪਣੇ ਆਪ ਚਾਲੂ ਕਰਨ ਦੀ ਸੁਵਿਧਾ"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ਇਵੈਂਟ ਦੀ ਸਮਾਂ-ਸੂਚੀ"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ਇਨ੍ਹਾਂ ਇਵੈਂਟਾਂ ਦੌਰਾਨ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ਜਦੋਂ ਸੱਦੇ ਦਾ ਇਹ ਜਵਾਬ ਮਿਲੇ"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"ਸਮਾਂ-ਸੂਚੀ"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"ਸਮਾਂ-ਸੂਚੀ"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ਘੰ., <xliff:g id="MINUTES">%2$d</xliff:g> ਮਿੰ."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"ਸਮਾਂ-ਸੂਚੀ"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ਧੁਨੀ ਵਜਾਉਣ ਵਾਲੀਆਂ ਰੁਕਾਵਟਾਂ ਨੂੰ ਆਗਿਆ ਦਿਓ"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"ਦ੍ਰਿਸ਼ਟੀਗਤ ਗੜਬੜੀਆਂ ਬਲਾਕ ਕਰੋ"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"ਦ੍ਰਿਸ਼ਟੀਗਤ ਸਿਗਨਲ ਦਿਖਣ ਦਿਓ"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"ਉਹ ਸੂਚਨਾਵਾਂ ਜੋ ਤੁਹਾਡੇ ਤੱਕ ਪਹੁੰਚ ਸਕਦੀਆਂ ਹਨ"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"ਵਧੀਕ ਕਾਰਵਾਈਆਂ"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"ਸੂਚਨਾ ਫਿਲਟਰ"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"ਹੋਰ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ਬੰਦ}=1{ਬੰਦ / 1 ਮੋਡ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਹੋ ਸਕਦਾ ਹੈ}other{ਬੰਦ / # ਮੋਡ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਹੋ ਸਕਦੇ ਹਨ}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ਡਿਸਪਲੇ ਸੈਟਿੰਗਾਂ"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ਡਿਸਪਲੇ ਦੇ ਵਿਕਲਪ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"ਗ੍ਰੇਸਕੇਲ"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ਗੂੜ੍ਹੇ ਥੀਮ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"ਗੂੜ੍ਹੇ ਬੈਕਗ੍ਰਾਊਂਡ \'ਤੇ ਹਲਕੀ ਲਿਖਤ ਨੂੰ ਤਰਜੀਹ ਦੇਣ ਲਈ OS ਅਤੇ ਐਪਾਂ ਨੂੰ ਸਵਿੱਚ ਕਰੋ, ਜਿਸਨੂੰ ਦੇਖਣ ਨਾਲ ਅੱਖਾਂ \'ਤੇ ਕੋਈ ਅਸਰ ਨਾ ਪਵੇ ਅਤੇ ਜਿਸ ਨਾਲ ਕੁਝ ਡੀਵਾਈਸਾਂ \'ਤੇ ਬੈਟਰੀ ਦੀ ਕਾਫ਼ੀ ਬਚਤ ਹੁੰਦੀ ਹੈ"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ਕੋਈ ਡਿਸਪਲੇ ਤਬਦੀਲੀ ਨਹੀਂ}=1{{effect_1}}=2{{effect_1} ਅਤੇ {effect_2}}=3{{effect_1}, {effect_2}, ਅਤੇ {effect_3}}other{{effect_1}, {effect_2} ਅਤੇ # ਹੋਰ}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"ਸੀਮਤ ਕਰੋ ਕਿ ਤੁਹਾਨੂੰ ਕਿਹੜੀ ਸੂਚਨਾ ਮਿਲੇ"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"ਕਿਸੇ ਰੁਕਾਵਟ ਨੂੰ ਫਿਲਟਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ਫਿਲਟਰ ਕੀਤੀਆਂ ਸੂਚਨਾਵਾਂ ਲਈ ਡਿਸਪਲੇ ਵਿਕਲਪ"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"\'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਦੇ ਚਾਲੂ ਹੋਣ \'ਤੇ"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ਸੂਚਨਾਵਾਂ ਦੀ ਕੋਈ ਧੁਨੀ ਨਹੀਂ"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"ਸੂਚਨਾ ਖੋਲ੍ਹੋ"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"ਸੂਚਨਾਵਾਂ ਨੂੰ ਸਨੂਜ਼ ਕਰਨ ਦਿਓ"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ਐਪ ਪ੍ਰਤੀਕ \'ਤੇ ਸੂਚਨਾ ਬਿੰਦੂ"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"ਸੂਚਨਾ ਦੇ ਬੰਡਲ"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"ਬਬਲ"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"ਬਬਲ"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ਇਸ ਗੱਲਬਾਤ ਨੂੰ ਬਬਲ ਵਜੋਂ ਦਿਖਾਓ"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"ਜੇ ਤੁਹਾਨੂੰ ਘੱਟ ਸਮੇਂ ਵਿੱਚ ਕਈ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਹੁੰਦੀਆਂ ਹਨ, ਤਾਂ ਤੁਹਾਡਾ ਫ਼ੋਨ ਦੋ ਮਿੰਟਾਂ ਤੱਕ ਅਵਾਜ਼ ਨੂੰ ਘਟਾ ਦੇਵੇਗਾ ਅਤੇ ਸਕ੍ਰੀਨ \'ਤੇ ਪੌਪ-ਅੱਪਾਂ ਨੂੰ ਛੋਟਾ ਕਰ ਦੇਵੇਗਾ। ਕਾਲਾਂ, ਅਲਾਰਮਾਂ ਅਤੇ ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ ਸੰਬੰਧੀ ਸੂਚਨਾਵਾਂ ਹਾਲੇ ਵੀ ਥਰਥਰਾਹਟ ਕਰਨਗੀਆਂ, ਧੁਨੀ ਵਜਾਉਣਗੀਆਂ ਜਾਂ ਸਕ੍ਰੀਨ \'ਤੇ ਦਿਖਾਈ ਦੇਣਗੀਆਂ ਅਤੇ ਜਦੋਂ ਤੁਸੀਂ ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ ਤੋਂ ਹੇਠਾਂ ਵੱਲ ਖਿੱਚੋਗੇ, ਤਾਂ ਸਾਰੀਆਂ ਸੂਚਨਾਵਾਂ ਆਸਾਨੀ ਨਾਲ ਮਿਲ ਜਾਣਗੀਆਂ।"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਐਪਾਂ \'ਤੇ ਲਾਗੂ ਕਰੋ"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR ਮਦਦਗਾਰ ਸੇਵਾਵਾਂ"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"ਸ਼੍ਰੇਣੀਆਂ"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"ਹੋਰ"</string>
     <string name="no_channels" msgid="4716199078612071915">"ਇਸ ਐਪ ਨੇ ਕੋਈ ਵੀ ਸੂਚਨਾ ਪੋਸਟ ਨਹੀਂ ਕੀਤੀ ਹੈ"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"ਅਣਵਰਤੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਦਿਖਾਓ"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ਐਪ ਵਿੱਚ ਵਧੀਕ ਸੈਟਿੰਗਾਂ"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"ਅਣਵਰਤੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਦਿਖਾਓ"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ਅਣਵਰਤੀਆਂ ਸ਼੍ਰੇਣੀਆਂ ਲੁਕਾਓ"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"ਗੱਲਾਂਬਾਤਾਂ"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"ਸਾਰੀਆਂ ਗੱਲਾਂਬਾਤਾਂ"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"ਸਾਰੀਆਂ ਗੱਲਾਂਬਾਤਾਂ"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ਕੋਈ ਨਹੀਂ"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"ਐਪਾਂ ਜੋ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ਚੁਣੀਆਂ ਗਈਆਂ ਐਪਾਂ"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ਕੋਈ ਨਹੀਂ"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ਸਭ"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ਕੋਈ ਵੀ ਐਪ ਰੁਕਾਵਟ ਨਹੀਂ ਪਾ ਸਕਦੀ}=1{{app_1} ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}=2{{app_1} ਅਤੇ {app_2} ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}=3{{app_1}, {app_2} ਅਤੇ {app_3} ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}other{{app_1}, {app_2} ਅਤੇ # ਹੋਰ ਐਪਾਂ ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ਕੰਮ ਦੇ ਲਈ)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ਗਣਨਾ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ਐਪਾਂ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਦਿਓ"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ਐਪਾਂ ਜੋ ਵਿਘਨ ਪਾ ਸਕਦੀਆਂ ਹਨ"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"ਹੋਰ ਐਪਾਂ ਚੁਣੋ"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"ਵਾਰ-ਵਾਰ ਕਾਲ ਕਰਨ ਵਾਲਿਆਂ ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"ਸਾਰੇ ਲੋਕ ਵਿਘਨ ਪਾ ਸਕਦੇ ਹਨ"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ਦੁਬਾਰਾ ਕਾਲ ਕਰਨ ਵਾਲੇ"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"ਦੁਬਾਰਾ ਕਾਲ ਕਰਨ ਵਾਲਿਆਂ ਨੂੰ ਆਗਿਆ ਦਿਓ"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} ਤੱਕ ਸਿਰਫ਼ ਇੱਕ ਘੰਟੇ ਲਈ ਅਲਾਰਮਾਂ ਵਿੱਚ ਬਦਲੋ}one{{time} ਤੱਕ ਸਿਰਫ਼ # ਘੰਟੇ ਲਈ ਅਲਾਰਮਾਂ ਵਿੱਚ ਬਦਲੋ}other{{time} ਤੱਕ ਸਿਰਫ਼ # ਘੰਟਿਆਂ ਲਈ ਅਲਾਰਮਾਂ ਵਿੱਚ ਬਦਲੋ}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"ਅਲਾਰਮ ਨੂੰ ਸਿਰਫ਼ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> ਤੱਕ ਬਦਲੋ"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ਹਮੇਸ਼ਾਂ ਵਿਘਨ ਪਾਓ ਵਿੱਚ ਬਦਲੋ"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"ਨਾਮ ਬਦਲੋ"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ਪ੍ਰਤੀਕ ਬਦਲੋ"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ਪ੍ਰਤੀਕ ਬਦਲੋ"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ਸੰਪਾਦਨ ਮੋਡ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"ਕੋਈ ਮੋਡ ਬਣਾਓ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"ਵਿਉਂਤਬੱਧ ਮੋਡ"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ਮੋਡ ਦਾ ਨਾਮ"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"ਕੈਲੰਡਰ ਇਵੈਂਟ"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"ਸੌਣ ਦਾ ਨਿਯਮਿਤ ਸਮਾਂ"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ਗੱਡੀ ਚਲਾਉਣ ਵੇਲੇ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ਐਪ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਵਿੱਚ ਜਾਣਕਾਰੀ ਅਤੇ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"ਕੀ <xliff:g id="MODE_NAME">%1$s</xliff:g> ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"ਬੰਦ ਹੋਣ \'ਤੇ ਇਹ ਮੋਡ ਕਦੇ ਵੀ ਚਾਲੂ ਨਹੀਂ ਹੋਵੇਗਾ"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"ਬੰਦ ਕਰੋ"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"ਕੀ <xliff:g id="MODE_NAME">%1$s</xliff:g> ਚਾਲੂ ਕਰਨਾ ਹੈ?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ਇਹ ਮੋਡ ਇਸਦੀਆਂ ਸੈਟਿੰਗਾਂ ਦੇ ਆਧਾਰ \'ਤੇ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਚਾਲੂ ਹੋ ਸਕਦਾ ਹੈ"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ਚਾਲੂ ਕਰੋ"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"ਨਿਯਮਿਤ ਸਮਾਂ-ਸੂਚੀ ਦੀ ਪਾਲਣਾ ਕਰਨ ਵਾਲਾ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"ਕੈਲੰਡਰ ਇਵੈਂਟਾਂ ਅਤੇ ਸੱਦੇ ਸੰਬੰਧੀ ਜਵਾਬਾਂ ਨਾਲ ਸਿੰਕ ਕਰਨ ਲਈ ਮੋਡ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"ਅਨੰਦਮਈ ਧੁਨੀਆਂ ਸੁਣਦੇ ਹੋਏ ਸੌਣ ਦਾ ਨਿਯਮ ਬਣਾਓ। ਅਲਾਰਮ ਸੈੱਟ ਕਰੋ, ਸਕ੍ਰੀਨ ਦੀ ਚਮਕ ਨੂੰ ਮੱਧਮ ਕਰੋ ਅਤੇ ਸੂਚਨਾਵਾਂ ਨੂੰ ਬਲਾਕ ਕਰੋ।"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰ ਕੇ ਅਤੇ ਬਿਨਾਂ ਧਿਆਨ ਭਟਕਾਏ ਡਰਾਈਵ ਕਰਨ ਲਈ ਸੜਕ \'ਤੇ ਸੁਰੱਖਿਆ ਨੂੰ ਤਰਜੀਹ ਦਿਓ"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"ਚਿਤਾਵਨੀ"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"ਬੰਦ ਕਰੋ"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ਇਸ ਡੀਵਾਈਸ ਬਾਰੇ ਵਿਚਾਰ ਭੇਜੋ"</string>
@@ -4791,10 +4862,10 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"ਕੇਸ"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"ਬੈਟਰੀ"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ਸੈਟਿੰਗਾਂ ਪੈਨਲ"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ਡੈਸਕਟਾਪ ਮੋਡ ਜ਼ਬਰਦਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇ \'ਤੇ ਪ੍ਰਯੋਗਮਈ ਡੈਸਕਟਾਪ ਮੋਡ ਜ਼ਬਰਦਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
-    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ਮਲਟੀ-ਵਿੰਡੋ ਵਿੱਚ ਆਕਾਰ ਨਾ-ਬਦਲਣਯੋਗ ਬਣਾਉਣ ਦੀ ਸੁਵਿਧਾ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
-    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ਮਲਟੀ-ਵਿੰਡੋ ਵਿੱਚ ਆਕਾਰ ਨਾ ਬਦਲਣਯੋਗ ਬਣਾਉਣ ਦੀ ਸੁਵਿਧਾ ਵਾਲੀਆਂ ਐਪਾਂ ਨੂੰ ਆਗਿਆ ਦਿੰਦੀ ਹੈ"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ਫ੍ਰੀਫਾਰਮ ਵਿੰਡੋਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇ \'ਤੇ ਫ਼੍ਰੀਫ਼ਾਰਮ ਵਿੰਡੋਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ਆਕਾਰ ਨਾ-ਬਦਲਣਯੋਗ ਐਪਾਂ ਨੂੰ ਮਲਟੀ-ਵਿੰਡੋ ਵਿੱਚ ਦਿਖਾਉਣਾ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਵਿੱਚ ਆਕਾਰ ਨਾ ਬਦਲਣਯੋਗ ਐਪਾਂ ਨੂੰ ਮਲਟੀ-ਵਿੰਡੋ ਵਿੱਚ ਦਿਖਾਉਣ ਦੀ ਆਗਿਆ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ਜ਼ਬਰਦਸਤੀ ਗੂੜ੍ਹਾ ਮੋਡ ਓਵਰਰਾਈਡ ਕਰੋ"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"ਜ਼ਬਰਦਸਤੀ ਨਾਲ ਗੂੜ੍ਹਾ ਮੋਡ ਲਾਗੂ ਕਰਨ ਵਾਲੀ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਹਮੇਸ਼ਾਂ-ਚਾਲੂ ਰੱਖਣ ਲਈ ਓਵਰਰਾਈਡ ਕਰਦੀ ਹੈ"</string>
     <string name="privacy_dashboard_title" msgid="6845403825611829558">"ਪਰਦੇਦਾਰੀ"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"ਡੀਵਾਈਸ ਦੇ ਅਨੁਭਵ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ, ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਕਿਸੇ ਵੀ ਸਮੇਂ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਲਈ ਸਕੈਨ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਭਾਵੇਂ ਵਾਈ-ਫਾਈ ਬੰਦ ਹੀ ਕਿਉਂ ਨਾ ਹੋਵੇ। ਇਸ ਦੀ ਵਰਤੋਂ ਟਿਕਾਣਾ-ਆਧਾਰਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਤੁਸੀਂ ਇਸ ਨੂੰ ਵਾਈ‑ਫਾਈ ਸਕੈਨਿੰਗ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"ਬਦਲੋ"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"ਕਨੈਕਟ ਹੈ"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"ਕੁਝ ਸਮੇਂ ਲਈ ਕਨੈਕਟ ਹੈ"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"ਕੁਝ ਸਮੇਂ ਲਈ <xliff:g id="SUBNAME">%1$s</xliff:g> ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ਐਪ ਪਿਨਿੰਗ ਵਰਤੋ"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ ਵਰਤੋ"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ਪ੍ਰਿੰਟ ਸੇਵਾ ਵਰਤੋ"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"ਇੱਕ ਤੋਂ ਵੱਧ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"ਵਰਤੋਂਕਾਰ ਸਵਿੱਚ ਕਰਨ ਸੰਬੰਧੀ ਆਗਿਆ ਦਿਓ"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ਆਗਿਆ ਦਿਓ, ਇੱਕ ਤੋਂ ਵੱਧ, ਵਰਤੋਂਕਾਰ, ਪਰਮਿਟ, ਕਈ"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"ਇੱਕ ਤੋਂ ਵੱਧ, ਵਰਤੋਂਕਾਰ, ਪ੍ਰੋਫਾਈਲ, ਲੋਕ, ਖਾਤੇ, ਸਵਿੱਚ, ਬਹੁਤ ਸਾਰੇ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ਵਾਇਰਲੈੱਸ ਡੀਬੱਗਿੰਗ ਵਰਤੋ"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ਚੁਣੋ ਕਿ ਟੈਬਲੈੱਟ ਡੌਕ ਹੋਣ \'ਤੇ ਤੁਸੀਂ ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਕੀ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਸਕ੍ਰੀਨ ਸੇਵਰ ਦੀ ਵਰਤੋਂ ਹੋਣ \'ਤੇ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਜ਼ਿਆਦਾ ਊਰਜਾ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ।"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ਨੂੰ ਵਿਉਂਤਬੱਧ ਕਰੋ"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ਫ਼੍ਰੀਫ਼ਾਰਮ ਸਹਾਇਤਾ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇਆਂ \'ਤੇ ਡੈਸਕਟਾਪ ਮੋਡ ਨੂੰ ਜ਼ਬਰਦਸਤੀ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ਫ਼੍ਰੀਫ਼ਾਰਮ ਵਿੰਡੋ ਦੇ ਸਮਰਥਨ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ਫ਼੍ਰੀਫ਼ਾਰਮ ਵਿੰਡੋਆਂ ਦੀ ਉਪਲਬਧਤਾ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ਸੈਕੰਡਰੀ ਡਿਸਪਲੇਆਂ \'ਤੇ ਫ਼੍ਰੀਫ਼ਾਰਮ ਵਿੰਡੋਆਂ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਰੀਬੂਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ਹੁਣੇ ਰੀਬੂਟ ਕਰੋ"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"ਬਾਅਦ ਵਿੱਚ ਰੀਬੂਟ ਕਰੋ"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"ਸਪੇਸ਼ਿਅਲ ਆਡੀਓ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ਗੁਲਾਬੀ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ਮੈਜੰਟਾ"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ਜਾਮਣੀ"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"ਹੋ ਗਿਆ"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"ਰੱਖਿਅਤ ਕਰੋ"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ਰੱਦ ਕਰੋ"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"</string>
     <string name="contrast_medium" msgid="384414510709285811">"ਦਰਮਿਆਨਾ"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ਚਾਲੂ"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ਬੰਦ"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ਚਾਲੂ"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ਆਡੀਓ %1$d%% ਖੱਬਾ, %2$d%% ਸੱਜਾ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ਆਡੀਓ %1$d%% ਸੱਜਾ, %2$d%% ਖੱਬਾ"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ ਨੂੰ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰਨ, ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਜਾਂ ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ \'ਤੇ ਇਸਨੂੰ ਹੋਰ ਲੋਕਾਂ ਵੱਲੋਂ ਵੀ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ਵਿਆਕਰਨਿਕ ਲਿੰਗ"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ਵਿਆਕਰਨ ਸੰਬੰਧੀ ਲਿੰਗ ਚੁਣੋ"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ਸਟ੍ਰੀਮ ਸੁਣੋ"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਨਾਲ ਸੁਣਨ ਲਈ ਆਡੀਓ ਸਟ੍ਰੀਮ ਦਾ QR ਕੋਡ ਸਕੈਨ ਕਰੋ"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"ਸਾਂਝਾਕਰਨ ਦੌਰਾਨ ਪਾਸਵਰਡ ਦਾ ਸੰਪਾਦਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਪਾਸਵਰਡ ਬਦਲਣ ਲਈ, ਪਹਿਲਾਂ ਆਡੀਓ ਸਾਂਝਾਕਰਨ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR ਕੋਡ ਸਕੈਨਰ"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ਖੋਜ ਸੈਟਿੰਗਾਂ"</string>
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index 4b710b1..f0c09b3 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Pora snu"</item>
-    <item msgid="4152450357280759894">"Prowadzenie samochodu"</item>
-    <item msgid="7096549258219399423">"Wciągająca rozgrywka"</item>
-    <item msgid="2760716776980432977">"Zarządzane"</item>
-    <item msgid="601734478369121764">"Gwiazdka"</item>
-    <item msgid="6243809315432780521">"Kalendarz"</item>
-    <item msgid="4913577903148415331">"Godzina"</item>
-    <item msgid="3653377604690057780">"Teatr"</item>
-    <item msgid="3843711267408385410">"Kwiat"</item>
+    <item msgid="2750940760340557109">"Półksiężyc"</item>
+    <item msgid="8513969636586738035">"Samochód"</item>
+    <item msgid="957392343846370509">"Umysł osoby"</item>
+    <item msgid="6734164279667121348">"Kalendarz"</item>
+    <item msgid="4139559120353528558">"Zegar"</item>
+    <item msgid="5157711296814769020">"Parasol plażowy"</item>
+    <item msgid="6635328761318954115">"Namiot"</item>
+    <item msgid="1711994778883392255">"Taśma filmowa"</item>
+    <item msgid="9097658401859604879">"Kontroler do gier"</item>
+    <item msgid="755931364157422565">"Hantla gimnastyczna"</item>
+    <item msgid="8894207806795738429">"Osoba rzucająca piłkę"</item>
+    <item msgid="2274801572149555103">"Osoba kopiąca"</item>
+    <item msgid="8795037201506843325">"Pływanie"</item>
+    <item msgid="3558421426169430451">"Osoba wędrująca"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Narzędzia warsztatowe"</item>
+    <item msgid="4595330511709890409">"Teczka"</item>
+    <item msgid="8352738347856724389">"Gwiazda"</item>
+    <item msgid="7082783098151998721">"Kwiat lotosu"</item>
+    <item msgid="5772220259409264724">"Kierownik"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 2da9412..eb6b6b4 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Zawieszony"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Nieznane"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Podgląd"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Kod QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Pomniejsz"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Powiększ"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Zawsze"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Ustawienia urządzenia słuchowego"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Skrót, zgodność z aparatem słuchowym"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Gotowe ustawienia"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Twój audiolog nie zaprogramował żadnych gotowych ustawień"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Nie udało się zaktualizować gotowego ustawienia"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Wyjście audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"O wyjściu audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Wybór języka tej aplikacji nie jest dostępny w Ustawieniach."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Język może się różnić od języków dostępnych w aplikacji. NIektóre aplikacje mogą nie obsługiwać tego ustawienia."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Ustaw języki dla poszczególnych aplikacji."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"System, aplikacje i strony internetowe używają pierwszego obsługiwanego języka z listy preferowanych języków."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Urządzenie, aplikacje i strony internetowe używają pierwszego obsługiwanego języka z listy preferowanych języków.\n\nWiele aplikacji będzie też używać regionu z preferowanego języka do formatowania dat, liczb i jednostek. Aby zmienić region, dodaj język, a następnie wybierz preferowany region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Aby wybrać języki poszczególnych aplikacji, otwórz ustawienia języków w aplikacjach."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Więcej informacji o językach aplikacji"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Zmienić język systemu na %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Wyłączono"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Włączona / # aplikacja ma dostęp do lokalizacji}few{Włączona / # aplikacje mają dostęp do lokalizacji}many{Włączona / # aplikacji ma dostęp do lokalizacji}other{Włączona / # aplikacji ma dostęp do lokalizacji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Wczytuję…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacje z uprawnieniami dostępu do urządzeń w pobliżu mogą określać położenie połączonych urządzeń względem siebie."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacje z uprawnieniami dostępu do urządzeń w pobliżu mogą określać położenie połączonych urządzeń względem siebie."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Dostęp aplikacji i usług do lokalizacji jest wyłączony. Informacje o lokalizacji urządzenia mogą jednak zostać przesłane do ratowników, gdy zadzwonisz lub wyślesz SMS-a na numer alarmowy."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Więcej informacji o ustawieniach lokalizacji"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Aby to zmienić, otwórz Ustawienia ChromeOS &gt; Prywatność i bezpieczeństwo &gt; Ustawienia prywatności &gt; Dostęp do lokalizacji"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodano skan twarzy i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodano skan twarzy, odcisk palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodano skan twarzy, odciski palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Weryfikacja tożsamości jest włączona"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odblokowanie Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Dodano zegarek"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Skonfiguruj zegarek"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Więcej informacji o odblokowywaniu za pomocą zegarka"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj zegarek"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Usuń zegarek"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odblokowywanie odciskiem palca i rozpoznawanie twarzy"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Rozpoznawanie twarzy i odblokowywanie odciskiem palca"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Rozpoznawanie twarzy i odcisku palca w profilu służbowym"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Wymagana konfiguracja"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Dodano skany twarzy i odciski palca"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Konfiguruję przestrzeń prywatną…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Nie udało się skonfigurować przestrzeni prywatnej"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Spróbuj ponownie"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Zakończ"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Przestrzeń prywatna nie jest dostępna.\nZobacz możliwe przyczyny"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Zobacz możliwe przyczyny"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Wybrać nową blokadę dla przestrzeni prywatnej?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Możesz ustawić nową blokadę specjalnie na potrzeby przestrzeni prywatnej albo użyć blokady urządzenia"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Używaj blokady ekranu"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Uruchomić urządzenie ponownie?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Szczegółowe logowanie NFC jest przeznaczone tylko dla programistów. Dodatkowe dane NFC są dołączane do raportów o błędach i mogą zawierać informacje prywatne. Uruchom urządzenie ponownie, aby zmienić to ustawienie."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Uruchom ponownie"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Włączony"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Wyłączony"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Wyświetlacz zewnętrzny"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Używaj wyświetlacza zewnętrznego"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Rozdzielczość wyświetlacza"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Wyświetlacz zewnętrzny jest odłączony"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Obrót"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standardowy"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Obrót wyświetlacza lub zmiana rozdzielczości mogą spowodować zatrzymanie uruchomionych aktualnie aplikacji"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Aby można było wyświetlać odbicie lustrzane ekranu, urządzenie musi być podłączone do wyświetlacza zewnętrznego"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Więcej opcji"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Przesyłanie ekranu"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"odbicie lustrzane"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Wyświetlacz bezprzewodowy"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptacyjne"</string>
     <string name="brightness" msgid="6216871641021779698">"Poziom jasności"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Automatyczna jasność"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Informacje o automatycznej jasności"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Jasność ekranu będzie automatycznie dostosowywana do otoczenia i Twojej aktywności. Możesz ręcznie przesunąć suwak, by pomóc automatycznej jasności poznać Twoje preferencje."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Włączona"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Wył."</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcje"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ułatwienia dostępu"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Klawiatura fizyczna"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Używaj klawiatury ekranowej"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Pozostaw na ekranie, gdy aktywna jest klawiatura fizyczna"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Klawisze zwrócone"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Klawiatura ignoruje szybkie naciśnięcia tego samego klawisza powtórzone w ciągu <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Klawisze powolne"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Czas wymagany do aktywacji naciśnięcia klawisza zmienia się na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Używaj fizycznej klawiatury do sterowania myszą"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Zmień styl wypełnienia na żółty"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Zmień styl wypełnienia na różowy"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Zmień styl wypełnienia na niebieski"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Styl ruchu wskaźnika"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Biały"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Czarny"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Brak"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Poznaj gesty na touchpada"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mysz, myszka, kursor, przewijanie, przesuwanie, kliknięcie prawym przyciskiem, klikanie, wskaźnik"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliknięcie prawym przyciskiem, klikanie, dotknięcie, wybranie, naciśnięcie"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Wybrany przez użytkownika: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Mowa"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Szybkość wskaźnika"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Skala wskaźnika"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Zmniejsz wskaźnik"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Zwiększ wskaźnik"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Kontroler gier"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Przekierowuj wibracje"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Po podłączeniu kontrolera gier przekieruj do niego wibracje"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Kontynuuj mimo to"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anuluj"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ustawienia powiększenia"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Przesuwanie jednym palcem"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Przesuń lupę 1 palcem"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Aby przesunąć ekran, przeciągnij po nim palcem."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Przesuń obszar powiększenia, przeciągając jeden palec."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Przesuń obszar powiększenia, przeciągając dwa palce."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Niedostępne podczas powiększania tylko części ekranu"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Kliknij przycisk, by powiększyć"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Szybko powiększaj ekran, aby dokładniej widzieć jego zawartość"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Aby powiększyć:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Włącz powiększenie za pomocą skrótu&lt;br/&gt; {1,number,integer}. Kliknij ekran&lt;br/&gt; {2,number,integer}. Aby przesuwać powiększony ekran, przeciągaj po nim dwoma palcami&lt;br/&gt; {3,number,integer}. Aby regulować powiększenie, ściągaj i rozciągaj ekran dwoma palcami&lt;br/&gt; {4,number,integer}. Wyłącz powiększenie za pomocą skrótu&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Aby powiększyć tymczasowo:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Sprawdź, czy ustawiony typ powiększenia to pełny ekran&lt;br/&gt; {1,number,integer}. Włącz powiększenie za pomocą skrótu&lt;br/&gt; {2,number,integer}. Naciśnij i przytrzymaj dowolne miejsce na ekranie&lt;br/&gt; {3,number,integer}. Aby przesuwać powiększony ekran, przeciągaj po nim palcem&lt;br/&gt; {4,number,integer}. Podnieś palec, aby wyłączyć powiększenie"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Aby powiększyć:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Włącz powiększenie skrótem.&lt;br/&gt; {1,number,integer}. Kliknij ekran&lt;br/&gt; {2,number,integer}. Aby przesuwać powiększony ekran, przeciągaj po nim 2 palcami&lt;br/&gt; {3,number,integer}. Aby regulować powiększenie, ściągaj i rozciągaj ekran 2 palcami&lt;br/&gt; {4,number,integer}. Aby wyłączyć powiększenie, użyj skrótu&lt;br/&gt;&lt;br/&gt; Możesz też między innymi powiększyć ekran tymczasowo."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Aby powiększyć:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Włącz powiększenie skrótem.&lt;br/&gt; {1,number,integer}. Kliknij ekran&lt;br/&gt; {2,number,integer}. Aby przesunąć ekran, przeciągnij po nim 1 lub 2 palcami.&lt;br/&gt; {3,number,integer}. Aby regulować powiększenie, ściągaj i rozciągaj ekran 2 palcami&lt;br/&gt; {4,number,integer}. Aby wyłączyć powiększenie, użyj skrótu&lt;br/&gt;&lt;br/&gt; Możesz też między innymi powiększyć ekran tymczasowo."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Gdy powiększenie jest włączone, możesz powiększać fragmenty ekranu.\n\n"<b>"Aby powiekszyć"</b>", uruchom powiększenie, a następnie kliknij dowolne miejsce na ekranie.\n"<ul><li>"Przeciągnij co najmniej dwoma palcami, by przewijać."</li>\n<li>"Ściągnij do siebie co najmniej dwa palce, by dostosować powiększenie."</li></ul>\n\n<b>"Aby powiększyć tymczasowo"</b>", uruchom powiększenie, a następnie naciśnij i przytrzymaj dowolne miejsce na ekranie.\n"<ul><li>"Przeciągaj palcem, by poruszać się po ekranie."</li>\n<li>"Unieś palec, by wyłączyć powiększenie."</li></ul>\n\n"Nie można powiększyć klawiatury ani paska nawigacji."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Strona <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> z <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Skrót do przycisku ułatwień dostępu"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Kliknij pływający przycisk"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gest ułatwień dostępu"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Kliknij przycisk ułatwień dostępu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na dole ekranu. Aby przełączać funkcje, naciśnij i przytrzymaj przycisk ułatwień dostępu."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Przesuń dwoma palcami z dołu ekranu w górę.\n\nAby przełączać funkcje, przesuń 2 palcami w górę i przytrzymaj."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Przesuń 3 palcami z dołu ekranu w górę.\n\nAby przełączyć funkcje, przesuń 3 palcami w górę i przytrzymaj."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Przesuń palcem z dołu ekranu w górę. Aby przełączać funkcje, przesuń w górę i przytrzymaj.}few{Przesuń # palcami z dołu ekranu w górę. Aby przełączać funkcje, przesuń # palcami w górę i przytrzymaj.}many{Przesuń # palcami z dołu ekranu w górę. Aby przełączać funkcje, przesuń # palcami w górę i przytrzymaj.}other{Przesuń # palca z dołu ekranu w górę. Aby przełączać funkcje, przesuń # palca w górę i przytrzymaj.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Więcej opcji"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Więcej informacji: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Przyciski głośności"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"przyciski głośności"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Naciśnij i przytrzymaj oba przyciski głośności"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Kliknij dwukrotnie ekran dwoma palcami"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dwukrotnie kliknij %1$d palcami"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Szybko dwukrotnie kliknij ekran %1$d palcami"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kliknij trzykrotnie"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Szybko %1$d-krotnie kliknij ekran – może to spowolnić Twoje urządzenie"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dwukrotnie kliknij %1$d palcami"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Szybko kliknij ekran {0,number,integer} razy dwoma palcami"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Kliknij ekran trzykrotnie"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kliknij trzykrotnie"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Szybko kliknij ekran {0,number,integer} razy. Ten skrót może spowolnić urządzenie."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Zaawansowane"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Przycisk ułatwień dostępu włącza: <xliff:g id="SERVICE">%1$s</xliff:g>. Aby użyć powiększenia, naciśnij i przytrzymaj przycisk ułatwień dostępu, a następnie wybierz powiększenie."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gest ułatwień dostępu jest ustawiony na: <xliff:g id="SERVICE">%1$s</xliff:g>. Aby użyć powiększenia, przesuń dwoma palcami w górę od dołu ekranu i przytrzymaj. Potem wybierz powiększenie."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ta usługa działa nieprawidłowo."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Skróty ułatwień dostępu"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Pokaż w szybkich ustawieniach"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Czerwony–zielony"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Czerwony–zielony"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Czerwony – zielony, słaba percepcja zieleni"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Czerwony – zielony, słaba percepcja czerwieni"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Niebieski–żółty"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Tryb szarości"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensywność"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Słaby zielony, deuteranomalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Słaby czerwony, protanomalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Opcja niedostępna w trybie szarości ani przy wyłączonej korekcji kolorów"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Dodatkowe przyciemnienie"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Dodatkowo przyciemniaj ekran"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyjan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Żółty"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Amarantowy"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Pozwolić usłudze <xliff:g id="SERVICE">%1$s</xliff:g> na pełną kontrolę nad urządzeniem?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"Wymagania <xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Aplikacja Ustawienia nie może zweryfikować Twojej odpowiedzi, ponieważ inna aplikacja zasłania prośbę o udzielenie uprawnień."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Usługa <xliff:g id="SERVICE">%1$s</xliff:g> prosi o pełną kontrolę nad urządzeniem. Ta usługa może odczytywać zawartość ekranu i wykonywać działania w imieniu użytkownika, który potrzebuje ułatwień dostępu. Taki poziom kontroli nie jest odpowiedni w przypadku większości aplikacji."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Pełna kontrola jest odpowiednia dla aplikacji, które ułatwiają Ci dostęp, ale nie należy jej przyznawać wszystkim aplikacjom."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Wyświetlaj i kontroluj ekran"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Może odczytywać całą zawartość ekranu i wyświetlać treść nad innymi aplikacjami."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Wyświetlaj i wykonuj działania"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Może śledzić Twoje interakcje z aplikacjami lub czujnikiem sprzętowym, a także obsługiwać aplikacje za Ciebie."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zezwól"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odmów"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Wyłącz"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Brak}=1{Ustawiono 1 harmonogram}few{Ustawiono # harmonogramy}many{Ustawiono # harmonogramów}other{Ustawiono # harmonogramu}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Nie przeszkadzać"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Tryby priorytetowe"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Dodaj tryb"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Zmniejsz liczbę czynników rozpraszających uwagę i zwiększ skupienie dzięki trybom dostosowanym do pory snu, pracy, jazdy samochodem czy dowolnego innego czasu."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Utwórz własny tryb"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Otrzymuj powiadomienia tylko od ważnych osób i z kluczowych aplikacji"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Ustaw harmonogram"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Harmonogram oparty na"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Data i godzina"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"„Od 9:00 do 17:00 w ciągu tygodnia”"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Wydarzenia w kalendarzu"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Tryb {mode_1} jest aktywny}=2{Tryby {mode_1} i {mode_2} są aktywne}=3{Tryby {mode_1}, {mode_2} i {mode_3} są aktywne}few{Tryby {mode_1}, {mode_2} i # inne są aktywne}many{Tryby {mode_1}, {mode_2} i # innych są aktywne}other{Tryby {mode_1}, {mode_2} i # innego są aktywne}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 tryb może włączać się automatycznie}few{# tryby mogą włączać się automatycznie}many{# trybów może włączać się automatycznie}other{# trybu może włączać się automatycznie}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"WŁ."</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nie ustawiono"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Wyłączony"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Utwórz tryb"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Niestandardowy"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Włącz teraz"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Wyłącz"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Nie znaleziono trybu"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ograniczanie powiadomień"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokuj przerwy i czynniki rozpraszające"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Skonfiguruj <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Włącz tryb Nie przeszkadzać"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Dźwięki alarmów i multimediów mogą ignorować tryb Nie przeszkadzać"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Harmonogramy"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Usuń harmonogramy"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Usuń"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Zmień nazwę"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Usuń"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Usunąć tryb „<xliff:g id="MODE">%1$s</xliff:g>”?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Edytuj"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Harmonogramy"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Harmonogram"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Włącz automatycznie"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Dodaj kalendarz"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Korzystaj z kalendarza"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Zaplanuj"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ustaw harmonogram"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Czas automatycznego włączania"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Harmonogram wydarzenia"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Włącz podczas wydarzeń:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Gdy odpowiedź to:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Harmonogram czasowy"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Zaplanuj"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> godz. <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Harmonogram"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Zezwalaj na powiadomienia dźwiękowe"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokuj wyświetlanie"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Zezwól na sygnały wizualne"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Powiadomienia, które mogą do Ciebie docierać"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Dodatkowe działania"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtry powiadomień"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Więcej ustawień"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Wyłączono}=1{Wyłączono / 1 tryb może włączać się automatycznie}few{Wyłączono / # tryby mogą włączać się automatycznie}many{Wyłączono / # trybów może włączać się automatycznie}other{Wyłączono / # trybu może włączać się automatycznie}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Ustawienia wyświetlania"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opcje wyświetlania"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Tryb szarości"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"włącz ciemny motyw"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Włącz preferowanie jasnego tekstu na ciemnym tle w systemie operacyjnym i aplikacjach, co mniej obciąża oczy i może zapewnić znacznie większą oszczędność energii na niektórych urządzeniach"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Brak zmian dotyczących wyświetlania}=1{{effect_1}}=2{{effect_1} i {effect_2}}=3{{effect_1}, {effect_2} i {effect_3}}few{{effect_1}, {effect_2} i # więcej}many{{effect_1}, {effect_2} i # więcej}other{{effect_1}, {effect_2} i # więcej}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ogranicz źródła powiadomień"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Żadne zakłócenia nie są filtrowane"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opcje wyświetlania filtrowanych powiadomień"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Po włączeniu trybu Nie przeszkadzać"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Brak dźwięku powiadomień"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"otwórz powiadomienie"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Zezwalaj na odkładanie powiadomień"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Kropka powiadomienia na ikonie aplikacji"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Pakiety powiadomień"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Dymki"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Dymki"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Wyświetlaj tę rozmowę w dymkach"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ta aplikacja nie obsługuje ustawień zaawansowanych"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Więcej ustawień"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Więcej ustawień znajdziesz w tej aplikacji"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Powiadomienia adaptacyjne"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Używaj powiadomień adaptacyjnych"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Gdy w krótkim czasie otrzymasz wiele powiadomień, telefon zmniejszy głośność i ograniczy liczbę wyskakujących okienek na ekranie przez maksymalnie 2 minuty. Połączenia, alarmy i rozmowy priorytetowe nadal będą sygnalizowane wibracjami, dźwiękowo lub wyświetlą się na ekranie, a wszystkie powiadomienia będzie można łatwo znaleźć, przesuwając palcem z góry ekranu w dół."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Wyciszanie powiadomień"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Używaj wyciszenia powiadomień"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Gdy w krótkim czasie otrzymasz wiele powiadomień, urządzenie zmniejszy głośność i ograniczy liczbę alertów przez maksymalnie 2 minuty. Nie wpłynie to na połączenia, alarmy ani rozmowy priorytetowe. \n\nPowiadomienia otrzymane podczas okresu wyciszenia można zobaczyć po przesunięciu palcem z góry ekranu w dół."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Zastosuj do profili służbowych"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Zastosuj w aplikacjach profilu służbowego"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Usługi pomocnicze rzeczywistości wirtualnej"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorie"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Inne"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ta aplikacja nie opublikowała żadnych powiadomień"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Pokaż nieużywane kategorie"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Dodatkowe ustawienia w aplikacji"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Pokaż nieużywane kategorie"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ukryj nieużywane kategorie"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Rozmowy"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Wszystkie rozmowy"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"wszystkie rozmowy"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Rozmowy priorytetowe"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"rozmowy priorytetowe"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Brak"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikacje, które mogą ignorować tryb Nie przeszkadzać"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Wybrane aplikacje"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Brak"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Wszystkie"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Żadna aplikacja nie może ignorować trybu Nie przeszkadzać}=1{Aplikacja {app_1} może ignorować tryb Nie przeszkadzać}=2{Aplikacje {app_1} i {app_2} mogą ignorować tryb Nie przeszkadzać}=3{Aplikacje {app_1}, {app_2} i {app_3} mogą ignorować tryb Nie przeszkadzać}few{Aplikacje {app_1}, {app_2} i jeszcze # inne mogą ignorować tryb Nie przeszkadzać}many{Aplikacje {app_1}, {app_2} i jeszcze # innych mogą ignorować tryb Nie przeszkadzać}other{Aplikacje {app_1}, {app_2} i jeszcze inne (#) mogą ignorować tryb Nie przeszkadzać}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (służbowa)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Obliczam…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Zezwól na zastępowanie przez aplikacje"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacje, które mogą ignorować tryb Nie przeszkadzać"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Wybierz więcej aplikacji"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nic nie może ignorować trybu Nie przeszkadzać"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nikt nie może ignorować trybu Nie przeszkadzać"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Niektóre osoby mogą ignorować tryb Nie przeszkadzać"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Powtórnie dzwoniący będą sygnalizowani"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Wszyscy mogą ignorować tryb Nie przeszkadzać"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Dzwoniący powtórnie"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Zezwalaj na połączenia od dzwoniących powtórnie"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Zmień na alarmy tylko na 1 godzinę do {time}}few{Zmień na alarmy tylko na # godziny do {time}}many{Zmień na alarmy tylko na # godzin do {time}}other{Zmień na alarmy tylko na # godziny do {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Zmień na same alarmy do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Zmień na ciągle powiadamianie"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Zmień nazwę"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Zmień ikonę"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Zmień ikonę"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edytuj tryb"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Utwórz tryb"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Tryb niestandardowy"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nazwa trybu"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Wydarzenia w kalendarzu"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutyna wieczorna"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Podczas jazdy"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Ustawienia aplikacji"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacje i ustawienia w aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Zarządzane przez aplikację <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Wyłączyć tryb <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Wyłączony tryb nigdy nie włączy się automatycznie"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Wyłącz"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Włączyć tryb <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Zależnie od ustawień ten tryb może się włączać automatycznie"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Włącz"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Ustaw tryb działający według zwyczajowego harmonogramu"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Ustaw tryb synchronizacji z wydarzeniami w kalendarzu i odpowiedziami na zaproszenia"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Opracuj wyciszającą rutynę przed snem. Ustaw alarmy, przyciemnij ekran i wyłącz powiadomienia."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Zadbaj o bezpieczeństwo na drodze i odpowiednie skupienie podczas jazdy"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Ogranicz rozpraszające uwagę powiadomienia z urządzenia, aby lepiej się skupić"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Zadbaj o odpowiednie warunki, wyciszając rozpraszające uwagę powiadomienia"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Spersonalizuj ustawienia i działanie urządzenia dla różnych użytkowników"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Ogranicz rozpraszające uwagę powiadomienia, zezwalając tylko na te od najważniejszych osób i z niezbędnych aplikacji"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Ostrzeżenie"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Zamknij"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Prześlij opinię o tym urządzeniu"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Etui"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel ustawień"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Wymuś tryb pulpitu"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Wymuś eksperymentalny tryb pulpitu na dodatkowych ekranach"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Włącz dowolny rozmiar okien"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Włącz dowolny rozmiar okien na dodatkowym ekranie"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Włącz brak możliwości zmiany rozmiaru w trybie wielu okien"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Zezwala na wyświetlanie aplikacji bez możliwości zmiany rozmiaru w trybie wielu okien"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Wymuszaj tryb ciemny"</string>
@@ -4969,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilna transmisja danych"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Aby zwiększyć komfort korzystania z urządzenia, aplikacje i usługi mogą wyszukiwać sieci Wi-Fi w dowolnym momencie, nawet gdy Wi-Fi jest wyłączone. Może to np. pomóc usprawnić działanie funkcji i usług opartych na lokalizacji. Możesz zmienić tę opcję w ustawieniach skanowania Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Zmień"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Połączono"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tymczasowe połączenie"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Tymczasowo z wykorzystaniem usługi <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5001,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Używaj przypinania aplikacji"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Używaj opcji programisty"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Używaj usługi drukowania"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Zezwalaj na wielu użytkowników"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Pozwól na przełączanie użytkowników"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"zezwalać, wiele, użytkownik, pozwolenie, dużo"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"kilka, użytkownicy, profile, ludzie, konta, przełącznik, wiele"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Używaj debugowania bezprzewodowego"</string>
@@ -5115,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Wybierz, co ma być widoczne na ekranie, kiedy tablet będzie zadokowany. Urządzenie może pobierać więcej energii podczas korzystania z wygaszacza ekranu."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Dostosuj"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Dostosuj wygaszacz ekranu <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Włączenie obsługi trybu dowolnego wymaga ponownego uruchomienia."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Wymuszenie wersji na komputery na dodatkowych wyświetlaczach wymaga ponownego uruchomienia."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Włączenie obsługi okien o dowolnym rozmiarze wymaga ponownego uruchomienia."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Aktualizacja dostępności dowolnego rozmiaru okien wymaga ponownego uruchomienia."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Włączenie dowolnego rozmiaru okien na dodatkowych ekranach wymaga ponownego uruchomienia."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Uruchom ponownie teraz"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Uruchom ponownie później"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Dźwięk przestrzenny"</string>
@@ -5213,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Pudrowy róż"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Amarantowy"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Fioletowy"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Gotowe"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Zapisz"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Anuluj"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Domyślny"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Średni"</string>
@@ -5234,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Włączone"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Wyłączono"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Włączono"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Dźwięk %1$d%% lewa strona, %2$d%% prawa strona"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Dźwięk %1$d%% prawa strona, %2$d%% lewa strona"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nazwa urządzenia jest widoczna dla zainstalowanych przez Ciebie aplikacji. Mogą ją też zobaczyć inne osoby, gdy łączysz się z urządzeniami przez Bluetooth, łączysz się z siecią Wi-Fi lub konfigurujesz hotspot Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Rodzaj gramatyczny"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Wybierz rodzaj gramatyczny"</string>
@@ -5345,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Posłuchaj strumienia"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Zeskanuj kod QR strumienia audio, aby słuchać na urządzeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Podczas udostępniania nie można edytować hasła. Aby je zmienić, najpierw wyłącz udostępnianie dźwięku."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skaner kodów QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Ustawienia wyszukiwania"</string>
 </resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index 685f175..39861f4 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Hora de dormir"</item>
-    <item msgid="4152450357280759894">"Ao dirigir"</item>
-    <item msgid="7096549258219399423">"Imersivo"</item>
-    <item msgid="2760716776980432977">"Gerenciado"</item>
-    <item msgid="601734478369121764">"Marcar com estrela"</item>
-    <item msgid="6243809315432780521">"Agenda"</item>
-    <item msgid="4913577903148415331">"Horário"</item>
-    <item msgid="3653377604690057780">"Teatro"</item>
-    <item msgid="3843711267408385410">"Flor"</item>
+    <item msgid="2750940760340557109">"Meia-lua"</item>
+    <item msgid="8513969636586738035">"Carro"</item>
+    <item msgid="957392343846370509">"Mente humana"</item>
+    <item msgid="6734164279667121348">"Agenda"</item>
+    <item msgid="4139559120353528558">"Relógio"</item>
+    <item msgid="5157711296814769020">"Guarda-sol"</item>
+    <item msgid="6635328761318954115">"Barraca"</item>
+    <item msgid="1711994778883392255">"Rolo de filme"</item>
+    <item msgid="9097658401859604879">"Controle de jogos"</item>
+    <item msgid="755931364157422565">"Peso de academia"</item>
+    <item msgid="8894207806795738429">"Pessoa jogando bola"</item>
+    <item msgid="2274801572149555103">"Pessoa chutando"</item>
+    <item msgid="8795037201506843325">"Natação"</item>
+    <item msgid="3558421426169430451">"Pessoa escalando"</item>
+    <item msgid="7455070421232184932">"Golfe"</item>
+    <item msgid="5841773092449126508">"Ferramentas"</item>
+    <item msgid="4595330511709890409">"Maleta"</item>
+    <item msgid="8352738347856724389">"Estrela"</item>
+    <item msgid="7082783098151998721">"Flor de lótus"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index a4a7a33..96f8ee3 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspenso"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Desconhecido"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pré-visualização"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Tornar menor"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Tornar maior"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Configurações do aparelho auditivo"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Atalho, compatibilidade com aparelhos auditivos"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Predefinição"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Não há predefinições programadas pelo seu audiologista"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Não foi possível atualizar a predefinição"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Saída de áudio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Sobre a saída de áudio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"A seleção de idioma para este app não está disponível nas configurações."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"O idioma pode ser diferente dos disponíveis no app. Alguns apps podem não ter suporte a essa configuração."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Defina o idioma de cada app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"O sistema, os apps e os sites usam o primeiro idioma disponível na sua lista."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"O dispositivo, os apps e os sites usam o primeiro idioma disponível na sua lista.\n\nMuitos apps também vão usar a região do idioma de sua preferência para formatar datas, números e unidades. Se quiser mudar sua região, adicione um idioma e escolha o local que prefere."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para selecionar um idioma para cada app, acesse as configurações de idioma dele."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saiba mais sobre idiomas de apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Mudar o idioma do sistema para %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Configuração desativada"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}one{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregando…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps com permissão para encontrar dispositivos por perto podem determinar a posição relativa dos dispositivos conectados."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps com permissão para encontrar dispositivos próximos podem determinar a posição relativa dos dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda poderá ser enviada a socorristas quando você ligar ou enviar uma mensagem de texto para um número de emergência."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para mudar, acesse \"Configurações do ChromeOS &gt; Privacidade e segurança &gt; Controles de privacidade &gt; Acesso ao local\""</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueio do Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Relógio adicionado"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o relógio"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o \"Desbloqueio do relógio\""</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Desbloqueio facial e por impressão digital"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Rosto e impressões digitais adicionados"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando o espaço privado…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Não foi possível configurar um espaço privado"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar de novo"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Sair"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"O espaço privado não está disponível.\nConferir possíveis causas."</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Conferir possíveis causas"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Escolher outro bloqueio para o espaço privado?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Você pode definir um novo bloqueio para o espaço privado ou usar o mesmo que você usa para desbloquear seu dispositivo"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar o bloqueio de tela"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Reiniciar o dispositivo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O registro detalhado de NFC é destinado apenas a fins de desenvolvimento. Dados NFC extras estão incluídos em relatórios de bugs, que podem conter informações particulares. Reinicie o dispositivo para mudar essa configuração."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Ligada"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desligada"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Tela externa"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Usar tela externa"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolução da tela"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"A tela externa está desconectada"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotação"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Padrão"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Mudar a rotação ou a resolução pode interromper qualquer app que está sendo executado"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"O dispositivo precisa estar conectado a uma tela externa para espelhar a exibição"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Mais opções"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Transmitir"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"espelho"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Ativar tela sem fio"</string>
@@ -969,9 +990,9 @@
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"MAC aleatório"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"Adicionar um dispositivo"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Centralize o QR code abaixo para adicionar o dispositivo a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Ler QR code"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Fazer a leitura do QR code"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"Centralize o QR code abaixo para conectar a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Para acessar a rede Wi-Fi, leia o QR code"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Para acessar a rede Wi-Fi, aponte a câmera para o QR code"</string>
     <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Compartilhar Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="6967364080214325016">"Faça a leitura deste QR code com outro dispositivo para entrar na rede “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="5398619697898444311">"Faça a leitura deste QR code para conectar-se a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptáveis"</string>
     <string name="brightness" msgid="6216871641021779698">"Nível de brilho"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Brilho adaptável"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Sobre o brilho adaptável"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"O brilho da tela será ajustado automaticamente ao seu ambiente e às suas atividades. Mova o controle deslizante para ajudar o brilho adaptável a memorizar suas preferências."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Ativado"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desativado"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Usar teclado na tela"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Manter na tela enquanto o teclado físico estiver ativo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtro"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora pressionamentos rápidos e repetidos da mesma tecla dentro de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta o tempo que leva para um pressionamento de tecla ser ativado para <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Use o teclado físico para controlar o mouse."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mudar preenchimento para amarelo"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mudar preenchimento para rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mudar preenchimento para azul"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo de traço do ponteiro"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Branco"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Preto"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nenhum"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprender gestos do touchpad"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, rolar, deslizar, clicar com o botão direito do mouse, clicar, ponteiro"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clicar com o botão direito do mouse, tocar"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Usuário selecionado: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Fala"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocidade do cursor"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Tamanho do ponteiro"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Diminuir tamanho do ponteiro"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aumentar tamanho do ponteiro"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Controlador de jogos"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirecionar vibração"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Enviar vibração para o controlador de jogo quando conectado"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar mesmo assim"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configurações de ampliação"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Movimento com um dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mova a lupa com 1 dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arraste um dedo para mover a tela."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mova a área de ampliação arrastando um dedo."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mova a área de ampliação arrastando dois dedos."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Indisponível ao ampliar apenas parte da tela"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toque em um botão para aplicar zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Aplique zoom rapidamente na tela para ampliar o conteúdo"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Para aumentar o zoom, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {1,number,integer}. Toque na tela.&lt;br/&gt; {2,number,integer}. Arraste dois dedos para navegar pela tela.&lt;br/&gt; {3,number,integer}. Faça um gesto de pinça com dois dedos para ajustar o zoom.&lt;br/&gt; {4,number,integer}. Use o atalho para interromper a ampliação.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Se quiser aumentar o zoom temporariamente, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Confira se o tipo de ampliação está definido como tela cheia.&lt;br/&gt; {1,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {2,number,integer}. Toque e pressione em qualquer lugar da tela.&lt;br/&gt; {3,number,integer}. Arraste o dedo para navegar pela tela.&lt;br/&gt; {4,number,integer}. Solte para interromper a ampliação."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Para aumentar o zoom, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {1,number,integer}. Toque na tela.&lt;br/&gt; {2,number,integer}. Arraste 2 dedos para navegar pela tela.&lt;br/&gt; {3,number,integer}. Faça um gesto de pinça com 2 dedos para ajustar o zoom.&lt;br/&gt; {4,number,integer}. Pare a ampliação usando um atalho&lt;br/&gt;&lt;br/&gt; Você também pode aumentar o zoom temporariamente e fazer várias outras ações|."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Para aumentar o zoom, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {1,number,integer}. Toque na tela.&lt;br/&gt; {2,number,integer}. Arraste 1 ou 2 dedos para navegar pela tela.&lt;br/&gt; {3,number,integer}. Faça um gesto de pinça com 2 dedos para ajustar o zoom.&lt;br/&gt; {4,number,integer}. Pare a ampliação usando um atalho&lt;br/&gt;&lt;br/&gt; Você também pode aumentar o zoom temporariamente e fazer várias outras ações|."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Quando a ampliação está ativada, você pode aumentar o zoom na tela.\n\n"<b>"Para aplicar zoom"</b>", inicie a ampliação e toque em qualquer lugar da tela.\n"<ul><li>"Arraste dois dedos ou mais para rolar a tela."</li>\n<li>"Faça um gesto de pinça com dois ou mais dedos para ajustar o zoom."</li></ul>\n\n<b>"Para aplicar zoom temporariamente"</b>", inicie a ampliação e depois toque em qualquer ponto na tela e mantenha-o pressionado.\n"<ul><li>"Arraste para mover a tela."</li>\n<li>"Levante o dedo para diminuir o zoom."</li></ul>\n\n"Não é possível aumentar o zoom no teclado e na barra de navegação."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Página <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Atalho para o botão de acessibilidade"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tocar no botão flutuante"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de acessibilidade"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toque no botão de acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte de baixo da tela. Para trocar de recurso, mantenha o botão de acessibilidade pressionado."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com dois dedos, sem soltar."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com três dedos, sem soltar."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Deslize de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima e mantenha a tela pressionada.}one{Deslize com # dedo de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedo e mantenha a tela pressionada.}other{Deslize com # dedos de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedos e mantenha a tela pressionada.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mais opções"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saiba mais sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tocar e manter as duas teclas de volume pressionadas"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tocar duas vezes na tela com dois dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Toque duplo com %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toque rapidamente na tela 2 vezes com %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Toque triplo"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toque rapidamente na tela %1$d vezes. Isso pode deixar o dispositivo mais lento."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocar duas vezes com %1$d dedos na tela"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque na tela {0,number,integer} vezes rapidamente com dois dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocar na tela três vezes"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar três vezes"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toque na tela {0,number,integer} vezes rapidamente. Esse atalho pode deixar o dispositivo mais lento"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avançado"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botão Acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, toque nesse botão, mantenha-o pressionado e selecione a ampliação."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O gesto de acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, deslize de baixo para cima com dois dedos e mantenha a tela pressionada. Em seguida, selecione \"Ampliação\"."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Este serviço está com problemas."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Atalhos de acessibilidade"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostrar em \"Configurações rápidas\""</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Vermelho-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Vermelho-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Vermelho e verde, dificuldade com a cor verde"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Vermelho e verde, dificuldade com a cor vermelha"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de cinza"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Dificuldade com a cor verde, deuteranomalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Dificuldade com a cor vermelha, protanomalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponível para o modo escala de cinza ou quando a correção de cor está desativada"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Escurecer mais a tela"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Deixar a tela ainda mais escura"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Permitir que o <xliff:g id="SERVICE">%1$s</xliff:g> tenha controle total do seu dispositivo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Como um app está ocultando uma solicitação de permissão, as configurações não podem confirmar sua resposta."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando controle total deste dispositivo. O serviço pode ler a tela e realizar ações em nome de usuários com necessidades especiais. Esse nível de controle não é adequado para a maioria dos apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar tela"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e realizar ações"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nenhuma}=1{1 programação definida}one{# programação definida}other{# programações definidas}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Não perturbe"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modos prioritários"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Adicionar um modo"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimize as distrações e controle seu foco com modos de sono, trabalho, direção e tudo mais."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crie seu próprio modo"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Receber notificações apenas de pessoas e apps importantes"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Definir uma programação"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Programação baseada em"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dia e hora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"Das 9h às 17h em dias de semana\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Eventos da agenda"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} está ativo}=2{{mode_1} e {mode_2} estão ativos}=3{{mode_1}, {mode_2} e {mode_3} estão ativos}one{{mode_1}, {mode_2} e mais # modo estão ativos}other{{mode_1}, {mode_2} e mais # modos estão ativos}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modo pode ser ativado automaticamente}one{# modo pode ser ativado automaticamente}other{# modos podem ser ativados automaticamente}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ATIVADO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Não definido"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Desativado"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Criar um modo"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Ativar agora"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desativar"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modo não encontrado"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar interrupções"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloquear interrupções e distrações"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurar <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ativar o Não perturbe"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmes e sons de mídia podem interromper"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programações"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Excluir programações"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Excluir"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Renomear"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Excluir"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Excluir modo \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programações"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programação"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Ativar automaticamente"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Adicione uma agenda"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Use sua agenda"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programação"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Definir uma programação"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Quando ativar automaticamente"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programação de eventos"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Ativar durante eventos para"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Em que a resposta do convite seja"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Programação de horário"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programação"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>h e <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programação"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Permitir interrupções que emitem sons"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquear perturbações visuais"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir sinais visuais"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificações que podem chegar até você"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Ações adicionais"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtros de notificações"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Mais configurações"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desativado}=1{Desativado / 1 modo pode ser ativado automaticamente}one{Desativado / # modo pode ser ativado automaticamente}other{Desativado / # modos podem ser ativados automaticamente}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Configurações de tela"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opções de exibição"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de cinza"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ativar tema escuro"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Muda o SO e os apps para dar preferência a texto claro em um fundo escuro, o que pode facilitar a visualização e oferecer uma economia de bateria significativa em alguns dispositivos"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nenhuma mudança na tela}=1{{effect_1}}=2{{effect_1} e {effect_2}}=3{{effect_1}, {effect_2} e {effect_3}}one{{effect_1}, {effect_2} e mais #}other{{effect_1}, {effect_2} e mais #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limitar quem pode enviar notificações"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nenhuma interrupção está sendo filtrada"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opções de exibição para notificações filtradas"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Quando o Não perturbe estiver ativado"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Desativar som de notificações"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificação"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permitir adiar notificações"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Ponto de notificação no ícone do app"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Pacotes de notificações"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Balões"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balões"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar conversa em um balão"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"O app não é compatível com as configurações avançadas."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Mais configurações"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mais configurações estão disponíveis neste app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificações adaptáveis"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificações adaptáveis"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Se chegarem muitas notificações em um período curto de tempo, o smartphone vai diminuir o volume e minimizar pop-ups na tela por até dois minutos. Ligações, alarmes e conversas prioritárias ainda vão vibrar, emitir um som ou aparecer na tela. Todas as notificações podem ser acessadas ao puxar de cima para baixo na tela."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Período de espera para notificações"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Atenuar notificações"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Se chegarem muitas notificações em um curto período, o dispositivo vai diminuir o volume e minimizar alertas por até 2 minutos. Isso não afeta ligações, alarmes e conversas prioritárias. \n\nAs notificações recebidas durante a atenuação podem ser encontradas ao deslizar de cima para baixo na tela."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfis de trabalho"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar em apps do perfil de trabalho"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de ajuda para RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorias"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Outros"</string>
     <string name="no_channels" msgid="4716199078612071915">"Este app não postou nenhuma notificação"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostrar categorias não usadas"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Configurações avançadas no app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostrar categorias não usadas"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ocultar categorias não usadas"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversas"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Todas as conversas"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"todas as conversas"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversas prioritárias"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversas prioritárias"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nenhuma"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps que podem fazer interrupções"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps selecionados"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nenhum"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todos"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nenhum app pode interromper}=1{{app_1} pode interromper}=2{{app_1} e {app_2} podem interromper}=3{{app_1}, {app_2} e {app_3} podem interromper}one{{app_1}, {app_2} e mais # podem interromper}other{{app_1}, {app_2} e mais # podem interromper}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabalho)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que apps modifiquem o \"Não perturbe\""</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem fazer interrupções"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecionar mais apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguém pode interromper"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Algumas pessoas podem interromper"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Autores de ligações repetidas podem interromper o modo"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Todas as pessoas podem interromper"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Autores de chamadas repetidas"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir autores de chamadas repetidas"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Mudar para somente alarmes por uma hora até {time}}one{Mudar para somente alarmes por # hora até {time}}other{Mudar para somente alarmes por # horas até {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Alterar para \"Somente alarmes\" até <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Alterar para \"Sempre interromper\""</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Renomear"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Mudar ícone"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Mudar ícone"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modo de edição"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Criar um modo"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome do modo"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos da agenda"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rotina Hora de dormir"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ao dirigir"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Configurações do app"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informações e configurações em <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gerenciado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Desativar o <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Este modo nunca será ativado quando estiver desativado"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desativar"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Ativar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Esse modo pode ser ativado automaticamente de acordo com as configurações"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ativar"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Defina um modo que siga uma programação regular"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Defina um modo para sincronizar com eventos da agenda e respostas a convites"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Crie uma rotina de sono relaxante. Defina alarmes, escureça a tela e bloqueie notificações."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Priorize a segurança na estrada para dirigir com foco e sem distrações"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloqueie distrações ou interrupções de seu dispositivo para manter o foco"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimine todas as distrações para ter um ambiente silencioso"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalize as experiências e configurações do dispositivo para diferentes usuários"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimize interrupções, permitindo que apenas pessoas e apps importantes entrem em contato com você"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Alerta"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Fechar"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Enviar feedback sobre o dispositivo"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Estojo"</string>
     <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="force_desktop_mode" msgid="1336913605091334238">"Forçar modo de área de trabalho"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forçar o modo de área de trabalho experimental em telas secundárias"</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_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>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dados móveis"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para melhorar a experiência no dispositivo, os apps e serviços ainda podem procurar redes Wi-Fi a qualquer momento, mesmo quando essa conexão está desativada. Isso pode ser usado, por exemplo, para melhorar recursos e serviços baseados na localização. Você pode mudar essa opção nas configurações de busca por Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Mudar"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectado"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporariamente conectado"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporariamente usando: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar a Fixação de app"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar as opções do desenvolvedor"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usar o serviço de impressão"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permitir vários usuários"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir a troca de usuário"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"autorizar, vários, usuários, permitir, muitos"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"múltiplos, usuários, perfis, pessoas, contas, trocar, vários"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar a depuração por Wi-Fi"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Escolha o que ver na tela quando o tablet estiver na base. O dispositivo pode consumir mais energia quando o protetor de tela é usado."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"É necessário reiniciar o dispositivo para ativar o suporte ao formato livre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar o dispositivo para forçar o modo área de trabalho em telas secundárias."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"É necessário reiniciar o dispositivo para permitir as janelas em formato livre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"É necessário reiniciar o dispositivo para atualizar a disponibilidade de janelas em formato livre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"É necessário reiniciar o dispositivo para permitir janelas em formato livre em telas secundárias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Áudio espacial"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Concluído"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Salvar"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancelar"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Padrão"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Ativada"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desativada"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Ativada"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Áudio: %1$d%% no lado esquerdo e %2$d%% no lado direito"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Áudio: %1$d%% no lado direito e %2$d%% no lado esquerdo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"O nome do dispositivo fica visível para os apps que você instalou. Ele também vai ficar visível para outras pessoas quando você se conectar a dispositivos Bluetooth ou a uma rede Wi-Fi ou quando configurar um ponto de acesso Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gênero gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecionar gênero gramatical"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ouvir o stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Ler o QR code de um stream de áudio para ouvir com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Não é possível editar a senha enquanto compartilha. Para mudar a senha, primeiro desligue o compartilhamento de áudio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Leitor de QR code"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Pesquisar configurações"</string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 98ea987..46447ce 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Hora de dormir"</item>
-    <item msgid="4152450357280759894">"Condução"</item>
-    <item msgid="7096549258219399423">"Envolvente"</item>
-    <item msgid="2760716776980432977">"Gerido"</item>
-    <item msgid="601734478369121764">"Estrela"</item>
-    <item msgid="6243809315432780521">"Calendário"</item>
-    <item msgid="4913577903148415331">"Horas"</item>
-    <item msgid="3653377604690057780">"Cinema"</item>
-    <item msgid="3843711267408385410">"Flor"</item>
+    <item msgid="2750940760340557109">"Meia-lua"</item>
+    <item msgid="8513969636586738035">"Carro"</item>
+    <item msgid="957392343846370509">"A mente da pessoa"</item>
+    <item msgid="6734164279667121348">"Calendário"</item>
+    <item msgid="4139559120353528558">"Relógio"</item>
+    <item msgid="5157711296814769020">"Guarda-sol"</item>
+    <item msgid="6635328761318954115">"Tenda"</item>
+    <item msgid="1711994778883392255">"Bobina de filme"</item>
+    <item msgid="9097658401859604879">"Comando de jogos"</item>
+    <item msgid="755931364157422565">"Haltere de ginásio"</item>
+    <item msgid="8894207806795738429">"Pessoa a atirar uma bola"</item>
+    <item msgid="2274801572149555103">"Pessoa a pontapear"</item>
+    <item msgid="8795037201506843325">"Natação"</item>
+    <item msgid="3558421426169430451">"Pessoa a caminhar"</item>
+    <item msgid="7455070421232184932">"Golfe"</item>
+    <item msgid="5841773092449126508">"Ferramentas de oficina"</item>
+    <item msgid="4595330511709890409">"Pasta de trabalho"</item>
+    <item msgid="8352738347856724389">"Estrela"</item>
+    <item msgid="7082783098151998721">"Flor de lótus"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 3420c1a..46813dd 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspenso"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Desconhecida"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pré-visualizar"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Código QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Diminuir"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Aumentar"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Definições do dispositivo auditivo"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Atalho, compatibilidade com aparelhos auditivos"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Predefinição"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Não existem predefinições programadas pelo seu audiologista"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Não foi possível atualizar a predefinição"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Saída de áudio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Acerca da saída de áudio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"A seleção do idioma para esta app não está disponível a partir das Definições."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"O idioma pode diferir dos idiomas disponíveis na app. Algumas apps podem não suportar esta definição."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Defina o idioma para cada app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"O seu sistema, apps e Websites usam o primeiro idioma suportado dos seus idiomas preferidos."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"O seu dispositivo, apps e Websites usam o primeiro idioma suportado da lista dos seus idiomas preferidos.\n\nMuitas apps também usam a região do seu idioma preferido para formatar datas, números e unidades. Para alterar a sua região, adicione um idioma e, em seguida, selecione a sua região preferida."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para selecionar um idioma para cada app, aceda às definições de idioma da app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saiba mais sobre idiomas de apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Alterar o idioma do sistema para %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desativada"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"A carregar…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"As apps com a autorização Dispositivos próximos podem determinar a posição relativa dos dispositivos ligados."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"As apps com a autorização Dispositivos próximos podem determinar a posição relativa dos dispositivos ligados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda pode ser enviada para os contactos de resposta a emergências quando liga ou envia uma mensagem de texto para um número de emergência."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais acerca das definições de localização"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para alterar, aceda a Definições do ChromeOS &gt; Privacidade e segurança &gt; Controlos de privacidade &gt; Acesso à localização"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"A verificação de identidade está ativada"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueio remoto do Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Relógio adicionado"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configure o seu relógio"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o Desbloqueio com o relógio"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueio facial e por impressão digital"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Desbloqueio facial e por impressão digital"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Rosto e impressões digitais adicionados"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"A configurar o espaço privado…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Não foi possível configurar um espaço privado"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar novamente"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Sair"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"O espaço privado não está disponível.\nVeja as possíveis causas"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Veja as possíveis causas"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Escolher um novo bloqueio para o espaço privado?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Pode definir um novo bloqueio apenas para o espaço privado ou usar o mesmo bloqueio que usa para desbloquear o dispositivo"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueio de ecrã"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Reiniciar o dispositivo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O registo detalhado de NFC destina-se apenas a fins de programação. Os dados de NFC são incluídos em relatórios de erros, que podem conter informações privadas. Reinicie o seu dispositivo para alterar esta definição."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Ativado"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desativado"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ecrã externo"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Usar ecrã externo"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolução do ecrã"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"O ecrã externo está desligado"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotação"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Padrão"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Alterar a rotação ou a resolução pode parar as apps que estejam em execução"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"O seu dispositivo tem de estar ligado a um ecrã externo para espelhar o seu ecrã"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Mais opções"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Transmitir"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"espelhar"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Ativar display sem fios"</string>
@@ -971,7 +991,7 @@
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Centre o código QR abaixo para adicionar o dispositivo a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
     <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Leia o código QR"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"Centre o código QR abaixo para estabelecer ligação a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Leia um código QR para ligar ao Wi-Fi"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Ligue-se ao Wi-Fi com um código QR"</string>
     <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Partilhe Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="6967364080214325016">"Leia este código QR com outro dispositivo para ligar a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="5398619697898444311">"Leia este código QR para se ligar a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptável"</string>
     <string name="brightness" msgid="6216871641021779698">"Nível de luminosidade"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Luminosidade adaptável"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Acerca da luminosidade adaptável"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"A luminosidade do ecrã vai ajustar-se automaticamente ao ambiente e às atividades. Pode mover o controlo de deslize manualmente para permitir que a luminosidade adaptável aprenda as suas preferências."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Ativada"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desativada"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Usar o teclado no ecrã"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Manter no ecrã enquanto o teclado físico estiver ativo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rejeição"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora os toques rápidos repetidos da mesma tecla no espaço de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta o tempo que demora a ativação de uma tecla pressionada para <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Use o teclado físico para controlar o rato"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Alt. est. preenc. pont. p/ amarelo"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Alt. est. preenc. ponteiro p/ rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Alt. est. preenc. ponteiro p/ azul"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo do traço do ponteiro"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Branco"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Preto"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nenhum"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprender gestos do touchpad"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, rato, cursor, deslocar, deslizar, clicar com o botão direito do rato, clicar, ponteiro"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clique com o botão direito do rato, toque"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Utilizador selecionado: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Voz"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocidade do ponteiro"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Tamanho do ponteiro"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Diminuir tamanho do ponteiro"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aumentar tamanho do ponteiro"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Controlador de Jogos"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirecionar vibração"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Enviar a vibração para o controlador do jogo, quando ligado."</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar mesmo assim"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Definições de ampliação"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Deslocação com um dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mover a lupa com 1 dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arraste 1 dedo para percorrer o ecrã"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mova a área de ampliação arrastando um dedo."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mova a área de ampliação arrastando dois dedos."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Indisponível quando amplia apenas parte do ecrã"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tocar num botão para utilizar o zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Aumente o zoom rapidamente no ecrã para ampliar o tamanho do conteúdo"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Para aumentar o zoom:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação&lt;br/&gt; {1,number,integer}. Toque no ecrã&lt;br/&gt; {2,number,integer}. Arraste 2 dedos para deslocar o ecrã&lt;br/&gt; {3,number,integer}. Junte/afaste 2 dedos para ajustar o zoom&lt;br/&gt; {4,number,integer}. Use o atalho para parar a ampliação&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Para aumentar o zoom temporariamente:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Certifique-se de que o tipo de ampliação está definido para ecrã inteiro&lt;br/&gt; {1,number,integer}. Use o atalho para iniciar a ampliação&lt;br/&gt; {2,number,integer}. Toque sem soltar em qualquer parte do ecrã&lt;br/&gt; {3,number,integer}. Arraste o dedo para deslocar o ecrã&lt;br/&gt; {4,number,integer}. Levante o dedo para parar a ampliação"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Para aumentar o zoom:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação&lt;br/&gt; {1,number,integer}. Toque no ecrã&lt;br/&gt; {2,number,integer}. Arraste 2 dedos para percorrer o ecrã&lt;br/&gt; {3,number,integer}. Junte/afaste 2 dedos para ajustar o zoom&lt;br/&gt; {4,number,integer}. Use o atalho para parar a ampliação&lt;br/&gt;&lt;br/&gt; Também pode aumentar o zoom temporariamente e muito mais."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Para aumentar o zoom:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação&lt;br/&gt; {1,number,integer}. Toque no ecrã&lt;br/&gt; {2,number,integer}. Arraste 1 ou 2 dedos para percorrer o ecrã&lt;br/&gt; {3,number,integer}. Junte/afaste 2 dedos para ajustar o zoom&lt;br/&gt; {4,number,integer}. Use o atalho para parar a ampliação&lt;br/&gt;&lt;br/&gt; Também pode aumentar o zoom temporariamente e muito mais."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Quando a ampliação estiver ativada, pode aumentar o zoom no ecrã.\n\n"<b>"Para utilizar o zoom"</b>", inicie a ampliação e, em seguida, toque em qualquer parte do ecrã.\n"<ul><li>"Arraste 2 ou mais dedos para se deslocar."</li>\n<li>"Junte 2 ou mais dedos para ajustar o zoom."</li></ul>\n\n<b>"Para utilizar o zoom temporariamente"</b>", inicie a ampliação e, em seguida, toque sem soltar em qualquer parte do ecrã.\n"<ul><li>"Arraste o dedo para se mover pelo ecrã."</li>\n<li>"Levante o dedo para diminuir o zoom."</li></ul>\n\n"Não é possível aumentar o zoom no teclado nem na barra de navegação."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Página <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Atalho do botão Acessibilidade"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toque no botão flutuante"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de acessibilidade"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toque no botão Acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte inferior do ecrã. Para alternar entre funcionalidades, toque sem soltar no botão Acessibilidade."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Deslize rapidamente com dois dedos para cima a partir da parte inferior do ecrã.\n\nPara alternar entre funcionalidades, deslize rapidamente com dois dedos para cima sem soltar."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Deslize rapidamente com três dedos para cima a partir da parte inferior do ecrã.\n\nPara alternar entre funcionalidades, deslize rapidamente com três dedos para cima sem soltar."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Deslize rapidamente para cima a partir da parte inferior do ecrã. Para alternar entre funcionalidades, deslize rapidamente para cima sem soltar.}other{Deslize rapidamente para cima com # dedos a partir da parte inferior do ecrã. Para alternar entre funcionalidades, deslize rapidamente com # dedos para cima sem soltar.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mais opções"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saiba mais sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Prima sem soltar ambas as teclas de volume"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Toque duas vezes com dois dedos no ecrã"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tocar duas vezes com %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toque rapidamente no ecrã duas vezes com %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tocar três vezes"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toque rapidamente no ecrã %1$d vezes. Esta ação pode tornar o dispositivo mais lento."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocar duas vezes com %1$d dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque rapidamente {0,number,integer} vezes no ecrã com dois dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Toque três vezes no ecrã"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar três vezes"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toque rapidamente {0,number,integer} vezes no ecrã. Este atalho pode tornar o dispositivo mais lento"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avançadas"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botão de acessibilidade está definido para o serviço <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliação, toque sem soltar neste botão e, em seguida, selecione a ampliação."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O gesto de acessibilidade está definido para o serviço <xliff:g id="SERVICE">%1$s</xliff:g>. Para utilizar a ampliação, deslize rapidamente com dois dedos para cima sem soltar a partir da parte inferior do ecrã. Em seguida, selecione a ampliação."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Este serviço está a funcionar incorretamente."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Atalhos de acessibilidade"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostrar nas Definições rápidas"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Vermelho-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Vermelho-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Vermelho-verde, verde fraco"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Vermelho-verde, vermelho fraco"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de cinzentos"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Verde fraco, deuteranomalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Vermelho fraco, protanomalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponível para o modo de escala de cinzentos ou quando a correção da cor está desativada"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Escurecimento extra"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Ativar escurecimento extra"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Permitir que o serviço <xliff:g id="SERVICE">%1$s</xliff:g> tenha controlo total sobre o seu dispositivo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> necessita de:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Uma vez que uma aplicação está a ocultar um pedido de autorização, as Definições não conseguem validar a sua resposta."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"O serviço <xliff:g id="SERVICE">%1$s</xliff:g> está a solicitar o controlo total deste dispositivo. O serviço pode ler o ecrã e agir em nome de utilizadores com necessidades de acessibilidade. Este nível de controlo não é adequado para a maioria das aplicações."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O controlo total é adequado para apps que ajudam nas necessidades de acessibilidade, mas não para a maioria das apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar o ecrã"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o conteúdo do ecrã e sobrepor conteúdo a outras apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e executar ações"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorizar as suas interações com uma app ou um sensor de hardware e interagir com apps em seu nome."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Recusar"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nenhum}=1{1 horário definido}other{# horários definidos}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Não incomodar"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modos de prioridade"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Adicione um modo"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimize distrações e controle a sua atenção com modos para dormir, trabalhar, conduzir e tudo o resto."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crie o seu próprio modo"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Receba notificações só de pessoas e apps importantes"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Definir horário"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Horário com base em"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dia e hora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00 – 17:00, dias úteis\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Eventos de calendário"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} está ativo}=2{{mode_1} e {mode_2} estão ativos}=3{{mode_1}, {mode_2} e {mode_3} estão ativos}other{{mode_1}, {mode_2} e mais # estão ativos}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modo pode ser ativado automaticamente}other{# modos podem ser ativados automaticamente}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ATIVADO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Não definido"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Desativado"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Crie um modo"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizar"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Ativar agora"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desativar"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modo não encontrado"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limite as interrupções"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloqueie as interrupções e as distrações"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurar <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ativar o modo Não incomodar"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Os sons de alarmes e multimédia podem interromper."</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Horários"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Elimine horários"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Eliminar"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Mudar o nome"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Eliminar"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Eliminar modo \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Horários"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Horário"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Ativar automaticamente"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Adicione um calendário"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Use o seu calendário"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Agende"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Defina um horário"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Quando ativar automaticamente"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Horário do evento"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Ative durante eventos para"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Quando a resposta do conv. for"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Horário"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Horário"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Horário"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Permitir interrupções que emitam som"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquear perturbações visuais"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir sinais visuais"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificações que pode receber"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Ações adicionais"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtros de notificações"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Mais definições"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desativado}=1{Desativado/1 modo pode ser ativado automaticamente}other{Desativado/# modos podem ser ativados automaticamente}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Definições de visualização"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opções de visualização"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de cinzentos"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ativar tema escuro"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Mude as opções do sistema operativo e das apps para darem preferência a texto claro num fundo escuro, o que pode ser mais agradável para os olhos e permite poupar significativamente a bateria em alguns dispositivos"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nenhuma alteração de visualização}=1{{effect_1}}=2{{effect_1} e {effect_2}}=3{{effect_1}, {effect_2} e {effect_3}}other{{effect_1}, {effect_2} e mais #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limitar o que pode enviar-lhe notificações"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Sem interrupções filtradas"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opções de visualização para notificações filtradas"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Quando o modo Não incomodar está ativado"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Sem som de notificações"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificação"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permitir a suspensão de notificações"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Ponto de notificação no ícone da app"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Pacotes de notificações"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Balões"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balões"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Apresentar esta conversa como balão"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Esta app não suporta definições avançadas"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Mais definições"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Estão disponíveis mais definições dentro desta app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificações adaptáveis"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Use notificações adaptáveis"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Quando recebe muitas notificações num curto espaço de tempo, o telemóvel baixa o volume e minimiza os pop-ups no ecrã durante um máximo de dois minutos. As chamadas, os alarmes e as conversas com prioridade continuam a vibrar, emitir um som ou aparecer no ecrã e todas as notificações são fáceis de encontrar quando puxa o painel para baixo a partir da parte superior do ecrã."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Repouso das notificações"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Use o repouso das notificações"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Quando recebe muitas notificações num curto espaço de tempo, o dispositivo diminui o volume e minimiza os alertas durante, no máximo, 2 minutos. As chamadas, os alarmes e as conversas com prioridade não são afetadas. \n\nPara encontrar as notificações recebidas durante o repouso, pode puxar o ecrã para baixo a partir da parte superior."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar aos perfis de trabalho"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplique a apps de perfil de trabalho"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de assistente de RV"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorias"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Outra"</string>
     <string name="no_channels" msgid="4716199078612071915">"Esta app não publicou notificações"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostrar categorias não usadas"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Definições adicionais na app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostrar categorias não usadas"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ocultar categorias não usadas"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversas"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Todas as conversas"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"todas as conversas"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversas com prioridade"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversas com prioridade"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nenhuma"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps que podem interromper"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps selecionadas"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nenhuma"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todas"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nenhuma app pode interromper}=1{A app {app_1} pode interromper}=2{As apps {app_1} e {app_2} podem interromper}=3{As apps {app_1}, {app_2} e {app_3} podem interromper}other{As apps {app_1}, {app_2} e mais # podem interromper}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabalho)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"A calcular…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que as apps substituam"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem interromper"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecione mais apps"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguém pode interromper"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Algumas pessoas podem interromper"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Os autores de chamadas repetentes podem interromper"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Todas as pessoas podem interromper"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Autores de chamadas repetentes"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir chamadas repetidas"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Alterar para alarmes apenas durante uma hora até à(s) {time}}other{Alterar para alarmes apenas durante # horas até à(s) {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Alterar para alarmes apenas, até <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Alterar para interromper sempre"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Mudar nome"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Alterar ícone"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Alterar ícone"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Edite o modo"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Crie um modo"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome do modo"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos de calendário"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rotina da hora de dormir"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Durante a condução"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Definições da app"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informações e definições na app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gerido pela app <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Desativar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Este modo nunca vai ser ativado quando estiver desativado"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desativar"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Ativar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Este modo pode ativar-se automaticamente com base nas respetivas definições"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ativar"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Defina um modo que siga um horário regular"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Defina um modo para sincronizar com eventos de calendário e respostas a convites"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Crie uma rotina de sono calmante. Defina alarmes, escureça o ecrã e bloqueie as notificações."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dê prioridade à segurança na estrada para uma condução concentrada e sem distrações"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloqueie as distrações ou interrupções do seu dispositivo para manter a concentração"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimine todas as distrações para um ambiente tranquilo"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalize as experiências e as definições do dispositivo para diferentes utilizadores"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimize as interrupções permitindo apenas que as pessoas e apps importantes entrem em contacto consigo"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Aviso"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Fechar"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Enviar feedback do dispositivo"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Caixa"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Painel Definições"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forçar modo de ambiente de trabalho"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forçar modo de ambiente de trabalho experimental em ecrãs secundários"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Ativar janelas de forma livre no ecrã secundário"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ativar apps não redimensionáveis em multijanelas"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite que as apps não redimensionáveis estejam em multijanelas."</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Substituir forçar o modo escuro"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dados móveis"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para melhorar a experiência do dispositivo, as apps e os serviços podem continuar a procurar redes Wi-Fi em qualquer altura, mesmo quando o Wi-Fi está desativado. Pode usar esta opção, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização. Pode alterar esta opção nas definições de procura de Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Alterar"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Ligado"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ligado temporariamente"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"A usar <xliff:g id="SUBNAME">%1$s</xliff:g> temporariamente"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar fixação de apps"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar opções de programador"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usar serviço de impressão"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permitir vários utilizadores"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir mudança de utilizador"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"autorizar, vários, utilizador, permitir, muitos"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"vários, utilizadores, perfis, pessoas, contas, mudar, muitos"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar depuração sem fios"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Escolha o que é apresentado no ecrã quando o seu tablet está na estação de carregamento. O seu dispositivo pode consumir mais energia quando é usada uma proteção de ecrã."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"É necessário reiniciar para ativar o suporte de forma livre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar para forçar o modo de ambiente de trabalho em ecrãs secundários."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"É necessário reiniciar para ativar o suporte de janelas de formato livre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"É necessário reiniciar para atualizar a disponibilidade das janelas de forma livre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"É necessário reiniciar o sistema para ativar as janelas de forma livre nos ecrãs secundários."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Áudio espacial"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Concluir"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Guardar"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancelar"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Predefinição"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Ativado"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desativadas"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Ativado"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Áudio: %1$d%% do lado esquerdo, %2$d%% do lado direito"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Áudio: %1$d%% do lado direito, %2$d%% do lado esquerdo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"O nome do seu dispositivo é visível para as apps instaladas por si. Também pode ser visto por outras pessoas quando se liga a dispositivos Bluetooth ou a uma rede Wi-Fi, assim como quando configura uma zona Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Género gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecione o género gramatical"</string>
@@ -5257,8 +5329,8 @@
     <string name="audio_sharing_device_group_title" msgid="3019780581643956943">"Dispositivos multimédia ativos"</string>
     <string name="audio_sharing_call_audio_title" msgid="7978867452289583929">"Áudio da chamada"</string>
     <string name="audio_sharing_call_audio_description" msgid="6573621048260616924">"Tocar apenas em <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="audio_sharing_test_sound_title" msgid="6438868185641027763">"Faça tocar um som de teste"</string>
-    <string name="audio_sharing_test_sound_description" msgid="4072462502371937399">"Todas as pessoas que estão a ouvir devem ouvir isso"</string>
+    <string name="audio_sharing_test_sound_title" msgid="6438868185641027763">"Ouvir som de teste"</string>
+    <string name="audio_sharing_test_sound_description" msgid="4072462502371937399">"Todas as pessoas por perto podem ouvir"</string>
     <string name="audio_sharing_stream_settings_title" msgid="1374391898689242036">"Definições da stream de áudio"</string>
     <string name="audio_sharing_stream_name_title" msgid="8156859441897180940">"Nome"</string>
     <string name="audio_sharing_stream_password_title" msgid="7026649168165764602">"Palavra-passe"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ouvir stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Leia o código QR de uma stream de áudio para ouvir com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Não é possível editar a palavra-passe durante a partilha. Para alterar a palavra-passe, primeiro, desative a partilha de áudio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Leitor de códigos QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Pesquise definições"</string>
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index 685f175..39861f4 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Hora de dormir"</item>
-    <item msgid="4152450357280759894">"Ao dirigir"</item>
-    <item msgid="7096549258219399423">"Imersivo"</item>
-    <item msgid="2760716776980432977">"Gerenciado"</item>
-    <item msgid="601734478369121764">"Marcar com estrela"</item>
-    <item msgid="6243809315432780521">"Agenda"</item>
-    <item msgid="4913577903148415331">"Horário"</item>
-    <item msgid="3653377604690057780">"Teatro"</item>
-    <item msgid="3843711267408385410">"Flor"</item>
+    <item msgid="2750940760340557109">"Meia-lua"</item>
+    <item msgid="8513969636586738035">"Carro"</item>
+    <item msgid="957392343846370509">"Mente humana"</item>
+    <item msgid="6734164279667121348">"Agenda"</item>
+    <item msgid="4139559120353528558">"Relógio"</item>
+    <item msgid="5157711296814769020">"Guarda-sol"</item>
+    <item msgid="6635328761318954115">"Barraca"</item>
+    <item msgid="1711994778883392255">"Rolo de filme"</item>
+    <item msgid="9097658401859604879">"Controle de jogos"</item>
+    <item msgid="755931364157422565">"Peso de academia"</item>
+    <item msgid="8894207806795738429">"Pessoa jogando bola"</item>
+    <item msgid="2274801572149555103">"Pessoa chutando"</item>
+    <item msgid="8795037201506843325">"Natação"</item>
+    <item msgid="3558421426169430451">"Pessoa escalando"</item>
+    <item msgid="7455070421232184932">"Golfe"</item>
+    <item msgid="5841773092449126508">"Ferramentas"</item>
+    <item msgid="4595330511709890409">"Maleta"</item>
+    <item msgid="8352738347856724389">"Estrela"</item>
+    <item msgid="7082783098151998721">"Flor de lótus"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index a4a7a33..96f8ee3 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspenso"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Desconhecido"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pré-visualização"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Tornar menor"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Tornar maior"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Sempre"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Configurações do aparelho auditivo"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Atalho, compatibilidade com aparelhos auditivos"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Predefinição"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Não há predefinições programadas pelo seu audiologista"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Não foi possível atualizar a predefinição"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Saída de áudio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Sobre a saída de áudio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"A seleção de idioma para este app não está disponível nas configurações."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"O idioma pode ser diferente dos disponíveis no app. Alguns apps podem não ter suporte a essa configuração."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Defina o idioma de cada app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"O sistema, os apps e os sites usam o primeiro idioma disponível na sua lista."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"O dispositivo, os apps e os sites usam o primeiro idioma disponível na sua lista.\n\nMuitos apps também vão usar a região do idioma de sua preferência para formatar datas, números e unidades. Se quiser mudar sua região, adicione um idioma e escolha o local que prefere."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para selecionar um idioma para cada app, acesse as configurações de idioma dele."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saiba mais sobre idiomas de apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Mudar o idioma do sistema para %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Configuração desativada"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}one{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregando…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps com permissão para encontrar dispositivos por perto podem determinar a posição relativa dos dispositivos conectados."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Apps com permissão para encontrar dispositivos próximos podem determinar a posição relativa dos dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda poderá ser enviada a socorristas quando você ligar ou enviar uma mensagem de texto para um número de emergência."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para mudar, acesse \"Configurações do ChromeOS &gt; Privacidade e segurança &gt; Controles de privacidade &gt; Acesso ao local\""</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueio do Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Relógio adicionado"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o relógio"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o \"Desbloqueio do relógio\""</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Desbloqueio facial e por impressão digital"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Rosto e impressões digitais adicionados"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando o espaço privado…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Não foi possível configurar um espaço privado"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar de novo"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Sair"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"O espaço privado não está disponível.\nConferir possíveis causas."</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Conferir possíveis causas"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Escolher outro bloqueio para o espaço privado?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Você pode definir um novo bloqueio para o espaço privado ou usar o mesmo que você usa para desbloquear seu dispositivo"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar o bloqueio de tela"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Reiniciar o dispositivo?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"O registro detalhado de NFC é destinado apenas a fins de desenvolvimento. Dados NFC extras estão incluídos em relatórios de bugs, que podem conter informações particulares. Reinicie o dispositivo para mudar essa configuração."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reiniciar"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Ligada"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Desligada"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Tela externa"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Usar tela externa"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolução da tela"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"A tela externa está desconectada"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotação"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Padrão"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Mudar a rotação ou a resolução pode interromper qualquer app que está sendo executado"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"O dispositivo precisa estar conectado a uma tela externa para espelhar a exibição"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Mais opções"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Transmitir"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"espelho"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Ativar tela sem fio"</string>
@@ -969,9 +990,9 @@
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"MAC aleatório"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"Adicionar um dispositivo"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Centralize o QR code abaixo para adicionar o dispositivo a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Ler QR code"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Fazer a leitura do QR code"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"Centralize o QR code abaixo para conectar a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Para acessar a rede Wi-Fi, leia o QR code"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Para acessar a rede Wi-Fi, aponte a câmera para o QR code"</string>
     <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Compartilhar Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="6967364080214325016">"Faça a leitura deste QR code com outro dispositivo para entrar na rede “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="5398619697898444311">"Faça a leitura deste QR code para conectar-se a “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptáveis"</string>
     <string name="brightness" msgid="6216871641021779698">"Nível de brilho"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Brilho adaptável"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Sobre o brilho adaptável"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"O brilho da tela será ajustado automaticamente ao seu ambiente e às suas atividades. Mova o controle deslizante para ajudar o brilho adaptável a memorizar suas preferências."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Ativado"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desativado"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Usar teclado na tela"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Manter na tela enquanto o teclado físico estiver ativo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtro"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"O teclado ignora pressionamentos rápidos e repetidos da mesma tecla dentro de <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ajusta o tempo que leva para um pressionamento de tecla ser ativado para <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Use o teclado físico para controlar o mouse."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Mudar preenchimento para amarelo"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Mudar preenchimento para rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Mudar preenchimento para azul"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Estilo de traço do ponteiro"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Branco"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Preto"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Nenhum"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Aprender gestos do touchpad"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, rolar, deslizar, clicar com o botão direito do mouse, clicar, ponteiro"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"clicar com o botão direito do mouse, tocar"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Usuário selecionado: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Fala"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocidade do cursor"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Tamanho do ponteiro"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Diminuir tamanho do ponteiro"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Aumentar tamanho do ponteiro"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Controlador de jogos"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirecionar vibração"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Enviar vibração para o controlador de jogo quando conectado"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar mesmo assim"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configurações de ampliação"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Movimento com um dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mova a lupa com 1 dedo"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Arraste um dedo para mover a tela."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mova a área de ampliação arrastando um dedo."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mova a área de ampliação arrastando dois dedos."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Indisponível ao ampliar apenas parte da tela"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Toque em um botão para aplicar zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Aplique zoom rapidamente na tela para ampliar o conteúdo"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Para aumentar o zoom, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {1,number,integer}. Toque na tela.&lt;br/&gt; {2,number,integer}. Arraste dois dedos para navegar pela tela.&lt;br/&gt; {3,number,integer}. Faça um gesto de pinça com dois dedos para ajustar o zoom.&lt;br/&gt; {4,number,integer}. Use o atalho para interromper a ampliação.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Se quiser aumentar o zoom temporariamente, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Confira se o tipo de ampliação está definido como tela cheia.&lt;br/&gt; {1,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {2,number,integer}. Toque e pressione em qualquer lugar da tela.&lt;br/&gt; {3,number,integer}. Arraste o dedo para navegar pela tela.&lt;br/&gt; {4,number,integer}. Solte para interromper a ampliação."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Para aumentar o zoom, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {1,number,integer}. Toque na tela.&lt;br/&gt; {2,number,integer}. Arraste 2 dedos para navegar pela tela.&lt;br/&gt; {3,number,integer}. Faça um gesto de pinça com 2 dedos para ajustar o zoom.&lt;br/&gt; {4,number,integer}. Pare a ampliação usando um atalho&lt;br/&gt;&lt;br/&gt; Você também pode aumentar o zoom temporariamente e fazer várias outras ações|."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Para aumentar o zoom, faça o seguinte:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Use o atalho para iniciar a ampliação.&lt;br/&gt; {1,number,integer}. Toque na tela.&lt;br/&gt; {2,number,integer}. Arraste 1 ou 2 dedos para navegar pela tela.&lt;br/&gt; {3,number,integer}. Faça um gesto de pinça com 2 dedos para ajustar o zoom.&lt;br/&gt; {4,number,integer}. Pare a ampliação usando um atalho&lt;br/&gt;&lt;br/&gt; Você também pode aumentar o zoom temporariamente e fazer várias outras ações|."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Quando a ampliação está ativada, você pode aumentar o zoom na tela.\n\n"<b>"Para aplicar zoom"</b>", inicie a ampliação e toque em qualquer lugar da tela.\n"<ul><li>"Arraste dois dedos ou mais para rolar a tela."</li>\n<li>"Faça um gesto de pinça com dois ou mais dedos para ajustar o zoom."</li></ul>\n\n<b>"Para aplicar zoom temporariamente"</b>", inicie a ampliação e depois toque em qualquer ponto na tela e mantenha-o pressionado.\n"<ul><li>"Arraste para mover a tela."</li>\n<li>"Levante o dedo para diminuir o zoom."</li></ul>\n\n"Não é possível aumentar o zoom no teclado e na barra de navegação."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Página <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Atalho para o botão de acessibilidade"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tocar no botão flutuante"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto de acessibilidade"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toque no botão de acessibilidade <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na parte de baixo da tela. Para trocar de recurso, mantenha o botão de acessibilidade pressionado."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com dois dedos, sem soltar."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre recursos, deslize de baixo para cima na tela com três dedos, sem soltar."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Deslize de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima e mantenha a tela pressionada.}one{Deslize com # dedo de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedo e mantenha a tela pressionada.}other{Deslize com # dedos de baixo para cima na tela. Para trocar de recurso, deslize de baixo para cima com # dedos e mantenha a tela pressionada.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mais opções"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Saiba mais sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Teclas de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"teclas de volume"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Tocar e manter as duas teclas de volume pressionadas"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tocar duas vezes na tela com dois dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Toque duplo com %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Toque rapidamente na tela 2 vezes com %1$d dedos"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Toque triplo"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Toque rapidamente na tela %1$d vezes. Isso pode deixar o dispositivo mais lento."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tocar duas vezes com %1$d dedos na tela"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque na tela {0,number,integer} vezes rapidamente com dois dedos"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocar na tela três vezes"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tocar três vezes"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Toque na tela {0,number,integer} vezes rapidamente. Esse atalho pode deixar o dispositivo mais lento"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avançado"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"O botão Acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, toque nesse botão, mantenha-o pressionado e selecione a ampliação."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"O gesto de acessibilidade está definido para <xliff:g id="SERVICE">%1$s</xliff:g>. Para usar a ampliação, deslize de baixo para cima com dois dedos e mantenha a tela pressionada. Em seguida, selecione \"Ampliação\"."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Este serviço está com problemas."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Atalhos de acessibilidade"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Mostrar em \"Configurações rápidas\""</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Vermelho-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Vermelho-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Vermelho e verde, dificuldade com a cor verde"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Vermelho e verde, dificuldade com a cor vermelha"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Azul-amarelo"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Escala de cinza"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensidade"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Dificuldade com a cor verde, deuteranomalia"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Dificuldade com a cor vermelha, protanomalia"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponível para o modo escala de cinza ou quando a correção de cor está desativada"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalia"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalia"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalia"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Escurecer mais a tela"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Deixar a tela ainda mais escura"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Ciano"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Amarelo"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Permitir que o <xliff:g id="SERVICE">%1$s</xliff:g> tenha controle total do seu dispositivo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Como um app está ocultando uma solicitação de permissão, as configurações não podem confirmar sua resposta."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> está solicitando controle total deste dispositivo. O serviço pode ler a tela e realizar ações em nome de usuários com necessidades especiais. Esse nível de controle não é adequado para a maioria dos apps."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"O controle total é adequado para apps que ajudam você com as necessidades de acessibilidade, mas não para a maioria dos apps."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ver e controlar tela"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Pode ler todo o conteúdo na tela e mostrar conteúdo sobreposto a outros apps."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ver e realizar ações"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Nenhuma}=1{1 programação definida}one{# programação definida}other{# programações definidas}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Não perturbe"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modos prioritários"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Adicionar um modo"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimize as distrações e controle seu foco com modos de sono, trabalho, direção e tudo mais."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Crie seu próprio modo"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Receber notificações apenas de pessoas e apps importantes"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Definir uma programação"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Programação baseada em"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dia e hora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"Das 9h às 17h em dias de semana\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Eventos da agenda"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} está ativo}=2{{mode_1} e {mode_2} estão ativos}=3{{mode_1}, {mode_2} e {mode_3} estão ativos}one{{mode_1}, {mode_2} e mais # modo estão ativos}other{{mode_1}, {mode_2} e mais # modos estão ativos}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modo pode ser ativado automaticamente}one{# modo pode ser ativado automaticamente}other{# modos podem ser ativados automaticamente}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ATIVADO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Não definido"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Desativado"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Criar um modo"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizado"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Ativar agora"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Desativar"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modo não encontrado"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitar interrupções"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Bloquear interrupções e distrações"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurar <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Ativar o Não perturbe"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmes e sons de mídia podem interromper"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programações"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Excluir programações"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Excluir"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Renomear"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Excluir"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Excluir modo \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editar"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programações"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programação"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Ativar automaticamente"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Adicione uma agenda"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Use sua agenda"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Programação"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Definir uma programação"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Quando ativar automaticamente"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programação de eventos"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Ativar durante eventos para"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Em que a resposta do convite seja"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Programação de horário"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Programação"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g>h e <xliff:g id="MINUTES">%2$d</xliff:g>min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Programação"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Permitir interrupções que emitem sons"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Bloquear perturbações visuais"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permitir sinais visuais"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificações que podem chegar até você"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Ações adicionais"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtros de notificações"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Mais configurações"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Desativado}=1{Desativado / 1 modo pode ser ativado automaticamente}one{Desativado / # modo pode ser ativado automaticamente}other{Desativado / # modos podem ser ativados automaticamente}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Configurações de tela"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opções de exibição"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Escala de cinza"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"ativar tema escuro"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Muda o SO e os apps para dar preferência a texto claro em um fundo escuro, o que pode facilitar a visualização e oferecer uma economia de bateria significativa em alguns dispositivos"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nenhuma mudança na tela}=1{{effect_1}}=2{{effect_1} e {effect_2}}=3{{effect_1}, {effect_2} e {effect_3}}one{{effect_1}, {effect_2} e mais #}other{{effect_1}, {effect_2} e mais #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limitar quem pode enviar notificações"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nenhuma interrupção está sendo filtrada"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opções de exibição para notificações filtradas"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Quando o Não perturbe estiver ativado"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Desativar som de notificações"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"abrir notificação"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permitir adiar notificações"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Ponto de notificação no ícone do app"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Pacotes de notificações"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Balões"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Balões"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Mostrar conversa em um balão"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"O app não é compatível com as configurações avançadas."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Mais configurações"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mais configurações estão disponíveis neste app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificações adaptáveis"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Usar notificações adaptáveis"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Se chegarem muitas notificações em um período curto de tempo, o smartphone vai diminuir o volume e minimizar pop-ups na tela por até dois minutos. Ligações, alarmes e conversas prioritárias ainda vão vibrar, emitir um som ou aparecer na tela. Todas as notificações podem ser acessadas ao puxar de cima para baixo na tela."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Período de espera para notificações"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Atenuar notificações"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Se chegarem muitas notificações em um curto período, o dispositivo vai diminuir o volume e minimizar alertas por até 2 minutos. Isso não afeta ligações, alarmes e conversas prioritárias. \n\nAs notificações recebidas durante a atenuação podem ser encontradas ao deslizar de cima para baixo na tela."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplicar a perfis de trabalho"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplicar em apps do perfil de trabalho"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Serviços de ajuda para RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorias"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Outros"</string>
     <string name="no_channels" msgid="4716199078612071915">"Este app não postou nenhuma notificação"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Mostrar categorias não usadas"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Configurações avançadas no app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Mostrar categorias não usadas"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ocultar categorias não usadas"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversas"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Todas as conversas"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"todas as conversas"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversas prioritárias"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversas prioritárias"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Nenhuma"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Apps que podem fazer interrupções"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Apps selecionados"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nenhum"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Todos"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nenhum app pode interromper}=1{{app_1} pode interromper}=2{{app_1} e {app_2} podem interromper}=3{{app_1}, {app_2} e {app_3} podem interromper}one{{app_1}, {app_2} e mais # podem interromper}other{{app_1}, {app_2} e mais # podem interromper}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (trabalho)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Calculando…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permitir que apps modifiquem o \"Não perturbe\""</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Apps que podem fazer interrupções"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selecionar mais apps"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nada pode interromper"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ninguém pode interromper"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Algumas pessoas podem interromper"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Autores de ligações repetidas podem interromper o modo"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Todas as pessoas podem interromper"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Autores de chamadas repetidas"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permitir autores de chamadas repetidas"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Mudar para somente alarmes por uma hora até {time}}one{Mudar para somente alarmes por # hora até {time}}other{Mudar para somente alarmes por # horas até {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Alterar para \"Somente alarmes\" até <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Alterar para \"Sempre interromper\""</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Renomear"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Mudar ícone"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Mudar ícone"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modo de edição"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Criar um modo"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome do modo"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos da agenda"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rotina Hora de dormir"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ao dirigir"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Configurações do app"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informações e configurações em <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gerenciado por <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Desativar o <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Este modo nunca será ativado quando estiver desativado"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Desativar"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Ativar <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Esse modo pode ser ativado automaticamente de acordo com as configurações"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Ativar"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Defina um modo que siga uma programação regular"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Defina um modo para sincronizar com eventos da agenda e respostas a convites"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Crie uma rotina de sono relaxante. Defina alarmes, escureça a tela e bloqueie notificações."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Priorize a segurança na estrada para dirigir com foco e sem distrações"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloqueie distrações ou interrupções de seu dispositivo para manter o foco"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimine todas as distrações para ter um ambiente silencioso"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalize as experiências e configurações do dispositivo para diferentes usuários"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimize interrupções, permitindo que apenas pessoas e apps importantes entrem em contato com você"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Alerta"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Fechar"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Enviar feedback sobre o dispositivo"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Estojo"</string>
     <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="force_desktop_mode" msgid="1336913605091334238">"Forçar modo de área de trabalho"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forçar o modo de área de trabalho experimental em telas secundárias"</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_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>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dados móveis"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para melhorar a experiência no dispositivo, os apps e serviços ainda podem procurar redes Wi-Fi a qualquer momento, mesmo quando essa conexão está desativada. Isso pode ser usado, por exemplo, para melhorar recursos e serviços baseados na localização. Você pode mudar essa opção nas configurações de busca por Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Mudar"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectado"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Temporariamente conectado"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Temporariamente usando: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Usar a Fixação de app"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Usar as opções do desenvolvedor"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Usar o serviço de impressão"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permitir vários usuários"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permitir a troca de usuário"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"autorizar, vários, usuários, permitir, muitos"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"múltiplos, usuários, perfis, pessoas, contas, trocar, vários"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usar a depuração por Wi-Fi"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Escolha o que ver na tela quando o tablet estiver na base. O dispositivo pode consumir mais energia quando o protetor de tela é usado."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizar"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizar <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"É necessário reiniciar o dispositivo para ativar o suporte ao formato livre."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"É necessário reiniciar o dispositivo para forçar o modo área de trabalho em telas secundárias."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"É necessário reiniciar o dispositivo para permitir as janelas em formato livre."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"É necessário reiniciar o dispositivo para atualizar a disponibilidade de janelas em formato livre."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"É necessário reiniciar o dispositivo para permitir janelas em formato livre em telas secundárias."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reiniciar agora"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Áudio espacial"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violeta"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Concluído"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Salvar"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Cancelar"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Padrão"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Ativada"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Desativada"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Ativada"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Áudio: %1$d%% no lado esquerdo e %2$d%% no lado direito"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Áudio: %1$d%% no lado direito e %2$d%% no lado esquerdo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"O nome do dispositivo fica visível para os apps que você instalou. Ele também vai ficar visível para outras pessoas quando você se conectar a dispositivos Bluetooth ou a uma rede Wi-Fi ou quando configurar um ponto de acesso Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gênero gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecionar gênero gramatical"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ouvir o stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Ler o QR code de um stream de áudio para ouvir com <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Não é possível editar a senha enquanto compartilha. Para mudar a senha, primeiro desligue o compartilhamento de áudio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Leitor de QR code"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Pesquisar configurações"</string>
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 8cdc27a..553224e 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Ora de culcare"</item>
-    <item msgid="4152450357280759894">"La volan"</item>
-    <item msgid="7096549258219399423">"Captivant"</item>
-    <item msgid="2760716776980432977">"Gestionat"</item>
-    <item msgid="601734478369121764">"Stea"</item>
-    <item msgid="6243809315432780521">"Calendar"</item>
-    <item msgid="4913577903148415331">"Ora"</item>
-    <item msgid="3653377604690057780">"Teatru"</item>
-    <item msgid="3843711267408385410">"Floare"</item>
+    <item msgid="2750940760340557109">"Semilună"</item>
+    <item msgid="8513969636586738035">"Mașină"</item>
+    <item msgid="957392343846370509">"Mintea unei persoane"</item>
+    <item msgid="6734164279667121348">"Calendar"</item>
+    <item msgid="4139559120353528558">"Ceas"</item>
+    <item msgid="5157711296814769020">"Umbrelă de plajă"</item>
+    <item msgid="6635328761318954115">"Cort"</item>
+    <item msgid="1711994778883392255">"Bobină de film"</item>
+    <item msgid="9097658401859604879">"Controler de jocuri"</item>
+    <item msgid="755931364157422565">"Ganteră"</item>
+    <item msgid="8894207806795738429">"Persoană care aruncă o minge"</item>
+    <item msgid="2274801572149555103">"Persoană care dă un șut"</item>
+    <item msgid="8795037201506843325">"Înot"</item>
+    <item msgid="3558421426169430451">"Persoană care face ascensiuni"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Instrumente din atelier"</item>
+    <item msgid="4595330511709890409">"Servietă"</item>
+    <item msgid="8352738347856724389">"Stea"</item>
+    <item msgid="7082783098151998721">"Floare de lotus"</item>
+    <item msgid="5772220259409264724">"Supervizor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 69527a2..054170b 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendat"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Necunoscut"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Previzualizare"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Cod QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Micșorează"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Mărește"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Întotdeauna"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Setări pentru aparate auditive"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Comandă rapidă, compatibilitate cu aparatele auditive"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Presetare"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Audiologul nu a configurat presetări"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Nu s-a putut actualiza presetarea"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Ieșire audio"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Despre ieșirea audio"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Selectarea limbii pentru această aplicație din Setări nu este disponibilă."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Limba poate fi alta decât limbile disponibile în aplicație. Este posibil ca unele aplicații să nu accepte această setare."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Setează limba pentru fiecare aplicație."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistemul, aplicațiile și site-urile folosesc prima limbă acceptată dintre limbile preferate."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Dispozitivul, aplicațiile și site-urile dvs. folosesc prima limbă acceptată din lista de limbi preferate.\n\nMulte aplicații vor folosi și regiunea aferentă limbii preferate pentru a formata date, numere și unități. Ca să schimbi regiunea, adaugă o limbă, apoi alege regiunea preferată."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ca să selectezi o limbă pentru fiecare aplicație, accesează setările de limbă ale aplicației"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Află mai multe despre limbile aplicațiilor"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Schimbi limba sistemului la %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Dezactivat"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activată / # aplicație are acces la locație}few{Activată / # aplicații au acces la locație}other{Activată / # de aplicații au acces la locație}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Se încarcă…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplicațiile cu permisiunea pentru Dispozitive din apropiere pot stabili poziția relativă a dispozitivelor conectate."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplicațiile cu permisiunea Dispozitive din apropiere pot stabili poziția relativă a dispozitivelor conectate."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Accesul la locație este dezactivat pentru aplicații și servicii. Locația dispozitivului poate fi trimisă serviciilor de urgență atunci când suni sau trimiți un mesaj la un număr de urgență."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Află mai multe despre Setările privind locația"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ca să schimbi, accesează Setările ChromeOS &gt; Confidențialitate și securitate &gt; Opțiuni de confidențialitate &gt; Acces la locație"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Au fost adăugate fața și <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Au fost adăugate fața, amprenta și <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Au fost adăugate fața, amprentele și <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Deblocarea cu Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ceasul a fost adăugat"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurează ceasul"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Află mai multe despre Deblocarea cu ceasul"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adaugă un ceas"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Elimină ceasul"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Deblocare cu amprenta și Deblocare facială"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Deblocare facială și cu amprenta"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Deblocarea facială și cu amprenta pentru serviciu"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Este necesară configurarea"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Fața și amprentele au fost adăugate"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Se configurează spațiul privat…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Nu s-a putut configura un spațiu privat"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Încearcă din nou"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Ieși"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Spațiul privat nu este disponibil.\nVezi cauzele posibile"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Vezi cauzele posibile"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Alegi o blocare nouă pentru spațiul privat?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Poți să setezi o nouă blocare doar pentru spațiul privat sau să folosești aceeași blocare pe care o folosești pentru a debloca dispozitivul."</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Folosește blocarea ecranului"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Repornești dispozitivul?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Înregistrarea NFC detaliată este menită exclusiv pentru dezvoltare Datele NFC suplimentare sunt incluse în rapoartele de eroare, care pot conține informații private. Repornește dispozitivul ca să schimbi setarea."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Repornește"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Activat"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Dezactivat"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ecran extern"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Folosește ecranul extern"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Rezoluția ecranului"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Ecranul extern este deconectat"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotire"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Modificarea rotirii sau a rezoluției poate opri aplicațiile care rulează"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Dispozitivul trebuie să fie conectat la un ecran extern pentru a-ți oglindi ecranul"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Mai multe opțiuni"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Proiectare"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"oglindă"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Activează ecranul wireless"</string>
@@ -932,7 +953,7 @@
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista drop-down Opțiuni avansate"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"extindeți"</string>
     <string name="wifi_ssid" msgid="2713062130735103151">"Numele rețelei"</string>
-    <string name="wifi_ssid_hint" msgid="1940577553241083524">"Introdu identificatorul SSID"</string>
+    <string name="wifi_ssid_hint" msgid="1940577553241083524">"Introdu SSID-ul"</string>
     <string name="wifi_security" msgid="9095934643631406913">"Securitate"</string>
     <string name="wifi_hidden_network" msgid="6466834025375485596">"Rețea ascunsă"</string>
     <string name="wifi_hidden_network_warning" msgid="3937433813754746158">"Dacă routerul nu transmite un ID de rețea, dar vrei să te conectezi la rețea în viitor, o poți seta ca ascunsă.\n\nAceasta ar putea crea un risc de securitate deoarece telefonul va transmite regulat semnal ca să găsească rețeaua.\n\nDacă setezi rețeaua ca ascunsă, setările pentru router nu se modifică."</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptive"</string>
     <string name="brightness" msgid="6216871641021779698">"Nivel de luminozitate"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Luminozitate adaptivă"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Despre luminozitatea adaptivă"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Luminozitatea ecranului se va adapta automat la mediul și activitățile tale. Poți să muți manual glisorul pentru a ajuta luminozitatea adaptivă să îți învețe preferințele."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activată"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Dezactivat"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opțiuni"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilitate"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastatură fizică"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Folosește tastatura pe ecran"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Se păstrează pe ecran cât timp este activată tastatura fizică"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Taste nerepetate"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tastatura ignoră apăsările repetate rapid ale aceleiași taste în <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Taste lente"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ajustează timpul necesar pentru ca o apăsare de tastă să se activeze la <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Folosește tastatura fizică pentru a controla mouse-ul."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Schimbă stilul de umplere în galben"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Schimbă stilul de umplere în roz"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Schimbă stilul de umplere în albastru"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stilul pointerului"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Alb"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Negru"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Niciunul"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Învață gesturi pentru touchpad"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, derulează, glisează, dă clic dreapta, dă clic, indicator"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"dă clic dreapta, atinge"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Utilizator selectat: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Voce"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Viteza indicatorului"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Mărimea cursorului"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Micșorează cursorul"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Mărește cursorul"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Controler de joc"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Redirecționează vibrațiile"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Trimite vibrații la controlerul de joc când este conectat"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuă oricum"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anulează"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Setări pentru mărire"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Deplasare cu un deget"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Mută lupa cu un deget"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Trage cu degetul pentru a te deplasa pe ecran"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Mută zona de mărit trăgând cu un deget."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Mută zona de mărit trăgând cu două degete."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Opțiune indisponibilă dacă se mărește numai o parte a ecranului"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Atinge un buton pentru a micșora/mări"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Mărește rapid conținutul de pe ecran"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Pentru a mări:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. folosește comanda rapidă ca să începi mărirea;&lt;br/&gt; {1,number,integer}. atinge ecranul;&lt;br/&gt; {2,number,integer}. glisează cu două degete ca să te deplasezi pe ecran;&lt;br/&gt; {3,number,integer}. ciupește cu două degete ca să ajustezi nivelul de zoom;&lt;br/&gt; {4,number,integer}. folosește comanda rapidă ca să oprești mărirea.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Pentru a mări temporar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. asigură-te că tipul de mărire este setat la ecran complet;&lt;br/&gt; {1,number,integer}. folosește comanda rapidă ca să începi mărirea;&lt;br/&gt; {2,number,integer}. atinge lung oriunde pe ecran;&lt;br/&gt; {3,number,integer}. glisează cu degetul ca să te deplasezi pe ecran;&lt;br/&gt; {4,number,integer}. ridică degetul ca să oprești mărirea."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Pentru a mări:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. folosește comanda rapidă ca să începi mărirea&lt;br/&gt; {1,number,integer}; atinge ecranul&lt;br/&gt; {2,number,integer}; glisează cu două degete ca să te deplasezi pe ecran&lt;br/&gt; {3,number,integer}; ciupește cu două degete ca să ajustezi nivelul de zoom&lt;br/&gt; {4,number,integer}. Folosește comanda rapidă ca să oprești mărirea.&lt;br/&gt;&lt;br/&gt; Poți și să mărești temporar și multe altele."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Pentru a mări:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. folosește comanda rapidă ca să începi mărirea&lt;br/&gt; {1,number,integer}; atinge ecranul&lt;br/&gt; {2,number,integer}; trage cu unul sau două degete ca să te deplasezi pe ecran&lt;br/&gt; {3,number,integer}; ciupește cu două degete ca să ajustezi nivelul de zoom&lt;br/&gt; {4,number,integer}. Folosește comanda rapidă ca să oprești mărirea.&lt;br/&gt;&lt;br/&gt; Poți și să mărești temporar și multe altele."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Când mărirea este activată, poți mări ecranul curent.\n\n"<b>"Pentru a mări"</b>", începe mărirea, apoi atinge oriunde pe ecran.\n"<ul><li>"Trage cu două sau mai multe degete pentru a derula"</li>\n<li>"Ciupește cu două sau mai multe degete pentru a regla nivelul de zoom"</li></ul>\n\n<b>"Pentru a mări temporar"</b>", începe mărirea, apoi atinge lung oriunde pe ecran.\n"<ul><li>"Trage pentru a te mișca pe ecran"</li>\n<li>"Ridică degetul pentru a micșora"</li></ul>\n\n"Nu poți mări pe tastatură și pe bara de navigare."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Pagina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> din <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Comandă rapidă pentru butonul de accesibilitate"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Atinge butonul flotant"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gest de accesibilitate"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Atinge butonul de accesibilitate <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> din partea de jos a ecranului. Pentru a comuta între funcții, atinge lung butonul de accesibilitate."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Glisează în sus cu două degete din partea de jos a ecranului.\n\nPentru a comuta între funcții, glisează în sus cu două degete și ține apăsat."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Glisează în sus cu trei degete din partea de jos a ecranului.\n\nPentru a comuta între funcții, glisează în sus cu trei degete și ține apăsat."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Glisează în sus din partea de jos a ecranului. Pentru a comuta între funcții, glisează în sus și apasă lung.}few{Glisează în sus cu # degete din partea de jos a ecranului. Pentru a comuta între funcții, glisează în sus cu # degete și apasă lung.}other{Glisează în sus cu # degete din partea de jos a ecranului. Pentru a comuta între funcții, glisează în sus cu # degete și apasă lung.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Mai multe opțiuni"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Află mai multe despre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Butoane de volum"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"butoane de volum"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Apasă lung ambele butoane de volum"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Atinge de două ori ecranul cu două degete"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Atinge de două ori cu %1$d degete"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Atinge rapid ecranul de două ori cu %1$d degete"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Atinge de trei ori"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Atinge rapid ecranul de %1$d ori. Această acțiune poate încetini funcționarea dispozitivului."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Atinge de două ori cu %1$d degete"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Atinge rapid ecranul de {0,number,integer} ori cu două degete"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Atinge ecranul de trei ori"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"atinge de trei ori"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Atinge rapid ecranul de {0,number,integer} ori. Această comandă rapidă poate încetini funcționarea dispozitivului"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avansate"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Butonul Accesibilitate este setat pe <xliff:g id="SERVICE">%1$s</xliff:g>. Pentru a folosi mărirea, atinge lung butonul Accesibilitate și apoi selectează mărirea."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gestul de accesibilitate este setat la <xliff:g id="SERVICE">%1$s</xliff:g>. Pentru a folosi mărirea, glisează în sus cu două degete din partea de jos a ecranului și ține apăsat. Apoi selectează mărirea."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Acest serviciu nu funcționează corect."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Comenzi rapide pentru accesibilitate"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Afișează în Setări rapide"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Roșu-verde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Roșu-verde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Roșu-verde, verde pal"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Roșu-verde, roșu pal"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Albastru-galben"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Tonuri de gri"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitate"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Percepție slabă a culorii verde, deuteranomalie"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Percepție slabă a culorii roșu, protanomalie"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Indisponibil pentru modul Tonuri de gri sau când corecția culorii este dezactivată"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomalie"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalie"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalie"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Luminozitate redusă suplimentar"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Redu suplimentar luminozitatea"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Galben"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Permiți serviciului <xliff:g id="SERVICE">%1$s</xliff:g> să aibă control total asupra dispozitivului tău?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> are funcțiile:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Deoarece o aplicație acoperă o solicitare de permisiune, Setările nu îți pot verifica răspunsul."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> solicită control total asupra acestui dispozitiv. Serviciul poate citi ecranul și poate acționa în numele utilizatorilor cu nevoi de accesibilitate. Acest nivel de control nu este adecvat pentru majoritatea aplicațiilor."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Controlul total este adecvat pentru aplicații care te ajută cu accesibilitatea, însă nu pentru majoritatea aplicaților."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Te vede și-ți controlează ecranul"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Poate citi tot conținutul de pe ecran și poate afișa conținut peste alte aplicații."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Îți vede interacțiunile și le realizează"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Poate urmări interacțiunile tale cu o aplicație sau cu un senzor hardware și poate interacționa cu aplicații în numele tău."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permite"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuză"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Dezactivează"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Niciunul}=1{Un program setat}few{# programe setate}other{# de programe setate}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Nu deranja"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Moduri cu prioritate"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Adaugă un mod"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimizează factorii perturbatori și concentrează-te cu moduri pentru somn, lucru, condus și orice alte activități."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Creează propriul mod"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Primește notificări doar de la persoane și aplicații importante"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Setează un program"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Program bazat pe"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Data și ora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"În zilele lucrătoare între 09:00 și 17:00"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Evenimente din calendar"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} este activ}=2{{mode_1} și {mode_2} sunt active}=3{{mode_1}, {mode_2} și {mode_3} sunt active}few{{mode_1}, {mode_2} și încă # sunt active}other{{mode_1}, {mode_2} și încă # sunt active}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Un mod se poate activa automat}few{# moduri se pot activa automat}other{# de moduri se pot activa automat}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ACTIVAT"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nesetat"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Dezactivat"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Creează un mod"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Personalizat"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Activează acum"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Dezactivează"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modul nu a fost găsit"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitează întreruperile"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blochează întreruperile și perturbările"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Configurează <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Activează Nu deranja"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmele și sunetele media îl pot întrerupe"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programe"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Șterge programele"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Ștergeți"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Redenumește"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Șterge"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Ștergi modul <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Editează"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programe"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Program"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Activează automat"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Adaugă un calendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Folosește-ți calendarul"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Program"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Setează un program"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Când se activează automat"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programul evenimentelor"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Activ. în timpul evenimentelor"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Când răspunsul la invitație e"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Program pe ore"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Program"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Program"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Permite întreruperile care emit sunete"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blochează întreruperile vizuale"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Permite semnale vizuale"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Notificări acceptate"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Acțiuni suplimentare"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtre pentru notificări"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Mai multe setări"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Dezactivat}=1{Dezactivat / Un mod se poate activa automat}few{Dezactivat / # moduri se pot activa automat}other{Dezactivat / # de moduri se pot activa automat}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Setări de afișare"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opțiuni de afișare"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Tonuri de gri"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"activează tema întunecată"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Modifică sistemul de operare și aplicațiile astfel încât să se afișeze text de culoare deschisă pe un fundal de culoare închisă, care este mai odihnitor pentru ochi și asigură economisirea considerabilă a bateriei în cazul unor dispozitive"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Nicio modificare a afișării}=1{{effect_1}}=2{{effect_1} și {effect_2}}=3{{effect_1}, {effect_2} și {effect_3}}few{{effect_1}, {effect_2} și încă #}other{{effect_1}, {effect_2} și încă #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limitează tipurile de notificări primite"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nu sunt filtrate întreruperi"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opțiuni de afișare pentru notificările filtrate"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Când funcția „Nu deranja” este activată"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Fără sunet de la notificări"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"deschide notificarea"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Permite amânarea notificărilor"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Punct de notificare pe pictogramă"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Pachete de notificări"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Baloane"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Baloane"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Afișează conversația în balon"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Aplicația nu acceptă setările optimizate"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Mai multe setări"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mai multe setări sunt disponibile în această aplicație"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Notificări adaptabile"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Folosește notificări adaptabile"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Când primești multe notificări într-un timp scurt, telefonul va reduce volumul și va minimiza ferestrele pop-up de pe ecran timp de până la două minute. Apelurile, alarmele și conversațiile prioritare vor declanșa în continuare vibrații sau alerte sonore ori vor apărea pe ecran. Găsești ușor toate notificările dacă tragi în jos din partea de sus a ecranului."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Reducerea sunetului notificărilor"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Folosește reducerea sunetului notificărilor"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Când primești multe notificări într-un timp scurt, dispozitivul va reduce volumul și va minimiza alertele timp de până la două minute. Apelurile, alarmele și conversațiile prioritare nu vor fi afectate. \n\nPoți accesa notificările primite în perioada de reducere a sunetului dacă tragi în jos din partea de sus a ecranului."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Aplică profilurilor de serviciu"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Aplică pentru aplicațiile din profilul de serviciu"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Servicii de ajutor pentru RV"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Categorii"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Altele"</string>
     <string name="no_channels" msgid="4716199078612071915">"Această aplicație nu a postat nicio notificare"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Afișează categoriile nefolosite"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Setări suplimentare în aplicație"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Afișează categoriile nefolosite"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ascunde categoriile nefolosite"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Conversații"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Toate conversațiile"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"toate conversațiile"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversații cu prioritate"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"conversații prioritare"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Niciuna"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplicații care îl pot întrerupe"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplicațiile selectate"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Niciuna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Toate"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Nicio aplicație nu îl poate întrerupe}=1{{app_1} îl poate întrerupe}=2{{app_1} și {app_2} îl pot întrerupe}=3{{app_1}, {app_2} și {app_3} îl pot întrerupe}few{{app_1}, {app_2} și încă # îl pot întrerupe}other{{app_1}, {app_2} și încă # îl pot întrerupe}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Serviciu)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Se calculează..."</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Permite aplicațiilor să ignore"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplicații care pot întrerupe"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Selectează mai multe aplicații"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nimic nu îl poate întrerupe"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nimeni nu îl poate întrerupe"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Anumite persoane îl pot întrerupe"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Apelanții care revin pot întrerupe"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Oricine îl poate întrerupe"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Apelanți care revin"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Permite apelanți care revin"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Schimbă la Numai alarme pentru o oră, până la {time}}few{Schimbă la Numai alarme pentru # ore, până la {time}}other{Schimbă la Numai alarme pentru # de ore, până la {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Schimbă la „Numai alarme” până la <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Schimbă la „Întrerupe întotdeauna”"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Redenumește"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Schimbă pictograma"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Schimbă pictograma"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Editează modul"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Creează un mod"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mod personalizat"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Numele modului"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Evenimente din calendar"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina orei de culcare"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"La volan"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Setările aplicației"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informații și setări din <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Gestionat de <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Dezactivezi <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Modul nu se va activa niciodată dacă a fost dezactivat"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Dezactivează"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Activezi <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Modul se poate activa automat în funcție de setări"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Activează"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Setează un mod care urmează un program obișnuit"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Setează un mod de sincronizare cu evenimentele din calendar și răspunsurile la invitații"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Creează o rutină de somn relaxantă. Setează alarme, redu luminozitatea ecranului și blochează notificările."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dă prioritate siguranței pe drum pentru concentrare deplină la volan, fără distrageri"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blochează distragerile sau întreruperile pe dispozitiv pentru concentrare maximă"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimină toate distragerile pentru un mediu liniștit"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizează experiențele și setările pe dispozitiv pentru utilizatori diferiți"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Redu la minimum întreruperile permițându-le doar persoanelor și aplicațiilor importante să-ți capteze atenția"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Avertisment"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Închide"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Trimite feedback despre dispozitiv"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Carcasă"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panou de setări"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Forțează modul desktop"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Forțează modul desktop experimental pe ecrane secundare"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Activează ferestrele cu formă liberă"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Activează ferestrele cu formă liberă pe ecranul II"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Permite aplicații fără redimensionare în ferestre multiple"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permite aplicațiile fără redimensionare în ferestre multiple"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Modifică funcția Force-Dark"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"date mobile"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Pentru a îmbunătăți experiența cu dispozitivul, aplicațiile și serviciile pot să caute în continuare rețele Wi‑Fi chiar și atunci când conexiunea Wi-Fi este dezactivată. Această permisiune poate fi folosită, de exemplu, pentru a îmbunătăți funcțiile și serviciile bazate pe locație. Poți să modifici acest aspect din setările pentru căutarea de rețele Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Modifică"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Conectat"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Conectat temporar"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Folosește temporar <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Folosește fixarea aplicațiilor"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Folosește opțiuni pentru dezvoltatori"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Folosește serviciul de printare"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Permite utilizatori multipli"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Permite schimbarea utilizatorului"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"permite, mai mulți, utilizatori, acceptă, mulți"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"multipli, utilizatori, profiluri, persoane, conturi, schimbă, mulți"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Folosește remedierea erorilor wireless"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Alege ce vei vedea pe ecran când tableta este andocată. Dispozitivul poate consuma mai multă energie când folosește un screensaver."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizează"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Personalizează <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Este nevoie de o repornire pentru a activa asistența cu formă liberă."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Este nevoie de o repornire pentru a impune modul computer pe ecranele secundare."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Este nevoie de o repornire pentru a permite ferestrele cu formă liberă."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Este necesară o repornire pentru a actualiza disponibilitatea ferestrelor cu formă liberă."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Este necesară o repornire pentru a permite ferestrele cu formă liberă pe ecranele secundare."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Repornește acum"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Repornește mai târziu"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio spațial"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Trandafiriu"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Gata"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Salvează"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Anulează"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Prestabilit"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Mediu"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Activată"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Dezactivate"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Activate"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% stânga, %2$d%% dreapta"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% dreapta, %2$d%% stânga"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Numele dispozitivului este vizibil pentru aplicațiile instalate. Poate fi văzut și de alte persoane când te conectezi la dispozitivele Bluetooth sau la o rețea Wi-Fi sau când configurezi un hotspot Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Genul gramatical"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selectează genul gramatical"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Ascultă streamul"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Scanează un cod QR de stream audio pentru a-l asculta folosind <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Nu poți edita parola în timpul permiterii accesului. Pentru a schimba parola, mai întâi dezactivează permiterea accesului la audio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Scanner de coduri QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Caută în setări"</string>
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 8602946..706e0c0 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Сон"</item>
-    <item msgid="4152450357280759894">"Вождение"</item>
-    <item msgid="7096549258219399423">"Погружение"</item>
-    <item msgid="2760716776980432977">"Управление"</item>
-    <item msgid="601734478369121764">"Звезда"</item>
-    <item msgid="6243809315432780521">"Календарь"</item>
-    <item msgid="4913577903148415331">"Время"</item>
-    <item msgid="3653377604690057780">"Театр"</item>
-    <item msgid="3843711267408385410">"Цветок"</item>
+    <item msgid="2750940760340557109">"Полумесяц"</item>
+    <item msgid="8513969636586738035">"Автомобиль"</item>
+    <item msgid="957392343846370509">"Разум человека"</item>
+    <item msgid="6734164279667121348">"Календарь"</item>
+    <item msgid="4139559120353528558">"Часы"</item>
+    <item msgid="5157711296814769020">"Пляжный зонт"</item>
+    <item msgid="6635328761318954115">"Палатка"</item>
+    <item msgid="1711994778883392255">"Кинопленка"</item>
+    <item msgid="9097658401859604879">"Игровой контроллер"</item>
+    <item msgid="755931364157422565">"Гантеля для спортзала"</item>
+    <item msgid="8894207806795738429">"Человек бросает мяч"</item>
+    <item msgid="2274801572149555103">"Человек наносит удар"</item>
+    <item msgid="8795037201506843325">"Плавание"</item>
+    <item msgid="3558421426169430451">"Человек занимается пешим туризмом"</item>
+    <item msgid="7455070421232184932">"Гольф"</item>
+    <item msgid="5841773092449126508">"Инструменты в мастерской"</item>
+    <item msgid="4595330511709890409">"Портфель"</item>
+    <item msgid="8352738347856724389">"Звезда"</item>
+    <item msgid="7082783098151998721">"Цветок лотоса"</item>
+    <item msgid="5772220259409264724">"Руководитель"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index dd2bed9..035dd35 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Приостановлено"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Неизвестно"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Просмотр"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-код"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Уменьшить"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Увеличить"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Всегда"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Настройки слуховых аппаратов"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Быстрый запуск, совместимость со слуховыми аппаратами"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Набор настроек"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Нет наборов настроек от сурдолога"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Не удалось обновить набор настроек."</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудиовыход"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"О выводе звука"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Для этого приложения не поддерживается выбор языка в настройках."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Выбранный язык может быть недоступен в приложении. Некоторые приложения могут не поддерживать этот параметр."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Вы можете выбрать язык для каждого приложения."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Первый поддерживаемый язык в списке предпочтительных используется как язык системы, приложений и сайтов."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Первый поддерживаемый язык в списке предпочтительных используется как язык устройства, приложений и сайтов.\n\nМногие приложения также будут использовать регион вашего предпочтительного языка для определения формата дат, чисел и единиц измерения. Чтобы сменить регион, добавьте язык и выберите предпочитаемый регион."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Выбрать язык для отдельных приложений можно в их настройках."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Подробнее о языках приложений…"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Сменить язык системы на %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Откл."</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Включено. Доступ к данным о местоположении есть у # приложения.}one{Включено. Доступ к данным о местоположении есть у # приложения.}few{Включено. Доступ к данным о местоположении есть у # приложений.}many{Включено. Доступ к данным о местоположении есть у # приложений.}other{Включено. Доступ к данным о местоположении есть у # приложения.}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Загрузка…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложения с доступом к устройствам поблизости могут определять относительное местоположение подключенных устройств."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Приложения, у которых есть разрешение \"Устройства поблизости\", могут определять относительное местоположение подключенных устройств."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ к данным о местоположении для приложений и сервисов отключен. Если вы позвоните по номеру экстренной службы или отправите на него сообщение, данные о местоположении вашего устройства могут быть переданы спасателям."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Подробнее о настройках местоположения…"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Чтобы внести изменения, выберите \"Настройки ChromeOS &gt; Конфиденциальность и безопасность &gt; Настройки конфиденциальности &gt; Доступ к геоданным\""</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Модель лица и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Модель лица, отпечаток пальца и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Модель лица, отпечатки пальцев и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Разблокировка по Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Часы добавлены"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Настройте часы"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Подробнее о разблокировке с помощью часов…"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Добавить часы"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Удалить часы"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отпечаток пальца и фейсконтроль"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Фейсконтроль и отпечаток пальца"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Фейсконтроль и отпечаток пальца для работы"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Требуется настройка"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Добавлено лицо и отпечатки пальцев"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Создание личного пространства…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Не удалось создать частное пространство"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Повторить попытку"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Выйти"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Частное пространство недоступно\nВозможные причины"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Возможные причины"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Задать отдельный способ блокировки личного пространства?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Вы можете установить способ блокировки отдельно для личного пространства или использовать тот, что настроен для экрана."</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Использовать способ, настроенный для экрана"</string>
@@ -680,7 +687,7 @@
     <string name="unlock_set_unlock_pin_title" msgid="5283636759362880407">"PIN-код"</string>
     <string name="unlock_set_unlock_password_title" msgid="2559842616268607041">"Пароль"</string>
     <string name="unlock_set_do_later_title" msgid="6565575303676064364">"Не сейчас"</string>
-    <string name="current_screen_lock" msgid="1367883977261098017">"Текущий способ блокировки"</string>
+    <string name="current_screen_lock" msgid="1367883977261098017">"Текущий способ разблокировки"</string>
     <string name="fingerprint_unlock_set_unlock_pattern" msgid="2229689425933043901">"Графический ключ • Отпечаток пальца"</string>
     <string name="fingerprint_unlock_set_unlock_pin" msgid="7979848492740627674">"PIN • Отпечаток пальца"</string>
     <string name="fingerprint_unlock_set_unlock_password" msgid="6207676267295036963">"Пароль • Отпечаток пальца"</string>
@@ -761,7 +768,7 @@
     <string name="unlock_footer_high_complexity_requested" msgid="4471274783909915352">"Для стабильной работы приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" рекомендуется настроить сложный PIN-код или пароль."</string>
     <string name="unlock_footer_medium_complexity_requested" msgid="5515870066751600640">"Для стабильной работы приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" рекомендуется настроить новый PIN-код или пароль."</string>
     <string name="unlock_footer_low_complexity_requested" msgid="2517656037576567971">"Для стабильной работы приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" рекомендуется настроить новый графический ключ, PIN-код или пароль."</string>
-    <string name="unlock_footer_none_complexity_requested" msgid="8534900170428140529">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" рекомендует настроить новый способ блокировки экрана."</string>
+    <string name="unlock_footer_none_complexity_requested" msgid="8534900170428140529">"Приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" рекомендует настроить новый способ разблокировки экрана."</string>
     <string name="lock_failed_attempts_before_wipe" msgid="6874652886647631418">"Попробуйте ещё раз. Попытка <xliff:g id="CURRENT_ATTEMPTS">%1$d</xliff:g> из <xliff:g id="TOTAL_ATTEMPTS">%2$d</xliff:g>."</string>
     <string name="lock_last_attempt_before_wipe_warning_title" msgid="7450322567217745999">"Осталась одна попытка"</string>
     <string name="lock_last_pattern_attempt_before_wipe_device" msgid="5816668400104558952">"Если вы неправильно введете графический ключ, с устройства будут удалены все данные."</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Перезапустить устройство?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Подробный журнал NFC ведется только в целях разработки. Дополнительные данные NFC будут включены в отчеты об ошибках и могут содержать конфиденциальную информацию. Чтобы изменить этот параметр, перезапустите устройство."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Перезапустить"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Включено"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Отключено"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Внешний дисплей"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Использование внешнего дисплея"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Разрешение экрана"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Внешний дисплей отключен"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Положение экрана"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Стандартное"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"При изменении положения или разрешения экрана запущенные приложения могут быть закрыты"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Чтобы дублировать экран, к устройству должен быть подключен внешний дисплей"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Ещё"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Трансляция"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"дублирование"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Включить"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Адаптивная регулировка"</string>
     <string name="brightness" msgid="6216871641021779698">"Яркость"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Адаптивная яркость"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Об адаптивной яркости"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Яркость экрана будет настраиваться автоматически в зависимости от окружающих условий и ваших действий. Дополнительно ее можно регулировать вручную, чтобы система учитывала ваши предпочтения."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Включено"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Отключено"</string>
@@ -1720,7 +1742,7 @@
     <string name="lock_settings_profile_unification_dialog_uncompliant_confirm" msgid="8509287115116369677">"Использовать один способ блокировки"</string>
     <string name="lock_settings_profile_unified_summary" msgid="777095092175037385">"Тот же способ блокировки, что и для экрана устройства"</string>
     <string name="manageapplications_settings_title" msgid="9198876415524237657">"Управление приложениями"</string>
-    <string name="applications_settings" msgid="1941993743933425622">"Сведения о приложении"</string>
+    <string name="applications_settings" msgid="1941993743933425622">"Сведения о приложениях"</string>
     <string name="applications_settings_header" msgid="3154670675856048015">"Настройки приложения"</string>
     <string name="install_applications" msgid="3921609656584369901">"Неизвестные источники"</string>
     <string name="install_applications_title" msgid="7890233747559108106">"Разрешить из всех источников"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Параметры"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Специальные возможности"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физическая клавиатура"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Использовать экранную клавиатуру"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Не скрывать экранную клавиатуру, когда включена физическая"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Контроль повторного нажатия"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Повторные нажатия одной клавиши в течение <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс игнорируются"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Медленные клавиши"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Нажатие клавиши регистрируется по истечении заданного времени: <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс"</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="2396247040177734245">"Управлять мышью с помощью физической клавиатуры"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Изменить стиль заливки на желтый"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Изменить стиль заливки на розовый"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Изменить стиль заливки на синий"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Стиль указателя"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Белый"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Черный"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Нет"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Узнать о жестах на сенсорной панели"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"сенсорная панель, мышь, указатель мыши, прокрутить, провести по экрану, нажать правую кнопку мыши, нажать"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"нажать правую кнопку мыши, нажать"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Выбрано пользователем: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Речь"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Скорость указателя"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Размер указателя мыши"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Уменьшить указатель мыши"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Увеличить указатель мыши"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Игровые контроллеры"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Перенаправление виброотклика"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Активировать виброотклик на подключенном игровом контроллере"</string>
@@ -2018,7 +2047,7 @@
     <string name="accessibility_settings" msgid="4713215774904704682">"Спец. возможности"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Настройки специальных возможностей"</string>
     <string name="accessibility_settings_summary" msgid="2366627644570558503">"Экран, элементы управления, аудио"</string>
-    <string name="vision_settings_title" msgid="8919983801864103069">"Настройки спец. возможностей"</string>
+    <string name="vision_settings_title" msgid="8919983801864103069">"Настройки для слабовидящих"</string>
     <string name="vision_settings_description" msgid="7614894785054441991">"Используйте специальные возможности для удобной работы с устройством. Эти параметры можно изменить в настройках."</string>
     <string name="vision_settings_suggestion_title" msgid="4689275412658803919">"Изменить размер шрифта"</string>
     <string name="screen_reader_category_title" msgid="5825700839731107803">"Программа чтения с экрана"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Продолжить"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Отмена"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Настройки увеличения"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Перемещение одним пальцем"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Проведите пальцем, чтобы переместить лупу"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Для перемещения по экрану проведите пальцем."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Для перемещения зоны увеличения используется один палец"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Для перемещения зоны увеличения используются два пальца"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Недоступно при увеличении только части экрана"</string>
@@ -2113,8 +2143,10 @@
     <string name="accessibility_preference_magnification_summary" msgid="2875518904115896888">"Экранная лупа"</string>
     <string name="accessibility_screen_magnification_short_summary" msgid="2207048420669939150">"Изменение масштаба тремя нажатиями"</string>
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Чтобы увеличить масштаб, нажмите кнопку"</string>
-    <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Быстрое увеличение масштаба."</string>
+    <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Быстрое увеличение масштаба"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Чтобы увеличить масштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Выполните действие быстрого запуска для перехода в режим увеличения.&lt;br/&gt; {1,number,integer}. Коснитесь экрана.&lt;br/&gt; {2,number,integer}. Если нужно, перетащите область увеличения двумя пальцами.&lt;br/&gt; {3,number,integer}. Чтобы скорректировать масштаб, сведите или разведите два пальца.&lt;br/&gt; {4,number,integer}. Чтобы выйти из режима увеличения, выполните действие быстрого запуска.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Чтобы временно увеличить масштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Убедитесь, что выбран режим увеличения \"Весь экран\".&lt;br/&gt; {1,number,integer}. Выполните действие быстрого запуска для перехода в режим увеличения.&lt;br/&gt; {2,number,integer}. Коснитесь любой области экрана и удерживайте палец.&lt;br/&gt; {3,number,integer}. Если нужно, перетащите область увеличения.&lt;br/&gt; {4,number,integer}. Чтобы вернуть исходный масштаб, уберите палец с экрана."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Чтобы увеличить масштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Выполните действие быстрого запуска для перехода в режим увеличения.&lt;br/&gt; {1,number,integer}. Коснитесь экрана.&lt;br/&gt; {2,number,integer}. Перетащите область увеличения двумя пальцами.&lt;br/&gt; {3,number,integer}. Чтобы скорректировать масштаб, сведите два пальца вместе.&lt;br/&gt; {4,number,integer}. Чтобы выйти из режима увеличения, выполните действие быстрого запуска.&lt;br/&gt;&lt;br/&gt; Вы также можете временно увеличивать масштаб и выполнять другие команды."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Чтобы увеличить масштаб:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Выполните действие быстрого запуска для перехода в режим увеличения.&lt;br/&gt; {1,number,integer}. Коснитесь экрана.&lt;br/&gt; {2,number,integer}. Перетащите область увеличения одним или двумя пальцами.&lt;br/&gt; {3,number,integer}. Чтобы скорректировать масштаб, сведите два пальца вместе.&lt;br/&gt; {4,number,integer}. Чтобы выйти из режима увеличения, выполните действие быстрого запуска.&lt;br/&gt;&lt;br/&gt; Вы также можете временно увеличивать масштаб и выполнять другие команды."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Благодаря функции увеличения вы сможете приближать изображение на экране.\n\n"<b>"Если вы хотите увеличить изображение"</b>", включите функцию и нажмите на экран в любом месте.\n"<ul><li>"Для прокрутки проведите двумя пальцами."</li>\n<li>"Чтобы изменить масштаб, сведите два пальца вместе или разведите их."</li></ul>\n\n<b>"Если нужно временно увеличить масштаб"</b>", включите функцию увеличения, коснитесь экрана и удерживайте.\n"<ul><li>"Для обзора проведите по экрану."</li>\n<li>"Чтобы уменьшить масштаб, отпустите палец."</li></ul>\n\n"Эти жесты не работают на клавиатуре и панели навигации."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Страница <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> из <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Кнопка быстрого доступа к специальным возможностям"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Проведите двумя пальцами вверх от нижнего края экрана.\n\nДля переключения между функциями проведите двумя пальцами по экрану вверх и удерживайте их."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Проведите вверх от нижнего края экрана тремя пальцами.\n\nДля переключения между функциями проведите по экрану вверх тремя пальцами и задержите их."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Проведите вверх от нижнего края экрана. Чтобы переключиться между функциями, проведите снизу вверх и задержите палец на экране.}one{Проведите вверх от нижнего края экрана # пальцем. Чтобы переключиться между функциями, проведите снизу вверх # пальцем и задержите их на экране.}few{Проведите вверх от нижнего края экрана # пальцами. Чтобы переключиться между функциями, проведите снизу вверх # пальцами и задержите их на экране.}many{Проведите вверх от нижнего края экрана # пальцами. Чтобы переключиться между функциями, проведите снизу вверх # пальцами и задержите их на экране.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Двойное нажатие двумя пальцами"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Быстро нажмите на экран %1$d раза. Это может замедлить работу устройства."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двойное нажатие %1$d пальцами"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Быстро нажмите на экран двумя пальцами {0,number,integer} раза"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройное нажатие на экран"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"тройное нажатие"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Быстро коснитесь экрана {0,number,integer} раза (этот жест может замедлить работу устройства)."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Ещё"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Кнопка специальных возможностей настроена на сервис \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Чтобы использовать увеличение, удерживайте ее, а затем выберите \"Увеличение изображения на экране\"."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Для этого жеста задана команда \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Чтобы увеличить масштаб, проведите двумя пальцами снизу вверх и задержите их на экране. Затем выберите пункт \"Увеличение\"."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Сервис работает некорректно."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Быстрый доступ к специальным возможностям"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Показывать в быстрых настройках"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Красный и зеленый"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Красный и зеленый"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Красный и зеленый, слабое восприятие зеленого"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Красный и зеленый, слабое восприятие красного"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Синий и желтый"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Оттенки серого"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интенсивность"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Дейтераномалия (нарушено восприятие зеленого)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Протаномалия (нарушено восприятие красного)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недоступно, если выбран режим оттенков серого или отключена коррекция цвета."</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Дейтераномалия"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномалия"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалия"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Доп. уменьшение яркости"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Дополнительно уменьшить яркость экрана"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Голубой"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Желтый"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Пурпурный"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Разрешить сервису \"<xliff:g id="SERVICE">%1$s</xliff:g>\" контролировать ваше устройство?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> будет:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Невозможно принять ваше согласие, поскольку запрос скрыт другим приложением."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> запрашивает полный доступ к устройству. Сервис может считывать данные с экрана и действовать от имени пользователей, которым требуются специальные возможности. Этот уровень доступа не подходит для большинства приложений."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Полный контроль нужен приложениям для реализации специальных возможностей и не нужен большинству остальных."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Просмотр и контроль экрана"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Сервис может читать весь контент на экране и отображать контент поверх других приложений"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Просмотр и выполнение действий"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Сервис может отслеживать ваше взаимодействие с приложениями и датчиками устройства и давать приложениям команды от вашего имени"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешить"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отклонить"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Отключить"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Нет настроенных расписаний}=1{Настроено 1 расписание}one{Настроено # расписание}few{Настроено # расписания}many{Настроено # расписаний}other{Настроено # расписания}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Не беспокоить"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Режимы приоритета"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Добавить режим"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Настройте специальные режимы для сна, работы, вождения и не только, чтобы меньше отвлекаться и спокойно отдыхать."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Создать свой режим"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Получать уведомления только от важных людей и приложений."</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Создать расписание"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Основа для расписания"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"День и время"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"В будние дни с 09:00 до 17:00\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Мероприятия из календаря"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Включен режим \"{mode_1}\"}=2{Включены режимы \"{mode_1}\" и \"{mode_2}\"}=3{Включены режимы \"{mode_1}\", \"{mode_2}\" и \"{mode_3}\"}one{Включены режимы \"{mode_1}\", \"{mode_2}\" и ещё #}few{Включены режимы \"{mode_1}\", \"{mode_2}\" и ещё #}many{Включены режимы \"{mode_1}\", \"{mode_2}\" и ещё #}other{Включены режимы \"{mode_1}\", \"{mode_2}\" и ещё #}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 режим может включаться автоматически}one{# режим может включаться автоматически}few{# режима могут включаться автоматически}many{# режимов могут включаться автоматически}other{# режима могут включаться автоматически}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ВКЛ."</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Не задано"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Отключено"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Создайте режим"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Свой вариант"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Включить"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Отключить"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Режим не найден"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Отключение уведомлений"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Заблокировать отвлекающие факторы"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Настройка: <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Включите режим \"Не беспокоить\""</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Режим \"Не беспокоить\" не действует для будильников и звука в медиафайлах"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Расписания"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Удалить расписания"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Удалить"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Переименовать"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Удалить"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Удалить режим \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Изменить"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Расписания"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Расписание"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Включать автоматически"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Добавить в календарь"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Использовать календарь"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Расписание"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Создайте расписание"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Когда включать автоматически"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Расписание на основе календаря"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Включать во время мероприятий"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Когда ответ на приглашение"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Расписание по времени"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Расписание"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ч. <xliff:g id="MINUTES">%2$d</xliff:g> мин."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Расписание"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Разрешить звуки"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Блокировка визуального оповещения"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Включить визуальное оповещение"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Разрешенные уведомления"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Дополнительные действия"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Фильтры уведомлений"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Дополнительные настройки"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Выключено}=1{Выключено/Может автоматически включиться 1 режим}one{Выключено/Может автоматически включиться # режим}few{Выключено/Может автоматически включиться # режима}many{Выключено/Могут автоматически включиться # режимов}other{Выключено/Могут автоматически включиться # режима}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Настройки экрана"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Параметры отображения"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Использовать оттенки серого"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"использовать темную тему"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Показывать светлый текст на темном фоне в ОС и приложениях. Такой режим значительно экономит заряд батареи на некоторых устройствах и может быть более комфортным для глаз."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Нет изменений в настройках экрана}=1{{effect_1}}=2{{effect_1} и {effect_2}}=3{{effect_1}, {effect_2} и {effect_3}}one{{effect_1}, {effect_2} и ещё # изменение}few{{effect_1}, {effect_2} и ещё # изменения}many{{effect_1}, {effect_2} и ещё # изменений}other{{effect_1}, {effect_2} и ещё # изменения}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ограничивать уведомления"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Уведомления не фильтруются"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Настройки показа фильтруемых уведомлений"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"В режиме \"Не беспокоить\""</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Отключить звук"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"Открыть уведомление"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Разрешить откладывать уведомления"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Значок уведомления на значке приложения"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Пакеты уведомлений"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Всплывающие чаты"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Всплывающие чаты"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Всплывающий чат"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Адаптивные уведомления"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Использовать адаптивные уведомления"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Если вам будет поступать много уведомлений за короткое время, ваш телефон на две минуты понизит уровень громкости и сократит количество всплывающих уведомлений. Это не коснется звонков, будильников и важных разговоров. Чтобы увидеть все уведомления, достаточно будет провести вниз от верхнего края экрана."</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_work" msgid="8823596456640216391">"Применить к рабочим профилям"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Применить для приложений в рабочем профиле"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Вспомогательные VR-сервисы"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Категории"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Другие"</string>
     <string name="no_channels" msgid="4716199078612071915">"Это приложение не отправляло уведомлений."</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Показать неиспользуемые категории"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Доп. настройки в приложении"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Показать неиспользуемые категории"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Скрыть неиспользуемые категории"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Разговоры"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Все разговоры"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"все разговоры"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Важные разговоры"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"важные разговоры"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Нет"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Приложения, для которых не действует режим \"Не беспокоить\""</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Выбранные приложения"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Нет"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Все"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Режим \"Не беспокоить\" действует для всех приложений}=1{Режим \"Не беспокоить\" не действует для приложения \"{app_1}\"}=2{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\" и \"{app_2}\"}=3{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и \"{app_3}\"}one{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}few{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}many{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}other{Режим \"Не беспокоить\" не действует для приложений \"{app_1}\", \"{app_2}\" и ещё #}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (работа)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Подождите…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Разрешить приложениям переопределять \"Не беспокоить\""</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Приложения, для которых не действует режим \"Не беспокоить\""</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Другие приложения"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Функция повторного вызова может прерываться"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Режим \"Не беспокоить\" не действует для звонков и сообщений от любых пользователей"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Повторные вызовы"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Повторные вызовы"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Активировать режим \"Только будильник\" на один час до {time}}one{Активировать режим \"Только будильник\" на # час до {time}}few{Активировать режим \"Только будильник\" на # часа до {time}}many{Активировать режим \"Только будильник\" на # часов до {time}}other{Активировать режим \"Только будильник\" на # часа до {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Активировать режим \"Только будильник\" до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Режим \"Не беспокоить\" отключен."</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Переименовать"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Изменить значок"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Изменение значка"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Изменение режима"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Создайте режим"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Пользовательский режим"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Название режима"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Мероприятия из календаря"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Режим сна"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Во время вождения"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Настройки приложения"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Данные и настройки приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Под управлением приложения \"<xliff:g id="APP_NAME">%1$s</xliff:g>\""</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Отключить режим \"<xliff:g id="MODE_NAME">%1$s</xliff:g>\"?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Если вы это сделаете, режим никогда не включится."</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Отключить"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Включить режим \"<xliff:g id="MODE_NAME">%1$s</xliff:g>\"?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Режим может включаться автоматически в зависимости от настроек."</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Включить"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Настройте режим, который работает по расписанию"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Настройте синхронизацию режима с мероприятиями из календаря и ответами на приглашения"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Создайте успокаивающую программу для подготовки ко сну. Настройте будильники, понижение яркости экрана и блокировку уведомлений."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Не отвлекайтесь на устройство, чтобы полностью сфокусироваться на дороге"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Уведомление"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Закрыть"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Отправить отзыв об устройстве"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Зарядный чехол"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батарея"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Панель настроек"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Принудительное включение режима рабочего стола"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Принудительное включение экспериментального режима рабочего стола на дополнительных экранах"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Разрешить окна произвольной формы"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Разрешить окна произвольной формы на доп. экране"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Включить неизменяемый масштаб в многооконном режиме"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Открывать приложения с неизменяемым масштабом в многооконном режиме"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Переопределение включения тёмной темы"</string>
@@ -4969,7 +5040,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"Мобильный интернет"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Чтобы улучшать работу устройства (например, для более точного определения вашего местоположения), приложения и сервисы могут искать беспроводные сети в любое время, даже если вы отключили Wi‑Fi. Запретить это можно в настройках поиска сетей Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Изменить настройки"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Подключено"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Временное подключение"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Временно используется сеть оператора \"<xliff:g id="SUBNAME">%1$s</xliff:g>\""</string>
@@ -5001,7 +5071,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Закрепление приложений"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Режим разработчика"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Использовать службу печати"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Разрешить добавлять несколько пользователей"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Разрешить смену пользователя"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"разрешить, несколько, пользователь, разрешение, много"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"несколько, пользователи, профили, люди, аккаунты, переключиться, много"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Использовать отладку по Wi-Fi"</string>
@@ -5115,8 +5185,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Выберите, что будет показано на экране, когда планшет подключен к док-станции. Устройство может потреблять больше энергии, если включена заставка."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Настроить"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Настроить заставку \"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>\""</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Чтобы включить поддержку создания окон произвольной формы, требуется перезагрузка."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Чтобы принудительно включить режим рабочего стола на дополнительных экранах, требуется перезагрузка."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Чтобы включить поддержку создания окон произвольной формы, требуется перезагрузка."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Чтобы обновить доступность функции создания окон произвольной формы, требуется перезагрузка."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Чтобы разрешить создание окон произвольной формы на дополнительных экранах, требуется перезагрузка."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перезагрузить сейчас"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перезагрузить позже"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Пространственное звучание"</string>
@@ -5213,7 +5284,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Розовый"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Пурпурный"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Фиолетовый"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Готово"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Сохранить"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Отмена"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Стандартная"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Средняя"</string>
@@ -5228,12 +5299,14 @@
     <string name="color_inversion_state_on" msgid="1160969033636440368">"Включено"</string>
     <string name="color_inversion_state_off" msgid="6925638668080451724">"Отключено"</string>
     <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Сделать светлые цвета темными, а темные – светлыми"</string>
-    <string name="magnification_feature_summary" msgid="2053971569640663564">"Включить функцию увеличения масштаба на экране"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Увеличивать изображение на экране"</string>
     <string name="autoclick_disabled" msgid="3213396804955002120">"Отключено"</string>
     <string name="show_captions_disabled" msgid="690650956523818755">"Отключено"</string>
     <string name="show_captions_enabled" msgid="7089043007924626">"Включено"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Отключено"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Включено"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудио: %1$d %% слева, %2$d %% справа"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудио: %1$d %% справа, %2$d %% слева"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Название устройства доступно установленным приложениям. Его также могут видеть другие пользователи, когда вы подключаетесь к устройствам Bluetooth и сетям Wi-Fi или настраиваете точку доступа Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Грамматический род"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Выберите грамматический род"</string>
@@ -5345,4 +5418,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Подключиться к потоку"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Отсканируйте QR-код аудиопотока для прослушивания на устройстве (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Нельзя изменить пароль во время отправки аудио. Сначала отключите ее."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Сканер QR-кодов"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Поиск по настройкам"</string>
 </resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index c0edf29..59d8b2d 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"නින්දට යන වේලාව"</item>
-    <item msgid="4152450357280759894">"රිය ධාවනය"</item>
-    <item msgid="7096549258219399423">"ගිලෙන සුළු"</item>
-    <item msgid="2760716776980432977">"කළමනාකරණය කළ"</item>
-    <item msgid="601734478369121764">"තරුව"</item>
-    <item msgid="6243809315432780521">"දින දර්ශනය"</item>
-    <item msgid="4913577903148415331">"වේලාව"</item>
-    <item msgid="3653377604690057780">"රඟහල"</item>
-    <item msgid="3843711267408385410">"මල"</item>
+    <item msgid="2750940760340557109">"අර්ධ සඳ"</item>
+    <item msgid="8513969636586738035">"මෝටර් රථය"</item>
+    <item msgid="957392343846370509">"පුද්ගලයාගේ මනස"</item>
+    <item msgid="6734164279667121348">"දින දර්ශනය"</item>
+    <item msgid="4139559120353528558">"ඔරලෝසුව"</item>
+    <item msgid="5157711296814769020">"වෙරළ කුඩය"</item>
+    <item msgid="6635328761318954115">"කූඩාරම"</item>
+    <item msgid="1711994778883392255">"සිනමා පටය"</item>
+    <item msgid="9097658401859604879">"ක්‍රීඩා පාලකය"</item>
+    <item msgid="755931364157422565">"ජිම් ඩම්බල්"</item>
+    <item msgid="8894207806795738429">"පන්දුව විසි කරන පුද්ගලයා"</item>
+    <item msgid="2274801572149555103">"පයින් ගසන පුද්ගලයා"</item>
+    <item msgid="8795037201506843325">"පිහිනීම"</item>
+    <item msgid="3558421426169430451">"කඳු නගින පුද්ගලයා"</item>
+    <item msgid="7455070421232184932">"ගොල්ෆ්"</item>
+    <item msgid="5841773092449126508">"වැඩමුළු මෙවලම්"</item>
+    <item msgid="4595330511709890409">"ලිපි කොපුව"</item>
+    <item msgid="8352738347856724389">"තරුව"</item>
+    <item msgid="7082783098151998721">"නෙළුම් මල"</item>
+    <item msgid="5772220259409264724">"සුපරීක්ෂක"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 619d9d8..4a6f030 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"තහනම් කරන ලදී"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"නොදනී"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"පෙරදසුන"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR කේතය"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"වඩා කුඩා කරන්න"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"වඩා විශාල කරන්න"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"සැම විට"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"ශ්‍රවණ උපකරණ සැකසීම්"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"කෙටිමඟ, ශ්‍රවණාධාරක අනුකූලත්වය"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"පෙරසැකසුම"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"ඔබේ ශ්‍රව්‍ය විද්‍යාඥයා විසින් වැඩසටහන්ගත කළ පෙර සැකසීම් නොමැත"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"පෙර සැකසීම යාවත්කාලීන කළ නොහැකි විය"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ශබ්ද ප්‍රතිදානය"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ශ්‍රව්‍ය ප්‍රතිදානය පිළිබඳව"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"මෙම යෙදුම සඳහා භාෂා තේරීම සැකසීම් වෙතින් ලබා ගත නොහැකිය."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"යෙදුමේ තිබෙන භාෂාවලට වඩා භාෂාව වෙනස් විය හැකිය. සමහර යෙදුම් මෙම සැකසීමට සහාය නොදක්වයි."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"එක් එක් යෙදුම සඳහා භාෂාව සකසන්න."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"ඔබේ පද්ධතිය, යෙදුම්, සහ වෙබ් අඩවි ඔබ කැමති භාෂාවලින් පළමුව සහාය දක්වන භාෂාව භාවිතා කරයි."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"ඔබේ උපාංගය, යෙදුම් සහ වෙබ් අඩවි ඔබ කැමති භාෂා ලැයිස්තුවෙන් පළමු සහය දක්වන භාෂාව භාවිතා කරයි.\n\nබොහෝ යෙදුම් දින, අංක සහ ඒකක හැඩතල ගැන්වීමට ඔබ කැමති භාෂාවෙන් කලාපය ද භාවිත කරනු ඇත. ඔබේ කලාපය වෙනස් කිරීමට, භාෂාවක් එක් කරන්න, ඉන්පසු ඔබ කැමති කලාපය තෝරා ගන්න."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"එක් එක් යෙදුම සඳහා භාෂාවක් තේරීමට, යෙදුම් භාෂා සැකසීම් වෙත යන්න."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"යෙදුම් භාෂා ගැන තව දැන ගන්න"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"පද්ධති භාෂාව %s ලෙස වෙනස් කරන්න ද?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ක්‍රියාවිරහිතයි"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ක්‍රියාත්මකයි / # යෙදුමකට ස්ථානයට ප්‍රවේශය ඇත}one{ක්‍රියාත්මකයි / යෙදුම් #කට ස්ථානයට ප්‍රවේශය ඇත}other{ක්‍රියාත්මකයි / යෙදුම් #කට ස්ථානයට ප්‍රවේශය ඇත}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"පූරණය වේ…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"අවට උපාංගවල සාපේක්ෂ පිහිටීම තීරණය කිරීමට අවට උපාංග අවසරය ඇති යෙදුම්වලට හැකිය."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"සම්බන්ධිත උපාංගවල සාපේක්ෂ පිහිටීම තීරණය කිරීමට අවට උපාංග අවසරය ඇති යෙදුම්වලට හැක."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"යෙදුම් සහ සේවා සඳහා ස්ථාන ප්‍රවේශය ක්‍රියාවිරහිතයි. ඔබ හදිසි අවස්ථා අංකයක් අමතන විට හෝ කෙටි පණිවිඩයක් යැවීමේදී ඔබගේ උපාංගයේ ස්ථානය හදිසි අවස්ථා ප්‍රතිචාර දක්වන්නන්ට තවම යැවිය හැකිය."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ස්ථාන සැකසීම් පිළිබඳව තව දැන ගන්න"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"වෙනස් කිරීමට ChromeOS සැකසීම් &gt; පෞද්ගලිකත්වය සහ ආරක්‍ෂාව &gt; පෞද්ගලිකත්ව පාලන &gt; ස්ථාන ප්‍රවේශය වෙත යන්න"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"මුහුණ සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"මුහුණ, ඇඟිලි සලකුණ, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"මුහුණ, ඇඟිලි සලකුණු, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"දුරස්ථ සත්‍යාපක අගුලු හරින්න"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ඔරලෝසුව එක් කර ඇත"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ඔබේ ඔරලෝසුව පිහිටුවන්න"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ඔරලෝසුව අගුලු හැරීම ගැන තව දැන ගන්න"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ඔරලෝසුව එක් කරන්න"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ඔරලෝසුව ඉවත් කරන්න"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ඇඟිලි සලකුණ සහ මුහුණෙන් අගුළු හැරීම"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"මුහුණ සහ ඇඟිලි සලකුණු අගුළු හැරීම"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"වැඩ සඳහා මුහුණු සහ ඇඟිලි සලකුණු අගුළු හැරීම"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"පිහිටුවීම අවශ්‍යයි"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"මුහුණ සහ ඇඟිලි සලකුණු එක් කරන ලදි"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"පෞද්ගලික අවකාශය පිහිටුවමින්…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"පුද්ගලික අවකාශයක් සැකසීමට නොහැකි විය"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"නැවත උත්සාහ කරන්න"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"පිටවන්න"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"රහසිගත අවකාශයක් ලබා ගත නොහැක.\nභව්‍ය හේතු බලන්න"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"භව්‍ය හේතු බලන්න"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"පුද්ගලික අවකාශය සඳහා නව අගුලක් තෝරා ගන්නද?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"ඔබට පුද්ගලික ඉඩකඩ නිසාම නව අගුලක් සැකසිය හැක, නැති නම් ඔබ ඔබේ උපාංගයට අගුලු දැමීමට භාවිත කරන අගුල ම භාවිත කළ හැක"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"තිර අගුල භාවිතා කරන්න"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"උපාංගය යළි අරඹන්න ද?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"විස්තර NFC ලොග් කිරීම සංවර්ධන අරමුණු සඳහා පමණක් අදහස් කරයි. පෞද්ගලික තොරතුරු අඩංගු විය හැකි, දෝෂ වාර්තාවල අතිරේක NFC දත්ත ඇතුළත් වේ. මෙම සැකසීම වෙනස් කිරීමට ඔබේ උපාංගය යළි අරඹන්න."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"යළි අරඹන්න"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ක්‍රියාත්මකයි"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ක්‍රියාවිරහිතයි"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"බාහිර සංදර්ශකය"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"බාහිර සංදර්ශකය භාවිතා කරන්න"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"සංදර්ශක විභේදනය"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"බාහිර සංදර්ශකය විසන්ධි කර ඇත"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"කරකැවීම"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"සම්මත"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"කරකැවීම හෝ විභේදනය වෙනස් කිරීම දැනට ධාවනය වන ඕනෑම යෙදුමක් නැවැත්විය හැක"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"ඔබේ තිරය පිළිබිඹු කිරීමට ඔබේ උපාංගය බාහිර සංදර්ශකයකට සම්බන්ධ කළ යුතු යි"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"තවත් විකල්ප"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"දර්පණය"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"රැහැන් රහිත දර්ශනය සබල කරන්න"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"අනුවර්තී"</string>
     <string name="brightness" msgid="6216871641021779698">"දීප්ති මට්ටම"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"අනුවර්තක දීප්තිය"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"අනුවර්තී දීප්තිය පිළිබඳව"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"ඔබේ තිරයේ දීප්තිය ස්වයංක්‍රියව ඔබගේ පරිසරයට සහ ක්‍රියාකාරකම්වලට ගළපනු ඇත. අනුවර්තන දීප්තියට ඔබේ මනාප දැන ගැනීමට උදවු වීමට ඔබට ස්ලයිඩරය හස්තීයව ගෙන යාමට හැකිය."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ක්‍රියාත්මකයි"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ක්‍රියාවිරහිතයි"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"විකල්ප"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ප්‍රවේශ්‍යතාව"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"භෞතික යතුරු පුවරුව"</string>
-    <string name="show_ime" msgid="4334255501724746849">"තිරය මත යතුරු පුවරුව භාවිත කරන්න"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"භෞතික යතුරු පුවරුව සක්‍රිය අතරතුර එය තිරය මත තබා ගන්න"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"පනින යතුරු"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"යතුරුපුවරුව <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ඇතුළත එකම යතුර නැවත නැවතත් එබීම් නොසලකා හරියි"</string>
     <string name="slow_keys" msgid="2891452895499690837">"මන්දගාමී යතුරු"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"යතුරු එබීම සඳහා ගතවන කාලය <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms දක්වා සකසයි"</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="2396247040177734245">"මූසිකය පාලනය කිරීමට භෞතික යතුරු පුවරුව භාවිතා කරන්න."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"දර්ශක පිරවුම් විලාසය කහ පැහැයට වෙනස් කරන්න"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"දර්ශක පිරවුම් විලාසය රෝස පැහැයට වෙනස් කරන්න"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"දර්ශක පිරවුම් විලාසය නිල් පැහැයට වෙනස් කරන්න"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"දර්ශක පහර විලාසය"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"සුදු"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"කළු"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"කිසිවක් නැත"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ස්පර්ශක පුවරු අභිනයන් ඉගෙන ගන්න"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ට්‍රැක්පෑඩ්, ට්‍රැක් පෑඩ්, මූසිකය, කර්සරය, අනුචලනය, ස්වයිප්, දකුණු ක්ලික්, ක්ලික්, දර්ශකය"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"දකුණු ක්ලික් කරන්න, තට්ටු කරන්න"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"පරිශීලක තෝරා ඇත: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"කථනය"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"දර්ශක වේගය"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"දර්ශක පරිමාණය"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"දර්ශක පරිමාණය අඩු කරන්න"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"දර්ශක පරිමාණය වැඩි කරන්න"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"ක්‍රීඩා පාලකය"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"කම්පනය ප්‍රතියොමු කරන්න"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"ක්‍රීඩා පාලකයට සම්බන්ධ විට කම්පනය යවන්න."</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"කෙසේ වෙතත් ඉදිරියට යන්න"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"අවලංගු කරන්න"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"විශාලන සැකසීම්"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"එක ඇඟිල්ලකින් පෑන් කිරීම"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 ඇඟිල්ලකින් විශාලකය ගෙන යන්න"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"තිරය වටා ගමන් කිරීමට 1 ඇඟිල්ලක් අදින්න"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"එක ඇඟිල්ලක් ඇදීමෙන් විශාලන ප්‍රදේශය එහා මෙහා කරන්න."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ඇඟිලි දෙකක් ඇදීමෙන් විශාලන ප්‍රදේශය එහා මෙහා කරන්න."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"තිරයේ කොටසක් පමණක් විශාලනය කරන අතරේ ලබා ගත නොහැක"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"විශාලනය කිරීමට බොත්තමක් තට්ටු කරන්න"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"අන්තර්ගතය වඩා විශාල කිරීමට තිරය මත ඉක්මනින් විශාලනය කරන්න"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;විශාලනය වැඩි කිරීමට:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න&lt;br/&gt; {1,number,integer}. තිරය තට්ටු කරන්න&lt;br/&gt; {2,number,integer}. තිරය වටා යාමට ඇඟිලි 2කින් අදින්න&lt;br/&gt; {3,number,integer}. විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2කින් පින්ච් කරන්න&lt;br/&gt; {4,number,integer}. විශාලනය කිරීම නතර කිරීමට කෙටි මග භාවිත කරන්න&lt;br/&gt;&lt;br/&gt; &lt;b&gt;තාවකාලිකව විශාලනය වැඩි කිරීමට:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ඔබගේ විශාලන වර්ගය පූර්ණ තිරයට සකසා ඇති බවට සහතික කර ගන්න&lt;br/&gt; {1,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න&lt;br/&gt; {2,number,integer}. තිර‍යේ ඕනෑම තැනක ස්පර්ශ කර අල්ලා ගන්න&lt;br/&gt; {3,number,integer}. තිරය වටා යාමට ඇඟිල්ල අදින්න&lt;br/&gt; {4,number,integer}. විශාලනය කිරීම නතර කිරීමට ඇඟිල්ල ඔසවන්න"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"<b>විශාලනය වැඩි කිරීමට:</b><br/> {0,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න<br/> {1,number,integer}. තිරය තට්ටු කරන්න<br/> {2,number,integer}. තිරය වටා යාමට ඇඟිලි 2කින් අදින්න<br/> {3,number,integer}. විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2කින් පින්ච් කරන්න<br/> {4,number,integer}. විශාලනය නැවැත්වීමට කෙටිමඟ භාවිතා කරන්න&lt;br/&gt;&lt;br/&gt; ඔබට තාවකාලිකව සහ තවත් විශාලනය කිරීමට ද හැක."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"<b>විශාලනය වැඩි කිරීමට:</b><br/> {0,number,integer}. විශාලනය කිරීම ආරම්භ කිරීමට කෙටිමග භාවිත කරන්න<br/> {1,number,integer}. තිරය තට්ටු කරන්න<br/> {2,number,integer}. තිරය ​​වටා ගමන් කිරීමට ඇඟිලි 1ක් හෝ 2ක් අදින්න&lt;br/&gt; {3,number,integer}. විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2කින් පින්ච් කරන්න<br/> {4,number,integer}. විශාලනය නැවැත්වීමට කෙටිමඟ භාවිතා කරන්න&lt;br/&gt;&lt;br/&gt; ඔබට තාවකාලිකව සහ තවත් විශාලනය කිරීමට ද හැක."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"විශාලනය ක්‍රියාත්මක කර ඇති විට, ඔබට ඔබේ තිරයේ දී විශාලනය වැඩි කළ හැකිය.\n\n"<b>"විශාලනය කිරීමට"</b>", විශාලනය ආරම්භ කර, අනතුරුව තිරයේ ඕනෑම තැනක තට්ටු කරන්න.\n"<ul><li>"අනුචලනය කිරීමට ඇඟිලි 2ක් හෝ ඊට වැඩි ගණනක් අදින්න"</li>\n<li>"විශාලනය සීරුමාරු කිරීමට ඇඟිලි 2ක් හෝ ඊට වැඩි ගණනක් කොනහන්න"</li></ul>\n\n<b>"තාවකාලිකව විශාලනය කිරීමට"</b>", විශාලනය ආරම්භ කර, අනතුරුව තිරයේ ඕනෑම තැනක ස්පර්ශ කර &amp; අල්ලාගෙන සිටින්න.\n"<ul><li>"තිරය වටා චලනය කිරීමට අදින්න"</li>\n<li>"විශාලනය අඩු කිරීමට ඇඟිල්ල ඔසවන්න"</li></ul>\n\n"ඔබට යතුරු පුවරුවේ හෝ සංචාලන තීරුවේ දී විශාලනය වැඩි කළ නොහැකිය."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> න් <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> පිටුව"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ප්‍රවේශ්‍යතා බොත්තම් කෙටිමඟ"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"ඇඟිලි 2කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 2කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"ඇඟිලි 3කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 3කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ඔබේ තිරයෙහි පහළින් උඩට ස්වයිප් කරන්න. විශේෂාංග අතර මාරු වීමට, ඉහළට ස්වයිප් කර සිටින්න.}one{ඔබේ තිරයෙහි පහළ සිට ඇඟිලි #ක් සමග ඉහළට ස්වයිප් කරන්න. විශේෂාංග අතර මාරු වීමට, ඇඟිලි #ක් සමග ඉහළට ස්වයිප් කර සිටින්න.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"ඇඟිලි දෙකේ ද්විත්ව තට්ටු තිරය"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"තිරය %1$d වරක් ඉක්මනින් තට්ටු කරන්න. මෙය ඔබේ උපාංගය මන්දගාමී කිරීමට හැක."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ඇඟිලි %1$d දෙවරක් තට්ටු කිරීම"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ඇඟිලි දෙකකින් තිරය {0,number,integer} වාරයක් ඉක්මනින් තට්ටු කරන්න"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"තිරය තෙවරක් තට්ටු කරන්න"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"තුන්වරක් තට්ටු කිරීම"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"තිරය ඉක්මනින් වාර {0,number,integer}ක් තට්ටු කරන්න. මෙම කෙටි මග ඔබගේ උපාංගය මන්දගාමී කළ හැකිය"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"උසස්"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ප්‍රවේශ්‍යතා බොත්තම <xliff:g id="SERVICE">%1$s</xliff:g> වෙත සකසා ඇත. විශාලනය භාවිතා කිරීමට ප්‍රවේශ්‍යතා බොත්තම ස්පර්ශ කරගෙන විශාලනය තෝරන්න."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ප්‍රවේශ්‍යතා ඉංගිතය <xliff:g id="SERVICE">%1$s</xliff:g> ලෙස සකසා ඇත. විශාලනය භාවිත කිරීමට, ඔබේ තිරයේ පහළ සිට ඇඟිලලි දෙකකින් උඩට ස්වයිප් කර අල්ලා ගෙන සිටින්න. අනතුරුව විශාලනය තෝරන්න."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"මෙම සේවාව නිසි පරිදි ක්‍රියා නොකරයි."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ප්‍රවේශ්‍යතා කෙටි මං"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"ඉක්මන් සැකසීම් තුළ පෙන්වන්න"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"රතු-කොළ"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"රතු-කොළ"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"රතු-කොළ, කොළ දුර්වල"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"රතු-කොළ, රතු දුර්වල"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"නිල්-කහ"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grayscale"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ත්‍රීවතාවය"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"කොළ දුර්වල, රතු කොළ වර්ණ අන්ධතාව"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"රතු දුර්වල, රතු-කොළ වර්ණ අන්ධතාව"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"අළු පරිමාණ ප්‍රකාරය සඳහා හෝ වර්ණ නිවැරදි කිරීම අබල කර ඇති විට ලබා ගත නොහැක"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"වර්ණ අන්ධතාව"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"වර්ණ දුර්වලතාව"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"වර්ණ අන්ධතාව"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"තවත් අඳුරු"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"තිරය ​​තවත් අඳුරු කරන්න"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"මයුර නිල්"</string>
     <string name="color_yellow" msgid="5957551912912679058">"කහ"</string>
     <string name="color_magenta" msgid="8943538189219528423">"දම්පාට තද රතු"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> හට ඔබේ උපාංගයේ සම්පූර්ණ පාලනය තබා ගැනීමට ඉඩ දෙන්නද?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> හට අවශ්‍යයි:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"යෙදුම අවසර ඉල්ලීමක් කරන නිසා, සැකසීම් හට ඔබගේ ප්‍රතිචාරය සත්‍යාපනය කළ නොහැක."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> මෙම උපාංගයේ සම්පූර්ණ පාලනය ඉල්ලමින්. සේවාවට තිරය කියවීමට සහ ප්‍රවේශ්‍යතා අවශ්‍යතා ඇති පරිශීලකයන් වෙනුවෙන් ක්‍රියා කිරීමට හැකිය. මෙම මට්ටමේ පාලනය බොහොමයක් යෙදුම් සඳහා සුදුසු නැත."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"පූර්ණ පාලනය ඔබට ප්‍රවේශ්‍යතා අවශ්‍යතා සමඟ උදවු කරන යෙදුම් සඳහා සුදුසු වන නමුත් බොහෝ යෙදුම් සඳහා සුදුසු නොවේ."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"තිරය බලන්න සහ පාලන කරන්න"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"එයට තිරයේ සියලුම අන්තර්ගත කියවිය හැකි අතර අනෙකුත් යෙදුම් මත අන්තර්ගතය සංදර්ශන කළ හැක."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"බලන්න සහ ක්‍රියා කරන්න"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"මෙයට යෙදුමක් හෝ දෘඪාංග සංවේදකයක් සමඟ ඔබේ අන්තර්ක්‍රියා හඹා යෑමට, සහ ඔබ වෙනුවෙන් යෙදුම් සමඟ අන්තර්ක්‍රියාවේ යෙදීමට හැකි ය."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ඉඩ දෙන්න"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ප්‍රතික්‍ෂේප කරන්න"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ක්‍රියාවිරහිත කරන්න"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{කිසිත් නැත}=1{කාලසටහන් 1ක් සකසන ලදී}one{කාලසටහන් #ක් සකසන ලදී}other{කාලසටහන් #ක් සකසන ලදී}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"බාධා නොකරන්න"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ප්‍රමුඛතා ප්‍රකාර"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ප්‍රකාරයක් එක් කරන්න"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"අවධානය වෙනතකට යොමු කිරීම අවම කර නින්ද, වැඩ, රිය පැදවීම සහ ඒ අතර ඇති සියල්ල සඳහා ප්‍රකාරයන් සමග ඔබේ අවධානය පාලනය කරන්න."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"ඔබේම ප්‍රකාරය තනන්න"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"වැදගත් පුද්ගලයන් සහ යෙදුම් විසින් පමණක් දැනුම් දෙනු ලැබේ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"කාලසටහනක් සකසන්න"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"කාලසටහන මේ මත පදනම්ව වේ"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"දවස සහ වේලාව"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"සතියේ දිනවල පෙ.ව. 9 - ප.ව. 5\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"දින දර්ශන සිදුවීම්"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} සක්‍රියයි}=2{{mode_1} සහ {mode_2} සක්‍රියයි}=3{{mode_1}, {mode_2}, සහ {mode_3} සක්‍රියයි}one{{mode_1}, {mode_2}, සහ තව #ක් සක්‍රියයි}other{{mode_1}, {mode_2}, සහ තව #ක් සක්‍රියයි}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 ප්‍රකාරයක් ස්වයංක්‍රීයව ක්‍රියාත්මක විය හැක}one{ප්‍රකාර #ක් ස්වයංක්‍රීයව ක්‍රියාත්මක විය හැක}other{ප්‍රකාර #ක් ස්වයංක්‍රීයව ක්‍රියාත්මක විය හැක}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ක්‍රියාත්මකයි"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"සකසා නැත"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"අබලයි"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"ප්‍රකාරයක් තනන්න"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"අභිරුචි"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"දැන් ක්‍රියාත්මක කරන්න"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ක්‍රියාවිරහිත කරන්න"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ප්‍රකාරය හමු නොවිණි"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"බාධා සීමා කරන්න"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"බාධා කිරීම් සහ අවධානය වෙනතකට යොමු වීම් අවහිර කරන්න"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> පිහිටුවන්න"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"බාධා නොකරන්න ක්‍රියාත්මක කරන්න"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"එලාම සහ මාධ්‍ය හඬවල්වලට බාධා කළ හැකිය"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"කාල සටහන්"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"කාල සටහන් මකන්න"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"මකන්න"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"යළි නම් කරන්න"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"මකන්න"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" ප්‍රකාරය මකන්න ද?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"සංස්කරණය කරන්න"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"කාල සටහන්"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"කාල සටහන"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ස්වයංක්‍රීයව ක්‍රියාත්මක කරන්න"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"දින දර්ශනයක් එක් කරන්න"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ඔබේ දින දර්ශනය භාවිතා කරන්න"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"කාල සටහන"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"කාලසටහනක් සකසන්න"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ස්වයංක්‍රීයව ක්‍රියාත්මක කළ යුත්තේ කෙවිට ද"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"සිදුවීම් කාල සටහන"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"මේ සඳහා සිදුවීම් අතරතුර ක්‍රියාත්මක කරන්න"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ආරාධනා පිළිතුර ඇති තැන"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"වේලා කාල සටහන"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"කාල සටහන"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"පැය <xliff:g id="HOURS">%1$d</xliff:g>යි, විනාඩි <xliff:g id="MINUTES">%2$d</xliff:g>ක්"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"කාල සටහන"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ශබ්දය ඇති කරන බාධා කිරීම්වලට ඉඩ දෙන්න"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"දෘශ්‍ය බාධක අවහිර කරන්න"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"දෘශ්‍ය සංඥාවලට ඉඩ දෙන්න"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"ඔබට ළඟා විය හැකි දැනුම්දීම්"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"අමතර ක්‍රියා"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"දැනුම්දීම් පෙරහන්"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"තව සැකසීම්"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ක්‍රියාවිරහිතයි}=1{ක්‍රියාවිරහිතයි / 1 ප්‍රකාරයක් ස්වයංක්‍රියව ක්‍රියාත්මක කළ හැක}one{ක්‍රියාවිරහිතයි / ප්‍රකාර #ක් ස්වයංක්‍රියව ක්‍රියාත්මක කළ හැක}other{ක්‍රියාවිරහිතයි / ප්‍රකාර #ක් ස්වයංක්‍රියව ක්‍රියාත්මක කළ හැක}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"සංදර්ශක සැකසීම්"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"සංදර්ශක විකල්ප"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"අළු පැහැය"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"අඳුරු තේමාව සබල කරන්න"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"අඳුරු පසුබිමක ආලෝක පාඨයට කැමති වීමට OS සහ යෙදුම් මාරු කරන්න, එය ඇස්වලට ඉතා පහසු විය හැකි අතර සමහර උපාංග මත සැලකිය යුතු බැටරි සුරැකුම් ලබා දිය හැක"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{සංදර්ශක වෙනස්කම් කිසිවක් නැත}=1{{effect_1}}=2{{effect_1} සහ {effect_2}}=3{{effect_1}, {effect_2} සහ {effect_3}}one{{effect_1}, {effect_2}, සහ තව # ක්}other{{effect_1}, {effect_2}, සහ තව # ක්}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"ඔබට දැනුම් දිය හැකි දේ සීමා කරන්න"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"බාධා කිරීම් පෙරහන් කරනු නොලැබේ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"පෙරන ලද දැනුම්දීම් සඳහා විකල්ප සංදර්ශන කරන්න"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Do Not Disturb ක්‍රියාත්මක වන්නේ මොන වේලාවටද"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"දැනුම්දීම් වෙතින් හඬ නැත"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"දැනුම් දීම විවෘත කරන්න"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"දැනුම්දීම කල් දැමීමට ඉඩ දෙන්න"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"යෙදුම් අයිකනයෙහි දැනුම් දීම් තිත"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"දැනුම්දීම් පොදි"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"බුබුළු"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"බුබුළු"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"මෙම සංවාදය බුබුලු දමන්න"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"අනුවර්තී දැනුම්දීම්"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"අනුවර්තී දැනුම්දීම් භාවිතා කරන්න"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"ඔබට කෙටි කාලයක් තුළ බොහෝ දැනුම්දීම් ලැබෙන විට, ඔබේ දුරකථනය ශබ්දය අඩු කර විනාඩි දෙකක් දක්වා තිරය මත උත්පතන අවම කරනු ඇත. ඇමතුම්, එලාම්, සහ ප්‍රමුඛතා සංවාද තවමත් කම්පනය වේ, ශබ්දයක් ඇති කරයි, හෝ තිරය මත පෙන්වයි, ඔබ තිරයේ ඉහළ සිට පහළට අදින විට සියලු දැනුම්දීම් සොයා ගැනීමට පහසු වේ."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"කාර්යාල පැතිකඩ යෙදුම්වලට යොදන්න"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR උදවුකරු සේවා"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"ප්‍රවර්ග"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"වෙනත්"</string>
     <string name="no_channels" msgid="4716199078612071915">"මෙම යෙදුම දැනුම්දීම් කිසිවක් පළ කර නැත"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"භාවිතයට නොගත් ප්‍රවර්ග පෙන්වන්න"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"අමතර සැකසීම් යෙදුම තුළ ඇත"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"භාවිතයට නොගත් ප්‍රවර්ග පෙන්වන්න"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"භාවිතයට නොගත් ප්‍රවර්ග සඟවන්න"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"සංවාද"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"සියලු සංවාද"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"සියලු සංවාද"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ප්‍රමුඛතා සංවාද"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ප්‍රමුඛතා සංවාද"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"කිසිවක් නැත"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"බාධා කළ හැකි යෙදුම්"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"තෝරාගත් යෙදුම"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"කිසිවක් නැත"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"සියලු"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{යෙදුම් කිසිවකට බාධා කළ නොහැක}=1{{app_1} හට බාධා කළ හැක}=2{{app_1} සහ {app_2} හට බාධා කළ හැක}=3{{app_1}, {app_2}, සහ {app_3} හට බාධා කළ හැක}one{{app_1}, {app_2}, සහ තවත් #ක් හට බාධා කළ හැක}other{{app_1}, {app_2}, සහ තවත් #ක් හට බාධා කළ හැක}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (කාර්යාලය)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"ගණනය කරමින්…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ප්‍රතික්ෂේප කිරිමට යෙදුම්වලට ඉඩ දෙන්න"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"බාධා කළ හැකි යෙදුම්"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"තවත් යෙදුම් තෝරන්න"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"නැවත නැවතත් අමතන්නන්ට බාධා කළ හැක"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"සියලු පුද්ගලයන්ට බාධා කළ හැකිය"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"නැවත අමතන්නන්"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"යළි අමතන්නන්ට ඉඩ දෙන්න"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} දක්වා පැයක් සඳහා පමණක් එලාම වෙත වෙනස් කරන්න}one{{time} දක්වා පැය #ක් සඳහා පමණක් එලාම වෙත වෙනස් කරන්න}other{{time} දක්වා පැය #ක් සඳහා පමණක් එලාම වෙත වෙනස් කරන්න}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> පමණක් දක්වා ඇති සීනු වෙත මාරු වෙන්න"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"සෑම විටම බාධා කිරීම වෙත මාරු වෙන්න"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"නැවත නම් කරන්න"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"නිරූපකය වෙනස් කරන්න"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"නිරූපකය වෙනස් කරන්න"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"සංස්කරණ ප්‍රකාරය"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"ප්‍රකාරයක් තනන්න"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"අභිරුචි ප්‍රකාරය"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ප්‍රකාරයේ නම"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"දින දර්ශන සිදුවීම්"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"නින්දට යන වේලාවේ දින චර්යාව"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ධාවනය කරන අතරතුර"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"යෙදුම් සැකසීම්"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> තුළ තතු සහ සැකසීම්"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> මගින් කළමනාකරණය කෙරේ"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> අබල කරන්න ද?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"අබල කළ විට මෙම ප්‍රකාරය කිසිදා ක්‍රියාත්මක නොවනු ඇත"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"අබල කරන්න"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> සබල කරන්න ද?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"මෙම ප්‍රකාරය එහි සැකසීම් මත පදනම්ව ස්වයංක්‍රීයව ක්‍රියාත්මක විය හැක"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"සබල කරන්න"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"නිතිපතා කාලසටහනක් අනුගමනය කරන ප්‍රකාරයක් සකසන්න"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"දින දර්ශන සිදුවීම් සමග සමමුහූර්ත කිරීමට සහ ප්‍රතිචාරවලට ආරාධනා කිරීමට ප්‍රකාරයක් සකසන්න"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"සන්සුන් නිද්‍රා දිනචරියාවක් සැලසුම් කරන්න. එලාම සකසන්න, තිරය අඳුරු කරන්න, සහ දැනුම්දීම් අවහිර කරන්න."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"නාභිගත සහ අවධානය වෙනතකට යොමු නොවන ධාවකයක් සඳහා මාර්ගයේ ආරක්ෂාවට ප්‍රමුඛත්වය දෙන්න"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"අවවාදයයි"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"වසන්න"</string>
     <string name="device_feedback" msgid="5351614458411688608">"මෙම උපාංගය පිළිබඳ ප්‍රතිපෝෂණ යවන්න"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"කේස්"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"බැටරිය"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"සැකසීම් පුවරුව"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"වැඩතල ප්‍රකාරය බල කරන්න"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ද්විතීයික සංදර්ශන කෙරෙහි අත්හදා බැලීමේ වැඩතල ප්‍රකාරය බල කරන්න"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"අනියම් හැඩැති කවුළු සබල කරන්න"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"ද්විතියික සංදර්ශකය මත නිදහස් ආකෘති කවුළු සබල කරන්න"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"බහු කවුළුව තුළ ප්‍රතිප්‍රමාණ කළ නොහැකි සබල කරන්න"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"බහු කවුළුව තුළ ප්‍රතිප්‍රමාණ කළ නොහැකි යෙදුම් තිබීමට ඉඩ දෙයි"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"force-dark ප්‍රතික්ෂේප කරන්න"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"ජංගම දත්ත"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"උපාංග අත්දැකීම වැඩි දියුණු කිරිමට, Wi‑Fi ක්‍රියාවිරහිත විට පවා, ඕනෑම අවස්ථාවක Wi‑Fi ජාල සඳහා ස්කෑන් කිරීමට යෙදුම් සහ සේවාවලට හැකිය. උදාහරණයක් ලෙස, ස්ථානය-පදනම් වූ විශේෂාංග සහ සේවා වැඩි දියුණු කිරීම සඳහා මෙය භාවිත කළ හැකිය. ඔබට මෙය Wi‑Fi ස්කෑන් කිරීමේ සැකසීම් තුළ වෙනස් කළ හැකිය."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"වෙනස් කරන්න"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"සම්බන්ධයි"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"තාවකාලිකව සම්බන්ධ කළා"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> තාවකාලිකව භාවිත කරනු ලැබේ"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"යෙදුම ඇමිණීම භාවිත කරන්න"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"සංවර්ධක විකල්ප භාවිත කරන්න"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"මුද්‍රණ සේවාව භාවිත කරන්න"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"බහු පරිශීලකයින්ට ඉඩ දෙන්න"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"පරිශීලක ස්විචයට ඉඩ දෙන්න"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ඉඩ දෙන්න, බහුවිධ, පරිශීලක, අවසර, බොහෝ"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"බහු, පරිශීලකයෝ, පැතිකඩ, පුද්ගලයෝ, ගිණුම්, මාරු කිඍිම, බොහෝ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"රැහැන් රහිත නිදොස්කරණය භාවිත කරන්න"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"ඔබගේ ටැබ්ලටය ඈඳා ඇති විට ඔබ ඔබගේ තිරය මත දකිනු ඇති දේ තෝරන්න. තිර සුරැකුමක් භාවිත කරන විට ඔබගේ උපාංගය ශක්තිය වැඩියෙන් භාවිත කළ හැකිය."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"අභිරුචිකරණය කරන්න"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> අභිරුචිකරණය කරන්න"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"නිදහස් ආකෘති සහාය සබල කිරීමට නැවත පණ ගැන්වීමක් අවශ්‍ය වේ."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ද්විතීයික සංදර්ශකවල ඩෙස්ක්ටොප් ප්‍රකාරය බල කිරීමට නැවත පණ ගැන්වීමක් අවශ්‍ය වේ."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"නිදහස් ආකෘති කවුළු සහාය සබල කිරීමට නැවත පණ ගැන්වීමක් අවශ්‍ය වේ."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"නිදහස් ආකෘති කවුළු පවතින බව යාවත්කාලීන කිරීමට නැවත පණ ගැන්වීමක් අවශ්‍ය වේ."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ද්විතියික සංදර්ශකවල නිදහස් ආකෘති කවුළු සබල කිරීමට නැවත පණගැන්වීමක් අවශ්‍ය වේ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"දැන් නැවත පණ ගන්වන්න"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"පසුව නැවත පණ ගන්වන්න"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"අවකාශීය ශ්‍රව්‍ය"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"රෝස"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"මැජෙන්ටා"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"වයලට්"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"නිමයි"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"සුරකින්න"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"අවලංගු කරන්න"</string>
     <string name="contrast_default" msgid="8918545965525226966">"පෙරනිමි"</string>
     <string name="contrast_medium" msgid="384414510709285811">"මධ්‍යම"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ක්‍රියාත්මකයි"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ක්‍රියාවිරහිතයි"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ක්‍රියාත්මකයි"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ශ්‍රව්‍ය %1$d%% වම, %2$d%% දකුණ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ශ්‍රව්‍ය %1$d%% දකුණ, %2$d%% වම"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"ඔබේ උපාංගයේ නම ඔබ ස්ථාපනය කර ඇති යෙදුම්වලට දෘශ්‍යමාන වේ. ඔබ බ්ලූටූත් උපාංග වෙත සම්බන්ධ වන විට, Wi-Fi ජාලයකට සම්බන්ධ වන විට හෝ Wi-Fi හොට්ස්පොට් එකක් පිහිටුවන විට එය වෙනත් පුද්ගලයන් විසින් ද දැකිය හැක."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"ව්‍යාකරණමය ලිංගභේදය"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"ව්‍යාකරණමය ලිංගභේදය තෝරන්න"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ප්‍රවාහයට සවන් දෙන්න"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> සමග සවන් දීමට ශ්‍රව්‍ය ප්‍රවාහ QR කේතයක් ස්කෑන් කරන්න"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"බෙදා ගන්නා අතරේ මුරපදය සංස්කරණය කළ නොහැක. මුරපදය වෙනස් කිරීමට, පළමුව ශ්‍රව්‍ය බෙදා ගැනීම ක්‍රියාවිරහිත කරන්න."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR කේත ස්කෑනරය"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"සෙවීමේ සැකසීම්"</string>
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 4c28e4b..a1425c6 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Večierka"</item>
-    <item msgid="4152450357280759894">"Intenzívne"</item>
-    <item msgid="7096549258219399423">"Pútavé"</item>
-    <item msgid="2760716776980432977">"Spravované"</item>
-    <item msgid="601734478369121764">"Hviezda"</item>
-    <item msgid="6243809315432780521">"Kalendár"</item>
-    <item msgid="4913577903148415331">"Čas"</item>
-    <item msgid="3653377604690057780">"Kino"</item>
-    <item msgid="3843711267408385410">"Kvet"</item>
+    <item msgid="2750940760340557109">"Polmesiac"</item>
+    <item msgid="8513969636586738035">"Auto"</item>
+    <item msgid="957392343846370509">"Ľudská myseľ"</item>
+    <item msgid="6734164279667121348">"Kalendár"</item>
+    <item msgid="4139559120353528558">"Hodiny"</item>
+    <item msgid="5157711296814769020">"Plážový slnečník"</item>
+    <item msgid="6635328761318954115">"Stan"</item>
+    <item msgid="1711994778883392255">"Cievka filmu"</item>
+    <item msgid="9097658401859604879">"Herný ovládač"</item>
+    <item msgid="755931364157422565">"Činka"</item>
+    <item msgid="8894207806795738429">"Osoba, ktorá hádže loptu"</item>
+    <item msgid="2274801572149555103">"Osoba, ktorá kope"</item>
+    <item msgid="8795037201506843325">"Plávanie"</item>
+    <item msgid="3558421426169430451">"Osoba na túre"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Nástroje v dielni"</item>
+    <item msgid="4595330511709890409">"Kufrík"</item>
+    <item msgid="8352738347856724389">"Hviezdička"</item>
+    <item msgid="7082783098151998721">"Lotosový kvet"</item>
+    <item msgid="5772220259409264724">"Dohľad"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 037c867..965e94a 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pozastavená"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Neznáme"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Ukážka"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kód"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Zmenšiť"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Zväčšiť"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vždy"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Nastavenia načúvacieho zariadenia"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Skratka, kompatibilita s načúvadlami"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Predvoľba"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Váš audiológ nenaprogramoval žiadne predvoľby"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Predvoľbu sa nepodarilo aktualizovať"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Zvukový výstup"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Zvukový výstup"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Výber jazyka pre túto aplikáciu nie je v Nastaveniach k dispozícii."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Jazyk môže byť iný, ako sú tie, ktoré sú k dispozícii v aplikácii. Niektoré aplikácie nemusia toto nastavenie podporovať."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Nastavte jazyk pre každú aplikáciu."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Systém, aplikácie a weby používajú prvý jazyk z vášho poradia preferovaných jazykov, ktorý podporujú."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Vaše zariadenie, aplikácie a weby používajú prvý podporovaný jazyk z vášho zoznamu preferovaných jazykov.\n\nVeľa aplikácii bude pomocou vášho regiónu z vašich preferovaných jazykov formátovať dátumy, čísla a jednotky. Ak chcete svoj región zmeniť, pridajte jazyk a vyberte preferovaný región."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ak chcete vybrať jazyk pre konkrétnu aplikáciu, prejdite do nastavení jazyka tejto aplikácie."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Ďalšie informácie o jazykoch aplikácií"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Chcete zmeniť jazyk systému na možnosť %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Vypnuté"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Zapnuté / # aplikácia má prístup k polohe}few{Zapnuté / # aplikácie majú prístup k polohe}many{On / # apps have access to location}other{Zapnuté / # aplikácií má prístup k polohe}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Načítava sa…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikácie s povolením pre zariadenia v okolí môžu rozpoznať relatívnu pozíciu pripojených zariadení."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikácie s povolením pre zariadenia v okolí môžu rozpoznať relatívnu pozíciu pripojených zariadení."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Prístup aplikácií a služieb k polohe je vypnutý. Poloha zariadenia však stále môže byť odoslaná záchranárom, keď zavoláte na tiesňovú linku alebo na ňu pošlete textovú správu."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ďalšie informácie o nastaveniach polohy"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ak chcete vykonať zmenu, prejdite do sekcie Nastavenia systému ChromeOS &gt; Ochrana súkromia a zabezpečenie &gt; Nastavenia ochrany súkromia &gt; Prístup k polohe"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Tvár a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Tvár, odtlačok prsta a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Tvár, odtlačky prstov a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odomknutie Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Hodinky boli pridané"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavte si hodinky"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Ďalšie informácie o odomknutí hodinkami"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pridať hodinky"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstrániť hodinky"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odomknutie odtlačkom prsta a tvárou"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Odomknutie tvárou a odtlačkom prsta"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odomknutie tvárou a odtlačkom prsta pre prácu"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Vyžaduje sa nastavenie"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Bola pridaná tvár a odtlačky prsta"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nastavuje sa súkromný priestor…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Súkromný priestor sa nepodarilo nastaviť"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Skúsiť znova"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Ukončiť"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Súkromný priestor nie je k dispozícii.\nZobraziť možné príčiny"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Zobraziť možné príčiny"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Chcete pre súkromný priestor vybrať novú zámku?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Môžete nastaviť novú zámku iba pre súkromný priestor alebo použiť zámku, ktorou odomykáte svoje zariadenie"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Používať zámku obrazovky"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Chcete zariadenie reštartovať?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Podrobné zaznamenávanie údajov NFC je určené iba na účely vývoja. Ďalšie údaje NFC sú zahrnuté v hláseniach chýb, ktoré môžu obsahovať súkromné informácie. Ak chcete toto nastavenie zmeniť, reštartujte zariadenie."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Reštartovať"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Zapnuté"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Vypnuté"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Externá obrazovka"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Použiť externú obrazovku"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Rozlíšenie displeja"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Externá obrazovka je odpojená"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Otočenie"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Štandardné"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Zmena otočenia alebo rozlíšenia môže zastaviť všetky aktuálne spustené aplikácie"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Ak chcete zrkadliť obrazovku, zariadenie musí byť pripojené k externej obrazovke"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Ďalšie možnosti"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Prenos"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"zrkadlenie"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Povoliť bezdrôtové zobrazenie"</string>
@@ -907,7 +928,7 @@
     <string name="wifi_scan_notify_text_scanning_off" msgid="7439201783168213149">"Ak chcete spresniť určovanie polohy, zapnite vyhľadávanie sietí Wi‑Fi v <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>nastaveniach vyhľadávania sietí Wi-Fi<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_cellular_data_fallback_title" msgid="2844653839490977040">"Automaticky prepnúť na mobilné dáta"</string>
     <string name="wifi_cellular_data_fallback_summary" msgid="7039944853033554386">"Používať mobilné dáta, keď Wi‑Fi nemá prístup k internetu. Za využité dáta vám môžu byť účtované poplatky."</string>
-    <string name="wifi_add_network" msgid="4178564862173751181">"Pridanie siete"</string>
+    <string name="wifi_add_network" msgid="4178564862173751181">"Pridajte sieť"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2536725796700696566">"Nastavenia Wi‑Fi"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="7822368955551467382">"Wi‑Fi sa automaticky znova zapne"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="5710203586018223864">"Wi‑Fi sa automaticky znova nezapne"</string>
@@ -969,9 +990,9 @@
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="8502084692297249372">"Náhodná adresa MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="6141246783457722976">"Pridať zariadenie"</string>
     <string name="wifi_dpp_center_qr_code" msgid="5270782275746178104">"Ak chcete pridať zariadenie do siete <xliff:g id="SSID">%1$s</xliff:g>, vycentrujte QR kód nižšie"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Naskenovanie QR kódu"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="3543923817779444434">"Naskenujte QR kód"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="969985020363459133">"Ak sa chcete pripojiť k sieti <xliff:g id="SSID">%1$s</xliff:g>, vycentrujte QR kód nižšie"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Pripojte sa k sieti Wi‑Fi naskenovaním QR kódu"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="3180020429793614145">"Pripojte sa k sieti Wi‑Fi naskenovaním QR kódu."</string>
     <string name="wifi_dpp_share_wifi" msgid="2431744447544057866">"Zdieľanie Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="6967364080214325016">"Ak sa chcete pripojiť k sieti <xliff:g id="SSID">%1$s</xliff:g>, naskenujte tento QR kód iným zariadením"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="5398619697898444311">"Ak sa chcete pripojiť k sieti <xliff:g id="SSID">%1$s</xliff:g>, naskenujte tento QR kód"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptívne"</string>
     <string name="brightness" msgid="6216871641021779698">"Úroveň jasu"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptácia jasu"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Informácie o adaptácii jasu"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Jas obrazovky sa automaticky prispôsobí prostrediu a aktivitám. Ručným posúvaním posúvača učíte adaptáciu jasu svoje preferované nastavenia."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Zapnuté"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Vypnuté"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Dostupnosť"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyzická klávesnica"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Používať klávesnicu na obrazovke"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Ponechať na obrazovke, keď je aktívna fyzická klávesnica"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Klávesy jedného stlačenia"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Klávesnica ignoruje rýchle opakované stlačenia rovnakého klávesa rýchlosťou do <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Pomalé klávesy"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Upraví čas aktivácie po stlačení klávesa na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Ovládať myš pomocou fyzickej klávesnice"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Zmena farby kurzora na žltú"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Zmena farby kurzora na ružovú"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Zmena farby kurzora na modrú"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Štýl čiary kurzora"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Biely"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Čierny"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Žiadny"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Naučiť sa gestá touchpadu"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, myš, kurzor, posúvať, potiahnuť, kliknúť pravým tlačidlom, kliknúť, ukazovateľ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliknúť pravým tlačidlom, klepnúť"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Vybrané používateľom: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Reč"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Rýchlosť kurzora"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Mierka ukazovateľa"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Znížiť mierku ukazovateľa"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Zvýšiť mierku ukazovateľa"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Herné ovládače"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Presmerovať vibrácie"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Posielať vibrácie do herného ovládača, keď je pripojený"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Aj tak pokračovať"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Zrušiť"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavenia priblíženia"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Presunutie jedným prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Lupu presúvajte jedným prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Po obrazovke sa pohybujte presúvaním jedného prsta"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Jedným prstom presuňte oblasť zväčšenia."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Dvoma prstami presuňte oblasť zväčšenia."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nie je k dispozícii iba pri zväčšovaní časti obrazovky"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Na priblíženie klepnite na tlačidlo"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Obrazovku si môžete rýchlo priblížiť, aby bol obsah väčší"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Priblíženie:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Skratkou spustite zväčšenie.&lt;br/&gt; {1,number,integer}. Klepnite na obrazovku.&lt;br/&gt; {2,number,integer}. Pohybujte sa po obrazovke presúvaním dvoch prstov.&lt;br/&gt; {3,number,integer}. Priblíženie upravte stiahnutím či roztiahnutím dvoch prstov.&lt;br/&gt; {4,number,integer}. Zväčšenie ukončíte skratkou.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Dočasné priblíženie:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Skontrolujte, či je typ zväčšenia nastavený na celú obrazovku.&lt;br/&gt; {1,number,integer}. Skratkou spustite zväčšenie.&lt;br/&gt; {2,number,integer}. Pridržte ľubovoľné miesto na obrazovke.&lt;br/&gt; {3,number,integer}. Pohybujte sa po obrazovke presúvaním prsta.&lt;br/&gt; {4,number,integer}. Zväčšenie ukončíte zdvihnutím prsta."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Ak chcete priblížiť:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Skratkou spustite zväčšenie.&lt;br/&gt; {1,number,integer}. Klepnite na obrazovku.&lt;br/&gt; {2,number,integer}. Posúvajte sa po obrazovke presúvaním dvoch prstov.&lt;br/&gt; {3,number,integer}. Priblíženie upravte stiahnutím či roztiahnutím dvoch prstov.&lt;br/&gt; {4,number,integer}. Zväčšenie zastavíte pomocou skratky.&lt;br/&gt;&lt;br/&gt; Okrem toho môžete krátkodobo priblížiť a vykonávať ďalšie akcie."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Ak chcete priblížiť:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Skratkou spustite zväčšenie.&lt;br/&gt; {1,number,integer}. Klepnite na obrazovku.&lt;br/&gt; {2,number,integer}. Posúvajte sa po obrazovke presúvaním jedného alebo dvoch prstov.&lt;br/&gt; {3,number,integer}. Priblíženie upravte stiahnutím či roztiahnutím dvoch prstov.&lt;br/&gt; {4,number,integer}. Zväčšenie zastavíte pomocou skratky.&lt;br/&gt;&lt;br/&gt; Okrem toho môžete krátkodobo priblížiť a vykonávať ďalšie akcie."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Keď je priblíženie zapnuté, môžete si zväčšiť obsah obrazovky.\n\n"<b>"Urobíte to tak"</b>", že spustíte priblíženie a klepnete kamkoľvek na obrazovku.\n"<ul><li>"Zobrazenie posuniete presunutím dvoch alebo viacerých prstov."</li>\n<li>"Priblíženie upravíte stiahnutím dvoch alebo viacerých prstov."</li></ul>\n\n<b>"Ak chcete obsah priblížiť krátkodobo"</b>", spustite priblíženie a pridržte ľubovoľné miesto na obrazovke.\n"<ul><li>"Po obrazovke prechádzate presunutím."</li>\n<li>"Oddialite zdvihnutím prsta."</li></ul>\n\n"Nemôžete priblížiť klávesnicu ani navigačný panel."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. stránka z <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Skratka tlačidla dostupnosti"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Klepnite na plávajúce tlačidlo"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gesto dostupnosti"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Klepnite na tlačidlo dostupnosti <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> dole na obrazovke. Medzi jednotlivými funkciami môžete prepínať jeho pridržaním."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Potiahnite dvoma prstami z dolnej časti obrazovky nahor.\n\nFunkcie prepnete potiahnutím dvoma prstami smerom nahor a pridržaním."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Potiahnite troma prstami z dolnej časti obrazovky nahor.\n\nFunkcie prepnete potiahnutím troma prstami smerom nahor a pridržaním."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Potiahnite zdola obrazovky nahor. Funkcie prepnete potiahnutím nahor a pridržaním.}few{Potiahnite # prstami zdola obrazovky nahor. Funkcie prepnete potiahnutím # prstami nahor a pridržaním.}many{Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}other{Potiahnite # prstami zdola obrazovky nahor. Funkcie prepnete potiahnutím # prstami nahor a pridržaním.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Ďalšie možnosti"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Ďalšie informácie o funkcii <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tlačidlá hlasitosti"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tlačidlá hlasitosti"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pridržte obe tlačidlá hlasitosti"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvojité klepnutie dvoma prstami na obrazovku"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvojité klepnutie %1$d prstami"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Rýchlo 2‑krát klepnite na obrazovku %1$d prstami"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trojité klepnutie"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Rýchlo %1$d-krát klepnite na obrazovku. Môže to zariadenie spomaliť."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvojité klepnutie %1$d prstami"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Rýchlo {0,number,integer}-krát klepnite dvoma prstami na obrazovku"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tri klepnutia na obrazovku"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trojité klepnutie"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"{0,number,integer}‑krát rýchlo klepnite na obrazovku. Táto skratka môže zariadenie spomaliť."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Rozšírené"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Tlačidlo dostupnosti je nastavené na službu <xliff:g id="SERVICE">%1$s</xliff:g>. Ak chcete použiť priblíženie, klepnite na tlačidlo dostupnosti, podržte ho a potom vyberte priblíženie."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gesto dostupnosti je nastavené na službu <xliff:g id="SERVICE">%1$s</xliff:g>. Ak chcete použiť priblíženie, potiahnite dvoma prstami nahor zo spodnej časti obrazovky a pridržte ich. Potom vyberte priblíženie."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Táto služba nepracuje správne."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Skratky dostupnosti"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Zobraziť v rýchlych nastaveniach"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Červená a zelená"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Červená a zelená"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Červenozelená, deuteranomália"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Červenozelená, protanomália"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Modrá a žltá"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Odfarbenie"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzita"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Porucha vnímania zelenej, deuteranomália"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Porucha vnímania červenej, protanomália"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nie je k dispozícii pre režim odfarbenia alebo keď je úprava farieb vypnutá"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomália"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomália"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomália"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Mimoriadne stmavenie"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Mimoriadne stmaviť obrazovku"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Azúrová"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Žltá"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Purpurová"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Chcete povoliť službe <xliff:g id="SERVICE">%1$s</xliff:g> úplnú kontrolu nad zariadením?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> potrebuje:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Nastavenia nemôžu overiť vašu odpoveď, pretože určitá aplikácia blokuje žiadosť o povolenie."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Služba <xliff:g id="SERVICE">%1$s</xliff:g> vyžaduje úplnú kontrolu nad týmto zariadením. Táto služba môže čítať obrazovku a konať v mene používateľov, ktorí vyžadujú funkcie dostupnosti. Pre väčšinu aplikácií nie je táto úroveň kontroly primeraná."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Úplná kontrola je vhodná pre aplikácie, ktoré vám pomáhajú s dostupnosťou, ale nie pre väčšinu aplikácií."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Zobrazenie a ovládanie obrazovky"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Môže čítať všetok obsah na obrazovke a zobrazovať obsah cez ďalšie aplikácie."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Zobrazenie a vykonávanie akcií"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Môže sledovať vaše interakcie s aplikáciou alebo hardvérovým senzorom a interagovať s aplikáciami za vás."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povoliť"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zamietnuť"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnúť"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Žiadne}=1{Bol nastavený 1 plán}few{Boli nastavené # plány}many{# schedules set}other{Bolo nastavených # plánov}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Režim bez vyrušení"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Režimy priority"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Pridať režim"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimalizujte vyrušenia a majte svoju pozornosť pod kontrolou pomocou režimov spánku, práce, šoférovania a všetkého medzi tým."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Vytvorte vlastný režim"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Prijímajte upozornenia iba od dôležitých ľudí a z dôležitých aplikácií"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Nastaviť plán"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Plán na základe"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Deň a čas"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"Od 9:00 do 17:00 cez pracovné dni"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Udalosti v kalendári"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Režim {mode_1} je aktívny}=2{Režimy {mode_1} a {mode_2} sú aktívne}=3{Režimy {mode_1}, {mode_2} a {mode_3} sú aktívne}few{Režimy {mode_1}, {mode_2} a # ďalšie sú aktívne}many{{mode_1}, {mode_2}, and # more are active}other{Režimy {mode_1}, {mode_2} a # ďalších je aktívnych}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 režim sa môže zapínať automaticky}few{# režimy sa môžu zapínať automaticky}many{# modes can turn on automatically}other{# režimov sa môže zapínať automaticky}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ZAPNUTÉ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nenastavené"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Deaktivované"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Vytvorte režim"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Vlastné"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Zapnúť"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Vypnúť"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Režim sa nenašiel"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Obmedzenie vyrušení"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokujte vyrušenia a rozptyľovanie"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Nastaviť <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Zapnite režim bez vyrušení"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Budíky a zvuky médií môžu vyrušiť"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Plány"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Odstrániť plány"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Odstrániť"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Premenovať"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Odstrániť"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Chcete odstrániť režim <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Upraviť"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Plány"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Plán"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Automatické zapínanie"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Pridajte kalendár"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Použiť kalendár"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Rozpis"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nastavte si plán"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kedy zapínať automaticky"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Plán udalosti"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Zapnúť počas udalostí pre"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kde je odpoveď na pozvánku"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Časový plán"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Naplánovať"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Plán"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Povolenie zvukových vyrušení"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokovať vizuálne vyrušenia"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Povoliť vizuálne signály"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Upozornenia, ku ktorým máte prístup"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Ďalšie akcie"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtre upozornení"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Ďalšie nastavenia"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Vypnuté}=1{Vypnuté / 1 režim sa môže zapínať automaticky}few{Vypnuté / # režimy sa môžu zapínať automaticky}many{Off / # modes can turn on automatically}other{Vypnuté / # režimov sa môže zapínať automaticky}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Nastavenia obrazovky"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Možnosti zobrazenia"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Odfarbenie"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"zapnutie tmavého motívu"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Prepnite operačný systém a aplikácie na preferovaný svetlý text na tmavom pozadí, čo môže byť menej namáhavé pre oči a významne prispeje k úspore batérie v niektorých zariadeniach"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Žiadne zmeny obrazovky}=1{{effect_1}}=2{{effect_1} a {effect_2}}=3{{effect_1}, {effect_2} a {effect_3}}few{{effect_1}, {effect_2} a # ďalšie}many{{effect_1}, {effect_2}, and # more}other{{effect_1}, {effect_2} a # ďalších}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Obmedzte, na čo môžete dostávať upozornenia"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nefiltrujú sa žiadne vyrušenia"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Možnosti obrazovky na filtrovanie upozornení"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Keď je zapnutý režim bez vyrušení"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Upozornenia bez zvuku"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"otvoriť upozornenie"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Povoliť stlmenie upozornení"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Bodka upozornení na ikone aplikácie"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Balíky upozornení"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubliny"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubliny"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Zobrazovať túto konverzáciu v bubline"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Táto aplikácia nepodporuje zlepšené nastavenia"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Ďalšie nastavenia"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"V tejto aplikácii sú k dispozícii ďalšie nastavenia"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptívne upozornenia"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Používať adaptívne upozornenia"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Keď v krátkom čase dostanete priveľa upozornení, telefón maximálne na dve minúty zníži hlasitosť a minimalizuje vyskakovacie okná na obrazovke. Hovory, budíky a prioritné konverzácie budú naďalej vibrovať, vydávať zvuky alebo sa zobrazovať na obrazovke. Všetky upozornenia ľahko vyhľadáte potiahnutím zhora obrazovky nadol."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Stlmenie upozornení"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Používanie stlmenia upozornení"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Keď dostanete v krátkom čase priveľa upozornení, zariadenie až na dve minúty zníži hlasitosť a minimalizuje počet upozornení. Netýka sa to hovorov, budíkov a prioritných konverzácií. \n\nUpozornenia prijaté počas režimu stlmenia zobrazíte potiahnutím zhora obrazovky nadol."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Použiť na pracovné profily"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Platí pre aplikácie v pracovnom profile"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Pomocné služby VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategórie"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Iné"</string>
     <string name="no_channels" msgid="4716199078612071915">"Táto aplikácia ešte neposlala žiadne upozornenia"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Zobrazenie nepoužívaných kategórií"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Ďalšie nastavenia v aplikácii"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Zobraziť nepoužívané kategórie"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Skryť nepoužívané kategórie"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Konverzácie"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Všetky konverzácie"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"všetky konverzácie"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioritné konverzácie"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioritné konverzácie"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Žiadne"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikácie, ktoré môžu vyrušiť"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Vybrané aplikácie"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Žiadne"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Všetky"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Žiadne aplikácie nemôžu vyrušiť}=1{{app_1} môže vyrušiť}=2{{app_1} a {app_2} môžu vyrušiť}=3{{app_1}, {app_2} a {app_3} môžu vyrušiť}few{{app_1}, {app_2} a # ďalšie aplikácie môžu vyrušiť}many{{app_1}, {app_2}, and # more can interrupt}other{{app_1}, {app_2} a # ďalších aplikácií môžu vyrušiť}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (práca)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Prebieha výpočet..."</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Povoľte aplikáciám prekonávať nastavenia"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikácie, ktoré môžu vyrušiť"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Vyberte ďalšie aplikácie"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Žiadne zvuky nemôžu vyrušiť"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nikto nemôže vyrušiť"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Niektorí ľudia môžu vyrušiť"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Opakované volania môžu rušiť"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Všetci ľudia môžu vyrušiť"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Opakované volania"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Povoliť opakované volania"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Zmena v budíkoch iba na hodinu do {time}}few{Zmena v budíkoch iba na # hodiny do {time}}many{Change to alarms only for # hours until {time}}other{Zmena v budíkoch iba na # hodín do {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Zmena na možnosť Iba budíky platná do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Zmena na možnosť Vždy prerušiť"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Premenovať"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Zmeniť ikonu"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Zmeniť ikonu"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Úprava režimu"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Vytvorte režim"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Vlastný režim"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Názov režimu"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Udalosti v kalendári"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Postup Večierka"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Počas jazdy"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Nastavenia aplikácie"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informácie a nastavenia v aplikácii <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Spravované aplikáciou <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Chcete vypnúť <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Tento režim sa nikdy nezapne, keď bude vypnutý"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Vypnúť"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Chcete zapnúť <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Tento režim sa môže zapínať automaticky podľa nastavení"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Zapnúť"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Nastavte režim, ktorý bude fungovať podľa pravidelného plánu"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Nastavte režim tak, aby boli synchronizované udalosti v kalendári a odpovede na pozvánky"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Navrhnite upokojujúci postup pred spánkom. Nastavte budíky, stmavte obrazovku a zablokujte upozornenia."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Priorizujte bezpečnosť na ceste, aby vás pri šoférovaní nič nerušilo a mohli ste sa sústrediť"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Zablokujte v zariadení všetko, čo vás môže rozptyľovať a vyrušovať, čím zlepšíte mieru sústredenia"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Eliminujte všetky možnosti rozptyľovania, aby vás nič nerušilo"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Prispôsobte prostredia a nastavenia zariadenia pre rôznych používateľov"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Povoľte, aby vás mohli kontaktovať iba dôležití ľudia a aplikácie, čím minimalizujete vyrušenia"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Upozornenie"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Zavrieť"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Odoslať spätnú väzbu o zariadení"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Puzdro"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batéria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel s nastaveniami"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Vynútiť režim pracovnej plochy"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Vynútiť experimentálny režim pracovnej plochy na sekundárnych obrazovkách"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Povolenie meniteľných okien"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Povoliť meniteľné okná na sekundárnej obrazovke"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Povoliť v režime viac. okien aplik. bez možn. zmeny veľkosti"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Povoliť v režime viacerých okien aplikácie bez možnosti zmeny veľkosti"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Presadiť tmavý režim"</string>
@@ -4969,7 +5040,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobilné dáta"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Aplikácie a služby môžu kedykoľvek vyhľadávať siete Wi‑Fi (a to aj vtedy, keď je pripojenie Wi‑Fi vypnuté), čím zlepšujú prostredie v zariadení. Môžu tak napríklad zlepšovať fungovanie funkcií a služieb podmienených polohou. Toto nastavenie môžete zmeniť v nastaveniach vyhľadávania sietí Wi‑Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Zmeniť"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Pripojené"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Dočasne pripojené"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Dočasne sa používa <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5001,7 +5071,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Používať pripnutie aplikácie"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Používať nastavenia pre vývojárov"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Používať tlačovú službu"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Povoliť viacero používateľov"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Povoliť prepínanie používateľov"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"povoliť, viacero, používateľ, povolenie, veľa"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"viacerí, používatelia, profily, ľudia, účty, prepnúť, mnoho"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Používať bezdrôtové ladenie"</string>
@@ -5115,8 +5185,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Vyberte, čo sa bude zobrazovať na vašej obrazovke po vložení tabletu do doku. Zariadenie môže pri používaní šetriča obrazovky spotrebúvať viac energie."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Prispôsobiť"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Prispôsobiť <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Zapnutie podpory funkcie Freeform vyžaduje reštartovanie."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Vynútenie režimu pracovnej plochy na sekundárnych obrazovkách vyžaduje reštartovanie."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Zapnutie podpory meniteľných okien vyžaduje reštart."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Aktualizácia dostupnosti meniteľných okien vyžaduje reštart."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Povolenie meniteľných okien na sekundárnych obrazovkách vyžaduje reštart."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Reštartovať"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reštartovať neskôr"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Priestorový zvuk"</string>
@@ -5213,7 +5284,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ružová"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Ružovofialová"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Fialová"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Hotovo"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Uložiť"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Zrušiť"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Predvolený"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Stredný"</string>
@@ -5234,6 +5305,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Zapnuté"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Vypnuté"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Zapnuté"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvuk – ľavé: %1$d%%, pravé: %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvuk – pravé: %1$d%%, ľavé: %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Názov zariadenia je viditeľný pre aplikácie, ktoré ste nainštalovali. Keď sa pripojíte k zariadeniam s rozhraním Bluetooth alebo sieti Wi‑Fi, prípadne nastavíte hotspot Wi‑Fi, môžu ho uvidieť aj ďalší ľudia."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatický rod"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Výber gramatického rodu"</string>
@@ -5345,4 +5418,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Počúvať stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Naskenujte QR kód zvukového streamu a počúvajte pomocou zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Heslo sa nedá upraviť počas zdieľania. Ak ho chcete zmeniť, najprv vypnite zdieľanie zvuku."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skener QR kódov"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Nastavenia vyhľadávania"</string>
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 6bc9369..da418aa 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Čas za spanje"</item>
-    <item msgid="4152450357280759894">"Vožnja"</item>
-    <item msgid="7096549258219399423">"Poglobljeno"</item>
-    <item msgid="2760716776980432977">"Upravljano"</item>
-    <item msgid="601734478369121764">"Zvezda"</item>
-    <item msgid="6243809315432780521">"Koledar"</item>
-    <item msgid="4913577903148415331">"Čas"</item>
-    <item msgid="3653377604690057780">"Gledališče"</item>
-    <item msgid="3843711267408385410">"Roža"</item>
+    <item msgid="2750940760340557109">"Polmesec"</item>
+    <item msgid="8513969636586738035">"Avtomobil"</item>
+    <item msgid="957392343846370509">"Misli osebe"</item>
+    <item msgid="6734164279667121348">"Koledar"</item>
+    <item msgid="4139559120353528558">"Ura"</item>
+    <item msgid="5157711296814769020">"Senčnik"</item>
+    <item msgid="6635328761318954115">"Šotor"</item>
+    <item msgid="1711994778883392255">"Filmski trak"</item>
+    <item msgid="9097658401859604879">"Krmilnik za igre"</item>
+    <item msgid="755931364157422565">"Telovadna utežna ročka"</item>
+    <item msgid="8894207806795738429">"Oseba meče žogo"</item>
+    <item msgid="2274801572149555103">"Oseba brca"</item>
+    <item msgid="8795037201506843325">"Plavanje"</item>
+    <item msgid="3558421426169430451">"Oseba na pohodu"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Orodja v delavnici"</item>
+    <item msgid="4595330511709890409">"Aktovka"</item>
+    <item msgid="8352738347856724389">"Zvezdica"</item>
+    <item msgid="7082783098151998721">"Lotosov cvet"</item>
+    <item msgid="5772220259409264724">"Nadzornik"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f178ede..57d232c 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Začasno ustavljeno"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Neznano"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Predogled"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Koda QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Pomanjšanje"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Povečanje"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Vedno"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Nastavitve slušnega aparata"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Bližnjica, združljivost s slušnimi aparati"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Prednastavljeno"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Avdiolog ni programiral nobenih prednastavljenih vrednosti"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Prednastavljenih vrednosti ni bilo mogoče posodobiti"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Zvočni izhod"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"O zvočnem izhodu"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"V nastavitvah ni na voljo izbire jezika za to aplikacijo."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Jezik se morda razlikuje od jezikov, ki so na voljo v aplikaciji. Nekatere aplikacije morda ne podpirajo te nastavitve."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Nastavite jezik za posamezno aplikacijo."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistem, aplikacije in spletna mesta uporabijo prvi podprti jezik izmed prednostnih jezikov."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Naprava, aplikacije in spletna mesta uporabijo prvi podprti jezik na seznamu prednostnih jezikov.\n\nŠtevilne aplikacije bodo na podlagi regije prednostnega jezika tudi oblikovale zapis datumov, števil in merskih enot. Če želite spremeniti regijo, dodajte jezik in nato izberite prednostno regijo."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Če želite izbrati jezik za posamezno aplikacijo, odprite nastavitve jezika aplikacije."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Več o jezikih aplikacij"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Želite sistemski jezik spremeniti v jezik »%s«?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Izklopljeno"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Vklopljeno/dostop do lokacije ima # aplikacija}one{Vklopljeno/dostop do lokacije ima # aplikacija}two{Vklopljeno/dostop do lokacije imata # aplikaciji}few{Vklopljeno/dostop do lokacije imajo # aplikacije}other{Vklopljeno/dostop do lokacije ima # aplikacij}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Nalaganje …"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije z dovoljenjem za naprave v bližini lahko določijo relativno lokacijo povezanih naprav."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacije z dovoljenjem za naprave v bližini lahko določijo relativno lokacijo povezanih naprav."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Dostop do lokacije je izklopljen za aplikacije in storitve. Lokacija naprave bo morda kljub temu poslana službam za nujne primere, ko pokličete številko za klic v sili ali nanjo pošljete sporočilo SMS."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Preberite več o nastavitvah lokacije"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Če želite spremeniti, odprite nastavitve sistema ChromeOS &gt; Zasebnost in varnost &gt; Nastavitve zasebnosti &gt; Dostop do lokacije"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Obraz in <xliff:g id="WATCH">%s</xliff:g> sta dodana"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Obraz, prstni odtis in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Obraz, prstni odtisi in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Preverjanje identitete je vklopljeno"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odklepanje storitve Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ura je dodana"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavitev ure"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Preberite več o odklepanju z uro."</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj uro"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstranitev ure"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odklepanje s prstnim odtisom in obrazom"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Odklepanje z obrazom in prstnim odtisom"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odklepanje z obrazom in prstnim odtisom za delo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebna je nastavitev"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Obraz in prstni odtisi so dodani."</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nastavljanje zasebnega prostora …"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Zasebnega prostora ni bilo mogoče nastaviti"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Poskusi znova"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Zapri"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Zasebni prostor ni na voljo.\nOgled možnih vzrokov"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Ogled možnih vzrokov"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Želite izbrati novo zaklepanje za zasebni prostor?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Nastavite lahko novo zaklepanje samo za zasebni prostor ali pa uporabite enako zaklepanje, kakršnega uporabljate za odklepanje naprave"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Uporabi zaklepanje zaslona"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vnovični zagon?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Podrobno zapisovanje dnevnika za NFC je namenjeno samo za razvoj. Dodatni podatki NFC so vključeni v poročilih o napakah, ki morda vsebujejo zasebne podatke. Če želite spremeniti to nastavitev, znova zaženite napravo."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Zaženi znova"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Vklopljeno"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Izklopljeno"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Zunanji zaslon"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Uporabi zunanji zaslon"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ločljivost zaslona"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Zunanji zaslon ni povezan"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Vrtenje"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standardno"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Če spremenite zasuk z vrtenjem ali ločljivost, lahko s tem ustavite vse aplikacije, ki se trenutno izvajajo"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Če želite zrcaliti zaslon, mora biti naprava povezana z zunanjim zaslonom"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Več možnosti"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Predvajanje"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"zrcaljenje"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Omogočanje brezžičnega zaslona"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Prilagodljive"</string>
     <string name="brightness" msgid="6216871641021779698">"Raven svetlosti"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Prilagodljiva svetlost"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"O prilagodljivi svetlosti"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Svetlost zaslona se bo samodejno prilagajala glede na okolje in dejavnosti. Če želite, da funkcija za prilagodljivo svetlost hitreje spozna vaše želje, lahko ročno premaknete drsnik."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Vklopljeno"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Izklopljeno"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Dostopnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizična tipkovnica"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Uporabi zaslonsko tipkovnico"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Obdrži na zaslonu, tudi ko je fizična tipkovnica aktivna."</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Zaznava večkratnih pritiskov tipk"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tipkovnica prezre hitro ponovljene pritiske iste tipke v <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Daljši pritisk tipk"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Čas, potreben za aktiviranje pritiska tipke, prilagodi na <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Upravljanje miške s fizično tipkovnico."</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"V rumeni slog zapolnitve kazalca"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"V rožnati slog zapolnitve kazalca"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"V modri slog zapolnitve kazalca"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Slog poteze kazalca"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Bela"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Črna"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Brez"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Učenje potez na sledilni ploščici"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"sledilna ploščica, miška, kazalec, drsenje, vlečenje, desni klik, klik"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"desni klik, dotik"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Uporabniško izbrano: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Govor"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Hitrost kazalca"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Velikost kazalca"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Zmanjšanje velikosti kazalca"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Povečanje velikosti kazalca"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Krmilnik za igre"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Preusmeritev vibriranja"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Pošiljanje vibriranja v krmilnik za igre, ko je povezan"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vseeno nadaljuj"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Prekliči"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavitve povečave"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Pomikanje z enim prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Premikanje lupe z enim prstom"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Po zaslonu se pomikate z vlečenjem prsta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Območje povečave premikajte z vlečenjem enega prsta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Območje povečave premikajte z vlečenjem dveh prstov."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ni na voljo pri povečavi samo dela zaslona"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Če želite povečati, se dotaknite gumba"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Hitro povečajte zaslon za povečavo vsebine."</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Če želite povečati:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Z bližnjico vklopite povečavo.&lt;br/&gt; {1,number,integer}. Dotaknite se zaslona.&lt;br/&gt; {2,number,integer}. Po zaslonu se pomikajte z vlečenjem dveh prstov.&lt;br/&gt; {3,number,integer}. Stopnjo povečave prilagodite tako, da prsta razmaknete ali primaknete.&lt;br/&gt; {4,number,integer}. Z bližnjico izklopite povečavo.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Povečavo začasno vklopite tako:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Prepričajte se, da je vrsta povečave nastavljena na celozaslonski način.&lt;br/&gt; {1,number,integer}. Z bližnjico vklopite povečavo.&lt;br/&gt; {2,number,integer}. Dotaknite se poljubne točke na zaslonu in jo pridržite.&lt;br/&gt; {3,number,integer}. Po zaslonu se pomikajte z vlečenjem prsta.&lt;br/&gt; {4,number,integer}. Dvignite prst, da izklopite povečavo."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Če želite povečati:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Z bližnjico vklopite povečavo.&lt;br/&gt; {1,number,integer}. Dotaknite se zaslona.&lt;br/&gt; {2,number,integer}. Po zaslonu se pomikajte z vlečenjem dveh prstov.&lt;br/&gt; {3,number,integer}. Stopnjo povečave prilagodite tako, da prsta razmaknete ali primaknete.&lt;br/&gt; {4,number,integer}. Z bližnjico izklopite povečavo.&lt;br/&gt;&lt;br/&gt; Povečavo lahko tudi začasno povečate in drugo."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Če želite povečati:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Z bližnjico vklopite povečavo.&lt;br/&gt; {1,number,integer}. Dotaknite se zaslona.&lt;br/&gt; {2,number,integer}. Po zaslonu se pomikajte z vlečenjem enega ali dveh prstov.&lt;br/&gt; {3,number,integer}. Stopnjo povečave prilagodite tako, da prsta razmaknete ali primaknete.&lt;br/&gt; {4,number,integer}. Z bližnjico izklopite povečavo.&lt;br/&gt;&lt;br/&gt; Povečavo lahko tudi začasno povečate in drugo."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ko je povečava vklopljena, lahko povečate prikaz na zaslonu.\n\n"<b>"Če želite povečati prikaz"</b>", zaženite povečavo, nato pa se dotaknite poljubnega mesta na zaslonu.\n"<ul><li>"Povlecite z dvema ali več prsti po zaslonu, če se želite pomikati."</li>\n<li>"Primaknite ali razmaknite dva ali več prstov, če želite prilagoditi povečavo."</li></ul>\n\n<b>"Če želite začasno povečati prikaz"</b>", zaženite povečavo ter se dotaknite poljubnega mesta na zaslonu in ga pridržite.\n"<ul><li>"Povlecite, če se želite premikati po zaslonu."</li>\n<li>"Dvignite prst, če želite zmanjšati povečavo."</li></ul>\n\n"Povečava ni mogoča na tipkovnici ali v vrstici za krmarjenje."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. stran od <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Bližnjica gumba za dostopnost"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Dotaknite se plavajočega gumba."</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Poteza za dostopnost"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Dotaknite se gumba za dostopnost <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> na dnu zaslona. Če želite preklopiti med funkcijami, pridržite gumb za dostopnost."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Z dvema prstoma povlecite z dna zaslona navzgor.\n\nČe želite preklopiti med funkcijami, z dvema prstoma povlecite navzgor in pridržite."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"S tremi prsti povlecite z dna zaslona navzgor.\n\nČe želite preklopiti med funkcijami, s tremi prsti povlecite navzgor in pridržite."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{S prstom povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, povlecite navzgor in pridržite.}one{Z # prstom povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, z # prstom povlecite navzgor in pridržite.}two{Z # prstoma povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, z # prstoma povlecite navzgor in pridržite.}few{S # prsti povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, s # prsti povlecite navzgor in pridržite.}other{S # prsti povlecite navzgor z dna zaslona. Če želite preklopiti med funkcijami, s # prsti povlecite navzgor in pridržite.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Več možnosti"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Več o storitvi <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Gumba za glasnost"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"gumba za glasnost"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pritisnite in pridržite obe tipki za glasnost."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Dvakratni dotik zaslona z dvema prstoma"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Dvakratni dotik z %1$d prstoma"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Z %1$d prstoma se dvakrat hitro dotaknite zaslona."</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trikratni dotik"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"%1$d-krat se hitro dotaknite zaslona. To bo morda upočasnilo delovanje naprave."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Dvakratni dotik z %1$d prstoma"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Z dvema prstoma se {0,number,integer}-krat hitro dotaknite zaslona"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trikratni dotik zaslona"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trikratni dotik"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"{0,number,integer}-krat se hitro dotaknite zaslona. Ta bližnjica bo morda upočasnila delovanje naprave."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Dodatno"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Gumb »Dostopnost« je nastavljen na <xliff:g id="SERVICE">%1$s</xliff:g>. Če želite uporabiti povečavo, se dotaknite gumba »Dostopnost« in ga pridržite, nato pa izberite povečavo."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Poteza za dostopnost je nastavljena na <xliff:g id="SERVICE">%1$s</xliff:g>. Če želite uporabiti povečavo, z dvema prstoma povlecite z dna zaslona navzgor in pridržite. Nato izberite povečavo."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ta storitev ne deluje pravilno."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Bližnjice za dostopnost"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Prikaži v »Hitrih nastavitvah«"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Rdeča-zelena"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Rdeča-zelena"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Rdeča in zelena, šibka zelena"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Rdeča in zelena, šibka rdeča"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Modra-rumena"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Sivine"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intenzivnost"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Šibka zelena, devteranomalija"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Šibka rdeča, protanomalija"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ni na voljo v načinu sivin ali pri onemogočenem popravljanju barv"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Devteranomalija"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomalija"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomalija"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Zelo zatemnjen zaslon"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Zelo zatemni zaslon"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cijan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Rumena"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Ali storitvi <xliff:g id="SERVICE">%1$s</xliff:g> dovolite popoln nadzor nad svojo napravo?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> mora:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Ker aplikacija zakriva zahtevo za dovoljenje, z nastavitvami ni mogoče preveriti vašega odziva."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> zahteva popoln nadzor nad to napravo. Storitev lahko prebere zaslon in deluje v imenu uporabnikov s posebnimi potrebami. Ta raven nadzora za večino aplikacij ni primerna."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Popoln nadzor je ustrezen za aplikacije, ki vam pomagajo pri funkcijah dostopnosti, vendar ne za večino aplikacij."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ogledovanje in upravljanje zaslona"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Bere lahko vso vsebino na zaslonu ter prikaže vsebino prek drugih aplikacij."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Ogledovanje in izvajanje dejanj"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Spremlja lahko vaše interakcije z aplikacijo ali tipalom ter komunicira z aplikacijami v vašem imenu."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dovoli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zavrni"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izklopi"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Noben}=1{Nastavljen je 1 razpored}one{Nastavljen je # razpored}two{Nastavljena sta # razporeda}few{Nastavljeni so # razporedi}other{Nastavljenih je # razporedov}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ne moti"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prednostni načini"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Dodajte način"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Zmanjšajte število motenj in z načini za spanje, delo, vožnjo in vse drugo poskrbite, da nič ne bo zmanjšalo vaše pozornosti."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Ustvarite svoj način"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Prejemajte samo obvestila pomembnih oseb in aplikacij."</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Nastavitev razporeda"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Razpored glede na"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dan in ura"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"»9.00–17.00 ob delavnikih«"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Dogodki na koledarju"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Način {mode_1} je aktiven}=2{Načina {mode_1} in {mode_2} sta aktivna}=3{Načini {mode_1}, {mode_2} in {mode_3} so aktivni}one{Načina {mode_1} in {mode_2} ter še # način so aktivni}two{Načina {mode_1} in {mode_2} ter še # načina so aktivni}few{Načina {mode_1} in {mode_2} ter še # načini so aktivni}other{Načina {mode_1} in {mode_2} ter še # načinov so aktivni}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 način se lahko samodejno vklopi}one{# način se lahko samodejno vklopi}two{# načina se lahko samodejno vklopita}few{# načini se lahko samodejno vklopijo}other{# načinov se lahko samodejno vklopi}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"VKLOPLJENO"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ni nastavljeno"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Onemogočeno"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Ustvarjanje načina"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Po meri"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Vklopi zdaj"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Izklopi"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Način ni najden"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Omejitev prekinitev"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blokiranje prekinitev in motenj"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Nastavite ta način: <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Vklop načina »Ne moti«"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmi in zvoki predstavnosti lahko preglasijo"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Časovni razporedi"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Izbriši razporede"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Izbriši"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Preimenuj"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Izbriši"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Želite izbrisati način »<xliff:g id="MODE">%1$s</xliff:g>«?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Uredi"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Razporedi"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Razpored"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Samodejni vklop"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Dodajte koledar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Uporabite koledar"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Razpored"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Nastavitev razporeda"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kdaj naj se samodejno vklopi"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Razpored dogodka"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Vklop med dogodki za"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kjer je odgovor na povabilo"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Časovni razpored"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Razpored"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Časovni razpored"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Dovoljene zvočne motnje"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blokiranje vizualnih motenj"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Dovoli vizualne znake"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Obvestila, za katera ste dosegljivi"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Dodatna dejanja"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtri obvestil"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Več nastavitev"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Izklopljeno}=1{Izklopljeno / 1 način se lahko samodejno vklopi}one{Izklopljeno / # način se lahko samodejno vklopi}two{Izklopljeno / # načina se lahko samodejno vklopita}few{Izklopljeno / # načini se lahko samodejno vklopijo}other{Izklopljeno / # načinov se lahko samodejno vklopi}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Nastavitve zaslona"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Možnosti prikaza"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Sivine"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"omogoči temno temo"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Preklopite nastavitev operacijskega sistema in aplikacij na svetlo besedilo na temnem ozadju, saj je to manj naporno za oči in v nekaterih napravah bistveno prispeva k varčevanju z energijo baterije"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Brez sprememb prikaza}=1{{effect_1}}=2{{effect_1} in {effect_2}}=3{{effect_1}, {effect_2} in {effect_3}}one{{effect_1}, {effect_2} in še #}two{{effect_1}, {effect_2} in še #}few{{effect_1}, {effect_2} in še #}other{{effect_1}, {effect_2} in še #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Omejite, kaj vas lahko obvesti"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nobene prekinitve niso filtrirane"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Možnosti prikaza za filtrirana obvestila"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Ko je vklopljen način »Ne moti«"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Brez zvočnega opozarjanja na obvestila"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"odpiranje obvestila"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Omogoči prelaganje obvestil"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Obvestilna pika na ikoni aplikacije"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Svežnji obvestil"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Oblački"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Oblački"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Prikaži ta pogovor v oblačku"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ta aplikacija ne podpira naprednih nastavitev."</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Več nastavitev"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Več nastavitev je na voljo v tej aplikaciji."</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Prilagodljiva obvestila"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Uporaba prilagodljivih obvestil"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Ko v kratkem času prejmete veliko obvestil, telefon zmanjša glasnost in minimira pojavne elemente na zaslonu za največ dve minuti. Klici, alarmi in prednostni pogovori bodo še vedno vibrirali, zvonili ali se prikazali na zaslonu, vsa obvestila pa zlahka najdete, ko povlečete navzdol z vrha zaslona."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Zmanjševanje glasnosti za obvestila"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Uporaba utišanja obvestil"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Ko v kratkem času prejmete veliko obvestil, naprava zmanjša glasnost in minimira opozorila za največ dve minuti. To ne vpliva na klice, alarme in prednostne pogovore. \n\nObvestila, ki jih prejmete med utišanjem, si lahko ogledate tako, da z vrha zaslona povlečete navzdol."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Uporaba za delovne profile"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Uporabi za aplikacije v delovnem profilu"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Storitve za pomoč za VR"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorije"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Drugo"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ta aplikacija ni objavila nobenih obvestil."</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Pokaži neuporabljene kategorije"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Dodatne nastavitve v aplikaciji"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Pokaži neuporabljene kategorije"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Skrij neuporabljene kategorije"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Pogovori"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Vsi pogovori"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"vsi pogovori"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prednostni pogovori"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prednostni pogovori"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Noben"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikacije, ki lahko zmotijo"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Izbrane aplikacije"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Nobena"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Vse"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Preglasitev ni dovoljena za nobeno aplikacijo}=1{Preglasitev je dovoljena za aplikacijo {app_1}}=2{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2}}=3{Preglasitev je dovoljena za aplikacije {app_1}, {app_2} in {app_3}}one{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikacijo}two{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikaciji}few{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikacije}other{Preglasitev je dovoljena za aplikaciji {app_1} in {app_2} ter še # aplikacij}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (delo)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Izračunavanje …"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Aplikacijam dovoli preglasitev"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacije, ki lahko preglasijo"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Izberite več aplikacij"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Nič ne sme preglasiti"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Nihče ne sme preglasiti"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Nekatere osebe lahko preglasijo"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Klicatelji, ki večkrat kličejo, lahko preglasijo"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Vsakdo lahko preglasi"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Klicatelji, ki večkrat kličejo"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Dovoli večkratne klicatelje"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Sprememba na samo alarme za eno uro do {time}}one{Sprememba na samo alarme za # uro do {time}}two{Sprememba na samo alarme za # uri do {time}}few{Sprememba na samo alarme za # ure do {time}}other{Sprememba na samo alarme za # ur do {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Sprememba na samo alarme do <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Sprememba na vedno prekini"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Preimenuj"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Spremeni ikono"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Spremeni ikono"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Urejanje načina"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Ustvarjanje načina"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Način po meri"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Ime načina"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Dogodki na koledarju"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina za spanje"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Med vožnjo"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Nastavitve aplikacij"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacije in nastavitve v aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Upravlja <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Želite onemogočiti <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Če je ta način onemogočen, se ne bo nikoli vklopil"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Onemogoči"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Želite omogočiti <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ta način se lahko samodejno vklopi, če je tako določeno v nastavitvah"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Omogoči"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Nastavite način, ki sledi rednemu urniku"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Nastavite način za sinhroniziranje dogodkov na koledarju in odzivov na povabila"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Pripravite vse potrebno za umiritev pred spanjem. Nastavite alarme, zatemnite zaslon in blokirajte obvestila."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Dajte prednost varnosti na cesti za zbrano vožnjo brez motenj"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blokirajte motnje ali prekinitve iz naprave za večjo zbranost"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Odstranite vse motnje za tiho okolje"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Individualno prilagodite izkušnje in nastavitve v napravi za različne uporabnike"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Poskrbite za čim manj prekinitev tako, da boste dosegljivi le za pomembne osebe in aplikacije"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Opozorilo"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Zapri"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Povratne informacije o tej napravi"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Ovitek"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterija"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Podokno nastavitev"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Vsili namizni način"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Vsili poskusni namizni način na sekundarnih zaslonih."</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Omogoči okna svobodne oblike"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Omogoči okna proste oblike na sekundarnem zaslonu"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Omogoči okna nespremenljive velikosti v načinu z več okni"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Omogoča uporabo aplikacij brez možnosti spreminjanja velikosti v načinu z več okni."</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Preglasi vsiljenje temnega načina"</string>
@@ -4969,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"prenos podatkov v mobilnem omrežju"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Za izboljšano izkušnjo pri uporabi naprave lahko aplikacije in storitve kadar koli iščejo omrežja Wi‑Fi, tudi ko je Wi‑Fi izklopljen. To funkcijo lahko na primer uporabite, če želite izboljšati funkcije in storitve, ki pri delovanju uporabljajo lokacijo. To lahko spremenite v nastavitvah iskanja omrežij Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Spremeni"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Povezano"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Začasno vzpostavljena povezava"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Začasna uporaba storitve <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5001,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Uporabi pripenjanje aplikacije"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Uporabi možnosti za razvijalce"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Uporabi storitev tiskanja"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Dovoli več uporabnikov"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Dovoli preklop med uporabniki"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"dovoli, več, uporabnik, dovoljenje"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"več, uporabniki, profili, osebe, računi, preklopi, veliko"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Uporabi brezžično odpravljanje napak"</string>
@@ -5115,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Izberite, kaj bo prikazano na zaslonu, ko je tablični računalnik priklopljen na nosilec. Naprava bo med uporabo ohranjevalnika zaslona morda porabljala več energije."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Prilagodi"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Prilagajanje ohranjevalnika zaslona <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Če želite omogočiti podporo za svobodno obliko, morate znova zagnati napravo."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Če želite vsiliti namizni način na sekundarnih zaslonih, morate znova zagnati napravo."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Če želite omogočiti podporo za okna proste oblike, morate znova zagnati napravo."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Če želite spremeniti razpoložljivost oken proste oblike, morate znova zagnati napravo."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Če želite omogočiti okna proste oblike na sekundarnem zaslonu, morate znova zagnati napravo."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Znova zaženi"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Znova zaženi pozneje"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Prostorski zvok"</string>
@@ -5213,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rožnata"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Vijolična"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Končano"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Shrani"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Prekliči"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Privzet"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Srednji"</string>
@@ -5234,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Vklopljeno"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Izklopljeno"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Vklopljeno"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Zvok: %1$d%% levo, %2$d%% desno"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Zvok: %1$d%% desno, %2$d%% levo"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Ime naprave je vidno aplikacijam, ki ste jih namestili. Ko vzpostavite povezavo z napravami Bluetooth ali omrežjem Wi-Fi ali nastavite dostopno točko Wi-Fi, ga bodo morda videle tudi druge osebe."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Slovnični spol"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Izbira slovničnega spola"</string>
@@ -5345,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Poslušaj pretočno predvajanje"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Optično preberite kodo QR pretočnega predvajanja zvoka, če želite poslušati z napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Gesla ni mogoče urejati med deljenjem. Če želite spremeniti geslo, najprej izklopite deljenje zvoka."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Optični bralnik kod QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Iskanje po nastavitvah"</string>
 </resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 6254408..49e8028 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Orari i gjumit"</item>
-    <item msgid="4152450357280759894">"Udhëtim me makinë"</item>
-    <item msgid="7096549258219399423">"Përfshirës"</item>
-    <item msgid="2760716776980432977">"I menaxhuar"</item>
-    <item msgid="601734478369121764">"Yll"</item>
-    <item msgid="6243809315432780521">"Kalendari"</item>
-    <item msgid="4913577903148415331">"Koha"</item>
-    <item msgid="3653377604690057780">"Teatri"</item>
-    <item msgid="3843711267408385410">"Lule"</item>
+    <item msgid="2750940760340557109">"Gjysmëhënë"</item>
+    <item msgid="8513969636586738035">"Makinë"</item>
+    <item msgid="957392343846370509">"Mendja e një personi"</item>
+    <item msgid="6734164279667121348">"Kalendar"</item>
+    <item msgid="4139559120353528558">"Orë"</item>
+    <item msgid="5157711296814769020">"Çadër plazhi"</item>
+    <item msgid="6635328761318954115">"Tendë"</item>
+    <item msgid="1711994778883392255">"Bobinë filmi"</item>
+    <item msgid="9097658401859604879">"Kontrolluesi i lojës"</item>
+    <item msgid="755931364157422565">"Girë palestre"</item>
+    <item msgid="8894207806795738429">"Person duke hedhur topin"</item>
+    <item msgid="2274801572149555103">"Person duke shkelmuar"</item>
+    <item msgid="8795037201506843325">"Not"</item>
+    <item msgid="3558421426169430451">"Person në ekskursion"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Vegla punishteje"</item>
+    <item msgid="4595330511709890409">"Valixhe"</item>
+    <item msgid="8352738347856724389">"Yll"</item>
+    <item msgid="7082783098151998721">"Zambak uji"</item>
+    <item msgid="5772220259409264724">"Përgjegjës"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index cdcdb95..1508947 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"I pezulluar"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"E panjohur"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Pamja paraprake"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Kodi QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Zvogëlo"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Zmadho"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Gjithmonë"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Cilësimet e pajisjes ndihmëse për dëgjimin"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Shkurtore, përputhshmëria me aparatet e dëgjimit"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Paravendosja"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Nuk ka paravendosje të programuara nga audiologu yt"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Paravendosja nuk mund të përditësohej"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Dalja e audios"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Rreth daljes së audios"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Zgjedhja e gjuhës për këtë aplikacion nuk ofrohet nga \"Cilësimet\"."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Gjuha mund të ndryshojë nga gjuhët që ofrohen në aplikacion. Disa aplikacione mund të mos e mbështetin këtë cilësim."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Cakto gjuhën për secilin aplikacion."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sistemi, aplikacionet dhe uebsajtet përdorin gjuhën e parë të mbështetur nga gjuhët e tua të preferuara."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Pajisja jote, aplikacionet dhe uebsajtet përdorin gjuhën e parë të mbështetur nga lista e gjuhëve të tua të preferuara.\n\nShumë aplikacione do të përdorin gjithashtu rajonin nga gjuha jote e preferuar për formatimin e datave, numrave dhe njësive. Për të ndryshuar rajonin, shto një gjuhë dhe më pas zgjidh rajonin tënd të preferuar."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Për të zgjedhur një gjuhë për çdo aplikacion, shko te cilësimet e gjuhës së aplikacionit."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Mëso më shumë për gjuhët e aplikacionit"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Të ndryshohet gjuha e sistemit në %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Joaktiv"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktive / # aplikacion ka qasje te vendndodhja}other{Aktive / # aplikacione kanë qasje te vendndodhja}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Po ngarkohet…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacionet me lejen \"Pajisjet në afërsi\" mund të përcaktojnë pozicionin e përafërt të pajisjeve të lidhura."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Aplikacionet me lejen për pajisjet në afërsi mund të përcaktojnë pozicionin e përafërt të pajisjeve të lidhura."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Qasja te vendndodhja është joaktive për aplikacionet dhe shërbimet. Vendndodhja e pajisjes sate mund t\'u dërgohet përsëri personave që përgjigjen në rast urgjence kur telefonon ose dërgon mesazh te një numër urgjence."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Mëso më shumë për \"Cilësimet e vendndodhjes\""</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Për ta ndryshuar, shko te Cilësimet e ChromeOS &gt; Privatësia dhe siguria &gt; Kontrollet e privatësisë &gt; Qasja te vendndodhja"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Fytyra dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Fytyra, gjurma e gishtit dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Fytyra, gjurmët e gishtave dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Shkyçja me vërtetuesin në distancë"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ora u shtua"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfiguro orën tënde"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Mëso më shumë rreth \"Shkyçjes me orë\""</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Shto orën"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Hiq orën"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Shkyçja me gjurmë gishti dhe me fytyrë"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Shkyçja me fytyrë dhe me gjurmën e gishtit"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Shkyçja me fytyrë dhe gjurmë gishti për profilin e punës"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nevojitet konfigurimi"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Fytyra dhe gjurmët e gishtave u shtuan"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Hapësira private po konfigurohet…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Hapësira private nuk mund të konfigurohej"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Provo përsëri"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Dil"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Hapësira private nuk ofrohet.\nShiko shkaqet e mundshme"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Shiko shkaqet e mundshme"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Të zgjidhet një kyçje e re për hapësirën private?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Mund të caktosh një kyçje të re vetëm për hapësirën private ose mund të përdorësh të njëjtën kyçje që përdor për të shkyçur pajisjen tënde"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Përdor kyçjen e ekranit"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Të riniset pajisja?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Regjistrimi i detajuar i lidhjes NFC është i planifikuar vetëm për qëllime zhvillimi. Të dhënat shtesë të lidhjes NFC përfshihen në raportet e defekteve në kod, të cilat mund të përmbajnë informacione private. Rinise pajisjen tënde për ta ndryshuar këtë cilësim."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Rinis"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Aktiv"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Joaktiv"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ekrani i jashtëm"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Përdor ekranin e jashtëm"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Rezolucioni i ekranit"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Ekrani i jashtëm është shkëputur"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rrotullimi"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Ndryshimi i rrotullimit ose rezolucionit mund të ndalojë çdo aplikacion që është aktualisht në funksionim"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Pajisja jote duhet të lidhet me një ekran të jashtëm për të pasqyruar ekranin tënd"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Opsione të tjera"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Transmetimi"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"pasqyro"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Aktivizo ekranin wireless"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Me përshtatje"</string>
     <string name="brightness" msgid="6216871641021779698">"Niveli i ndriçimit"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Ndriçimi me përshtatje"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Rreth ndriçimit me përshtatje"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Ndriçimi i ekranit tënd do t\'i përshtatet automatikisht mjedisit dhe aktiviteteve të tua. Mund ta lëvizësh rrëshqitësin manualisht për të ndihmuar ndriçimin me përshtatje që të mësojë preferencat e tua."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Aktiv"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Joaktiv"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opsionet"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Qasshmëria"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fizike"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Përdor tastierën në ekran"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Mbaje në ekran ndërsa tastiera fizike është aktive"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tastet e kërcimit"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tastiera i shpërfill shtypjet e shpejta të përsëritura të të njëjtit tast brenda <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tastet e ngadalta"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Rregullon kohën që duhet për aktivizimin e një shtypjeje tasti në <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Përdor tastierën fizike për të kontrolluar miun."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ndrysho stilin e mbushjes së treguesit në të verdhë"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ndrysho stilin e mbushjes së treguesit në rozë"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ndrysho stilin e mbushjes së treguesit në blu"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stili i lëvizjes së treguesit"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"E bardhë"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"E zezë"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Asnjë"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Mëso gjestet e bllokut me prekje"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"blloku i prekjes, bllok i prekjes, miu, kursori, lëviz, rrëshqit shpejt, kliko më të djathtin, kliko, treguesi"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"kliko me të djathtin, trokit"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Zgjedhur nga përdoruesi: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Ligjërimi"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Shpejtësia e treguesit"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Shkalla e treguesit"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Zvogëlo shkallën e treguesit"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Rrit shkallën e treguesit"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Kontrolluesi i lojës"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Ridrejto dridhjen"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Dërgoji dridhjet te kontrolluesi i lojës kur të lidhet"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vazhdo gjithsesi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anulo"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Cilësimet e zmadhimit"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Zgjerimi me një gisht"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Zhvendos zmadhuesin me 1 gisht"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Zvarrit 1 gisht për të lëvizur nëpër ekran"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Zhvendos zonë e zmadhimit duke zvarritur një gisht."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Zhvendos zonën e zmadhimit duke zvarritur dy gishta."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Nuk ofrohet kur zmadhohet vetëm një pjesë e ekranit"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Trokit te një buton për të zmadhuar"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zmadho me shpejtësi në ekran për ta bërë përmbajtjen më të madhe"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Për të zmadhuar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Përdor shkurtoren për të filluar zmadhimin&lt;br/&gt; {1,number,integer}. Trokit në ekran&lt;br/&gt; {2,number,integer}. Zvarrit 2 gishta për të lëvizur nëpër ekran&lt;br/&gt; {3,number,integer}. Bashko 2 gishta për të rregulluar zmadhimin&lt;br/&gt; {4,number,integer}. Përdor shkurtoren për të ndaluar zmadhimin&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Për ta zmadhuar përkohësisht:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Sigurohu që lloji i zmadhimit të jetë caktuar në ekran të plotë&lt;br/&gt; {1,number,integer}. Përdor shkurtoren për të filluar zmadhimin&lt;br/&gt; {2,number,integer}. Prek dhe mbaj shtypur diku në ekran&lt;br/&gt; {3,number,integer}. Zvarrit gishtin për të lëvizur nëpër ekran&lt;br/&gt; {4,number,integer}. Ngrije gishtin për të ndaluar zmadhimin"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Për të zmadhuar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Përdor shkurtoren për të filluar zmadhimin&lt;br/&gt; {1,number,integer}. Trokit në ekran&lt;br/&gt; {2,number,integer}. Zvarrit 2 gishta për të lëvizur nëpër ekran&lt;br/&gt; {3,number,integer}. Bashko 2 gishta për të rregulluar zmadhimin&lt;br/&gt; {4,number,integer}. Përdor shkurtoren për të ndaluar zmadhimin&lt;br/&gt;&lt;br/&gt; Mund ta zmadhosh gjithashtu përkohësisht dhe më shumë."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Për të zmadhuar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Përdor shkurtoren për të filluar zmadhimin&lt;br/&gt; {1,number,integer}. Trokit në ekran&lt;br/&gt; {2,number,integer}. Zvarrit 1 ose 2 gishta për të lëvizur nëpër ekran&lt;br/&gt; {3,number,integer}. Bashko 2 gishta për të rregulluar zmadhimin&lt;br/&gt; {4,number,integer}. Përdor shkurtoren për të ndaluar zmadhimin&lt;br/&gt;&lt;br/&gt; Mund ta zmadhosh gjithashtu përkohësisht dhe më shumë."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kur aktivizohet zmadhimi, mund të zmadhosh mbi ekranin tënd.\n\n"<b>"Për të zmadhuar"</b>", nis zmadhimin, më pas trokit diku në ekran.\n"<ul><li>"Zvarrit 2 ose më shumë gishta për të lëvizur"</li>\n<li>"Afro 2 ose më shumë gishta për të rregulluar zmadhimin"</li></ul>\n\n<b>"Për të zmadhuar përkohësisht"</b>", nis zmadhimin dhe më pas prek dhe mbaj të shtypur diku në ekran.\n"<ul><li>"Zvarrit për të lëvizur nëpër ekran"</li>\n<li>"Ngri gishtin për të zvogëluar"</li></ul>\n\n"Nuk mund të zmadhosh te tastiera ose shiriti i navigimit."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Faqja <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> nga <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Shkurtorja e butonit të qasshmërisë"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Trokit te butoni pluskues"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gjesti i qasshmërisë"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Trokit te butoni i qasshmërisë <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> në fund të ekranit. Për të ndërruar mes veçorive, prek dhe mbaj të shtypur butonin e qasshmërisë."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Rrëshqit shpejt lart nga fundi i ekranit me 2 gishta.\n\nPër të kaluar mes veçorive, rrëshqit shpejt lart me 2 gishta dhe mbaje të shtypur."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Rrëshqit shpejt lart nga fundi i ekranit me 3 gishta.\n\nPër të kaluar mes veçorive, rrëshqit shpejt lart me 3 gishta dhe mbaje të shtypur."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Rrëshqit shpejt lart nga fundi i ekranit tënd. Për të ndërruar mes veçorive, rrëshqit shpejt lart dhe mbaj shtypur.}other{Rrëshqit shpejt lart me # gishta nga fundi i ekranit. Për të ndërruar mes veçorive, rrëshqit shpejt lart me # gishta dhe mbaj shtypur.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Opsione të tjera"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Mëso më shumë për <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tastet e volumit"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tastet e volumit"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Shtyp dhe mbaj shtypur të dyja tastet e volumit"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Trokit dy herë me dy gishta në ekran"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Trokit dy herë me %1$d gishta"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Trokit me shpejtësi tek ekrani dy herë me %1$d gishta"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Trokit tri herë"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Trokit me shpejtësi tek ekrani %1$d herë. Kjo mund ta ngadalësojë pajisjen."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Trokit dy herë me %1$d gishta"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Trokit shpejt {0,number,integer} herë me dy gishta në ekran"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trokit tri herë mbi ekran"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"trokit tri herë"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Trokit me shpejtësi {0,number,integer} herë në ekran. Kjo shkurtore mund të ngadalësojë pajisjen tënde"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Të përparuara"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Butoni i \"Qasshmërisë\" është caktuar te <xliff:g id="SERVICE">%1$s</xliff:g>. Për të përdorur zmadhimin, prek dhe mbaj butonin e \"Qasshmërisë\" dhe më pas zgjidh zmadhimin."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Gjesti i qasshmërisë është caktuar në <xliff:g id="SERVICE">%1$s</xliff:g>. Për të përdorur zmadhimin, rrëshqit lart me dy gishta nga fundi i ekranit dhe mbaje. Më pas zgjidh zmadhimin."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ky shërbim nuk po funksionon mirë."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Shkurtoret e qasshmërisë"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Shfaq në Cilësimet e shpejta"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"E kuqe - e gjelbër"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"E kuqe - e gjelbër"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"E kuqe - e gjelbër, e gjelbër e dobët"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"E kuqe - e gjelbër, e kuqe e dobët"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"E kaltër - e verdhë"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Nuancat e grisë"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensiteti"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"E gjelbër e dobët, deuteranomali"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"E kuqe e dobët, protanomali"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Nuk ofrohet për modalitetin e nuancave të grisë ose kur është çaktivizuar korrigjimi i ngjyrës"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomali"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomali"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Shumë më i zbehtë"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Bëje ekranin shumë më të zbehtë"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Gurkali"</string>
     <string name="color_yellow" msgid="5957551912912679058">"E verdhë"</string>
     <string name="color_magenta" msgid="8943538189219528423">"E purpurt"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Të lejohet \"<xliff:g id="SERVICE">%1$s</xliff:g>\" që të ketë kontroll të plotë të pajisjes sate?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"\"<xliff:g id="SERVICE">%1$s</xliff:g>\" ka nevojë të:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Duke qenë se një aplikacion po bllokon një kërkesë për leje, \"Cilësimet\" nuk mund të verifikojnë përgjigjen tënde."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> po kërkon kontroll të plotë të kësaj pajisjeje. Shërbimi mund të lexojë ekranin dhe të veprojë në emër të përdoruesve me nevoja qasshmërie. Ky nivel kontrolli nuk është i përshtatshëm për shumicën e aplikacioneve."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Kontrolli i plotë është i përshtatshëm për aplikacionet që të ndihmojnë me nevojat e qasshmërisë, por jo për shumicën e aplikacioneve."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Shiko dhe kontrollo ekranin"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Mund të lexojë të gjithë përmbajtjen në ekran dhe të shfaqë përmbajtjen mbi aplikacione të tjera."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Shiko dhe kryej veprimet"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Mund të monitorojë ndërveprimet me një aplikacion ose një sensor hardueri dhe të ndërveprojë me aplikacionet në emrin tënd."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Lejo"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuzo"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Çaktivizo"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Asnjë}=1{1 orar i caktuar}other{# orare të caktuara}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Mos shqetëso"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Modalitetet e përparësisë"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Shto një modalitet"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimizo shpërqendrimet dhe kontrollo vëmendjen tënde me modalitetet për gjumin, punën, drejtimin e makinës dhe çdo gjë tjetër."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Krijo modalitetin tënd"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Merr njoftime vetëm nga aplikacionet dhe personat e rëndësishëm"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Cakto një orar"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Orari bazuar në"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dita dhe ora"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00 - 17:00 në ditë jave\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Ngjarjet e kalendarit"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Modaliteti \"{mode_1}\" është aktiv}=2{Modalitetet \"{mode_1}\" dhe \"{mode_2}\" janë aktive}=3{Modalitetet \"{mode_1}\", \"{mode_2}\" dhe \"{mode_3}\" janë aktive}other{Modalitetet \"{mode_1}\", \"{mode_2}\" dhe # të tjera janë aktive}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 modalitet mund të aktivizohet automatikisht}other{# modalitete mund të aktivizohen automatikisht}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AKTIV"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Nuk është caktuar"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Çaktivizuar"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Krijo një modalitet"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"I personalizuar"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Aktivizo tani"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Çaktivizo"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Modaliteti nuk u gjet"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Kufizo ndërprerjet"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blloko ndërprerjet dhe shpërqendrimet"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Konfiguro \"<xliff:g id="MODE">%1$s</xliff:g>\""</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktivizo \"Mos shqetëso\""</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarmet dhe tingujt e medias mund ta ndërpresin"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Oraret"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Fshi oraret"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Fshi"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Riemërto"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Fshi"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Të fshihet modaliteti \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redakto"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Oraret"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Orari"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Aktivizo automatikisht"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Shto një kalendar"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Përdor kalendarin tënd"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Orari"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Cakto një orar"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kur të aktivizohet automatikisht"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Programi i ngjarjes"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Aktivizo gjatë ngjarjeve për"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kur përgjigja për ftesën është"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Orari"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Orari"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> orë e <xliff:g id="MINUTES">%2$d</xliff:g> min."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Orari"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Lejo ndërprerjet që lëshojnë tinguj"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blloko shqetësimet vizuale"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Lejo sinjalet vizuale"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Njoftimet që mund të marrësh"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Veprime të tjera"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Filtrat e njoftimeve"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Cilësime të tjera"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Joaktiv}=1{Joaktiv / 1 modalitet mund të aktivizohet automatikisht}other{Joaktiv / # modalitete mund të aktivizohen automatikisht}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Cilësimet e ekranit"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Opsionet e paraqitjes"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Nuancat e grisë"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"aktivizo temën e errët"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Bëj që sistemi operativ dhe aplikacionet të preferojnë tekstin e ndriçuar mbi sfond të errët, gjë që mund të jetë më e lehtë për sytë dhe të mundësojë një kursim të konsiderueshëm të baterisë në disa pajisje"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Asnjë ndryshim i paraqitjes}=1{{effect_1}}=2{{effect_1} dhe {effect_2}}=3{{effect_1}, {effect_2} dhe {effect_3}}other{{effect_1}, {effect_2} dhe # të tjera}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Kufizo çfarë mund të të njoftojë"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Nuk filtrohet asnjë ndërprerje"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Opsionet e paraqitjes për njoftimet e filtruara"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kur modaliteti \"Mos shqetëso\" është aktiv"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Asnjë tingull nga njoftimet"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"hap njoftimin"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Lejo shtyrjen e njoftimeve"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Pika e njoftimit në ikonën e aplikacionit"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Paketat e njoftimeve"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Flluskat"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Flluskat"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Vendos bisedën në flluskë"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ky aplikacion nuk i mbështet cilësimet e përmirësuara"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Cilësime të tjera"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Brenda këtij aplikacioni ofrohen cilësime të tjera"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Njoftimet me përshtatje"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Përdor njoftimet me përshtatje"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kur merr shumë njoftime brenda një kohe të shkurtër, telefoni yt do të ulë volumin dhe do të minimizojë dritaret kërcyese në ekran për deri në dy minuta. Telefonatat, alarmet dhe bisedat me përparësi do të lëshojnë përsëri dridhje ose tinguj ose do të shfaqen në ekran dhe të gjitha njoftimet mund t\'i gjesh me lehtësi kur tërheq poshtë nga kreu i ekranit."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Reduktimi i njoftimeve"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Përdor reduktimin e njoftimeve"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kur merr shumë njoftime brenda një kohe të shkurtër, pajisja jote do të ulë volumin dhe do të minimizojë sinjalizimet për deri në 2 minuta. Telefonatat, alarmet dhe bisedat me përparësi nuk do të ndikohen. \n\nNjoftimet e marra gjatë reduktimit mund të gjenden duke tërhequr poshtë nga kreu i ekranit."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Zbato në profilet e punës"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Zbato për aplikacionet e profilit të punës"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Shërbimet e ndihmësit VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategoritë"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Të tjera"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ky aplikacion nuk ka postuar asnjë njoftim"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Shfaq kategoritë e papërdorura"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Cilësime shtesë në aplikacion"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Shfaq kategoritë e papërdorura"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Fshih kategoritë e papërdorura"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Bisedat"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Të gjitha bisedat"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"të gjitha bisedat"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Bisedat me përparësi"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"biseda me përparësi"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Asnjë"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Aplikacionet që mund ta ndërpresin"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Aplikacionet e zgjedhura"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Asnjë"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Të gjitha"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Asnjë aplikacion nuk mund të ndërpresë}=1{{app_1} mund të ndërpresë}=2{{app_1} dhe {app_2} mund të ndërpresin}=3{{app_1}, {app_2} dhe {app_3} mund të ndërpresin}other{{app_1}, {app_2} dhe # aplikacione të tjera mund të ndërpresin}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Puna)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Po llogaritet…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Lejo aplikacionet ta anulojnë"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Aplikacionet që mund ta ndërpresin"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Zgjidh më shumë aplikacione"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Asgjë nuk mund ta ndërpresë"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Askush nuk mund ta ndërpresë"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Disa persona mund ta ndërpresin"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Telefonuesit e përsëritur mund të ndërpresin"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Të gjithë kontaktet mund ta ndërpresin"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Telefonuesit e përsëritur"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Lejo telefonuesit e përsëritur"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ndrysho vetëm tek alarmet për një orë deri në {time}}other{Ndrysho vetëm tek alarmet për # orë deri në {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ndrysho në gjendjen \"vetëm alarmet\" deri në <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Ndrysho te \"ndërprit gjithmonë\""</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Riemërto"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Ndrysho ikonën"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Ndrysho ikonën"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Modifiko modalitetin"</string>
+    <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>
+    <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>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Kur lëviz me makinë"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Cilësimet e aplikacionit"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Informacione dhe cilësime në <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Menaxhohet nga <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Të çaktivizohet <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Ky modalitet nuk do të aktivizohet asnjëherë kur të çaktivizohet"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Çaktivizo"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Të aktivizohet <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Ky modalitet mund të aktivizohet automatikisht bazuar në cilësimet e tij"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivizo"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Cakto një modalitet që ndjek një program të rregullt"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Cakto një modalitet për ta sinkronizuar me ngjarjet e kalendarit dhe përgjigjet e ftesave"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Projekto një rutinë gjumi qetësuese. Cakto alarmet, errëso ekranin dhe blloko njoftimet."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Jepi përparësi sigurisë në rrugë për një udhëtim të me fokus dhe pa shpërqendrime"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blloko shpërqendrimet ose ndërprerjet nga pajisja jote për t\'u fokusuar"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimino të gjitha shpërqendrimet për një mjedis të heshtur"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personalizo përvojat e pajisjes dhe cilësimet për përdorues të ndryshëm"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimizo ndërprerjet duke lejuar që të të arrijnë vetëm personat dhe aplikacionet e rëndësishme"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Paralajmërim"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Mbyll"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Dërgo komente për këtë pajisje"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Kasa"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Paneli i \"Cilësimeve\""</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Detyro \"modalitetin e desktopit\""</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Detyro \"modalitetin e desktopit\" eksperimental në ekrane dytësore"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktivizo dritaret me formë të lirë"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Aktivizo dritare me formë të lirë në ekran dytësor"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivizo aplikacionet me madhësi jo të ndryshueshme në modalitetin me shumë dritare"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Lejon që aplikacionet me madhësi jo të ndryshueshme të shfaqen në modalitetin me shumë dritare"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Anulo detyrimin e errësimit"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"të dhënat celulare"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Për të përmirësuar përvojën e pajisjes, aplikacionet dhe shërbimet mund të vazhdojnë të skanojnë për rrjete Wi‑Fi në çdo kohë, edhe kur Wi‑Fi është joaktiv. Kjo mund të përdoret, për shembull, për të përmirësuar veçoritë dhe shërbimet e bazuara te vendndodhja. Mund ta ndryshosh këtë te cilësimet e skanimit të Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Ndrysho"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Lidhur"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Lidhur përkohësisht"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Po përdor përkohësisht <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Përdor gozhdimin e aplikacionit"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Përdor opsionet e zhvilluesit"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Përdor shërbimin e printimit"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Lejo disa përdorues"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Lejo ndërrimin e përdoruesit"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"lejo, disa, përdorues, leje, shumë"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"disa, përdorues, profile, persona, llogari, shumë"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Përdor korrigjimin përmes Wi-Fi"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Zgjidh se çfarë do të shohësh në ekranin tënd kur tableti të jetë lidhur me stacionin. Pajisja jote mund të përdorë më shumë energji kur përdoret një mbrojtës ekrani."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Personalizo"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Të personalizosh <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Kërkohet të rindizet për të aktivizuar mbështetjen në formë të lirë."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Kërkohet të rindizet për të detyruar modalitetin e desktopit në ekranet dytësore."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Kërkohet rindezja për të aktivizuar mbështetjen për dritaret me formë të lirë."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Kërkohet rinisja për të përditësuar disponueshmërinë e dritareve me formë të lirë."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Kërkohet rinisja për të aktivizuar dritaret me formë të lirë në ekranet dytësore."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Rindize tani"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Rindize më vonë"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio hapësinore"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Trëndafil"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"E purpurt"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Vjollcë"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"U krye"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Ruaj"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Anulo"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Parazgjedhja"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Mesatar"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Aktivizuar"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Çaktivizuar"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Aktivizuar"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audioja %1$d%% majtas, %2$d%% djathtas"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audioja %1$d%% djathtas, %2$d%% majtas"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Emri i pajisjes sate është i dukshëm për aplikacionet që ke instaluar. Ai mund të shikohet po ashtu nga persona të tjerë kur lidhesh me pajisje me Bluetooth, kur lidhesh me një rrjet Wi-Fi ose kur konfiguron një zonë të qasjes për internet me Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Gjinia gramatikore"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Zgjidh gjininë gramatikore"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Dëgjo transmetimin"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skano një kod QR të transmetimit audio për të dëgjuar me <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Fjalëkalimi nuk mund të modifikohet gjatë ndarjes. Për të ndryshuar fjalëkalimin, në fillim çaktivizo ndarjen e audios."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Skaneri i kodeve QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Kërko te cilësimet"</string>
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 4d7fbd0..3433de1 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Време за спавање"</item>
-    <item msgid="4152450357280759894">"Вожња"</item>
-    <item msgid="7096549258219399423">"Имерзивно"</item>
-    <item msgid="2760716776980432977">"Управљано"</item>
-    <item msgid="601734478369121764">"Звезда"</item>
-    <item msgid="6243809315432780521">"Календар"</item>
-    <item msgid="4913577903148415331">"Време"</item>
-    <item msgid="3653377604690057780">"Позориште"</item>
-    <item msgid="3843711267408385410">"Цвет"</item>
+    <item msgid="2750940760340557109">"Полумесец"</item>
+    <item msgid="8513969636586738035">"Аутомобил"</item>
+    <item msgid="957392343846370509">"Људски мозак"</item>
+    <item msgid="6734164279667121348">"Календар"</item>
+    <item msgid="4139559120353528558">"Сат"</item>
+    <item msgid="5157711296814769020">"Сунцобран"</item>
+    <item msgid="6635328761318954115">"Шатор"</item>
+    <item msgid="1711994778883392255">"Ролна филма"</item>
+    <item msgid="9097658401859604879">"Контролер за игре"</item>
+    <item msgid="755931364157422565">"Тег за теретану"</item>
+    <item msgid="8894207806795738429">"Особа која баца лопту"</item>
+    <item msgid="2274801572149555103">"Особа која шутира"</item>
+    <item msgid="8795037201506843325">"Пливање"</item>
+    <item msgid="3558421426169430451">"Особа која пешачи"</item>
+    <item msgid="7455070421232184932">"Голф"</item>
+    <item msgid="5841773092449126508">"Алат из радионице"</item>
+    <item msgid="4595330511709890409">"Актовка"</item>
+    <item msgid="8352738347856724389">"Звезда"</item>
+    <item msgid="7082783098151998721">"Цвет лотоса"</item>
+    <item msgid="5772220259409264724">"Супервизор"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index b4a57e7..379eaf3 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Обустављено"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Непознато"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Преглед"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR кôд"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Умањи"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Увећај"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Увек"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Подешавања слушног апарата"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Пречица, компатибилност са слушним апаратима"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Задата подешавања"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Не постоје задата подешавања која је програмирао аудиолог"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Ажурирање задатих подешавања није успело"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудио излаз"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"О аудио излазу"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Избор језика за ову апликацију није доступан из Подешавања."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Језик може да се разликује од језика доступних у апликацији. Неке апликације можда не подржавају ово подешавање."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Подесите језик за сваку апликацију."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Систем, апликације и веб-сајтови користе први подржани језик из жељених језика."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Уређај, апликације и веб-сајтови користе први подржани језик са листе жељених језика.\n\nМноге апликације форматирају датуме, бројеве и јединице на основу региона жељеног језика. Да бисте променили регион, додајте језик, па изаберите жељени регион."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Да бисте изабрали језик за сваку апликацију, идите у подешавања језика апликације."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Сазнајте више о језицима апликација"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Желите да језик система од сада буде %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Искључено"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Укључено/# апликација има приступ локацији}one{Укључено/# апликација има приступ локацији}few{Укључено/# апликације имају приступ локацији}other{Укључено/# апликација има приступ локацији}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Учитава се…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликације са дозволом за уређаје у близини могу да одреде приближан положај повезаних уређаја."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Апликације са дозволом за уређаје у близини могу да одреде приближни положај повезаних уређаја."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Приступ локацији је искључен за апликације и услуге. Локација уређаја може и даље да се шаље екипама хитних служби када позовете број за хитне случајеве или пошаљете SMS на њега."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Сазнајте више о подешавањима локације"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Да бисте то променили, на ChromeOS-у отворите Подешавања &gt; Безбедност и приватност &gt; Контроле приватности &gt; Приступ локацији"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додати су лице и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додати су лице, отисак прста и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додати су лице, отисци прстију и <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Откључавање уз Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Сат је додат"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Подесите сат"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Сазнајте више о откључавању сата"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додај сат"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Уклони сат"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отисак прста и откључавање лицем"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Откључавање лицем и отиском прста"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Откључавање лицем и отиском прста за посао"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Треба да подесите"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Лице и отисци прста су додати"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Подешава се приватни простор…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Подешавање приватног простора није успело"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Пробај поново"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Затвори"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Приватан простор није доступан.\nПогледајте могуће узроке"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Погледајте могуће узроке"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Желите да одаберете ново откључавање за приватан простор?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Можете да подесите ново откључавање само за приватан простор или да користите оно исто које користите за откључавање уређаја"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Користи откључавање екрана"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Желите да рестартујете уређај?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"NFC евидентирање детаља је намењено само у сврхе програмирања. Додатни NFC подаци уврштени су у извештаје о грешкама, који могу да садрже приватне податке. Рестартујте уређај да бисте променили ово подешавање."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Рестартуј"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Укључено"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Искључено"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Спољни екран"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Користи спољни екран"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Резолуција екрана"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Спољни екран је искључен"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Ротација"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Стандардно"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Промена ротације или резолуције може да заустави све апликације које су тренутно активне"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Уређај мора да буде повезан са спољним екраном да би се пресликао цео екран"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Још опција"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Пребацивање"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"пресликати"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Омогући бежични приказ"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Прилагодљиво"</string>
     <string name="brightness" msgid="6216871641021779698">"Ниво осветљености"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Прилагодљива осветљеност"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"О приладољивој осветљености"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Осветљеност екрана ће се аутоматски прилагођавати окружењу и активностима. Можете ручно да померате клизач да би прилагодљиво подешавање осветљености научило шта вам одговара."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Укључено"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Искључено"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опције"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Приступачност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физичка тастатура"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Користи тастатуру на екрану"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Задржава се на екрану док је физичка тастатура активна"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Дужи одзив тастера"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Тастатура занемарује брзе притиске истог тастера који се понављају у року од <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Спори тастери"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Приладите време потребно да се тастер активира после притиска на <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Користите физичку тастатуру да бисте управљали мишем."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Промените стил попуне у жуто"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Промените стил попуне у розе"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Промените стил попуне у плаво"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Стил потеза показивача"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Бело"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Црно"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ништа"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Научите покрете за тачпед"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"додирна табла, миш, курсор, скроловање, превлачење, десни клик, клик, показивач"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"десни клик, додир"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Изабрао је корисник: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Говор"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Брзина показивача"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Величина показивача"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Смањите величину показивача"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Повећајте величину показивача"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Контролер за игре"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Преусмери вибрацију"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Преусмери вибрацију на контролер за игре када је повезан"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ипак настави"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Откажи"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Подешавања увећања"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Померање једним прстом"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Померите лупу 1 прстом"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Превлачите 1 прст за кретање по екрану"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Померајте област за увећање превлачењем једног прста."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Померајте област за увећање превлачењем два прста."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Није доступно када се увећава само део екрана"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Додирните дугме да бисте зумирали"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Брзо увећајте екран да би садржај био већи"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Да бисте увећали:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Користите пречицу да бисте покренули увећање&lt;br/&gt; {1,number,integer}. Додирните екран&lt;br/&gt; {2,number,integer}. Превлачите помоћу 2 прста да бисте се кретали по екрану&lt;br/&gt; {3,number,integer}. Скупите 2 прста да бисте прилагодили зумирање&lt;br/&gt; {4,number,integer}. Користите пречицу да бисте зауставили увећање&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Да бисте привремено увећали:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Уверите се да је тип увећања подешен на цео екран&lt;br/&gt; {1,number,integer}. Користите пречицу да бисте покренули увећање&lt;br/&gt; {2,number,integer}. Додирните и задржите било који део екрана&lt;br/&gt; {3,number,integer}. Превлачите прст да бисте се кретали по екрану&lt;br/&gt; {4,number,integer}. Подигните прст да бисте зауставили увећање"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Да бисте увећали:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Користите пречицу да бисте покренули увећање&lt;br/&gt; {1,number,integer}. Додирните екран&lt;br/&gt; {2,number,integer}. Превлачите помоћу 2 прста да бисте се кретали по екрану&lt;br/&gt; {3,number,integer}. Скупите 2 прста да бисте прилагодили зумирање&lt;br/&gt; {4,number,integer}. Користите пречицу да бисте зауставили увећање&lt;br/&gt;&lt;br/&gt; Можете привремено да зумирате и друго."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Да бисте увећали:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Користите пречицу да бисте покренули увећање&lt;br/&gt; {1,number,integer}. Додирните екран&lt;br/&gt; {2,number,integer}. Превлачите 1 или 2 прста да бисте се кретали по екрану &lt;br/&gt; {3,number,integer}. Скупите 2 прста да бисте прилагодили зумирање&lt;br/&gt; {4,number,integer}. Користите пречицу да бисте зауставили увећање&lt;br/&gt;&lt;br/&gt; Можете привремено да зумирате и друго."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Када је увећање укључено, можете да увећате екран.\n\n"<b>"Да бисте зумирали"</b>", покрените увећање, па додирните било који део екрана.\n"<ul><li>"Превлачите помоћу 2 или више прстију да бисте померали приказ"</li>\n<li>"Скупите 2 или више прстију да бисте прилагодили зумирање"</li></ul>\n\n<b>"За привремено зумирање"</b>" покрените увећање, па додирните и задржите било који део екрана.\n"<ul><li>"Превлачите да бисте се кретали по екрану"</li>\n<li>"Подигните прст да бисте умањили приказ"</li></ul>\n\n"Не можете да увећавате тастатуру или траку за навигацију."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="CURRENT_PAGE">%1$d</xliff:g>. страница од <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Пречица за дугме Приступачност"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Превуците нагоре од дна екрана помоћу 2 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 2 прста и задржите."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Превуците нагоре од дна екрана помоћу 3 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 3 прста и задржите."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Превуците нагоре од дна екрана. Да бисте прелазили са једне функције на другу, превуците нагоре и задржите.}one{Превуците нагоре од дна екрана помоћу # прста. Да бисте прелазили са једне функције на другу, превуците нагоре помоћу # прста и задржите.}few{Превуците нагоре од дна екрана помоћу # прста. Да бисте прелазили са једне функције на другу, превуците нагоре помоћу # прста и задржите.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Двапут додирните екран помоћу два прста"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Брзо додирните екран %1$d пута. Ово може да успори уређај."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двапут додирните помоћу %1$d прста"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Брзо додирните екран {0,number,integer} пута помоћу два прста"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Додирните екран трипут"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"додирните трипут"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо додирните екран {0,number,integer} пута. Ова пречица може да успори уређај"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Напредно"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Дугме за приступачност је подешено на <xliff:g id="SERVICE">%1$s</xliff:g>. Да бисте користили увећање, додирните и задржите дугме за приступачност, па изаберите увећање."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Покрет за приступачност је подешен на функцију <xliff:g id="SERVICE">%1$s</xliff:g>. Да бисте користили увећање, превлачите нагоре од дна екрана помоћу два прста и задржите. Затим одаберите увећање."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ова услуга није исправна."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Пречице за приступачност"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Прикажи у Брзим подешавањима"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Црвено-зелено"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Црвено-зелено"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Црвена/зелена, делимично слепило за зелену"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Црвена/зелена, делимично слепило за црвену"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Плаво-жуто"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Сивило"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Интензитет"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Делимично слепило за зелену, деутераномалија"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Делимично слепило за црвену, протаномалија"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Није доступно за режим сивила или када је онемогућена корекција боја"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Деутераномалија"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномалија"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалија"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Додатно затамни"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Додатно затамни екран"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Тиркизна"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Жута"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Магента"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Желите ли да дозволите да <xliff:g id="SERVICE">%1$s</xliff:g> има потпуну контролу над уређајем?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> треба:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Пошто апликација скрива захтев за дозволу, Подешавања не могу да верификују одговор."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> тражи потпуну контролу над овим уређајем. Услуга може да чита садржај са екрана и да обавља разне задатке за кориснике услуга приступачности. Овај ниво контроле није одговарајући за већину апликација."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Потпуна контрола је примерена за апликације које вам помажу код услуга приступачности, али не и за већину апликација."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Прегледај и контролиши екран"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Може да чита сав садржај на екрану и приказује га у другим апликацијама."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Прегледај и обављај радње"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да прати интеракције са апликацијом или сензором хардвера и користи апликације уместо вас."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Искључи"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Ниједан}=1{1 распоред је подешен}one{# распоред је подешен}few{# распореда су подешена}other{# распореда је подешено}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Не узнемиравај"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Приоритетни режими"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Додај режим"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Смањите ометања и преузмите контролу над пажњом помоћу режима за спавање, рад, вожњу и све остало."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Направите свој режим"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Добијајте обавештења само од важних особа и апликација"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Подесите распоред"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Распоред заснован на"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Дан и време"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"9:00–17:00 радним данима"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Догађаји у календару"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Активан је {mode_1}}=2{Активни су {mode_1} и {mode_2}}=3{Активни су {mode_1}, {mode_2} и {mode_3}}one{Активни су {mode_1}, {mode_2} и још # режим}few{Активни су {mode_1}, {mode_2} и још # режима}other{Активни су {mode_1}, {mode_2} и још # режима}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 режим може да се укључује аутоматски}one{# режим може да се укључује аутоматски}few{# режима могу да се укључују аутоматски}other{# режима може да се укључује аутоматски}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"УКЉУЧЕНО"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Није подешено"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Онемогућено"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Направите режим"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Прилагођено"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Укључи"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Искључи"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Режим није пронађен"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Ограничите прекиде"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Блокирајте прекиде и ометања"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Подесите <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Укључите режим Не узнемиравај"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Звукови аларма и медија могу да прекину"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Распореди"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Избриши распореде"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Избриши"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Преименуј"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Избриши"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Желите да избришете режим <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Измени"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Распореди"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Распоред"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Аутоматски укључи"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Додајте календар"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Користите свој календар"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Распоред"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Подесите распоред"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Када се искључује аутоматски"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Распоред догађаја"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Укључите током догађаја за"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Када је одговор на позив"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Временски распоред"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Распоред"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> с, <xliff:g id="MINUTES">%2$d</xliff:g> мин"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Распоред"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Омогућите прекиде који производе звук"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Блокирај визуелна ометања"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Дозволи визуелне сигнале"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Обавештења која дозвољавате"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Додатне радње"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Филтери за обавештења"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Још подешавања"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Искључено}=1{Искључено/1 режим може да се укључује аутоматски}one{Искључено/# режим може да се укључује аутоматски}few{Искључено/# режима могу да се укључују аутоматски}other{Искључено/# режима може да се укључује аутоматски}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Подешавања приказа"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Опције приказа"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Сивило"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"омогући тамну тему"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Пребаците ОС и апликације на светао текст на тамној позадини. То може да буде лакше за очи и доводи до знатне уштеде батерије на неким уређајима"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Нема промена екрана}=1{{effect_1}}=2{{effect_1} и {effect_2}}=3{{effect_1}, {effect_2} и {effect_3}}one{{effect_1}, {effect_2} и још #}few{{effect_1}, {effect_2} и још #}other{{effect_1}, {effect_2} и још #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Ограничите шта може да вас обавештава"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Ниједан прекид се не филтрира"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Опције приказа за филтрирана обавештења"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Када је укључен режим Не узнемиравај"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Без звучног сигнала за обавештења"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"отварање обавештења"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Омогући одлагање обавештења"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Тачка за обавештења на икони апликације"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Скупови обавештења"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Облачићи"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Облачићи"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Прикажи ову конверзацију у облачићу"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Прилагодљива обавештења"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Користите прилагодљива обавештења"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Када добијете много обавештења у кратком периоду, телефон ће утишати звук и смањити број искачућих прозора на екрану на највише два минута. За позиве, аларме и приоритетне конверзације ћете и даље добијати обавештења путем вибрације, звука или приказа на екрану, а сва обавештења можете лако да пронађете када превучете надоле са врха екрана."</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_work" msgid="8823596456640216391">"Примени на пословне профиле"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Примените на апликације пословног профила"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Услуге помагача за виртуелну реалност"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Категорије"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Другo"</string>
     <string name="no_channels" msgid="4716199078612071915">"Ова апликација није поставила ниједно обавештење"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Прикажи некоришћене категорије"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Додатна подешавања у апликацији"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Прикажи некоришћене категорије"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Сакриј некоришћене категорије"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Конверзације"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Све конверзације"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"све конверзације"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Приоритетне конверзације"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"приоритетне конверзације"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Ништа"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Апликације које могу да прекину функцију Не узнемиравај"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Изабране апликације"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ниједна"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Све"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Ниједна апликација не може да прекине}=1{{app_1} може да прекине}=2{{app_1} и {app_2} могу да прекину}=3{{app_1}, {app_2} и {app_3} могу да прекину}one{{app_1}, {app_2} и још # могу да прекину}few{{app_1}, {app_2} и још # могу да прекину}other{{app_1}, {app_2} и још # могу да прекину}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (посао)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Израчунава се…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволи да апликације занемарују"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Апликације које могу да прекидају"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Изаберите још апликација"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Поновни позиваоци могу да прекидају"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Сви људи могу да прекину"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Поновни позиваоци"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дозволи поновне позиваоце"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Пређите само на аларме на један сат све до {time}}one{Пређите само на аларме на # сат све до {time}}few{Пређите само на аларме на # сата све до {time}}other{Пређите само на аларме на # сати све до {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Пребацује у режим само са алармима до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Пребацује у режим увек прекидај"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Преименуј"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Промени икону"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Промени икону"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Измените режим"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Направите режим"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Прилагођени режим"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Назив режима"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Догађаји у календару"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Рутина времена за спавање"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Током вожње"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Подешавања апликације"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Информације и подешавања у апликацији <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Управља <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Онемогућавате <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Овај режим се никада неће укључити када је онемогућен"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Онемогући"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Омогућавате <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Овај режим може да се укључи аутоматски на основу подешавања"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Омогући"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Подесите режим који прати редован распоред"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Подесите режим за синхронизацију са догађајима у календару и одговорима на позиве"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Осмислите смирујућу рутину спавања. Подесите аларме, затамните екран и блокирајте обавештења."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Дајте предност безбедности на путу за фокусирану вожњу без ометања"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Упозорење"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Затвори"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Шаљи повратне информације о уређају"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Футрола"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Батерија"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Табла са подешавањима"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Наметни режим рачунара"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Намеће експериментални режим рачунара на секундарним екранима"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Омогући прозоре произвољног формата"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Омогући прозоре произв. формата на секунд. екрану"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Омогући апликације непромењиве величине у више прозора"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Омогућава да апликације непромењиве величине буду у више прозора"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Замени функцију наметања тамне теме"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобилни подаци"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Ради бољег доживљаја, апликације и услуге могу и даље да траже WiFi мреже у било ком тренутку, чак и када је WiFi искључен. То може да се користи, на пример, за побољшавање функција и услуга заснованих на локацији. То можете да промените у подешавањима WiFi скенирања."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Промени"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Повезано"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Привремено повезано"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Привремено се користи <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Користи качење апликација"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Користи опције за програмере"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Користи услугу штампања"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Дозволи више корисника"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Омогући промену корисника"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"омогућити, више, корисник, дозволити, много"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"више, корисници, профили, људи, налози, промена, велики број"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Користи бежично отклањање грешака"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Изаберите шта ћете видети на екрану када је таблет на базној станици. Уређај може да троши више енергије када се користи чувар екрана."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Прилагоди"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Прилагодите <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Морате да рестартујете да бисте омогућили подршку за слободан облик."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Морате да рестартујете да бисте принудно омогућили режим за рачунаре на секундарним екранима."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Морате да рестартујете да бисте омогућили подршку за прозоре произвољног формата."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Морате да рестартујете да бисте ажурирали доступност прозора произвољног формата."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Морате да рестартујете да бисте омогућили прозоре произвољног формата на секундарним екранима."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Рестартуј"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Рестартуј касније"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Просторни звук"</string>
@@ -5136,9 +5207,9 @@
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Конфигуришите ограничење брзине преузимања на мрежи"</string>
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"Без ограничења"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Онемогући ограничења за подређене процесе"</string>
-    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Онемогућите ограничења коришћења ресурса система за подређене процесе апликације"</string>
+    <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Онемогућава ограничења коришћења ресурса система за подређене процесе апликације"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Принудно омогући улогу Белешке"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Омогућите интеграције прављења бележака у систему помоћу улоге Белешке. Ако је улога Белешке већ омогућена, не предузимајте ништа. Захтева рестартовање."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Омогућава интеграције прављења бележака у систему помоћу улоге Белешке. Ако је улога Белешке већ омогућена, ништа се не дешава. Захтева рестартовање."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Емитујте"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Емитујте <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Слушајте емитовања која се пуштају у близини"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Ружа"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Магента"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Љубичаста"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Готово"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Сачувај"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Откажи"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Подразумевано"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Средње"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Укључено"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Искључено"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Укључено"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Звук: %1$d%% лево, %2$d%% десно"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Звук: %1$d%% десно, %2$d%% лево"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Апликације које сте инсталирали могу да виде назив уређаја. И други људи могу да виде назив уређаја када се повежете са Bluetooth уређајима или WiFi мрежом или подесите WiFi хотспот."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Граматички род"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Изаберите граматички род"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слушајте стрим"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Скенирајте QR кôд аудио стрима да бисте слушали помоћу: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Лозинка не може да се мења током дељења. Да бисте променили лозинку, прво искључите дељење звука."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Скенер QR кода"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Подешавања претраге"</string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 5f5edda..aefb3d1 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Läggdags"</item>
-    <item msgid="4152450357280759894">"Körläge"</item>
-    <item msgid="7096549258219399423">"Uppslukande"</item>
-    <item msgid="2760716776980432977">"Hanterade"</item>
-    <item msgid="601734478369121764">"Stjärna"</item>
-    <item msgid="6243809315432780521">"Kalender"</item>
-    <item msgid="4913577903148415331">"Tid"</item>
-    <item msgid="3653377604690057780">"Teater"</item>
-    <item msgid="3843711267408385410">"Blomma"</item>
+    <item msgid="2750940760340557109">"Halvmåne"</item>
+    <item msgid="8513969636586738035">"Bil"</item>
+    <item msgid="957392343846370509">"Persons sinne"</item>
+    <item msgid="6734164279667121348">"Kalender"</item>
+    <item msgid="4139559120353528558">"Klocka"</item>
+    <item msgid="5157711296814769020">"Strandparasoll"</item>
+    <item msgid="6635328761318954115">"Tält"</item>
+    <item msgid="1711994778883392255">"Filmrulle"</item>
+    <item msgid="9097658401859604879">"Spelkontroll"</item>
+    <item msgid="755931364157422565">"Gymhantel"</item>
+    <item msgid="8894207806795738429">"Person som kastar boll"</item>
+    <item msgid="2274801572149555103">"Person som sparkar"</item>
+    <item msgid="8795037201506843325">"Simning"</item>
+    <item msgid="3558421426169430451">"Person som vandrar"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Verktyg"</item>
+    <item msgid="4595330511709890409">"Portfölj"</item>
+    <item msgid="8352738347856724389">"Stjärna"</item>
+    <item msgid="7082783098151998721">"Lotusblomma"</item>
+    <item msgid="5772220259409264724">"Ledare"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index a2cbf0e..ee87420 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Pausad"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Ingen uppgift"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Förhandsgranskning"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-kod"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Förminska"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Förstora"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Alltid"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Inställningar för hörapparat"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Genväg, kompatibilitet med hörapparat"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Förinställning"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Inga förinställningar har gjorts av din audionom"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Det gick inte att uppdatera förinställningen"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Ljudutgång"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Om ljudutgång"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Det går inte att välja språk för den här appen i Inställningar."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Alla språk kanske inte är tillgängliga i appen. Vissa appar kanske inte har stöd för denna inställning."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Ställ in språket för varje app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Systemet, apparna och webbplatserna använder det första språket som stöds från din lista över föredragna språk."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Enheten, appar och webbplatser använder det första språket som stöds från din lista över föredragna språk.\n\nI många appar används även regionen för det önskade språket för att formatera datum, tal och enheter. Om du vill ändra region lägger du till ett språk och väljer sedan region."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Gå till en apps inställningar för att välja språk i den."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Läs mer om appspråk"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vill du ändra systemspråk till %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Av"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{På – # app har platsåtkomst}other{På – # appar har platsåtkomst}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Läser in …"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Appar med behörighet att upptäcka enheter i närheten kan beräkna anslutna enheters relativa position."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Appar med behörighet att upptäcka enheter i närheten kan beräkna anslutna enheters relativa position."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Platsåtkomst har inaktiverats för appar och tjänster. Enhetens plats kan fortfarande skickas till räddningstjänst när du ringer eller skickar sms till ett nödnummer."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Läs mer om platsinställningar"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Om du vill ändra detta öppnar du ChromeOS-inställningar &gt; Integritet och säkerhet &gt; Integritetsinställningar &gt; Platsåtkomst"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansikte och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansikte, fingeravtryck och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansikte, fingeravtryck och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Upplåsning med fjärrverifierare"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Klockan har lagts till"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurera klockan"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Läs mer om upplåsning med klockan"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lägg till klocka"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ta bort klockan"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingeravtryck och ansiktslås"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Ansikts- och fingeravtryckslås"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansikts- och fingeravtryckslås för jobbprofilen"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfigurering krävs"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Ansikte och fingeravtryck har lagts till"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Ställer in privat område …"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Det gick inte att ställa in privat område"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Försök igen"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Stäng"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Det privata området är inte tillgängligt.\nVisa möjliga orsaker"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Visa möjliga orsaker"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Vill du välja ett nytt lås för ditt privata område?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Du kan ställa in ett nytt lås för endast det privata området eller använda samma lås som du har till enheten"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Använd skärmlås"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Vill du starta om enheten?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Detaljerad NFC-loggning är endast avsedd för utvecklingssyfte. Ytterligare NFC-data ingår i felrapporterna, vilka kan innehålla privata uppgifter. Starta om enheten för att ändra den här inställningen."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Starta om"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"På"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Av"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Extern skärm"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Använd extern skärm"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Skärmens upplösning"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Extern skärm har kopplats från"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Rotation"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Om du ändrar rotation eller upplösning kan appar som körs för närvarande stoppas"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Enheten måste vara ansluten till en extern skärm för att spegla skärmen"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Fler alternativ"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Casta"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"spegling"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Aktivera wifi-skärmdelning"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Anpassade"</string>
     <string name="brightness" msgid="6216871641021779698">"Ljusstyrka"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Anpassad ljusstyrka"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Om anpassad ljusstyrka"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Skärmens ljusstyrka justeras automatiskt efter miljö och aktivitet. Du kan träna Anpassad ljusstyrka med dina egna inställningar genom att flytta reglaget manuellt."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"På"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Av"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Alternativ"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Tillgänglighet"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysiskt tangentbord"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Använd skärmtangentbord"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Ha kvar det på skärmen när det fysiska tangentbordet används"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Studsande tangenter"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Tangentbordet ignorerar snabbt upprepade tryck på samma tangent inom <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Långsamma tangenter"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Justera tiden det tar innan ett tryck på en tangent aktiveras till <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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="2396247040177734245">"Använd det fysiska tangentbordet för att styra musen."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Ändra markörfyllningen till gul"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Ändra markörfyllningen till rosa"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Ändra markörfyllningen till blå"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Stil på pekardrag"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Vit"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Svart"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Ingen"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Lär dig rörelser för styrplattan"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"styrplatta, styr platta, mus, markör, scrolla, svep, högerklicka, klicka, pekare"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"högerklicka, tryck"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Användaren valde <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Tal"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Markörens hastighet"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Skala för muspekare"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Minska skalan för muspekare"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Öka skalan för muspekare"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Spelkontroller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Omdirigera vibration"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Styr vibrationer till spelkontrollen när en sådan är ansluten"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsätt ändå"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Avbryt"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Inställningar för förstoring"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Panorering med ett finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Flytta förstoringsglaset med ett finger"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Navigera på skärmen: dra med ett finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Flytta förstoringsområdet genom att dra med ett finger."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Flytta förstoringsområdet genom att dra med två fingrar."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Inte tillgänglig när bara förstoringsdelen av skärmen visas"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Tryck på en knapp för att zooma"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Zooma in snabbt så att innehåll på skärmen förstoras"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Så här zoomar du in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Starta förstoring med genvägen&lt;br/&gt; {1,number,integer}. Tryck på skärmen&lt;br/&gt; {2,number,integer}. Navigera på skärmen genom att dra med två fingrar&lt;br/&gt; {3,number,integer}. Nyp med två fingrar för att justera zoomnivån&lt;br/&gt; {4,number,integer}. Stoppa förstoringen med genvägen&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Så här zoomar du in tillfälligt:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kontrollera att förstoringstyp är inställd som helskärm&lt;br/&gt; {1,number,integer}. Starta förstoring med genvägen&lt;br/&gt; {2,number,integer}. Tryck länge var som helst på skärmen&lt;br/&gt; {3,number,integer}. Navigera på skärmen genom att dra med fingret&lt;br/&gt; {4,number,integer}. Stoppa förstoringen genom att lyfta fingret"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Så här zoomar du in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Starta förstoring med kortkommando&lt;br/&gt; {1,number,integer}. Tryck på skärmen&lt;br/&gt; {2,number,integer}. Navigera på skärmen genom att dra med två fingrar&lt;br/&gt; {3,number,integer}. Nyp med två fingrar för att justera zoomnivån&lt;br/&gt; {4,number,integer}. Stoppa förstoring med kortkommando&lt;br/&gt;&lt;br/&gt; Du kan även zooma in tillfälligt med mera."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Så här zoomar du in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Starta förstoring med kortkommando&lt;br/&gt; {1,number,integer}. Tryck på skärmen&lt;br/&gt; {2,number,integer}. Navigera på skärmen genom att dra med ett finger eller två fingrar&lt;br/&gt; {3,number,integer}. Nyp med två fingrar för att justera zoomnivån&lt;br/&gt; {4,number,integer}. Stoppa förstoring med kortkommando&lt;br/&gt;&lt;br/&gt; Du kan även zooma in tillfälligt med mera."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"När förstoring har aktiverats kan du zooma in på skärmen.\n\n"<b>"Om du vill zooma"</b>" aktiverar du förstoring och trycker var som helst på skärmen.\n"<ul><li>"Scrolla genom att dra med minst två fingrar."</li>\n<li>"Justera zoomen genom att nypa med minst två fingrar."</li></ul>\n\n<b>"Om du vill zooma tillfälligt"</b>" aktiverar du förstoring och trycker länge var som helst på skärmen.\n"<ul><li>"Flytta runt på skärmen genom att dra."</li>\n<li>"Zooma ut genom att lyfta fingret."</li></ul>\n\n"Det går inte att zooma in på tangentbordet eller navigeringsfältet."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Sida <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> av <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Kortkommando med tillgänglighetsknappen"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Tryck på den flytande knappen"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Tillgänglighetsrörelse"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Tryck på tillgänglighetsknappen <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> längst ned på skärmen. Tryck länge på tillgänglighetsknappen för att byta funktion."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Svep uppåt med två fingrar från skärmens nederkant.\n\nByt funktion genom att svepa uppåt med två fingrar och hålla kvar dem."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Svep uppåt med tre fingrar från skärmens nederkant.\n\nByt funktion genom att svepa uppåt med två fingrar och hålla kvar dem."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Svep uppåt från skärmens nederkant. Svep uppåt och håll kvar fingret för att byta funktion.}other{Svep uppåt med # fingrar från skärmens nederkant. Svep uppåt med # fingrar och håll kvar för att byta funktion.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Fler alternativ"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Läs mer om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Volymknappar"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"volymknappar"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Håll båda volymknapparna nedtryckta"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Tryck snabbt två gånger på skärmen med två fingrar"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Tryck snabbt två gånger med %1$d fingrar"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Tryck snabbt två gånger med %1$d fingrar på skärmen"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Tryck snabbt tre gånger"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Tryck snabbt %1$d gånger på skärmen. Detta kan göra enheten långsammare."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Tryck snabbt två gånger med %1$d fingrar"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tryck snabbt {0,number,integer} gånger på skärmen med två fingrar"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tryck snabbt tre gånger på skärmen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"tryck snabbt tre gånger"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Tryck snabbt {0,number,integer} gånger på skärmen. Detta kortkommando kan göra enheten långsammare"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Avancerat"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"<xliff:g id="SERVICE">%1$s</xliff:g> har angetts för tillgänglighetsknappen. Om du vill använda förstoring trycker du länge på tillgänglighetsknappen och väljer förstoring."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Tillgänglighetsrörelsen är inställd på <xliff:g id="SERVICE">%1$s</xliff:g>. Om du vill använda förstoring sveper du uppåt med två fingrar från skärmens nederkant och håller kvar fingret. Välj sedan Förstoring."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Tjänsten fungerar inte."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Genvägar för tillgänglighet"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Visa i Snabbinställningar"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Röd–grön"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Röd–grön"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Röd-grön, nedsatt känslighet för grönt"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Röd-grön, nedsatt känslighet för rött"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Gul–blå"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gråskala"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensitet"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Nedsatt känslighet för grönt, deuteranomali"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Nedsatt känslighet för rött, protanomali"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Inte tillgängligt för gråskalaläget eller om färgkorrigering har inaktiverats"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranopi"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanopi"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanopi"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extradimmat"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Gör skärmen extradimmad"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Gul"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Vill du tillåta att <xliff:g id="SERVICE">%1$s</xliff:g> har fullständig kontroll över enheten?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> behöver:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Svaret kan inte verifieras av Inställningar, eftersom en app skymmer en begäran om behörighet."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> begär fullständig kontroll över den här enheten. Tjänsten kan läsa på skärmen och utföra åtgärder åt användare med behov av tillgänglighet. Den här kontrollnivån är olämplig för de flesta appar."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Fullständig kontroll lämpar sig för appar med tillgänglighetsfunktioner, men är inte lämplig för de flesta appar."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Visa och styra skärmen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Den kan läsa allt innehåll på skärmen och visa innehåll över andra appar."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Visa och vidta åtgärder"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan registrera din användning av en app eller hårdvarusensor och interagera med appar åt dig."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillåt"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neka"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Inaktivera"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Inga}=1{1 schema har ställts in}other{# scheman har ställts in}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Stör ej"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Prioriterade lägen"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Lägg till ett läge"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Minimera distraktioner med lägen för när du sover, jobbar, kör och allt däremellan."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Skapa ditt eget läge"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Få bara aviseringar från viktiga personer och appar"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Ställ in ett schema"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Schemat baseras på"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Dag och tid"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"”Vardagar kl. 9.00–17.00”"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Kalenderhändelser"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} är aktivt}=2{{mode_1} och {mode_2} är aktiva}=3{{mode_1}, {mode_2} och {mode_3} är aktiva}other{{mode_1}, {mode_2} och # till är aktiva}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 läge kan aktiveras automatiskt}other{# lägen kan aktiveras automatiskt}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"PÅ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Inte angivet"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Inaktiverat"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Skapa ett läge"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Anpassa"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Aktivera nu"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Inaktivera"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Läget hittades inte"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Begränsa antalet avbrott"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Blockera avbrott och störande inslag"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Ställ in <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Aktivera Stör ej."</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarm och medieljud får avbryta"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Scheman"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Radera scheman"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Radera"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Byt namn"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Radera"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Vill du radera läget <xliff:g id="MODE">%1$s</xliff:g>?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Redigera"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Scheman"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Schema"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Aktivera automatiskt"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Lägg till en kalender"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Använd kalendern"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Schemalägg"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Ställ in ett schema"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"När det aktiveras automatiskt"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Schema för händelser"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Aktivera under händelser för"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Där svaret på inbjudan är"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Tidsschema"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Schemalägg"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Schemalägg"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Tillåt avbrott med ljud"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Blockera synliga störningar"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Tillåt synliga signaler"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Aviseringar som kan nå dig"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Fler åtgärder"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Aviseringsfilter"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Fler inställningar"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Av}=1{Av/1 läge kan aktiveras automatiskt}other{Av/# lägen kan aktiveras automatiskt}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Visningsinställningar"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Skärmalternativ"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Gråskala"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"aktivera mörkt tema"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Ändra så att operativsystemet och apparna föredrar ljus text på en mörk bakgrund, vilket kan vara snällare för ögonen och gör så att batteriet sparas på vissa enheter."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Inga skärmändringar}=1{{effect_1}}=2{{effect_1} och {effect_2}}=3{{effect_1}, {effect_2} och {effect_3}}other{{effect_1}, {effect_2} och # till}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Begränsa vad du får aviseringar om"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Inga avbrott filtreras"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Skärmalternativ för filtrerade aviseringar"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"När Stör ej har aktiverats"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Aviseringar hörs inte"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"öppna avisering"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Tillåt att aviseringar snoozas"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Aviseringsprick på appikonen"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Aviseringspaket"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bubblor"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bubblor"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Visa en bubbla för konversationen"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Den här appen har inte stöd för avancerade inställningar"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Fler inställningar"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Fler inställningar är tillgängliga i appen"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Anpassade aviseringar"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Använd anpassade aviseringar"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"När du får många aviseringar på kort tid kommer din telefon att sänka volymen och minimera popup-fönster på skärmen i upp till två minuter. Samtal, alarm och prioriterade konversationer kommer fortfarande att vibrera, låta eller visas på skärmen, och alla aviseringar är lätta att hitta när du drar ned från skärmens överkant."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Gradvis sänkning – aviseringar"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Använd gradvis sänkning för aviseringar"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"När du får många aviseringar på kort tid kommer enheten att sänka volymen och minimera aviseringar i upp till två minuter. Samtal, alarm och prioriterade konversationer påverkas inte. \n\nDu kan hitta aviseringarna som tas emot under den gradvisa sänkningen genom att dra nedåt från skärmens överkant."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Använd för jobbprofiler"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Tillämpa på jobbprofilappar"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Hjälptjänster för VR"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategorier"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Övrigt"</string>
     <string name="no_channels" msgid="4716199078612071915">"Den här appen har inte skickat några aviseringar"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Visa oanvända kategorier"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Fler inställningar i appen"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Visa oanvända kategorier"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Dölj oanvända kategorier"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Konversationer"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Alla konversationer"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"alla konversationer"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Prioriterade konversationer"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"prioriterade konversationer"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Inga"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Appar som får störa dig"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Valda appar"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Ingen"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Alla"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Inga appar får avbryta}=1{{app_1} får avbryta}=2{{app_1} och {app_2} får avbryta}=3{{app_1}, {app_2} och {app_3} får avbryta}other{{app_1}, {app_2} och # till får avbryta}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (jobbet)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Beräknar …"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Tillåt att appar åsidosätter funktionen"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Appar som får störa dig"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Välj fler appar"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Inget får avbryta"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Ingen får avbryta"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Vissa får avbryta"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Upprepade samtal från samma nummer får avbryta"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Alla får avbryta"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Återuppringning"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tillåt upprepade samtal"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Ändra till endast alarm i en timme tills {time}}other{Ändra till endast alarm i # timmar tills {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ändra till endast alarm fram till kl. <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Ändra till avbryt alltid"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Byt namn"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Ändra ikon"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Ändra ikon"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Redigera läge"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Skapa ett läge"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Anpassat läge"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Lägesnamn"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalenderhändelser"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Läggdagsrutin"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"När du kör"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Appinställningar"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Information och inställningar för <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Hanteras av <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Vill du inaktivera <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Läget aktiveras aldrig när det är inaktiverat"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Inaktivera"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Vill du aktivera <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Läget kan aktiveras automatiskt beroende på inställningarna"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Aktivera"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Ställ in ett läge som följer ett förinställt schema"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Ställ in ett läge för att synkronisera med kalenderhändelser och svar på inbjudningar"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Designa en lugnande sömnrutin. Ställ in alarm, sänk ljusstyrkan på skärmen och blockera aviseringar."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Prioritera säkerhet på vägen och kör utan distraktioner"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Blockera distraktioner och avbrott från enheten så att du kan fokusera"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Slipp distraktioner och få en lugn miljö"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Anpassa inställningarna och upplevelserna på enheten för olika användare"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Minimera avbrott genom att bara tillåta att viktiga personer och appar når dig"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Varning"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Stäng"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Skicka feedback om den här enheten"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Fodral"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batteri"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panelen Inställningar"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Tvinga fram skrivbordsläge"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Tvinga fram experimentellt skrivbordsläge på sekundära skärmar"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Aktivera frihandsfönster"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Aktivera frihandsfönster på sekundär skärm"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Aktivera appar vars storlek inte kan ändras i flerfönsterläge"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Låter appar vars storlek inte kan ändras finnas i flerfönsterläge"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Åsidosätter tvingat mörkt läge"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobildata"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"I syfte att förbättra upplevelsen med enheten kan appar och tjänster fortfarande söka efter wifi-nätverk när som helst, även om wifi har inaktiverats. Funktionen kan till exempel användas till att förbättra platsbaserade funktioner och tjänster. Du kan ändra detta i inställningarna för wifi-sökning."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Ändra"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Ansluten"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tillfälligt ansluten"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> används tillfälligt"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Använd fästa appar"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Använd utvecklaralternativ"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Använd utskriftstjänst"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Tillåt flera användare"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Tillåt byte av användare"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"tillåt, flera, användare, godkänn, många"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"flera, användare, profiler, personer, konton, byta, många"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Använd trådlös felsökning"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Välj vad som ska visas på skärmen när surfplattan har dockats. Energiförbrukningen kan öka när en skärmsläckare används."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Anpassa"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Anpassa <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Du måste starta om enheten för att aktivera stöd för flytande läge."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Du måste starta om enheten om du vill tvinga fram datorläge på sekundära skärmar."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Du måste starta om enheten för att aktivera stöd för frihandsfönster."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Du måste starta om enheten för att uppdatera tillgängligheten för frihandsfönster."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Du måste starta om enheten för att aktivera frihandsfönster på sekundära skärmar."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Starta om nu"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Starta om senare"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Rumsligt ljud"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rosa"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violett"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Klar"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Spara"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Avbryt"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Standard"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Medelhög"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"På"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Av"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"På"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Ljud %1$d%% vänster, %2$d%% höger"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Ljud %1$d%% höger, %2$d%% vänster"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Enhetens namn är synligt för appar du har installerat. Det kan också vara synligt för andra personer när du ansluter till Bluetooth-enheter eller ett wifi-nätverk, eller om du skapar en wifi-surfzon."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Genus"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Välj genus"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lyssna på streamen"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skanna QR-koden för en ljudstream om du vill lyssna med <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Det går inte att redigera lösenordet medan delning pågår. Om du vill byta lösenord måste du först stänga av ljuddelningen."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-skanner"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Sökinställningar"</string>
 </resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index c07175a..3fe1dfa 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Wakati wa kulala"</item>
-    <item msgid="4152450357280759894">"Kuendesha gari"</item>
-    <item msgid="7096549258219399423">"Kwa kina"</item>
-    <item msgid="2760716776980432977">"Inadhibitiwa"</item>
-    <item msgid="601734478369121764">"Nyota"</item>
-    <item msgid="6243809315432780521">"Kalenda"</item>
-    <item msgid="4913577903148415331">"Muda"</item>
-    <item msgid="3653377604690057780">"Ukumbi"</item>
-    <item msgid="3843711267408385410">"Ua"</item>
+    <item msgid="2750940760340557109">"Nusu-mwezi"</item>
+    <item msgid="8513969636586738035">"Gari"</item>
+    <item msgid="957392343846370509">"Mawazo ya mtu"</item>
+    <item msgid="6734164279667121348">"Kalenda"</item>
+    <item msgid="4139559120353528558">"Saa"</item>
+    <item msgid="5157711296814769020">"Mwamvuli wa ufukweni"</item>
+    <item msgid="6635328761318954115">"Hema"</item>
+    <item msgid="1711994778883392255">"Mkanda wa filamu"</item>
+    <item msgid="9097658401859604879">"Kidhibiti cha mchezo"</item>
+    <item msgid="755931364157422565">"Vyuma vya mazoezi"</item>
+    <item msgid="8894207806795738429">"Mtu anayerusha mpira"</item>
+    <item msgid="2274801572149555103">"Mtu anayepiga teke"</item>
+    <item msgid="8795037201506843325">"Kuogelea"</item>
+    <item msgid="3558421426169430451">"Mtu anayekwea mlima"</item>
+    <item msgid="7455070421232184932">"Gofu"</item>
+    <item msgid="5841773092449126508">"Zana za karakana"</item>
+    <item msgid="4595330511709890409">"Mkoba"</item>
+    <item msgid="8352738347856724389">"Nyota"</item>
+    <item msgid="7082783098151998721">"Ua la yungiyungi"</item>
+    <item msgid="5772220259409264724">"Msimamizi"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index c263215..5e5e9c3 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Imetanguliwa"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Haijulikani"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Kagua kwanza"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Msimbo wa QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Punguza"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Kuza"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Kila wakati"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Mipangilio ya vifaa vya kusikilizia"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Njia ya mkato, uoanifu wa kifaa cha kusaidia kusikia"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Mipangilio iliyowekwa mapema"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Hakuna mipangilio iliyowekwa mapema na audiolojia wako"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Imeshindwa kusasisha mipangilio iliyowekwa mapema"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Vifaa vya kutoa sauti"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Kuhusu vifaa vya kutoa sauti"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Chaguo la lugha kwa programu hii halipatikani kwenye Mipangilio."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Huenda lugha ikatofautiana na zinazopatikana katika programu. Huenda baadhi ya programu zisiwe na uwezo wa kutumia mipangilio hii."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Weka lugha ya kila programu."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Mfumo wako, programu na tovuti hutumia lugha ya kwanza inayotumika katika chaguo za lugha unazozipendelea."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Vifaa, programu na tovuti zako hutumia lugha ya kwanza inayotumika kutoka kwenye orodha ya lugha unazopendelea.\n\nProgramu nyingi pia zitatumia maelezo ya eneo kutoka kwenye lugha unayopendelea ili kuweka muundo wa tarehe, namba na vipimo. Ili kubadilisha maelezo ya eneo uliko, weka lugha kisha uchague eneo unalopendelea."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ili uchague lugha kwa kila programu, nenda kwenye mipangilio ya lugha ya programu."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Pata maelezo zaidi kuhusu lugha za programu"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Ungependa kubadilisha lugha ya mfumo kuwa %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Umezima"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Imewashwa / programu # ina idhini ya kufikia data ya mahali}other{Imewashwa / programu # zina idhini ya kufikia data ya mahali}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Inapakia…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Programu zenye ruhusa ya Uhamishaji wa Karibu zinaweza kubainisha mahali vilipo vifaa vilivyounganishwa."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Programu zenye ruhusa za kufikia vifaa vilivyo karibu zinaweza kubainisha mahali vilipo vifaa vilivyounganishwa."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ruhusa za kufikia mahali zimezimwa kwenye programu na huduma. Bado maelezo ya mahali kilipo kifaa chako yanaweza kutumwa kwa wanaoshughulikia matukio ya dharura unapopiga simu au kutuma SMS kwa namba ya dharura."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pata maelezo zaidi kuhusu Mipangilio ya mahali"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ili ubadilishe nenda kwenye Mipangilio ya ChromeOS &gt; Faragha na usalama &gt; Vidhibiti vya faragha &gt; Ufikiaji wa maelezo ya mahali"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Umeweka uso na <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Umeweka uso, alama ya kidole na <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Umeweka uso, alama za vidole na <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Kufungua Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Saa imeoanishwa"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Weka mipangilio ya saa yako"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Pata maelezo zaidi kuhusu Kufungua Kupitia Saa"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Weka saa"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ondoa saa"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Alama ya Kidole na Kufungua kwa Uso"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Kufungua kwa Alama ya Kidole na Uso"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Kazini: Kufungua kwa Uso na Alama ya Kidole"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Unahitaji kuweka mipangilio"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Uso na alama za vidole zimeongezwa"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Inaweka mipangilio ya sehemu ya faragha…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Imeshindwa kuweka mipangilio ya sehemu ya faragha"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Jaribu Tena"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Funga"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Sehemu ya faragha haipatikani.\nAngalia sababu zinazowezekana"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Angalia sababu zinazowezekana"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Ungependa kuchagua mbinu mpya ya kufunga sehemu ya faragha?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Unaweza kuweka mbinu mpya ya kufunga sehemu ya faragha au utumie mbinu ile ile unayotumia kufungua kifaa chako"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Tumia mbinu ya kufunga skrini"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Ungependa kuzima kisha uwashe kifaa?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Uwekaji maelezo ya kumbukumbu ya NFC ni kwa madhumuni ya usanidi pekee. Vilevile data ya NFC inajumuishwa katika ripoti za hitilafu ambazo huenda zikawa na taarifa ya faragha. Zima kisha uwashe kifaa chako ili ubadili mipangilio hii."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Zima kisha uwashe"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Imewashwa"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Imezimwa"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Skrini ya Nje"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Tumia skrini ya nje"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ubora wa skrini"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Skrini ya nje imeondolewa"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Mzunguko"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Wastani"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"Digrii 90"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"Digrii 180"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"Digrii 270"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Hatua ya kubadilisha mzunguko au ubora inaweza kufanya programu zozote zinazotumika kwa sasa ziache kufanya kazi"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Ni lazima kifaa chako kiunganishwe na skrini ya nje ili kuakisi skrini yako"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Chaguo zaidi"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Tuma"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"kioo"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Washa kuonyesha skrini bila kutumia waya"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Inayojirekebisha"</string>
     <string name="brightness" msgid="6216871641021779698">"Kiwango cha mwangaza"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Mwangaza unaojirekebisha"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Kuhusu mwangaza unaojirekebisha"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Itarekebisha mwangaza wa skrini kiotomatiki ili uendane na mazingira na shughuli zako. Unaweza kusogeza kitelezi mwenyewe ili kusaidia kipengele cha mwangaza unaojirekebisha kijifunze mapendeleo yako."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Umewashwa"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Kimezimwa"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Chaguo"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ufikivu"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Kibodi halisi"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Tumia kibodi ya skrini"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Ionyeshe kwenye skrini wakati kibodi halisi inatumika"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Vitufe vinavyoduta"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Kibodi hupuuza vitendo vya kurudia kubonyeza kitufe kimoja haraka na mara nyingi ndani ya milisekunde <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g>"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Vitufe vya polepole"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Hurekebisha muda unaochukua kitendo cha kubofya kitufe ili kuwasha uwe milisekunde <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g>"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Tumia kibodi halisi kudhibiti kipanya."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Badilisha kielekezi kiwe cha njano"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Badilisha kielekezi kiwe cha waridi"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Badilisha kielekezi kiwe cha buluu"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Muundo wa mcharazo wa kielekezi"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Nyeupe"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Nyeusi"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Hamna"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Jifunze ishara za padi ya kugusa"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"padi ya kusogeza, padi ya kusogeza, kipanya, kiteuzi, nenda, telezesha kidole, bofya kulia, bofya, kishale"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"bofya kulia, gusa"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Uliochaguliwa na mtumiaji: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Kutamka"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Kasi ya kiashiria"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Ukubwa wa kiashiria"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Punguza ukubwa wa kiashiria"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Ongeza ukubwa wa kiashiria"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Kidhibiti cha Mchezo"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Elekeza mtetemo"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Elekeza mitetemo kwenye kidhibiti cha mchezo wakati kimeunganishwa"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Endelea tu"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ghairi"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Mipangilio ya ukuzaji"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Kubuta kwa kidole kimoja"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Sogeza kikuzaji ukitumia kidole 1"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Buruta kidole 1 ili usogeze kwenye skrini"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Sogeza sehemu ya ukuzaji kwa kuburuta kwa kidole kimoja."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Sogeza sehemu ya ukuzaji kwa kuburuta kwa vidole viwili."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Haipatikani unapokuza tu sehemu fulani ya skrini"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Gusa kitufe ili ukuze"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Vuta karibu kwa haraka kwenye skrini ili ufanye maudhui yawe makubwa"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Ili uvute karibu:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Tumia njia ya mkato ili uanze kukuza&lt;br/&gt; {1,number,integer}. Gusa skrini&lt;br/&gt; {2,number,integer}. Buruta vidole viwili ili usogeze kwenye skrini&lt;br/&gt; {3,number,integer}. Bana kwa vidole viwili ili ubadilishe ukuzaji&lt;br/&gt; {4,number,integer}. Tumia njia ya mkato ili uache kukuza&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Ili uvute karibu kwa muda:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Hakikisha umechagua aina ya ukuzaji kuwa skrini nzima&lt;br/&gt; {1,number,integer}. Tumia njia ya mkato ili uanze kukuza&lt;br/&gt; {2,number,integer}. Gusa na ushikilie mahali popote kwenye skrini&lt;br/&gt; {3,number,integer}. Buruta kidole ili usogeze kwenye skrini&lt;br/&gt; {4,number,integer}. Inua kidole ili uache kukuza"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Ili uvute karibu:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Tumia njia ya mkato ili uanze ukuzaji&lt;br/&gt; {1,number,integer}. Gusa skrini&lt;br/&gt; {2,number,integer}. Buruta vidole 2 ili usogeze kwenye skrini&lt;br/&gt; {3,number,integer}. Bana ukitumia vidole 2 ili ukuze vinginevyo&lt;br/&gt; {4,number,integer}. Tumia njia ya mkato ili uache kukuza&lt;br/&gt;&lt;br/&gt; Unaweza pia kuvuta karibu kwa muda mfupi na zaidi."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Ili uvute karibu:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Tumia njia ya mkato ili uanze ukuzaji&lt;br/&gt; {1,number,integer}. Gusa skrini&lt;br/&gt; {2,number,integer}. Buruta kidole 1 au 2 ili usogeze kwenye skrini&lt;br/&gt; {3,number,integer}. Bana ukitumia vidole 2 ili ukuze vinginevyo&lt;br/&gt; {4,number,integer}. Tumia njia ya mkato ili uache kukuza&lt;br/&gt;&lt;br/&gt; Unaweza pia kuvuta karibu kwa muda mfupi na zaidi."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Ukiwasha ukuzaji, unaweza kuvuta karibu kwenye skrini yako.\n\n"<b>"Ili ukuze"</b>", anzisha ukuzaji kisha uguse mahali popote kwenye skrini.\n"<ul><li>"Buruta vidole 2 au zaidi ili usogeze"</li>\n<li>"Bana vidole 2 au zaidi ili urekebishe ukuzaji"</li></ul>\n\n<b>"Ili ukuze kwa muda"</b>", anzisha ukuzaji kisha uguse na ushikilie mahali popote kwenye skrini.\n"<ul><li>"Buruta ili usogeze kwenye skrini"</li>\n<li>"Inua kidole ili usogeze mbali"</li></ul>\n\n"Huwezi kuvuta karibu kwenye kibodi au sehemu ya viungo muhimu."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Ukurasa wa <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> kati ya <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Njia ya mkato ya kitufe cha zana za ufikivu"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Gusa kitufe kinachoelea"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Ishara ya ufikivu"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Gusa kitufe cha zana za ufikivu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> katika sehemu ya chini ya skrini yako. Ili ubadili kati ya vipengele, gusa na ushikilie kitufe cha zana za ufikivu."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Telezesha vidole viwili juu kutoka sehemu ya chini ya skrini.\n\nIli ubadilishe kati ya vipengele, telezesha vidole viwili juu na ushikilie."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Telezesha vidole vitatu juu kutoka sehemu ya chini ya skrini.\n\nIli ubadilishe kati ya vipengele, telezesha vidole vitatu juu na ushikilie."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Telezesha kidole kuanzia sehemu ya chini ya skrini yako kwenda juu. Ili ubadili kati ya vipengele, telezesha kidole juu na ushikilie.}other{Telezesha vidole # kuanzia sehemu ya chini ya skrini yako kwenda juu. Ili ubadili kati ya vipengele, telezesha vidole # juu na ushikilie.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Chaguo zaidi"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Pata maelezo zaidi kuhusu <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Vitufe vya sauti"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"vitufe vya sauti"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Bonyeza na ushikilie vitufe vyote viwili vya sauti"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Gusa skrini mara mbili kwa vidole viwili"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Kugusa mara mbili ukitumia vidole %1$d"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Gusa skrini mara mbili haraka ukitumia vidole %1$d"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kugusa mara tatu"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Gusa skrini mara %1$d haraka. Huenda hali hii ikasababisha kifaa chako kifanye kazi polepole."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Kugusa mara mbili ukitumia vidole %1$d"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Gusa skrini kwa haraka mara {0,number,integer} kwa vidole viwili"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Gusa skrini mara tatu"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"kugusa mara tatu"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Gusa skrini mara {0,number,integer} kwa haraka. Huenda njia hii ya mkato ikapunguza kasi ya kifaa chako"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Mipangilio ya kina"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Kitufe cha zana za walio na matatizo ya kuona au kusikia kimewekwa kuwa <xliff:g id="SERVICE">%1$s</xliff:g>. Gusa na ushikilie Kitufe cha zana za walio na matatizo ya kuona au kusikia, kisha uchague ukuzaji ili utumie kipengele cha ukuzaji."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Ishara ya zana za walio na matatizo ya kuona au kusikia imewekwa kwenye <xliff:g id="SERVICE">%1$s</xliff:g>. Ili utumie ukuzaji, telezesha vidole viwili kutoka chini kwenda juu kwenye skrini na ushikilie. Kisha uchague ukuzaji."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Huduma hii haifanyi kazi vizuri."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Njia za mkato za zana za ufikivu"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Onyesha katika Mipangilio ya Haraka"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Nyekundu-kijani"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Nyekundu-kijani"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Nyekundu-kijani, kijani hafifu"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Nyekundu-kijani, nyekundu hafifu"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Bluu-manjano"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Kijivu"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ukolezaji"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Kijani hafifu, upofu wa kutoona rangi kijani"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Nyekundu hafifu, upofu wa kutoona rangi nyekundu"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Haipatikani kwa hali ya kijivu au wakati kipengele cha usahihishaji wa rangi kimezimwa"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Upofu rangi wa kutokuona rangi ya kijani"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Upofu rangi wa kutokuona rangi nyekundu"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Upofu wa kutoona rangi ya bluu"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Kipunguza mwangaza zaidi"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Punguza mwangaza wa skrini zaidi"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Samawati-Kijani"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Manjano"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Majenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Ungependa kuruhusu <xliff:g id="SERVICE">%1$s</xliff:g> iwe na udhibiti kamili wa kifaa chako?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> inahitaji:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Kwa sababu programu yako inazuia ombi la ruhusa, Mipangilio haiwezi kuthibitisha majibu yako."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> inaomba udhibiti kamili wa kifaa hiki. Huduma hii inaweza kusoma skrini na ichukue hatua kwa niaba ya watumiaji walio na matatizo ya kuona au kusikia. Kiwango hiki cha udhibiti hakifai kwa programu nyingi."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Udhibiti kamili unafaa kwa programu zinazokusaidia kwa mahitaji ya ufikivu, ila si kwa programu nyingi."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Kuangalia na kudhibiti skrini"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Inaweza kusoma maudhui yote kwenye skrini na kuonyesha maudhui kwenye programu zingine."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Kuangalia na kutekeleza vitendo"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Inaweza kufuatilia mawasiliano yako na programu au kitambuzi cha maunzi na kuwasiliana na programu zingine kwa niaba yako."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruhusu"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Kataa"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Zima"</string>
@@ -3142,7 +3162,7 @@
     <string name="network_dashboard_summary_mobile" msgid="7750924671970583670">"Data ya simu, Wi‑Fi, mtandaopepe"</string>
     <string name="network_dashboard_summary_no_mobile" msgid="4022575916334910790">"Wi-Fi, mtandao pepe"</string>
     <string name="connected_devices_dashboard_title" msgid="19868275519754895">"Vifaa vilivyounganishwa"</string>
-    <string name="connected_devices_dashboard_default_summary" msgid="7211769956193710397">"Bluetooth, kuoanisha"</string>
+    <string name="connected_devices_dashboard_default_summary" msgid="7211769956193710397">"Bluetooth, kuunganisha"</string>
     <string name="connected_devices_dashboard_summary" msgid="6927727617078296491">"Bluetooth, hali ya kuendesha gari, NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="8424794257586524040">"Bluetooth, hali ya kuendesha gari"</string>
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="7155882619333726331">"Bluetooth, NFC"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Hamna}=1{Pana ratiba moja}other{Pana ratiba #}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Usinisumbue"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Hali za Kipaumbele"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Weka hali"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Punguza usumbufu na udhibiti umakini wako ukitumia hali za kulala, kufanya kazi, kuendesha gari na nyinginezo."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Anzisha hali yako mwenyewe"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Pata arifa za watu na programu muhimu pekee"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Weka ratiba"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Ratibu kulingana na"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Siku na saa"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"Saa 3 Asubuhi - Saa 11 Jioni siku za wiki\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Matukio ya kalenda"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} inatumika}=2{{mode_1} na {mode_2} zinatumika}=3{{mode_1}, {mode_2} na {mode_3} zinatumika}other{{mode_1}, {mode_2} na nyingine # zinatumika}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Hali 1 inaweza kuwashwa kiotomatiki}other{Hali # zinaweza kuwashwa kiotomatiki}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"IMEWASHWA"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Haijawekwa"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Imezimwa"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Anzisha hali"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Maalum"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Washa sasa"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Zima"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Hali haikupatikana"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Punguza usumbufu"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Zuia usumbufu na kukatizwa"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Weka mipangilio ya <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Washa kipengele cha Usinisumbue"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Sauti za kengele na maudhui zinaweza kukatiza"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Ratiba"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Futa kanuni"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Futa"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Badilisha jina"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Futa"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Ungependa kufuta hali ya \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Badilisha"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Ratiba"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Ratiba"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Washa kiotomatiki"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Weka kalenda"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Tumia kalenda yako"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Ratiba"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Weka ratiba"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Wakati wa kuwasha kiotomatiki"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Ratiba ya matukio"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Washa wakati wa matukio ya"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Ambapo jibu la mwaliko ni"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Ratiba ya wakati"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Ratiba"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"Saa <xliff:g id="HOURS">%1$d</xliff:g>, dak <xliff:g id="MINUTES">%2$d</xliff:g>"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ratibu"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Ruhusu ukatizwe na vipengele vinavyotoa sauti"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Zuia ukatizaji wa maonyesho"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Ruhusu ishara zinazoonekena"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Arifa zinazoweza kukufikia"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Vitendo vya ziada"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Vichujio vya arifa"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Mipangilio zaidi"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Imezimwa}=1{Imezimwa au Hali 1 inaweza kuwashwa kiotomatiki}other{Imezimwa au Hali # zinaweza kuwashwa kiotomatiki}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Mipangilio ya kuonyesha"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Chaguo za kuonyesha"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Kijivu"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"washa mandhari meusi"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Badili mfumo wa uendeshaji na programu uwe katika hali ya napendelea maandishi mepesi kwenye mandharinyuma meusi\", ambayo yanaweza kuonekana kwa urahisi na yanapelekea uokoaji mkubwa wa betri kwenye baadhi ya vifaa."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Hakuna mabadiliko kwenye skrini}=1{{effect_1}}=2{{effect_1} na {effect_2}}=3{{effect_1}, {effect_2} na {effect_3}}other{{effect_1}, {effect_2} na # zaidi}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Punguza arifa unazoweza kupokea"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Hakuna matukio ya kukatiza yaliyochujwa"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Chaguo za kuonyesha arifa zilizochujwa"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Wakati umewasha kipengele cha Usinisumbue"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Arifa zisitoe sauti"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"fungua arifa"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Ruhusu uahirishaji wa arifa"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Kitone cha arifa kwenye aikoni ya programu"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Vifurushi vya arifa"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Viputo"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Viputo"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Yafanye mazungumzo haya yatoe viputo"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Programu hii haitumii mipangilio iliyoboreshwa"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Mipangilio zaidi"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Mipangilio zaidi inapatikana ndani ya programu hii"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Arifa Zinazojirekebisha"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Tumia arifa zinazojirekebisha"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Ukipokea arifa nyingi ndani ya muda mfupi, simu yako itapunguza kiwango cha sauti na idadi ya madirisha ibukizi kwenye skrini kwa hadi dakika mbili. Simu, kengele na mazungumzo ya kipaumbele bado yatafanya simu iteteme, kutoa sauti au kuonekana kwenye skrini na ni rahisi kupata arifa zote ukitelezesha kidole chini kutoka sehemu ya juu ya skrini."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Kupungua kwa shughuli ya arifa"</string>
+    <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 kupungua kwa shughuli 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="vr_listeners_title" msgid="4960357292472540964">"Huduma za kisaidizi cha Uhalisia Pepe"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Aina"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Nyingine"</string>
     <string name="no_channels" msgid="4716199078612071915">"Programu hii haijachapisha arifa zozote"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Onyesha aina ambazo hazijatumika"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Mipangilio ya ziada katika programu"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Onyesha aina zisizotumika"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ficha aina zisizotumika"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Mazungumzo"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Mazungumzo yote"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"mazungumzo yote"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Mazungumzo yenye kipaumbele"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"mazungumzo ya kipaumbele"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Hamna"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Programu zinazoweza kukatiza"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Programu zilizochaguliwa"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Hamna"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Zote"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Hakuna programu zinazoweza kukatiza}=1{{app_1} inaweza kukatiza}=2{{app_1} na {app_2} zinaweza kukatiza}=3{{app_1}, {app_2} na {app_3} zinaweza kukatiza}other{{app_1}, {app_2} na nyingine # zinaweza kukatiza}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Kazini)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Inahesabu…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Ruhusu programu zibatilishe hali"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Programu zinazoweza kukatiza"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Chagua programu zaidi"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Hakuna kinachoweza kukatiza"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Hakuna mtu anayeweza kukatiza"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Baadhi ya watu wanaweza kukatiza"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Wanaorudia kupiga simu wanaweza kukatiza"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Watu wote wanaweza kukatiza"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Wanaorudia kupiga simu"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Ruhusu wanaorudia kupiga simu"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Badilisha utumie kengele pekee kwa saa moja hadi {time}}other{Badilisha utumie kengele pekee kwa saa # hadi {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Badilisha utumie kengele pekee hadi <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Badilisha utumie hali ya katiza wakati wote"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Badilisha jina"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Badilisha aikoni"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Badilisha aikoni"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Badilisha hali"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Anzisha hali"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Hali maalum"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Jina la hali"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Matukio ya kalenda"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Ratiba ya wakati wa kulala"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Unapoendesha gari"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Mipangilio ya programu"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Maelezo na mipangilio katika <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Inadhibitiwa na <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Ungependa kuzima <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Hali hii haitawashwa kamwe iwapo imezimwa"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Zima"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Ungependa kuwasha <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Hali hii inaweza kuwashwa kiotomatiki kulingana na mipangilio yake"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Washa"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Weka hali inayofuata ratiba ya kawaida"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Weka hali isawazishwe na matukio ya kalenda na majibu ya mialiko"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Tengeneza ratiba ya hali tulivu ya kulala. Weka kengele, punguza mwangaza wa skrini na uzuie arifa."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Endesha gari kwa makini na bila usumbufu kwa kuupa kipaumbele usalama barabarani"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Zuia shughuli usizohitaji au usumbufu unaotokana na kifaa chako ili uweze kumakinika"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Ondoa shughuli zote usizohitaji ili uwe na mazingira tulivu"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Weka mapendeleo ya mipangilio na ya matumizi ya kifaa kwa watumiaji tofauti"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Punguza usumbufu kwa kuruhusu tu watu na programu muhimu kukufikia"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Onyo"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Funga"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Tuma maoni kuhusu kifaa hiki"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Kipochi"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Betri"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Kidirisha cha Mipangilio"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Lazimisha hali ya eneo-kazi"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Lazimisha hali ya jaribio la eneo-kazi kwenye maonyesho yasiyo ya msingi"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Kuwasha madirisha yenye muundo huru"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Ruhusu madirisha ya muundo huru kwenye skrini mbadala"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ruhusu ukubwa usioweza kubadilishwa katika madirisha mengi"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Huruhusu programu zenye ukubwa usioweza kubadilishwa ziwe katika madirisha mengi"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Badilisha ulazimishaji wa mandhari meusi"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"data ya mtandao wa simu"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Ili kuboresha hali ya matumizi ya kifaa, programu na huduma zinaweza kutafuta mitandao ya Wi‑Fi wakati wowote, hata wakati umezima Wi‑Fi. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali. Unaweza kubadilisha hali hii katika mipangilio ya kutafuta Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Badilisha"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Imeunganishwa"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Imeunganishwa kwa muda"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Inatumia <xliff:g id="SUBNAME">%1$s</xliff:g> kwa muda"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Tumia kipengele cha kubandika programu"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Tumia chaguo za wasanidi programu"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Tumia huduma ya kuchapisha"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Ruhusu watumiaji wengi"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Ruhusu kubadili watumiaji"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ruhusu, kadhaa, mtumiaji, idhinisha, wengi"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"wengi, watumiaji, wasifu, watu, akaunti, badilisha, nyingi"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Tumia kipengele cha utatuzi usiotumia waya"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Chagua utakachokiona kwenye skrini wakati kompyuta kibao yako imeshikiliwa kwenye kiweko. Kifaa chako kinaweza kutumia nishati nyingi zaidi taswira ya skrini inapotumika."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Badilisha upendavyo"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Uweke mapendeleo ya <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Itahitaji kuwashwa tena ili kuruhusu uwezo wa muundo huru."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Itahitaji kuwashwa tena ili kuwezesha hali ya kompyuta ya mezani kwenye skrini nyingine."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Unahitaji kuwasha tena ili kuruhusu matumizi ya dirisha lenye muundo huru."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Unahitaji kuwasha tena ili usasishe upatikanaji wa hali ya madirisha yaliyo na muundo huru."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Unahitaji kuwasha tena ili uruhusu hali ya madirisha yaliyo na muundo huru kwenye skrini mbadala."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Washa tena sasa"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Washa tena baadaye"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Sauti Inayojirekebisha"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Waridi"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Majenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Zambarau iliyokolea"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Nimemaliza"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Hifadhi"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Ghairi"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Chaguomsingi"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Wastani"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Imewashwa"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Imezimwa"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Imewashwa"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Sauti, kushoto ni %1$d%%, kulia ni %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Sauti, kulia ni %1$d%%, kushoto ni %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Jina la kifaa chako litaonekana kwa programu ambazo umesakinisha. Huenda likaonekana pia na watu wengine unapooanisha na vifaa vyenye Bluetooth, unapounganisha kwenye mtandao wa Wi-Fi au unapoweka mipangilio ya mtandao pepe wa Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Jinsia ya kisarufi"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Chagua Jinsia ya kisarufi"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Sikiliza mtiririko"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Changanua msimbo wa QR wa mtiririko wa maudhui ya sauti ili usikilize kupitia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Huwezi kubadilisha nenosiri mposikiliza pamoja. Ili ubadilishe nenosiri, zima kwanza kipengele cha kusikiliza pamoja."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Kichanganuzi cha msimbo wa QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Mipangilio ya Utafutaji"</string>
 </resources>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index decc163..e87c93e 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"உறக்கநேரம்"</item>
-    <item msgid="4152450357280759894">"வாகனம் ஓட்டுதல்"</item>
-    <item msgid="7096549258219399423">"ஈடுபடவைப்பவை"</item>
-    <item msgid="2760716776980432977">"நிர்வகிக்கப்பட்டது"</item>
-    <item msgid="601734478369121764">"ஸ்டார்"</item>
-    <item msgid="6243809315432780521">"கேலெண்டர்"</item>
-    <item msgid="4913577903148415331">"நேரம்"</item>
-    <item msgid="3653377604690057780">"திரையரங்கம்"</item>
-    <item msgid="3843711267408385410">"பூ"</item>
+    <item msgid="2750940760340557109">"பாதி நிலவு"</item>
+    <item msgid="8513969636586738035">"கார்"</item>
+    <item msgid="957392343846370509">"மனித மூளை"</item>
+    <item msgid="6734164279667121348">"கேலெண்டர்"</item>
+    <item msgid="4139559120353528558">"கடிகாரம்"</item>
+    <item msgid="5157711296814769020">"பீச் குடை"</item>
+    <item msgid="6635328761318954115">"கூடாரம்"</item>
+    <item msgid="1711994778883392255">"திரைப்பட ரீல்"</item>
+    <item msgid="9097658401859604879">"கேம் கண்ட்ரோலர்"</item>
+    <item msgid="755931364157422565">"ஜிம் டம்பெல்"</item>
+    <item msgid="8894207806795738429">"ஒரு நபர் பந்து வீசுகிறார்"</item>
+    <item msgid="2274801572149555103">"ஒரு நபர் உதைக்கிறார்"</item>
+    <item msgid="8795037201506843325">"நீச்சல்"</item>
+    <item msgid="3558421426169430451">"ஒரு நபர் நெடுந்தூரம் நடக்கிறார்"</item>
+    <item msgid="7455070421232184932">"கோல்ஃப்"</item>
+    <item msgid="5841773092449126508">"வொர்க்‌ஷாப் கருவிகள்"</item>
+    <item msgid="4595330511709890409">"குறும்பெட்டி"</item>
+    <item msgid="8352738347856724389">"நட்சத்திரம்"</item>
+    <item msgid="7082783098151998721">"தாமரை பூ"</item>
+    <item msgid="5772220259409264724">"மேற்பார்வையாளர்"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index df0e3f9..119f9a5 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"இடைநீக்கப்பட்டது"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"தெரியவில்லை"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"மாதிரிக்காட்சி"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR குறியீடு"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"சிறிதாக்கு"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"பெரிதாக்கு"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"எப்போதும்"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"செவித்துணைச் சாதன அமைப்புகள்"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ஷார்ட்கட், செவித்துணைக் கருவியுடனான இணக்கத்தன்மை"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"முன்னமைவு"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"முன்னமைவுகள் எதையும் உங்கள் ஆடியாலஜிஸ்ட் திட்டமிடவில்லை"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"முன்னமைவைப் புதுப்பிக்க முடியவில்லை"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ஆடியோ வெளியீடு"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ஆடியோ அவுட்புட் - அறிமுகம்"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"அமைப்புகளில் இந்த ஆப்ஸுக்கான மொழித் தேர்வு கிடைக்கவில்லை."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ஆப்ஸில் இருக்கும் மொழிகளிலிருந்து மொழி வேறுபடலாம். சில ஆப்ஸில் இந்த அமைப்பைப் பயன்படுத்த முடியாது."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ஒவ்வொரு ஆப்ஸுக்கும் மொழியை அமைக்கலாம்."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"உங்களுக்கு விருப்பமான மொழிகளில் \'ஆதரிக்கப்படும் முதல் மொழியை\' உங்கள் சிஸ்டம், ஆப்ஸ், இணையதளங்கள் ஆகியவை பயன்படுத்தும்."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"உங்களுக்கு விருப்பமான மொழிகளில், ஆதரிக்கப்படும் முதல் மொழியை உங்கள் சாதனம், ஆப்ஸ் மற்றும் இணையதளங்கள் பயன்படுத்தும்.\n\nதேதிகள், எண்கள் மற்றும் யூனிட்களை ஃபார்மேட் செய்ய உங்களுக்கு விருப்பமான மொழியின் பிராந்தியத்தையும் பெரும்பாலான ஆப்ஸ் பயன்படுத்தும். உங்கள் பிராந்தியத்தை மாற்ற, மொழியைச் சேர்க்கவும் அதன்பிறகு உங்களுக்கு விருப்பமான மொழியைத் தேர்வுசெய்யவும்."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ஒவ்வொரு ஆப்ஸுக்கும் மொழியைத் தேர்ந்தெடுக்க ஆப்ஸ் மொழி அமைப்புகளுக்குச் செல்லுங்கள்."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ஆப்ஸ் மொழிகள் குறித்து மேலும் அறிந்துகொள்ளுங்கள்"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"சிஸ்டம் மொழியை %s என்பதாக மாற்றவா?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ஆஃப்"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ஆன் / # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளது}other{ஆன் / # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளன}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ஏற்றுகிறது…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"இணைக்கப்பட்டுள்ள சாதனங்களின் தூரத்தை \'அருகிலுள்ள சாதனங்களுக்கான\' அனுமதியைப் பெற்ற ஆப்ஸால் தீர்மானிக்க முடியும்."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"இணைக்கப்பட்டுள்ள சாதனங்கள் எவ்வளவு தூரத்தில், எந்தத் திசையில் உள்ளன என்பதை அருகிலுள்ள சாதனங்களைக் கண்டறிவதற்கான அனுமதியைப் பெற்றுள்ள ஆப்ஸால் தீர்மானிக்க முடியும்."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ஆப்ஸுக்கும் சேவைகளுக்கும் இருப்பிட அணுகல் முடக்கப்பட்டுள்ளது. எனினும் அவசர உதவி எண்ணை அழைத்தாலோ அதற்கு மெசேஜ் அனுப்பினாலோ, சாதனத்தின் இருப்பிடம் அவசரக் காலத்தில் உதவிபுரிவோருக்கு அனுப்பப்படக்கூடும்."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"இருப்பிட அமைப்புகள் குறித்து மேலும் அறிக"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"மாற்ற, ChromeOS அமைப்புகள் &gt; தனியுரிமை மற்றும் பாதுகாப்பு &gt; தனியுரிமைக் கட்டுப்பாடுகள் &gt; இருப்பிட அணுகல் என்பதற்குச் செல்லவும்"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"முகம் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"முகம், கைரேகை மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"முகம், கைரேகைகள் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticatorரை அன்லாக் செய்தல்"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"வாட்ச் சேர்க்கப்பட்டது"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"உங்கள் வாட்ச்சை அமையுங்கள்"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"வாட்ச் அன்லாக் அம்சம் குறித்து மேலும் அறிக"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"வாட்ச்சைச் சேர்"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"வாட்ச்சை அகற்றும்"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"கைரேகை &amp; முகம் காட்டித் திறத்தல்"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"முகம் &amp; கைரேகை அன்லாக்"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"பணிக்கான முகம் &amp; கைரேகை அன்லாக்"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"அமைவு தேவை"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"முகமும் கைரேகைகளும் சேர்க்கப்பட்டன"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"தனிப்பட்ட இடத்தை அமைக்கிறது…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"ரகசிய இடத்தை அமைக்க முடியவில்லை"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"மீண்டும் முயல்க"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"வெளியேறு"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"ரகசிய இடம் கிடைக்கவில்லை.\nசாத்தியமான காரணங்களைக் காட்டு"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"சாத்தியமான காரணங்களைக் காட்டு"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ரகசிய இடத்திற்கான புதிய லாக்கைத் தேர்வுசெய்யவா?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"ரகசிய இடத்திற்கான புதிய பூட்டை அமைக்கலாம் அல்லது உங்கள் சாதனத்தை அன்லாக் செய்யப் பயன்படுத்தும் அதே பூட்டைப் பயன்படுத்தலாம்"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"திரைப் பூட்டைப் பயன்படுத்து"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"சாதனத்தை மீண்டும் தொடங்கவா?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"விரிவான NFC பதிவானது மேம்பாட்டு நோக்கங்களுக்காக மட்டுமே உருவாக்கப்பட்டது. பிழை அறிக்கைகளில் கூடுதல் NFC தரவு சேர்க்கப்பட்டுள்ளது. இவற்றில் தனிப்பட்ட தகவல்கள் இருக்கக்கூடும். இந்த அமைப்பை மாற்ற உங்கள் சாதனத்தை மீண்டும் தொடங்கவும்."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"மீண்டும் தொடங்கு"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"இயக்கப்பட்டுள்ளது"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"வெளிப்புற டிஸ்ப்ளே"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"வெளிப்புற டிஸ்ப்ளேவைப் பயன்படுத்துதல்"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"டிஸ்ப்ளே தெளிவுத்திறன்"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"வெளிப்புற டிஸ்ப்ளே முடக்கப்பட்டுள்ளது"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"சுழற்சி"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"இயல்புநிலை"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"சுழற்சி அல்லது தெளிவுத்திறனை மாற்றுவது தற்போது இயக்கத்தில் இருக்கும் ஆப்ஸ் அனைத்தையும் நிறுத்தக்கூடும்"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"திரையைப் பிரதிபலிக்க உங்கள் சாதனம் வெளிப்புற டிஸ்ப்ளேயுடன் இணைக்கப்பட்டிருக்க வேண்டும்"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"கூடுதல் விருப்பங்கள்"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"அலைபரப்பு"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"பிரதிபலித்தல்"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"வயர்லெஸ் காட்சியை இயக்கு"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"சூழலுக்கேற்றது"</string>
     <string name="brightness" msgid="6216871641021779698">"ஒளிர்வு நிலை"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"சூழலுக்கேற்ற ஒளிர்வு"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"சூழலுக்கேற்ற ஒளிர்வு குறித்த அறிமுகம்"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"நீங்கள் இருக்கும் சூழலுக்கும், செய்யும் வேலைகளுக்கும் ஏற்றவாறு, தானாகவே உங்களின் திரை ஒளிர்வு கூடும், குறையும். நீங்கள் எவ்வளவு வெளிச்சத்தை விரும்புகிறீர்கள் என்பதைச் சூழலுக்கேற்ற ஒளிர்வு தெரிந்துகொள்ள, ஸ்லைடரைக் கைமுறையாக நகர்த்தலாம்."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ஆன்"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ஆஃப்"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"விருப்பங்கள்"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"மாற்றுத்திறன் வசதி"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"கைமுறை கீபோர்டு"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ஸ்கிரீன் கீபோர்டைப் பயன்படுத்து"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"கைமுறை கீபோர்டு இயக்கத்தில் இருக்கும் போது இதைத் திரையில் வைத்திருக்கும்"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"பவுன்ஸ் விசைகள்"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> மில்லி வினாடிக்குள் ஒரே பட்டனைத் தொடர்ச்சியாக அழுத்துவதைக் கீபோர்டு புறக்கணிக்கிறது"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ஸ்லோ கீஸ்"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"ஒரு பட்டனை அழுத்துவதற்கு எடுக்கும் நேரத்தை <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> மில்லி வினாடியாகச் சரிசெய்துகொள்கிறது"</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="2396247040177734245">"மவுஸைக் கட்டுப்படுத்த கீபோர்டைப் பயன்படுத்தவும்."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"பாயிண்ட்டர் ஃபில் ஸ்டைலை மஞ்சளாக மாற்றலாம்"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"பாயிண்ட்டர் ஃபில் ஸ்டைலை இளஞ்சிவப்பாக மாற்றலாம்"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"பாயிண்ட்டர் ஃபில் ஸ்டைலை நீலமாக மாற்றலாம்"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"பாயிண்டர் ஸ்ட்ரோக் ஸ்டைல்"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"வெள்ளை"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"கருப்பு"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ஏதுமில்லை"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"டச்பேட் சைகைகளை அறிந்துகொள்ளுங்கள்"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"டிராக்பேட், டிராக் பேட், மவுஸ், கர்சர், ஸ்க்ரோல், ஸ்வைப், வலது கிளிக், கிளிக், பாயிண்ட்டர்"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"வலது கிளிக், தட்டு"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"பயனர் தேர்ந்தெடுத்தது: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"பேச்சு"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"குறிப்பான் வேகம்"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"பாயிண்ட்டர் அளவு"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"பாயிண்ட்டர் அளவைக் குறைக்கும்"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"பாயிண்ட்டர் அளவை அதிகரிக்கும்"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"கேம் கன்ட்ரோலர்"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"அதிர்வைத் திசை திருப்புதல்"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"இணைக்கப்பட்டவுடன், கேம் கண்ட்ரோலருக்கு அதிர்வை அனுப்பு"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"பரவாயில்லை, தொடர்க"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ரத்துசெய்"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"பெரிதாக்கல் அமைப்புகள்"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ஒரு விரலால் நகர்த்துதல்"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 விரலால் Magnifierரை நகர்த்துங்கள்"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"திரையில் எங்கேனும் நகர்த்த 1 விரலால் இழுங்கள்"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ஒரு விரலால் இழுத்து பெரிதாக்கல் பகுதியை நகர்த்தலாம்."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"இரண்டு விரல்களால் இழுத்து பெரிதாக்கல் பகுதியை நகர்த்தலாம்."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"திரையின் ஒரு பகுதியை மட்டும் பெரிதாக்கும்போது இருக்காது"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"திரையைப் பெரிதாக்க, பட்டனைத் தட்டவும்"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"உள்ளடக்கத்தை மேலும் தெளிவாகக் காட்ட திரையைப் பெரிதாக்கலாம்"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;பெரிதாக்க:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. பெரிதாக்கத் தொடங்குவதற்கு ஷார்ட்கட்டைப் பயன்படுத்தவும்&lt;br/&gt; {1,number,integer}. திரையைத் தட்டவும்&lt;br/&gt; {2,number,integer}. திரையில் நகர்த்த இரு விரல்களால் இழுக்கவும்&lt;br/&gt; {3,number,integer}. அளவை மாற்ற இரு விரல்களால் பின்ச் செய்யவும்&lt;br/&gt; {4,number,integer}. பெரிதாக்குவதை நிறுத்த ஷார்ட்கட்டைப் பயன்படுத்தவும்&lt;br/&gt;&lt;br/&gt; &lt;b&gt;தற்காலிகமாகப் பெரிதாக்க:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. பெரிதாக்கல் வகை முழுத்திரைக்கு அமைக்கப்பட்டிருப்பதை உறுதிசெய்து கொள்ளவும்&lt;br/&gt; {1,number,integer}. பெரிதாக்கத் தொடங்குவதற்கு ஷார்ட்கட்டைப் பயன்படுத்தவும்&lt;br/&gt; {2,number,integer}. திரையில் எங்கேனும் தொட்டுப் பிடித்திருக்கவும்&lt;br/&gt; {3,number,integer}. திரையில் எங்கேனும் செல்ல விரலை நகர்த்தவும்&lt;br/&gt; {4,number,integer}. பெரிதாக்குவதை நிறுத்த விரலைத் திரையிலிருந்து எடுக்கவும்"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;பெரிதாக்க:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. பெரிதாக்கலைத் தொடங்க, ஷார்ட்கட் பயன்படுத்தவும்&lt;br/&gt; {1,number,integer}. திரையைத் தட்டவும்&lt;br/&gt; {2,number,integer}. திரையில் எங்கேனும் நகர்த்த 2 விரல்களால் இழுக்கவும்&lt;br/&gt; {3,number,integer}. அளவை மாற்ற 2 விரல்களால் பின்ச் செய்யவும்&lt;br/&gt; {4,number,integer}. பெரிதாக்கலை நிறுத்த, ஷார்ட்கட் பயன்படுத்தவும்&lt;br/&gt;&lt;br/&gt; தற்காலிகமாகப் பெரிதாக்கலாம், பலவற்றைச் செய்யலாம்."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;பெரிதாக்க:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. பெரிதாக்கலைத் தொடங்க, ஷார்ட்கட் பயன்படுத்தவும்&lt;br/&gt; {1,number,integer}. திரையைத் தட்டவும்&lt;br/&gt; {2,number,integer}. திரையில் எங்கேனும் நகர்த்த 1 அல்லது 2 விரல்களால் இழுக்கவும்&lt;br/&gt; {3,number,integer}. அளவை மாற்ற 2 விரல்களால் பின்ச் செய்யவும்&lt;br/&gt; {4,number,integer}. பெரிதாக்கலை நிறுத்த, ஷார்ட்கட் பயன்படுத்தவும்&lt;br/&gt;&lt;br/&gt; தற்காலிகமாகப் பெரிதாக்கலாம், பலவற்றைச் செய்யலாம்."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"’பெரிதாக்கல்’ அம்சம் ஆன் செய்யப்பட்டுள்ளபோது திரையைப் பெரிதாக்கிப் பார்க்கலாம்.\n\n"<b>"அதற்கு "</b>", இந்த அம்சத்தைத் தொடங்கி திரையில் எங்கு வேண்டுமானாலும் தட்டவும்.\n"<ul><li>"ஸ்க்ரோல் செய்ய இரண்டு அல்லது மேற்பட்ட விரல்களில் இழுக்கவும்"</li>\n<li>"அளவை மாற்ற இரண்டு அல்லது மேற்பட்ட விரல்களில் பின்ச் செய்யவும்"</li></ul>\n\n<b>"தற்காலிகமாகப் பெரிதாக்க"</b>", இந்த அம்சத்தைத் தொடங்கி திரையில் எங்கு வேண்டுமானாலும் தொட்டுப் பிடிக்கவும்.\n"<ul><li>"திரையில் எங்கு வேண்டுமானாலும் செல்ல இழுக்கவும்"</li>\n<li>"சிறிதாக்க விரல்களால் பின்ச் செய்து மேலே இழுக்கவும்"</li></ul>\n\n"கீபோர்டிலோ வழிசெலுத்தல் பட்டியையோ பெரிதாக்க இயலாது."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"பக்கம் <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> / <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"அணுகல்தன்மை பட்டனுக்கான ஷார்ட்கட்"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"திரையின் கீழிருந்து மேலாக 2 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற, திரையின் கீழ்ப்பகுதியில் இருந்து 2 விரல்களால் ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"திரையின் கீழிருந்து மேலாக 3 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற, 3 விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{திரையின் கீழிருந்து மேல்நோக்கி ஸ்வைப் செய்யுங்கள். அம்சங்களுக்கு இடையே மாற, மேல்நோக்கி ஸ்வைப் செய்து பிடியுங்கள்.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"இரண்டு விரல்களால் திரையை இருமுறை தட்டுதல்"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"திரையில் %1$d முறை விரைவாகத் தட்டுங்கள். இது உங்கள் சாதனத்தின் வேகத்தைக் குறைக்கக்கூடும்."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d விரல்களால் இருமுறை தட்டுதல்"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"இரண்டு விரல்களால் திரையில் {0,number,integer} முறை விரைவாகத் தட்டுங்கள்"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"திரையில் மூன்று முறை தட்டுதல்"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"மூன்று முறை தட்டுதல்"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"திரையை விரைவாக {0,number,integer} முறை தட்டவும். இந்த ஷார்ட்கட் உங்கள் சாதனத்தின் வேகத்தைக் குறைக்கக்கூடும்"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"மேம்பட்டவை"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"அணுகல்தன்மை பட்டன், <xliff:g id="SERVICE">%1$s</xliff:g> என்பதற்கு அமைக்கப்பட்டுள்ளது. பெரிதாக்குதலைப் பயன்படுத்த, அணுகல்தன்மை பட்டனைத் தொட்டுப் பிடித்து, பெரிதாக்குதலைத் தேர்ந்தெடுக்கவும்."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"இந்த அணுகல்தன்மை சைகை <xliff:g id="SERVICE">%1$s</xliff:g> சேவைக்கு அமைக்கப்பட்டுள்ளது. பெரிதாக்க திரையின் கீழிருந்து மேலே இரண்டு விரல்களால் ஸ்வைப் செய்துப் பிடிக்கவும். பிறகு \'பெரிதாக்குதல்\' என்பதைத் தேர்வுசெய்யவும்."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"இந்தச் சேவை சரியாகச் செயல்படவில்லை."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"அணுகல்தன்மை ஷார்ட்கட்கள்"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"விரைவு அமைப்புகளில் காட்டு"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"சிவப்பு-பச்சை"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"சிவப்பு-பச்சை"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"சிவப்பு-பச்சை, பச்சை நிறக்குறைபாடு"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"சிவப்பு-பச்சை, சிவப்பு நிறக்குறைபாடு"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"நீலம்-மஞ்சள்"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"கிரே ஸ்கேல்"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"வண்ணத்தின் அடர்த்தி"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"இளஞ்சிவப்பு, டியூட்டரானாமலி"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"இளம்பச்சை, புரோட்டனாமலி"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"கிரேஸ்கேல் பயன்முறையில் அல்லது கலர் கரெக்‌ஷன் முடக்கப்பட்டுள்ளபோது கிடைக்காது"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"டியூட்டரானோமலி"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"பிரோடனோமலி"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ட்ரைடானோமலி"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"மிகக் குறைவான வெளிச்சம்"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"திரையின் வெளிச்சத்தை மிகவும் குறைத்தல்"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"சியான்"</string>
     <string name="color_yellow" msgid="5957551912912679058">"மஞ்சள்"</string>
     <string name="color_magenta" msgid="8943538189219528423">"மெஜந்தா"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"உங்கள் சாதனத்தை முழுமையாகக் கட்டுப்படுத்த <xliff:g id="SERVICE">%1$s</xliff:g> சேவையை அனுமதிக்கவா?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> செய்வது:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"அனுமதிக் கோரிக்கையை ஆப்ஸ் மறைப்பதால், அமைப்புகளால் உங்கள் பதிலைச் சரிபார்க்க முடியாது."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"இந்தச் சாதனத்திற்கான முழுக் கட்டுப்பாட்டையும் <xliff:g id="SERVICE">%1$s</xliff:g> கோருகிறது. இந்தச் சேவை உங்கள் திரையில் தோன்றுவதைப் படித்து, பயனர்களுக்குத் தேவையான அணுகல்களைப் பெற அவர்களின் சார்பில் செயல்படும். இப்போதுள்ள கட்டுப்பாடு பெரும்பாலான ஆப்ஸுக்குப் பொருந்தவில்லை."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"அணுகல்தன்மை அம்சங்களைக் கொண்டு உங்களுக்கு உதவக்கூடிய ஆப்ஸுக்கு முழுக் கட்டுப்பாட்டையும் அளிப்பது பொருத்தமாக இருக்கும், ஆனால் பெரும்பாலான ஆப்ஸுக்கு இது தேவையில்லை."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"திரையைப் பார்த்தலும் நிர்வகித்தலும்"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"இந்த அம்சத்தால் திரையில் உள்ள அனைத்தையும் படிக்க முடிவதோடு பிற ஆப்ஸின் மேல் உள்ளடக்கத்தைக் காட்டும்."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"செயல்பாடுகளைப் பார்த்தலும் செயல்படுத்தலும்"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ஏதேனும் ஆப்ஸ் அல்லது வன்பொருள் சென்சாரின் உதவியுடன் உரையாடல்களைக் கண்காணித்து உங்கள் சார்பாக ஆப்ஸுடன் உரையாட இச்சேவையால் இயலும்."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"அனுமதி"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"நிராகரி"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"முடக்கு"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{எதுவுமில்லை}=1{1 திட்டமிடல் அமைக்கப்பட்டுள்ளது}other{# திட்டமிடல்கள் அமைக்கப்பட்டுள்ளன}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"தொந்தரவு செய்யாதே"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"முன்னுரிமைப் பயன்முறைகள்"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"பயன்முறையைச் சேர்"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"உறக்கம், வேலை, வாகனம் ஓட்டுதல் மற்றும் பிற செயல்பாடுகளுக்கான பயன்முறைகளின் மூலம் கவனச்சிதறல்களைக் குறைத்து நீங்கள் மேற்கொள்ளும் செயலில் முழு கவனத்தையும் செலுத்தலாம்."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"உங்கள் சொந்தப் பயன்முறையை உருவாக்குங்கள்"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"முக்கியமான நபர்கள் மற்றும் ஆப்ஸிலிருந்து மட்டும் அறிவிப்புகளைப் பெறுங்கள்"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"திட்ட அட்டவணையை அமை"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"இவற்றின் அடிப்படையில் திட்டமிடுங்கள்"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"நாளும் நேரமும்"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"வாரநாட்களில் காலை 9 மணி முதல் மாலை 5 மணி வரை\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"கேலெண்டர் நிகழ்வுகள்"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} செயலில் உள்ளது}=2{{mode_1} மற்றும் {mode_2} செயலில் உள்ளன}=3{{mode_1}, {mode_2} மற்றும் {mode_3} செயலில் உள்ளன}other{{mode_1}, {mode_2} மற்றும் கூடுதலாக # பயன்முறைகள் செயலில் உள்ளன}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 பயன்முறை தானாக இயங்கலாம்}other{# பயன்முறைகள் தானாக இயங்கலாம்}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ஆன்"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"அமைக்கப்படவில்லை"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"பயன்முறையை உருவாக்குதல்"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"பிரத்தியேகம்"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"இப்போது இயக்கு"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"முடக்கு"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"பயன்முறையைக் கண்டறிய முடியவில்லை"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"குறுக்கீடுகளைக் குறைத்தல்"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"இடையூறுகளையும் கவனச்சிதறல்களையும் தடைசெய்யலாம்"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> ஐ அமை"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"தொந்தரவு செய்ய வேண்டாம் என்பதை ஆன் செய்யும்"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"அலாரங்களும் மீடியா ஒலிகளும் குறுக்கிட முடியும்"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"நேர அட்டவணைகள்"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"திட்டமிட்டவைகளை நீக்கு"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"நீக்கு"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"பெயர் மாற்று"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"நீக்கு"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" பயன்முறையை நீக்கவா?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"மாற்று"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"திட்டமிடல்"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"திட்ட அட்டவணை"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"தானாகவே இயக்குதல்"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"கேலெண்டரைச் சேருங்கள்"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"உங்கள் கேலெண்டரைப் பயன்படுத்துங்கள்"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"திட்டமிடுதல்"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"திட்ட அட்டவணையை அமையுங்கள்"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"எப்போது தானாகவே இயக்குவது"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"நிகழ்வு அட்டவணை"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"நிகழ்வுகளின் போது இயக்குங்கள்"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"அழைப்புக்கான பதிலுள்ள இடத்தில்"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"நேரத் திட்ட அட்டவணை"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"திட்டமிடுங்கள்"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ம.நே <xliff:g id="MINUTES">%2$d</xliff:g> நிமி"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"நேர அட்டவணை"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"ஒலியுடன் உள்ள குறுக்கீடுகளை அனுமதி"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"விஷுவல் குறுக்கீடுகளைத் தடு"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"விஷுவல் சிக்னல்களை அனுமதி"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"உங்களுக்கு வரும் அறிவிப்புகள்"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"கூடுதல் செயல்கள்"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"அறிவிப்பு ஃபில்டர்கள்"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"கூடுதல் அமைப்புகள்"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ஆஃப்}=1{ஆஃப் / 1 பயன்முறை தானாக ஆன் ஆகலாம்}other{ஆஃப் / # பயன்முறைகள் தானாக ஆன் ஆகலாம்}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"டிஸ்பிளே அமைப்புகள்"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"டிஸ்பிளே விருப்பங்கள்"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"கிரேஸ்கேல்"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"டார்க் தீமினை இயக்கு"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"டார்க் பின்னணியில் பிரகாசமான வார்த்தைகளைப் பார்ப்பதற்கு ஏற்றவாறு OS மற்றும் ஆப்ஸை மாற்றவும். இது கண்களுக்கான சிரமத்தைக் குறைக்கலாம் மற்றும் சில சாதனங்களில் கணிசமான பேட்டரி சேமிப்பையும் வழங்கலாம்."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{டிஸ்பிளே மாற்றங்கள் இல்லை}=1{{effect_1}}=2{{effect_1} மற்றும் {effect_2}}=3{{effect_1}, {effect_2} மற்றும் {effect_3}}other{{effect_1}, {effect_2}, மேலும் #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"எவை உங்களுக்கு அறிவிப்புகளை வழங்கலாம் என்பதைக் கட்டுப்படுத்தலாம்"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"அறிவிப்புகள் எதுவும் ஃபில்டர் செய்யப்படவில்லை"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ஃபில்டர் செய்யப்பட்ட அறிவிப்புகளுக்கான டிஸ்பிளே விருப்பங்கள்"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"’தொந்தரவு செய்ய வேண்டாம்’ ஆனில் இருக்கும்போது"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"அறிவிப்புகள் வரும்போது ஒலியெழுப்ப வேண்டாம்"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"அறிவிப்பைத் திறக்கும்"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"அறிவிப்புகளை ஸ்னூஸ் செய்ய அனுமதி"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ஆப்ஸ் ஐகானில் அறிவிப்பு புள்ளி"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"அறிவிப்புத் தொகுப்புகள்"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"குமிழ்கள்"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"குமிழ்கள்"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"இந்த உரையாடலைக் குமிழாக்கு"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"சூழல்சார் அறிவிப்புகள்"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"சூழல்சார் அறிவிப்புகளைப் பயன்படுத்துதல்"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"குறுகிய காலத்தில் பல அறிவிப்புகளைப் பெறும்போது, இரண்டு நிமிடங்கள் வரை ஒலியளவையும் திரையில் தோன்றும் பாப்-அப்களையும் உங்கள் மொபைல் குறைக்கும். அழைப்புகள், அலாரங்கள், முக்கியமான உரையாடல்கள் ஆகியவற்றுக்குத் தொடர்ந்து அதிர்வுறும், ஒலி எழுப்பும் அல்லது அவற்றைத் திரையில் காட்டும். மேலும் அனைத்து அறிவிப்புகளையும் திரையின் மேல் பகுதியில் இருந்து கீழே இழுக்கும்போது எளிதாகக் கண்டறியலாம்."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"பணிக் கணக்கு ஆப்ஸுக்குப் பயன்படுத்தும்"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR உதவிச் சேவைகள்"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"வகைகள்"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"மற்றவை"</string>
     <string name="no_channels" msgid="4716199078612071915">"இந்த ஆப்ஸ் எந்த அறிவிப்புகளையும் இடுகையிடவில்லை"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"பயன்படுத்தப்படாத வகைகளைக் காட்டு"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ஆப்ஸில் உள்ள கூடுதல் அமைப்புகள்"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"பயன்படுத்தப்படாத வகைகளைக் காட்டு"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"பயன்படுத்தப்படாத வகைகளை மறை"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"உரையாடல்கள்"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"அனைத்து உரையாடல்களும்"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"அனைத்து உரையாடல்களும்"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"முன்னுரிமை அளிக்கப்பட்ட உரையாடல்கள்"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"முக்கியமான உரையாடல்கள்"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ஏதுமில்லை"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"குறுக்கிட முடிகின்ற ஆப்ஸ்"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"தேர்ந்தெடுக்கப்பட்ட ஆப்ஸ்"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"எதுவுமில்லை"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"அனைத்தும்"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{எந்த ஆப்ஸும் குறுக்கிட முடியாது}=1{{app_1} குறுக்கிட முடியும்}=2{{app_1}, {app_2} ஆகியவை குறுக்கிட முடியும்}=3{{app_1}, {app_2}, {app_3} ஆகியவை குறுக்கிட முடியும்}other{{app_1}, {app_2} மற்றும் # ஆப்ஸ் குறுக்கிட முடியும்}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (பணி)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"கணக்கிடுகிறது…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ஆப்ஸை மீறிச் செயல்பட அனுமதிக்கின்றன"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"குறுக்கிட முடிகின்ற ஆப்ஸ்"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"கூடுதல் ஆப்ஸைத் தேர்ந்தெடுங்கள்"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"மீண்டும் மீண்டும் அழைப்பவர்கள் குறுக்கிடலாம்"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"அனைவரும் குறுக்கிட முடியும்"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"மீண்டும் மீண்டும் அழைப்பவர்கள்"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"மீண்டும் அழைப்பவர்களை அனுமதி"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} வரை ஒரு மணிநேரத்திற்கு மட்டும் அலாரங்கள் என மாற்றும்}other{{time} வரை # மணிநேரத்திற்கு மட்டும் அலாரங்கள் என மாற்றும்}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> வரை அலாரங்கள் மட்டும் என மாற்று"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"எப்போதும் குறுக்கிடு என மாற்று"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"பெயர் மாற்று"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"ஐகானை மாற்று"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"ஐகானை மாற்றுதல்"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"திருத்துதல் பயன்முறை"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"பயன்முறை உருவாக்குதல்"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"பிரத்தியேகப் பயன்முறை"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"பயன்முறையின் பெயர்"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"கேலெண்டர் நிகழ்வுகள்"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"உறக்கநேர வழக்கம்"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"வாகனம் ஓட்டும்போது"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ஆப்ஸ் அமைப்புகள்"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ஆப்ஸில் உள்ள தகவல்களும் அமைப்புகளும்"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"நிர்வகிப்பது: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ஐ முடக்கவா?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"முடக்கப்பட்டதும் இந்தப் பயன்முறை இயக்கப்படாது"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"முடக்கு"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> ஐ இயக்கவா?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"இந்தப் பயன்முறை அதன் அமைப்புகளின் அடிப்படையில் தானாகவே இயக்கப்படக்கூடும்"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"இயக்கு"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"வழக்கமான திட்ட அட்டவணையைப் பின்பற்றும் பயன்முறையை அமைத்தல்"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"கேலெண்டர் நிகழ்வுகள் மற்றும் அழைப்புப் பதில்களுடன் ஒத்திசைக்க பயன்முறையை அமைத்தல்"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"அமைதியான உறக்க வழக்கத்தை வடிவமைத்தல். அலாரங்களை அமைத்தல், திரையின் வெளிச்சத்தைக் குறைத்தல், அறிவிப்புகளைத் தடைசெய்தல்."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"கவனமாகவும் கவனச்சிதறல் இல்லாமல் வாகனம் ஓட்டுவதற்கும் சாலையில் பாதுகாப்பிற்கு முன்னுரிமை அளித்தல்"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"எச்சரிக்கும்"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"மூடுக"</string>
     <string name="device_feedback" msgid="5351614458411688608">"சாதனம் பற்றி கருத்தை அனுப்புக"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"சார்ஜ் செய்யும் பெட்டி"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"பேட்டரி"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"அமைப்புகளுக்கான பேனல்"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"கட்டாய டெஸ்க்டாப் பயன்முறை"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"இரண்டாம்நிலை திரைகளில் \'கட்டாயப் பரிசோதனை டெஸ்க்டாப்\' பயன்முறை"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"குறிப்பிட்ட வடிவமில்லாத சாளரங்களை இயக்குதல்"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"இரண்டாம் திரையில் வடிவமற்ற சாளரங்களை இயக்குதல்"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"அளவு மாற்ற இயலாதவற்றைப் பல சாளரத்தில் இயக்கு"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"அளவு மாற்ற இயலாத ஆப்ஸைப் பல சாளரத்தில் இயக்க அனுமதிக்கும்"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"force-dark அம்சத்தை மீறிச் செயல்படுதல்"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"மொபைல் டேட்டா"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"சாதன அனுபவத்தை மேம்படுத்த, வைஃபை ஆஃப் செய்யப்பட்டிருந்தாலும்கூட எந்த நேரத்திலும் ஆப்ஸும் சேவைகளும் வைஃபை நெட்வொர்க்குகளைத் தேடலாம். உதாரணத்திற்கு, இருப்பிடம் சார்ந்த அம்சங்களையும் சேவைகளையும் மேம்படுத்த இதைப் பயன்படுத்தலாம். வைஃபை \'ஸ்கேனிங் அமைப்புகளில்\' இதை மாற்றிக் கொள்ளலாம்."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"மாற்று"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"இணைக்கப்பட்டது"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"தற்காலிகமாக இணைக்கப்பட்டுள்ளது"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"<xliff:g id="SUBNAME">%1$s</xliff:g> ஐத் தற்காலிகமாகப் பயன்படுத்துகிறது"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ஆப்ஸைப் பின் செய்தல் அம்சத்தைப் பயன்படுத்துதல்"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"டெவெலப்பர் விருப்பங்களைப் பயன்படுத்துதல்"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"பிரிண்ட் சேவையைப் பயன்படுத்துதல்"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"பல பயனர்களை அனுமதித்தல்"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"பயனர் மாற்றத்தை அனுமதித்தல்"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"அனுமதி, ஒன்றுக்கும் மேற்பட்ட, பயனர், அனுமதித்தல், பல"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"பல, பயனர்கள், சுயவிவரங்கள், நபர்கள், கணக்குகள், சுவிட்ச், பல"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"வைஃபை பிழைதிருத்தத்தைப் பயன்படுத்துதல்"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"உங்கள் டேப்லெட் டாக் செய்யப்பட்டிருக்கும்போது திரையில் என்ன காட்டப்பட வேண்டும் என்பதைத் தேர்வுசெய்யலாம். ஸ்கிரீன் சேவரைப் பயன்படுத்தும்போது உங்கள் சாதனம் அதிக பேட்டரியைப் பயன்படுத்தக்கூடும்."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"தனிப்பயனாக்கு"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> ஐப் பிரத்தியேகமாக்கும்"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"குறிப்பிட்ட வடிவமில்லாத சாளரங்களுக்கான ஆதரவை இயக்க சாதனத்தை மீண்டும் தொடங்கவும்."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"இரண்டாம் நிலைத் திரையில் டெஸ்க்டாப் பயன்முறையைப் பயன்படுத்த, சாதனத்தை மீண்டும் தொடங்குதல் அவசியம்."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"அளவு மாற்றத்தக்க சாளரத்திற்கான ஆதரவை இயக்க சாதனத்தை மறுபடி தொடங்க வேண்டும்."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"குறிப்பிட்ட வடிவமில்லாத சாளரங்களின் கிடைக்கும்நிலையைப் புதுப்பிக்க சாதனத்தை மறுபடி தொடங்க வேண்டும்."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"இரண்டாம்நிலைத் திரைகளில் குறிப்பிட்ட வடிவமில்லாத சாளரங்களை இயக்க சாதனத்தை மறுபடி தொடங்க வேண்டும்."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"இப்போதே மீண்டும் தொடங்கு"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"பிறகு மீண்டும் தொடங்கு"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"சுற்றிலும் கேட்கும் ஆடியோ"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ரோஜா"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"மெஜந்தா"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ஊதா"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"முடிந்தது"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"சேமி"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ரத்துசெய்"</string>
     <string name="contrast_default" msgid="8918545965525226966">"இயல்பு"</string>
     <string name="contrast_medium" msgid="384414510709285811">"நடுத்தரம்"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"இயக்கப்பட்டுள்ளது"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"முடக்கப்பட்டுள்ளது"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"இயக்கப்பட்டுள்ளது"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ஆடியோ %1$d%% இடது, %2$d%% வலது"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ஆடியோ %1$d%% வலது, %2$d%% இடது"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"நீங்கள் நிறுவிய ஆப்ஸால் உங்கள் சாதனத்தின் பெயரைப் பார்க்க முடியும். புளூடூத் சாதனங்கள், வைஃபை நெட்வொர்க் ஆகியவற்றுடன் இணைக்கும்போதோ வைஃபை ஹாட்ஸ்பாட்டை அமைக்கும்போதோ அப்பெயர் பிறருக்கும் காட்டப்படக்கூடும்."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"இலக்கணப் பாலினம்"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"இலக்கணப் பாலினத்தைத் தேர்ந்தெடுத்தல்"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ஸ்ட்ரீமைக் கேளுங்கள்"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> மூலம் கேட்க ஆடியோ ஸ்ட்ரீமின் QR குறியீட்டை ஸ்கேன் செய்யுங்கள்"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"பகிரும்போது கடவுச்சொல்லை மாற்ற முடியாது. கடவுச்சொல்லை மாற்ற, முதலில் ஆடியோ பகிர்வை முடக்கவும்."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR குறியீடு ஸ்கேனர்"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"அமைப்புகளைத் தேடுங்கள்"</string>
 </resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 2ed3864..25e69d0 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"నిద్రించే సమయం"</item>
-    <item msgid="4152450357280759894">"డ్రైవింగ్"</item>
-    <item msgid="7096549258219399423">"లీనమయ్యే"</item>
-    <item msgid="2760716776980432977">"మేనేజ్ చేయబడిన ఇమేజ్‌లు"</item>
-    <item msgid="601734478369121764">"స్టార్ పెట్టండి"</item>
-    <item msgid="6243809315432780521">"క్యాలెండర్"</item>
-    <item msgid="4913577903148415331">"సమయం"</item>
-    <item msgid="3653377604690057780">"థియేటర్"</item>
-    <item msgid="3843711267408385410">"పువ్వు"</item>
+    <item msgid="2750940760340557109">"అర్ధ చంద్రాకారం"</item>
+    <item msgid="8513969636586738035">"కారు"</item>
+    <item msgid="957392343846370509">"వ్యక్తి మైండ్"</item>
+    <item msgid="6734164279667121348">"క్యాలెండర్"</item>
+    <item msgid="4139559120353528558">"గడియారం"</item>
+    <item msgid="5157711296814769020">"బీచ్ గొడుగు"</item>
+    <item msgid="6635328761318954115">"టెంట్"</item>
+    <item msgid="1711994778883392255">"ఫిల్మ్ రీల్"</item>
+    <item msgid="9097658401859604879">"గేమ్ కంట్రోలర్"</item>
+    <item msgid="755931364157422565">"జిమ్ డంబెల్"</item>
+    <item msgid="8894207806795738429">"బంతిని విసిరేస్తున్న వ్యక్తి"</item>
+    <item msgid="2274801572149555103">"కికింగ్ చేస్తున్న వ్యక్తి"</item>
+    <item msgid="8795037201506843325">"స్విమ్మింగ్"</item>
+    <item msgid="3558421426169430451">"హైకింగ్ చేస్తున్న వ్యక్తి"</item>
+    <item msgid="7455070421232184932">"గోల్ఫ్"</item>
+    <item msgid="5841773092449126508">"వర్క్‌షాప్ టూల్స్"</item>
+    <item msgid="4595330511709890409">"బ్రీఫ్‌కేస్"</item>
+    <item msgid="8352738347856724389">"స్టార్ పెట్టినవి"</item>
+    <item msgid="7082783098151998721">"తామర పువ్వు"</item>
+    <item msgid="5772220259409264724">"సూపర్‌వైజర్"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 7d41e46..9c8a15d 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"తాత్కాలికంగా రద్దు చేయబడింది"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"తెలియదు"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"ప్రివ్యూ"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR కోడ్"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"చిన్నదిగా చేస్తుంది"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"పెద్దదిగా చేస్తుంది"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ఎల్లప్పుడూ యాక్టివ్‌గా ఉంచండి"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"వినికిడి పరికర సెట్టింగ్‌లు"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"షార్ట్‌కట్, వినికిడి పరికరంతో అనుకూలత"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ప్రీసెట్"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"మీ ఆడియాలజిస్ట్ ప్రోగ్రామ్ చేసిన ప్రీసెట్‌లు ఏవీ లేవు"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"ప్రీసెట్‌ను అప్‌డేట్ చేయడం సాధ్యపడలేదు"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"ఆడియో అవుట్‌పుట్"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"ఆడియో అవుట్‌పుట్ గురించి"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"ఈ యాప్ కోసం భాష ఎంపిక సెట్టింగ్‌లలో అందుబాటులో లేదు."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"యాప్‌లో అందుబాటులో ఉన్న భాషలకు భాష భిన్నంగా ఉండవచ్చు. కొన్ని యాప్‌లు ఈ సెట్టింగ్‌కు సపోర్ట్ చేయకపోవచ్చు."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ఒక్కో యాప్‌నకు ఒక్కో భాషను సెట్ చేయండి."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"మీ ప్రాధాన్య భాషల్లో సపోర్ట్ ఉన్న వాటి నుంచి మొదటి భాషను మీ సిస్టమ్, యాప్‌లు, వెబ్‌సైట్‌లు ఉపయోగిస్తాయి."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"మీ ప్రాధాన్య భాషల లిస్ట్ నుండి సపోర్ట్ చేసే మొదటి భాషను మీ పరికరం, సిస్టమ్, యాప్‌లు, వెబ్‌సైట్‌లు ఉపయోగిస్తాయి.\n\nచాలా యాప్‌లు తేదీలను, నంబర్‌లను, యూనిట్‌లను ఫార్మాట్ చేయడానికి మీ ప్రాధాన్య భాష నుండి ప్రాంతాన్ని కూడా ఉపయోగిస్తాయి. మీ ప్రాంతాన్ని మార్చడానికి, భాషను జోడించి, ఆపై మీ ప్రాధాన్య ప్రాంతాన్ని ఎంచుకోండి."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ప్రతి యాప్ కోసం భాషను ఎంచుకోవడానికి, యాప్ భాష సెట్టింగ్‌లకు వెళ్లండి."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"యాప్ భాషల గురించి మరింత తెలుసుకోండి"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"సిస్టమ్ భాషను %s‌కు మార్చాలా?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ఆఫ్"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ఆన్‌లో ఉంది / # యాప్‌నకు లొకేషన్‌కు యాక్సెస్ ఉంది}other{ఆన్‌లో ఉంది / # యాప్‌లకు లొకేషన్‌కు యాక్సెస్ ఉంది}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"లోడ్ చేస్తోంది…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"సమీపంలోని పరికరాలను యాక్సెస్ చేసే అనుమతి గల యాప్‌లు, కనెక్ట్ అయిన పరికరాలు ఎంత దూరంలో ఉన్నాయో తెలుసుకోగలవు."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"సమీప పరికరాల అనుమతి ఉన్న యాప్‌లు కనెక్ట్ అయిన పరికరాల అంచనా స్థానాన్ని నిర్ణయించగలవు."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"యాప్‌లు, సర్వీస్‌లకు లొకేషన్ యాక్సెస్ ఆఫ్ చేయబడింది. మీరు ఎమర్జెన్సీ నంబర్‌కు కాల్ చేసినా లేదా SMS పంపినా, అత్యవసర సమయాలలో స్పందించే వారికి ఆటోమేటిక్‌గా మీ పరికర లొకేషన్ పంపబడుతుంది."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"లొకేషన్ సెట్టింగ్‌ల గురించి మరింత తెలుసుకోండి"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"మార్చడానికి ChromeOS సెట్టింగ్‌లు &gt; గోప్యత, సెక్యూరిటీ &gt; గోప్యతా కంట్రోల్స్‌ను &gt; లొకేషన్ యాక్సెస్‌కు వెళ్లండి"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ముఖం, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ముఖం, వేలిముద్ర, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ముఖం, వేలిముద్రలు, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"రిమోట్ ప్రామాణీకరణదారు అన్‌లాక్"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"వాచ్ జోడించబడింది"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"మీ వాచ్‌ను సెటప్ చేయండి"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"వాచ్ అన్‌లాక్ గురించి మరింత తెలుసుకోండి"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"వాచ్‌ను జోడించండి"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"వాచ్‌ను తీసివేయండి"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"వేలిముద్ర &amp; ఫేస్ అన్‌లాక్"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"ఫేస్ &amp; వేలిముద్ర అన్‌లాక్"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"వర్క్ ప్రొఫైల్ కోసం ముఖం &amp; వేలిముద్ర అన్‌లాక్"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"సెటప్ అవసరం"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"ముఖం, వేలిముద్రలు జోడించబడ్డాయి"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"ప్రైవేట్ స్పేస్ సెటప్ ప్రోగ్రెస్‌లో ఉంది…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"ప్రైవేట్ స్పేస్‌ను సెటప్ చేయడం సాధ్యపడలేదు"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"మళ్లీ ట్రై చేయండి"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"నిష్క్రమించండి"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"ప్రైవేట్ స్పేస్ అందుబాటులో లేదు.\nసంబంధిత కారణాలను చూడండి"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"సంబంధిత కారణాలను చూడండి"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"ప్రైవేట్ స్పేస్ కోసం కొత్త లాక్‌ను ఎంచుకోవాలా?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"కేవలం ప్రైవేట్ స్పేస్ కోసం మీరు కొత్త లాక్‌ను సెట్ చేయవచ్చు, లేదా మీ పరికరాన్ని అన్‌లాక్ చేయడానికి మీరు ఉపయోగించే అదే లాక్‌ను ఉపయోగించవచ్చు"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"స్క్రీన్ లాక్‌ను ఉపయోగించండి"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"పరికరాన్ని రీస్టార్ట్ చేయాలా?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"వివరణాత్మక NFC లాగింగ్ అనేది, యాప్ డెవలప్‌మెంట్ ప్రయోజనాల కోసం మాత్రమే ఉద్దేశించబడింది. బగ్ రిపోర్ట్‌లలో అదనపు NFC డేటా చేర్చబడుతుంది, ఇందులో ప్రైవేట్ సమాచారం ఉండవచ్చు. ఈ సెట్టింగ్‌ను మార్చడానికి మీ పరికరాన్ని రీస్టార్ట్ చేయండి."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"రీస్టార్ట్ చేయండి"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"ఆన్ అయింది"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ఆఫ్ అయింది"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"ఎక్స్‌టర్నల్ డిస్‌ప్లే"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ఎక్స్‌టర్నల్ డిస్‌ప్లేను ఉపయోగించండి"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"డిస్‌ప్లే రిజల్యూషన్"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ఎక్స్‌టర్నల్ డిస్‌ప్లే డిస్‌కనెక్టయింది"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"రొటేషన్"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"స్టాండర్డ్"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"రొటేషన్‌ను లేదా రిజల్యూషన్‌ను మార్చడం వలన, ప్రస్తుతం రన్ అవుతున్న యాప్‌లు ఏవైనా ఉంటే, అవి ఆపివేయబడవచ్చు"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"మీ స్క్రీన్‌ను మిర్రర్ చేయాలంటే, మీ పరికరం తప్పనిసరిగా ఎక్స్‌టర్నల్ డిస్‌ప్లేకు కనెక్ట్ చేసి ఉండాలి"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"మరిన్ని ఆప్షన్‌లు"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"ప్రసారం చేయండి"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"మిర్రర్"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"వైర్‌లెస్ ప్రదర్శనను ప్రారంభించండి"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"అనుకూలం"</string>
     <string name="brightness" msgid="6216871641021779698">"ప్రకాశం స్థాయి"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"పరిసర అనుకూల ప్రకాశం"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"పరిసర అనుకూల ప్రకాశం గురించి పరిచయం"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"మీ స్క్రీన్ బ్రైట్‌నెస్, ఆటోమేటిక్‌గా మీ పరిసరాల‌కు, యాక్టివిటీలకు అనుగుణంగా అడ్జస్ట్ అవుతుంది. మీ ప్రాధాన్యతలను అర్థం చేసుకోవడంలో అనుకూల ప్రకాశానికి సహాయపడటం కోసం స్లయిడర్‌ను మీరు మాన్యువల్‌గా లాగవచ్చు."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"ఆన్"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ఆఫ్"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ఆప్షన్‌లు"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"యాక్సెసిబిలిటీ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"భౌతిక కీబోర్డ్"</string>
-    <string name="show_ime" msgid="4334255501724746849">"స్క్రీన్‌పై కీబోర్డ్‌ను ఉపయోగించండి"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"ఫిజికల్ కీబోర్డ్ యాక్టివ్‌గా ఉన్నప్పుడు దీన్ని స్క్రీన్‌పై ఉంచుతుంది"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"బౌన్స్ కీలు"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"ఏదైనా ఒక కీని <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> మిల్లీ సెకన్ల లోపు తిరిగి నొక్కితే కీబోర్డ్ దాన్ని విస్మరిస్తుంది"</string>
     <string name="slow_keys" msgid="2891452895499690837">"నిదానంగా పనిచేసే కీలు"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"ఒక కీని నొక్కితే, అది యాక్టివేట్ అయ్యేందుకు పట్టే సమయాన్ని <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> మిల్లీ సెకన్లకు మార్చుతుంది"</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="2396247040177734245">"మౌస్‌ను కంట్రోల్ చేయడానికి ఫిజికల్ కీబోర్డ్‌ను ఉపయోగించండి."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"పాయింటర్ ఫిల్ స్టయిల్‌ను పసుపు రంగుకి మార్చండి"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"పాయింటర్ ఫిల్ స్టయిల్‌ను గులాబీ రంగుకి మార్చండి"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"పాయింటర్ ఫిల్ స్టయిల్‌ను నీలం రంగుకి మార్చండి"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"పాయింటర్ స్ట్రోక్ స్టయిల్"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"తెలుపు రంగు"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"నలుపు రంగు"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ఏదీ వద్దు"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"టచ్‌ప్యాడ్ సంజ్ఞ గూర్చి తెలుసుకోండి"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ట్రాక్‌ప్యాడ్, ట్రాక్ ప్యాడ్, మౌస్, కర్సర్, స్క్రోల్, స్వైప్, కుడి క్లిక్, క్లిక్, పాయింటర్"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"కుడి క్లిక్, ట్యాప్"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"యూజర్ ఎంచుకున్నది: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"స్పీచ్"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"పాయింటర్ వేగం"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"పాయింటర్ స్కేల్"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"పాయింటర్ స్కేల్‌ను తగ్గించండి"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"పాయింటర్ స్కేల్‌ను పెంచండి"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"గేమ్ కంట్రోలర్"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"వైబ్రేషన్ దారి మళ్లించు"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"కనెక్ట్ చేసినప్పుడు గేమ్ కంట్రోలర్‌కు వైబ్రేషన్‌ని పంపు"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ఏదేమైనా కొనసాగించండి"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"రద్దు చేయండి"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"మ్యాగ్నిఫికేషన్ సెట్టింగ్‌లు"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ఒక వేలుతో ఫ్యాన్ చేయడం"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"మ్యాగ్నిఫయర్‌ను 1 వేలితో కదపండి"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"స్క్రీన్ చుట్టూ కదిలేందుకు 1 వేలితో లాగండి"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ఒక వేలును లాగడం ద్వారా జూమ్ ప్రాంతాన్ని తరలించండి."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"రెండు వేళ్లతో లాగడం ద్వారా జూమ్ ప్రాంతాన్ని తరలించండి."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"స్క్రీన్‌లో కొంత భాగాన్ని మాత్రమే మాగ్నిఫై చేస్తున్నప్పుడు అందుబాటులో ఉండదు"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"జూమ్ చేయడం కోసం బటన్‌ని నొక్కండి"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"కంటెంట్‌ను పెద్దదిగా చేయడానికి స్క్రీన్‌పై త్వరగా జూమ్ - ఇన్ చేయండి"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;జూమ్ చేయడానికి:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. మ్యాగ్నిఫికేషన్‌ను ప్రారంభించడానికి షార్ట్‌కట్‌ను ఉపయోగించండి&lt;br/&gt; {1,number,integer}. స్క్రీన్‌ను ట్యాప్ చేయండి&lt;br/&gt; {2,number,integer}. స్క్రీన్ చుట్టూ కదిలేందుకు 2 వేళ్లతో లాగండి&lt;br/&gt; {3,number,integer}. జూమ్ చేయడాన్ని సర్దుబాటు చేయడానికి 2 వేళ్లతో స్క్రీన్‌ను నియంత్రించండి&lt;br/&gt; {4,number,integer}. మ్యాగ్నిఫికేషన్‌ను ఆపివేయడానికి షార్ట్‌కట్‌ను ఉపయోగించండి&lt;br/&gt;&lt;br/&gt;&lt;b&gt;తాత్కాలికంగా జూమ్ చేయడానికి:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. మీ మ్యాగ్నిఫికేషన్ రకం ఫుల్ స్క్రీన్‌కు సెట్ చేయబడిందని నిర్ధారించుకోండి&lt;br/&gt; {1,number,integer}. మ్యాగ్నిఫికేషన్‌ను ప్రారంభించడానికి షార్ట్‌కట్‌ను ఉపయోగించండి&lt;br/&gt; {2,number,integer}. స్క్రీన్‌పై ఎక్కడైనా తాకి &amp; హోల్డ్ చేయండి&lt;br/&gt; {3,number,integer}. స్క్రీన్ చుట్టూ కదిలేందుకు వేలితో లాగండి&lt;br/&gt; {4,number,integer}. మ్యాగ్నిఫికేషన్‌ను ఆపివేయడానికి వేలును స్క్రీన్‌పై నుండి తీసివేయండి"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;జూమ్ - ఇన్ చేయడానికి:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. మాగ్నిఫికేషన్‌ను ప్రారంభించడానికి షార్ట్‌కట్‌ను ఉపయోగించండి&lt;br/&gt; {1,number,integer}. స్క్రీన్‌ను ట్యాప్ చేయండి&lt;br/&gt; {2,number,integer}. స్క్రీన్ చుట్టూ కదిలేందుకు 2 వేళ్లతో లాగండి&lt;br/&gt; {3,number,integer}. జూమ్ చేయడాన్ని సర్దుబాటు చేయడానికి 2 వేళ్లతో స్క్రీన్‌ను నియంత్రించండి&lt;br/&gt; {4,number,integer}. మ్యాగ్నిఫికేషన్‌ను ఆపడానికి షార్ట్‌కట్‌ను ఉపయోగించండి&lt;br/&gt;&lt;br/&gt; మీరు తాత్కాలికంగా కూడా జూమ్ - ఇన్ చేయవచ్చు, ఇంకా మరిన్ని చేయవచ్చు."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;జూమ్ - ఇన్ చేయడానికి:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. మాగ్నిఫికేషన్‌ను ప్రారంభించడానికి షార్ట్‌కట్‌ను ఉపయోగించండి&lt;br/&gt; {1,number,integer}. స్క్రీన్‌ను ట్యాప్ చేయండి&lt;br/&gt; {2,number,integer}. స్క్రీన్ చుట్టూ కదిలేందుకు 1 వేలితో లేదా 2 వేళ్లతో లాగండి&lt;br/&gt; {3,number,integer}. జూమ్ చేయడాన్ని సర్దుబాటు చేయడానికి 2 వేళ్లతో స్క్రీన్‌ను నియంత్రించండి&lt;br/&gt; {4,number,integer}. మ్యాగ్నిఫికేషన్‌ను ఆపడానికి షార్ట్‌కట్‌ను ఉపయోగించండి&lt;br/&gt;&lt;br/&gt; మీరు తాత్కాలికంగా కూడా జూమ్ - ఇన్ చేయవచ్చు, ఇంకా మరిన్ని చేయవచ్చు."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"మ్యాగ్నిఫికేషన్‌ను ఆన్ చేసినప్పుడు, మీ స్క్రీన్‌పైన దగ్గరకు జూమ్ చేయవచ్చు.\n\n"<b>"జూమ్ చేయడానికి"</b>", మ్యాగ్నిఫికేషన్‌ను ప్రారంభించి, తర్వాత స్క్రీన్‌పై ఎక్కడైనా నొక్కండి.\n"<ul><li>"స్క్రోల్ చేయడానికి 2 లేదా అంతకంటే ఎక్కువ వేళ్లతో లాగండి"</li>\n<li>"జూమ్‌ను సర్దుబాటు చేయడానికి 2 లేదా అంతకంటే ఎక్కువ వేళ్లను దగ్గరకు లేదా దూరానికి లాగండి"</li></ul>\n\n<b>"తాత్కాలికంగా జూమ్ చేయడానికి"</b>", మ్యాగ్నిఫికేషన్‌ను ప్రారంభించి, తర్వాత స్క్రీన్‌ను ఎక్కడైనా తాకి &amp; పట్టుకోండి.\n"<ul><li>"స్క్రీన్ పైన కదలడానికి లాగండి"</li>\n<li>"దూరంగా జూమ్ చేయడానికి వేలిని పైకి ఎత్తండి"</li></ul>\n\n"కీబోర్డ్‌లో లేదా నావిగేషన్ బార్‌లో మీరు దగ్గరగా జూమ్ చేయలేరు."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>లో <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>వ పేజీ"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"యాక్సెసిబిలిటీ బటన్ షార్ట్‌కట్"</string>
@@ -2149,8 +2181,6 @@
     <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>‌ను ట్యాప్ చేయండి. ఫీచర్‌ల మధ్య మారడానికి, యాక్సెసిబిలిటీ బటన్‌ను నొక్కి &amp; పట్టుకోండి."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 వేళ్లతో స్క్రీన్ దిగువ నుండి ఎగువకు స్వైప్ చేయండి.\n\nఫీచర్ల మధ్య స్విచ్ అవడానికి, 2 వేళ్లతో ఎగువకు స్వైప్ చేసి పట్టుకోండి."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"స్క్రీన్ దిగువ నుండి 3 వేళ్లతో ఎగువకు స్వైప్ చేయండి.\n\nఫీచర్ల మధ్య స్విచ్ అవడానికి, 3 వేళ్లతో ఎగువకు స్వైప్ చేసి పట్టుకోండి."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{మీ స్క్రీన్ దిగువ నుండి పైకి స్వైప్ చేయండి. ఫీచర్‌ల మధ్య మారడానికి, పైకి స్వైప్ చేసి, పట్టుకోండి.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"రెండు వేళ్లతో స్క్రీన్‌ను డబుల్-ట్యాప్ చేయండి"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"స్క్రీన్‌పై %1$d సార్లు వేగంగా ట్యాప్ చేయండి. దీని వల్ల మీ పరికరం నెమ్మదిగా పని చేయవచ్చు."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-వేలుతో డబుల్ ట్యాప్ చేయండి"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"రెండు వేళ్లతో స్క్రీన్‌ను {0,number,integer} సార్లు వేగంగా ట్యాప్ చేయండి"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"స్క్రీన్‌పై మూడు సార్లు నొక్కండి"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"మూడు సార్లు ట్యాప్ చేయండి"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"స్క్రీన్‌ను {0,number,integer} సార్లు త్వరగా ట్యాప్ చేయండి. ఈ షార్ట్‌కట్ వల్ల మీ పరికరం పనితీరు నెమ్మదించవచ్చు"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"అధునాతన సెట్టింగ్‌లు"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"యాక్సెస్ సామర్థ్య బటన్ <xliff:g id="SERVICE">%1$s</xliff:g>కు సెట్ చేయబడింది. మ్యాగ్నిఫికేషన్‌ను ఉపయోగించాలంటే, యాక్సెస్ సామర్ధ్య బటన్‌ని తాకి, ఉంచి, ఆపై మ్యాగ్నిఫికేషన్‌ను ఎంచుకోండి."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"సంజ్ఞ యాక్సెసిబిలిటీ అనేది <xliff:g id="SERVICE">%1$s</xliff:g>కు సెట్ చేయబడింది. మ్యాగ్నిఫికేషన్‌ను ఉపయోగించడానికి, రెండు వేళ్లతో స్క్రీన్‌ను కింద నుండి పైకి స్వైప్ చేసి పట్టుకోండి. ఆ తర్వాత మ్యాగ్నిఫికేషన్‌ను ఎంచుకోండి."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"ఈ సేవ పాడైంది."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"యాక్సెసిబిలిటీ షార్ట్‌కట్‌లు"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"శీఘ్ర సెట్టింగ్‌ల్లో చూపు"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"ఎరుపు-ఆకుపచ్చ రంగు"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"ఎరుపు-ఆకుపచ్చ రంగు"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"రెడ్-గ్రీన్, గ్రీన్ బలహీనంగా ఉంది"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"రెడ్-గ్రీన్, రెడ్ బలహీనంగా ఉంది"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"నీలం-పసుపు"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"గ్రేస్కేల్"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"తీవ్రత"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"బలహీనమైన ఆకుపచ్చ, డ్యూటెరానోమలీ"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"బలహీనమైన ఎరుపు, ప్రొటానోమలీ"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"గ్రేస్కేల్ మోడ్ లేదా కలర్ కరెక్షన్ డిజేబుల్ అయినప్పుడు అందుబాటులో ఉండదు"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"డ్యూటెరానోమలీ"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ప్రొటానోమలీ"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ట్రైటనోమలీ"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"ఎక్స్‌ట్రా డిమ్"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"స్క్రీన్ కాంతిని మరింత డిమ్ చేయండి"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"నీలి ఆకుపచ్చ రంగు"</string>
     <string name="color_yellow" msgid="5957551912912679058">"పసుపు రంగు"</string>
     <string name="color_magenta" msgid="8943538189219528423">"మెజెంటా"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"మీ పరికరాన్ని పూర్తిగా కంట్రోల్ చేయడానికి, <xliff:g id="SERVICE">%1$s</xliff:g>‌ను అనుమతించాలా?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ఇవి చేయాల్సి ఉంటుంది:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"అనుమతి రిక్వెస్ట్‌కు ఒక యాప్ అడ్డు తగులుతున్నందున సెట్టింగ్‌లు మీ ప్రతిస్పందనను ధృవీకరించలేకపోయాయి."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> ఈ పరికరం యొక్క పూర్తి నియంత్రణను కోరుతుంది. ఈ సేవ స్క్రీన్‌పై కనిపించే అంశాలను చదవగలదు, అదేవిధంగా వినియోగదారుల తరపున యాక్సెసిబిలిటీ చర్యలను తీసుకోగలదు. ఈ స్థాయి నియంత్రణ చాలా వ‌ర‌కు యాప్‌లకు సరికాదు."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"యాక్సెసిబిలిటీ అవసరాలు ఉన్నప్పుడు మీకు సహాయం చేయడానికి యాప్‌లకు ఫుల్‌ కంట్రోల్‌ ఇవ్వడం సమంజసమే. అయితే అన్ని యాప్‌లకు అలా కంట్రోల్ ఇవ్వడం సరికాదు."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"స్క్రీన్‌ను చూసి, కంట్రోల్ చేయగలగడం"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"స్క్రీన్‌పై ఉండే కంటెంట్‌ మొత్తాన్ని చదవగలుగుతుంది మరియు ఇతర యాప్‌లలో కూడా ఈ కంటెంట్‌ను ప్రదర్శిస్తుంది."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"చర్యలను చూసి, అమలు చేయగలగడం"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"మీరు ఒక యాప్‌‌తో చేసే ఇంటరాక్షన్‌లను లేదా హార్డ్‌వేర్ సెన్సార్‌ను ట్రాక్ చేస్తూ మీ త‌ర‌ఫున యాప్‌లతో ఇంటరాక్ట్ చేయగలదు."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"అనుమతించండి"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"వద్దు"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ఆఫ్ చేయండి"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ఏవీ లేవు}=1{1 షెడ్యూల్ సెట్ చేయబడింది}other{# షెడ్యూళ్లు సెట్ చేయబడ్డాయి}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"అంతరాయం కలిగించవద్దు"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ముఖ్యమైన ఫైల్స్ మోడ్స్"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"ఒక మోడ్‌ను జోడించండి"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"పరధ్యానాలను తగ్గించి, స్లీప్, వర్క్, డ్రైవింగ్, ఇంకా ప్రతిదానికి సంబంధించి మోడ్‌లతో మీ దృష్టిని కంట్రోల్ చేయండి."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"మీ సొంత మోడ్‌ను క్రియేట్ చేయండి"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"ముఖ్యమైన వ్యక్తులు, యాప్‌ల నుంచి వచ్చే నోటిఫికేషన్‌లను మాత్రమే అందించు"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"షెడ్యూల్‌ను సెట్ చేయండి"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"దీని ఆధారంగా షెడ్యూల్ చేయండి"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"తేదీ, సమయం"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 AM - 5 PM వారపు రోజులు\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"క్యాలెండర్ ఈవెంట్‌లు"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} యాక్టివ్‌గా ఉంది}=2{{mode_1}, {mode_2} యాక్టివ్‌గా ఉన్నాయి}=3{{mode_1}, {mode_2}, {mode_3} యాక్టివ్‌గా ఉన్నాయి}other{{mode_1}, {mode_2}, మరో # యాక్టివ్‌గా ఉన్నాయి}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 మోడ్ ఆటోమేటిక్‌గా ఆన్ అవుతుంది}other{# మోడ్‌లు ఆటోమేటిక్‌గా ఆన్ అవుతాయి}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ఆన్ అయింది"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"సెట్ చేసి లేదు"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"డిజేబుల్ చేయబడింది"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"మోడ్‌ను క్రియేట్ చేయండి"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"అనుకూలంగా మార్చు"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ఇప్పుడే ఆన్ చేయండి"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ఆఫ్ చేయండి"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"మోడ్ కనుగొనబడలేదు"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"అంతరాయాలను పరిమితం చేయండి"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"అంతరాయాలను, పరధ్యానాలను బ్లాక్ చేయండి"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g>‌ను సెటప్ చేయండి"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"అంతరాయం కలిగించవద్దును ఆన్ చేయండి"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"అలారంలు, మీడియా శబ్దాలు అంతరాయం కలిగించగలవు"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"షెడ్యూళ్లు"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"షెడ్యూళ్లను తొలగించండి"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"తొలగించండి"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"పేరుమార్చండి"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"తొలగించండి"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" మోడ్‌ను తొలగించాలా?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ఎడిట్"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"షెడ్యూళ్లు"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"షెడ్యూల్"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"ఆటోమేటిక్‌గా ఆన్ చేయండి"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"క్యాలెండర్‌ను జోడించండి"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"మీ క్యాలెండర్‌ను ఉపయోగించండి"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"షెడ్యూల్"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"షెడ్యూల్‌ను సెట్ చేయండి"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"ఆటోమేటిక్ ఎప్పుడు ఆన్ అవ్వాలి"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ఈవెంట్ షెడ్యూల్"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"ఈ ఈవెంట్‌ల సమయంలో ఆన్ చేయండి"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"ఆహ్వాన రిప్లయి ఎక్కడ ఉంది"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"టైమ్ షెడ్యూల్"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"షెడ్యూల్ చేయండి"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> గం., <xliff:g id="MINUTES">%2$d</xliff:g> నిమి."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"షెడ్యూల్"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"శబ్దాలు చేసే అంతరాయాలను అనుమతించండి"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"దృశ్య అంతరాయాలను బ్లాక్ చేయండి"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"విజిబిలిటీ సంకేతాలను అనుమతించండి"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"మిమ్మల్ని రీచ్ అవ్వగల నోటిఫికేషన్‌లు"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"అదనపు చర్యలు"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"నోటిఫికేషన్ ఫిల్టర్‌లు"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"మరిన్ని సెట్టింగ్‌లు"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ఆఫ్‌లో ఉంది}=1{ఆఫ్ / 1 మోడ్ ఆటోమేటిక్‌గా ఆన్ అవుతుంది}other{ఆఫ్ / # మోడ్‌లు ఆటోమేటిక్‌గా ఆన్ అవుతాయి}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"డిస్‌ప్లే సెట్టింగ్‌లు"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"డిస్‌ప్లే ఆప్షన్‌లు"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"గ్రేస్కేల్"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"డార్క్ థీమ్‌ను ఎనేబుల్ చేయండి"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"డార్క్ బ్యాక్‌గ్రౌండ్‌లో లైట్ టెక్స్ట్‌ కోసం OSను, యాప్‌లను మార్చండి. దీనివల్ల కంటికి హాయిగా ఉండే అవకాశం ఉంది. కొన్ని పరికరాలలో బ్యాటరీ గణనీయంగా సేవ్ అవుతుంది"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{అదనపు మార్పులు ఏవీ లేవు}=1{{effect_1}}=2{{effect_1}, {effect_2}}=3{{effect_1}, {effect_2}, {effect_3}}other{{effect_1}, {effect_2}, అలాగే మరో # ఎఫెక్ట్‌లు}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"మీరు ఏ నోటిఫికేషన్‌లను పొందాలో పరిమితి చేయండి"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"అంతరాయాలు ఏవీ ఫిల్టర్ చేయబడవు"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ఫిల్టర్ చేసిన నోటిఫికేషన్‌ల కోసం డిస్‌ప్లే ఆప్షన్‌లు"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"\'అంతరాయం కలిగించవద్దు\' మోడ్ ఆన్‌లో ఉన్నప్పుడు"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"నోటిఫికేషన్‌ల సౌండ్ రాదు"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"నోటిఫికేషన్‌ను తెరువు"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"నోటిఫికేషన్‌లను తాత్కాలికంగా ఆపివేయడాన్ని అనుమతించండి"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"యాప్ చిహ్నంపై నోటిఫికేషన్ డాట్"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"నోటిఫికేషన్ బండిల్స్"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"బబుల్స్"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"బబుల్స్"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"ఈ సంభాషణను బబుల్ చేయండి"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"అనుకూల నోటిఫికేషన్‌లు"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"అనుకూల నోటిఫికేషన్‌లను ఉపయోగించండి"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"తక్కువ వ్యవధిలో మీరు పలు నోటిఫికేషన్‌లు పొందినప్పుడు, రెండు నిమిషాల పాటు మీ ఫోన్ వాల్యూమ్‌ను తగ్గించి, స్క్రీన్‌పై పాప్-అప్‌లను కుదిస్తుంది. కాల్స్, అలారాలు, ప్రాధాన్య సంభాషణలు ఇప్పటికీ వైబ్రేట్ అవుతాయి, సౌండ్ చేస్తాయి, లేదా స్క్రీన్‌పై చూపబడతాయి, మీరు స్క్రీన్ పై నుండి కిందికి లాగినప్పుడు నోటిఫికేషన్‌లన్నింటినీ సులభంగా కనుగొనవచ్చు."</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"వర్క్ ప్రొఫైల్ యాప్‌లకు వర్తింపజేయండి"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR సహాయక సర్వీసులు"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"కేటగిరీలు"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"ఇతరం"</string>
     <string name="no_channels" msgid="4716199078612071915">"ఈ యాప్ ఏ నోటిఫికేషన్‌లను పోస్ట్ చేయలేదు"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"ఉపయోగించని కేటగిరీలను చూడండి"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"యాప్‌లోని అదనపు సెట్టింగ్‌లు"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"ఉపయోగించని కేటగిరీలను చూడండి"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ఉపయోగించని కేటగిరీలను దాచండి"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"సంభాషణలు"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"అన్ని సంభాషణలు"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"అన్ని సంభాషణలు"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ప్రాధాన్య సంభాషణలు"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ప్రాధాన్య సంభాషణలు"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ఏదీ లేదు"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"అంతరాయం కలిగించగల యాప్‌లు"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"ఎంచుకున్న యాప్‌లు"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ఏదీ లేదు"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"అన్నీ"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{యాప్‌లు ఏవీ అంతరాయాన్ని కలిగించలేవు}=1{{app_1} అంతరాయాన్ని కలిగించవచ్చు}=2{{app_1}, {app_2} అంతరాయాన్ని కలిగించవచ్చు}=3{{app_1}, {app_2}, అలాగే {app_3} అంతరాయాన్ని కలిగించవచ్చు}other{{app_1}, {app_2}, మరో # అంతరాయాన్ని కలిగించవచ్చు}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ఆఫీస్)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"లెక్కిస్తోంది…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"భర్తీ చేయడానికి యాప్‌లను అనుమతించండి"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"అంతరాయం కలిగించగల యాప్‌లు"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"మరిన్ని యాప్‌లను ఎంచుకోండి"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"రిపీట్ కాలర్‌లు అంతరాయాన్ని కలిగించవచ్చు"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"వ్యక్తులందరూ అంతరాయం కలిగించగలరు"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"రిపీట్ కాలర్‌లను అనుమతించండి"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"రిపీట్ కాలర్స్‌ను అనుమతించండి"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} వరకు ఒక గంట పాటు మాత్రమే అలారాలకు మార్చండి}other{{time} వరకు # గంటల పాటు మాత్రమే అలారాలకు మార్చండి}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> వరకు అలారాలు మాత్రమే ఎంపికకు మార్చుతుంది"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ఎల్లప్పుడూ అంతరాయం కలిగించు ఎంపికకు మార్చుతుంది"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"పేరు మార్చండి"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"చిహ్నాన్ని మార్చండి"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"చిహ్నాన్ని మార్చండి"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"ఎడిట్ మోడ్"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"మోడ్ క్రియేట్ చేయండి"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"అనుకూల మోడ్"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"మోడ్ పేరు"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"క్యాలెండర్ ఈవెంట్‌లు"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"నిద్రించే సమయ రొటీన్"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"డ్రైవింగ్‌లో ఉన్నప్పుడు"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"యాప్ సెట్టింగ్‌లు"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>లో సమాచారం, సెట్టింగ్‌లు"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> ద్వారా మేనేజ్ చేయబడుతోంది"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g>‌ను డిజేబుల్ చేయాలా?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"డిజేబుల్ చేసినప్పుడు ఈ మోడ్ ఎప్పటికీ ఆన్ అవ్వదు"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"డిజేబుల్ చేయండి"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g>‌ను ఎనేబుల్ చేయాలా?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"ఈ మోడ్ దాని సెట్టింగ్‌లను బట్టి ఆటోమేటిక్‌గా ఆన్ అవ్వవచ్చు"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"ఎనేబుల్ చేయండి"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"రెగ్యులర్ షెడ్యూల్‌ను ఫాలో అయ్యే మోడ్‌ను సెట్ చేయండి"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"క్యాలెండర్ ఈవెంట్‌లతో సింక్ చేయడానికి, సమాధానాలను ఆహ్వానించడానికి మోడ్‌ను సెట్ చేయండి"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"గాఢంగా నిద్రపోవడానికి దినచర్యను రూపొందించండి. అలారాలను సెట్ చేయండి, స్క్రీన్‌ను డిమ్‌గా చేయండి, నోటిఫికేషన్‌లను బ్లాక్ చేయండి."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"రహదారిపై భద్రతకు ప్రాధాన్యత ఇవ్వడం ద్వారా దృష్టి పెట్టి, పరధ్యానం లేకుండా డ్రైవ్ చేయండి"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"హెచ్చరిక"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"మూసివేయండి"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ఈ పరికరంపై ఫీడ్‌బ్యాక్‌ ఇవ్వండి"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"కేస్"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"బ్యాటరీ"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"సెట్టింగ్‌ల ప్యానెల్"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ఫోర్స్ డెస్క్‌టాప్ మోడ్"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ఇతర డిస్‌ప్లేలలో తప్పనిసరి ప్రయోగాత్మక డెస్క్‌టాప్ మోడ్"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"ఫ్రీఫార్మ్ విండోలను ఎనేబుల్ చేయండి"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"ఫ్రీఫార్మ్ విండోలను రెండవ డిస్‌ప్లేలో ఎనేబుల్ చేయి"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"మల్టీ-విండోలో సైజ్ మార్చలేని వాటిని ఎనేబుల్ చేయండి"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"సైజ్ మార్చలేని యాప్‌లను మల్టీ-విండోలో ఉండేందుకు అనుమతిస్తుంది"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ఫోర్స్‌-డార్క్‌ను ఓవర్‌రైడ్ చేయడం"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"మొబైల్ డేటా"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Wi‑Fi ఆఫ్‌లో ఉన్నప్పటికీ, ప‌రిక‌ర ఎక్స్‌పీరియన్స్‌ను మెరుగుప‌ర‌చ‌డానికి యాప్‌లు, సర్వీస్‌లు ఏ సమయంలో అయినా Wi‑Fi నెట్‌వర్క్‌లు ఏమైనా అందుబాటులో ఉన్నాయా అని స్కాన్ చేయగలవు. ఉదాహరణకు లొకేషన్ ఆధారిత ఫీచర్‌లను, సర్వీస్‌లను ఈ విధంగా మెరుగుపరచగలవు. Wi‑Fi స్కానింగ్ సెట్టింగ్‌లలో మీరు ఈ సెట్టింగ్‌ను మార్చవచ్చు."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"మార్చండి"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"కనెక్ట్ చేయబడింది"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"తాత్కాలికంగా కనెక్ట్ చేయబడింది"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"తాత్కాలికంగా <xliff:g id="SUBNAME">%1$s</xliff:g>ను ఉపయోగిస్తున్నారు"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"యాప్‌ను పిన్ చేయడాన్ని ఉపయోగించండి"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"డెవలపర్ ఆప్షన్‌లను ఉపయోగించండి"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ప్రింట్ సర్వీస్‌ను ఉపయోగించండి"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"మల్టిపుల్ యూజర్‌లను అనుమతించండి"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"యూజర్ స్విచ్‌ను అనుమతించండి"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"అనుమతించు, బహుళ, యూజర్, అనుమతి, అనేకం"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"పలు, యూజర్‌లు, ప్రొఫైళ్లు, వ్యక్తులు, ఖాతాలు, మారడం, చాలా"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"వైర్‌లెస్ డీబగ్గింగ్ ఫీచర్‌ను ఉపయోగించండి"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"మీ టాబ్లెట్ డాక్ చేయబడినప్పుడు మీ స్క్రీన్‌పై మీకు ఏమి కనిపించాలో ఎంచుకోండి. స్క్రీన్ సేవర్‌ను ఉపయోగించినప్పుడు మీ పరికరం మరింత పవర్‌ను ఉపయోగించవచ్చు."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"అనుకూలంగా మార్చండి"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>‌ను అనుకూలంగా మార్చండి"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ఫ్రీఫారమ్ సపోర్ట్‌ను ఎనేబుల్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ద్వితీయ డిస్‌ప్లేలలో డెస్క్‌టాప్ మోడ్‌ను బలవంతంగా ఆన్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ఫ్రీఫారమ్ విండో సపోర్ట్‌ను ఎనేబుల్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ఫ్రీఫార్మ్ విండోల లభ్యతను అప్‌డేట్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ఫ్రీఫార్మ్ విండోలను ప్రత్యామ్నాయ డిస్‌ప్లేలలో ఎనేబుల్ చేయడానికి రీబూట్ చేయడం అవసరం."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ఇప్పుడే రీబూట్ చేయండి"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"తర్వాత రీబూట్ చేయండి"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"స్పేషియల్ ఆడియో"</string>
@@ -5136,8 +5207,8 @@
     <string name="ingress_rate_limit_no_limit_entry" msgid="8741098826008012163">"పరిమితి సెట్ చేసి లేదు"</string>
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"చైల్డ్ ప్రాసెస్ పరిమితులను డిజేబుల్ చేయండి"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"యాప్ చైల్డ్ ప్రాసెస్‌ల సిస్టమ్ రిసోర్స్ వినియోగంపై పరిమితులను డిజేబుల్ చేయండి"</string>
-    <string name="enable_notes_role_title" msgid="7662702013496114763">"Notes రోల్‌ను ఫోర్స్ ఎనేబుల్ చేయండి"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Notes రోల్ ద్వారా నోట్-టేకింగ్ సిస్టమ్ ఇంటిగ్రేషన్‌లను ఎనేబుల్ చేయండి. Notes రోల్ ఇప్పటికే ఎనేబుల్ చేయబడి ఉంటే, ఏమీ చేయాల్సిన అవసరం లేదు. రీబూట్ చేయడం అవసరం."</string>
+    <string name="enable_notes_role_title" msgid="7662702013496114763">"నోట్స్‌ రోల్‌ను ఫోర్స్ ఎనేబుల్ చేయండి"</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"నోట్స్‌ రోల్ ద్వారా నోట్-టేకింగ్ సిస్టమ్ ఇంటిగ్రేషన్‌లను ఎనేబుల్ చేయండి. నోట్స్‌ రోల్ ఇదివరకే ఎనేబుల్ అయ్యి ఉంటే, ఈ సెట్టింగ్ ఏమీ చేయదు. రీబూట్ చేయాల్సి ఉంటుంది."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"ప్రసారం"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"<xliff:g id="CURRENTAPP">%1$s</xliff:g> ప్రసారం చేయండి"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"మీకు సమీపంలో ప్లే అవుతున్న ప్రసారాలను వినండి"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"గులాబీ రంగు"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"మెజెంటా రంగు"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ఊదా రంగు"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"పూర్తయింది"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"సేవ్ చేయండి"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"రద్దు చేయండి"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ఆటోమేటిక్ సెట్టింగ్"</string>
     <string name="contrast_medium" msgid="384414510709285811">"మధ్యస్థం"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"ఆన్‌లో ఉంది"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ఆఫ్‌లో ఉంది"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"ఆన్‌లో ఉంది"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"ఆడియో %1$d%% ఎడమ వైపు, %2$d%% కుడి వైపు"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"ఆడియో %1$d%% కుడి వైపు, %2$d%% ఎడమ వైపు"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"మీరు ఇన్‌స్టాల్ చేసిన యాప్‌లకు మీ పరికరం పేరు కనిపిస్తుంది. మీరు బ్లూటూత్ పరికరాలకు కనెక్ట్ చేసినప్పుడు, Wi-Fi నెట్‌వర్క్‌కు కనెక్ట్ చేసినప్పుడు లేదా Wi-Fi హాట్‌స్పాట్‌ను సెటప్ చేసినప్పుడు ఇతర వ్యక్తులకు కూడా కనబడవచ్చు."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"వ్యాకరణ లింగం"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"వ్యాకరణ లింగం ఎంచుకోండి"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"స్ట్రీమ్ వినండి"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‌తో వినడానికి ఆడియో స్ట్రీమ్ QR కోడ్‌ను స్కాన్ చేయండి"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"షేర్ చేస్తున్నప్పుడు పాస్‌వర్డ్‌ను చేయడం సాధ్యం కాదు. పాస్‌వర్డ్ మార్చడానికి, ముందుగా ఆడియో షేరింగ్‌ను ఆఫ్ చేయండి."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR కోడ్ స్కానర్"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"సెట్టింగ్‌లలో సెర్చ్ చేయండి"</string>
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index ecd5bec..80b2c5c 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"เวลาเข้านอน"</item>
-    <item msgid="4152450357280759894">"การขับขี่"</item>
-    <item msgid="7096549258219399423">"สมจริง"</item>
-    <item msgid="2760716776980432977">"ที่มีการจัดการ"</item>
-    <item msgid="601734478369121764">"ดาว"</item>
-    <item msgid="6243809315432780521">"ปฏิทิน"</item>
-    <item msgid="4913577903148415331">"เวลา"</item>
-    <item msgid="3653377604690057780">"ละครเวที"</item>
-    <item msgid="3843711267408385410">"ดอกไม้"</item>
+    <item msgid="2750940760340557109">"พระจันทร์ครึ่งดวง"</item>
+    <item msgid="8513969636586738035">"รถยนต์"</item>
+    <item msgid="957392343846370509">"คนกำลังครุ่นคิด"</item>
+    <item msgid="6734164279667121348">"ปฏิทิน"</item>
+    <item msgid="4139559120353528558">"นาฬิกา"</item>
+    <item msgid="5157711296814769020">"ร่มชายหาด"</item>
+    <item msgid="6635328761318954115">"เต็นท์"</item>
+    <item msgid="1711994778883392255">"ม้วนฟิล์ม"</item>
+    <item msgid="9097658401859604879">"เกมคอนโทรลเลอร์"</item>
+    <item msgid="755931364157422565">"ดัมเบลล์ในยิม"</item>
+    <item msgid="8894207806795738429">"คนขว้างบอล"</item>
+    <item msgid="2274801572149555103">"คนทำท่าเตะ"</item>
+    <item msgid="8795037201506843325">"ว่ายน้ำ"</item>
+    <item msgid="3558421426169430451">"คนกำลังปีนเขา"</item>
+    <item msgid="7455070421232184932">"กอล์ฟ"</item>
+    <item msgid="5841773092449126508">"เครื่องมือเวิร์กช็อป"</item>
+    <item msgid="4595330511709890409">"กระเป๋าเอกสาร"</item>
+    <item msgid="8352738347856724389">"ดาว"</item>
+    <item msgid="7082783098151998721">"ดอกบัว"</item>
+    <item msgid="5772220259409264724">"หัวหน้างาน"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index e051591..ee7e0b6 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"ระงับไว้"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"ไม่ทราบ"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"ดูตัวอย่าง"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"คิวอาร์โค้ด"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"ทำให้เล็กลง"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"ทำให้ใหญ่ขึ้น"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"เสมอ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"การตั้งค่าเครื่องช่วยฟัง"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"ทางลัด ความเข้ากันได้กับเครื่องช่วยฟัง"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"ค่าที่กำหนดล่วงหน้า"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"ไม่มีค่าที่กำหนดล่วงหน้าที่นักโสตสัมผัสวิทยาตั้งโปรแกรมไว้"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"ไม่สามารถอัปเดตค่าที่กำหนดล่วงหน้า"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"เอาต์พุตเสียง"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"เกี่ยวกับเอาต์พุตเสียง"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"การเลือกภาษาสำหรับแอปนี้ไม่พร้อมให้ใช้งานจากการตั้งค่า"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"ภาษาอาจแตกต่างจากที่ให้บริการในแอป บางแอปอาจไม่รองรับการตั้งค่านี้"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ตั้งค่าภาษาในแต่ละแอป"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"ระบบ แอป และเว็บไซต์จะใช้ภาษาแรกที่รองรับจากภาษาที่คุณต้องการ"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"อุปกรณ์ แอป และเว็บไซต์จะใช้ภาษาแรกที่รองรับจากรายการภาษาที่คุณต้องการ\n\nแอปจำนวนมากจะใช้ภูมิภาคจากภาษาที่คุณต้องการเพื่อจัดรูปแบบวันที่ ตัวเลข และหน่วยต่างๆ ด้วย หากต้องการเปลี่ยนภูมิภาค ให้เพิ่มภาษาแล้วเลือกภูมิภาคที่ต้องการ"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"หากต้องการเลือกภาษาของแต่ละแอป ให้ไปที่การตั้งค่าภาษาของแอป"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ดูข้อมูลเพิ่มเติมเกี่ยวกับภาษาของแอป"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"เปลี่ยนภาษาของระบบเป็นภาษา %s ไหม"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ปิด"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{เปิดอยู่/แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}other{เปิดอยู่/แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"กำลังโหลด…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"แอปที่มีสิทธิ์เข้าถึงอุปกรณ์ที่อยู่ใกล้เคียงจะสามารถระบุตำแหน่งซึ่งสัมพันธ์กับอุปกรณ์ที่เชื่อมต่อ"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"แอปที่มีสิทธิ์เข้าถึงอุปกรณ์ที่อยู่ใกล้เคียงจะสามารถระบุตำแหน่งซึ่งสัมพันธ์กับอุปกรณ์ที่เชื่อมต่อได้"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"สิทธิ์เข้าถึงตำแหน่งปิดอยู่สำหรับแอปและบริการต่างๆ ระบบอาจยังส่งตำแหน่งของอุปกรณ์ไปให้หน่วยกู้ภัยฉุกเฉินเมื่อคุณโทรหาหรือส่ง SMS ถึงหมายเลขฉุกเฉิน"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าตำแหน่ง"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"หากต้องการเปลี่ยน ให้ไปที่การตั้งค่า ChromeOS &gt; ความเป็นส่วนตัวและความปลอดภัย &gt; การควบคุมความเป็นส่วนตัว &gt; การเข้าถึงตำแหน่ง"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"เพิ่มใบหน้าและ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"การตรวจสอบตัวตนเปิดอยู่"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"การปลดล็อก Remote Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"เพิ่มนาฬิกาแล้ว"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ตั้งค่านาฬิกา"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการปลดล็อกด้วยนาฬิกา"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"เพิ่มนาฬิกา"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"นำนาฬิกาออก"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"การปลดล็อกด้วยลายนิ้วมือและใบหน้า"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"การปลดล็อกด้วยใบหน้าและลายนิ้วมือ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"การปลดล็อกด้วยใบหน้าและลายนิ้วมือสำหรับงาน"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ต้องตั้งค่า"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"เพิ่มใบหน้าและลายนิ้วมือแล้ว"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"กำลังตั้งค่าพื้นที่ส่วนตัว…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"ตั้งค่าพื้นที่ส่วนตัวไม่ได้"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"ลองอีกครั้ง"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"ออก"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"พื้นที่ส่วนตัวไม่พร้อมใช้งาน\nดูสาเหตุที่เป็นไปได้"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ดูสาเหตุที่เป็นไปได้"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"เลือกการล็อกใหม่สำหรับพื้นที่ส่วนตัวไหม"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"คุณจะตั้งค่าการล็อกใหม่สำหรับพื้นที่ส่วนตัวโดยเฉพาะ หรือจะใช้การล็อกเดียวกับที่ใช้ปลดล็อกอุปกรณ์ก็ได้"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ใช้การล็อกหน้าจอ"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"รีสตาร์ทอุปกรณ์ใช่ไหม"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"การบันทึกรายละเอียดของ NFC มีไว้เพื่อการพัฒนาเท่านั้น ข้อมูลเพิ่มเติมของ NFC จะรวมอยู่ในรายงานข้อบกพร่อง ซึ่งอาจมีข้อมูลส่วนตัว รีสตาร์ทอุปกรณ์เพื่อเปลี่ยนการตั้งค่านี้"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"รีสตาร์ท"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"เปิด"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"ปิด"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"จอแสดงผลภายนอก"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"ใช้จอแสดงผลภายนอก"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ความละเอียดของจอแสดงผล"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"ยกเลิกการเชื่อมต่อกับจอแสดงผลภายนอกแล้ว"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"การหมุน"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"มาตรฐาน"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"การเปลี่ยนการหมุนหรือความละเอียดอาจหยุดแอปที่กำลังทำงานอยู่"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"อุปกรณ์ของคุณต้องเชื่อมต่อกับจอแสดงผลภายนอกเพื่อมิเรอร์หน้าจอ"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"ตัวเลือกเพิ่มเติม"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"แคสต์"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"มิเรอร์"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"เปิดใช้การแสดงผลแบบไร้สาย"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"ปรับอัตโนมัติ"</string>
     <string name="brightness" msgid="6216871641021779698">"ระดับความสว่าง"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"ปรับความสว่างอัตโนมัติ"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"เกี่ยวกับฟีเจอร์ปรับความสว่างอัตโนมัติ"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"ความสว่างของหน้าจอจะปรับให้เหมาะสมกับสภาพแวดล้อมและกิจกรรมที่คุณทำโดยอัตโนมัติ คุณเลื่อนแถบเลื่อนด้วยตนเองได้เพื่อช่วยให้การปรับความสว่างอัตโนมัติทราบความสว่างที่คุณต้องการ"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"เปิด"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"ปิด"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"ตัวเลือก"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"การช่วยเหลือพิเศษ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"แป้นพิมพ์จริง"</string>
-    <string name="show_ime" msgid="4334255501724746849">"ใช้แป้นพิมพ์บนหน้าจอ"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"เปิดทิ้งไว้บนหน้าจอในระหว่างใช้งานแป้นพิมพ์จริง"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"คีย์ตีกลับ"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"แป้นพิมพ์จะละเว้นการกดปุ่มเดียวกันซ้ำๆ อย่างรวดเร็วภายใน <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> มิลลิวินาที"</string>
     <string name="slow_keys" msgid="2891452895499690837">"เพิ่มระยะเวลาในการกดปุ่ม"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"ปรับเวลาที่ใช้ในการกดปุ่มเพื่อเปิดใช้เป็น <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> มิลลิวินาที"</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="2396247040177734245">"ใช้แป้นพิมพ์จริงเพื่อควบคุมเมาส์"</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"เปลี่ยนรูปแบบการเติมพื้นตัวชี้เป็นสีเหลือง"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"เปลี่ยนรูปแบบการเติมพื้นตัวชี้เป็นสีชมพู"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"เปลี่ยนรูปแบบการเติมพื้นตัวชี้เป็นสีน้ำเงิน"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"รูปแบบเส้นตัวชี้"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"ขาว"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"ดำ"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"ไม่มี"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"เรียนรู้ท่าทางสัมผัสของทัชแพด"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"แทร็กแพด, แทร็ก แพด, เมาส์, เคอร์เซอร์, เลื่อน, ปัด, คลิกขวา, คลิก, Pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"คลิกขวา แตะ"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"ผู้ใช้เลือก: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"เสียงพูด"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"ความเร็วของตัวชี้"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"ขนาดของตัวชี้"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"ลดขนาดของตัวชี้"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"เพิ่มขนาดของตัวชี้"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"อุปกรณ์ควบคุมเกม"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"เปลี่ยนเส้นทางการสั่น"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"ส่งการสั่นเตือนไปที่อุปกรณ์ควบคุมเกมเมื่อมีการเชื่อมต่อ"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ดำเนินการต่อ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ยกเลิก"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"การตั้งค่าการขยาย"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"การแพนกล้องด้วยนิ้วเดียว"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"ย้ายแว่นขยายด้วย 1 นิ้ว"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"ใช้ 1 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ย้ายพื้นที่ในการขยายโดยลากนิ้วเพียงนิ้วเดียว"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"ย้ายพื้นที่ในการขยายโดยลากนิ้ว 2 นิ้ว"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"ไม่พร้อมใช้งานในขณะที่ขยายเพียงบางส่วนของหน้าจอ"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"แตะปุ่มเพื่อซูม"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"ซูมเข้าอย่างรวดเร็วบนหน้าจอเพื่อทำให้เนื้อหาใหญ่ขึ้น"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;วิธีซูมเข้า&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ใช้ทางลัดเพื่อเริ่มการขยาย&lt;br/&gt; {1,number,integer}. แตะหน้าจอ&lt;br/&gt; {2,number,integer}. ใช้ 2 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ&lt;br/&gt; {3,number,integer}. บีบ 2 นิ้วเพื่อปรับการซูม&lt;br/&gt; {4,number,integer}. ใช้ทางลัดเพื่อหยุดการขยาย&lt;br/&gt;&lt;br/&gt; &lt;b&gt;วิธีซูมเข้าชั่วคราว&lt;/b&gt;&lt;br/&gt; {0,number,integer}. ตรวจสอบว่าตั้งค่าประเภทการขยายเป็นแบบเต็มหน้าจอ&lt;br/&gt; {1,number,integer}. ใช้ทางลัดเพื่อเริ่มการขยาย&lt;br/&gt; {2,number,integer}. แตะที่ใดก็ได้บนหน้าจอค้างไว้&lt;br/&gt; {3,number,integer}. ลากนิ้วเพื่อย้ายไปรอบๆ หน้าจอ&lt;br/&gt; {4,number,integer}. ยกนิ้วขึ้นเพื่อหยุดการขยาย"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;วิธีซูมเข้า&lt;/b&gt;&lt;br/&gt; {0,number,integer} ใช้ทางลัดเพื่อเริ่มการขยาย&lt;br/&gt; {1,number,integer} แตะหน้าจอ&lt;br/&gt; {2,number,integer} ใช้ 2 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ&lt;br/&gt; {3,number,integer} บีบ 2 นิ้วเพื่อปรับการซูม&lt;br/&gt; {4,number,integer} ใช้ทางลัดเพื่อหยุดใช้งานการขยาย&lt;br/&gt;&lt;br/&gt; คุณยังซูมเข้าชั่วคราวและอื่นๆ ได้ด้วย"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;วิธีซูมเข้า&lt;/b&gt;&lt;br/&gt; {0,number,integer} ใช้ทางลัดเพื่อเริ่มการขยาย&lt;br/&gt; {1,number,integer} แตะหน้าจอ&lt;br/&gt; {2,number,integer} ใช้ 1 หรือ 2 นิ้วลากเพื่อย้ายไปรอบๆ หน้าจอ&lt;br/&gt; {3,number,integer}. บีบ 2 นิ้วเพื่อปรับการซูม&lt;br/&gt; {4,number,integer} ใช้ทางลัดเพื่อหยุดใช้งานการขยาย&lt;br/&gt;&lt;br/&gt; คุณยังซูมเข้าชั่วคราวและอื่นๆ ได้ด้วย"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"คุณจะซูมหน้าจอเข้าได้เมื่อเปิดการขยาย\n\n"<b>"วิธีซูมคือ"</b>" เริ่มการขยาย จากนั้นแตะบริเวณที่ต้องการซูมในหน้าจอ\n"<ul><li>"ลากนิ้วอย่างน้อย 2 นิ้วเพื่อเลื่อน"</li>\n<li>"บีบนิ้วอย่างน้อย 2 นิ้วเพื่อปรับการซูม"</li></ul>\n\n<b>"วิธีซูมชั่วคราวคือ"</b>" เริ่มการขยาย จากนั้นแตะบริเวณที่ต้องการซูมในหน้าจอค้างไว้\n"<ul><li>"ลากเพื่อไปยังส่วนต่างๆ ในหน้าจอ"</li>\n<li>"ยกนิ้วขึ้นเพื่อซูมออก"</li></ul>\n\n"คุณซูมเข้าโดยใช้แป้นพิมพ์หรือแถบนำทางไม่ได้"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"หน้า <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> จาก <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ทางลัดปุ่มการช่วยเหลือพิเศษ"</string>
@@ -2149,8 +2180,6 @@
     <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_software_gesture" msgid="8292555254353761635">"ใช้ 2 นิ้วปัดขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 2 นิ้วปัดขึ้นแล้วค้างไว้"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"ใช้ 3 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 3 นิ้วเลื่อนขึ้นแล้วค้างไว้"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{ปัดขึ้นจากด้านล่างของหน้าจอ หากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ปัดขึ้นแล้วค้างไว้}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>
@@ -2161,16 +2190,12 @@
     <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">"กดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มค้างไว้"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"ใช้ 2 นิ้วแตะสองครั้งบนหน้าจอ"</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 นิ้วแตะหน้าจอเร็วๆ 2 ครั้ง"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"แตะสามครั้ง"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"แตะหน้าจอเร็วๆ %1$d ครั้ง การดำเนินการนี้อาจทําให้​อุปu00AD­กรณ์ทํางานช้าลง"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"ใช้ %1$d นิ้วแตะสองครั้ง"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ใช้ 2 นิ้วแตะหน้าจอ {0,number,integer} ครั้งเร็วๆ"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"แตะหน้าจอ 3 ครั้ง"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"แตะสามครั้ง"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"แตะหน้าจอเร็วๆ {0,number,integer} ครั้ง ทางลัดนี้อาจทำให้อุปกรณ์ทำงานช้าลง"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"ขั้นสูง"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ปุ่ม \"การเข้าถึง\" ตั้งค่าเป็น <xliff:g id="SERVICE">%1$s</xliff:g> หากต้องการใช้การขยาย ให้แตะปุ่ม \"การเข้าถึง\" ค้างไว้ แล้วเลือกการขยาย"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ตั้งค่าท่าทางสัมผัสการช่วยเหลือพิเศษเป็น<xliff:g id="SERVICE">%1$s</xliff:g> หากต้องการใช้การขยาย ให้ใช้ 2 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอแล้วหยุดค้างไว้ จากนั้นเลือกการขยาย"</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"บริการนี้ทำงานผิดปกติ"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ทางลัดสำหรับการช่วยเหลือพิเศษ"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"แสดงในการตั้งค่าด่วน"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"สีแดง/เขียว"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"สีแดง/เขียว"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"สีแดง-เขียว เห็นสีเขียวได้น้อย"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"สีแดง-เขียว เห็นสีแดงได้น้อย"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"สีน้ำเงิน/เหลือง"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"โทนสีเทา"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"ความเข้ม"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"เห็นสีเขียวได้น้อย ตาบอดสีเขียว"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"เห็นสีแดงได้น้อย ตาบอดสีแดง"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"ใช้งานไม่ได้ในโหมดโทนสีเทาหรือเมื่อปิดใช้การแก้สี"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"ตาบอดสีเขียว"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"ตาบอดสีแดง"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"ตาบอดสีน้ำเงิน"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"หรี่แสงเพิ่มเติม"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"หรี่แสงหน้าจอเพิ่มเติม"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"ฟ้า"</string>
     <string name="color_yellow" msgid="5957551912912679058">"เหลือง"</string>
     <string name="color_magenta" msgid="8943538189219528423">"ม่วงแดง"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"อนุญาตให้ \"<xliff:g id="SERVICE">%1$s</xliff:g>\" ควบคุมอุปกรณ์อย่างเต็มที่ไหม"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> ต้องการที่จะ"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"เนื่องจากแอปหนึ่งได้บดบังคำขอสิทธิ์ ระบบจึงไม่สามารถยืนยันคำตอบของคุณสำหรับการตั้งค่าได้"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> กำลังขอควบคุมอุปกรณ์นี้โดยสมบูรณ์ บริการนี้จะอ่านหน้าจอและดำเนินการในนามของผู้ใช้ที่ต้องการการช่วยเหลือพิเศษได้ การควบคุมระดับนี้ไม่เหมาะสำหรับแอปส่วนใหญ่"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"การควบคุมอย่างเต็มที่เหมาะสำหรับแอปเกี่ยวกับความช่วยเหลือพิเศษ แต่ไม่เหมาะสำหรับ​แอปส่วนใหญ่"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"ดูและควบคุมหน้าจอ"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"การควบคุมนี้สามารถอ่านเนื้อหาทั้งหมดบนหน้าจอและแสดงเนื้อหาทับแอปอื่นๆ"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"ดูและดำเนินการ"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"การควบคุมนี้สามารถติดตามการโต้ตอบของคุณกับแอปหรือกับเซ็นเซอร์ของฮาร์ดแวร์ และโต้ตอบกับแอปต่างๆ แทนคุณ"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"อนุญาต"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ปฏิเสธ"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ปิด"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{ไม่มี}=1{ตั้งกำหนดการแล้ว 1 รายการ}other{ตั้งกำหนดการแล้ว # รายการ}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ห้ามรบกวน"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"โหมดสำคัญ"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"เพิ่มโหมด"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"ลดสิ่งรบกวนและมีสมาธิอยู่กับสิ่งที่คุณสนใจด้วยโหมดสำหรับการนอนหลับ การทำงาน การขับรถ และอื่นๆ"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"สร้างโหมดของคุณเอง"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"รับเฉพาะการแจ้งเตือนจากผู้คนและแอปที่สำคัญ"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"ตั้งกำหนดเวลา"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"กำหนดเวลาตาม"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"วันและเวลา"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"09:00-17:00 น. วันธรรมดา\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"กิจกรรมในปฏิทิน"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} ทำงานอยู่}=2{{mode_1} และ {mode_2} ทำงานอยู่}=3{{mode_1}, {mode_2} และ {mode_3} ทำงานอยู่}other{{mode_1}, {mode_2} และอีก # โหมดทำงานอยู่}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 โหมดสามารถเปิดได้โดยอัตโนมัติ}other{# โหมดสามารถเปิดได้โดยอัตโนมัติ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"เปิด"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"ไม่ได้ตั้งค่า"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"ปิดอยู่"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"สร้างโหมด"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"กำหนดเอง"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"เปิดเลย"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"ปิด"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"ไม่พบโหมด"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"จำกัดการรบกวน"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"บล็อกการรบกวนและสิ่งที่จะทำให้เสียสมาธิ"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"ตั้งค่า <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"เปิด \"ห้ามรบกวน\""</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"ให้เสียงของการแจ้งเตือนและสื่อรบกวนได้"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"กำหนดการ"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"ลบกำหนดการ"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"ลบ"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"เปลี่ยนชื่อ"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"ลบ"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"ลบโหมด \"<xliff:g id="MODE">%1$s</xliff:g>\" ไหม"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"แก้ไข"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"กำหนดการ"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"กำหนดการ"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"เปิดอัตโนมัติ"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"เพิ่มปฏิทิน"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"ใช้ปฏิทินของคุณ"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"กำหนดเวลา"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"ตั้งกำหนดเวลา"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"เวลาที่ต้องการให้เปิดอัตโนมัติ"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"กำหนดการของกิจกรรม"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"เปิดในระหว่างกิจกรรมสำหรับ"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"เมื่อการตอบกลับคำเชิญเป็น"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"กำหนดเวลา"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"กำหนดเวลา"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> ชั่วโมง <xliff:g id="MINUTES">%2$d</xliff:g> นาที"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"กำหนดการ"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"อนุญาตการรบกวนที่มีเสียง"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"บล็อกสิ่งรบกวนการมองเห็น"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"อนุญาตสัญญาณที่มองเห็น"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"การแจ้งเตือนที่ส่งถึงคุณได้"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"การทำงานเพิ่มเติม"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"ตัวกรองการแจ้งเตือน"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"การตั้งค่าเพิ่มเติม"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{ปิด}=1{ปิด/1 โหมดสามารถเปิดได้โดยอัตโนมัติ}other{ปิด/# โหมดสามารถเปิดได้โดยอัตโนมัติ}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"การตั้งค่าการแสดงผล"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ตัวเลือกการแสดงผล"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"โทนสีเทา"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"เปิดใช้ธีมมืด"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"สลับระบบปฏิบัติการและแอปเพื่อให้ได้ข้อความสีอ่อนและพื้นหลังสีเข้มตามที่ต้องการ ซึ่งอาจสบายตากว่ารวมถึงประหยัดแบตเตอรี่ได้อย่างมากในอุปกรณ์บางเครื่อง"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ไม่มีการเปลี่ยนแปลงการแสดงผล}=1{{effect_1}}=2{{effect_1} และ {effect_2}}=3{{effect_1}, {effect_2} และ {effect_3}}other{{effect_1}, {effect_2} และอีก # รายการ}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"จำกัดการแจ้งเตือนที่คุณจะได้รับ"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"ไม่ได้กรองการรบกวน"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"ตัวเลือกการแสดงผลสำหรับการแจ้งเตือนที่กรอง"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"เมื่อเปิดโหมดห้ามรบกวน"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"ไม่มีเสียงเวลาแจ้งเตือน"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"เปิดการแจ้งเตือน"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"อนุญาตให้เลื่อนการแจ้งเตือน"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"เครื่องหมายจุดแสดงการแจ้งเตือนบนไอคอนแอป"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"กลุ่มการแจ้งเตือน"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"บับเบิล"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"บับเบิล"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"แสดงการสนทนานี้เป็นบับเบิล"</string>
@@ -3608,9 +3652,9 @@
     <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="4737150709382859870">"การแจ้งเตือนแบบปรับอัตโนมัติ"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"ใช้การแจ้งเตือนแบบปรับอัตโนมัติ"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"เมื่อคุณได้รับการแจ้งเตือนจำนวนมากภายในเวลาสั้นๆ โทรศัพท์จะลดเสียงและจำนวนป๊อปอัปบนหน้าจอลงสูงสุด 2 นาที โดยที่การโทร การปลุก และการสนทนาสำคัญจะยังคงสั่น ส่งเสียง หรือแสดงบนหน้าจอ อีกทั้งคุณยังค้นหาการแจ้งเตือนทั้งหมดได้ง่ายๆ เพียงเลื่อนลงจากด้านบนของหน้าจอ"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"ใช้กับแอปในโปรไฟล์งาน"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"บริการตัวช่วย VR"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"หมวดหมู่"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"อื่นๆ"</string>
     <string name="no_channels" msgid="4716199078612071915">"แอปนี้ไม่ได้โพสต์การแจ้งเตือนใดๆ"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"แสดงหมวดหมู่ที่ไม่ได้ใช้"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"การตั้งค่าเพิ่มเติมในแอป"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"แสดงหมวดหมู่ที่ไม่ได้ใช้"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"ซ่อนหมวดหมู่ที่ไม่ได้ใช้"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"การสนทนา"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"การสนทนาทั้งหมด"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"การสนทนาทั้งหมด"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"การสนทนาสำคัญ"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"การสนทนาสำคัญ"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"ไม่มี"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"แอปที่รบกวนคุณได้"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"แอปที่เลือก"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"ไม่มี"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"ทั้งหมด"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{ไม่ให้แอปใดรบกวนเลย}=1{{app_1} รบกวนได้}=2{{app_1} และ {app_2} รบกวนได้}=3{{app_1}, {app_2} และ {app_3} รบกวนได้}other{{app_1}, {app_2} และอีก # แอปรบกวนได้}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (งาน)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"กำลังคำนวณ…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"อนุญาตให้แอปลบล้าง"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"แอปที่รบกวนคุณได้"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"เลือกแอปเพิ่มเติม"</string>
@@ -3784,6 +3832,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"ผู้โทรซ้ำสามารถรบกวนได้"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"ให้ทุกคนรบกวนได้"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ผู้โทรซ้ำ"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"อนุญาตผู้โทรซ้ำ"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{เปลี่ยนเป็นเฉพาะปลุกเท่านั้นเป็นเวลา 1 ชั่วโมงจนถึง {time}}other{เปลี่ยนเป็นเฉพาะปลุกเท่านั้นเป็นเวลา # ชั่วโมงจนถึง {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"เปลี่ยนเป็นเฉพาะปลุกเท่านั้นจนถึง <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"เปลี่ยนเป็นรบกวนได้เสมอ"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"เปลี่ยนชื่อ"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"เปลี่ยนไอคอน"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"เปลี่ยนไอคอน"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"แก้ไขโหมด"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"สร้างโหมด"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"โหมดที่กำหนดเอง"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"ชื่อโหมด"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"กิจกรรมในปฏิทิน"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"กิจวัตรเข้านอน"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ขณะขับรถ"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"การตั้งค่าแอป"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"ข้อมูลและการตั้งค่าใน <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"จัดการโดย <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"ปิดใช้<xliff:g id="MODE_NAME">%1$s</xliff:g>ใช่ไหม"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"ระบบจะไม่เปิดโหมดนี้เมื่อปิดใช้งานอยู่"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"ปิดใช้"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"เปิดใช้<xliff:g id="MODE_NAME">%1$s</xliff:g>ใช่ไหม"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"โหมดนี้อาจเปิดโดยอัตโนมัติตามการตั้งค่า"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"เปิดใช้"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"ตั้งค่าโหมดที่จะทำตามกำหนดการประจำ"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"ตั้งค่าโหมดเพื่อซิงค์กับกิจกรรมในปฏิทินและการตอบกลับคำเชิญ"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"ออกแบบกิจวัตรการนอนหลับที่แสนผ่อนคลาย ตั้งปลุก หรี่แสงหน้าจอ และบล็อกการแจ้งเตือน"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"ให้ความสำคัญกับความปลอดภัยบนท้องถนนเพื่อการขับขี่อย่างมีสมาธิและไร้สิ่งรบกวน"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"คำเตือน"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"ปิด"</string>
     <string name="device_feedback" msgid="5351614458411688608">"ส่งความคิดเห็นเกี่ยวกับอุปกรณ์นี้"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"กล่อง"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"แบตเตอรี่"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"แผงควบคุมการตั้งค่า"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"บังคับใช้โหมดเดสก์ท็อป"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"บังคับใช้โหมดเดสก์ท็อปแบบทดลองในจอแสดงผลรอง"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"เปิดใช้หน้าต่างรูปแบบอิสระ"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"เปิดใช้หน้าต่างรูปแบบอิสระบนจอแสดงผลสำรอง"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"เปิดใช้แอปแบบปรับขนาดไม่ได้ในหลายหน้าต่าง"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"อนุญาตให้แอปแบบปรับขนาดไม่ได้แสดงในหลายหน้าต่าง"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"ลบล้างฟีเจอร์บังคับใช้ธีมมืด"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"อินเทอร์เน็ตมือถือ"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"เพื่อปรับปรุงประสบการณ์การใช้อุปกรณ์ แอปและบริการต่างๆ จะยังคงสแกนหาเครือข่าย Wi‑Fi ได้ทุกเมื่อแม้ว่า Wi‑Fi จะปิดอยู่ การตั้งค่านี้ใช้เพื่อทำสิ่งต่างๆ เช่น ปรับปรุงฟีเจอร์และบริการที่อิงตามตำแหน่ง คุณเปลี่ยนตัวเลือกนี้ได้ในการตั้งค่าการสแกนหา Wi-Fi"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"เปลี่ยน"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"เชื่อมต่อแล้ว"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"เชื่อมต่อแล้วชั่วคราว"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"กำลังใช้ <xliff:g id="SUBNAME">%1$s</xliff:g> ชั่วคราว"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ใช้การปักหมุดแอป"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ใช้ตัวเลือกสำหรับนักพัฒนาแอป"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"ใช้บริการพิมพ์"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"อนุญาตให้มีผู้ใช้หลายคน"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"อนุญาตให้เปลี่ยนผู้ใช้ได้"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"อนุญาต, หลายคน, ผู้ใช้, อนุมัติ, จำนวนมาก"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"หลายรายการ, ผู้ใช้, โปรไฟล์, ผู้คน, บัญชี, เปลี่ยน, มากมาย"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"ใช้การแก้ไขข้อบกพร่องผ่าน Wi-Fi"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"เลือกสิ่งที่คุณจะเห็นในหน้าจอเมื่อวางแท็บเล็ตบนแท่นชาร์จ อุปกรณ์อาจใช้พลังงานมากขึ้นเมื่อใช้ภาพพักหน้าจอ"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"ปรับแต่ง"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"ปรับแต่ง <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"ต้องรีบูตเพื่อเปิดใช้การสนับสนุนแบบอิสระ"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"ต้องรีบูตเพื่อบังคับให้จอแสดงผลสำรองใช้โหมดเดสก์ท็อป"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"ต้องรีบูตเพื่อเปิดใช้การรองรับหน้าต่างรูปแบบอิสระ"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"ต้องรีบูตเพื่ออัปเดตความพร้อมใช้งานหน้าต่างรูปแบบอิสระ"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ต้องรีบูตเพื่อเปิดใช้หน้าต่างรูปแบบอิสระบนจอแสดงผลสำรอง"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"รีบูตเลย"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"รีบูตภายหลัง"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"เสียงรอบทิศทาง"</string>
@@ -5137,7 +5207,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"ปิดการจำกัดการประมวลผลข้อมูลย่อย"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"ปิดการจำกัดการใช้ทรัพยากรระบบในการประมวลย่อยของแอป"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"บังคับเปิดใช้บทบาท \"โน้ต\""</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"เปิดใช้การผสานรวมระบบการจดบันทึกผ่านบทบาท \"การจดบันทึก\" หากเปิดใช้ไว้อยู่แล้วก็ไม่ต้องดำเนินการใดๆ ต้องรีบูต"</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"เปิดใช้การผสานรวมระบบการจดบันทึกผ่านบทบาท \"โน้ต\" หากเปิดใช้ไว้อยู่แล้วก็ไม่ต้องดำเนินการใดๆ ต้องรีบูตหากเปิดใช้ใหม่"</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"การออกอากาศ"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"ออกอากาศ <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"ฟังการออกอากาศที่เล่นอยู่ใกล้คุณ"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"ดอกกุหลาบ"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"ม่วงแดง"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"ม่วงแกมน้ำเงิน"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"เสร็จสิ้น"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"บันทึก"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"ยกเลิก"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ค่าเริ่มต้น"</string>
     <string name="contrast_medium" msgid="384414510709285811">"ปานกลาง"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"เปิด"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"ปิด"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"เปิด"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"เสียง %1$d%% ซ้าย %2$d%% ขวา"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"เสียง %1$d%% ขวา %2$d%% ซ้าย"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"แอปที่คุณติดตั้งจะเห็นชื่อของอุปกรณ์ และคนอื่นก็อาจเห็นเช่นกันหากคุณเชื่อมต่อกับอุปกรณ์บลูทูธหรือเครือข่าย Wi-Fi หรือตั้งค่าฮอตสปอต Wi-Fi"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"เพศทางไวยากรณ์"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"เลือกเพศทางไวยากรณ์"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"ฟังสตรีม"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"สแกนคิวอาร์โค้ดของสตรีมเสียงเพื่อฟังกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"แก้ไขรหัสผ่านในระหว่างการแชร์ไม่ได้ หากต้องการเปลี่ยนรหัสผ่าน โปรดปิดการแชร์เสียงก่อน"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"ตัวสแกนคิวอาร์โค้ด"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"ค้นหาในการตั้งค่า"</string>
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index 71c8b9f..8ceb0cf 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Oras ng pagtulog"</item>
-    <item msgid="4152450357280759894">"Pagmamaneho"</item>
-    <item msgid="7096549258219399423">"Immersive"</item>
-    <item msgid="2760716776980432977">"Pinamamahalaan"</item>
-    <item msgid="601734478369121764">"Bituin"</item>
-    <item msgid="6243809315432780521">"Kalendaryo"</item>
-    <item msgid="4913577903148415331">"Oras"</item>
-    <item msgid="3653377604690057780">"Teatro"</item>
-    <item msgid="3843711267408385410">"Bulaklak"</item>
+    <item msgid="2750940760340557109">"Half-moon"</item>
+    <item msgid="8513969636586738035">"Kotse"</item>
+    <item msgid="957392343846370509">"Isip ng tao"</item>
+    <item msgid="6734164279667121348">"Kalendaryo"</item>
+    <item msgid="4139559120353528558">"Orasan"</item>
+    <item msgid="5157711296814769020">"Beach umbrella"</item>
+    <item msgid="6635328761318954115">"Tent"</item>
+    <item msgid="1711994778883392255">"Film reel"</item>
+    <item msgid="9097658401859604879">"Game controller"</item>
+    <item msgid="755931364157422565">"Dumbbell ng gym"</item>
+    <item msgid="8894207806795738429">"Taong naghahagis ng bola"</item>
+    <item msgid="2274801572149555103">"Taong sumisipa"</item>
+    <item msgid="8795037201506843325">"Paglangoy"</item>
+    <item msgid="3558421426169430451">"Taong nagha-hike"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Mga tool sa workshop"</item>
+    <item msgid="4595330511709890409">"Briefcase"</item>
+    <item msgid="8352738347856724389">"Bituin"</item>
+    <item msgid="7082783098151998721">"Bulaklak na lotus"</item>
+    <item msgid="5772220259409264724">"Supervisor"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index c532bec..70a3848 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Suspendido"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Hindi Alam"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Preview"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Paliitin"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Palakihin"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Palagi"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Mga setting ng hearing device"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Shortcut, compatibility ng hearing aid"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Preset"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Walang preset na na-program ng iyong audiologist"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Hindi ma-update ang preset"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio output"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Tungkol sa audio output"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Hindi available sa Mga Setting ang pagpili ng wika para sa app na ito."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Posibleng iba ang wika sa mga wikang available sa app. Posibleng hindi suportahan ng ilang app ang setting na ito."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Itakda ang wika para sa bawat app."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Ginagamit ng iyong system, mga app, at mga website ang unang sinusuportahang wika mula sa mga gusto mong wika."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Ginagamit ng iyong device, app, at website ang unang sinusuportahang wika mula sa listahan ng gusto mong wika.\n\nGagamitin din ng maraming app ang rehiyon mula sa iyong gustong wika para i-format ang mga petsa, numero, at unit. Para baguhin ang rehiyon mo, magdagdag ng wika, pagkatapos ay piliin ang iyong gustong rehiyon."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para pumili ng wika para sa bawat app, pumunta sa mga setting ng wika ng app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Matuto pa tungkol sa mga wika ng app"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Gawing %s ang wika ng system?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Naka-off"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Naka-on / # app ang may access sa lokasyon}one{Naka-on / # app ang may access sa lokasyon}other{Naka-on / # na app ang may access sa lokasyon}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Naglo-load…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Matutukoy ng mga app na may pahintulot sa Mga kalapit na device ang relatibong posisyon ng mga nakakonektang device."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Matutukoy ng mga app na may pahintulot sa mga kalapit na device ang relatibong posisyon ng mga nakakonektang device."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Naka-off para sa mga app at serbisyo ang access sa lokasyon. Posibleng ipadala pa rin ang lokasyon ng iyong device sa mga reresponde sa emergency kapag tumawag o nag-text ka sa pang-emergency na numero."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Matuto pa tungkol sa Mga setting ng lokasyon."</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Para palitan, pumunta sa Mga Setting ng ChromeOS &gt; Privacy at seguridad &gt; Mga kontrol sa privacy &gt; Access sa lokasyon"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Naidagdag ang mukha at <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Naidagdag ang mukha, fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Naidagdag ang mukha, mga fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Naka-on ang Pagsusuri sa Pagkakakilanlan"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Idinagdag ang relo"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"I-set up ang iyong relo"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Matuto pa tungkol sa Pag-unlock Gamit ang Relo"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Magdagdag ng relo"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Alisin ang relo"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Pag-unlock Gamit ang Fingerprint at Mukha"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Pag-unlock Gamit ang Mukha at Fingerprint"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Pag-unlock Gamit ang Mukha at Fingerprint para sa trabaho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Kinakailangan ang pag-set up"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Nagdagdag ng mukha at mga fingerprint"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Sine-set up ang pribadong space…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Hindi na-set up ang pribadong space"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Subukan Ulit"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Lumabas"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Hindi available ang pribadong space.\nTingnan ang mga posibleng dahilan"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Tingnan ang mga posibleng dahilan"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Pumili ng bagong lock para sa pribadong space?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Puwede kang magtakda ng bagong lock para lang sa pribadong space, o gamitin ang parehong lock na ginagamit mo para i-unlock ang iyong device"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gamitin ang lock ng screen"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"I-restart ang Device?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Idinisenyo lang ang pag-log ng detalye ng NFC para sa pag-develop. Nagsasama ng karagdagang data ng NFC sa mga ulat ng bug, na posibleng may pribadong impormasyon. I-restart ang iyong device para baguhin ang setting na ito."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"I-restart"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Naka-on"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Naka-off"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"External na Display"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Gumamit ng external na display"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Resolution ng display"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Nadiskonekta ang external na display"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Pag-rotate"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standard"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Posibleng huminto ang anumang app na kasalukuyang gumagana kapag binago ang pag-rotate o resolution"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Dapat nakakonekta sa external na display ang iyong device para ma-mirror ang screen mo"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Higit pang opsyon"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"I-cast"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"mirror"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"I-enable ang wireless display"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptive"</string>
     <string name="brightness" msgid="6216871641021779698">"Level ng brightness"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Adaptive brightness"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Tungkol sa adaptive brightness"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Awtomatikong maa-adjust ang brightness ng iyong screen sa kapaligiran at mga aktibidad mo. Maaari mong manual na galawin ang slider para matulungan ang adaptive brightness na matutunan ang iyong mga preference."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Naka-on"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Naka-off"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Mga Opsyon"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Pisikal na keyboard"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Gumamit ng on-screen na keyboard"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Panatilihin ito sa screen habang aktibo ang pisikal na keyboard"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Mga bounce key"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Binabalewala ng keyboard ang mabilis na paulit-ulit na pagpindot sa parehong key sa loob ng <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Mga slow key"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Ina-adjust sa <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms kung gaano dapat katagal pindutin ang key para mag-activate"</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="2396247040177734245">"Gamitin ang pisikal na keyboard para kontrolin ang mouse."</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Gawing dilaw ang fill ng pointer"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Gawing pink ang fill ng pointer"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Gawing asul ang fill ng pointer"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Istilo ng stroke ng pointer"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Puti"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Itim"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Wala"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Matuto ng mga galaw sa touchpad"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"trackpad, track pad, mouse, cursor, scroll, swipe, right click, click, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"right click, tap"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Napiling user: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Pagsasalita"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Bilis ng pointer"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Scale ng pointer"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Bawasan ang scale ng pointer"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Dagdagdan ang scale ng pointer"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Game Controller"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"I-redirect ang pag-vibrate"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Magpadala ng pag-vibrate sa controller ng laro kapag nakakonekta"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Magpatuloy pa rin"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Kanselahin"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Mga setting ng pag-magnify"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"One-finger na pag-pan"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Igalaw ang magnifier gamit ang 1 daliri"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"I-drag ang 1 daliri para gumalaw sa screen"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Galawin ang magnification area sa pag-drag sa 1 daliri."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Galawin ang magnification area sa pag-drag sa 2 daliri."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Hindi available habang naka-magnify ang isang bahagi lang ng screen"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Mag-tap ng button upang mag-zoom"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Mabilisang mag-zoom in sa screen para palakihin ang content"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Para mag-zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify&lt;br/&gt; {1,number,integer}. I-tap ang screen&lt;br/&gt; {2,number,integer}. I-drag ang 2 daliri para gumalaw sa screen&lt;br/&gt; {3,number,integer}. Mag-pinch gamit ang 2 daliri para i-adjust ang pag-zoom&lt;br/&gt; {4,number,integer}. Gamitin ang shortcut para ihinto ang pag-magnify&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Para mag-zoom in nang pansamantala:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Tiyaking nakatakda sa full screen ang iyong uri ng pag-magnify&lt;br/&gt; {1,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify&lt;br/&gt; {2,number,integer}. Pumindot nang matagal kahit saan sa screen&lt;br/&gt; {3,number,integer}. I-drag ang daliri para gumalaw sa screen&lt;br/&gt; {4,number,integer}. Iangat ang daliri para ihinto ang pag-magnify"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Para mag-zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify&lt;br/&gt; {1,number,integer}. I-tap ang screen&lt;br/&gt; {2,number,integer}. I-drag ang 2 daliri para gumalaw sa screen&lt;br/&gt; {3,number,integer}. Mag-pinch gamit ang 2 daliri para i-adjust ang pag-zoom&lt;br/&gt; {4,number,integer}. Gumamit ng shortcut para ihinto ang pag-magnify&lt;br/&gt;&lt;br/&gt; Puwede ka ring mag-zoom in pansamantala at higit pa."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Para mag-zoom in:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gamitin ang shortcut para simulan ang pag-magnify&lt;br/&gt; {1,number,integer}. I-tap ang screen&lt;br/&gt; {2,number,integer}. I-drag ang 1 o 2 daliri para gumalaw sa screen&lt;br/&gt; {3,number,integer}. Mag-pinch gamit ang 2 daliri para i-adjust ang pag-zoom&lt;br/&gt; {4,number,integer}. Gumamit ng shortcut para ihinto ang pag-magnify&lt;br/&gt;&lt;br/&gt; Puwede ka ring mag-zoom in pansamantala at higit pa."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Kapag naka-on ang pag-magnify, makakapag-zoom in ka sa iyong screen.\n\n"<b>"Para mag-zoom"</b>", simulan ang pag-magnify, pagkatapos ay mag-tap kahit saan sa screen.\n"<ul><li>"Mag-drag ng 2 o higit pang daliri para mag-scroll"</li>\n<li>"Mag-pinch ng 2 o higit pang daliri para isaayos ang pag-zoom"</li></ul>\n\n<b>"Para mag-zoom pansamantala"</b>", simulan ang pag-magnify, pagkatapos ay pumindot nang matagal kahit saan sa screen.\n"<ul><li>"Mag-drag para gumalaw-galaw sa screen"</li>\n<li>"Iangat ang daliri para mag-zoom out"</li></ul>\n\n"Hindi ka makakapag-zoom in sa keyboard o navigation bar."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Page <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> sa <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Shortcut ng button ng accessibility"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"I-tap ang naka-float na button"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Galaw para sa accessibility"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"I-tap ang button ng accessibility <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> sa ibaba ng screen. Para magpalipat-lipat sa mga feature, pindutin nang matagal ang button ng accessibility."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Mag-swipe pataas mula sa ibaba ng screen gamit ang 2 daliri.\n\nPara magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang 2 daliri at i-hold ang mga ito."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Mag-swipe pataas mula sa ibaba ng screen gamit ang 3 daliri.\n\nPara magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang 3 daliri at i-hold ang mga ito."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Mag-swipe pataas mula sa ibabang bahagi ng screen. Para magpalipat-lipat sa mga feature, mag-swipe pataas at i-hold ito.}one{Mag-swipe pataas gamit ang # daliri mula sa ibaba ng screen. Para magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang # daliri at i-hold ito.}other{Mag-swipe pataas gamit ang # na daliri mula sa ibaba ng screen. Para magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang # na daliri at i-hold ito.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Higit pang opsyon"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Matuto pa tungkol sa <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Mga volume key"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"mga volume key"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Pindutin nang matagal ang parehong volume key"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"I-double tap ang screen gamit ang dalawang daliri"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-finger na pag-double tap"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Mabilisang i-tap ang screen nang dalawang beses gamit ang %1$d (na) daliri"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Pag-tap nang tatlong beses"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Mabilisang i-tap ang screen nang %1$d (na) beses. Posibleng mapabagal nito ang iyong device."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-finger na pag-double tap"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Mabilis na i-tap ang screen nang {0,number,integer} (na) beses gamit ang dalawang daliri"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"I-triple tap ang screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"pag-tap nang tatlong beses"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Mabilis na i-tap ang screen nang {0,number,integer} beses. Posibleng mapabagal ng shortcut na ito ang iyong device"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Advanced"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Nakatakda sa <xliff:g id="SERVICE">%1$s</xliff:g> ang button na Accessibility. Upang gumamit ng pag-magnify, pindutin nang matagal ang button na Accessibility, pagkatapos ay piliin ang pag-magnify."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Nakatakda sa <xliff:g id="SERVICE">%1$s</xliff:g> ang galaw ng accessibility. Para magamit ang pag-magnify, mag-swipe pataas gamit ang dalawang daliri mula sa ibaba ng screen at i-hold. Pagkatapos ay piliin ang pag-magnify."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Hindi gumagana nang maayos ang serbisyong ito."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Mga shortcut sa pagiging accessible"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Ipakita sa Mga Mabilisang Setting"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Pula-berde"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Pula-berde"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Pula at berde, mahina sa berde"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Pula at berde, mahina sa pula"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Asul-dilaw"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Grayscale"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensity"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Hirap makakita ng berde, deuteranomaly"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Hirap makakita ng pula, protanomaly"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Hindi available para sa grayscale mode o kapag naka-disable ang pagtatama ng kulay"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deuteranomaly"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaly"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaly"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Extra dim"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Gawing extra dim ang screen"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Dilaw"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Bigyan ang <xliff:g id="SERVICE">%1$s</xliff:g> ng ganap na kontrol sa iyong device?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"Kailangan ng <xliff:g id="SERVICE">%1$s</xliff:g> na:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Dahil pinipigilan ng isang app ang kahilingan ng pahintulot, hindi ma-verify ng Mga Setting ang iyong tugon."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Humihiling ang <xliff:g id="SERVICE">%1$s</xliff:g> ng ganap na kontrol sa device na ito. Maaaring basahin ng serbisyo ang screen at kumilos sa ngalan ng mga user na may mga pangangailangan sa accessibility. Hindi naaangkop ang ganitong antas ng kontrol para sa karamihan ng mga app."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Naaangkop ang ganap na kontrol sa mga app na tumutulong sa mga pangangailangan mo sa accessibility, pero hindi sa karamihan ng mga app."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Tingnan at kontrolin ang screen"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Mababasa nito ang lahat ng content na nasa screen at makakapagpakita ito ng content sa iba pang app."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Tumingin at magsagawa ng mga pagkilos"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Masusubaybayan nito ang iyong mga pakikipag-ugayan sa isang app o hardware na sensor, at puwede itong makipag-ugnayan sa mga app para sa iyo."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Payagan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tanggihan"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"I-off"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Wala}=1{Naitakda ang 1 iskedyul}one{Naitakda ang # iskedyul}other{Naitakda ang # na iskedyul}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Huwag Istorbohin"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Mga Priyoridad na Mode"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Magdagdag ng mode"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Bawasan ang mga abala at kontrolin ang iyong atensyon sa pamamagitan ng mga mode para sa pagtulog, pagtatrabaho, pagmamaneho, at kahit ano pa."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Gumawa ng sarili mong mode"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Makakuha lang ng notification mula sa mahahalagang tao at app"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Magtakda ng iskedyul"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Nakabatay ang iskedyul sa"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Araw at petsa"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 AM - 5 PM tuwing weekday\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Mga event sa kalendaryo"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Aktibo ang {mode_1}}=2{Aktibo ang {mode_1} at {mode_2}}=3{Aktibo ang {mode_1}, {mode_2}, at {mode_3}}one{Aktibo ang {mode_1}, {mode_2}, at # pa}other{Aktibo ang {mode_1}, {mode_2}, at # pa}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mode ang puwedeng awtomatikong mag-on}one{# mode ang puwedeng awtomatikong mag-on}other{# na mode ang puwedeng awtomatikong mag-on}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"NAKA-ON"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Hindi nakatakda"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Naka-disable"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Gumawa ng mode"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Custom"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"I-on na"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"I-off"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Hindi nakita ang mode"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limitahan ang mga pagkaantala"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"I-block ang mga pagkaantala at abala"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"I-set up ang <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"I-on ang Huwag Istorbohin"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Puwedeng makaabala ang mga alarm at tunog ng media"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Mga Iskedyul"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"I-delete ang mga iskedyul"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"I-delete"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"I-rename"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"I-delete"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"I-delete ang \"<xliff:g id="MODE">%1$s</xliff:g>\" mode?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"I-edit"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Mga Iskedyul"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Iskedyul"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Awtomatikong i-on"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Magdagdag ng kalendaryo"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Gamitin ang iyong kalendaryo"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Iiskedyul"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Magtakda ng iskedyul"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Kailan awtomatikong io-on"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Iskedyul ng event"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"I-on kapag mga event para sa"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Kapag ang sagot sa invite ay"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Iskedyul na oras"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Iskedyul"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> (na) oras, <xliff:g id="MINUTES">%2$d</xliff:g> (na) minuto"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Iskedyul"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Payagan ang mga abalang tumutunog"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"I-block ang visual na abala"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Payagan ang visual na signal"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Mga notification na makakarating sa iyo"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Mga karagdagang pagkilos"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Mga filter ng notification"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Higit pang setting"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Naka-off}=1{Naka-off / 1 mode ang puwedeng awtomatikong mag-on}one{Naka-off / # mode ang puwedeng awtomatikong mag-on}other{Naka-off / # na mode ang puwedeng awtomatikong mag-on}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Mga setting ng display"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Mga opsyon sa display"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Grayscale"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"i-enable ang madilim na tema"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"I-switch ang OS at mga app para piliin ang maliwanag na text sa madilim na background, na posibleng mas magaan sa mata at mas nakakatipid ng baterya sa ilang device"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Walang pagbabago sa display}=1{{effect_1}}=2{{effect_1} at {effect_2}}=3{{effect_1}, {effect_2}, at {effect_3}}one{{effect_1}, {effect_2}, at # pa}other{{effect_1}, {effect_2}, at # pa}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Limitahan kung ano ang puwedeng mag-abiso sa iyo"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Walang fini-filter na abala"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Mga opsyon sa display para sa mga naka-filter na notification"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Kapag naka-on ang Huwag Istorbohin"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Walang tunog mula sa mga notification"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"buksan ang notification"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Payagan ang pag-snooze ng notification"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Notification dot sa icon ng app"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Mga bundle ng notification"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Mga Bubble"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Mga Bubble"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"I-bubble ang pag-uusap na ito"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Hindi sinusuportahan ng app na ito ang mga pinahusay na setting"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Higit pang setting"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"May higit pang setting na available sa loob ng app na ito"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Mga Adaptive na Notification"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Gumamit ng mga adaptive na notification"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kapag nakatanggap ka ng maraming notification sa loob ng maikling panahon, hihinaan ng iyong telepono ang volume at imi-minimize nito ang mga pop-up sa screen sa loob ng hanggang dalawang minuto. Ang mga tawag, alarm, at priyoridad na pag-uusap ay magva-vibrate, tutunog, o lalabas pa rin sa screen, at madaling makikita ang lahat ng notification kapag nag-swipe ka pababa mula sa itaas ng screen."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Cooldown sa notification"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Gumamit ng cooldown sa notification"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kapag nakatanggap ka ng maraming notification sa loob ng maikling panahon, hihinaan ng iyong device ang volume nito at imi-minimize nito ang mga alerto sa loob ng hanggang 2 minuto. Hindi maaapektuhan ang mga tawag, alarm, at priyoridad na pag-uusap. \n\nMakikita ang mga notification na matatanggap habang cooldown sa pamamagitan ng paghila pababa mula sa itaas ng screen."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Ilapat sa mga profile sa trabaho"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Ilapat sa mga app ng profile sa trabaho"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Mga serbisyong pantulong sa VR"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Mga Kategorya"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Iba Pa"</string>
     <string name="no_channels" msgid="4716199078612071915">"Walang anumang notification para sa app na ito"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Ipakita ang mga hindi ginagamit na kategorya"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Mga karagdagang setting sa app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Ipakita ang mga hindi ginagamit"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Itago ang mga hindi ginagamit"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Mga Pag-uusap"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Lahat ng pag-uusap"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"lahat ng pag-uusap"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Mga priyoridad na pag-uusap"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"mga priyoridad na pag-uusap"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Wala"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Mga app na puwedeng umabala"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Mga napiling app"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Wala"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Lahat"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Walang app na puwedeng makaabala}=1{Puwedeng makaabala ang {app_1}}=2{Puwedeng makaabala ang {app_1} at {app_2}}=3{Puwedeng makaabala ang {app_1}, {app_2}, at {app_3}}one{Puwedeng makaabala ang {app_1}, {app_2}, at # pa}other{Puwedeng makaabala ang {app_1}, {app_2}, at # pa}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Trabaho)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Nagkakalkula…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Payagan ang mga app na mag-override"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Mga app na puwedeng umabala"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Pumili pa ng mga app"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Walang puwedeng makaabala"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Walang taong puwedeng makaabala"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Puwedeng makaabala ang ilang tao"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Puwedeng makaabala ang mga umuulit na tumatawag"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Puwedeng makaabala ang lahat ng tao"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Mga umulit na tumatawag"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Payagan ang mga umuulit na tumatawag"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Gawing mag-a-alarm lang sa loob ng isang oras hanggang {time}}one{Gawing mag-a-alarm lang sa loob ng # oras hanggang {time}}other{Gawing mag-a-alarm lang sa loob ng # na oras hanggang {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Gawing mag-a-alarm lang hanggang <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Gawing palaging mang-abala"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"I-rename"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Icon na baguhin"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Icon na baguhin"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"I-edit ang mode"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Gumawa ng mode"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Custom na mode"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Pangalan ng mode"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Mga event sa kalendaryo"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Routine sa oras ng pagtulog"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Habang nagmamaneho"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Mga setting ng app"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Impormasyon at mga setting sa <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Pinapamahalaan ng <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"I-disable ang <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Hindi kailanman mag-o-on ang mode na ito kapag naka-disable"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"I-disable"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"I-enable ang <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Posibleng awtomatikong mag-on ang mode na ito batay sa mga setting nito"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"I-enable"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Magtakda ng mode na sumusunod sa regular na iskedyul"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Magtakda ng mode para mag-sync sa mga event sa kalendaryo at sagot sa imbitasyon"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Magdisenyo ng nakakakalmang routine sa pagtulog. Magtakda ng mga alarm, padilimin ang screen, at i-block ang mga notification."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Unahin ang kaligtasan sa kalsada para sa naka-focus na pagmamanehong walang abala"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"I-block ang mga abala o istorbo sa iyong device para makapag-focus"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Alisin ang lahat ng istorbo para sa tahimik na kapaligiran"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"I-personalize ang mga karanasan sa device at mga setting para sa iba\'t ibang user"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Bawasan ang mga istorbo sa pamamagitan ng pagbibigay ng pahintulot sa mahahalagang tao at app lang para makipag-ugnayan sa iyo"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Babala"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Isara"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Feedback tungkol sa device"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Case"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Baterya"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Panel ng Mga Setting"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Force desktop mode"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Force experimental desktop mode sa mga pangalawang display"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"I-enable ang mga freeform window"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"I-enable ang freeform windows sa secondary display"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"I-enable ang hindi nare-resize sa multi-window"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Nagpapahintulot sa mga hindi nare-resize na app na lumabas sa multi-window"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"I-override ang force-dark"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobile data"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Para pahusayin ang experience sa device, puwede pa ring mag-scan ng mga Wi-Fi network ang mga app at serbisyo anumang oras, kahit habang naka-off ang Wi‑Fi. Magagamit ito, halimbawa, para pahusayin ang mga feature at serbisyong batay sa lokasyon. Mababago mo ito sa mga setting ng pag-scan ng Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Baguhin"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Nakakonekta"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Pansamantalang nakakonekta"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Pansamantalang ginagamit ang <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Gamitin ang pag-pin ng app"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Gamitin ang mga opsyon ng developer"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Gamitin ang serbisyo ng pag-print"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Payagan ang maraming user"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Payagan ang pag-switch ng user"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"payagan, maraming, user, pahintulot, marami"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"maramihan, mga user, mga profile, mga tao, mga account, lumipat, marami"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Gamitin ang wireless na pag-debug"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Piliin ang makikita mo sa iyong screen kapag naka-dock ang iyong tablet. Posibleng gumamit ng mas maraming enerhiya ang iyong device kapag gumagamit ng screen saver."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"I-customize"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"I-customize ang <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Kinakailangang mag-reboot para ma-enable ang freeform na suporta"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Kinakailangang mag-reboot para sapilitang mailapat ang desktop mode sa mga pangalawang display."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Kinakailangang mag-reboot para ma-enable ang freeform window na suporta."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Kinakailangan ang pag-reboot para ma-update ang availability ng mga freeform na window."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Kinakailangan ang pag-reboot para ma-enable ang mga freeform na window sa mga pangalawang display."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Mag-reboot ngayon"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Mag-reboot sa ibang pagkakataon"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Spatial Audio"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Rose"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Tapos na"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"I-save"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Kanselahin"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Default"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Katamtaman"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Naka-on"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Naka-off"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Naka-on"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% sa kaliwa, %2$d%% sa kanan"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% sa kanan, %2$d%% sa kaliwa"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nakikita ang pangalan ng device sa mga app na na-install mo. Puwede rin itong makita ng ibang tao kapag ikaw ay kumonekta sa mga Bluetooth device, kumonekta sa Wi-Fi network, o nag-set up ng Wi-Fi hotspot."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Kasarian para sa grammar"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Pumili ng Kasarian para sa grammar"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Makinig sa stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Mag-scan ng QR code ng audio stream para makinig sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Hindi mae-edit ang password habang nagbabahagi. Para palitan ang password, i-off muna ang pag-share ng audio."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Scanner ng QR code"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Maghanap sa Mga Setting"</string>
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 49cd5aa..55fcf55 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Uyku vakti"</item>
-    <item msgid="4152450357280759894">"Araba kullanma"</item>
-    <item msgid="7096549258219399423">"Etkileyici"</item>
-    <item msgid="2760716776980432977">"Yönetilen"</item>
-    <item msgid="601734478369121764">"Yıldız"</item>
-    <item msgid="6243809315432780521">"Takvim"</item>
-    <item msgid="4913577903148415331">"Saat"</item>
-    <item msgid="3653377604690057780">"Sinema"</item>
-    <item msgid="3843711267408385410">"Çiçek"</item>
+    <item msgid="2750940760340557109">"Yarım ay"</item>
+    <item msgid="8513969636586738035">"Araba"</item>
+    <item msgid="957392343846370509">"İnsan aklı"</item>
+    <item msgid="6734164279667121348">"Takvim"</item>
+    <item msgid="4139559120353528558">"Saat"</item>
+    <item msgid="5157711296814769020">"Plaj şemsiyesi"</item>
+    <item msgid="6635328761318954115">"Çadır"</item>
+    <item msgid="1711994778883392255">"Film rulosu"</item>
+    <item msgid="9097658401859604879">"Oyun kumandası"</item>
+    <item msgid="755931364157422565">"Spor salonu dambılı"</item>
+    <item msgid="8894207806795738429">"Top atan bir kişi"</item>
+    <item msgid="2274801572149555103">"Tekme atan bir kişi"</item>
+    <item msgid="8795037201506843325">"Yüzme"</item>
+    <item msgid="3558421426169430451">"Doğa yürüyüşü yapan bir kişi"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Atölye araçları"</item>
+    <item msgid="4595330511709890409">"Evrak çantası"</item>
+    <item msgid="8352738347856724389">"Yıldız"</item>
+    <item msgid="7082783098151998721">"Nilüfer çiçeği"</item>
+    <item msgid="5772220259409264724">"Şef"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 73efd10..0efff55 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Askıya alındı"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Bilinmiyor"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Önizleme"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kodu"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Küçült"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Büyüt"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Her zaman"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"İşitme cihazı ayarları"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Kısayol, işitme cihazı uyumluluğu"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Hazır Ayar"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Odyoloğunuz tarafından programlanmış ön ayar yok"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Hazır ayar güncellenemedi"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Ses çıkışı"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Ses çıkışı hakkında"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Ayarlar\'da bu uygulama için dil seçimi mevcut değil."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Dil, uygulamada bulunan dillerden farklı olabilir. Bazı uygulamalar bu ayarı desteklemeyebilir."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Her uygulamanın dilini ayarlayın."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Sisteminiz, uygulamalarınız ve web siteleriniz, tercih ettiğiniz diller arasındaki ilk desteklenen dili kullanır."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Cihazınız, uygulamalarınız ve web siteleriniz, tercih ettiğiniz dil listesindeki ilk desteklenen dili kullanır.\n\nAyrıca birçok uygulama; tarihlerin, sayıların ve birimlerin biçimini belirlemek için tercih ettiğiniz dile ait bölgeyi de kullanır. Bölgenizi değiştirmek için bir dil ekledikten sonra tercih ettiğiniz bölgeyi seçin."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Her uygulamaya özel bir dil seçmek için uygulama dil ayarlarına gidin."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Uygulama dilleri hakkında daha fazla bilgi"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sistem dili %s olarak değiştirilsin mi?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Kapalı"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Açık - # uygulamanın konuma erişimi var}other{Açık - # uygulamanın konuma erişimi var}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yükleniyor…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Yakındaki cihazlarla bağlanma izni olan uygulamalar, bağlı cihazların göreli konumunu belirleyebilir."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Yakındaki cihazlarla bağlanma izni olan uygulamalar, bağlı cihazların göreli konumunu belirleyebilir."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Uygulamaların ve hizmetlerin konum erişimi kapalı. Yine de arayarak veya mesaj göndererek bir acil durum numarasına ulaştığınızda cihazınızın konumu acil durum müdahale ekiplerine gönderilebilir."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Konum ayarları hakkında daha fazla bilgi edinin"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Değiştirmek için ChromeOS Ayarları &gt; Gizlilik ve güvenlik &gt; Gizlilik denetimleri &gt; Konum erişimi bölümüne gidin"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Yüz ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Yüz, parmak izi ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Yüz, parmak izleri ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Uzaktan Kimlik Doğrulayıcı Kilidini Açma"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Kol saati eklendi"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kol saatinizi kurma"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saat ile Kilit Açma hakkında daha fazla bilgi"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Kol saati ekle"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kol saatini kaldır"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Parmak İzi ve Yüz Tanıma Kilidi"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Yüz Tanıma ve Parmak İzi Kilidi"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"İş profili için Yüz Tanıma ve Parmak İzi Kilidi"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Kurulum gerekiyor"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Yüz ve parmak izleri eklendi"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Özel alan kuruluyor…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Özel alan kurulamadı"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tekrar Dene"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Çıkış"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Özel alan kullanılamıyor.\nOlası nedenleri görüntüleyin"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Olası nedenleri görüntüleyin"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Özel alan için yeni bir kilit seçilsin mi?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Yalnızca özel alanda kullanılacak yeni bir kilit ayarlayabilir veya cihazınızın kilidini açmak için kullandığınız kilidin aynısını kullanabilirsiniz"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Ekran kilidi kullan"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Cihaz Yeniden Başlatılsın mı?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ayrıntılı NFC günlük kaydı, yalnızca geliştirme amaçlıdır. Hata raporlarında, özel bilgiler içerebilen ek NFC verileri yer alır. Bu ayarı değiştirmek için cihazınızı yeniden başlatın."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Yeniden başlat"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Açık"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Kapalı"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Harici Ekran"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Harici ekran kullanın"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ekran çözünürlüğü"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Harici ekranın bağlantısı kesildi"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Döndürme"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standart"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Döndürme veya çözünürlük ayarını değiştirmek, çalışmakta olan uygulamaları durdurabilir"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Ekranınızı yansıtmak için cihazınızın harici bir ekrana bağlı olması gerekir"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Diğer seçenekler"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Yayın"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"ayna"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Kablosuz görüntülemeyi etkinleştir"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Uyarlanabilir"</string>
     <string name="brightness" msgid="6216871641021779698">"Parlaklık düzeyi"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Otomatik parlaklık"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Otomatik parlaklık hakkında"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Ekranınızın parlaklığı, bulunduğunuz ortama ve aktivitelerinize göre otomatik olarak ayarlanır. Otomatik parlaklık özelliğinin tercihlerinizi öğrenmesine yardımcı olmak için kaydırma çubuğunu manuel olarak hareket ettirebilirsiniz."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Açık"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Kapalı"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Seçenekler"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Erişilebilirlik"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziksel klavye"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Ekran klavyesi kullan"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Fiziksel klavye etkin durumdayken ekranda tut"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Geri sekme tuşları"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Klavye, aynı tuşa <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms. içinde hızlı bir şekilde tekrarlanan basma işlemlerini yoksayar"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Yavaş tuşlar"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Bir tuşa basma işleminin etkinleştirileceği süreyi <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms. olarak 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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Fareyi kontrol etmek için fiziksel klavye kullanılsı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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"İşaretçi dolgu stilini sarı yapın"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"İşaretçi dolgu stilini pembe yapın"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"İşaretçi dolgu stilini mavi yapın"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"İşaretçi çizgi stili"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Beyaz"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Siyah"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Yok"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Dokunmatik alan hareketlerini öğren"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"dokunmatik yüzey, dokunma yüzeyi, fare, imleç, kaydırma, sağ tıklama, tıklama, işaretçi"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"sağ tıklama, dokunma"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Kullanıcı tarafından <xliff:g id="LAYOUT_LABEL">%s</xliff:g> seçildi"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Konuşma"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"İşaretçi hızı"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"İşaretçi boyutu"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"İşaretçi boyutunu küçült"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"İşaretçi boyutunu büyüt"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Oyun Denetleyici"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Titreşimi yönlendir"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Bağlandığında oyun denetleyiciye titreşim gönder"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Yine de devam et"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"İptal"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Büyütme ayarları"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Tek parmakla kaydırma"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Büyüteci 1 parmağınızla hareket ettirin"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Ekranda gezinmek için parmağınızı sürükleyin"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Tek parmağınızı sürükleyerek büyütme alanını taşıyın."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"İki parmağınızı sürükleyerek büyütme alanını taşıyın."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ekranın yalnızca bir kısmını büyütürken kullanılamaz"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Yakınlaştırmak için bir düğmeye dokunun"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"İçerikleri büyütmek için ekranı hızlıca yakınlaştırın"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Yakınlaştırmak için:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Büyütmeyi başlatmak için kısayolu kullanın&lt;br/&gt; {1,number,integer}. Ekrana dokunun&lt;br/&gt; {2,number,integer}. Ekranda gezinmek için 2 parmağınızı sürükleyin&lt;br/&gt; {3,number,integer}. Yakınlaştırmayı ayarlamak için 2 parmağınızla sıkıştırın&lt;br/&gt; {4,number,integer}. Büyütmeyi durdurmak için kısayolu kullanın&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Geçici bir süreliğine yakınlaştırmak için:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Büyütme yönteminin tam ekran olarak ayarlandığından emin olun&lt;br/&gt; {1,number,integer}. Büyütmeyi başlatmak için kısayolu kullanın&lt;br/&gt; {2,number,integer}. Ekranda herhangi bir yere dokunup basılı tutun&lt;br/&gt; {3,number,integer}. Ekranda gezinmek için parmağınızı sürükleyin&lt;br/&gt; {4,number,integer}. Büyütmeyi durdurmak için parmağınızı kaldırın"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Yakınlaştırmak için:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Büyütmeyi başlatmak için kısayol kullanın&lt;br/&gt; {1,number,integer}. Ekrana dokunun&lt;br/&gt; {2,number,integer}. Ekranda gezinmek için 2 parmağınızı sürükleyin&lt;br/&gt; {3,number,integer}. Yakınlaştırmayı ayarlamak için 2 parmağınızla sıkıştırın&lt;br/&gt; {4,number,integer}. Büyütmeyi durdurmak için kısayol kullanın&lt;br/&gt;&lt;br/&gt; Ayrıca geçici olarak yakınlaştırabilir ve diğer işlemleri yapabilirsiniz."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Yakınlaştırmak için:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Büyütmeyi başlatmak için kısayol kullanın&lt;br/&gt; {1,number,integer}. Ekrana dokunun&lt;br/&gt; {2,number,integer}. Ekranda hareket etmek için 1 veya 2 parmağınızı sürükleyin&lt;br/&gt; {3,number,integer}. Yakınlaştırmayı ayarlamak için 2 parmağınızla sıkıştırın&lt;br/&gt; {4,number,integer}. Büyütmeyi durdurmak için kısayol kullanın&lt;br/&gt;&lt;br/&gt; Ayrıca geçici olarak yakınlaştırabilir ve diğer işlemleri yapabilirsiniz."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Büyütme açıldığında ekranınızda yakınlaştırma yapabilirsiniz.\n\n"<b>"Yakınlaştırmak için"</b>", büyütmeyi başlatın, ardından ekranda herhangi bir yere dokunun.\n"<ul><li>"Kaydırmak için 2 veya daha fazla parmağınızı sürükleyin"</li>\n<li>"Yakınlaştırmayı ayarlamak için 2 veya daha fazla parmağınızı birbirine yaklaştırın"</li></ul>\n\n<b>"Geçici olarak yakınlaştırmak için"</b>", büyütmeyi başlatın, ardından ekranda herhangi bir yere dokunup basılı tutun.\n"<ul><li>"Ekranda hareket etmek için sürükleyin"</li>\n<li>"Uzaklaştırmak için parmağınızı çekin"</li></ul>\n\n"Klavyede veya gezinme çubuğundayken yakınlaştırma yapamazsınız."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Sayfa <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Erişilebilirlik düğmesi kısayolu"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Kayan düğmeye dokunun"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Erişilebilirlik hareketi"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekranın alt kısmındaki erişilebilirlik düğmesine <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> dokunun. Özellikler arasında geçiş yapmak için erişilebilirlik düğmesine dokunup basılı tutun."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 parmağınızla ekranın altından yukarı kaydırın.\n\nÖzellikler arasında geçiş yapmak için 2 parmağınızla yukarı kaydırıp basılı tutun."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 parmağınızla ekranın altından yukarı kaydırın.\n\nÖzellikler arasında geçiş yapmak için 3 parmağınızla yukarı kaydırıp basılı tutun."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Ekranın alt kısmından yukarı doğru kaydırın. Özellikler arasında geçiş yapmak için yukarı doğru kaydırıp basılı tutun.}other{# parmağınızla ekranın alt kısmından yukarı doğru kaydırın. Özellikler arasında geçiş yapmak için # parmağınızla yukarı doğru kaydırıp basılı tutun.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Diğer seçenekler"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> hakkında ek bilgi"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Ses seviyesi tuşları"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"ses seviyesi tuşları"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Ses seviyesi tuşlarının ikisini birden basılı tutun"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"İki parmağınızla ekrana iki kez dokunun"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d parmağınızla iki kez dokunma"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Ekrana %1$d parmağınızla iki kez hızlıca dokunun"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Üç kez dokunma"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ekrana %1$d kez hızlıca dokunun. Bu kısayol cihazınızı yavaşlatabilir."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d parmağınızla iki kez dokunma"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"İki parmağınızla ekrana {0,number,integer} kez hızlıca dokunun"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrana üç kez dokun"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"üç kez dokunma"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ekrana {0,number,integer} kez hızlıca dokunun. Bu kısayol cihazınızı yavaşlatabilir"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Gelişmiş"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Erişilebilirlik düğmesi <xliff:g id="SERVICE">%1$s</xliff:g> olarak ayarlandı. Büyütmeyi kullanmak için Erişilebilirlik düğmesine dokunup basılı tutun, ardından büyütmeyi seçin."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Erişilebilirlik hareketi <xliff:g id="SERVICE">%1$s</xliff:g> hizmetine ayarlandı. Büyütme özelliğini kullanmak için iki parmağınızla ekranın altından kaydırıp basılı tutun. Ardından büyütmeyi seçin."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Bu hizmet hatalı çalışıyor."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Erişilebilirlik kısayolları"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Hızlı Ayarlar\'da göster"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Kırmızı-yeşil"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Kırmızı-yeşil"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Kırmızı-yeşil, yeşil zayıf"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Kırmızı-yeşil, kırmızı zayıf"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Mavi-sarı"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Gri tonlama"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Yoğunluk"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Yeşil zayıf, yeşil renk körlüğü"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Kırmızı zayıf, protanomali"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Gri tonlama modunda veya renk düzeltme devre dışıyken kullanılamaz"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Yeşil renk körlüğü"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Kırmızı renk körlüğü"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomali"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Ekstra loş"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Ekranı ekstra loş yap"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Camgöbeği"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Sarı"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Macenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> hizmetinin cihazınızı tamamen kontrol etmesine izin veriyor musunuz?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> şunları gerektiriyor:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Bir uygulama bir izin isteğinin anlaşılmasını engellediğinden, Ayarlar, yanıtınızı doğrulayamıyor."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>, bu cihazın tam kontrolünü istiyor. Hizmet, ekranı okuyabilir ve erişilebilirlik gereksinimleri olan kullanıcıların adına hareket edebilir. Bu kontrol düzeyi, çoğu uygulama için uygun değildir."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Erişebilirlik ihtiyaçlarınıza yardımcı olan uygulamalara tam kontrol verilmesi uygundur ancak diğer pek çok uygulama için uygun değildir."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekranı görüntüleme ve kontrol etme"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ekrandaki tüm içeriği okuyabilir ve içeriği diğer uygulamaların üzerinde gösterebilir."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"İşlemleri görüntüleme ve gerçekleştirme"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Bir uygulama veya donanım sensörüyle etkileşimlerinizi takip edebilir ve sizin adınıza uygulamalarla etkileşimde bulunabilir."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İzin ver"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Reddet"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Kapat"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Yok}=1{1 program ayarlandı}other{# program ayarlandı}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Rahatsız Etmeyin"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Öncelik Modları"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Mod ekleyin"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Uyku, çalışma, sürüş gibi çeşitli modlarla dikkat dağıtan unsurları azaltıp istediğiniz yere odaklanın."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Kendi modunuzu oluşturun"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Yalnızca önemli kişiler ve uygulamalardan gelen bildirimleri alın"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Program ayarlama"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Program ölçütü:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Gün ve saat"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"hafta içi 09:00-17:00\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Takvim etkinlikleri"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} etkin}=2{{mode_1} ve {mode_2} etkin}=3{{mode_1}, {mode_2} ve {mode_3} etkin}other{{mode_1}, {mode_2} ve # mod daha etkin}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 mod otomatik olarak etkinleştirilebilir}other{# mod otomatik olarak etkinleştirilebilir}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"AÇIK"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Ayarlanmadı"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Devre dışı"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Mod oluşturun"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Özel"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Şimdi aç"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Kapat"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Mod bulunamadı"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Kesintileri sınırlayın"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Kesintileri ve dikkat dağıtan unsurları engelleyin"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> cihazını kur"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Rahatsız Etmeyin\'i açın"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Alarm ve medya sesleri kesintiye neden olabilir"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Programlar"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Programları sil"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Sil"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Yeniden adlandır"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Sil"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" modu silinsin mi?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Düzenle"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Programlar"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Programla"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Otomatik olarak aç"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Takvim ekleyin"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Takviminizi kullanın"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Program"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Program ayarlama"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Otomatik olarak açılma zamanı"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Etkinlik programı"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Şu etkinlikler sırasında aç:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Davet yanıtı şu olduğunda:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Zamana dayalı program"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Program"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> sa. <xliff:g id="MINUTES">%2$d</xliff:g> dk."</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Program"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Ses çıkaran kesintilere izin ver"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Görsel bildirimleri engelle"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Görsel sinyallere izin ver"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Alabileceğiniz bildirimler"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Diğer işlemler"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Bildirim filtreleri"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Diğer ayarlar"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Kapalı}=1{Kapalı/1 mod otomatik olarak açılabilir}other{Kapalı/# mod otomatik olarak açılabilir}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Ekran ayarları"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Görüntüleme seçenekleri"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Gri tonlama"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"koyu temayı etkinleştir"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"İşletim sistemini ve uygulamaları, koyu arka plan üzerinde açık renkli metin kullanacak şekilde değiştirin. Böylece gözünüz yorulmaz ve bazı cihazlarda önemli ölçüde pil tasarrufu yapabilirsiniz"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Ekranda değişiklik yok}=1{{effect_1}}=2{{effect_1} ve {effect_2}}=3{{effect_1}, {effect_2} ve {effect_3}}other{{effect_1}, {effect_2} ve # ayar daha}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Size gönderilebilecek bildirimleri sınırlandırın"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Kesintiler filtrelenmiyor"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Filtrelenen bildirimlerle ilgili ekran seçenekleri"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Rahatsız Etmeyin ayarı açık olduğunda"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Bildirimlerden sesli uyarı yok"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"bildirimi aç"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Bildirimin ertelenmesine izin ver"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Uygulama simgesinde bildirim noktası"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Bildirim paketleri"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Baloncuklar"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Baloncuklar"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bu görüşmeyi baloncuk olarak göster"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Bu uygulama, gelişmiş ayarları desteklemiyor"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Diğer ayarlar"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Bu uygulamada daha fazla ayar mevcut"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Uyarlanabilir Bildirimler"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Uyarlanabilir bildirimleri kullanın"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Kısa süre içinde çok sayıda bildirim aldığınızda telefonunuz iki dakika boyunca sesi kısar ve ekrandaki pop-up\'ları azaltır. Aramalar, alarmlar ve öncelikli görüşmeler titreşimle ve sesle uyarı vermeye veya ekranda görünmeye devam eder. Ayrıca parmağınızı ekranın üst kısmından aşağı kaydırarak tüm bildirimleri kolayca görebilirsiniz."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Bildirim bekleme süresi"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bildirim şiddetini düşürmeyi kullanın"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Kısa süre içinde çok sayıda bildirim aldığınızda cihazınız 2 dakika boyunca sesi kısar ve uyarıları azaltır. Aramalar, alarmlar ve öncelikli görüşmeler bu durumdan etkilenmez. \n\nBildirim şiddeti düşürülürken aldığınız bildirimlere ekranın üst tarafından aşağı doğru çekerek ulaşabilirsiniz."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"İş profillerine uygula"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"İş profili uygulamalarına uygulayın"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR yardımcı hizmetleri"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Kategoriler"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Diğer"</string>
     <string name="no_channels" msgid="4716199078612071915">"Bu uygulama herhangi bir bildirim yayınlamadı"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Kullanılmayan kategorileri göster"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Uygulamadaki ek ayarlar"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Kullanılmayan kategorileri göster"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Kullanılmayan kategorileri gizle"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Görüşmeler"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Tüm görüşmeler"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"tüm görüşmeler"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Öncelikli görüşmeler"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"öncelikli görüşmeler"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Yok"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Kesintiye neden olabilecek uygulamalar"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Seçili uygulamalar"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Yok"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tümü"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Hiçbir uygulama kesintiye neden olamaz}=1{{app_1} kesintiye neden olabilir}=2{{app_1} ve {app_2} kesintiye neden olabilir}=3{{app_1}, {app_2} ve {app_3} kesintiye neden olabilir}other{{app_1}, {app_2} ve # uygulama daha kesintiye neden olabilir}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (İş)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Hesaplanıyor…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Uygulamaların geçersiz kılmasına izin ver"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Kesintiye neden olabilecek uygulamalar"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Daha fazla uygulama seçin"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Hiçbir şey kesintiye neden olamaz"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Hiç kimse kesintiye neden olamaz"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Bazı kişiler kesintiye neden olabilir"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Tekrar arayanlar araya girebilir"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Tüm kişiler kesintiye neden olabilir"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Tekrar arayanlar"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Tekrar arayanlara izin ver"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Saat {time} olana kadar bir saat boyunca yalnızca alarmlar seçeneğine geç}other{Saat {time} olana kadar # saat boyunca yalnızca alarmlar seçeneğine geç}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Yalnızca şu saate kadar alarmlara geç: <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Her zaman kes seçeneğine değiştir"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Yeniden adlandır"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Simgeyi değiştir"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Simgeyi değiştirme"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Düzenleme modu"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Mod oluşturun"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Özel mod"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Mod adı"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Takvim etkinlikleri"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Uyku vakti rutini"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Araç kullanırken"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Uygulama ayarları"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ayarları ve bilgileri"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> tarafından yönetiliyor"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> kapatılsın mı?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Bu mod devre dışıyken hiçbir zaman açılmaz"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Devre dışı bırak"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> modu açılsın mı?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Bu mod, ayarlarına göre otomatik olarak açılabilir"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Etkinleştir"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Düzenli olarak belirli zamanlarda etkinleşen bir mod ayarlayın"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Takvim etkinlikleri ve davet yanıtlarına göre etkinleşen bir mod ayarlayın"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Rahatlatıcı bir uyku rutini tasarlayın. Alarm kurun, ekranı karartın ve bildirimleri engelleyin."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Araba kullanırken dikkatiniz dağılmadan yola odaklanmak için trafikte güvenliğe öncelik verin"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Odaklanmak için cihazınızdaki dikkat dağıtan veya kesintiye neden olan unsurları engelleyin"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Sessiz bir ortam için dikkat dağıtan tüm unsurları ortadan kaldırın"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Cihaz deneyimlerini ve ayarlarını farklı kullanıcılara göre kişiselleştirin"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Yalnızca önemli kişilerin ve uygulamaların size erişmesine izin vererek kesintileri en aza indirin"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Uyarı"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Kapat"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Bu cihazla ilgili geri bildirim gönder"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Kılıf"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pil"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Ayarlar Paneli"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Masaüstü modunu zorunlu kıl"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"İkincil ekranlarda deneysel masaüstü modunu zorunlu kıl"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Serbest biçimli pencereleri etkinleştir"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Serbest biçimli pencereleri ikincil ekranda etkinleştir"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Çoklu pencerede yeniden boyutlandırılamayan uygulamalara izin ver"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Çoklu pencerede yeniden boyutlandırılamayan uygulamalara izin verir"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Zorunlu koyu modu geçersiz kıl"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobil veri"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Uygulamalar ve hizmetler, cihaz deneyimini iyileştirmek için Kablosuz özelliği kapalı bile olsa kablosuz ağları herhangi bir zamanda tarayabilir. Bu özellik, örneğin konuma dayalı özellikleri ve hizmetleri iyileştirmek için kullanılabilir. Bunu kablosuz ağ taraması ayarlarından değiştirebilirsiniz."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Değiştir"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Bağlı"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Geçici olarak bağlandı"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Geçici olarak <xliff:g id="SUBNAME">%1$s</xliff:g> kullanılıyor"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Uygulama sabitlemeyi kullan"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Geliştirici seçeneklerini kullan"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Yazdırma hizmetini kullan"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Birden çok kullanıcıya izin ver"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Kullanıcı değişikliğine izin ver"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"izin ver, çoklu, kullanıcı, izin birden fazla"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"birden fazla, kullanıcılar, profiller, kişiler, hesaplar, geçiş, birçok"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Kablosuz hata ayıklamayı kullan"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Tabletiniz yuvaya yerleştirildiğinde ekranınızda nelerin görünmesini istediğinizi seçin. Ekran koruyucu kullanıldığında cihazınız daha fazla enerji tüketebilir."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Özelleştir"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Özelleştir <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Serbest biçimli desteğin etkinleştirilmesi için yeniden başlatma gerekir."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"İkincil ekranlarda masaüstü modunu zorlamak için yeniden başlatma gerekir."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Serbest biçimli desteğin etkinleştirilmesi için yeniden başlatma gerekir."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Serbest biçimli pencerelerin kullanım durumunun güncellenmesi için yeniden başlatma gerekir."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Serbest biçimli pencerelerin ikincil ekranlarda etkinleştirilmesi için yeniden başlatma gerekir."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Şimdi yeniden başlat"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Sonra yeniden başlat"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Üç Boyutlu Ses"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Gül pembesi"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Macenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Mor"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Bitti"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Kaydet"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"İptal"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Varsayılan"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Orta"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Açık"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Kapalı"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Açık"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Ses %%%1$d sol, %%%2$d sağ"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Ses %%%1$d sağ, %%%2$d sol"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Yüklediğiniz uygulamalar, cihazınızın adını görebilecek. Cihazınızın adı ayrıca Bluetooth cihazlara bağlandığınızda, kablosuz ağa bağlandığınızda veya kablosuz hotspot oluşturduğunuzda diğer kişiler tarafından görülecektir."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Dil bilgisine uygun cinsiyet"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Dil bilgisine uygun cinsiyet seçin"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Yayını dinle"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> adlı cihazda dinlemek için ses yayını QR kodunu tarayın"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Şifre, paylaşım sırasında düzenlenemez. Şifreyi değiştirmek için önce ses paylaşımını kapatın."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR kodu tarayıcı"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Ayarlar\'da ara"</string>
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index 07e21bf..6f3ed12 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Час сну"</item>
-    <item msgid="4152450357280759894">"Водіння"</item>
-    <item msgid="7096549258219399423">"Реалістичність"</item>
-    <item msgid="2760716776980432977">"Керованість"</item>
-    <item msgid="601734478369121764">"Зірка"</item>
-    <item msgid="6243809315432780521">"Календар"</item>
-    <item msgid="4913577903148415331">"Час"</item>
-    <item msgid="3653377604690057780">"Театр"</item>
-    <item msgid="3843711267408385410">"Квітка"</item>
+    <item msgid="2750940760340557109">"Півмісяць"</item>
+    <item msgid="8513969636586738035">"Автомобіль"</item>
+    <item msgid="957392343846370509">"Людський розум"</item>
+    <item msgid="6734164279667121348">"Календар"</item>
+    <item msgid="4139559120353528558">"Годинник"</item>
+    <item msgid="5157711296814769020">"Пляжна парасоля"</item>
+    <item msgid="6635328761318954115">"Намет"</item>
+    <item msgid="1711994778883392255">"Кіноплівка"</item>
+    <item msgid="9097658401859604879">"Ігровий контролер"</item>
+    <item msgid="755931364157422565">"Спортивна гантель"</item>
+    <item msgid="8894207806795738429">"Людина кидає м’яч"</item>
+    <item msgid="2274801572149555103">"Людина б’є ногою"</item>
+    <item msgid="8795037201506843325">"Плавання"</item>
+    <item msgid="3558421426169430451">"Людина в поході"</item>
+    <item msgid="7455070421232184932">"Гольф"</item>
+    <item msgid="5841773092449126508">"Інструменти для майстерні"</item>
+    <item msgid="4595330511709890409">"Портфель"</item>
+    <item msgid="8352738347856724389">"Зірка"</item>
+    <item msgid="7082783098151998721">"Квітка лотоса"</item>
+    <item msgid="5772220259409264724">"Керівник"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 2b05d96..c1cb8b0 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Призупинено"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Невідомо"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Переглянути"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR-код"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Зменшити"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Збільшити"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Завжди"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Налаштування слухового апарата"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Ярлик, сумісність зі слуховими апаратами"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Набір налаштувань"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Немає наборів налаштувань, запрограмованих вашим аудіологом"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Не вдалось оновити набір налаштувань"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Аудіовихід"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Про аудіовихід"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Вибір мови для цього додатка в налаштуваннях неможливий"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Мова може відрізнятися від мов, доступних у додатку. Деякі додатки можуть не підтримувати це налаштування."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Виберіть мову для кожного додатка."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Система, додатки й веб-сайти використовують першу підтримувану мову з вибраних вами."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Пристрій, додатки й вебсайти використовують першу підтримувану мову з вашого списку бажаних мов.\n\nБагато додатків також використовуватимуть формат дат, чисел і одиниць вимірювання, прийнятих у регіоні, що відповідає вибраній вами мові. Щоб змінити регіон, додайте мову, а потім виберіть потрібний регіон."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Щоб вибрати мову для кожного додатка, перейдіть у його налаштування мови."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Докладніше про мови додатків"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Змінити мову системи на таку: %s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Вимкнено"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Увімкнено / # додаток має доступ до геоданих}one{Увімкнено / # додаток має доступ до геоданих}few{Увімкнено / # додатки мають доступ до геоданих}many{Увімкнено / # додатків мають доступ до геоданих}other{Увімкнено / # додатка мають доступ до геоданих}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Завантаження…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Додатки з дозволами на доступ до пристроїв поблизу можуть визначати відносне розташування підключених пристроїв."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Додатки з дозволами на доступ до пристроїв поблизу можуть визначати відносне розташування підключених пристроїв."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ до геоданих вимкнено для додатків і сервісів. Однак дані про місцезнаходження вашого пристрою можуть надсилатися в екстрених випадках, якщо ви зателефонуєте або надішлете SMS на екстрений номер."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Докладніше про доступ до геоданих"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Щоб змінити налаштування, виберіть \"Налаштування ChromeOS\" &gt; \"Конфіденційність і безпека\" &gt; \"Налаштування конфіденційності\" &gt; \"Доступ до геоданих\""</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додано обличчя та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додано обличчя, відбиток пальця та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додано обличчя, відбитки пальців і годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Розблокування (Remote Authenticator)"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Годинник додано"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Налаштуйте свій годинник"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Докладніше про розблокування годинником"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додати годинник"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Вилучити годинник"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Розблокування відбитком пальця й фейс-контроль"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Фейс-контроль і розблокування відбитком пальця"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Фейс-контроль і відбиток пальця для роботи"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Потрібно налаштувати"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Обличчя й відбитки пальців додано"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Налаштування приватного простору…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Не вдалося налаштувати приватний простір"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Повторити"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Вийти"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Приватний простір недоступний.\nПереглянути можливі причини"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Перегляньте можливі причини"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Вибрати новий спосіб розблокування для приватного простору?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Ви можете налаштувати новий спосіб розблокування лише для приватного простору або використовувати той самий, що й для розблокування пристрою"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Доступ розблокуванням екрана"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Перезапустити пристрій?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ведення детальних журналів NFC призначене лише для розробки. Додаткові дані NFC включаються у звіти про помилки, які можуть містити приватну інформацію. Щоб змінити це налаштування, перезапустіть пристрій."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Перезапустити"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Увімкнено"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Вимкнено"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Зовнішній дисплей"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Використовувати зовнішній дисплей"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Роздільна здатність дисплея"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Зовнішній дисплей відключено"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Кут обертання"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Cтандартний"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Якщо змінити кут обертання або роздільну здатність, це може зупинити роботу додатків, які в цей момент запущені"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Щоб дублювати ваш екран, пристрій має бути підключено до зовнішнього дисплея"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Інші опції"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Трансляція"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"дзеркалювання"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Увімкнути бездротовий екран"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Адаптивні"</string>
     <string name="brightness" msgid="6216871641021779698">"Рівень яскравості"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Адаптивна яскравість"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Про адаптивну яскравість"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Яскравість екрана автоматично пристосовується до середовища й ваших дій. Ви можете пересунути повзунок вручну, щоб відкоригувати яскравість за власним бажанням."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Увімкнено"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Вимкнено"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опції"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Доступність"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Фізична клавіатура"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Використовувати екранну клавіатуру"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Залишати її на екрані, коли активна фізична клавіатура"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ігнорувати повторне натискання"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Клавіатура ігнорує кілька натискань однієї клавіші протягом <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> мс"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Повільні клавіші"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Установлює проміжок часу, через який клавіша реагує на натискання: <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> мс"</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="2396247040177734245">"Використовувати фізичну клавіатуру для керування мишею"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Змінити стиль курсора на жовтий"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Змінити стиль курсора на рожевий"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Змінити стиль курсора на синій"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Стиль накреслення вказівника"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Білий"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Чорний"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Немає"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Жести сенсорної панелі: докладніше"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"сенсорна панель, трекпад, миша, курсор, прокрутити, гортати, права кнопка, натиснути, вказівник"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"натиснути правою кнопкою миші, натиснути"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Вибрано користувачем: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Мовлення"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Швидкість курсора"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Розмір курсора"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Зменшити розмір курсора"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Збільшити розмір курсора"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Ігровий контролер"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Переспрямувати вібросигнал"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Надсилати вібросигнал на ігровий контролер, коли є з’єднання"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Усе одно продовжити"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Скасувати"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Налаштування збільшення"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Панорамування одним пальцем"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Переміщуйте лупу одним пальцем"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Проводьте одним пальцем, щоб переміщатись екраном"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Переміщуйте область збільшення, перетягуючи одним пальцем."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Переміщуйте область збільшення, перетягуючи двома пальцями."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Недоступно, коли збільшено лише частину екрана"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Торкніться кнопки, щоб збільшити вміст"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Щоб краще роздивитися вміст екрана, його можна наблизити."</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Щоб наблизити зображення:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.&lt;br/&gt; {1,number,integer}. Торкніться екрана.&lt;br/&gt; {2,number,integer}. Щоб перейти до іншої області на екрані, потягніть по ньому двома пальцями.&lt;br/&gt; {3,number,integer}. Зведіть або розведіть два пальці, щоб змінити масштаб.&lt;br/&gt; {4,number,integer}. Вимкніть збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Щоб ненадовго наблизити зображення:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Переконайтеся, що вибрано тип збільшення \"На весь екран\".&lt;br/&gt; {1,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.&lt;br/&gt; {2,number,integer}. Натисніть і втримуйте будь-яке місце на екрані.&lt;br/&gt; {3,number,integer}. Щоб переглянути іншу область на екрані, пересуньте палець.&lt;br/&gt; {4,number,integer}. Підніміть палець, щоб припинити збільшення."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Для цього:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.&lt;br/&gt; {1,number,integer}. Торкніться екрана.&lt;br/&gt; {2,number,integer}. Щоб перейти до іншої області на екрані, проведіть по ньому двома пальцями.&lt;br/&gt; {3,number,integer}. Зведіть два пальці, щоб змінити масштаб.&lt;br/&gt; {4,number,integer}. Вимкніть збільшення за допомогою швидкої команди.&lt;br/&gt;&lt;br/&gt; Ви також можете тимчасово збільшувати масштаб і не тільки."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Для цього:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Активуйте збільшення, скориставшись призначеною для цього кнопкою чи відповідним жестом.&lt;br/&gt; {1,number,integer}. Торкніться екрана.&lt;br/&gt; {2,number,integer}. Щоб перейти до іншої області на екрані, проведіть по ньому одним або двома пальцями.&lt;br/&gt; {3,number,integer}. Зведіть два пальці, щоб змінити масштаб.&lt;br/&gt; {4,number,integer}. Вимкніть збільшення за допомогою швидкої команди.&lt;br/&gt;&lt;br/&gt; Ви також можете тимчасово збільшувати масштаб і не тільки."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Коли функцію збільшення ввімкнено, ви можете наближувати вміст на екрані.\n\n"<b>"Щоб наблизити вміст"</b>", увімкніть збільшення, а потім торкніться будь-якого місця на екрані.\n"<ul><li>"Щоб прокрутити вміст, проведіть по екрану принаймні двома пальцями"</li>\n<li>"Щоб змінити масштаб, стисніть або розведіть принаймні два пальці"</li></ul>\n\n<b>"Щоб тимчасово збільшити вміст"</b>", увімкніть збільшення, а потім натисніть і утримуйте будь-яке місце на екрані.\n"<ul><li>"Пересувайте палець, щоб переміщатись екраном"</li>\n<li>"Підніміть палець, щоб знову зменшити елемент"</li></ul>\n\n"Масштабування не підтримується на клавіатурі та панелі навігації."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Сторінка <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> з <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Швидка дія кнопкою функцій доступності"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"Проведіть двома пальцями знизу вгору по екрану.\n\nЩоб переключитися між функціями, проведіть двома пальцями вгору й утримуйте екран."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Провести по екрану знизу вгору трьома пальцями.\n\nЩоб переключитися між функціями, проведіть по екрану знизу вгору трьома пальцями й утримуйте їх."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Проведіть пальцем угору від низу екрана. Щоб переключитися між функціями, проведіть пальцем угору й утримуйте його.}one{Проведіть # пальцем угору від низу екрана. Щоб переключитися між функціями, проведіть по екрану знизу вгору # пальцем і утримуйте їх.}few{Проведіть # пальцями вгору від низу екрана. Щоб переключитися між функціями, проведіть по екрану знизу вгору # пальцями й утримуйте їх.}many{Проведіть # пальцями вгору від низу екрана. Щоб переключитися між функціями, проведіть по екрану знизу вгору # пальцями й утримуйте їх.}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"Двічі торкніться екрана двома пальцями"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Швидко торкніться екрана %1$d рази. Це може сповільнити роботу пристрою."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"двічі торкнутися %1$d пальцями"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Швидко торкніться екрана двома пальцями стільки разів: {0,number,integer}"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тричі торкнутися екрана"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"тричі торкнутися"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Швидко натисніть екран стільки разів: {0,number,integer}. Призначена кнопка чи відповідний жест може сповільнити роботу пристрою."</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Додатково"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Для кнопки спеціальних можливостей вибрано службу \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Щоб змінити на збільшення, натисніть і втримуйте кнопку спеціальних можливостей, а потім виберіть \"Збільшення\"."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Для цього жесту спеціальних можливостей вибрана команда \"<xliff:g id="SERVICE">%1$s</xliff:g>\". Щоб збільшити масштаб, проведіть двома пальцями знизу вгору і втримуйте їх на екрані. Потім виберіть збільшення."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Ця служба не працює."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Швидке ввімкнення функцій доступності"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Показувати на панелі швидкого налаштування"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Червоний – зелений"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Червоний – зелений"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Червоний–зелений, слабке сприйняття зеленого"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Червоний–зелений, слабке сприйняття червоного"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Синій – жовтий"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Відтінки сірого"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Інтенсивність"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Слабкість сприйняття зеленого, дейтераномалія"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Слабкість сприйняття червоного, протаномалія"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Недоступно для режиму \"Відтінки сірого\" і якщо вимкнено корекцію кольору"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Дейтераномалія"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Протаномалія"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Тританомалія"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Додаткове зменшення яскравості"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Додатково зменшувати яскравість екрана"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Блакитний"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Жовтий"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Пурпуровий"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Надати сервісу \"<xliff:g id="SERVICE">%1$s</xliff:g>\" повний доступ до вашого пристрою?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"Службі <xliff:g id="SERVICE">%1$s</xliff:g> потрібно:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Вашу відповідь не видно в Налаштуваннях, оскільки інший додаток загороджує запит на дозвіл."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"Сервіс <xliff:g id="SERVICE">%1$s</xliff:g> просить повний доступ до цього пристрою. Він може переглядати вміст на екрані й виконувати дії від імені користувачів з особливими потребами. Такий рівень доступу не призначений для більшості додатків."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Повний доступ потрібен додаткам, які підтримують функції доступності, але його не варто відкривати для більшості інших додатків."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Перегляд і контроль екрана"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Цей сервіс може переглядати всі дані на екрані й показувати контент поверх інших додатків."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Перегляд і виконання дій"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Цей сервіс може відстежувати вашу взаємодію з додатком чи апаратним датчиком, а також взаємодіяти з додатками від вашого імені."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволити"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Заборонити"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Вимкнути"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Немає}=1{Налаштовано 1 розклад}one{Налаштовано # розклад}few{Налаштовано # розклади}many{Налаштовано # розкладів}other{Налаштовано # розкладу}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Не турбувати"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Режими пріоритету"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Додати режим"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Менше відволікайтеся й зберігайте концентрацію уваги завдяки режимам для сну, роботи, керування автомобілем тощо."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Створіть власний режим"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Отримуйте сповіщення лише від важливих людей і додатків"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Налаштувати розклад"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Розклад на основі"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"День і час"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"09:00–17:00 у будні\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Події в календарі"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Активовано режим \"{mode_1}\"}=2{Активовано режими \"{mode_1}\" і \"{mode_2}\"}=3{Активовано режими \"{mode_1}\", \"{mode_2}\" і \"{mode_3}\"}one{Активовано режими \"{mode_1}\", \"{mode_2}\" і ще #}few{Активовано режими \"{mode_1}\", \"{mode_2}\" і ще #}many{Активовано режими \"{mode_1}\", \"{mode_2}\" і ще #}other{Активовано режими \"{mode_1}\", \"{mode_2}\" і ще #}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 режим може вмикатись автоматично}one{# режим може вмикатись автоматично}few{# режими можуть вмикатись автоматично}many{# режимів можуть вмикатись автоматично}other{# режиму можуть вмикатись автоматично}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"УВІМКНЕНО"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Не налаштовано"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Вимкнено"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Створити режим"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Спеціальний"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Увімкнути зараз"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Вимкнути"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Режим не знайдено"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Обмеження сповіщень"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Блокування сповіщень"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Налаштувати режим \"<xliff:g id="MODE">%1$s</xliff:g>\""</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Увімкнути режим \"Не турбувати\""</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Звуки будильників і медіа можуть переривати"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Розклад"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Видалити розклади"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Видалити"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Перейменувати"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Видалити"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Видалити режим \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Редагувати"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Розклад"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Розклад"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Вмикати автоматично"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Додати календар"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Використовувати календар"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Розклад"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Налаштуйте розклад"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Коли вмикати автоматично"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Розклад на основі подій"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Вмикати під час таких подій:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Коли відповідь на запрошення:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Розклад на основі часу"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Розклад"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> год, <xliff:g id="MINUTES">%2$d</xliff:g> хв"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Розклад"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Дозволити сповіщення зі звуком"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Блокувати візуальні сповіщення"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Дозволити візуальні сигнали"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Сповіщення, які ви можете отримувати"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Додаткові дії"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Фільтри сповіщень"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Інші налаштування"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Вимкнено}=1{Вимкнено / 1 режим може вмикатись автоматично}one{Вимкнено / # режим може вмикатись автоматично}few{Вимкнено / # режими можуть вмикатись автоматично}many{Вимкнено / # режимів можуть вмикатись автоматично}other{Вимкнено / # режиму можуть вмикатись автоматично}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Налаштування дисплея"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Параметри відображення"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Відтінки сірого"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"увімкнути темну тему"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Змініть налаштування ОС і додатків, щоб використовувати світлий текст на темному фоні. Це може бути комфортніше для очей і допомагає суттєво економити заряд акумулятора на деяких пристроях."</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Немає змін параметрів відображення}=1{{effect_1}}=2{{effect_1} і {effect_2}}=3{{effect_1}, {effect_2} і {effect_3}}one{{effect_1}, {effect_2} і ще #}few{{effect_1}, {effect_2} і ще #}many{{effect_1}, {effect_2} і ще #}other{{effect_1}, {effect_2} і ще #}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Виберіть, які сповіщення дозволені"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Сповіщення не фільтруються"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Параметри відображення відфільтрованих сповіщень"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Коли ввімкнено режим \"Не турбувати\""</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Вимкнути звук сповіщень"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"відкрити сповіщення"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Дозволити відкладання сповіщень"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Сповіщення на значках додатків"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Пакети сповіщень"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Спливаючі чати"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Спливаючі чати"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Показувати цей чат у спливаючому сповіщенні"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"Адаптивні сповіщення"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Використовувати адаптивні сповіщення"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Коли ви отримуєте багато повідомлень за короткий проміжок часу, телефон знижує гучність і зменшує кількість спливаючих вікон на екрані на період до двох хвилин. Вібрація, звук і показ дзвінків, будильників та важливих розмов не зміняться, а всі сповіщення можна буде переглянути, пpовівши пальцем зверху вниз по екрану."</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Сповіщення, отримані протягом цього періоду, можна буде переглянути, пpовівши пальцем униз від верхнього краю екрана."</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>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Категорії"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Інше"</string>
     <string name="no_channels" msgid="4716199078612071915">"Цей додаток не надсилав сповіщень"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Показати категорії, що не використовуються"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Розширені налаштування в додатку"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Показати категорії, що не використ."</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Сховати категорії, що не використ."</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> – <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Розмови"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Усі розмови"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"усі розмови"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Важливі розмови"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"важливі розмови"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Не дозволено"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Додатки, які можуть переривати"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Вибрані додатки"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Жодний"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Усі"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Додатки не можуть переривати}=1{Додаток {app_1} може переривати}=2{Додатки {app_1} і {app_2} можуть переривати}=3{Додатки {app_1}, {app_2} і {app_3} можуть переривати}one{Додатки {app_1}, {app_2} і ще # можуть переривати}few{Додатки {app_1}, {app_2} і ще # можуть переривати}many{Додатки {app_1}, {app_2} і ще # можуть переривати}other{Додатки {app_1}, {app_2} і ще # можуть переривати}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (робочий)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Обчислення…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Дозволити додаткам замінювати режим \"Не турбувати\""</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Додатки, які можуть переривати"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Виберіть інші додатки"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"Повторні вхідні виклики можуть переривати"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Усі люди можуть переривати"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Повторні вхідні виклики"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Дозволити повторні дзвінки"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Активувати режим \"Лише будильник\" на одну годину до {time}}one{Активувати режим \"Лише будильник\" на # годину до {time}}few{Активувати режим \"Лише будильник\" на # години до {time}}many{Активувати режим \"Лише будильник\" на # годин до {time}}other{Активувати режим \"Лише будильник\" на # години до {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Активувати режим \"Лише будильник\" до <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Вибрати опцію \"Завжди надсилати\""</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Перейменувати"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Змінити значок"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Змінити значок"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Редагувати режим"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Створити режим"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Спеціальний режим"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Назва режиму"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Події в календарі"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Програма \"Час спати\""</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"За кермом"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Налаштування додатка"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Інформація і налаштування в додатку <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Керує додаток <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Вимкнути <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Цей режим ніколи не активуватиметься, коли його вимкнено"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Вимкнути"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Увімкнути <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Цей режим може активуватися автоматично залежно від налаштувань"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Увімкнути"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Налаштуйте режим, що працюватиме регулярно протягом певного часу дня"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Налаштуйте режим для синхронізації з подіями в календарі й відповідями на запрошення"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Налаштуйте спокійний режим на час сну. Установіть будильники, зменште яскравість екрана й заблокуйте сповіщення."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Першочергово дбайте про безпеку на дорозі, не втрачайте концентрацію і не відволікайтеся за кермом"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"Застереження"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Закрити"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Надіслати відгук про цей пристрій"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Футляр"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Акумулятор"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Панель налаштувань"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Примусово застосувати режим робочого столу"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Примусово застосувати експериментальний режим робочого столу на додаткових екранах"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Увімкнути вікна змінного розміру"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Увімкнути вікна змінного розміру на додатк. екрані"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Дозволити немасштабовані додатки в багатоекранному режимі"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Дає змогу користуватися в багатоекранному режимі додатками, розмір яких не можна змінити"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Замінити примусовий темний режим"</string>
@@ -4969,7 +5040,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"мобільний Інтернет"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Щоб користуватися пристроєм було зручніше, додатки й сервіси можуть шукати бездротові мережі, навіть якщо Wi-Fi вимкнено. Це допомагає вдосконалити роботу функцій і сервісів, які використовують дані про місцезнаходження. Це налаштування можна змінити в параметрах пошуку мереж Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Змінити"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Підключено"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Тимчасово з’єднано"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Тимчасово використовується <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -5001,7 +5071,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Використовувати закріплення додатків"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Використовувати Параметри розробника"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Використовувати сервіс друку"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Дозволити кілька користувачів"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Дозволити зміну користувача"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"дозволити, кілька, користувач, дозвіл, багато"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"кілька, користувачі, профілі, люди, облікові записи, змінити, багато"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Використовувати налагодження через Wi-Fi"</string>
@@ -5115,8 +5185,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Виберіть, що має відображатися на екрані, коли планшет у док-станції. Із заставкою ваш пристрій може споживати більше енергії."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Налаштувати"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Налаштувати <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Щоб увімкнути підтримку довільного формату, перезапустіть пристрій."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Щоб примусово застосувати режим робочого столу на додаткових екранах, перезапустіть пристрій."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Щоб увімкнути підтримку вікон змінного розміру, перезапустіть пристрій."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Щоб оновити доступність вікон змінного розміру, перезапустіть пристрій."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Щоб увімкнути вікна змінного розміру на додаткових екранах, перезапустіть пристрій."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Перезапустити зараз"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Перезапустити пізніше"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Просторове звучання"</string>
@@ -5139,7 +5210,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"Вимкнути обмеження для дочірніх процесів"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"Вимкнути обмеження на використання системних ресурсів дочірніми процесами додатка"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"Примусово ввімкнути набір функцій \"Нотатки\""</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Увімкніть системні інтеграції для створення нотаток за допомогою набору функцій \"Нотатки\". Якщо набір функцій \"Нотатки\" вже ввімкнено, нічого не відбудеться. Потрібен перезапуск."</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"Увімкнути системні інтеграції для створення нотаток за допомогою набору функцій \"Нотатки\". Якщо набір функцій \"Нотатки\" вже ввімкнено, нічого не відбудеться. Потрібен перезапуск."</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"Трансляція"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"Змінити додаток для трансляції на <xliff:g id="CURRENTAPP">%1$s</xliff:g>"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"Слухайте трансляції з пристроїв поблизу"</string>
@@ -5213,7 +5284,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Рожевий"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Пурпуровий"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Ліловий"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Готово"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Зберегти"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Скасувати"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Стандартний"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Середній"</string>
@@ -5234,6 +5305,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Увімкнено"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Вимкнено"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Увімкнено"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Аудіо: %1$d%% ліворуч, %2$d%% праворуч"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Аудіо: %1$d%% праворуч, %2$d%% ліворуч"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Назва пристрою відображається в установлених додатках. Її також можуть бачити інші користувачі, коли ви підключаєтеся до пристроїв із Bluetooth чи мережі Wi-Fi або налаштовуєте точку доступу Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Граматичний рід"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Виберіть граматичний рід"</string>
@@ -5345,4 +5418,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Слухати потокове аудіо"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Відскануйте QR-код потокового аудіо, щоб слухати на пристрої \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\""</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Неможливо змінити пароль під час надсилання. Щоб змінити пароль, спершу вимкніть надсилання аудіо."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Сканер QR-коду"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Шукати в налаштуваннях"</string>
 </resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 8076503..4cf9874 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"سونے کا وقت"</item>
-    <item msgid="4152450357280759894">"ڈرائیونگ"</item>
-    <item msgid="7096549258219399423">"عمیق"</item>
-    <item msgid="2760716776980432977">"زیر انتظام"</item>
-    <item msgid="601734478369121764">"ستارہ"</item>
-    <item msgid="6243809315432780521">"کیلنڈر"</item>
-    <item msgid="4913577903148415331">"وقت"</item>
-    <item msgid="3653377604690057780">"تھیٹر"</item>
-    <item msgid="3843711267408385410">"پھول"</item>
+    <item msgid="2750940760340557109">"آدھا چاند"</item>
+    <item msgid="8513969636586738035">"کار"</item>
+    <item msgid="957392343846370509">"شخص کا ذہن"</item>
+    <item msgid="6734164279667121348">"کیلنڈر"</item>
+    <item msgid="4139559120353528558">"گھڑی"</item>
+    <item msgid="5157711296814769020">"ساحل کی چھتری"</item>
+    <item msgid="6635328761318954115">"خیمہ"</item>
+    <item msgid="1711994778883392255">"فلم ریل"</item>
+    <item msgid="9097658401859604879">"گیم کنٹرولر"</item>
+    <item msgid="755931364157422565">"جم ڈم بیل"</item>
+    <item msgid="8894207806795738429">"گیند پھینکتا ہوا شخص"</item>
+    <item msgid="2274801572149555103">"کک مارتا ہوا شخص"</item>
+    <item msgid="8795037201506843325">"تیراکی"</item>
+    <item msgid="3558421426169430451">"پیدل چلتا ہوا شخص"</item>
+    <item msgid="7455070421232184932">"گولف"</item>
+    <item msgid="5841773092449126508">"ورکشاپ ٹولز"</item>
+    <item msgid="4595330511709890409">"بریف کیس"</item>
+    <item msgid="8352738347856724389">"سٹار"</item>
+    <item msgid="7082783098151998721">"کنول کا پھول"</item>
+    <item msgid="5772220259409264724">"سپروائزر"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 45b47df..8578bc7 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"معطل شدہ"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"نامعلوم"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"پیش منظر"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"‏‫QR کوڈ"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"چھوٹا کریں"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"بڑا کریں"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"ہمیشہ"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"سماعت کے آلے کی ترتیبات"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"شارٹ کٹ، سماعتی آلہ کی موافقت"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"پہلے سے ترتیب شدہ"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"آپ کے آڈیولوجسٹ کے ذریعہ کوئی پہلے سے ترتیب شدہ پروگرام نہیں ہے"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"پہلے سے ترتیب شدہ کو اپ ڈیٹ نہیں کر سکے"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"آڈیو کا آؤٹ پُٹ"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"آڈیو آؤٹ پٹ کے بارے میں"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"اس ایپ کے لیے زبان کا انتخاب ترتیبات سے دستیاب نہیں ہے۔"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"زبان ایپ میں دستیاب زبانوں سے مختلف ہو سکتی ہے۔ ہو سکتا ہے کچھ ایپس اس ترتیب کو سپورٹ نہ کریں۔"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"ہر ایپ کے لیے زبان سیٹ کریں۔"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"آپ کا سسٹم، ایپس اور ویب سائٹس آپ کی ترجیحی زبانوں میں سے پہلی تعاون یافتہ زبان استعمال کرتی ہیں۔"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"آپ کا آلہ، ایپس اور ویب سائٹس آپ کی ترجیحی زبانوں میں سے پہلی تعاون یافتہ زبان استعمال کرتی ہیں۔\n\nبہت سی ایپس بھی تاریخوں، نمبرز اور یونٹس کو فارمیٹ کرنے کیلئے آپ کی ترجیحی زبان کا علاقہ کا استعمال کریں گی۔ اپنا علاقہ تبدیل کرنے کیلئے، ایک زبان شامل کریں، پھر اپنا ترجیحی علاقہ منتخب کریں۔"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ہر ایپ کے لیے زبان منتخب کرنے کے لیے، ایپ کی زبان کی ترتیبات پر جائیں۔"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ایپ کی زبانوں کے بارے میں مزید جانیں"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏سسٹم کی زبان کو %s پر تبدیل کریں ؟"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"آف ہے"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{آن ہے / # ایپ کو مقام تک رسائی حاصل ہے}other{آن ہے / # ایپس کو مقام تک رسائی حاصل ہے}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"لوڈ ہو رہی ہے…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"قریبی آلات کی اجازت والی ایپس منسلک آلات کی متعلقہ پوزیشن کا تعین کر سکتی ہیں۔"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"قریبی آلات کی اجازت والی ایپس منسلک آلات کی متعلقہ پوزیشن کا تعین کر سکتی ہیں۔"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ایپس اور سروسز کے لیے مقام تک رسائی آف ہے۔ آپ کے ایمرجنسی نمبر پر کال کرنے یا ٹیکسٹ پیغام بھیجنے پر بھی ایمرجنسی مدد فراہم کنندگان کو آپ کے آلے کا مقام بھیجا جا سکتا ہے۔"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مقام کی ترتیبات کے بارے میں مزید جانیں"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"‏تبدیل کرنے کے لیے، ChromeOS کی ترتیبات &gt; رازداری اور سیکیورٹی &gt; رازداری سے متعلق کنٹرولز &gt; مقام تک رسائی پر جائیں"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چہرہ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چہرہ، فنگر پرنٹ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چہرہ، فنگر پرنٹس اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"‏Remote Authenticator کو غیر مقفل کریں"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"گھڑی کو شامل کیا گیا"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"اپنی گھڑی سیٹ اپ کریں"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"واچ اَن لاک کے بارے میں مزید جانیں"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"گھڑی شامل کریں"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"گھڑی ہٹائیں"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"فنگر پرنٹ اور فیس انلاک"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"فیس اور فنگر پرنٹ اَن لاک"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"کام کے لیے فیس اور فنگر پرنٹ اَن لاک"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"سیٹ اپ درکار ہے"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"چہرے اور فنگر پرنٹس کو شامل کیا گیا"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"نجی اسپیس سیٹ اپ کی جا رہی ہے…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"پرائیویٹ اسپیس سیٹ اپ نہیں کی جا سکی"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"دوبارہ کوشش کریں"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"باہر نکلیں"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"پرائیویٹ اسپیس دستیاب نہیں ہے۔\n ممکنہ وجوہات دیکھیں"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"ممکنہ وجوہات دیکھیں"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"پرائیویٹ اسپیس کے لیے نیا لاک منتخب کریں؟"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"آپ صرف پرائیویٹ اسپیس کے لیے نیا لاک سیٹ کر سکتے ہیں، یا اسی لاک کا استعمال کر سکتے ہیں جسے آپ اپنے آلے کو اَن لاک کرنے کے لیے کرتے ہیں"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"اسکرین لاک استعمال کریں"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"آلہ ری اسٹارٹ کریں؟"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"‏تفصیلی NFC لاگنگ صرف ڈویلپمنٹ مقاصد کے لیے ہے۔ اضافی NFC ڈیٹا بگ رپورٹس میں شامل کیا جاتا ہے جس میں نجی معلومات شامل ہو سکتی ہیں۔ اس ترتیب کو تبدیل کرنے کے لیے اپنا آلہ ری اسٹارٹ کریں۔"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"ری اسٹارٹ کریں"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"آن ہے"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"آف ہے"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"بیرونی ڈسپلے"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"بیرونی ڈسپلے استعمال کریں"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"ڈسپلے ریزولیوشن"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"بیرونی ڈسپلے غیر منسلک ہے"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"گھمانا"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"معیاری"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"روٹیشن یا ریزولیوشن تبدیل کرنے سے کوئی بھی ایسی ایپس بند ہو سکتی ہیں جو فی الحال چل رہی ہیں"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"آپ کی اسکرین کو کسی بیرونی ڈسپلے پر دکھانے کے لئے آپ کے آلے کا اس سے منسلک ہونا ضروری ہے"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"مزید اختیارات"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"کاسٹ کریں"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"مرر"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"وائرلیس ڈسپلے فعال کریں"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"تغیر پذیر"</string>
     <string name="brightness" msgid="6216871641021779698">"چمک کی سطح"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"تغیر پذیر چمک"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"تغیر پذیر چمک کے بارے میں"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"آپ کی اسکرین کی چمک خودکار طور پر آپ کے ماحول اور سرگرمیوں کے مطابق ہو جائے گی۔ آپ نئی ترجیحات جاننے میں تغیر پذیر چمک کی مدد کرنے کے لئے سلائیڈر کو دستی طور پر حرکت دے سکتے ہیں۔"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"آن"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"آف"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"اختیارات"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ایکسیسبیلٹی"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"فزیکل کی بورڈ"</string>
-    <string name="show_ime" msgid="4334255501724746849">"آن اسکرین کی بورڈ کا استعمال کریں"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"جب فزیکل کی بورڈ فعال ہو تو اس کو اسکرین پر رکھیں"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"باؤنس کلیدیں"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"‏کی بورڈ ‎<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms‎ کے اندر ایک ہی کلید کو فوری طور پر بار بار دبائے جانے کو نظر انداز کرتا ہے"</string>
     <string name="slow_keys" msgid="2891452895499690837">"سلو کلیدیں"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"‏کسی کلید کے دبانے پر اس کے فعال ہونے میں لگنے والے وقت کو ‎<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms‎ میں ایڈجسٹ کرتا ہے"</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="2396247040177734245">"ماؤس کو کنٹرول کرنے کے لیے فزیکل کی بورڈ کا استعمال کریں۔"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"پوائنٹر فِل اسٹائل کو پیلے میں بدلیں"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"پوائنٹر فِل اسٹائل کو گلابی میں بدلیں"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"پوائنٹر فِل اسٹائل کو نیلے میں بدلیں"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"پوائنٹر اسٹروک اسٹائل"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"سفید"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"سیاہ"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"کوئی نہیں"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"ٹچ پیڈ کے اشارے کو جانیں"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"ٹریک پیڈ، ٹریک پیڈ، ماؤس، کرسر، اسکرول، سوائپ، دائیں کلک، کلک، پوائنٹر"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"دائیں کلک کریں، تھپتھپائیں"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"صارف کا منتخب کردہ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"اسپیچ"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"پوائنٹر کی رفتار"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"پوائنٹر اسکیل"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"پوائنٹر اسکیل کو کم کریں"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"پوائنٹر اسکیل کو بڑھائیں"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"گیم کنٹرولر"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"وائبریشن کو ری ڈائریکٹ کریں"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"منسلک ہونے پر گیم کنٹرولر کو وائبریشن بھیجیں"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"بہر حال جاری رکھیں"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"منسوخ کریں"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"میگنیفکیشن کی ترتیبات"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"ایک انگلی سے پین کرنا"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"1 انگلی سے میگنیفائر کو حرکت دیں"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"اسکرین کے ارد گرد گھمانے کیلئے 1 انگلی سے گھسیٹیں"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"ایک انگلی گھسیٹ کر میگنیفیکیشن ایریا کو منتقل کریں۔"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"دو انگلیوں کو گھسیٹ کر میگنیفیکیشن ایریا کو منتقل کریں۔"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"اسکرین کے صرف میگنفائی کرنے والے حصے کے دوران دستیاب نہیں ہے"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"زوم کرنے کیلئے ایک بٹن پر تھپتھپائیں"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"مواد کو بڑا کرنے کے لیے اسکرین پر فوری طور پر زوم ان کریں"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"‏&lt;b&gt;زوم ان کرنے کے لیے:&lt;/b&gt;&lt;br/&gt; {0,number,integer}۔ میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں&lt;br/&gt; {1,number,integer}۔ اسکرین پر تھپتھپائیں&lt;br/&gt; {2,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے 2 انگلیوں سے گھسیٹیں&lt;br/&gt; {3,number,integer}۔ زوم کو ایڈجسٹ کرنے کے لیے 2 انگلیوں سے چٹکی بھریں&lt;br/&gt; {4,number,integer}۔ میگنیفکیشن بند کرنے کے لیے شارٹ کٹ کا استعمال کریں&lt;br/&gt;&lt;br/&gt; &lt;b&gt;عارضی طور پر زوم ان کرنے کے لیے:&lt;/b&gt;&lt;br/&gt; {0,number,integer}۔ یقینی بنائیں کہ آپ کی میگنیفیکیشن کی قسم فُل اسکرین پر سیٹ ہے&lt;br/&gt; {1,number,integer}۔  میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں&lt;br/&gt; {2,number,integer}۔ اسکرین پر کسی بھی جگہ پر ٹچ کریں اور دبائیں رکھیں&lt;br/&gt; {3,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے انگلی کو گھسیٹیں&lt;br/&gt; {4,number,integer}۔ میگنیفکیشن بند کرنے کے لیے انگلی اٹھائيں"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"‏‎&lt;b&gt;‎زوم ان کرنے کے لیے:‎&lt;/b&gt;&lt;br/&gt; {0,number,integer}۔ میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں‎&lt;br/&gt; {1,number,integer}۔ اسکرین پر تھپتھپائیں‎&lt;br/&gt; {2,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے 2 انگلیوں سے گھسیٹیں‎&lt;br/&gt; {3,number,integer}۔ زوم کو ایڈجسٹ کرنے کے لیے 2 انگلیوں سے چٹکی بھریں‎&lt;br/&gt; {4,number,integer}۔ میگنیفکیشن کو بند کرنے کے لیے شارٹ کٹ استعمال کریں&lt;br/&gt;&lt;br/&gt; آپ عارضی طور پر زوم ان بھی کر سکتے ہیں اور بہت کچھ کر سکتے ہیں۔"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"‏‎&lt;b&gt;‎زوم ان کرنے کے لیے:‎&lt;/b&gt;&lt;br/&gt; {0,number,integer}۔ میگنیفکیشن شروع کرنے کے لیے شارٹ کٹ کا استعمال کریں‎&lt;br/&gt; {1,number,integer}۔ اسکرین پر تھپتھپائیں‎&lt;br/&gt; {2,number,integer}۔ اسکرین پر اِدھر اُدھر حرکت کرنے کے لیے 1 یا 2 انگلیوں سے گھسیٹیں‎&lt;br/&gt; {3,number,integer}۔ زوم کو ایڈجسٹ کرنے کے لیے 2 انگلیوں سے چٹکی بھریں‎&lt;br/&gt; {4,number,integer}۔ میگنیفکیشن کو بند کرنے کے لیے شارٹ کٹ استعمال کریں&lt;br/&gt;&lt;br/&gt; آپ عارضی طور پر زوم ان بھی کر سکتے ہیں اور بہت کچھ کر سکتے ہیں۔"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"جب میگنیفکیشن آن ہو، تو آپ اپنی اسکرین پر زوم ان کرسکتے ہیں۔\n\n"<b>"زوم کرنے کے لیے"</b>"، میگنیفکیشن شروع کریں، پھر اسکرین پر کہیں بھی تھپتھپائیں۔\n"<ul><li>" اسکرول کرنے کے لیے 2 یا زائد انگلیوں سے گھسیٹیں"</li>\n<li>"زوم ایڈجیسٹ کرنے کے لیے 2 یا زائد انگلیوں سے چٹکی بھریں"</li></ul>\n\n<b>"عارضی طور پر زوم کرنے کے لیے"</b>"، میگنیفکیشن شروع کریں، پھر اسکرین پر کہیں بھی ٹچ اور ہولڈ کریں۔\n"<ul><li>"اسکرین کے اردگرد منتقل کرنے کے لیے گھسیٹیں"</li>\n<li>"زوم آؤٹ کرنے کے لیے انگلی اٹھائیں"</li></ul>\n\n"آپ کی بورڈ یا نیویگیشن بار پر زوم ان نہیں کرسکتے۔"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"صفحہ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> از <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"ایکسیسبیلٹی بٹن کا شارٹ کٹ"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"2 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 2 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 3 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{اپنی اسکرین کے نچلے حصے سے اوپر کی طرف سوائپ کریں۔ خصوصیات کے مابین سوئچ کرنے کے لیے، اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"دو انگلیوں سے دو بار تھپتھپانے والی اسکرین"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"‏اسکرین پر تیزی سے %1$d بار تھپتھپائیں۔ اس سے آپ کا آلہ سست ہو سکتا ہے۔"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"‏%1$d انگلی سے دوبار تھپتھپائیں"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏دو انگلیوں سے اسکرین پر تیزی سے {0,number,integer} بار تھپتھپائیں"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"اسکرین پر تین بار تھپتھپائیں"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"تین بار تھپتھپائیں"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏اسکرین پر فوری طور پر {‎0,number,integer} بار تھپتھپائیں۔ اس شارٹ کٹ سے آپ کا آلہ سست ہو سکتا ہے"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"جدید ترین"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"ایکسیسبیلٹی بٹن <xliff:g id="SERVICE">%1$s</xliff:g> پر سیٹ ہے۔ میگنیفکیشن استعمال کرنے کیلئے، ایکسیسبیلٹی بٹن ٹچ کریں اور دبائے رکھیں، پھر میگنیفکیشن منتخب کریں۔"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"ایکسیسبیلٹی اشارے کو <xliff:g id="SERVICE">%1$s</xliff:g> پر سیٹ کر دیا گیا۔ میگنیفکیشن استعمال کرنے کے لیے، اسکرین کے نیچے سے دو انگلیوں سے اوپر سوائپ اور ہولڈ کریں۔ پھر میگنیفکیشن منتخب کریں۔"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"یہ سروس ٹھیک سے کام نہیں کر رہی۔"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"ایکسیسبیلٹی شارٹ کٹس"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"فوری ترتیبات میں دکھائیں"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"سرخ-سبز"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"سرخ-سبز"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"سرخ سبز، سبز کمزور"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"سرخ سبز، سرخ کمزور"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"نیلا-پیلا"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"خاکستری"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"شدت"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"سبز رنگ کا اندھاپن، رنگ دیکھنے کی صلاحیت میں کمی"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"سرخ رنگ کا اندھاپن، بے قاعدہ رنگ بینی"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"خاکستری وضع کے لیے یا رنگ کی اصلاح کے غیرفعال ہونے پر دستیاب نہیں ہے"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"سرخ اور سبز رنگ دیکھنے کی صلاحیت میں کمی"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"سرخ اور سبز کی بے قاعدہ رنگ بینی"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"نیلے پیلے رنگ کی شناخت کرنے میں دشواری"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"اضافی مدھم"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"اسکرین کو اضافی مدھم بنائیں"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"سبزی مائل نیلا"</string>
     <string name="color_yellow" msgid="5957551912912679058">"پیلا"</string>
     <string name="color_magenta" msgid="8943538189219528423">"قرمزی"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> کو آپ کے آلے کا مکمل کنٹرول حاصل کرنے کی اجازت دیں؟"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> کو ضرورت ہے:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"چونکہ ایک ایپ اجازت کی درخواست کو مبہم کر رہی ہے، لہذا ترتیبات آپ کے جواب کی توثیق نہیں کر سکتی ہے۔"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> نے اس آلہ پر مکمل کنٹرول کی درخواست کی ہے۔ یہ سروس اسکرین کو پڑھ سکتی ہے اور مع ایکسیسبیلٹی کی ضروریات کے صارفین کے جانب سے کارروائی کر سکتی ہے۔ زیادہ تر اپپس کے لیے اس لیول کا کنٹرول مناسب نہیں ہے۔"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"مکمل کنٹرول ان ایپس کے لیے مناسب ہے جو ایکسیسبیلٹی کی ضروریات میں آپ کی مدد کرتی ہیں، لیکن زیادہ تر ایپس کیلئے مناسب نہیں۔"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"اسکرین کو دیکھیں اور کنٹرول کریں"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"یہ اسکرین پر موجود تمام مواد کو پڑھ سکتا ہے اور دیگر ایپس پر مواد کو ڈسپلے کر سکتا ہے۔"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"کارروائیاں دیکھیں اور انجام دیں"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"یہ کسی ایپ یا ہارڈویئر سینسر کے ساتھ آپ کے تعاملات کو ٹریک کر سکتا ہے، اور آپ کی طرف سے ایپس کے ساتھ تعامل کر سکتا ہے۔"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازت دیں"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مسترد کریں"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"آف کریں"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{کوئی نہیں}=1{1 شیڈول سیٹ ہے}other{# شیڈول سیٹ ہیں}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"ڈسٹرب نہ کریں"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"ترجیحی وضع"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"موڈ شامل کریں"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"انتشارات کو کم کریں اور نیند، کام، ڈرائیونگ اور اس کے درمیان ہر چیز کے طریقوں کے ساتھ اپنی توجہ پر قابو رکھیں۔"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"اپنی خود کی وضع تخلیق کریں"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"صرف اہم لوگوں اور ایپس کی جانب سے اطلاعات حاصل کریں"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"شیڈول سیٹ کریں"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"کی بنیاد پر شیڈول کریں"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"دن اور وقت"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"ہفتے کے دن صبح 9 بجے سے شام 5 بجے تک\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"کیلنڈر ایونٹس"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} فعال ہے}=2{{mode_1} اور {mode_2} فعال ہیں}=3{{mode_1}، {mode_2} اور {mode_3} فعال ہیں}other{{mode_1}، {mode_2} اور # مزید فعال ہیں}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{‫1 موڈ خودکار طور پر آن ہو سکتا ہے}other{‫# موڈز خودکار طور پر آن ہو سکتے ہیں}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"آن ہے"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"سیٹ نہیں ہے"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"غیر فعال ہے"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"موڈ تخلیق کریں"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"حسب ضرورت"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"ابھی آن کریں"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"آف کریں"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"وضع نہیں ملی"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"مداخلتوں کی حد مقرر کریں"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"مداخلتوں اور انتشارات کو مسدود کریں"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g> سیٹ اپ کریں"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"\'ڈسٹرب نہ کریں\' کو آن کریں"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"الارم اور میڈیا کی آوازیں رکاوٹ ڈال سکتی ہیں"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"شیڈولز"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"شیڈولز حذف کریں"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"حذف کریں"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"نام تبدیل کریں"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"حذف کریں"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" موڈ کو حذف کریں؟"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"ترمیم کریں"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"شیڈولز"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"شیڈول کریں"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"خودکار طور پر آن کریں"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"کیلنڈر شامل کریں"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"اپنا کیلنڈر استعمال کریں"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"شیڈول کریں"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"شیڈول سیٹ کریں"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"خودکار طور پر کب آن کرنا ہے"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"ایونٹ کا شیڈول"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"کے لیے ایونٹس کے دوران آن کریں"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"جہاں دعوت نامہ کا جواب ہے"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"وقت کا شیڈول"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"شیڈول کریں"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> گھنٹہ، <xliff:g id="MINUTES">%2$d</xliff:g> منٹ"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"شیڈول"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"آواز پیدا کرنے والی مداخلتوں کو اجازت دیں"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"بصری مداخلتیں مسدود کریں"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"بصری سگنلز کی اجازت دیں"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"وہ اطلاعات جو آپ تک پہنچ سکتی ہیں"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"اضافی کارروائیاں"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"نوٹیفکیشن فلٹرز"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"مزید ترتیبات"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{آف}=1{آف / 1 موڈ خودکار طور پر آن ہو سکتا ہے}other{آف / # موڈز خودکار طور پر آن ہو سکتے ہیں}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"ڈسپلے کی ترتیبات"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"ڈسپلے کے اختیارات"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"خاکستری"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"گہری تھیم کو فعال کریں"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"‏تاریک پس منظر پر ہلکے رنگ کے ٹیکسٹ کو ترجیح دینے کے لیے OS اور ایپس کو سوئچ کریں۔ یہ آنکھوں کیلئے زیادہ آرام دہ ہوتا ہے اور کچھ آلات پر بیٹری کی کافی بچت کرتا ہے"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{ڈسپلے میں کوئی تبدیلی نہیں ہوئی}=1{{effect_1}}=2{{effect_1} اور {effect_2}}=3{{effect_1}، {effect_2} اور {effect_3}}other{{effect_1}، {effect_2} اور # مزید}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"جو آپ کو مطلع کر سکتا ہے اسے محدود کریں"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"کوئی مداخلت فلٹر نہیں کی گئی ہے"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"فلٹر شدہ اطلاعات کیلئے ڈسپلے کے اختیارات"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"جب \'ڈسٹرب نہ کریں\' آن ہو"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"اطلاعات کی کوئی آواز نہیں"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"اطلاع کھولیں"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"اطلاع کی اسنوزنگ کی اجازت دیں"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"ایپ آئیکن پر اطلاعاتی ڈاٹ"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"اطلاع بنڈلز"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"بلبلے"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"بلبلے"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"یہ گفتگو ببل کریں"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"اڈاپٹیو اطلاعات"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"اڈاپٹیو اطلاعات استعمال کریں"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"جب آپ کو کم وقت میں بہت ساری اطلاعات موصول ہوں گی تو آپ کا فون حجم کو کم کر دے گا اور دو منٹ تک اسکرین پر پاپ اپس کو کم کر دے گا۔ کالز، الارمز، اور ترجیحی گفتگوئیں اب بھی وائبریٹ ہوتی ہیں، آواز پیدا کرتی ہیں یا اسکرین پر ظاہر ہوتی ہیں اور جب آپ اسکرین کے اوپری حصے سے نیچے کی طرف کھینچتے ہیں تو تمام اطلاعات کو تلاش کرنا آسان ہوتا ہے۔"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"دفتری پروفائل ایپس پر لاگو کریں"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‏VR مددگار سروسز"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"زمرے"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"دیگر"</string>
     <string name="no_channels" msgid="4716199078612071915">"اس ایپ نے کوئی اطلاعات شائع نہیں کی ہیں"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"غیر استعمال شدہ زمرے دکھائیں"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"ایپ میں اضافی ترتیبات"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"غیر استعمال شدہ زمرے دکھائیں"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"غیر استعمال شدہ زمرے چھپائیں"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"گفتگوئیں"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"سبھی گفتگوئيں"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"سبھی گفتگوئیں"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"ترجیحی گفتگوئیں"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"ترجیحی گفتگوئیں"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"کوئی نہیں"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"ایپس جو مداخلت کر سکتی ہیں"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"منتخب کردہ ایپس"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"کوئی نہیں"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"سبھی"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{کوئی ایپ رکاوٹ نہیں ڈال سکتی}=1{{app_1} رکاوٹ ڈال سکتی ہے}=2{{app_1} اور {app_2} رکاوٹ ڈال سکتی ہیں}=3{{app_1}، {app_2} اور{app_3} رکاوٹ ڈال سکتی ہیں}other{{app_1}، {app_2} اور # مزید رکاوٹ ڈال سکتی ہیں}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (دفتری)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"حساب لگایا جا رہا ہے…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"<xliff:g id="NUMBER">%d</xliff:g>+"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"ایپس کو اوور رائیڈ کرنے کی اجازت دیں"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"ایپس جو مداخلت کر سکتی ہیں"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"مزید ایپس منتخب کریں"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"بار بار کال کرنے والے رکاوٹ ڈال سکتے ہیں"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"سبھی لوگ رکاوٹ ڈال سکتے ہیں"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"بار بار کال کرنے والے"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"دوبارہ کال کرنے والوں کو اجازت دیں"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{{time} تک صرف ایک گھنٹے کیلئے الارمز میں تبدیل کریں}other{{time} تک صرف # گھنٹوں کیلئے الارمز میں تبدیل کریں}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"<xliff:g id="FORMATTEDTIME">%1$s</xliff:g> تک کیلئے صرف الارمز میں تبدیل کریں"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"ہمیشہ مداخلت کریں میں تبدیل کریں"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"نام تبدیل کریں"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"آئیکن تبدیل کریں"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"آئیکن تبدیل کریں"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"موڈ ترمیم کریں"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"وضع تخلیق کریں"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"حسب ضرورت موڈ"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"موڈ کا نام"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"کیلنڈر ایونٹس"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"بیڈ ٹائم روٹین"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"ڈرائیونگ کے دوران"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"ایپ کی ترتیبات"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> میں معلومات اور ترتیبات"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> کے زیر انتظام ہے"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> غیر فعال کریں؟"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"یہ وضع غیر فعال ہونے پر کبھی آن نہیں ہوگی"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"غیر فعال کریں"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> کو فعال کریں؟"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"یہ وضع اپنی ترتیبات کی بنیاد پر خودکار طور پر آن ہو سکتی ہے"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"فعال کریں"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"ریگولر شیڈول کی پیروی کرنے والا ایک موڈ سیٹ کریں"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"کیلنڈر ایونٹس اور دعوتی جوابات کے ساتھ مطابقت پذیری کے لیے ایک موڈ سیٹ کریں"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"پرسکون نیند کی روٹین ڈیزائن کریں۔ الارمز سیٹ کریں، اسکرین کو مدھم کریں اور اطلاعات کو مسدود کریں۔"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"فوکسڈ اور خلفشار سے پاک ڈرائیو کے لیے سڑک پر حفاظت کو ترجیح دیں"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"وارننگ"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"بند کریں"</string>
     <string name="device_feedback" msgid="5351614458411688608">"اس آلہ کے بارے میں تاثرات بھیجیں"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"کیس"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"بیٹری"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"ترتیبات پینل"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"ڈیسک ٹاپ موڈ فورس کریں"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"ثانوی ڈسپلیز پر تجرباتی ڈیسک ٹاپ موڈ فورس کریں"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"فری فارم ونڈوز فعال کریں"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"فریفارم ونڈوز کو ثانوی ڈسپلے پر فعال کریں"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"ملٹی ونڈو میں سائز کی ناقابل تبدیلی کو فعال کریں"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"ناقابل تبدیل سائز والی ایپس کو ملٹی ونڈو میں ہونے کی اجازت ہوتی ہے"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"‏force-dark کو اوور رائیڈ کریں"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"موبائل ڈیٹا"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"‏آلے کے تجربے کو بہتر بنانے کے لیے، Wi‑Fi کے آف ہونے پر بھی ایپس اور سروسز اب بھی کسی بھی وقت Wi‑Fi نیٹ ورکس اسکین کر سکتی ہیں۔ مثال کے طور پر، اسے مقام پر مبنی خصوصیات اور سروسز کو بہتر بنانے کے لیے استعمال کیا جا سکتا ہے۔ آپ اسے Wi‑Fi اسکیننگ کی ترتیبات میں تبدیل کر سکتے ہیں۔"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"تبدیل کریں"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"منسلک ہے"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"عارضی طور پر منسلک ہے"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"عارضی طور پر <xliff:g id="SUBNAME">%1$s</xliff:g> استعمال ہو رہا ہے"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"ایپ کو پن کرنے کی سہولت کا استعمال کریں"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"ڈویلپر کے اختیارات کا استعمال کریں"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"پرنٹ سروس کا استعمال کریں"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"متعدد صارفین کو اجازت دیں"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"صارف سوئچ کرنے کی اجازت دیں"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"اجازت دیں، متعدد، صارف، اجازت، بہت سے"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"متعدد، صارفین، پروفائلز، لوگ، اکاؤنٹس، سوئچ، بہت کچھ"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"وائرلیس ڈیبگنگ کا استعمال کریں"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"منتخب کریں کہ آپ کے ٹیبلیٹ کو ڈاک سے منسلک کئے جانے پر آپ کو اپنی اسکرین پر کیا دکھائی دے۔ اسکرین سیور کا استعمال کرنے پر آپ کا آلہ زیادہ توانائی استعمال کر سکتا ہے۔"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"حسب ضرورت بنائیں"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g> کو حسب ضرورت بنائیں"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"فری فارم سپورٹ کو فعال کرنے کے لیے ریبوٹ درکار ہے۔"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"سیکنڈری ڈسپلیز پر ڈیسک ٹاپ موڈ فورس کرنے کے لیے ریبوٹ درکار ہے۔"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"فری فارم ونڈو سپورٹ کو فعال کرنے کے لیے ریبوٹ درکار ہے۔"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"فریفارم ونڈوز کی دستیابی کو اپ ڈیٹ کرنے کیلئے ریبوٹ درکار ہے۔"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"ثانوی ڈسپلیز پر فری فارم ونڈوز فعال کرنے کیلئے ریبوٹ درکار ہے۔"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"ابھی ریبوٹ کریں"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"بعد میں ریبوٹ کریں"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"اسپیشیئل آڈیو"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"گلاب"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"میجنٹا"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"بیگنی"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"ہو گیا"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"محفوظ کریں"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"منسوخ کریں"</string>
     <string name="contrast_default" msgid="8918545965525226966">"ڈیفالٹ"</string>
     <string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"آن ہے"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"آف ہے"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"آن ہے"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"‏آڈیو %1$d%% بائیں، %2$d%% دائیں"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"‏آڈیو %1$d%% دائیں، %2$d%% بائیں"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"‏آپ کے آلے کا نام آپ کی انسٹال کردہ ایپس میں دکھائی دیتا ہے۔ آپ کے بلوٹوتھ آلات سے منسلک ہونے، Wi-Fi نیٹ ورک سے منسلک ہونے یا Wi-Fi ہاٹ اسپاٹ کو سیٹ اپ کرنے پر دوسرے لوگ بھی اسے دیکھ سکتے ہیں۔"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"قواعد سے متعلق صنف"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"قواعد سے متعلق صنف منتخب کریں"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"سلسلہ سنیں"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"‏<xliff:g id="DEVICE_NAME">%1$s</xliff:g> کے ساتھ سننے کے لئے آڈیو سلسلے کا QR کوڈ اسکین کریں"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"اشتراک کے دوران پاس ورڈ میں ترمیم نہیں کر سکتے۔ پاس ورڈ تبدیل کرنے کے لئے پہلے آڈیو کا اشتراک بند کریں۔"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"‏QR کوڈ اسکینر"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"تلاش کی ترتیبات"</string>
 </resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index d38c741..2502407 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Uyqu vaqti"</item>
-    <item msgid="4152450357280759894">"Avtomobilda"</item>
-    <item msgid="7096549258219399423">"Immersiv"</item>
-    <item msgid="2760716776980432977">"Boshqarilayotgan"</item>
-    <item msgid="601734478369121764">"Yulduzcha bilan belgilash"</item>
-    <item msgid="6243809315432780521">"Taqvim"</item>
-    <item msgid="4913577903148415331">"Vaqt"</item>
-    <item msgid="3653377604690057780">"Teatr"</item>
-    <item msgid="3843711267408385410">"Gul"</item>
+    <item msgid="2750940760340557109">"Yarim oy"</item>
+    <item msgid="8513969636586738035">"Avtomobil"</item>
+    <item msgid="957392343846370509">"Odam aqli"</item>
+    <item msgid="6734164279667121348">"Taqvim"</item>
+    <item msgid="4139559120353528558">"Soat"</item>
+    <item msgid="5157711296814769020">"Sohil soyaboni"</item>
+    <item msgid="6635328761318954115">"Chodir"</item>
+    <item msgid="1711994778883392255">"Plyonka ruloni"</item>
+    <item msgid="9097658401859604879">"Oʻyin kontrolleri"</item>
+    <item msgid="755931364157422565">"Sport zalidagi gantel"</item>
+    <item msgid="8894207806795738429">"Koptok otayotgan odam"</item>
+    <item msgid="2274801572149555103">"Tepayotgan odam"</item>
+    <item msgid="8795037201506843325">"Suzish"</item>
+    <item msgid="3558421426169430451">"Piyoda sayrdagi odam"</item>
+    <item msgid="7455070421232184932">"Golf"</item>
+    <item msgid="5841773092449126508">"Asbob-uskunalar"</item>
+    <item msgid="4595330511709890409">"Portfel"</item>
+    <item msgid="8352738347856724389">"Yulduz"</item>
+    <item msgid="7082783098151998721">"Lotus guli"</item>
+    <item msgid="5772220259409264724">"Supervayzer"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index c90925c..2aac903 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Muzlatildi"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Noma’lum"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Razm solish"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR kod"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Kichiklashtirish"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Kattalashtirish"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Har doim"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Eshitish qurilmasi sozlamalari"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Tezkor tugma, eshitish apparati bilan moslik"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Andoza"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Audiolog dasturlagan andozalar topilmadi"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Andoza yangilanmadi"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Audio chiqishi"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Audio chiqishi haqida"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Bu ilova uchun Sozlamalardan tilni tanlash imkonsiz"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Bu til ilovadagi tillardan farq qilishi mumkin. Ayrim ilovalarda bu sozlama ishlamaydi."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Har bir ilova uchun tilni sozlash."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Tizimingiz, ilovalaringiz va veb-saytlaringiz siz tanlagan tillardan birinchi dastaklanadigan tildan foydalanadi."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Qurilma, ilova va saytlaringiz siz tanlagan tillardan birinchi dastaklanadigan tilni ishlatadi.\n\nKoʻpgina ilovalar sanalar, raqamlar va birliklarni formatlash uchun siz tanlagan tildagi mintaqadan ham foydalanadi. Mintaqani oʻzgartirish uchun tilni qoʻshing, keyin maqbul mintaqani tanlang."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Har bir ilova uchun til tanlash uchun ilova tili sozlamalariga kiring."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Ilova tillari haqida batafsil"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Tizim tili %s tiliga oʻzgartirilsinmi?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Oʻchiq"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Yoniq / # ta ilova joylashuvdan foydalanadi}other{Yoniq / # ta ilova joylashuvdan foydalanadi}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yuklanmoqda…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Yaqin-atrofdagi qurilmalarga ruxsati bor ilovalar ulangan qurilmalarning nisbiy holatini aniqlay oladi."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Yaqin-atrofdagi qurilmalarga ruxsati bor ilovalar ulangan qurilmalarning nisbiy holatini aniqlay oladi."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ilovalar va xizmatlar uchun joylashuv axborotiga ruxsat yoqilmagan. Favqulodda holatlar raqamiga murojaat qilganingizda, qurilmangiz favqulodda xizmatlarga joylashuvingizni yuborishi mumkin."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Joylashuv sozlamalari haqida batafsil"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Oʻzgartirish uchun ChromeOS sozlamalari &gt; Maxfiylik va xavfsizlik &gt; Maxfiylik sozlamalari &gt; Joylashuv axborotiga ruxsat sahifasini oching"</string>
@@ -409,6 +411,7 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Yuz va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Yuz, barmoq izi va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Yuz, barmoq izlari va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
+    <string name="mandatory_biometrics_prompt_description" msgid="8928849367818726432">"Shaxsni aniqlash yoniq"</string>
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Masofaviy Authenticator qulfini ochish"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Soat kiritildi"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Soatingizni sozlang"</string>
@@ -436,7 +439,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Soat bilan ochish haqida batafsil"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Soat kiritish"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Soatni olib tashlash"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Barmoq izi va yuz bilan ochish"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Yuz va barmoq izi bilan ochish"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ish uchun Yuz va Barmoq izi bilan ochish"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Sozlash talab etiladi"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Yuz va barmoq izlari kiritildi"</string>
@@ -620,6 +623,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Maxfiy joy sozlanmoqda…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Maxfiy makon sozlanmadi"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Qayta urinish"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Chiqish"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Maxfiy makon mavjud emas.\nEhtimoliy sabablarni koʻrish"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Ehtimoliy sabablarni koʻrish"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Maxfiy makon uchun yangi qulf yaratilsinmi?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Maxfiy makon uchun alohida qulf belgilash yoki qurilmani qulfdan chiqarish uchun ishlatiladigan qulfni ishlatish mumkin"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Ekran qulfi"</string>
@@ -848,6 +854,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Qurilma qayta ishga tushirilsinmi?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Tafsilotli NFC jurnali faqat ishlab chiqish maqsadlari uchun moʻljallangan. Qoʻshimcha NFC maʼlumotlari shaxsiy maʼlumotlar bor xato hisobotlariga kiritilgan. Bu sozlamani oʻzgartirish uchun qurilmangizni qayta ishga tushiring."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Qayta yoqish"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Yoniq"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Yoqilmagan"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Tashqi displey"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Tashqi displeydan foydalanish"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ekran aniqlik darajasi"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Tashqi displey uzildi"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Burish"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Standart"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Ekran holati yoki aniqlik darajasi oʻzgartirilsa, barcha faol ilovalar toʻxtatilishi mumkin"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Ekranni aks ettirish uchun qurilmangiz tashqi displeyga ulangan boʻlishi kerak"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Yana"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Translatsiya"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"koʻzgu"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Simsiz monitorni yoqish"</string>
@@ -1189,6 +1209,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Moslashuvchan"</string>
     <string name="brightness" msgid="6216871641021779698">"Yorqinlik darajasi"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Moslashuvchan yorqinlik"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Adaptiv yorqinlik haqida"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Ekran yorqinligi muhit va harakatlaringizga qarab avtomatik moslanadi. Yorqinlikni o‘zingizga moslashtirish uchun slayderni qo‘lda surib sozlashingiz mumkin."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Yoniq"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Oʻchiq"</string>
@@ -1894,14 +1915,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Variantlar"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Qulayliklar"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tashqi klaviatura"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Ekrandagi klaviaturadan foydalanish"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Tashqi klaviatura ulanganida ekranda chiqib turadi"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Qayta bosishni nazorat qilish"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms ichida tugmalar takroriy bosilsa, eʼtiborsiz qoldiriladi"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Sekin tugmalar"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms dan keyin tugma bosilsa, qayd etiladi"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Sichqonchani tashqi klaviatura yordamida boshqarish."</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>
@@ -1926,6 +1947,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Kursor ichini sariqqa boʻyash"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Kursor ichini pushtiga boʻyash"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Kursor ichini koʻkka boʻyash"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Kursor chiziqlari uslubi"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Oq"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Qora"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Hech qanday"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Sensorli panel ishoralari haqida"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"sensorli panel, sichqoncha, kursor, varaqlash, surish, oʻng klik, klik, koʻrsatkich"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"oʻng klik, bosish"</string>
@@ -1969,6 +1994,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Foydalanuvchi tanlagan: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Nutq"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Kursor tezligi"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Kursor hajmi"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Kursor hajmini kamaytirish"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Kursor hajmini oshirish"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"O‘yin qurilmasi"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Tebranishni uzatish"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"O‘yin qurilmasi ulanganda tebranish yuborish"</string>
@@ -2091,7 +2119,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Baribir davom ettirilsin"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Bekor qilish"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Kattalashtirish sozlamalari"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Bitta barmoq bilan sudrash"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Lupani 1 barmoq bilan suring"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Ekranda kezish uchun 1 barmoqni sudrang"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Kattalashtirish hududini bitta barmoq bilan suring."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Kattalashtirish hududini ikkita barmoq bilan suring."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Faqat ekran qismini kattalashtirishda ishlamaydi"</string>
@@ -2115,6 +2144,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Kattalashtirish uchun tugmani bosing"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Kontentni kattaroq koʻrish uchun ekranni tezkor yaqinlashtiring"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Kattalashtirish uchun:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kattalashtirish tugmasini bosing&lt;br/&gt; {1,number,integer}. Ekranga bosing&lt;br/&gt; {2,number,integer}. Ekranni 2 ta barmoq bilan suring&lt;br/&gt; {3,number,integer}. Moslash uchun 2 ta barmoq bilan chimding&lt;br/&gt; {4,number,integer}. Yakunlash uchun kattalashtirish tugmasini bosing&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Vaqtincha kattalashtirish uchun:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kattalashtirish rejimi butun ekranga tatbiq etilganiga ishonch hosil qiling.&lt;br/&gt; {1,number,integer}. Kattalashtirish tugmasini bosing&lt;br/&gt; {2,number,integer}. Ekranning istalgan qismini bosib turing&lt;br/&gt; {3,number,integer}. Ekranni barmoq bilan suring&lt;br/&gt; {4,number,integer}. Yakunlash uchun barmoqni ekrandan oling"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Yaqinlashtirish:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kattalashtirish tugmasini bosing&lt;br/&gt; {1,number,integer}. Ekranga bosing&lt;br/&gt; {2,number,integer}. Ekranda kezish uchun 2 barmoq bilan suring&lt;br/&gt; {3,number,integer}. Moslash uchun 2 barmoq bilan chimding&lt;br/&gt; {4,number,integer}. Kattalashtirishni toʻxtatish tugmasini bosing&lt;br/&gt;&lt;br/&gt; Vaqtinchalik yaqinlashtirish va hokazolar ham mumkin."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Yaqinlashtirish:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Kattalashtirish tugmasini bosing&lt;br/&gt; {1,number,integer}. Ekranga bosing&lt;br/&gt; {2,number,integer}. Ekranda kezish uchun 1 yoki 2 barmoq bilan suring&lt;br/&gt; {3,number,integer}. Moslash uchun 2 barmoq bilan chimding&lt;br/&gt; {4,number,integer}. Kattalashtirishni toʻxtatish tugmasini bosing&lt;br/&gt;&lt;br/&gt; Vaqtinchalik yaqinlashtirish va hokazolar ham mumkin."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Agar kattalashtirish yoqilsa, ekrandagi maʼlumotlarni kattalashtirish mumkin.\n\n"<b>"Kattalashtirish"</b>" uchun zum tugmasini bosib, ekranning istalgan joyini bosing.\n"<ul><li>"Siljitish uchun bir nechta barmogʻingiz bilan suring"</li>\n<li>"Masshtabini oʻzgartirish uchun bir nechta barmogʻingizni jipslashtiring"</li></ul>\n\n<b>"Vaqtinchalik kattalashtirish uchun"</b>" zum tugmasini bosib, ekranning istalgan joyini bosing va ushlab turing.\n"<ul><li>"Ekran boʻylab harakatlanish uchun suring"</li>\n<li>"Oʻz holatiga qaytarish uchun barmoqni qoʻyib yuboring"</li></ul>\n\n"Klaviatura yoki navigatsiya paneli orqali kattalashtirib boʻlmaydi."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Sahifa: <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> / <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Qulayliklar tugmasi buyrugʻi"</string>
@@ -2149,8 +2180,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Erkin harakatlanuvchi tugmaga bosing"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Qulaylik ishorasi"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ekranning pastidagi <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> qulayliklar tugmasini bosing. Funksiyalarni almashtirish uchun qulayliklar tugmasini bosib turing."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"2 ta barmoq bilan ekranning pastidan tepaga suring.\n\nFunksiyalarni almashtirish uchun 2 ta barmoq bilan tepaga suring va ushlab turing."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"3 ta barmoq bilan ekranning pastidan tepaga suring.\n\nFunksiyalarni almashtirish uchun 3 ta barmoq bilan tepaga suring va ushlab turing."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Ekranning quyi qismidan tepaga torting. Funksiyalarni almashtirish uchun tepaga suring va bosib turing.}other{Ekranning pastki qismidan # ta barmoq bilan tepaga suring. Funksiyalarni almashtirish uchun # ta barmoq bilan tepaga suring va bosib turing.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Yana"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"<xliff:g id="SERVICE">%1$s</xliff:g> haqida batafsil"</string>
@@ -2161,16 +2190,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Tovush tugmalari"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"tovush tugmalari"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Ikkala tovush tugmalarini bosib turing."</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Ekranni ikki barmoq bilan ikki marta bosing"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-barmoq bilan ikki marta bosing"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"%1$d ta barmoq bilan ekranga tez-tez ikki marta bosing"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Uch marta bosing"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Ekranga tez-tez %1$d marta bosing. Bu qurilmangizni sekinlashtirishi mumkin."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-barmoq bilan ikki marta bosing"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ekranni ikki barmoq bilan {0,number,integer} marta takror bosing"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekran ustiga uch marta bosing"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"uch marta bosing"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Ekranga tez-tez {0,number,integer} marta bosing. Bu qurilmangizni sekinlashtirishi mumkin"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Kengaytirilgan"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Qulayliklar tugmasi <xliff:g id="SERVICE">%1$s</xliff:g> xizmatiga sozlangan. Kattalashtirish uchun Qulayliklar tugmasini bosib turib, keyin kattalashtirishni tanlang."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Endi <xliff:g id="SERVICE">%1$s</xliff:g> maxsus imkoniyatlar ishorasi bilan ishga tushadi. Lupadan foydalanish uchun 2 barmoq bilan ekranning pastidan tepaga suring va tortib turing. Keyin masshtabni tanlang."</string>
@@ -2334,13 +2359,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Bu xizmat xato ishlayapti."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Qulayliklar buyruqlari"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Tezkor sozlamalarda ko‘rsatish"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Qizil/yashil"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Qizil/yashil"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Qizil-yashil, yashilni yaxshi koʻrmaslik"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Qizil-yashil, qizilni yaxshi koʻrmaslik"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Koʻk/sariq"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Kulrang tus"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Intensivlik"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Deyteranomaliya (yashilni yaxshi koʻrmaslik)"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Protanomaliya (qizilni yaxshi koʻrmaslik)"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Kulrang tus rejimida yoki ranglarni tuzatish oʻchirilganida mavjud emas"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Deyteranomaliya"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Protanomaliya"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Tritanomaliya"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Juda xira"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Ekranni juda xira qilish"</string>
@@ -2388,15 +2414,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Zangori"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Sariq"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Pushtirang"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"<xliff:g id="SERVICE">%1$s</xliff:g> xizmatiga qurilmangizni boshqarish uchun toʻliq ruxsat berilsinmi?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Ilova ruxsatnoma so‘roviga xalaqit qilayotgani tufayli, “Sozlamalar” ilovasi javobingizni tekshira olmaydi."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> bu qurilmaning toʻliq boshqaruvini talab qilmoqda. Xizmat ekrandagilarni oʻqishi va maxsus imkoniyatlarga ehtiyoji bor foydalanuvchilar nomidan harakat qilishi mumkin. Boshqaruvning bu darajasi ayrim ilovalargagina mos keladi."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Toʻliq nazorat maxsus imkoniyatlar bilan ishlovchi ilovalar uchun mos, lekin barcha ilovalar uchun emas."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Ekranni ochish va boshqarish"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Ekrandagi barcha kontentni oʻqishi va kontentni boshqa ilovalar ustida ochishi mumkin."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Harakatlarni koʻrish va bajarish"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ilova yoki qurilma sensori bilan munosabatlaringizni kuzatishi hamda sizning nomingizdan ilovalar bilan ishlashi mumkin."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruxsat"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rad etish"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Faolsizlantirish"</string>
@@ -3320,22 +3339,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Hech qanday}=1{1 ta reja sozlangan}other{# ta reja sozlangan}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Bezovta qilinmasin"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Muhim rejimlar"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Rejim qoʻshish"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Uyqu, ish, haydash va hokazo rejimlarda chalgʻituvchi narsalarni kamaytiring va diqqatingiz markazini boshqaring."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Shaxsiy rejim yaratish"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Faqat muhim odamlar va ilovalardan bildirishnomalarni olish"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Jadval tuzing"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Jadval manbasi"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Kun va vaqt"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9:00 — 17:00 begim kunlari\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Taqvimdagi tadbirlar"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} faol}=2{{mode_1} va {mode_2} faol}=3{{mode_1}, {mode_2} va {mode_3} faol}other{{mode_1}, {mode_2} va # tasi faol}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 ta rejim avtomatik yoqilishi mumkin}other{# ta rejim avtomatik yoqilishi mumkin}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"YONIQ"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Sozlanmagan"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Yoqilmagan"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Rejim yarating"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Maxsus"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Yoqish"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Faolsizlantirish"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Rejim topilmadi"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Bildirishnomalarni kamaytirish"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Uzilish va xalaqitlarni bloklang"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"<xliff:g id="MODE">%1$s</xliff:g>ni sozlash"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Bezovta qilinmasin rejimini yoqing"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Bezovta qilinmasin rejimi signal va media tovushlari uchun ishlamaydi"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Jadvallar"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Jadvallarni oʻchirish"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Oʻchirish"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Qayta nomlash"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Oʻchirish"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"\"<xliff:g id="MODE">%1$s</xliff:g>\" rejimi oʻchirilsinmi?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Tahrirlash"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Jadvallar"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Jadval"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Avtomatik yoqish"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Taqvim qoʻshish"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Taqvimingizdan foydalanish"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Jadval"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Jadval tuzing"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Qachon avtomatik yoqilishi"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Tadbir jadvali"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Mazkur tadbirda yoqish"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Mazkur tadbirga javob berish"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Vaqt jadvali"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Jadval"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> soat <xliff:g id="MINUTES">%2$d</xliff:g> daqiqa"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Jadval"</string>
@@ -3347,8 +3387,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Tovush chiqarishga ruxsat"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Vizual bildirishnomalarni bloklash"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Vizual signallarga ruxsat"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Sizga kelishi mumkin bildirishnomalar"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Qoʻshimcha amallar"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Bildirishnoma filtrlari"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Boshqa sozlamalar"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Oʻchiq}=1{Oʻchiq / 1 ta rejim avtomatik yonishi mumkin}other{Oʻchiq / # ta rejim avtomatik yonishi mumkin}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Ekran sozlamalari"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Ekran parametrlari"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Kulrang tus"</string>
@@ -3364,6 +3405,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"tungi mavzuni yoqish"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Operatsion tizim va ilovalar sozlamalarini qorongʻi fonda yorqin matn chiqarish tanlovi bilan almashtiring, bunda koʻzlar qiynalmaydi va ayrim qurilmalarda batareya sezilarli tejaladi"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Ekran oʻzgarishlarsiz}=1{{effect_1}}=2{{effect_1} va {effect_2}}=3{{effect_1}, {effect_2} va {effect_3}}other{{effect_1}, {effect_2} va yana # ta}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Chiqishi mumkin bildirishnomalarni tanlash"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Hech qanday tanaffus filtrlanmagan"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Bildirishnomalarni filtrlab chiqarish parametrlari"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Bezovta qilinmasin rejimida"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Bildirishnomalar tovushsiz keladi"</string>
@@ -3479,6 +3522,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"bildirishnomani ochish"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Bildirishnomalarni keyinga qoldirish"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Ilova belgisi ustida bildirishnoma belgisi"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Bildirishnoma jamlanmalari"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bulutchalar"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bulutchalar"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Bu suhbatni bulutchaga chiqarish"</string>
@@ -3608,9 +3652,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Bu ilovada kengaytirilgan sozlamalar ishlamaydi"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Boshqa sozlamalar"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Boshqa sozlamalar bu ilova ichida joylashgan"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Adaptiv bildirishnomalar"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Adaptiv bildirishnomalardan foydalanish"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Qisqa vaqt oraligʻida koʻp bildirishnoma kelsa, telefondagi tovush balandligi hamda bildirgi oynalar soni ikki daqiqagacha kamaytiriladi. Chaqiruvlar, signallar va muhim suhbatlar tebranish, tovush chiqarish va ekranda chiqishda davom etadi va barcha bildirishnomalarni ekranning tepasidan pastga surish orqali koʻrish mumkin."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Bildirishnomalarni cheklash"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Bildirishnomalarni sekinlatishdan foydalanish"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Qisqa vaqt oraligʻida koʻp bildirishnoma kelsa, qurilmangizdagi tovush balandligi hamda signallar davomiyligi 2 daqiqagacha kamaytiriladi. Chaqiruvlar, signallar va muhim suhbatlarga taʼsir qilmaydi. \n\nSekinlatish paytida olingan bildirishnomalarni ekranning yuqori qismidan pastga tortish orqali topish mumkin."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Ish profillariga tatbiq qilinsin"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Ish profilidagi ilovalar uchun qoʻllash"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Yordamchi VR xizmatlar"</string>
@@ -3657,6 +3701,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Turkumlar"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Boshqa"</string>
     <string name="no_channels" msgid="4716199078612071915">"Bu ilova hech qanday bildirishnoma joylamagan"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Nofaol turkumlarni chiqarish"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Ilovadagi boshqa sozlamalar"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Nofaol turkumlarni chiqarish"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Nofaol turkumlarni berkitish"</string>
@@ -3712,6 +3757,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Suhbatlar"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Barcha suhbatlar"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"barcha suhbatlar"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Muhim suhbatlar"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"muhim suhbatlar"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Hech qanday"</string>
@@ -3765,8 +3811,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Bezovta qilinmasin rejimi ishlamaydigan ilovalar"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Tanlangan ilovalar"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Hech biri"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Hammasi"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Bezovta qilinmasin rejimi barcha ilovalar uchun ishlaydi}=1{Bezovta qilinmasin rejimi {app_1} uchun ishlamaydi}=2{Bezovta qilinmasin rejimi {app_1} va {app_2} uchun ishlamaydi}=3{Bezovta qilinmasin rejimi {app_1}, {app_2} va {app_3} uchun ishlamaydi}other{Bezovta qilinmasin rejimi {app_1}, {app_2} va yana # ta tovushlar uchun ishlamaydi}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (ish)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Hisoblanmoqda…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Ilovalarga Bezovta qilinmasin rejimiga amal qilmasligiga ruxsat berish"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Bezovta qilinmasin rejimi ishlamaydigan ilovalar"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Boshqa ilovalarni tanlang"</string>
@@ -3784,6 +3832,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Bezovta qilinmasin rejimi barcha tovushlar uchun ishlaydi"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Bezovta qilinmasin rejimi barcha xabar va chaqiruvlar uchun ishlaydi"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Bezovta qilinmasin rejimi ayrim foydalanuvchilardan keladigan xabar va chaqiruvlar uchun ishlamaydi"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Qayta chaqiruvlar xalaqit berishi mumkin"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Bezovta qilinmasin rejimi foydalanuvchilardan keladigan xabar va chaqiruvlar uchun ishlamaydi"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Qayta chaqiruvlar"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Qayta chaqiruvlar"</string>
@@ -3803,9 +3852,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Signallarni faqat {time} ga bir soat qolgungacha faol qilish}other{Signallarni faqat {time} ga # soat qolgungacha faol qilish}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"“Faqat signallar” rejimini <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> gacha faol bo‘ladigan qilib yoqish"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Har doim bezovta qilinaversin"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Qayta nomlash"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Belgini oʻzgartirish"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Belgini oʻzgartirish"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Tahrirlash rejimi"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Rejim yaratish"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Maxsus rejim"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Rejim nomi"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Taqvimdagi tadbirlar"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Uyqu vaqti dasturi"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Avtomobilda"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Ilova sozlamalari"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasida axborot va sozlamalar"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"<xliff:g id="APP_NAME">%1$s</xliff:g> tomonidan boshqariladi"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"<xliff:g id="MODE_NAME">%1$s</xliff:g> faolsizlantirilsinmi?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Bu rejim yoqilmaguncha ishga tushmaydi"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Faolsizlantirish"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"<xliff:g id="MODE_NAME">%1$s</xliff:g> yoqilsinmi?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Bu rejim sozlamalar asosida avtomatik yoqilishi mumkin"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Yoqish"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Muntazam jadvalga amal qiladigan rejimni oʻrnating"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Taqvim bilan sinxronlash va javoblarni taklif qilish rejimini oʻrnating"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Tinchlantiruvchi uyqu rejimini yarating. Signal oʻrnating, ekranni xiralashtiring va bildirishnomalarni bloklang."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Diqqatni jamlab, chalgʻimasdan haydash uchun avvalo xavfsizlikka rioya qiling"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Diqqatni jamlash uchun qurilmadagi chalgʻituvchi omillar yoki xalaqitlarni bloklang"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Tinch muhit uchun barcha chalgʻitadiganlarni yoʻq qiling"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Turli foydalanuvchilar uchun qurilma ishlashi va sozlamalarini moslang"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Faqat muhim odamlar va ilovalarga ruxsat berish orqali xalaqitlarni minimallashtiring"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Diqqat"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Yopish"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Qurilma haqida fikr-mulohaza"</string>
@@ -4791,8 +4861,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Quvvatlash gʻilofi"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Batareya"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Sozlamalar paneli"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Desktop rejimini majburiy ochish"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Ikkilamchi displeylarda tajribaviy desktop rejimini majburiy ochish"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Erkin shakldagi oynalarni yoqish"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Ikkinchi ekranda erkin shakldagi oynalarni yoqish"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Koʻp oynali hajmi oʻzgarmas ilovalarni yoqish"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Hajmi oʻzgarmas ilovalar koʻp oynali rejimda ochilishiga ruxsat beradi."</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Tungi mavzuni yoqish ustidan yozadi"</string>
@@ -4967,7 +5037,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"mobil internet"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Qurilma ishlashini yaxshilash (masalan, joylashuvni yanada aniqroq aniqlash maqsadida) uchun ilova va xizmatlar hatto Wi-Fi yoqilmaganda ham istalgan vaqt Wi-Fi tarmoqlarni qidirishi mumkin. Buni Wi-Fi tarmoqlarni qidirish sozlamalari orqali oʻzgartirish mumkin."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Oʻzgarish"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Ulangan"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Vaqtincha ulangan"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Vaqtincha ishlatilmoqda: <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5068,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Ilovani mahkamlashdan foydalanish"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Dasturchi sozlamalaridan foydalanish"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Chop etish xizmatidan foydalanish"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Bir nechta foydalanuvchiga ruxsat berish"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Foydalanuvchini almashtirishga ruxsat"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"ruxsat, bir nechta, foydalanuvchi, ruxsat berish, koʻp"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"bir nechta, foydalanuvchilar, profillar, odamlar, hisoblar, almashtirish, koʻp"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Wi-Fi orqali debagging"</string>
@@ -5113,8 +5182,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Planshet dokka joylanganda ekranda nima chiqishini tanlang. Ekranda lavhasi chiqsa, qurilmangiz koʻproq quvvat sarflashi mumkin."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Moslash"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Moslash: <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Erkin shakllarni yoqish uchun qayta ishga tushirish zarur."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Ikkilamchi displeylar majburan ish stoli rejimida ishlashi uchun qayta ishga tushirish zarur."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Erkin shaklli oynalar bilan ishlashni yoqish uchun qayta ishga tushirish zarur."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Erkin shakldagi oynalar mavjudligini yangilash uchun qayta ishga tushirish zarur."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Ikkilamchi displeylarda erkin shakldagi oynalarni yoqish uchun qayta ishga tushirish zarur."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Hozir qayta ishga tushirish"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Keyinroq qayta ishga tushirish"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Qamrovli ovoz"</string>
@@ -5211,7 +5281,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Atirgul"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Qirmizi"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Binafsharang"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Tayyor"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Saqlash"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Bekor qilish"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Birlamchi"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Oʻrtacha"</string>
@@ -5232,6 +5302,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Yoniq"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Oʻchiq"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Yoniq"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Audio %1$d%% chap, %2$d%% oʻng"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Audio %1$d%% oʻng, %2$d%% chap"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Qurilma nomi siz oʻrnatgan ilovalarga koʻrinadi. Bluetooth qurilmalarga yoki Wi-Fi tarmoqqa ulanganingizda, Wi-Fi hotspot sozlaganingizda boshqalarga ham koʻrinishi mumkin."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Grammatik jins"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Grammatik jinsni tanlang"</string>
@@ -5343,4 +5415,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Oqimga ulanish"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> qurilmasi bilan birga tinglash uchun audio oqim QR kodini skanerlang"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Parol ulashuv vaqtida tahrirlanmaydi. Parolni oʻzgartirish uchun audio ulashuvni faolsizlantiring."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR-kod skaneri"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Qidiruv sozlamalari"</string>
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 1f995af..2f24172 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Giờ đi ngủ"</item>
-    <item msgid="4152450357280759894">"Lái xe"</item>
-    <item msgid="7096549258219399423">"Sống động"</item>
-    <item msgid="2760716776980432977">"Được quản lý"</item>
-    <item msgid="601734478369121764">"Sao"</item>
-    <item msgid="6243809315432780521">"Lịch"</item>
-    <item msgid="4913577903148415331">"Thời gian"</item>
-    <item msgid="3653377604690057780">"Nhà hát"</item>
-    <item msgid="3843711267408385410">"Hoa"</item>
+    <item msgid="2750940760340557109">"Nửa vầng trăng"</item>
+    <item msgid="8513969636586738035">"Ô tô"</item>
+    <item msgid="957392343846370509">"Suy nghĩ của một người"</item>
+    <item msgid="6734164279667121348">"Lịch"</item>
+    <item msgid="4139559120353528558">"Đồng hồ"</item>
+    <item msgid="5157711296814769020">"Dù che trên bãi biển"</item>
+    <item msgid="6635328761318954115">"Lều"</item>
+    <item msgid="1711994778883392255">"Cuộn phim"</item>
+    <item msgid="9097658401859604879">"Tay điều khiển trò chơi"</item>
+    <item msgid="755931364157422565">"Tạ tập thể dục"</item>
+    <item msgid="8894207806795738429">"Người đang ném bóng"</item>
+    <item msgid="2274801572149555103">"Người đang đá"</item>
+    <item msgid="8795037201506843325">"Bơi"</item>
+    <item msgid="3558421426169430451">"Người đi bộ đường dài"</item>
+    <item msgid="7455070421232184932">"Gôn"</item>
+    <item msgid="5841773092449126508">"Công cụ trong xưởng"</item>
+    <item msgid="4595330511709890409">"Cặp tài liệu"</item>
+    <item msgid="8352738347856724389">"Ngôi sao"</item>
+    <item msgid="7082783098151998721">"Hoa sen"</item>
+    <item msgid="5772220259409264724">"Người giám sát"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 64fe509..68a3db2 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Bị tạm ngưng"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Không xác định"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Xem trước"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Mã QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Thu nhỏ"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Phóng to"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Luôn luôn"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Cài đặt thiết bị trợ thính"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Phím tắt, khả năng tương thích với thiết bị trợ thính"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Chế độ đặt sẵn"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Không có chế độ đặt sẵn do chuyên gia thính học lập trình"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Không cập nhật được giá trị đặt trước"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Đầu ra âm thanh"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Giới thiệu về đầu ra âm thanh"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Bạn chưa thể chọn ngôn ngữ cho ứng dụng này trong phần Cài đặt."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Ngôn ngữ có thể khác với ngôn ngữ có sẵn trong ứng dụng. Một số ứng dụng có thể không hỗ trợ cài đặt này."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Đặt ngôn ngữ cho từng ứng dụng."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Hệ thống, các ứng dụng và trang web sẽ sử dụng ngôn ngữ đầu tiên được hỗ trợ trong số các ngôn ngữ mà bạn ưu tiên."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Thiết bị của bạn, các ứng dụng và trang web sẽ sử dụng ngôn ngữ trên cùng được hỗ trợ trong danh sách ngôn ngữ mà bạn ưu tiên.\n\nNhiều ứng dụng cũng sẽ định dạng ngày tháng, số và đơn vị theo khu vực tương ứng với ngôn ngữ ưu tiên của bạn. Để thay đổi khu vực, hãy thêm một ngôn ngữ, sau đó chọn khu vực bạn muốn."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Để chọn ngôn ngữ cho từng ứng dụng, hãy chuyển đến phần cài đặt ngôn ngữ ứng dụng."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Tìm hiểu thêm về ngôn ngữ ứng dụng"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Thay đổi ngôn ngữ hệ thống thành %s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Đang tắt"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Đang bật / # ứng dụng có quyền truy cập vào thông tin vị trí}other{Đang bật / # ứng dụng có quyền truy cập vào thông tin vị trí}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Đang tải…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Những ứng dụng có quyền đối với các Thiết bị ở gần có thể xác định vị trí tương đối của các thiết bị đã kết nối."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Những ứng dụng có quyền đối với các thiết bị ở gần có thể xác định vị trí tương đối của các thiết bị đã kết nối."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Các ứng dụng và dịch vụ sẽ không có quyền truy cập vào thông tin vị trí. Khi bạn gọi điện hoặc nhắn tin đến một số khẩn cấp, nhân viên ứng cứu khẩn cấp vẫn có thể nhận được thông tin vị trí thiết bị của bạn."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Tìm hiểu thêm về chế độ Cài đặt vị trí"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Để thay đổi, hãy chuyển đến phần Cài đặt ChromeOS &gt; Quyền riêng tư và bảo mật &gt; Chế độ kiểm soát quyền riêng tư &gt; Quyền truy cập thông tin vị trí"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Đã thêm khuôn mặt và <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Đã thêm khuôn mặt, vân tay và <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Đã thêm khuôn mặt, vân tay và <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Mở khoá từ xa bằng Authenticator"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Đã thêm đồng hồ"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Thiết lập đồng hồ"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Tìm hiểu thêm về tính năng Mở khoá bằng đồng hồ"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Thêm đồng hồ"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Xoá đồng hồ"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Mở khóa bằng khuôn mặt và vân tay"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Mở khoá bằng khuôn mặt và vân tay cho công việc"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cần thiết lập"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Đã thêm khuôn mặt và các vân tay"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Đang thiết lập không gian riêng tư…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Không thiết lập được không gian riêng tư"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Thử lại"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Thoát"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Không dùng được không gian riêng tư.\nXem nguyên nhân có thể gây lỗi"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Xem nguyên nhân có thể gây lỗi"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Chọn một phương thức khoá mới cho không gian riêng tư?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Bạn có thể đặt một phương thức khoá mới dành riêng cho không gian riêng tư, hoặc sử dụng phương thức khoá mà bạn dùng để mở khoá thiết bị của mình"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Dùng phương thức khoá màn hình"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Khởi động lại thiết bị?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Chế độ ghi nhật ký chi tiết về Giao tiếp phạm vi gần (NFC) chỉ dành cho mục đích phát triển. Dữ liệu bổ sung về NFC sẽ được đưa vào báo cáo lỗi. Dữ liệu này có thể chứa thông tin riêng tư. Hãy khởi động lại thiết bị để thay đổi chế độ cài đặt này."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Khởi động lại"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Đang bật"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Đang tắt"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Màn hình ngoài"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Dùng màn hình ngoài"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Độ phân giải màn hình"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Màn hình ngoài bị ngắt kết nối"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Góc xoay"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Tiêu chuẩn"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Việc thay đổi góc xoay hoặc độ phân giải có thể dừng các ứng dụng đang chạy"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Thiết bị phải được kết nối với một màn hình ngoài để phản chiếu màn hình của bạn"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Lựa chọn khác"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Truyền"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"phản chiếu"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Bật hiển thị không dây"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Thích ứng"</string>
     <string name="brightness" msgid="6216871641021779698">"Độ sáng"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Độ sáng thích ứng"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Giới thiệu về độ sáng thích ứng"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Độ sáng màn hình sẽ tự động điều chỉnh theo môi trường và hoạt động của bạn. Bạn có thể di chuyển thanh trượt theo cách thủ công để giúp tính năng độ sáng thích ứng học các lựa chọn ưu tiên của bạn."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Đang bật"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Tắt"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Tuỳ chọn"</string>
     <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="show_ime" msgid="4334255501724746849">"Sử dụng bàn phím ảo"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Hiện bàn phím ảo trên màn hình trong khi bàn phím vật lý đang hoạt động"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Phím nảy"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Bàn phím sẽ bỏ qua các lần nhấn nhanh liên tục cùng một phím trong <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> mili giây"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Phím chậm"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Điều chỉnh thời gian cần để kích hoạt lượt nhấn phím thành <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> mili giây"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Dùng bàn phím thực để điều khiển chuột."</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Đổi màu nền con trỏ thành màu vàng"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Đổi màu nền con trỏ thành màu hồng"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Đổi màu nền con trỏ thành xanh lam"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Kiểu nét vẽ của con trỏ"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Trắng"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Đen"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Không có"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Tìm hiểu về cử chỉ ở bàn di chuột"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"bàn di chuột, bàn rê chuột, chuột, con trỏ chuột, cuộn, vuốt, nhấp chuột phải, nhấp, con trỏ"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"nhấp chuột phải, nhấn"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Người dùng đã chọn: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Lời nói"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Tốc độ con trỏ"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Kích thước con trỏ"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Giảm kích thước con trỏ"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Tăng kích thước con trỏ"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Trình điều khiển trò chơi"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Chuyển hướng rung"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Chuyển hướng rung sang bộ điều khiển trò chơi khi được kết nối."</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vẫn tiếp tục"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Huỷ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Cài đặt phóng to"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"Di chuyển vùng phóng to bằng một ngón tay"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Di chuyển kính lúp bằng 1 ngón tay"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Kéo 1 ngón tay để di chuyển xung quanh màn hình."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Di chuyển vùng phóng to bằng cách kéo một ngón tay."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Di chuyển vùng phóng to bằng cách kéo hai ngón tay."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Không dùng được khi chỉ phóng to một phần màn hình"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Nhấn vào nút để thu phóng"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Nhanh chóng phóng to màn hình để hiển thị nội dung lớn hơn"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Cách phóng to:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Dùng phím tắt để bắt đầu phóng to&lt;br/&gt; {1,number,integer}. Nhấn vào màn hình&lt;br/&gt; {2,number,integer}. Kéo 2 ngón tay để di chuyển xung quanh màn hình&lt;br/&gt; {3,number,integer}. Chụm 2 ngón tay để điều chỉnh mức thu phóng&lt;br/&gt; {4,number,integer}. Dùng phím tắt để dừng phóng to&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Cách phóng to tạm thời:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Hãy nhớ đặt kiểu phóng to thành toàn màn hình&lt;br/&gt; {1,number,integer}. Dùng phím tắt để bắt đầu phóng to&lt;br/&gt; {2,number,integer}. Chạm và giữ một vị trí bất kỳ trên màn hình&lt;br/&gt; {3,number,integer}. Kéo ngón tay để di chuyển xung quanh màn hình&lt;br/&gt; {4,number,integer}. Nhấc ngón tay lên để dừng phóng to"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Cách phóng to:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Dùng lối tắt để bắt đầu phóng to&lt;br/&gt; {1,number,integer}. Nhấn vào màn hình&lt;br/&gt; {2,number,integer}. Kéo 2 ngón tay để di chuyển xung quanh màn hình&lt;br/&gt; {3,number,integer}. Chụm 2 ngón tay để điều chỉnh mức thu phóng&lt;br/&gt; {4,number,integer}. Dùng lối tắt để dừng phóng to&lt;br/&gt;&lt;br/&gt; Bạn có thể dùng tính năng phóng to tạm thời cùng nhiều tính năng khác."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Cách phóng to:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Dùng lối tắt để bắt đầu phóng to&lt;br/&gt; {1,number,integer}. Nhấn vào màn hình&lt;br/&gt; {2,number,integer}. Kéo 1 hoặc 2 ngón tay để di chuyển xung quanh màn hình&lt;br/&gt; {3,number,integer}. Chụm 2 ngón tay để điều chỉnh mức thu phóng&lt;br/&gt; {4,number,integer}. Dùng lối tắt để dừng phóng to&lt;br/&gt;&lt;br/&gt; Bạn có thể dùng tính năng phóng to tạm thời cùng nhiều tính năng khác."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Khi tính năng phóng to đang bật, bạn có thể phóng to trên màn hình.\n\n"<b>"Để thu phóng"</b>", hãy mở tính năng phóng to rồi nhấn vào vị trí bất kỳ trên màn hình.\n"<ul><li>"Kéo 2 hoặc nhiều ngón tay để cuộn"</li>\n<li>"Chụm 2 hoặc nhiều ngón tay để điều chỉnh mức thu phóng"</li></ul>\n\n<b>"Để thu phóng tạm thời"</b>", hãy mở tính năng phóng to rồi chạm và giữ vị trí bất kỳ trên màn hình.\n"<ul><li>"Kéo để di chuyển quanh màn hình"</li>\n<li>"Nhấc ngón tay để thu nhỏ"</li></ul>\n\n"Bạn không thể phóng to trên bàn phím hoặc thanh điều hướng."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Trang <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>/<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Phím tắt cho nút hỗ trợ tiếp cận"</string>
@@ -2149,8 +2181,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Nhấn vào nút nổi"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Cử chỉ hỗ trợ tiếp cận"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Nhấn vào nút hỗ trợ tiếp cận <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ở cuối màn hình. Để chuyển đổi giữa các tính năng, hãy chạm và giữ nút hỗ trợ tiếp cận."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Dùng 2 ngón tay vuốt lên từ cuối màn hình.\n\nĐể chuyển đổi giữa các tính năng, hãy dùng 2 ngón tay vuốt lên và giữ."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Dùng 3 ngón tay vuốt lên từ cuối màn hình.\n\nĐể chuyển đổi giữa các tính năng, hãy dùng 3 ngón tay vuốt lên và giữ."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Vuốt lên từ cuối màn hình. Để chuyển đổi giữa các tính năng, hãy vuốt lên và giữ.}other{Dùng # ngón tay vuốt lên từ cuối màn hình. Để chuyển đổi giữa các tính năng, hãy dùng # ngón tay vuốt lên và giữ.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Tùy chọn khác"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Tìm hiểu thêm về <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2161,16 +2191,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Phím âm lượng"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"phím âm lượng"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Nhấn và giữ cả 2 phím âm lượng"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Nhấn đúp vào màn hình bằng hai ngón tay"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Nhấn đúp bằng %1$d ngón tay"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Dùng %1$d ngón tay nhấn nhanh vào màn hình 2 lần"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Nhấn 3 lần"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Nhấn nhanh vào màn hình %1$d lần. Thao tác này có thể khiến thiết bị của bạn hoạt động chậm."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"Nhấn đúp bằng %1$d ngón tay"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Nhấn nhanh vào màn hình {0,number,integer} lần bằng 2 ngón tay"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Nhấn 3 lần vào màn hình"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"nhấn 3 lần"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Nhấn nhanh vào màn hình {0,number,integer} lần. Phím tắt này có thể làm chậm thiết bị"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Nâng cao"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Nút Hỗ trợ tiếp cận được đặt thành <xliff:g id="SERVICE">%1$s</xliff:g>. Để sử dụng tính năng phóng đại, hãy chạm và giữ nút Hỗ trợ tiếp cận, sau đó chọn độ phóng đại."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Cử chỉ hỗ trợ tiếp cận này đã được đặt thành <xliff:g id="SERVICE">%1$s</xliff:g>. Để phóng to, hãy dùng 2 ngón tay vuốt từ cuối màn hình lên rồi giữ. Sau đó, chọn tùy chọn phóng to."</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Dịch vụ này đang hoạt động không bình thường."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Lối tắt hỗ trợ tiếp cận"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Hiển thị trong Cài đặt nhanh"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Đỏ – xanh lục"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Đỏ – xanh lục"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Khó phân biệt màu đỏ – xanh lục, xanh lục"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Khó phân biệt màu đỏ – xanh lục, đỏ"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Xanh lam – vàng"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"Thang màu xám"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Cường độ"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Phân biệt màu lục kém, mù màu xanh lục"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Phân biệt màu đỏ kém, mù màu đỏ"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Không dùng được ở chế độ thang màu xám hoặc khi tắt tính năng chỉnh màu"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"Mù màu xanh lục nhẹ"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"Mù màu đỏ nhẹ"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"Mù màu lam vàng"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Siêu tối"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Đặt màn hình ở chế độ siêu tối"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"Lục lam"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Vàng"</string>
     <string name="color_magenta" msgid="8943538189219528423">"Đỏ tươi"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Cho phép <xliff:g id="SERVICE">%1$s</xliff:g> có toàn quyền kiểm soát thiết bị của bạn?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> cần:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Vì ứng dụng đang che khuất yêu cầu cấp quyền, Cài đặt không thể xác minh câu trả lời của bạn."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> đang yêu cầu toàn quyền kiểm soát thiết bị này. Dịch vụ này có thể đọc màn hình và hành động thay mặt cho người dùng có nhu cầu về hỗ trợ tiếp cận. Mức độ kiểm soát này không phù hợp với hầu hết các ứng dụng."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Bạn chỉ nên cấp toàn quyền kiểm soát cho những ứng dụng trợ giúp mình khi cần hỗ trợ tiếp cận, chứ không nên cấp cho hầu hết các ứng dụng."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Xem và điều khiển màn hình"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Dịch vụ này có thể đọc toàn bộ nội dung trên màn hình và hiển thị nội dung trên các ứng dụng khác."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Xem và thực hiện hành động"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dịch vụ này có thể theo dõi các hoạt động tương tác của bạn với một ứng dụng hoặc bộ cảm biến phần cứng, cũng như có thể thay mặt bạn tương tác với các ứng dụng."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Cho phép"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Từ chối"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Tắt"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Không có}=1{Đã đặt 1 lịch biểu}other{Đã đặt # lịch biểu}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Không làm phiền"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Chế độ ưu tiên"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Thêm chế độ"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Bớt phân tâm và tập trung hơn nhờ các chế độ khi ngủ, làm việc, lái xe và nhiều hoạt động khác."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Tạo chế độ của riêng bạn"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Chỉ nhận thông báo của những người và ứng dụng quan trọng"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Đặt một lịch biểu"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Lịch biểu dựa vào"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Ngày và giờ"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 giờ sáng – 5 giờ chiều các ngày trong tuần\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Sự kiện trên lịch"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1} đang hoạt động}=2{{mode_1} và {mode_2} đang hoạt động}=3{{mode_1}, {mode_2} và {mode_3} đang hoạt động}other{{mode_1}, {mode_2} và # chế độ khác đang hoạt động}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Có thể tự động bật 1 chế độ}other{Có thể tự động bật # chế độ}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"ĐANG BẬT"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Chưa đặt"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Đã tắt"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Tạo một chế độ"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Tuỳ chỉnh"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Bật ngay"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Tắt"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Không tìm thấy chế độ nào"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Hạn chế bị gián đoạn"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Chặn các yếu tố gây gián đoạn và mất tập trung"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Thiết lập <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Bật chế độ Không làm phiền"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Chuông báo và âm thanh đa phương tiện có thể làm gián đoạn"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Lịch biểu"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Xóa lịch biểu"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Xóa"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Đổi tên"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Xoá"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Xoá chế độ \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Chỉnh sửa"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Lịch biểu"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Lịch biểu"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Tự động bật"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Thêm lịch"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Dùng lịch của bạn"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Lịch biểu"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Đặt lịch biểu"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Thời điểm tự động bật"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Lịch trình sự kiện"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Bật trong các sự kiện của"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"Khi thư trả lời cho thư mời là"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Lịch biểu"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Lịch biểu"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> tiếng <xliff:g id="MINUTES">%2$d</xliff:g> phút"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Lên lịch"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Cho phép các hoạt động phát ra âm thanh có thể làm gián đoạn"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Ngăn gián đoạn hình ảnh"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Cho phép tín hiệu hình ảnh"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Những thông báo mà bạn có thể nhận được"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Thao tác khác"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Bộ lọc thông báo"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Chế độ cài đặt khác"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Đang tắt}=1{Đang tắt/1 chế độ có thể tự động bật}other{Đang tắt/# chế độ có thể tự động bật}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Chế độ cài đặt màn hình"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Lựa chọn hiển thị"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Thang màu xám"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"bật giao diện tối"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Chuyển đổi hệ điều hành và ứng dụng để ưu tiên dùng văn bản sáng trên nền tối, chế độ này có thể dễ nhìn hơn và giúp tiết kiệm pin đáng kể trên một số thiết bị"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Không thay đổi chế độ hiển thị}=1{{effect_1}}=2{{effect_1} và {effect_2}}=3{{effect_1}, {effect_2} và {effect_3}}other{{effect_1}, {effect_2} và # chế độ khác}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Hạn chế thông báo bạn có thể nhận được"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Chưa lọc hoạt động gây gián đoạn nào"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Các lựa chọn hiển thị đối với thông báo được lọc"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Khi chế độ Không làm phiền đang bật"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Không phát âm thanh khi có thông báo"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"mở thông báo"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Cho phép tạm hoãn thông báo"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Dấu chấm thông báo trên biểu tượng ứng dụng"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Gói thông báo"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Bong bóng"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Bong bóng"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Hiện cuộc trò chuyện này ở dạng bong bóng"</string>
@@ -3608,9 +3653,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Ứng dụng này không hỗ trợ chế độ cài đặt nâng cao"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Chế độ cài đặt khác"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Các chế độ cài đặt khác có sẵn trong ứng dụng này"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Thông báo thích ứng"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Dùng thông báo thích ứng"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Khi bạn nhận được nhiều thông báo trong một thời gian ngắn, điện thoại sẽ hạ âm lượng và giảm thiểu cửa sổ bật lên trên màn hình trong tối đa 2 phút. Các cuộc gọi, chuông báo và các cuộc trò chuyện ưu tiên sẽ vẫn rung, phát ra âm thanh hoặc xuất hiện trên màn hình, đồng thời bạn sẽ dễ dàng tìm thấy mọi thông báo khi kéo xuống từ đầu màn hình."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Giảm dần âm lượng cho thông báo"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Dùng tính năng giảm dần âm lượng thông báo"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Khi bạn nhận được nhiều thông báo trong một thời gian ngắn, thiết bị của bạn sẽ hạ âm lượng và giảm thiểu cảnh báo trong tối đa 2 phút. Cuộc gọi, chuông báo và cuộc trò chuyện ưu tiên sẽ không bị ảnh hưởng. \n\nBạn có thể kéo xuống từ đầu màn hình để xem các thông báo nhận được trong lúc giảm dần âm lượng thông báo."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Áp dụng cho hồ sơ công việc"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Áp dụng cho các ứng dụng trong hồ sơ công việc"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Dịch vụ trình trợ giúp thực tế ảo"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Danh mục"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Khác"</string>
     <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="hide_unused_channels" msgid="2019739275175707170">"Ẩn các danh mục không dùng"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Cuộc trò chuyện"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Mọi cuộc trò chuyện"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"tất cả cuộc trò chuyện"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Cuộc trò chuyện ưu tiên"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"cuộc trò chuyện ưu tiên"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Không có"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Các ứng dụng có thể làm gián đoạn"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Các ứng dụng được chọn"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Không có"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Tất cả"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Không ứng dụng nào có thể gây gián đoạn}=1{{app_1} có thể gây gián đoạn}=2{{app_1} và {app_2} có thể gây gián đoạn}=3{{app_1}, {app_2} và {app_3} có thể gây gián đoạn}other{{app_1}, {app_2} và # ứng dụng khác có thể gây gián đoạn}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Công việc)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Đang tính toán…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Cho phép ứng dụng ghi đè"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Những ứng dụng có thể làm gián đoạn chế độ Không làm phiền"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Chọn ứng dụng khác"</string>
@@ -3784,6 +3833,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Không âm thanh nào có thể làm gián đoạn"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Không ai có thể làm gián đoạn"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Một số người có thể làm gián đoạn"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Những người gọi nhiều lần có thể gây gián đoạn"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Tất cả mọi người có thể gián đoạn"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Người gọi nhiều lần"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Cho phép người gọi nhiều lần"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Đổi sang chế độ chỉ báo thức trong 1 giờ cho đến {time}}other{Đổi sang chế độ chỉ báo thức trong # giờ cho đến {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Đổi sang báo thức chỉ đến khi <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Đổi sang luôn làm gián đoạn"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Đổi tên"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Thay đổi biểu tượng"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Thay đổi biểu tượng"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Chỉnh sửa chế độ"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Tạo một chế độ"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Chế độ tuỳ chỉnh"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Tên chế độ"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Sự kiện trên lịch"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Quy trình đi ngủ"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Trong khi lái xe"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Cài đặt ứng dụng"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Thông tin và chế độ cài đặt trong <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Do <xliff:g id="APP_NAME">%1$s</xliff:g> quản lý"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Tắt <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Chế độ này sẽ tuyệt đối không bật khi đã bị tắt"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Tắt"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Bật <xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Chế độ này có thể tự động bật theo chế độ cài đặt tương ứng"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Bật"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Đặt một chế độ theo lịch trình đều đặn"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Đặt một chế độ để đồng bộ hoá với các sự kiện trên lịch và phản hồi thư mời"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Thiết kế một lịch ngủ thư thái. Đặt chuông báo, giảm độ sáng màn hình và chặn thông báo."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Ưu tiên sự an toàn khi lái xe để tập trung và không bị sao lãng"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Chặn các yếu tố gây sao lãng hoặc gián đoạn trên thiết bị để giúp bạn tập trung"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Loại bỏ mọi yếu tố gây sao lãng để có một môi trường yên tĩnh"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Cá nhân hoá trải nghiệm và chế độ cài đặt thiết bị cho từng người dùng"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Chỉ hiện thông báo của những người và ứng dụng quan trọng để giảm thiểu yếu tố gây gián đoạn"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Cảnh báo"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Đóng"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Gửi ý kiến phản hồi về thiết bị này"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Hộp sạc"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Pin"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Bảng Cài đặt"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Buộc chạy chế độ máy tính"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Buộc chạy chế độ máy tính thử nghiệm trên màn hình phụ"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Bật cửa sổ có thể đổi kích thước"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Bật cửa sổ có thể đổi kích thước trên màn hình phụ"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Bật tùy chọn không thay đổi kích thước trong nhiều cửa sổ"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Cho phép các ứng dụng không thể thay đổi kích thước xuất hiện trong nhiều cửa sổ"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Vô hiệu hoá tính năng buộc dùng chế độ tối"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"dữ liệu di động"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Để cải thiện trải nghiệm khi dùng thiết bị, chẳng hạn như cải thiện các tính năng và dịch vụ dựa trên vị trí, các ứng dụng và dịch vụ vẫn có thể quét tìm mạng Wi‑Fi bất cứ lúc nào, ngay cả khi Wi‑Fi đang tắt. Bạn có thể thay đổi chế độ này trong phần cài đặt tính năng quét tìm Wi‑Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Thay đổi"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Đã kết nối"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Tạm thời có kết nối"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Tạm thời sử dụng <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Sử dụng tính năng ghim ứng dụng"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Sử dụng tùy chọn cho nhà phát triển"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Dùng dịch vụ in"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Cho phép nhiều người dùng"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Cho phép chuyển đổi người dùng"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"cho phép, nhiều, người dùng"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"nhiều, người dùng, hồ sơ, mọi người, tài khoản, chuyển"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Sử dụng tính năng gỡ lỗi qua Wi-Fi"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Chọn nội dung bạn sẽ thấy trên màn hình khi máy tính bảng được cắm vào đế sạc. Thiết bị có thể tiêu hao nhiều năng lượng hơn khi bạn dùng trình bảo vệ màn hình."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Tuỳ chỉnh"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Tuỳ chỉnh <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Cần phải khởi động lại để bật tuỳ chọn hỗ trợ dạng tự do."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Cần phải khởi động lại để buộc chạy chế độ máy tính trên màn hình phụ."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Bạn cần phải khởi động lại để bật tính năng hỗ trợ cửa sổ có thể đổi kích thước."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Bạn cần phải khởi động lại để xem có dùng được tính năng cửa sổ có thể đổi kích thước không."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Bạn cần phải khởi động lại để bật tính năng cửa sổ có thể đổi kích thước trên màn hình phụ."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Khởi động lại ngay"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Khởi động lại sau"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Âm thanh không gian"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Hồng"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"Đỏ tía"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"Tím"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Xong"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Lưu"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Huỷ"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Mặc định"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Vừa"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Đang bật"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Đang tắt"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Đang bật"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Âm thanh: trái %1$d%%, phải %2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Âm thanh: phải %1$d%%, trái %2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Các ứng dụng bạn đã cài đặt sẽ biết được tên thiết bị của bạn. Những người khác cũng có thể thấy tên thiết bị này khi bạn kết nối với thiết bị Bluetooth, một mạng Wi-Fi hoặc thiết lập một điểm phát sóng Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Giống trong ngữ pháp"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Chọn giống trong ngữ pháp"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Nghe luồng âm thanh"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Hãy dùng <xliff:g id="DEVICE_NAME">%1$s</xliff:g> để quét mã QR của luồng âm thanh mà bạn muốn nghe"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Không thể chỉnh sửa mật khẩu trong khi chia sẻ. Để đổi mật khẩu, trước tiên hãy tắt tính năng chia sẻ âm thanh."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Trình quét mã QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Tìm kiếm trong phần Cài đặt"</string>
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index c471ba1..4ac8cf0 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"睡眠时间"</item>
-    <item msgid="4152450357280759894">"驾车"</item>
-    <item msgid="7096549258219399423">"沉浸"</item>
-    <item msgid="2760716776980432977">"受管理"</item>
-    <item msgid="601734478369121764">"星形"</item>
-    <item msgid="6243809315432780521">"日历"</item>
-    <item msgid="4913577903148415331">"时间"</item>
-    <item msgid="3653377604690057780">"剧院"</item>
-    <item msgid="3843711267408385410">"花朵"</item>
+    <item msgid="2750940760340557109">"半月"</item>
+    <item msgid="8513969636586738035">"汽车"</item>
+    <item msgid="957392343846370509">"人的思想"</item>
+    <item msgid="6734164279667121348">"日历"</item>
+    <item msgid="4139559120353528558">"时钟"</item>
+    <item msgid="5157711296814769020">"沙滩伞"</item>
+    <item msgid="6635328761318954115">"帐篷"</item>
+    <item msgid="1711994778883392255">"电影胶片"</item>
+    <item msgid="9097658401859604879">"游戏控制器"</item>
+    <item msgid="755931364157422565">"健身房哑铃"</item>
+    <item msgid="8894207806795738429">"投球的人"</item>
+    <item msgid="2274801572149555103">"用脚踢的人"</item>
+    <item msgid="8795037201506843325">"游泳"</item>
+    <item msgid="3558421426169430451">"远足的人"</item>
+    <item msgid="7455070421232184932">"高尔夫"</item>
+    <item msgid="5841773092449126508">"工作坊工具"</item>
+    <item msgid="4595330511709890409">"公文包"</item>
+    <item msgid="8352738347856724389">"星形"</item>
+    <item msgid="7082783098151998721">"莲花"</item>
+    <item msgid="5772220259409264724">"监督人"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 4b35d26..5dfa9ba 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"已暂停"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"未知"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"预览"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"二维码"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"缩小"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"放大"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"始终"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"助听装置设置"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"快捷键、助听器兼容性"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"预设"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"您的听觉矫正专家未设定任何预设"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"无法更新预设"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"音频输出"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"音频输出简介"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"您无法从“设置”中选择此应用的语言。"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"语言可能与应用中可用的语言不同。部分应用可能不支持此设置。"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"设置每个应用的语言。"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"系统、应用和网站会使用首选语言中的第一个受支持的语言。"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"设备、应用和网站会使用首选语言列表中的第一个受支持的语言。\n\n许多应用还会根据您首选的语言地区来调整日期、数字和单位的格式。如要更改您的地区,请先添加一种语言,然后选择您的首选地区。"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"如需为每个应用选择语言,请进入应用语言设置页面。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"详细了解应用语言"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"将系统语言更改为%s?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"已关闭"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{已开启 / # 个应用有权访问位置信息}other{已开启 / # 个应用有权访问位置信息}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在加载…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"具有附近设备权限的应用可以确定已连接的设备的相对位置。"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"具有附近设备权限的应用可以确定已连接设备的相对位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"应用和服务的位置信息使用权处于关闭状态。在您拨打紧急电话号码或向该号码发送短信时,系统可能仍会将您的设备位置信息发送给紧急救援人员。"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"详细了解位置信息设置"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"如要进行更改,请依次前往 ChromeOS 的“设置”&gt;“隐私和安全”&gt;“隐私控制”&gt;“位置信息使用权”"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已添加面孔和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"远程身份验证器解锁"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"已添加手表"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"设置手表"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"详细了解“手表解锁”功能"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"添加手表"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除手表"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指纹解锁和人脸解锁"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"人脸解锁和指纹解锁"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用于工作资料的人脸解锁和指纹解锁"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要设置"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"已添加面孔和多个指纹"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"正在设置私密空间…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"无法设置私密空间"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"重试"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"退出"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"私密空间不可用。\n查看可能的原因"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"查看可能的原因"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"要为私密空间选择新的锁定方式?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"您可以专为私密空间设置新的锁定方式,或使用设备屏锁来锁定此空间"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"使用屏锁"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"要重启设备吗?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"详细 NFC 日志记录仅用于开发目的。错误报告中包含其他 NFC 数据,其中可能包含私密信息。如需更改此设置,请重启设备。"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"重启"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"已打开"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"已关闭"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"外接显示器"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"使用外接显示器"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"显示分辨率"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"外接显示器已断开连接"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"旋转角度"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"标准"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"更改旋转角度或分辨率可能会导致当前正在运行的任何应用停止运行"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"设备必须连接到外接显示器,才能镜像您的屏幕"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"更多选项"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"投屏"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"镜像"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"开启无线显示"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"自适应"</string>
     <string name="brightness" msgid="6216871641021779698">"亮度"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"自适应亮度"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"自适应亮度简介"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"系统会根据您的环境和活动自动调节屏幕亮度。您可以手动移动滑块,帮助“自适应亮度”功能了解您偏好的亮度。"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"已开启"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"已关闭"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"选项"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"无障碍功能"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"实体键盘"</string>
-    <string name="show_ime" msgid="4334255501724746849">"使用屏幕键盘"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"连接到实体键盘时,在屏幕上显示一个虚拟键盘"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"防抖键"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"键盘会忽略 <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒内快速重复按下同一按键的操作"</string>
     <string name="slow_keys" msgid="2891452895499690837">"慢速键"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"将按键启用时长调整为 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒"</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="2396247040177734245">"使用实体键盘控制鼠标。"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"将指针填充样式更改为黄色"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"将指针填充样式更改为粉色"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"将指针填充样式更改为蓝色"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"指针描边样式"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白色"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黑色"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"无"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"了解触控板手势"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"触控板, 鼠标, 光标, 滚动, 滑动, 右键点击, 点击, 指针, trackpad, track pad, mouse, cursor, scroll, swipe, right click, click, pointer"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"右键点击, 点按, right click, tap"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"用户选择的布局:<xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"语音"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"指针速度"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"指针比例"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"减小指针比例"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"增大指针比例"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"游戏控制器"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"重定向振动"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"连接后将振动传到游戏控制器"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍然继续"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大设置"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"一根手指平移"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"用 1 根手指拖动即可移动放大区域"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"用 1 根手指拖动即可在画面上四处移动"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"拖动一根手指即可移动放大区域。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"拖动两根手指即可移动放大区域。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"如果仅放大局部屏幕,则无法使用此功能"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"点按按钮即可放大"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"快速放大屏幕,更清晰地查看内容"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;如需放大屏幕,请执行以下操作:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 使用快捷方式启动放大功能&lt;br/&gt; {1,number,integer}. 点按屏幕&lt;br/&gt; {2,number,integer}. 拖动双指在屏幕上四处移动&lt;br/&gt; {3,number,integer}. 张合双指以调整缩放比例&lt;br/&gt; {4,number,integer}. 使用快捷方式停止放大功能&lt;br/&gt;&lt;br/&gt; &lt;b&gt;如需暂时放大屏幕,请执行以下操作:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 确保已将放大类型设为“全屏”&lt;br/&gt; {1,number,integer}. 使用快捷方式启动放大功能&lt;br/&gt; {2,number,integer}. 轻触并按住屏幕上的任意位置&lt;br/&gt; {3,number,integer}. 拖动单指在屏幕上四处移动&lt;br/&gt; {4,number,integer}. 抬起手指以停止放大功能"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;如需放大画面,请按以下步骤操作:&lt;/b&gt;&lt;br/&gt;{0,number,integer}. 使用快捷手势开始放大&lt;br/&gt; {1,number,integer}. 点按画面&lt;br/&gt; {2,number,integer}. 拖动 2 指在画面上四处移动&lt;br/&gt; {3,number,integer}. 张合 2 指以调整缩放比例&lt;br/&gt; {4,number,integer}. 使用快捷手势停止放大&lt;br/&gt;&lt;br/&gt; 您还可以暂时放大画面及执行其他操作。"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;如需放大画面,请按以下步骤操作:&lt;/b&gt;&lt;br/&gt;{0,number,integer}. 使用快捷手势开始放大&lt;br/&gt; {1,number,integer}. 点按画面&lt;br/&gt; {2,number,integer}. 拖动 1 或 2 根手指在画面上四处移动&lt;br/&gt; {3,number,integer}. 张合 2 指以调整缩放比例&lt;br/&gt; {4,number,integer}. 使用快捷手势停止放大&lt;br/&gt;&lt;br/&gt; 您还可以暂时放大画面及执行其他操作。"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"开启放大功能后,您就可以放大屏幕上的内容。\n\n"<b>"要放大内容"</b>",请先启动放大功能,然后点按屏幕上的任意位置。\n"<ul><li>"拖动双指或多指即可进行滚动"</li>\n<li>"张合双指或多指即可调整缩放级别"</li></ul>\n\n<b>"要暂时性放大内容"</b>",请先启动放大功能,然后轻触并按住屏幕上的任意位置。\n"<ul><li>"拖动手指即可在屏幕上四处移动"</li>\n<li>"松开手指即可缩小回原来的状态"</li></ul>\n\n"您无法针对键盘或导航栏使用放大功能。"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"第 <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> 页,共 <xliff:g id="NUM_PAGES">%2$d</xliff:g> 页"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"“无障碍”按钮快捷方式"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"用两根手指从屏幕底部向上滑动。\n\n用两根手指向上滑动并按住,即可在多项功能之间切换。"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"用三根手指从屏幕底部向上滑动。\n\n用三根手指向上滑动并按住,即可在多项功能之间切换。"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{从屏幕底部向上滑动。若要在多项功能间切换,请向上滑动并按住。}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"双指点按屏幕两次"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"快速点按屏幕 %1$d 次。这可能会减慢设备的运行速度。"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d 指点按两次"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"双指快速点按屏幕 {0,number,integer} 次"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"点按屏幕三次"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"点按三次"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"在屏幕上快速点按 {0,number,integer} 次。此快捷方式可能会减慢设备的运行速度"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"高级"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"“无障碍”按钮已设为“<xliff:g id="SERVICE">%1$s</xliff:g>”。要使用放大功能,请触摸并按住“无障碍”按钮,然后选择“放大功能”。"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"无障碍手势已设为<xliff:g id="SERVICE">%1$s</xliff:g>。要使用放大功能,请用两指从屏幕底部向上滑动并按住,然后选择放大功能。"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"此服务出现故障。"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"无障碍快捷方式"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"在“快捷设置”中显示"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"红绿不分"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"红绿不分"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"红绿色盲、绿色弱"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"红绿色盲、红色弱"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"蓝黄不分"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"灰度模式"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"强度"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"绿色弱、绿色盲"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"红色弱、红色盲"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"在灰度模式下或“色彩校正”功能已停用时不可用"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"绿色弱视"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"红色弱视"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"蓝色弱视"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"极暗"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"将屏幕调成极暗"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"青色"</string>
     <string name="color_yellow" msgid="5957551912912679058">"黄色"</string>
     <string name="color_magenta" msgid="8943538189219528423">"紫红色"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"要允许“<xliff:g id="SERVICE">%1$s</xliff:g>”完全控制您的设备吗?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"“<xliff:g id="SERVICE">%1$s</xliff:g>”需要:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"由于某个应用遮挡了权限请求界面,因此“设置”应用无法验证您的回应。"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>正在请求完全控制此设备。该服务可以读取屏幕内容,并代表有无障碍需求的用户进行操作。这种控制级别不适合大多数应用。"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"如果需要使用无障碍功能,您可以将完全控制权限授予相关应用,但大多数应用都不应获得此权限。"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"查看和控制屏幕"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"此功能可以读出屏幕上的所有内容,并在其他应用上层显示内容。"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"查看和执行操作"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"此功能可以跟踪您与应用或硬件传感器的互动,并代表您与应用互动。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允许"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒绝"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"关闭"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{无}=1{已设置 1 个时间表}other{已设置 # 个时间表}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"勿扰模式"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"优先模式"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"添加模式"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"利用睡眠模式、工作模式、驾车模式和其他可用模式,尽可能减少干扰,保持专注。"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"创建您的专属模式"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"仅接收来自重要联系人和重要应用的通知"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"设置时间表"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"时间表设置依据:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"日期和时间"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"“工作日上午 9 点到下午 5 点”"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"日历活动"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{{mode_1}已启用}=2{{mode_1}和{mode_2}已启用}=3{{mode_1}、{mode_2}和{mode_3}已启用}other{{mode_1}、{mode_2}以及另外 # 个已启用}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{1 个模式可以自动开启}other{# 个模式可以自动开启}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"已启用"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"未设置"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"已停用"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"创建模式"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"自定义"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"立即开启"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"关闭"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"找不到此模式"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"限制打扰"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"屏蔽中断和干扰内容"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"设置<xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"开启勿扰模式"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"闹钟和媒体音效例外"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"时间表"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"删除时间表"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"删除"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"重命名"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"删除"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"要删除“<xliff:g id="MODE">%1$s</xliff:g>”模式吗?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"修改"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"时间表"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"时间表"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"自动开启"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"添加日程表"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"使用您的日程表"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"日程"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"设置时间表"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"何时自动开启"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"活动时间表"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"开启时间为所选日历的活动期间:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"前提是对相关邀请的回复为:"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"时间表"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"时间表"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 小时 <xliff:g id="MINUTES">%2$d</xliff:g> 分钟"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"时间表"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"可以发出声音的例外项"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"屏蔽视觉打扰"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"允许视觉信号"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"您可以收到的通知"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"其他操作"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"通知过滤条件"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"更多设置"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{关闭}=1{关闭/1 个模式可以自动开启}other{关闭/# 个模式可以自动开启}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"显示设置"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"显示选项"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"灰度模式"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"启用深色主题"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"将操作系统和应用设置切换到首选深色背景配浅色文本,这样可以减轻眼睛负担,并且在某些设备上能够显著节省电池电量"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{无显示变化}=1{{effect_1}}=2{{effect_1}和{effect_2}}=3{{effect_1}、{effect_2}和{effect_3}}other{{effect_1}、{effect_2}和另外 # 个}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"限制可向您传送的内容"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"未滤除任何干扰"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"针对已过滤通知的显示选项"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"开启勿扰模式时"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"不发出通知提示音"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"打开通知"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"允许显示通知延后选项"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"应用图标上的通知圆点"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"通知包"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"消息气泡"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"消息气泡"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"以消息气泡形式显示此对话"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"自适应通知"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"使用自适应通知"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"如果您在短时间内收到很多通知,手机会降低音量并将屏幕上的弹出式窗口最小化,这种状况最长可持续两分钟。来电、闹钟和优先对话仍会发出振动/声音提醒或显示在屏幕上,并且您只要从屏幕顶部向下拉,即可轻松找到所有通知。"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"应用至工作资料应用"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 助手服务"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"类别"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"其他"</string>
     <string name="no_channels" msgid="4716199078612071915">"此应用未发布任何通知"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"显示未使用的类别"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"应用中的其他设置"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"显示未使用的类别"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"隐藏未使用的类别"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"对话"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"所有对话"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"所有对话"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"优先对话"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"优先对话"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"无"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"例外的应用"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"所选应用"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"无"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"全部"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{任何应用均不例外}=1{“{app_1}”例外}=2{“{app_1}”和“{app_2}”例外}=3{“{app_1}”“{app_2}”和“{app_3}”例外}other{“{app_1}”“{app_2}”以及另外 # 款应用例外}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g>(工作)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"正在计算…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允许应用覆盖"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外的应用"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"选择更多应用"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"重复来电者例外"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"所有人都例外"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"重复来电者"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"不屏蔽重复来电者"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{更改为仅限闹钟并持续 1 小时,直到 {time}}other{更改为仅限闹钟并持续 # 小时,直到 {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"更改为仅限闹钟(到<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>)"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"更改为一律允许打扰"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"重命名"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"更改图标"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"更改图标"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"修改模式"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"创建模式"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"自定义模式"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"模式名称"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"日历活动"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"“睡觉”日常安排"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"驾车时"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"应用设置"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"“<xliff:g id="APP_NAME">%1$s</xliff:g>”中的信息和设置"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"由“<xliff:g id="APP_NAME">%1$s</xliff:g>”管理"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"停用<xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"停用后,此模式绝不会自动开启"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"停用"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"启用<xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"此模式可能会自动开启,具体取决于它的相关设置"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"启用"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"设置一个遵守固定时间表的模式"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"设置一个可同步日历活动和邀请回复的模式"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"设计安睡日常安排。设置闹钟、调暗屏幕并屏蔽通知。"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"以安全为重,驾驶途中不分心"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"警告"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"关闭"</string>
     <string name="device_feedback" msgid="5351614458411688608">"发送有关此设备的反馈"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"充电盒"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"电池"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"设置面板"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"强制使用桌面模式"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"在辅助显示屏上强制使用桌面模式这一实验性功能"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"启用可自由调整的窗口"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"在辅助显示屏上启用可自由调整的窗口"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"允许以多窗口模式显示不可调整大小的应用"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"允许通过多窗口模式显示不可调整大小的应用"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"覆盖“强制启用 SmartDark 功能”的设置"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"移动数据网络"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"为了提升设备的使用体验,即使 WLAN 已关闭,应用和服务仍可以随时扫描 WLAN 网络。例如,此功能可用于改进需要使用位置信息的功能和服务。您可以在 WLAN 扫描设置中更改此功能。"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"更改"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"已连接"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"已暂时连接"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"暂时正在使用 <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"使用“固定应用”"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"启用开发者选项"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"使用打印服务"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"允许多人设备共用"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"允许用户切换"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"允许, 多位, 用户, 许可, 多个, allow, multiple, user, permit, many"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"多个, 用户, 个人资料, 人员, 账号, 切换, 很多, multiple, users, profiles, people, accounts, switch, many"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"使用“无线调试”"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"选择平板电脑插入基座时屏幕上显示的内容。使用屏保时,设备可能会比较耗电。"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"自定义"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"自定义“<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>”"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"您必须重新启动设备,才能启用任意形式的支持。"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"您必须重新启动设备,才能在辅助屏幕上强制使用桌面模式。"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"您必须重新启动设备,才能启用自由窗口支持。"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"您必须重新启动设备,才能更新可自由调整的窗口的可用性。"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"您必须重新启动设备,才能在辅助显示屏上启用可自由调整的窗口。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新启动"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍后重新启动"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空间音频"</string>
@@ -5137,7 +5208,7 @@
     <string name="disable_phantom_process_monitor_title" msgid="8348108346706188771">"停止限制子进程"</string>
     <string name="disable_phantom_process_monitor_summary" msgid="3044464635550256985">"停止限制应用子进程的系统资源用量"</string>
     <string name="enable_notes_role_title" msgid="7662702013496114763">"强制启用“记事”角色"</string>
-    <string name="enable_notes_role_summary" msgid="5495721409392395089">"通过“记事”角色启用记事系统集成。如果“记事”角色已启用,则无需执行任何操作。需要重新启动。"</string>
+    <string name="enable_notes_role_summary" msgid="5495721409392395089">"启用通过“记事”角色实现的记事系统集成。如果“记事”角色已启用,此设置不会有任何作用。需要重新启动。"</string>
     <string name="bluetooth_broadcast_dialog_title" msgid="9172775308463135884">"广播"</string>
     <string name="bluetooth_broadcast_dialog_broadcast_app" msgid="1016617579194329005">"广播“<xliff:g id="CURRENTAPP">%1$s</xliff:g>”的内容"</string>
     <string name="bluetooth_broadcast_dialog_find_message" msgid="6621660851669953883">"收听在您附近播放的广播"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"玫瑰色"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"品红色"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"紫色"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"完成"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"保存"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"取消"</string>
     <string name="contrast_default" msgid="8918545965525226966">"默认"</string>
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"已开启"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"已关闭"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"已开启"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音频向左%1$d%%,向右%2$d%%"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音频向右%1$d%%,向左%2$d%%"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"您安装的应用可以查看您的设备名称。此外,当您连接到蓝牙设备、连接到 WLAN 网络或设置 WLAN 热点时,其他人可能也会看到您的设备名称。"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"语法性别"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"选择语法性别"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"收听音频流"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"扫描音频流二维码即可通过“<xliff:g id="DEVICE_NAME">%1$s</xliff:g>”收听"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"分享期间无法修改密码。若要更改密码,请先关闭“音频分享”功能。"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"二维码扫描器"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"在设置中搜索"</string>
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index cfdb94e..7593461 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"睡眠時間"</item>
-    <item msgid="4152450357280759894">"駕駛"</item>
-    <item msgid="7096549258219399423">"身歷其境"</item>
-    <item msgid="2760716776980432977">"受管理"</item>
-    <item msgid="601734478369121764">"星星"</item>
-    <item msgid="6243809315432780521">"日曆"</item>
-    <item msgid="4913577903148415331">"時間"</item>
-    <item msgid="3653377604690057780">"劇院"</item>
-    <item msgid="3843711267408385410">"花"</item>
+    <item msgid="2750940760340557109">"半月"</item>
+    <item msgid="8513969636586738035">"汽車"</item>
+    <item msgid="957392343846370509">"人的頭腦"</item>
+    <item msgid="6734164279667121348">"日曆"</item>
+    <item msgid="4139559120353528558">"時鐘"</item>
+    <item msgid="5157711296814769020">"沙灘傘"</item>
+    <item msgid="6635328761318954115">"帳篷"</item>
+    <item msgid="1711994778883392255">"菲林卷軸"</item>
+    <item msgid="9097658401859604879">"遊戲控制器"</item>
+    <item msgid="755931364157422565">"健身啞鈴"</item>
+    <item msgid="8894207806795738429">"擲球的人"</item>
+    <item msgid="2274801572149555103">"踢腿的人"</item>
+    <item msgid="8795037201506843325">"游泳"</item>
+    <item msgid="3558421426169430451">"遠足的人"</item>
+    <item msgid="7455070421232184932">"高爾夫球"</item>
+    <item msgid="5841773092449126508">"工作坊工具"</item>
+    <item msgid="4595330511709890409">"公事包"</item>
+    <item msgid="8352738347856724389">"星形"</item>
+    <item msgid="7082783098151998721">"蓮花"</item>
+    <item msgid="5772220259409264724">"主管"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 2bd5281..2f79fc6 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"已暫停"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"不明"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"預覽"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR 碼"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"縮小"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"放大"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"一律允許"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"助聽器設定"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"捷徑、助聽器兼容性"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"預設"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"沒有聽力師的預設設定"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"無法更新預設"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"音訊輸出裝置"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"關於音訊輸出"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"「設定」中不提供此應用程式的語言選擇。"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"可用的語言可能與應用程式支援的語言不同,部分應用程式可能不支援此設定。"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"為每個應用程式設定語言。"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"你的系統、應用程式和網站會使用偏好語言中第一個支援的語言。"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"你的裝置、應用程式和網站會使用你的偏好語言清單中第一個支援的語言。\n\n大量應用程式亦會根據你偏好語言的地區提供日期、數字和單位的格式。如要變更地區,請新增語言,然後選擇你偏好的地區。"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"如要為各應用程式選取語言,請前往應用程式語言設定。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"進一步瞭解應用程式語言"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"要將系統語言變更為「%s」嗎?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"關閉"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{開啟/ # 個應用程式可存取位置資訊}other{開啟/ # 個應用程式可存取位置資訊}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在載入…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"應用程式如可存取附近的裝置,就能判斷已連接裝置的相對位置。"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"應用程式如可存取附近的裝置,就能判斷已連接裝置的相對位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置權限已關閉。當你打電話或發短訊到緊急電話號碼時,系統仍會將你的裝置位置資料傳送給救援人員。"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解「位置設定」"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"如要變更設定,請前往 ChromeOS 設定 &gt; [私隱與安全] &gt; [私隱權設定] &gt; [位置資料存取權]"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增面孔和<xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator 解鎖"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"已新增手錶"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"設定手錶"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"進一步瞭解「手錶解鎖」"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"新增手錶"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除手錶"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋及面孔解鎖"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"面孔和指紋解鎖"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用於工作設定檔的面孔和指紋解鎖"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要設定"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"已新增面孔和指紋"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"正在設定私人空間…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"無法設定私人空間"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"再試一次"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"退出"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"無法使用私人空間。\n查看可能的原因"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"查看可能的原因"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"要為私人空間選擇新的鎖定方式嗎?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"你可專為私人空間設定新的鎖定方式,或者使用解鎖裝置的同一個鎖定方式"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"使用螢幕鎖定方式"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"要重新啟動裝置嗎?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"詳細 NFC 記錄僅適用於開發用途。錯誤報告中有其他 NFC 資料,可能包含私人資料。重新啟動裝置即可變更此設定。"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"重新啟動"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"開啟"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"關閉"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"外部顯示屏"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"使用外部顯示屏"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"顯示屏解像度"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"外部顯示屏已解除連接"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"旋轉"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"標準"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"變更旋轉角度或解像度,可能會導致任何執行中的應用程式停止運作"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"裝置必須連接至外部顯示屏,才能鏡像投射畫面內容"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"更多選項"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"投放"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"鏡像"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"啟用無線螢幕分享"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"自動調整"</string>
     <string name="brightness" msgid="6216871641021779698">"亮度"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"自動調校光暗"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"關於自動調校光暗"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"系統會根據你所在的環境和活動自動調校螢幕光暗。你可以移動滑桿,幫助自動調校光暗功能瞭解你偏好的亮度。"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"開"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"關閉"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"選項"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙功能"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
-    <string name="show_ime" msgid="4334255501724746849">"使用屏幕鍵盤"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"當實體鍵盤處於連接狀態時,保持在畫面上顯示"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"篩選鍵"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"鍵盤會忽略在 <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒內快速重覆按下同一按鍵的動作"</string>
     <string name="slow_keys" msgid="2891452895499690837">"緩慢鍵"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"將按鍵啟動時間調整為 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒"</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="2396247040177734245">"使用實體鍵盤控制滑鼠"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"變更游標填滿樣式至黃色"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"變更游標填滿樣式至粉紅色"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"變更游標填滿樣式至藍色"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"游標筆劃樣式"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白色"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黑色"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"無"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"學習觸控板手勢"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"觸控板, 滑鼠, 鼠標, 捲動, 輕掃, 按一下右鍵, 點擊, 游標"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"按一下右鍵, 輕按"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"已選取使用者:<xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"語音"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"游標速度"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"游標比例"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"縮小游標比例"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"放大游標比例"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"遊戲控制器"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"產生震動"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"連接時令遊戲控制器產生震動"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍要繼續"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大設定"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"單指平移"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"以 1 隻手指移動放大鏡"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"拖曳 1 隻手指便可在螢幕上移動"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"拖曳一隻手指即可移動放大範圍。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"拖曳兩隻手指即可移動放大範圍。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"無法用於只放大部分畫面"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"輕按按鈕即可縮放"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"快速放大螢幕畫面中的內容"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;放大螢幕畫面:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 用捷徑開始放大&lt;br/&gt; {1,number,integer}. 輕按螢幕&lt;br/&gt; {2,number,integer}. 用兩指拖曳畫面即可四處移動&lt;br/&gt; {3,number,integer}. 用兩指縮放即可調整縮放比例&lt;br/&gt; {4,number,integer}. 用捷徑即可停止放大&lt;br/&gt;&lt;br/&gt;&lt;b&gt;暫時放大螢幕畫面:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 確定放大類型已設為全螢幕&lt;br/&gt; {1,number,integer}. 用捷徑開始放大&lt;br/&gt; {2,number,integer}. 按住畫面上任何地方&lt;br/&gt; {3,number,integer}. 用兩指拖曳畫面即可四處移動&lt;br/&gt; {4,number,integer}. 提起手指即可停止放大"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;按照下列步驟放大螢幕畫面:&lt;/b&gt;&lt;br/&gt; {0,number,integer}。用快速鍵啟用放大功能&lt;br/&gt; {1,number,integer}。輕按螢幕&lt;br/&gt; {2,number,integer}。拖曳 2 指就可以在畫面上移動&lt;br/&gt; {3,number,integer}。用 2 指縮放就可以調整縮放程度&lt;br/&gt; {4,number,integer}。以快速鍵停用放大功能&lt;br/&gt;&lt;br/&gt;你亦可以暫時放大畫面及執行其他操作。"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;按照下列步驟放大螢幕畫面:&lt;/b&gt;&lt;br/&gt; {0,number,integer}。用快速鍵啟用放大功能&lt;br/&gt; {1,number,integer}。輕按螢幕&lt;br/&gt; {2,number,integer}。拖曳 1 指或 2 指就可以在畫面上移動&lt;br/&gt; {3,number,integer}.用 2 指縮放就可以調整縮放程度&lt;br/&gt; {4,number,integer}。以快速鍵停用放大功能&lt;br/&gt;&lt;br/&gt;你亦可以暫時放大畫面及執行其他操作。"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"開啟放大功能後,你可放大畫面。\n\n"<b>"如要縮放"</b>",請開啟放大功能,然後輕按螢幕任何地方。\n"<ul><li>"用 2 隻或多隻手指拖曳,即可捲動螢幕"</li>\n<li>"用 2 隻或多隻手指縮放,即可調整縮放程度"</li></ul>\n\n<b>"如要暫時縮放"</b>",請開啟放大功能,再按住螢幕任何地方。\n"<ul><li>"拖曳即可在螢幕上移動"</li>\n<li>"提起手指即可縮小至原大"</li></ul>\n\n"你無法在鍵盤或導覽列上使用放大功能。"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g> 頁中嘅第 <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> 頁"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"無障礙功能按鈕捷徑"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"用兩指由螢幕底部向上掃。\n\n如要切換功能,請用兩指向上掃並按住。"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"用 3 隻手指由螢幕底部向上掃。\n\n用 3 隻手指向上掃然後㩒住,就可以切換唔同功能。"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{由螢幕底部向上輕掃。如要切換功能,請向上輕掃並按住。}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"用兩隻手指喺螢幕上面㩒兩下"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"快速輕按螢幕 %1$d 下。這樣做可能會減慢裝置運作速度。"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d 隻手指㩒 2 下"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"用兩隻手指快速喺螢幕上面㩒 {0,number,integer} 下"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕按螢幕三下"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"㩒 3 下"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速㩒螢幕 {0,number,integer} 下。呢個快速鍵可能會減慢裝置運作速度"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"進階"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"「無障礙功能」按鈕已設定為「<xliff:g id="SERVICE">%1$s</xliff:g>」。如要使用放大功能,請按住「無障礙功能」按鈕,然後選擇「放大功能」。"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"無障礙手勢已設為「<xliff:g id="SERVICE">%1$s</xliff:g>」。如要使用放大功能,請使用兩隻手指從螢幕底部向上滑動並長按,然後選取放大功能。"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"呢個服務出現故障。"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"無障礙功能捷徑"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"在「快速設定」中顯示"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"紅綠不分"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"紅綠不分"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"紅綠,綠色弱"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"紅綠,紅色弱"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"藍黃不分"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"灰階螢幕"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"強度"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"綠色弱、綠色盲"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"紅色弱、紅色盲"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"使用灰階螢幕模式或停用色彩校正時無法提供"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"綠色弱視"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"紅色弱視"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"藍色弱視"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"超暗"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"使用超暗螢幕"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"藍綠色"</string>
     <string name="color_yellow" msgid="5957551912912679058">"黃色"</string>
     <string name="color_magenta" msgid="8943538189219528423">"洋紅色"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"要授予「<xliff:g id="SERVICE">%1$s</xliff:g>」裝置的完整控制權嗎?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"「<xliff:g id="SERVICE">%1$s</xliff:g>」需要:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"由於有應用程式阻礙權限請求,「設定」無法驗證你的回覆。"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>正在要求完全控制此裝置。此服務可以讀取畫面,並代表需要使用無障礙功能的使用者執行動作。這種程度的控制不適用於大部分應用程式。"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"對於為你提供無障礙功能的應用程式,你可授予完整控制權,但大部分應用程式都不應獲授予此權限。"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"查看和控制螢幕"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"這項功能可以讀出螢幕上的所有內容,並透過其他應用程式顯示內容。"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"查看和執行動作"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"這項功能會追蹤你與應用程式或硬件感應器的互動,並代表你直接與應用程式互動。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"關閉"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{無}=1{已設定 1 個時間表}other{已設定 # 個時間表}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"請勿騷擾"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"優先模式"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"新增模式"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"透過睡覺、工作、駕駛和其他模式,盡量減少干擾,由你控制專注時間"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"建立自訂模式"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"只接收重要聯絡人和應用程式的通知"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"設定時間表"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"根據以下資料排定時間表:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"日期和時間"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"「平日上午 9 時至下午 5 時」"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"日曆活動"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{已啟用{mode_1}}=2{已啟用{mode_1}和{mode_2}}=3{已啟用{mode_1}、{mode_2}和{mode_3}}other{已啟用{mode_1}、{mode_2}和其他 # 個模式}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{可自動啟動 1 個模式}other{可自動啟動 # 個模式}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"開啟"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"未設定"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"已停用"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"建立模式"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"自訂"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"立即開啟"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"關閉"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"找不到任何模式"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"減少干擾"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"阻擋干擾和令你分心的事物"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"設定「<xliff:g id="MODE">%1$s</xliff:g>」"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"開啟「請勿騷擾」模式"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"鬧鐘和媒體音效可打擾"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"時間表"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"刪除時間表"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"刪除"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"重新命名"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"刪除"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"要刪除「<xliff:g id="MODE">%1$s</xliff:g>」模式嗎?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"編輯"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"時間表"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"預定時間"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"自動開啟"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"新增日曆"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"使用日曆"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"時間表"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"設定時間表"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"自動開啟的時間"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"活動時間表"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"在以下活動期間開啟:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"當邀請回覆是"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"時間表"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"時間表"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 小時 <xliff:g id="MINUTES">%2$d</xliff:g> 分鐘"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"預定時間"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"允許發出音效的干擾"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"封鎖視覺干擾"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"允許視覺訊號"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"可收到的通知"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"更多操作"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"通知篩選器"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"更多設定"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{關閉}=1{關閉/可自動開啟 1 個模式}other{關閉/可自動開啟 # 個模式}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"顯示設定"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"顯示選項"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"灰階螢幕"</string>
@@ -3356,7 +3398,7 @@
     <string name="mode_grayscale_summary" msgid="6682099523626777038">"轉用黑白畫面"</string>
     <string name="mode_aod_title" msgid="5903435070341237325">"不要喚醒螢幕"</string>
     <string name="mode_aod_title_secondary_list" msgid="8268180392811027557">"不要喚醒螢幕"</string>
-    <string name="mode_aod_summary" msgid="7516159044827627065">"停用「持續顯示畫面」"</string>
+    <string name="mode_aod_summary" msgid="7516159044827627065">"停用螢幕長亮模式"</string>
     <string name="mode_wallpaper_title" msgid="5549693923133928374">"調暗桌布"</string>
     <string name="mode_wallpaper_title_secondary_list" msgid="5034602021811580157">"調暗桌布"</string>
     <string name="mode_wallpaper_summary" msgid="665480011615603784">"加上濾鏡調整桌布亮度"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"啟用深色主題背景"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"將 OS 和應用程式偏好設定切換成「淺色文字配搭深色背景」。此設定或許可減少眼睛疲勞,且在部分裝置上還能節省大量電力"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{沒有顯示變更}=1{{effect_1}}=2{{effect_1}和{effect_2}}=3{{effect_1}、{effect_2}和{effect_3}}other{{effect_1}、{effect_2}和另外 # 個設定}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"限制你會收到的通知"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"不會過濾任何干擾"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"用來篩選通知的顯示選項"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"開啟「請勿騷擾」模式時"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"不發出音效通知"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"開啟通知"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"允許通知延後"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"應用程式圖示上的通知圓點"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"通知組合"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"對話氣泡"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"對話氣泡"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"以對話氣泡顯示此對話"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"自動調節通知"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"使用自動調節通知"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"如果短時間內收到多個通知,手機會在最長兩分鐘內調降音量,並減少在畫面上顯示彈出式視窗。如有來電、鬧鐘和重要對話,手機仍會震動、播放音效或顯示在畫面上。從螢幕頂部往下拉,就能輕鬆查看所有通知。"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"套用至工作設定檔應用程式"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 助手服務"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"類別"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"其他"</string>
     <string name="no_channels" msgid="4716199078612071915">"此應用程式未發佈任何通知"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"顯示未使用的類別"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"應用程式中的其他設定"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"顯示未使用的類別"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"隱藏未使用的類別"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"對話"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"所有對話"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"所有對話"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"優先對話"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"優先對話"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"無"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"可打擾的應用程式"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"選取的應用程式"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"無"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"全部"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{沒有應用程式例外}=1{「{app_1}」例外}=2{「{app_1}」和「{app_2}」例外}=3{「{app_1}」、「{app_2}」和「{app_3}」例外}other{「{app_1}」、「{app_2}」和另外 # 個應用程式例外}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (工作)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"正在計算…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允許應用程式取代「請勿騷擾」"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外可打擾的應用程式"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"選擇更多應用程式"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"重複來電者例外"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"所有使用者均可打擾"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"重複來電"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"允許重複來電者"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{改為只限鬧鐘模式同埋持續 1 個鐘,直至 {time} 為止}other{改為只限鬧鐘模式同埋持續 # 個鐘,直至 {time} 為止}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"響 <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>前改為只允許鬧鐘"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"變更為永遠允許干擾"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"重新命名"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"變更圖示"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"變更圖示"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"編輯模式"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"建立模式"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"自訂模式"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"模式名稱"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"日曆活動"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"瞓覺日常安排"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"駕駛時"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"應用程式設定"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"<xliff:g id="APP_NAME">%1$s</xliff:g>中的資料和設定"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"由<xliff:g id="APP_NAME">%1$s</xliff:g>管理"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"要停用「<xliff:g id="MODE_NAME">%1$s</xliff:g>」嗎?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"此模式停用後永不開啟"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"停用"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"要啟用「<xliff:g id="MODE_NAME">%1$s</xliff:g>」嗎?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"此模式可能會根據其設定自動開啟"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"啟用"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"設定模式助你遵從有規律的時間表"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"設定模式以同步日曆活動和邀請答覆"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"要設計令人平靜的睡眠時間表,設定鬧鐘、調暗螢幕和封鎖通知就能辦到。"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"以路上安全為重,開車時保持專注,免被分心"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"警告"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"關閉"</string>
     <string name="device_feedback" msgid="5351614458411688608">"傳送你對這部裝置的意見"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"耳機盒"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"電池"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"設定面板"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"強制執行桌面模式"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"在次要顯示屏強制執行實驗版桌面模式"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"啟用自由形態視窗"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"在次要螢幕上啟用自由形態視窗"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"允許多重視窗模式顯示無法調整大小的應用程式"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"允許透過多重視窗模式顯示無法調整大小的應用程式"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"蓋過強制深色模式"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"流動數據"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"為改善裝置的使用體驗,應用程式和服務仍可隨時掃瞄 Wi-Fi 網絡 (即使 Wi-Fi 已關閉)。此操作可用來改善適地性功能和服務。你可在 Wi-Fi 掃瞄設定中變更此設定。"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"變更"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"已連線"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"已暫時連線"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"暫時使用 <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"使用「固定應用程式」功能"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"使用開發人員選項"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"使用列印服務"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"允許多位使用者"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"允許切換使用者"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"允許, 多個, 使用者, 批准, 很多"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"多位, 使用者, 個人檔案, 人, 帳戶, 切換, 多人"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"使用「無線偵錯」功能"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"選擇平板電腦放上插座時螢幕上顯示的內容。如果裝置使用螢幕保護程式,可能會比較耗電。"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"自訂"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"自訂<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"你需要重新開機,才能啟用任意形式的支援。"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"你需要重新開機,才能在次要螢幕上強制執行桌面模式。"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"必須重新開機,才能啟用自由形態視窗支援。"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"需要重新開機,才能更新自由形態視窗的提供情況。"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"需要重新開機,才能在次要螢幕上啟用自由形態視窗。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新開機"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍後重新開機"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空間音訊"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"玫瑰"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"紫紅色"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"紫羅蘭色"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"完成"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"儲存"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"取消"</string>
     <string name="contrast_default" msgid="8918545965525226966">"預設"</string>
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"已啟用"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"已停用"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"已啟用"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音訊 %1$d%% 左,%2$d%% 右"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音訊 %1$d%% 右,%2$d%% 左"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"你安裝的應用程式可以取得你的裝置名稱。當你連接藍牙裝置或 Wi-Fi 網絡,或設定 Wi-Fi 熱點時,其他人亦可能會看到你的裝置名稱。"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"語法性別"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"選取語法性別"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"收聽串流"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"使用「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」掃瞄音訊串流 QR 碼即可收聽"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"分享音訊期間無法編輯密碼。如要變更密碼,請先關閉音訊分享功能。"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR 碼掃瞄器"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"搜尋設定"</string>
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 542c5d2..d59809b 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"就寢時間"</item>
-    <item msgid="4152450357280759894">"開車"</item>
-    <item msgid="7096549258219399423">"沉浸"</item>
-    <item msgid="2760716776980432977">"受管理"</item>
-    <item msgid="601734478369121764">"星星"</item>
-    <item msgid="6243809315432780521">"日曆"</item>
-    <item msgid="4913577903148415331">"時間"</item>
-    <item msgid="3653377604690057780">"劇院"</item>
-    <item msgid="3843711267408385410">"花朵"</item>
+    <item msgid="2750940760340557109">"半月"</item>
+    <item msgid="8513969636586738035">"車輛"</item>
+    <item msgid="957392343846370509">"人的頭腦"</item>
+    <item msgid="6734164279667121348">"日曆"</item>
+    <item msgid="4139559120353528558">"時鐘"</item>
+    <item msgid="5157711296814769020">"沙灘遮陽傘"</item>
+    <item msgid="6635328761318954115">"帳篷"</item>
+    <item msgid="1711994778883392255">"舊電影膠卷"</item>
+    <item msgid="9097658401859604879">"遊戲控制器"</item>
+    <item msgid="755931364157422565">"健身啞鈴"</item>
+    <item msgid="8894207806795738429">"有人在擲球"</item>
+    <item msgid="2274801572149555103">"有人在踢球"</item>
+    <item msgid="8795037201506843325">"游泳"</item>
+    <item msgid="3558421426169430451">"有人在健行"</item>
+    <item msgid="7455070421232184932">"高爾夫"</item>
+    <item msgid="5841773092449126508">"工作坊工具"</item>
+    <item msgid="4595330511709890409">"公事包"</item>
+    <item msgid="8352738347856724389">"星星"</item>
+    <item msgid="7082783098151998721">"蓮花"</item>
+    <item msgid="5772220259409264724">"監督者"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index b70d320..303f4d8 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"待命"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"不明"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"預覽"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"QR code"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"縮小"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"放大"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"一律允許"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"助聽器設定"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"捷徑、助聽器相容性"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"預設設定"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"沒有由聽力師預設的設定"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"無法更新預設設定"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"音訊輸出裝置"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"關於音訊輸出"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"無法從「設定」選取這個應用程式的語言。"</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"可用的語言可能與應用程式支援的語言不同,某些應用程式可能不支援這項設定。"</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"設定每個應用程式的語言。"</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"你的系統、應用程式和網站會使用偏好語言中的第一個支援語言。"</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"裝置、應用程式和網站會使用偏好語言清單中的第一個支援語言。\n\n許多應用程式也會根據偏好語言的來源區域,設定日期、數值和單位的格式。如要變更所在區域,請新增語言,然後選擇偏好的區域。"</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"如要選取各應用程式使用的語言,請前往應用程式語言設定。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"進一步瞭解應用程式的語言"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"要將系統語言變更為「%s」嗎?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"關閉"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{已開啟/# 個應用程式可存取位置資訊}other{已開啟/# 個應用程式可存取位置資訊}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"載入中…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"如果應用程式具有鄰近裝置權限,就能判斷已連結裝置的相對位置。"</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"如果應用程式具有鄰近裝置權限,就能判斷連結裝置的相對位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置存取權已關閉。當你撥打或傳訊息到緊急電話號碼時,系統仍會將你的裝置位置資訊傳送給緊急應變人員。"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解位置資訊設定"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"如要變更,請前往 ChromeOS 設定 &gt;「隱私權和安全性」&gt;「隱私權控制項」&gt;「位置資訊存取權」"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增臉孔和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator 解鎖"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"已新增智慧手錶"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"設定智慧手錶"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"進一步瞭解「智慧手錶解鎖」功能"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"新增智慧手錶"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除智慧手錶"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋與人臉解鎖"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"人臉和指紋解鎖"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"人臉和指紋解鎖 (工作資料夾)"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要設定"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"已新增臉孔和指紋"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"正在設定私人空間…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"無法設定私人空間"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"再試一次"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"結束"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"私人空間目前無法使用。\n查看可能的原因"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"查看可能原因"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"要選擇新的私人空間鎖定方式嗎?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"你可以專為私人空間設定新的鎖定方式,也可以直接使用裝置的螢幕鎖定方式"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"使用螢幕鎖定功能"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"要重新啟動裝置嗎?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"詳細 NFC 記錄僅適用於開發用途。錯誤報告中含有其他 NFC 資料,其中可能包含私人資訊。重新啟動裝置即可變更這項設定。"</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"重新啟動"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"開啟"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"關閉"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"外接螢幕"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"使用外接螢幕"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"螢幕解析度"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"未連接外接螢幕"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"旋轉"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"標準"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"變更旋轉角度或解析度,可能會導致執行中的應用程式停止運作"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"裝置必須連接外接螢幕,才能鏡像投放畫面"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"更多選項"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"投放"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"鏡像"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"啟用無線螢幕分享"</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"自動調整"</string>
     <string name="brightness" msgid="6216871641021779698">"亮度"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"自動調整亮度"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"關於自動調整亮度"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"系統會根據你所在的環境和從事的活動,自動調整螢幕亮度。你也可以移動滑桿,協助自動調整亮度功能記憶你偏好的亮度。"</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"開啟"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"關閉"</string>
@@ -1894,14 +1916,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"選項"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
-    <string name="show_ime" msgid="4334255501724746849">"使用螢幕小鍵盤"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"使用實體鍵盤時仍繼續顯示螢幕小鍵盤"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"彈回鍵"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"鍵盤會忽略在 <xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒內快速重覆按下同一按鍵的動作"</string>
     <string name="slow_keys" msgid="2891452895499690837">"延遲感應鍵"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"將按鍵啟動時間調整為 <xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> 毫秒"</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="2396247040177734245">"使用實體鍵盤控制滑鼠。"</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>
@@ -1926,6 +1948,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"將指標填滿樣式變更為黃色"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"將指標填滿樣式變更為粉紅色"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"將指標填滿樣式變更為藍色"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"游標軌跡樣式"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"白色"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"黑色"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"無"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"學習觸控板手勢"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"觸控板, 滑鼠, 游標, 捲動, 滑動, 按滑鼠右鍵, 點按, 指標"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"按滑鼠右鍵, 輕觸"</string>
@@ -1969,6 +1995,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"使用者選取:<xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"語音"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"游標速度"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"指標比例"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"縮小指標比例"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"放大指標比例"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"遊戲控制器"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"產生震動"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"連接時使遊戲控制器產生震動"</string>
@@ -2091,7 +2120,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍要繼續"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大功能設定"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"單指平移"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"用 1 指移動放大鏡"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"用 1 指在畫面上拖曳放大區域"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"拖曳單指即可移動放大區域。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"拖曳雙指即可移動放大區域。"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"只放大部分畫面時無法使用"</string>
@@ -2115,6 +2145,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"輕觸按鈕即可縮放"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"快速放大螢幕畫面中的內容"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;放大螢幕畫面的方法如下:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 使用捷徑啟動放大功能&lt;br/&gt; {1,number,integer}. 輕觸螢幕&lt;br/&gt; {2,number,integer}. 拖曳 2 指即可四處移動畫面&lt;br/&gt; {3,number,integer}. 使用 2 指撥動即可調整縮放等級&lt;br/&gt; {4,number,integer}. 使用捷徑關閉放大功能&lt;br/&gt;&lt;br/&gt; &lt;b&gt;暫時放大螢幕畫面的方法如下:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. 確認放大類型已設為全螢幕&lt;br/&gt; {1,number,integer}. 使用捷徑啟動放大功能&lt;br/&gt; {2,number,integer}. 按住螢幕上的任一處&lt;br/&gt; {3,number,integer}. 拖曳手指即可四處移動畫面&lt;br/&gt; {4,number,integer}. 移開手指即可關閉放大功能"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;放大畫面的方法如下:&lt;/b&gt;&lt;br/&gt;{0,number,integer}. 使用捷徑啟動放大功能&lt;br/&gt;{1,number,integer}. 輕觸螢幕&lt;br/&gt;{2,number,integer}. 用 2 指在畫面上拖曳放大區域&lt;br/&gt;{3,number,integer}. 用 2 指撥動調整縮放等級&lt;br/&gt;{4,number,integer}. 使用捷徑關閉放大功能&lt;br/&gt;&lt;br/&gt;你也可以暫時放大畫面及執行其他操作。"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;放大畫面的方法如下:&lt;/b&gt;&lt;br/&gt;{0,number,integer}. 使用捷徑啟動放大功能&lt;br/&gt;{1,number,integer}. 輕觸螢幕&lt;br/&gt;{2,number,integer}. 用 1 或 2 指在畫面上拖曳放大區域&lt;br/&gt; {3,number,integer}. 用 2 指撥動調整縮放等級&lt;br/&gt;{4,number,integer}. 使用捷徑關閉放大功能&lt;br/&gt;&lt;br/&gt;你也可以暫時放大畫面及執行其他操作。"</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"放大功能啟用後,你可以放大畫面上的內容。\n\n"<b>"如要進行縮放"</b>",請開啟放大功能,然後輕觸畫面上的任何位置。\n"<ul><li>"使用兩指或多指以拖曳的方式捲動畫面"</li>\n<li>"使用兩指或多指撥動以調整縮放大小"</li></ul>\n\n<b>"如要暫時放大畫面"</b>",請開啟放大功能,然後按住畫面上的任何位置。\n"<ul><li>"使用手指拖曳可瀏覽畫面的不同部分"</li>\n<li>"放開手指即可縮小"</li></ul>\n\n"你無法放大鍵盤和導覽列部分。"</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"第 <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> 頁,共 <xliff:g id="NUM_PAGES">%2$d</xliff:g> 頁"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"無障礙工具按鈕捷徑"</string>
@@ -2149,8 +2181,6 @@
     <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_software_gesture" msgid="8292555254353761635">"請用 2 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 2 指向上滑動並按住。"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"請用 3 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 3 指向上滑動並按住。"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{從螢幕底部向上滑動。如要切換功能,請向上滑動並按住。}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>
@@ -2161,16 +2191,12 @@
     <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_title_two_finger_double_tap" msgid="2271778556854020996">"用兩指輕觸螢幕兩下"</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>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"快速輕觸螢幕 %1$d 下。這可能會降低裝置運作速度。"</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"用 %1$d 指輕觸兩下"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"用兩指快速輕觸螢幕 {0,number,integer} 下"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕觸螢幕三下"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"輕觸三下"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速輕觸螢幕 {0,number,integer} 下。這個手勢可能會影響裝置的運作效能"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"進階"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"[無障礙] 按鈕已設為 <xliff:g id="SERVICE">%1$s</xliff:g>。如要使用放大功能,請按住 [無障礙] 按鈕,然後選取 [放大]。"</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"無障礙手勢已設為「<xliff:g id="SERVICE">%1$s</xliff:g>」。如要使用放大功能,請用兩指從螢幕底部向上滑動並按住,然後選取 [放大]。"</string>
@@ -2334,13 +2360,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"這項服務發生異常。"</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"無障礙功能捷徑"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"在快速設定中顯示"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"紅綠"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"紅綠"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"紅綠、綠色弱"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"紅綠、紅色弱"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"藍黃"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"灰階"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"強度"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"綠色弱、綠色盲"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"紅色弱、紅色盲"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"在灰階模式下或停用色彩校正時,無法使用這項功能"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"綠色弱視"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"紅色弱視"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"藍色弱視"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"超暗"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"啟用超暗螢幕設定"</string>
@@ -2388,15 +2415,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"青色"</string>
     <string name="color_yellow" msgid="5957551912912679058">"黃色"</string>
     <string name="color_magenta" msgid="8943538189219528423">"洋紅色"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"要將裝置的完整控制權授予「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"「<xliff:g id="SERVICE">%1$s</xliff:g>」需要執行下列動作:"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"權限要求遭到其他應用程式畫面遮掩,因此「設定」無法驗證你的回應。"</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g>要求這個裝置的完整控制權。如果你授予相關權限,該服務就能讀取畫面內容及執行動作,以協助需要無障礙服務的使用者。這個等級的控制權不適用於大多數應用程式。"</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"如果你有無障礙服務需求,建議可將完整控制權授予具有相關功能的應用程式,但請勿將完整控制權授予大多數的應用程式。"</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"查看及控制螢幕"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"可讀取螢幕上的所有內容,並在其他應用程式上顯示內容。"</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"查看及執行動作"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"可追蹤你與應用程式或硬體感應器的互動,並代表你與應用程式進行互動。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"停用"</string>
@@ -3320,22 +3340,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{無}=1{已設定 1 個時間表}other{已設定 # 個時間表}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"零打擾"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"優先模式"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"新增模式"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"運用睡眠、工作、行車及其間任何作息模式,盡量減少干擾,控制自己的注意力。"</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"建立自己的模式"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"僅接收重要聯絡人和應用程式的通知"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"設定時間表"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"依據以下時間表:"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"星期幾和時間"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"「平日上午 9 點 - 下午 5 點」"</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"日曆活動"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{已啟用 {mode_1} 個模式}=2{已啟用「{mode_1}」和「{mode_2}」模式}=3{已啟用「{mode_1}」、「{mode_2}」和「{mode_3}」模式}other{已啟用「{mode_1}」、「{mode_2}」和另外 # 個模式}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{可自動開啟 1 個模式}other{可自動開啟 # 個模式}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"開啟"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"未設定"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"已停用"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"建立模式"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"自訂"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"立即開啟"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"關閉"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"找不到模式"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"降低干擾"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"封鎖干擾"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"設定「<xliff:g id="MODE">%1$s</xliff:g>」"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"開啟「零打擾」模式"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"鬧鐘和媒體音效例外"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"排程"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"刪除排程"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"刪除"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"重新命名"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"刪除"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"要刪除「<xliff:g id="MODE">%1$s</xliff:g>」模式嗎?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"編輯"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"排程"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"排程"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"自動開啟"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"新增日曆"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"使用日曆"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"安排時間"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"設定時間表"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"自動開啟時機"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"活動時間表"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"在以下日曆的活動期間開啟:"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"在邀請回覆的時間"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"排定的時間表"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"安排時間"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"<xliff:g id="HOURS">%1$d</xliff:g> 小時 <xliff:g id="MINUTES">%2$d</xliff:g> 分鐘"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"排程"</string>
@@ -3347,8 +3388,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"允許發出音效的干擾"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"封鎖視覺干擾"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"允許視覺信號"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"可收到的通知"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"其他動作"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"通知篩選器"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"更多設定"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{關閉}=1{關閉/可自動開啟 1 個模式}other{關閉/可自動開啟 # 個模式}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"顯示設定"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"顯示選項"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"灰階"</string>
@@ -3364,6 +3406,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"啟用深色主題"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"將作業系統和應用程式偏好設定切換成「淺色文字搭配深色背景」。這項設定或許可以降低眼睛負擔,而且在某些裝置上還能節省大量電力"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{沒有顯示變更}=1{{effect_1}}=2{{effect_1}和{effect_2}}=3{{effect_1}、{effect_2}和{effect_3}}other{{effect_1}、{effect_2}和另外 # 個設定}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"限制要接收的通知"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"不篩選任何干擾"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"如何顯示已過濾的通知"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"開啟「零打擾」模式時"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"不發出通知音效"</string>
@@ -3479,6 +3523,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"開啟通知"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"顯示延後通知"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"顯示應用程式圖示的通知圓點"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"通知組合"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"對話框"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"對話框"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"以對話框形式顯示這個對話"</string>
@@ -3608,9 +3653,9 @@
     <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="4737150709382859870">"自動調整通知"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"使用自動調整通知"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"如果短時間內收到多則通知,手機將調降音量,並減少畫面上的彈出式視窗,持續時間最多兩分鐘。如有來電、鬧鐘和重要對話,手機仍會震動、播放音效或顯示在畫面上。另外,從螢幕頂端往下拉,仍能輕鬆查看所有通知。"</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>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"套用到工作資料夾應用程式"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"VR 小幫手服務"</string>
@@ -3657,6 +3702,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"類別"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"其他"</string>
     <string name="no_channels" msgid="4716199078612071915">"這個應用程式未發布任何通知"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"顯示未使用的類別"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"應用程式中的其他設定"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"顯示未使用的類別"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"隱藏未使用的類別"</string>
@@ -3712,6 +3758,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"對話"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"所有對話"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"所有對話"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"優先對話"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"重要對話"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"無"</string>
@@ -3765,8 +3812,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"例外的應用程式"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"所選應用程式"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"無"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"全部"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{沒有應用程式例外}=1{「{app_1}」例外}=2{「{app_1}」和「{app_2}」例外}=3{「{app_1}」、「{app_2}」和「{app_3}」例外}other{「{app_1}」、「{app_2}」和另外 # 個應用程式例外}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (工作)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"計算中…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"允許應用程式覆寫"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"例外的應用程式"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"選取更多應用程式"</string>
@@ -3784,6 +3833,7 @@
     <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_repeat_callers" msgid="4499084111069828761">"重複來電者例外"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"所有人都例外"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"重複來電者"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"允許顯示重複來電者"</string>
@@ -3803,9 +3853,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{變更為僅限鬧鐘模式並持續 1 小時,結束時間為 {time}}other{變更為僅限鬧鐘模式並持續 # 小時,結束時間為 {time}}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"變更為僅允許鬧鐘模式,結束時間為 <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"變更為一律允許干擾模式"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"重新命名"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"變更圖示"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"變更圖示"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"編輯模式"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"建立模式"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"自訂模式"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"模式名稱"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"日曆活動"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"就寢時間日常安排"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"行車期間"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"應用程式設定"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」中的資訊和設定"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"由「<xliff:g id="APP_NAME">%1$s</xliff:g>」管理"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"要停用「<xliff:g id="MODE_NAME">%1$s</xliff:g>」嗎?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"處於停用狀態時,一律不開啟這個模式"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"停用"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"要啟用「<xliff:g id="MODE_NAME">%1$s</xliff:g>」嗎?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"這個模式可根據相關設定自動開啟"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"啟用"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"設定按照固定時段啟用的模式"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"設定可同步處理日曆活動和邀請回覆的模式"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"設計能平靜身心的日常休眠安排,包括設定鬧鐘、調暗螢幕及封鎖通知。"</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"優先考量行車安全,在駕駛時保持專注且不受干擾"</string>
+    <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="warning_button_text" msgid="1274234338874005639">"警告"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"關閉"</string>
     <string name="device_feedback" msgid="5351614458411688608">"傳送你對這個裝置的意見"</string>
@@ -4791,8 +4862,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"充電盒"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"電池"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"設定面板"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"強制使用桌面模式"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"在次要顯示器上強制使用桌面模式實驗性功能"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"啟用自由形式視窗"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"在第二個螢幕上啟用自由形式視窗功能"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"允許多視窗模式顯示無法調整大小的應用程式"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"允許透過多視窗模式顯示無法調整大小的應用程式"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"覆寫強制使用深色模式的功能"</string>
@@ -4967,7 +5038,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"行動數據"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"為提升裝置使用體驗,應用程式和服務仍可隨時掃描 Wi‑Fi 網路 (即使 Wi-Fi 關閉時也不例外),改善需要位置資訊的功能和服務。你可以前往「掃描 Wi-Fi」設定進行變更。"</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"變更"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g>/<xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"已連線"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"已暫時建立連線"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"暫時使用 <xliff:g id="SUBNAME">%1$s</xliff:g>"</string>
@@ -4999,7 +5069,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"使用應用程式固定功能"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"使用開發人員選項"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"使用列印服務"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"允許多位使用者"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"允許切換使用者"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"允許, 多位, 使用者, 許可, 數位"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"多位, 使用者, 個人資料, 人, 帳戶, 切換, 多人"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"使用無線偵錯功能"</string>
@@ -5113,8 +5183,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"選擇平板電腦插入座架時螢幕上要顯示的內容。請注意,如果裝置使用螢幕保護程式,可能會比較耗電。"</string>
     <string name="customize_button_title" msgid="1110284655990203359">"自訂"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"自訂「<xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>」"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"必須重新啟動才能啟用任意形式的支援。"</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"必須重新啟動才能在次要螢幕上強制執行桌面模式。"</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"必須重新啟動,才能啟用任意形式視窗支援功能。"</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"必須重新啟動,才能更新自由形式視窗的可用性。"</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"必須重新啟動,才能在第二個螢幕上啟用自由形式視窗功能。"</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"立即重新啟動"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"稍後重新啟動"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"空間音訊"</string>
@@ -5211,7 +5282,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"玫瑰"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"洋紅色"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"紫羅蘭"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"完成"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"儲存"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"取消"</string>
     <string name="contrast_default" msgid="8918545965525226966">"預設"</string>
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
@@ -5232,6 +5303,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"已啟用"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"已停用"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"已啟用"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"音訊 %1$d%% 左,%2$d%% 右"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"音訊 %1$d%% 右,%2$d%% 左"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"你安裝的應用程式會取得裝置名稱。如果你連上藍牙裝置、Wi-Fi 網路或者設定 Wi-Fi 無線基地台,其他人也可能會看到裝置名稱。"</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"語法性別"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"選取語法性別"</string>
@@ -5343,4 +5416,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"聆聽串流"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"使用「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」掃描音訊串流 QR code 即可聆聽"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"分享期間無法編輯密碼。如要變更密碼,請先關閉音訊分享功能。"</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR code 掃描器"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"搜尋設定"</string>
 </resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 24f815a..f3317a0 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -499,14 +499,27 @@
     <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
     <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
   <string-array name="zen_mode_icon_options_descriptions">
-    <item msgid="6386593780953863398">"Isikhathi sokulala"</item>
-    <item msgid="4152450357280759894">"Ukushayela"</item>
-    <item msgid="7096549258219399423">"Okugxilile"</item>
-    <item msgid="2760716776980432977">"Kuphethwe"</item>
-    <item msgid="601734478369121764">"Inkanyezi"</item>
-    <item msgid="6243809315432780521">"Ikhalenda"</item>
-    <item msgid="4913577903148415331">"Isikhathi"</item>
-    <item msgid="3653377604690057780">"Itiyetha"</item>
-    <item msgid="3843711267408385410">"Imbali"</item>
+    <item msgid="2750940760340557109">"Inyanga ewuhhafu"</item>
+    <item msgid="8513969636586738035">"Imoto"</item>
+    <item msgid="957392343846370509">"Ingqondo yomuntu"</item>
+    <item msgid="6734164279667121348">"Ikhalenda"</item>
+    <item msgid="4139559120353528558">"Iwashi"</item>
+    <item msgid="5157711296814769020">"Isambulela sasebhishi"</item>
+    <item msgid="6635328761318954115">"Itende"</item>
+    <item msgid="1711994778883392255">"Ireel yefilimu"</item>
+    <item msgid="9097658401859604879">"Isilawuli somdlalo"</item>
+    <item msgid="755931364157422565">"Izinsimbi zasejimini"</item>
+    <item msgid="8894207806795738429">"Umuntu ophonsa ibhola"</item>
+    <item msgid="2274801572149555103">"Umuntu okhahlelayo"</item>
+    <item msgid="8795037201506843325">"Ukubhukuda"</item>
+    <item msgid="3558421426169430451">"Umuntu oqhwala intaba"</item>
+    <item msgid="7455070421232184932">"Igalufu"</item>
+    <item msgid="5841773092449126508">"Amathuluzi asendaweni yomsebenzi"</item>
+    <item msgid="4595330511709890409">"Isikhwama"</item>
+    <item msgid="8352738347856724389">"Inkanyezi"</item>
+    <item msgid="7082783098151998721">"Imbali yelotus"</item>
+    <item msgid="5772220259409264724">"Induna"</item>
+  </string-array>
+  <string-array name="display_over_apps_permission_change_exempt">
   </string-array>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index f8017d7..a4462e8 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -41,6 +41,7 @@
     <string name="radioInfo_data_suspended" msgid="2001254415431299603">"Kumiswe okwesikhashana"</string>
     <string name="radioInfo_unknown" msgid="2892562356748600367">"Akwaziwa"</string>
     <string name="preview_pager_content_description" msgid="3762247188224576303">"Hlola kuqala"</string>
+    <string name="qr_code_content_description" msgid="1852208464419291347">"Ikhodi ye-QR"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Yenza kube kuncane"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Yenza kube kukhulu"</string>
     <string name="stay_awake_on_fold_title" msgid="6590454679898134221">"Njalo"</string>
@@ -76,6 +77,7 @@
     <string name="bluetooth_hearing_device_settings_title" msgid="6060072560486755057">"Amasethingi ensizakuzwa"</string>
     <string name="bluetooth_hearing_device_settings_summary" msgid="3822646075744075158">"Isinqamuleli, ukuhambisana kwensiza yokuzwa"</string>
     <string name="bluetooth_hearing_aids_presets" msgid="4615094985857156388">"Ukusetha ngaphambilini"</string>
+    <string name="bluetooth_hearing_aids_presets_empty_list_message" msgid="4240241268432643259">"Akukho ukusethwa ngaphambilini okuhlelwe i-audiologist yakho"</string>
     <string name="bluetooth_hearing_aids_presets_error" msgid="2095249829735188484">"Ayikwazanga ukubuyekeza ukusetha ngaphambilini"</string>
     <string name="bluetooth_audio_routing_title" msgid="5541729245424856226">"Okukhishwayo komsindo"</string>
     <string name="bluetooth_audio_routing_about_title" msgid="5773336779246891954">"Mayelana nokuphumayo komsindo"</string>
@@ -178,7 +180,7 @@
     <string name="desc_no_available_supported_locale" msgid="7883271726226947273">"Ukukhetha ulimi kwale app akutholakali Kumasethingi."</string>
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"Ulimi lungahluka ezilimini ezitholakala ku-app. Amanye ama-app angase angalisekeli leli sethingi."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Setha ulimi lwe-app ngayinye."</string>
-    <string name="desc_introduction_of_language_picker" msgid="1038423471887102449">"Amasistimu wakho, ama-app, namawebhusayithi kusebenzisa ulimi olusekelwayo lokuqala kusuka ezilimini zakho ezincanyelwayo."</string>
+    <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Idivayisi yakho, ama-app, namawebhusayithi asebenzisa ulimi lokuqala olusekelwayo oluvela ohlwini lwakho lolimi oluthandayo.\n\nAma-app amaningi nawo azosebenzisa isifunda esivela olimini oluthandayo ukuze afomethe izinsuku, izinombolo kanye namayunithi. Ukuze ushitshe isifunda sakho, faka ulimi, bese ukhetha isifunda sakho osithandayo."</string>
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ukuze ukhethe ulimi lwe-app ngayinye, iya kumasethingi wolimi lwe-app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Funda kabanzi mayelana nezilimi ze-app"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Shintsha ulimi lwesistimu lube yi-%s ?"</string>
@@ -282,7 +284,7 @@
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Valiwe"</string>
     <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ivuliwe / i-app e-# enokufinyelela endaweni}one{Ivuliwe / ama-app angu-# anokufinyelela endaweni}other{Ivuliwe / ama-app angu-# anokufinyelela endaweni}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Iyalayisha…"</string>
-    <string name="location_settings_footer_general" msgid="1040507068701188821">"Ama-app anemvume Yamadivayisi aeseduze angakhetha indawo ehambelanayo yamadivayisi axhunyiwe."</string>
+    <string name="location_settings_footer_general" msgid="3447585552176173502">"Ama-app anamadivayisi anemvume eseduze anganquma indawo ehambelanayo yamadivayisi axhunyiwe."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ukufinyelela kwendawo kuvaliwe mayelana nama-app namasevisi. Indawo yedivayisi yakho isengathunyelwa kubaphenduli besimo esiphuthumayo uma ushaya ikholi noma uthumela umbhalo kwinombolo ephuthumayo."</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Funda kabanzi Ngamasethingi wendawo"</string>
     <string name="location_settings_tooltip_text_for_chrome" msgid="5781821709250544575">"Ukuze ushintshe iya kokuthi Amasethingi e-ChromeOS bese uya kokuthi Ubumfihlo nokuvikeleka bese uya kokuthi Izilawulo zobumfihlo bese uya kokuthi Ukufinyelela indawo"</string>
@@ -409,6 +411,8 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ubuso ne-<xliff:g id="WATCH">%s</xliff:g> zingeziwe"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ubuso, isigxivizo somunwe, ne-<xliff:g id="WATCH">%s</xliff:g> kungeziwe"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ubuso, izigxivizo zomunwe, ne-<xliff:g id="WATCH">%s</xliff:g> kungeziwe"</string>
+    <!-- no translation found for mandatory_biometrics_prompt_description (8928849367818726432) -->
+    <skip />
     <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Ukuvula Isiqinisekisi Serimothi"</string>
     <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Iwashi lifakiwe"</string>
     <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Setha iwashi lakho"</string>
@@ -436,7 +440,7 @@
     <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Funda kabanzi mayelana Nokuvula Iwashi"</string>
     <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Faka iwashi"</string>
     <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Susa iwashi"</string>
-    <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Isigxivizo somunwe Nokuvula Ngobuso"</string>
+    <string name="security_settings_biometric_preference_title" msgid="298146483579539448">"Ukuvula ngobuso nangesigxivizo somunwe"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ukuvula Ngobuso Nangesigxivizo Somunwe emsebenzini"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Ukusetha kuyadingeka"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Ubuso nezigxivizo zeminwe kungeziwe"</string>
@@ -620,6 +624,9 @@
     <string name="private_space_setting_up_text" msgid="8458035555212009528">"Isetha isikhala esigodliwe…"</string>
     <string name="private_space_error_screen_title" msgid="739381738044418346">"Ayikwazanga ukusetha indawo engasese"</string>
     <string name="private_space_tryagain_label" msgid="8305362615231738367">"Zama Futhi"</string>
+    <string name="private_space_exit_label" msgid="2358175237993013881">"Phuma"</string>
+    <string name="private_space_error_description" msgid="6591005734266923120">"Indawo engasese ayitholakali.\nBuka okungenzeka kube yimbangela"</string>
+    <string name="private_space_error_causes_text" msgid="1649162505129365620">"Buka okungenzeka kube yimbangela"</string>
     <string name="private_space_lockscreen_title" msgid="5785259588888586366">"Khetha isikhiya esisha sendawo engasese?"</string>
     <string name="private_space_lockscreen_summary" msgid="3053836076639653805">"Ungasetha ukhiye omusha wenzela nje indawo engasese, noma usebenzise isikhiya esifanayo osisebenzisela ukuvula idivayisi yakho"</string>
     <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Sebenzisa ukukhiya isikrini"</string>
@@ -848,6 +855,20 @@
     <string name="nfc_reboot_dialog_title" msgid="2033983438635768169">"Qalisa kabusha idivayisi?"</string>
     <string name="nfc_reboot_dialog_message" msgid="4929353168157966992">"Ukungena kwe-NFC okuningiliziwe kuhloselwe izinjongo zokuthuthukiswa kuphela. Idatha ye-NFC eyengeziwe ifakwe phakathi kwimibiko yeziphazamisi, engase ibe nolwazi olugodliwe. Qala kabusha idivayisi ukuze ushintshe le sethingi."</string>
     <string name="nfc_reboot_dialog_confirm" msgid="4769763632008584567">"Qala kabusha"</string>
+    <string name="external_display_on" msgid="2560104443500154333">"Kuvuliwe"</string>
+    <string name="external_display_off" msgid="5634413756025351374">"Kuvaliwe"</string>
+    <string name="external_display_settings_title" msgid="6256884595821605779">"Ukubonisa Kwangaphandle"</string>
+    <string name="external_display_use_title" msgid="8198257340836261386">"Sebenzisa ukubonisa kwangaphandle"</string>
+    <string name="external_display_resolution_settings_title" msgid="2446784716488289268">"Ukucaca kokubonisa"</string>
+    <string name="external_display_not_found" msgid="1912355133386555798">"Ukubonisa kwangaphandle kunqanyuliwe"</string>
+    <string name="external_display_rotation" msgid="7160062306817490204">"Ukuzungezisa"</string>
+    <string name="external_display_standard_rotation" msgid="545969032327487219">"Okujwayelekile"</string>
+    <string name="external_display_rotation_90" msgid="7371530414227542947">"90°"</string>
+    <string name="external_display_rotation_180" msgid="6469137724447819841">"180°"</string>
+    <string name="external_display_rotation_270" msgid="7819322302457740514">"270°"</string>
+    <string name="external_display_change_resolution_footer_title" msgid="9024291681663573443">"Ukushintsha ukuzungezisa noma ukucaca kungamisa noma imaphi ama-app asebenzayo okwamanje"</string>
+    <string name="external_display_not_found_footer_title" msgid="8882902921634316363">"Idivayisi yakho kufanele ixhunywe ekuboniseni kwangaphandle ukuze ifanise isikrini sakho"</string>
+    <string name="external_display_more_options_title" msgid="1222751990705118774">"Okungakhethwa kukho okuningi"</string>
     <string name="wifi_display_settings_title" msgid="6451625615274960175">"Abalingisi"</string>
     <string name="keywords_wifi_display_settings" msgid="5753883229564422679">"isibuko"</string>
     <string name="wifi_display_enable_menu_item" msgid="7391841780777318134">"Nika amandla ukubukeka okungenantambo "</string>
@@ -1189,6 +1210,7 @@
     <string name="color_mode_option_automatic" msgid="2281217686509980870">"Okungaguqula"</string>
     <string name="brightness" msgid="6216871641021779698">"Izinga lokukhanya"</string>
     <string name="auto_brightness_title" msgid="4239324728760986697">"Ukukhanya okuguqukayo"</string>
+    <string name="auto_brightness_content_description_title" msgid="237734599617077375">"Mayelana nokukhanya okuguqukayo"</string>
     <string name="auto_brightness_description" msgid="6807117118142381193">"Ukukhanya kwesikrini sakho kuzolungiswa ngokuzenzakalela kumvelo yakho nakumisebenzi. Ungahambisa isilayida ngesandla ukuze usize ukukhanya okushintshayo kufunde okuncamelayo."</string>
     <string name="auto_brightness_summary_on" msgid="2748088951224387004">"Vuliwe"</string>
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Kuvaliwe"</string>
@@ -1895,14 +1917,14 @@
     <string name="keyboard_options_category" msgid="8040137073401152608">"Ongakukhetha"</string>
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ukufinyeleleka"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Ikhibhodi ephathekayo"</string>
-    <string name="show_ime" msgid="4334255501724746849">"Sebenzisa ikhibhodi ekuskrini"</string>
-    <string name="show_ime_summary" msgid="7293345791727205975">"Yigcine kusikrini ngenkathi kusebenza ikhibhodi ephathekayo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Okhiye bokubuyisela emuva"</string>
     <string name="bounce_keys_summary" msgid="7347050868868080302">"Ikhibhodi iziba ukuchofozwa okusheshayo ngokuphindaphindiwe kwenkinobho efanayo phakathi nenkathi engu-<xliff:g id="BOUNCE_KEYS_THRESHOLD">%1$d</xliff:g> ms"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Okhiye abahamba kancane"</string>
     <string name="slow_keys_summary" msgid="1784371292745423292">"Lungisa isikhathi esithathwa yinkinobho ngayinye ukuba isebenze lapho icindezelwa, sibe ngu-<xliff:g id="SLOW_KEYS_THRESHOLD">%1$d</xliff:g> ms"</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>
+    <string name="mouse_keys_summary" msgid="2396247040177734245">"Sebenzisa ikhibhodi ephathekayo ukulawula imouse."</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>
@@ -1927,6 +1949,10 @@
     <string name="pointer_fill_style_yellow_button" msgid="5025969961559379024">"Shintsha isitayela sokugcwalisa isikhombi sibe phuzi"</string>
     <string name="pointer_fill_style_pink_button" msgid="4106218142489635673">"Shintsha isitayela sokugcwalisa isikhombi sibe phinki"</string>
     <string name="pointer_fill_style_blue_button" msgid="5594958078854032785">"Shintsha isitayela sokugcwalisa isikhombi sibe luhlaza okwesibhakabhaka"</string>
+    <string name="pointer_stroke_style" msgid="1886986630216050665">"Isitayela sepointer stroke"</string>
+    <string name="pointer_stroke_style_name_white" msgid="673686194443825383">"Mhlophe"</string>
+    <string name="pointer_stroke_style_name_black" msgid="4655806167067437330">"Mnyama"</string>
+    <string name="pointer_stroke_style_name_none" msgid="8953927511729800247">"Lutho"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Funda ukunyakaza kwephedi lokuthinta"</string>
     <string name="keywords_touchpad" msgid="8159846254066666032">"i-trackpad, i-track pad, imawuzi, i-cursor, skrola, swayipha, chofoza kwesokudla, chofoza, isikhombi"</string>
     <string name="keywords_trackpad_bottom_right_tap" msgid="1285062446073929305">"chofoza ngakwesokudla, thepha"</string>
@@ -1970,6 +1996,9 @@
     <string name="user_selected_keyboard_layout_label" msgid="154742505924555156">"Umsebenzisi ukhethiwe: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"Inkulumo"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Ijubane lesikhombi"</string>
+    <string name="pointer_scale" msgid="4941564570571663964">"Ubukhulu besikhombisi"</string>
+    <string name="pointer_scale_decrease_content_description" msgid="4479646756230008068">"Nciphisa ubukhulu besikhombisi"</string>
+    <string name="pointer_scale_increase_content_description" msgid="1049632123702664450">"Khulisa ubukhulu besikhombisi"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Isilawuli somdlalo"</string>
     <string name="vibrate_input_devices" msgid="5192591087864449142">"Qondisa kabusha ukudlidliza"</string>
     <string name="vibrate_input_devices_summary" msgid="8791680891376689823">"Thumela ukudlidliza kwesilawuli segeyimu uma kuxhunyiwe"</string>
@@ -2092,7 +2121,8 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Qhubeka noma kunjalo"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Khansela"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Izilungiselelo zokukhuliswa"</string>
-    <string name="accessibility_magnification_one_finger_panning_title" msgid="4503949739883092989">"I-panning yomunwe owodwa"</string>
+    <string name="accessibility_magnification_one_finger_panning_title" msgid="1338811559457209339">"Hambisa imagnifier ngomunwe ongu-1"</string>
+    <string name="accessibility_magnification_one_finger_panning_summary" msgid="1861473044337453019">"Hudula umunwe ongu-1 ukuze uhambe esikrinini"</string>
     <string name="accessibility_magnification_one_finger_panning_summary_on" msgid="9133125894310777539">"Hambisa indawo yokukhuliswa ngokuhudula umunwe owodwa."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_off" msgid="8979146350396559805">"Hambisa indawo yokukhuliswa ngokuhudula iminwe emibili."</string>
     <string name="accessibility_magnification_one_finger_panning_summary_unavailable" msgid="4302567514781245318">"Ayitholakali ngenkathi ikhulisa kuphela ingxenye yesikrini"</string>
@@ -2116,6 +2146,8 @@
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Thepha inkinobho ukuze usondeze"</string>
     <string name="accessibility_screen_magnification_intro_text" msgid="3856180549393526339">"Sondeza isithombe ngokushesha ukuze wenze okuqukethwe kube kukhudlwana"</string>
     <string name="accessibility_screen_magnification_summary" msgid="8267672508057326959">"&lt;b&gt;Ukuze usondeze isithombe:&lt;br/&gt;&lt;br/&gt; {0,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa&lt;/b&gt;&lt;br/&gt; {1,number,integer}. Thepha isikrini&lt;/b&gt;&lt;br/&gt; {2,number,integer}. Hudula iminwe emi-2 ukuze uhambe esikrinini&lt;/b&gt;&lt;br/&gt; {3,number,integer}. Ncinza ngeminwe emi-2 ukuze ulungise ukusondeza&lt;/b&gt;&lt;br/&gt; {4,number,integer}. Sebenzisa isinqamuleli ukuze umise ukukhuliswa&lt;br/&gt;&lt;br/&gt; &lt;b&gt;Ukuze usondeze isithombe okwesikhashana:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Qiniseka ukuthi uhlobo lwakho lokukhulisa lusethwe esikrinini esigcwele&lt;/b&gt;&lt;br/&gt; {1,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa&lt;/b&gt;&lt;br/&gt; {2,number,integer}. Thinta futhi ubambe noma kuphi esikrinini&lt;/b&gt;&lt;br/&gt; {3,number,integer}. Hudula umunwe ukuze uhambahambe esikrinini&lt;/b&gt;&lt;br/&gt; {4,number,integer}. Phakamisa umunwe ukuze umise ukukhuliswa"</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off" msgid="1779959623535122324">"&lt;b&gt;Ukuze usondeze isithombe:&lt;br/&gt;&lt;br/&gt; {0,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa&lt;/b&gt;&lt;br/&gt; {1,number,integer}. Thepha isikrini&lt;/b&gt;&lt;br/&gt; {2,number,integer}. Hudula iminwe engu-2 ukuze uhambahambe esikrinini&lt;/b&gt;&lt;br/&gt; {3,number,integer}. Ncinza ngeminwe engu-2 ukuze ulungise ukusondeza&lt;/b&gt;&lt;br/&gt; {4,number,integer}. Sebenzisa isinqamuleli ukuze umise ukukhuliswa&lt;br/&gt;&lt;br/&gt; Ungaphinda usondeze isithombe okwesikhashana nokuningi."</string>
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on" msgid="7323930759240678965">"&lt;b&gt;Ukuze usondeze isithombe:&lt;br/&gt;&lt;br/&gt; {0,number,integer}. Sebenzisa isinqamuleli ukuqalisa ukukhuliswa&lt;/b&gt;&lt;br/&gt; {1,number,integer}. Thepha isikrini&lt;/b&gt;&lt;br/&gt; {2,number,integer}. Hudula iminwe engu-1 noma 2 ukuze uhambahambe esikrinini&lt;br/&gt; {3,number,integer}. Ncinza ngeminwe engu-2 ukuze ulungise ukusondeza&lt;/b&gt;&lt;br/&gt; {4,number,integer}. Sebenzisa isinqamuleli ukuze umise ukukhuliswa&lt;br/&gt;&lt;br/&gt; Ungaphinda usondeze isithombe okwesikhashana nokuningi."</string>
     <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Uma ukukhulisa kuvuliwe, ungasondeza isikrini sakho.\n\n"<b>"Ukuze usondeze"</b>", qala ukukhulisa, thepha noma yikuphi kusikrini.\n"<ul><li>"Hudula iminwe engu-2 noma ngaphezulu ukuze uskrole"</li>\n<li>"Ncinza iminwe engu-2 noma ngaphezulu ukuze ulungisa ukusondela"</li></ul>\n\n<b>"Ukuze usondeze okwesikhashana"</b>", qalisaukukhulisa, bese uthinte futhi ubambe noma yokuhi esikrinini.\n"<ul><li>"Hudula ukuze uhambahambe esikrinini"</li>\n<li>"Phakamisa umunwe ukuze uhlehlise isithombe"</li></ul>\n\n"Awukwazi ukusondeza kwikhibhodi noma kwibha yokuzula."</string>
     <string name="accessibility_tutorial_pager" msgid="8461939455728454061">"Ikhasi elingu-<xliff:g id="CURRENT_PAGE">%1$d</xliff:g> kwangu-<xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
     <string name="accessibility_tutorial_dialog_title_button" msgid="1924337057649065884">"Isinqamuleli senkinobho yokufinyeleleka"</string>
@@ -2150,8 +2182,6 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Thepha inkinobho entantayo"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Ukutholakala kokuthinta"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Thepha inkinobho yokufinyeleleka engu-<xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezici, thinta uphinde ubambe inkinobho yokufinyeleleka."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swayiphela phezulu kusuka ezansi esikrinini ngeminwe engu-2.\n\nUkuze ushintshe phakathi kwezici, swayiphela phezulu ngeminwe engu-2 bese ubambe."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swayiphela phezulu kusuka ezansi esikrinini ngeminwe engu-3.\n\nUkuze ushintshe phakathi kwezici, swayiphela phezulu ngeminwe engu-3 bese ubambe."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Swayiphela phezulu kusuka ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezakhi, swayiphela phezulu uphinde ubambe.}one{Swayiphela phezulu ngeminwe engu-# kusuka ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezakhi, swayiphela phezulu ngeminwe engu-# uphinde ubambe.}other{Swayiphela phezulu ngeminwe engu-# kusuka ngaphansi kwesikrini sakho. Ukuze ushintshe phakathi kwezakhi, swayiphela phezulu ngeminwe engu-# uphinde ubambe.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Izinketho eziningi"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Funda kabanzi nge-<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -2162,16 +2192,12 @@
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Okhiye bevolumu"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"okhiye bevolumu"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Cindezela futhi ubambe bobabili okhiye bevolumu"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap" msgid="2271778556854020996">"Isikrini othepha kabili ngeminwe emibili kuso"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d-umunwe wokuthepha kabili"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Thepha ngokushesha isikrini kabili ngeminwe engu-%1$d"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Thepha kathathu"</string>
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap" msgid="4839204951599629871">"Thepha ngokushesha isikrini izikhathi ezingu-%1$d. Lokhu kungenza idivayisi yakho ihambe kancane."</string>
     <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="6271718715836961167">"%1$d-umunwe wokuthepha kabili"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Thepha ngokushesha isikrini izikhathi ezingu-{0,number,integer} ngeminwe emibili"</string>
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Isikrini sokuthepha kathathu"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="5359347130888464334">"thepha kathathu"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Thepha ngokushesha isikrini izikhathi ezingu-{0,number,integer}. Lesi sinqamuleli singase sehlise isivinini sedivayisi yakho"</string>
     <string name="accessibility_shortcut_edit_dialog_title_advance" msgid="4567868630655591506">"Okuthuthukile"</string>
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="266736851606791552">"Inkinobho yokufinyelela isethelwe ku-<xliff:g id="SERVICE">%1$s</xliff:g>. Ukuze usebenzise ukushintsha, thinta futhi ubambe inkinobho yokufinyelela, bese ukhethe ukushintsha."</string>
     <string name="accessibility_screen_magnification_gesture_navigation_warning" msgid="991017769735632046">"Ukuthinta kokufinyelela kusethelwe ku-<xliff:g id="SERVICE">%1$s</xliff:g>. Ukuze usebenzise ukushintsha usayizi, swayiphela phezulu ngeminwe emibili kusuka phansi kwesikrini futhi ubambe. Bese khetha ukulungisa."</string>
@@ -2335,13 +2361,14 @@
     <string name="accessibility_description_state_stopped" msgid="5364752492861199133">"Le sevisi ayisebenzi kahle."</string>
     <string name="accessibility_shortcuts_settings_title" msgid="974740249671825145">"Izinqamuleli zokufinyeleleka"</string>
     <string name="enable_quick_setting" msgid="6648073323202243604">"Bonisa Kuzilungiselelo Ezisheshayo"</string>
-    <string name="daltonizer_mode_deuteranomaly_title" msgid="4210949400493358650">"Okubomvu-okuluhlaza okotshani"</string>
-    <string name="daltonizer_mode_protanomaly_title" msgid="6392456967103014723">"Okubomvu-okuluhlaza okotshani"</string>
+    <string name="daltonizer_mode_deuteranomaly_title" msgid="3229433065035047931">"Okubomvu-okuluhlaza, okuluhlaza okulula"</string>
+    <string name="daltonizer_mode_protanomaly_title" msgid="2572040492905945405">"Okubomvu-okuluhlaza, okubomvu okulula"</string>
     <string name="daltonizer_mode_tritanomaly_title" msgid="2278786218762602022">"Okuluhlaza okwesibhakabhaka-okuphuzi"</string>
     <string name="daltonizer_mode_grayscale_title" msgid="152005391387952588">"I-grayscale"</string>
     <string name="daltonizer_saturation_title" msgid="2999486412114963068">"Ukuqina"</string>
-    <string name="daltonizer_mode_deuteranomaly_summary" msgid="2117727423019598455">"Okuluhlaza okotshani okubuthakathaka, i-deuteranomaly"</string>
-    <string name="daltonizer_mode_protanomaly_summary" msgid="4617032854982040748">"Okubomvu okubuthakathaka, i-protanomaly"</string>
+    <string name="daltonizer_saturation_unavailable_summary" msgid="8319753055567798775">"Ayitholakali kumodi yendawo engathi imnyama noma lapho ukulungiswa kombala kukhutshaziwe"</string>
+    <string name="daltonizer_mode_deuteranomaly_summary" msgid="391621040826073327">"I-Deuteranomaly"</string>
+    <string name="daltonizer_mode_protanomaly_summary" msgid="877971556622350648">"I-Protanomaly"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2428218320118180070">"I-Tritanomaly"</string>
     <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Ukufiphaza okwengeziwe"</string>
     <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Fiphaza isikrini sakho ngokwengeziwe"</string>
@@ -2389,15 +2416,8 @@
     <string name="color_cyan" msgid="4341758639597035927">"I-Cyan"</string>
     <string name="color_yellow" msgid="5957551912912679058">"Okuliphuzi"</string>
     <string name="color_magenta" msgid="8943538189219528423">"I-Magenta"</string>
-    <string name="enable_service_title" msgid="7231533866953706788">"Vumela i-<xliff:g id="SERVICE">%1$s</xliff:g> ukuthola ukulawula okuphelele kwedivayisi yakho?"</string>
     <string name="capabilities_list_title" msgid="1225853611983394386">"<xliff:g id="SERVICE">%1$s</xliff:g> idinga :"</string>
     <string name="touch_filtered_warning" msgid="4225815157460318241">"Ngoba uhlelo lokusebenza lusitha isicelo semvume, Izilungiselelo azikwazi ukuqinisekisa impendulo yakho."</string>
-    <string name="accessibility_service_warning" msgid="6779187188736432618">"<xliff:g id="SERVICE">%1$s</xliff:g> icela ukulawula okuphelele kwale divayisi. Isevisi ingafunda isikrini futhi isebenze engxenyeni yabasebenzisi abanezidingo zokufinyelela. Le leveli yokulawula ayiqondile kuzinhlelo zokusebenza eziningi."</string>
-    <string name="accessibility_service_warning_description" msgid="6573203795976134751">"Ukulawula okugcwele kulungele izinhlelo zokusebenza ezikusiza ngezidingo zokufinyelela, kodwa hhayi izinhlelo zokusebenza eziningi."</string>
-    <string name="accessibility_service_screen_control_title" msgid="324795030658109870">"Buka futhi ulawule isikrini"</string>
-    <string name="accessibility_service_screen_control_description" msgid="8431940515157990426">"Singafunda konke okuqukethwe esikrinini futhi sibonise okuqukethwe kwezinye izinhlelo zokusebenza."</string>
-    <string name="accessibility_service_action_perform_title" msgid="1449360056585337833">"Buka uphinde wenze izenzo"</string>
-    <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ingalandela ukusebenzisana kwakho nohlelo lokusebenza noma inzwa yehadiwe, nokusebenzisana nezinhlelo zokusebenza engxenyeni yakho."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Vumela"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Phika"</string>
     <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vala"</string>
@@ -3321,22 +3341,43 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Lutho}=1{ishejuli esethiwe e-1}one{amashejuli asethiwe angu-#}other{amashejuli asethiwe angu-#}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ungaphazamisi"</string>
     <string name="zen_modes_list_title" msgid="5138745349253275428">"Amamodi Abalulekile"</string>
-    <string name="zen_modes_add_mode" msgid="4806287336036228772">"Faka imodi"</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Nciphisa iziphazamiso futhi ulawule ukunaka kwakho ngamamodi okulala, umsebenzi, ukushayela, nayo yonke into ephakathi."</string>
+    <string name="zen_modes_add_mode" msgid="5926457160307593664">"Sungula imodi yakho"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Yaziswa kuphela abantu ababalulekile nezinhlelo zokusebenza"</string>
+    <string name="zen_mode_select_schedule" msgid="663163931596092952">"Setha ishejuli"</string>
+    <string name="zen_mode_select_schedule_title" msgid="4260344424438327309">"Ishejuli ngokusekelwe kokuthi"</string>
+    <string name="zen_mode_select_schedule_time" msgid="1951968104691941146">"Ilanga nesikhathi"</string>
+    <string name="zen_mode_select_schedule_time_example" msgid="2690518300573994725">"\"9 AM - 5 PM phakathi neviki\""</string>
+    <string name="zen_mode_select_schedule_calendar" msgid="8098396764270136497">"Imicimbi yekhalenda"</string>
+    <string name="zen_modes_summary_some_active" msgid="4780578487747956559">"{count,plural,offset:2 =0{}=1{Okuthi {mode_1} kuyasebenza}=2{Okuthi {mode_1} nokuthi {mode_2} kuyasebenza}=3{Okuthi {mode_1}, {mode_2}, nokuthi {mode_3} kuyasebenza}one{Okuthi {mode_1}, {mode_2}, kanye nokwengeziwe okungu-# kuyasebenza}other{Okuthi {mode_1}, {mode_2}, kanye nokwengeziwe okungu-# kuyasebenza}}"</string>
+    <string name="zen_modes_summary_none_active" msgid="7076119084658457243">"{count,plural, =0{}=1{Imodi e-1 ingavuleka ngokuzenzakalela}one{Amamodi angu-# angavuleka ngokuzenzakalela}other{Amamodi angu-# angavuleka ngokuzenzakalela}}"</string>
+    <string name="zen_mode_active_text" msgid="5002406772481439437">"KUVULIWE"</string>
+    <string name="zen_mode_disabled_needs_setup" msgid="389269759040103728">"Akusethiwe"</string>
+    <string name="zen_mode_disabled_by_user" msgid="138592173630683253">"Kukhutshaziwe"</string>
+    <string name="zen_mode_new_title" msgid="4934720193004330740">"Sungula imodi"</string>
+    <string name="zen_mode_new_option_custom" msgid="1060993879440003341">"Okumuntu ngamunye"</string>
+    <string name="zen_mode_action_activate" msgid="4832626715234966484">"Vula manje"</string>
+    <string name="zen_mode_action_deactivate" msgid="5922468877447186921">"Vala"</string>
+    <string name="zen_mode_not_found_text" msgid="692090778655810329">"Imodi ayitholakali"</string>
     <string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Khawulela ukuphazamisa"</string>
+    <string name="zen_mode_setup_page_summary" msgid="7568908001205193154">"Vimba iziphazamiso"</string>
+    <string name="zen_mode_setup_button_label" msgid="1959984133767361374">"Setha okuthi <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="7500702838426404527">"Vula ukungaphazamisi"</string>
     <string name="zen_mode_behavior_alarms_only" msgid="2956938533859578315">"Ama-alamu nemisindo yemidiya kungaphazamisa"</string>
     <string name="zen_mode_automation_settings_title" msgid="3709324184191870926">"Amashejuli"</string>
     <string name="zen_mode_delete_automatic_rules" msgid="5020468289267191765">"Susa amashejuli"</string>
     <string name="zen_mode_schedule_delete" msgid="5383420576833765114">"Susa"</string>
+    <string name="zen_mode_menu_rename_mode" msgid="4681802125016390837">"Qamba kabusha"</string>
+    <string name="zen_mode_menu_delete_mode" msgid="5380084696402157428">"Sula"</string>
+    <string name="zen_mode_delete_mode_confirmation" msgid="7594340592051947392">"Sula imodi ethi \"<xliff:g id="MODE">%1$s</xliff:g>\"?"</string>
     <string name="zen_mode_rule_name_edit" msgid="1053237022416700481">"Hlela"</string>
     <string name="zen_mode_automation_settings_page_title" msgid="6217433860514433311">"Amashejuli"</string>
     <string name="zen_mode_automatic_rule_settings_page_title" msgid="5264835276518295033">"Ishejuli"</string>
-    <string name="zen_mode_automatic_trigger_title" msgid="9193777783079000267">"Vula ngokuzenzekela"</string>
-    <string name="zen_mode_set_calendar_title" msgid="7216665046452644450">"Engeza ikhalenda"</string>
-    <string name="zen_mode_set_calendar_link" msgid="5694504696975898068">"Sebenzisa ikhalenda yakho"</string>
-    <string name="zen_mode_set_calendar_category_title" msgid="4860286061420133360">"Shejula"</string>
-    <string name="zen_mode_set_schedule_title" msgid="8023100831320026233">"Setha ishejuli"</string>
+    <string name="zen_mode_automatic_trigger_title" msgid="6223547583969661361">"Ukuvula nini ngokuzenzekela"</string>
+    <string name="zen_mode_set_calendar_title" msgid="609741570346510347">"Ishejuli yomcimbi"</string>
+    <string name="zen_mode_set_calendar_which_calendar" msgid="7520289688350942687">"Vula ngesikhathi semicimbi"</string>
+    <string name="zen_mode_set_calendar_which_reply" msgid="3136872740890390233">"La impendulo yesimemo ikhona"</string>
+    <string name="zen_mode_set_schedule_title" msgid="8767170965922472951">"Ishejuli yesikhathi"</string>
     <string name="zen_mode_set_schedule_link" msgid="2534032127923435737">"Shejula"</string>
     <string name="zen_mode_schedule_duration" msgid="299332195675875111">"Ihora elingu-<xliff:g id="HOURS">%1$d</xliff:g>, nemizuzu engu-<xliff:g id="MINUTES">%2$d</xliff:g>"</string>
     <string name="zen_mode_schedule_category_title" msgid="1381879916197350988">"Ishejuli"</string>
@@ -3348,8 +3389,9 @@
     <string name="zen_mode_settings_category" msgid="3794956668816783447">"Vumela iziphazamiso ezenza umsindo"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="7806181124566937214">"Vimbela ukuphazamiseka okubonakalayo"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="7433077540895876672">"Vumela amasignali okubuka"</string>
-    <string name="mode_interruption_filter_title" msgid="6657431939996264417">"Izaziso ezingafinyelela kuwe"</string>
-    <string name="mode_device_effects_title" msgid="5857008332618433744">"Izenzo ezengeziwe"</string>
+    <string name="mode_interruption_filter_title" msgid="6293843948349239256">"Izihlungi zesaziso"</string>
+    <string name="mode_device_effects_title" msgid="6019908499525166737">"Amanye amasethingi"</string>
+    <string name="modes_sound_summary_off" msgid="6972648204528227879">"{count,plural, =0{Kuvaliwe}=1{Kuvaliwe / imodi eyodwa ingavuleka ngokuzenzakalelayo}one{Kuvaliwe / amamodi angu-# angavuleka ngokuzenzakalelayo}other{Kuvaliwe / amamodi angu-# angavuleka ngokuzenzakalelayo}}"</string>
     <string name="mode_display_settings_title" msgid="8132825978346535472">"Bonisa amasethingi"</string>
     <string name="mode_display_options_section" msgid="5151597748243866532">"Okungakhethwa kukho kokubonisa"</string>
     <string name="mode_grayscale_title" msgid="6027553257331235461">"Indawo engathi imnyama"</string>
@@ -3365,6 +3407,8 @@
     <string name="mode_dark_theme_title_secondary_list" msgid="4761262694149772845">"nika amandla itimu emnyama"</string>
     <string name="mode_dark_theme_summary" msgid="8428887193785431898">"Shintsha i-OS nama-app ukuze uncamele umbhalo okhanyayo kungemuva elimnyama, okungenzeka kube lula emehlweni futhi kunikeza ukulondoloza okubalulekile kwebhethri kwamanye amadivayisi"</string>
     <string name="mode_display_settings_summary" msgid="5929234706883482380">"{count,plural,offset:2 =0{Azikho izinguquko zokubonisa}=1{I-{effect_1}}=2{I-{effect_1} ne-{effect_2}}=3{I-{effect_1}, i-{effect_2}, ne-{effect_3}}one{I-{effect_1}, i-{effect_2}, nokungu-# ngaphezulu}other{I-{effect_1}, i-{effect_2}, nokungu-# ngaphezulu}}"</string>
+    <string name="mode_notification_filter_title" msgid="1977578854503464865">"Khawulela lokho okungakwazisa"</string>
+    <string name="mode_no_notification_filter" msgid="7119188047783404890">"Azikho iziphazamiso ezihlungiwe"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="4926944083757096458">"Bonisa okungakhethwa kukho kwezaziso ezihlungiwe"</string>
     <string name="zen_mode_restrict_notifications_category" msgid="5870944770935394566">"Uma Ukungaphazamisi kuvuliwe"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="6692072837485018287">"Awukho umsindo kusukela kuzaziso"</string>
@@ -3480,6 +3524,7 @@
     <string name="notification_history_open_notification" msgid="2655071846911258371">"vula isaziso"</string>
     <string name="snooze_options_title" msgid="2109795569568344617">"Vumela ukusnuza kwesaziso"</string>
     <string name="notification_badging_title" msgid="5469616894819568917">"Ichashazi lesaziso kusithonjana sohlelo lokusebenza"</string>
+    <string name="notification_bundles" msgid="3614044525822580826">"Iqoqo lezaziso"</string>
     <string name="notification_bubbles_title" msgid="5681506665322329301">"Amabhamuza"</string>
     <string name="bubbles_app_toggle_title" msgid="5319021259954576150">"Amabhamuza"</string>
     <string name="bubbles_conversation_toggle_title" msgid="5225039214083311316">"Yenza ibhamuza le ngxoxo"</string>
@@ -3609,9 +3654,9 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"Le app ayisekeli amasethingi athuthukisiwe"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Amanye amasethingi"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Amasethingi engeziwe ayatholakala ngaphakathi kwale app"</string>
-    <string name="notification_polite_title" msgid="4737150709382859870">"Izaziso Eziguquguqukayo"</string>
-    <string name="notification_polite_main_control_title" msgid="7267191551379543859">"Sebenzisa izaziso eziguquguqukayo"</string>
-    <string name="notification_polite_description" msgid="7749280535620291610">"Lapho uthola izaziso eziningi ngesikhathi esincane, ifoni yakho izokwehlisa umsindo futhi inciphise okuvela okwesikhashana esikrinini imizuzu engafika kwemibili. Amakholi, ama-alamu, kanye nezingxoxo ezibalulekile kusengadlidliza, kwenze umsindo, noma kuvele esikrinini, futhi kulula ukuthola zonke izaziso lapho udonsela phansi kusuka ngenhla kwesikrini."</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"Isikhathi sokuphola sezaziso"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Sebenzisa ukwehlisa umsindo wezaziso"</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Uma uthola izaziso eziningi ngesikhathi esifushane, idivayisi yakho izokwehlisa ivolumu yayo futhi inciphise izexwayiso imizuzu engafika kwemi-2. Izingcingo, ama-alamu, nezingxoxo ezibalulekile azithinteki. \n\nIzaziso ezitholwe ngesikhathi sokupholisa zingatholwa ngokudonsela phansi usuka phezulu esikrinini."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Sebenzisa kumaphrofayela omsebenzi"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Kusebenzise kuma-app ephrofayela yomsebenzi"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Amasevisi omsizi we-VR"</string>
@@ -3658,6 +3703,7 @@
     <string name="notification_channels" msgid="1502969522886493799">"Izigaba"</string>
     <string name="notification_channels_other" msgid="18159805343647908">"Okunye"</string>
     <string name="no_channels" msgid="4716199078612071915">"le-app ayizange ithumele izasiso"</string>
+    <string name="no_recent_channels" msgid="5068574296267584043">"Bonisa izigaba ezingasetshenzisiwe"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Amasethingi angeziwe ku-app"</string>
     <string name="show_unused_channels" msgid="4956292847964439078">"Bonisa izigaba ezingasetshenzisiwe"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Fihla izigaba ezingasetshenzisiwe"</string>
@@ -3713,6 +3759,7 @@
     <string name="summary_range_symbol_combination" msgid="8447490077794415525">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_conversations_title" msgid="5491912973456026379">"Izingxoxo"</string>
     <string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Zonke izingxoxo"</string>
+    <string name="zen_mode_from_all_conversations_second" msgid="6781738302202989293">"zonke izingxoxo"</string>
     <string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Izingxoxo ezibalulekile"</string>
     <string name="zen_mode_from_important_conversations_second" msgid="7588299891972136599">"izingxoxo ezibalulekile"</string>
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Lutho"</string>
@@ -3766,8 +3813,10 @@
     <string name="zen_mode_apps_category" msgid="4082380323683889391">"Ama-app angaphazamisa"</string>
     <string name="zen_mode_apps_priority_apps" msgid="7386196048313716076">"Ama-app akhethiwe"</string>
     <string name="zen_mode_apps_none_apps" msgid="2493642312793604327">"Lutho"</string>
-    <string name="zen_mode_apps_all_apps" msgid="705700582778445484">"Konke"</string>
     <string name="zen_mode_apps_subtext" msgid="1764211974662012877">"{count,plural,offset:2 =0{Awekho ama-app angaphazamisa}=1{I-{app_1} ingaphazamisa}=2{I-{app_1} ne-{app_2} zingaphazamisa}=3{I-{app_1}, i-{app_2}, ne-{app_3} zingaphazamisa}one{I-{app_1}, i-{app_2}, kanye nezingu-# ezengeziwe zingaphazamisa}other{I-{app_1}, i-{app_2}, kanye nezingu-# ezengeziwe zingaphazamisa}}"</string>
+    <string name="zen_mode_apps_work_app" msgid="8528767938316361588">"<xliff:g id="APP_LABEL">%s</xliff:g> (Umsebenzi)"</string>
+    <string name="zen_mode_apps_calculating" msgid="5420121396943539286">"Iyabala…"</string>
+    <string name="zen_mode_plus_n_items" msgid="6136713354369243421">"+<xliff:g id="NUMBER">%d</xliff:g>"</string>
     <string name="zen_mode_bypassing_apps" msgid="625309443389126481">"Vumela izinhlelo zokusebenza ukubhala ngaphezulu"</string>
     <string name="zen_mode_bypassing_apps_header" msgid="60083006963906906">"Ama-app angaphazamisa"</string>
     <string name="zen_mode_bypassing_apps_add_header" msgid="3201829605075172536">"Khetha ama-app amaningi"</string>
@@ -3785,6 +3834,7 @@
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"Akukho okungaphazamisa"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"Akekho ongaphazamisa"</string>
     <string name="zen_mode_people_some" msgid="9101872681298810281">"Abantu abathile bangaphazamisa"</string>
+    <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"Abafonayo abaphindayo bangaphazamisa"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"Bonke abantu bangaphazamisa"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"Phinda abafonayo"</string>
     <string name="zen_mode_repeat_callers_title" msgid="8016699240338264781">"Vumela abashayi abaphindayo"</string>
@@ -3804,9 +3854,30 @@
     <string name="zen_mode_summary_alarms_only_by_hour" msgid="7400910210950788163">"{count,plural, =1{Shintshela kuma-alamu ihora elilodwa kuze kube {time}}one{Shintshela kuma-alamu kuphela amahora angu-# (kuze kube {time})}other{Shintshela kuma-alamu kuphela amahora angu-# (kuze kube {time})}}"</string>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Guqulela kuma-alamu kuphela kuze kube ngumhla ka-<xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="722093064250082317">"Guqulela kuhlala uphazamisa"</string>
-    <string name="zen_mode_action_change_name" msgid="766639614789907016">"Qamba kabusha"</string>
-    <string name="zen_mode_action_change_icon" msgid="6192187791750301778">"Shintsha isithonjana"</string>
-    <string name="zen_mode_icon_picker_title" msgid="6845490379143557472">"Shintsha isithonjana"</string>
+    <string name="zen_mode_rename_title" msgid="8146882272966214558">"Imodi yokuhlela"</string>
+    <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Sungula imodi"</string>
+    <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Imodi yomuntu ngamunye"</string>
+    <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Igama lemodi"</string>
+    <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Imicimbi yekhalenda"</string>
+    <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Imijikelezo yesikhathi sokulala"</string>
+    <string name="zen_mode_trigger_title_driving" msgid="7890990983453164403">"Ngenkathi ushayela"</string>
+    <string name="zen_mode_trigger_title_generic" msgid="1347753445938095789">"Amasethingi e-app"</string>
+    <string name="zen_mode_trigger_summary_settings_in_app" msgid="4860667191183702601">"Imininingwane kanye namasethingi ku-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_trigger_summary_managed_by_app" msgid="8631011868193102098">"Iphethwe yi-<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="zen_mode_confirm_disable_mode_title" msgid="7314998098582325018">"Khubaza i-<xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_disable_message" msgid="2703882646066764140">"Le modi ngeke ivuleke uma ikhutshaziwe"</string>
+    <string name="zen_mode_action_disable" msgid="3552921561331044881">"Khubaza"</string>
+    <string name="zen_mode_confirm_enable_mode_title" msgid="6020902148457106017">"Nika amandla i-<xliff:g id="MODE_NAME">%1$s</xliff:g>?"</string>
+    <string name="zen_mode_confirm_enable_message" msgid="8707142927858064775">"Le modi ingase ivuleke ngokuzenzekela ngokusekelwe kumasethingi wayo"</string>
+    <string name="zen_mode_action_enable" msgid="1161480633223176531">"Nika amandla"</string>
+    <string name="zen_mode_blurb_schedule_time" msgid="8223898702097484009">"Setha imodi elandela ishejuli ejwayelekile"</string>
+    <string name="zen_mode_blurb_schedule_calendar" msgid="382177907856065945">"Setha imodi ukuze uvumelanise nemicimbi yekhalenda uphinde umeme izimpendulo"</string>
+    <string name="zen_mode_blurb_bedtime" msgid="6155075956151013457">"Dizayina umjikelezo owehlisa umoya wokulala. Setha ama-alamu, fiphalisa isikrini, uphinde uvimbele izaziso."</string>
+    <string name="zen_mode_blurb_driving" msgid="1316054379000667305">"Yenza kubaluleke ukuphepha emgwaqeni ngokushayela okugxilile nokungenakho ukuphazamiseka"</string>
+    <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Vimba okuphazamisayo noma iziphazamiso ezivela edivayisini yakho ukuze uthole ukugxila"</string>
+    <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Qeda konke ukuphazamiseka kwimvelo ethulile"</string>
+    <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Qondanisa nomuntu siqu umuzwa wedivayisi namasethingi abasebenzisi abahlukile"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Nciphisa ukuphazamiseka ngokuvumela kuphela abantu ababalulekile nama-app ukuba afinyelele kuwe"</string>
     <string name="warning_button_text" msgid="1274234338874005639">"Isexwayiso"</string>
     <string name="suggestion_button_close" msgid="6865170855573283759">"Vala"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Thumela impendulo mayelana nale divayisi"</string>
@@ -4792,8 +4863,8 @@
     <string name="bluetooth_middle_name" msgid="3909371955137442319">"Isimo"</string>
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Ibhethri"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Iphaneli yezilungiselelo"</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Phoqelela imodi yedeskithophu"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Phoqelela imodi yedeskithophu yokuhlola esibukisweni sesibili"</string>
+    <string name="enable_desktop_mode" msgid="5644818402534562302">"Qalisa amawindi ohlelo oluvulelekile"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Nika amandla amawindi efreeform esibonisini sesibili"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Nika amandla okungashintsheki usayizi emawindini amaningi"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Ivumela izinhlelo zokusebenza ezingashintsheki usayizi ukuthi zibe emawindini amaningi"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Bhala ngaphezulu isici sokuphoqelela okumnyama"</string>
@@ -4968,7 +5039,6 @@
     <string name="default_active_sim_mobile_data" msgid="6798083892814045301">"idatha yeselula"</string>
     <string name="wifi_scan_notify_message" msgid="1331238142061476869">"Ukuze kuthuthukiswe ukuzizwela kwedivayisi, ama-app namasevisi asengaskena amanethiwekhi e-Wi-Fi noma kunini, nanoma i-Wi-Fi ivaliwe. Lokhu kungasetshenziselwa, njengesibonelo, ukuthuthukisa izakhi ezisuselwa endaweni namasevisi. Ungashintsha lokhu kumasethingi Wokuskena i-Wi-Fi."</string>
     <string name="wifi_scan_change" msgid="8438320311511852918">"Shintsha"</string>
-    <string name="preference_summary_default_combination" msgid="4643585915107796253">"<xliff:g id="STATE">%1$s</xliff:g> / <xliff:g id="NETWORKMODE">%2$s</xliff:g>"</string>
     <string name="mobile_data_connection_active" msgid="2422223108911581552">"Ixhunyiwe"</string>
     <string name="mobile_data_temp_connection_active" msgid="3430470299756236413">"Ixhume okwesikhashana"</string>
     <string name="mobile_data_temp_using" msgid="5211002380149434155">"Ukusebenzisa i-<xliff:g id="SUBNAME">%1$s</xliff:g> okwesikhashana"</string>
@@ -5000,7 +5070,7 @@
     <string name="app_pinning_main_switch_title" msgid="5465506660064032876">"Sebenzisa ukuphina i-app"</string>
     <string name="developer_options_main_switch_title" msgid="1720074589554152501">"Sebenzisa izinkinobho zikanjiniyela"</string>
     <string name="default_print_service_main_switch_title" msgid="4697133737128324036">"Sebenzisa isevisi yokuphrinta"</string>
-    <string name="multiple_users_main_switch_title" msgid="6686858308083037810">"Vumela abasebenzisi abaningi"</string>
+    <string name="multiple_users_main_switch_title" msgid="9158796544835843201">"Vumela ukushintsha komsebenzisi"</string>
     <string name="multiple_users_main_switch_keywords" msgid="4845954458094134356">"vumela, eziningi, umsebenzisi, vumela, eziningi"</string>
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"okuningi, abasebenzisi, amaphrofayela, abantu, ama-akhawunti, shintsha, okuningi"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Sebenzisa ukususa ibhagi nge-Wi-Fi"</string>
@@ -5114,8 +5184,9 @@
     <string name="dream_setup_description" msgid="7508547154038580296">"Khetha ozokubona esikrinini sakho uma ithebulethi yakho idokhiwe. Idivayisi yakho ingase isebenzise amandla engeziwe uma kusetshenziswa isilondolozi sesikrini."</string>
     <string name="customize_button_title" msgid="1110284655990203359">"Enza ngendlela oyifisayo"</string>
     <string name="customize_button_description" msgid="7440248477266126231">"Enza ngendlela oyifisayo <xliff:g id="SCREENSAVER_NAME">%1$s</xliff:g>"</string>
-    <string name="reboot_dialog_enable_freeform_support" msgid="6412591361284929149">"Ukuqalisa kabusha kuyadingeka ukunika amandla usekelo lwefomu yamahhala."</string>
-    <string name="reboot_dialog_force_desktop_mode" msgid="2021839270403432948">"Ukuqalisa kabusha kuyadingeka ukuphoqelela imodi yedeskithophu kuzibonisi zesibili."</string>
+    <string name="reboot_dialog_enable_freeform_support" msgid="3697462756493543645">"Ukuqalisa kabusha kuyadingeka ukunika amandla usekelo lwewindi lefreeform."</string>
+    <string name="reboot_dialog_override_desktop_mode" msgid="7480950772574354130">"Ukuqalisa kabusha kuyadingeka ukuze kubuyekezwe ukutholakala kwamawindi wefreeform."</string>
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display" msgid="1153621881052401924">"Ukuqalisa kabusha kuyadingeka ukuze unike amandla amawindi efreeform ezibonisini zesibili."</string>
     <string name="reboot_dialog_reboot_now" msgid="235616015988522355">"Qalisa manje"</string>
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Qalisa ngokuhamba kwesikhathi"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Umsindo Wokulalelwayo"</string>
@@ -5212,7 +5283,7 @@
     <string name="screen_flash_color_rose" msgid="1216848195972231251">"Imbali"</string>
     <string name="screen_flash_color_magenta" msgid="7726221666557102155">"I-Magenta"</string>
     <string name="screen_flash_color_violet" msgid="1279950780509029495">"I-Violet"</string>
-    <string name="color_selector_dialog_done" msgid="121253968943363376">"Kwenziwe"</string>
+    <string name="color_selector_dialog_save" msgid="199628785429085344">"Londoloza"</string>
     <string name="color_selector_dialog_cancel" msgid="8667350644753900701">"Khansela"</string>
     <string name="contrast_default" msgid="8918545965525226966">"Okuzenzakalelayo"</string>
     <string name="contrast_medium" msgid="384414510709285811">"Okuphakathi"</string>
@@ -5233,6 +5304,8 @@
     <string name="show_captions_enabled" msgid="7089043007924626">"Vuliwe"</string>
     <string name="live_caption_disabled" msgid="3562035026547887366">"Valiwe"</string>
     <string name="live_caption_enabled" msgid="5269360946200718949">"Vuliwe"</string>
+    <string name="audio_seek_bar_state_left_first" msgid="8814986910920838972">"Okulalelwayo %1$d%% kwesobunxele, %2$d%% kwesokudla"</string>
+    <string name="audio_seek_bar_state_right_first" msgid="1999368979633398876">"Okulalelwayo %1$d%% kwesokudla, %2$d%% kwesobunxele"</string>
     <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Igama ledivayisi yakho liyabonakala kuma-app owafakile. Lingase futhi libonwe ngabanye abantu lapho uxhuma kumadivayisi e-Bluetooth, uxhuma kunethiwekhi ye-Wi-Fi noma usetha i-hotspot ye-Wi-Fi."</string>
     <string name="grammatical_gender_title" msgid="8584242850477270828">"Ubulili bohlelo lolimi"</string>
     <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Khetha ubulili Bohlelo lolimi"</string>
@@ -5344,4 +5417,6 @@
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Lalela ukusakaza"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skena ikhodi ye-QR yokusakaza komsindo ukuze ulalele nge-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"Ayikwazi ukuhlela iphasiwedi ngenkathi yabelana. Ukuze ushintshe iphasiwedi, qala uvale ukwabelana ngokuqoshiwe."</string>
+    <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"Iskena sekhodi ye-QR"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"Amasethingi Okusesha"</string>
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 4680936..8cbf5dc 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1503,12 +1503,14 @@
 
     <!-- A locale list of not supporting Terms of Address. [DO NOT TRANSLATE] -->
     <string-array name="terms_of_address_unsupported_locales">
-        <item>fr-CA</item> <!-- French (Canada) -->
     </string-array>
 
     <!-- A language list of supporting Terms of Address. [DO NOT TRANSLATE] -->
     <string-array name="terms_of_address_supported_languages">
         <item>fr</item> <!-- French -->
+        <item>es</item> <!-- Spanish -->
+        <item>it</item> <!-- Italian -->
+        <item>de</item> <!-- German -->
     </string-array>
 
     <!-- Entries for private space auto lock option -->
@@ -1525,32 +1527,104 @@
         <item>2</item>
     </string-array>
 
-    <!-- TODO: b/333901673 - Get full icon list. -->
     <array name="zen_mode_icon_options" translatable="false">
-        <item>@*android:drawable/ic_zen_mode_type_bedtime</item>
-        <item>@*android:drawable/ic_zen_mode_type_driving</item>
-        <item>@*android:drawable/ic_zen_mode_type_immersive</item>
-        <item>@*android:drawable/ic_zen_mode_type_managed</item>
-        <item>@*android:drawable/ic_zen_mode_type_other</item>
+        <!-- Work/Study/Meetings -->
+        <item>@*android:drawable/ic_zen_mode_icon_work</item> <!-- Briefcase -->
+        <item>@*android:drawable/ic_zen_mode_icon_classical_building</item>
+        <item>@*android:drawable/ic_zen_mode_icon_apartment_building</item>
+        <item>@*android:drawable/ic_zen_mode_icon_speech_bubble</item>
+        <item>@*android:drawable/ic_zen_mode_icon_group_of_people</item>
+        <item>@*android:drawable/ic_zen_mode_icon_lightbulb</item>
         <item>@*android:drawable/ic_zen_mode_type_schedule_calendar</item>
+        <!-- Sports -->
+        <item>@*android:drawable/ic_zen_mode_icon_running</item>
+        <item>@*android:drawable/ic_zen_mode_icon_golf</item>
+        <item>@*android:drawable/ic_zen_mode_icon_gym</item>
+        <item>@*android:drawable/ic_zen_mode_icon_swimming</item>
+        <item>@*android:drawable/ic_zen_mode_icon_hiking</item>
+        <item>@*android:drawable/ic_zen_mode_icon_ball_sports</item>
+        <item>@*android:drawable/ic_zen_mode_icon_martial_arts</item>
+        <!-- Leisure -->
+        <item>@*android:drawable/ic_zen_mode_icon_gaming</item>
+        <item>@*android:drawable/ic_zen_mode_icon_palette</item>
+        <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_type_theater</item> <!-- Film reel -->
+        <item>@*android:drawable/ic_zen_mode_icon_book</item>
+        <!-- Wellbeing -->
+        <item>@*android:drawable/ic_zen_mode_icon_lotus_flower</item>
+        <item>@*android:drawable/ic_zen_mode_type_immersive</item>
+        <item>@*android:drawable/ic_zen_mode_icon_headphones</item>
+        <item>@*android:drawable/ic_zen_mode_icon_tv</item>
+        <!-- Other activities -->
+        <item>@*android:drawable/ic_zen_mode_icon_train</item>
+        <item>@*android:drawable/ic_zen_mode_type_driving</item> <!-- Car -->
+        <item>@*android:drawable/ic_zen_mode_icon_croissant</item>
+        <item>@*android:drawable/ic_zen_mode_icon_fork_and_knife</item>
+        <item>@*android:drawable/ic_zen_mode_icon_shopping_cart</item>
+        <item>@*android:drawable/ic_zen_mode_icon_child</item>
+        <item>@*android:drawable/ic_zen_mode_icon_animal_paw</item>
+        <!-- Generic / abstract -->
+        <item>@*android:drawable/ic_zen_mode_type_unknown</item> <!-- Star badge -->
+        <item>@*android:drawable/ic_zen_mode_type_managed</item> <!-- Two people / Supervisor -->
+        <item>@*android:drawable/ic_zen_mode_type_other</item> <!-- Star -->
+        <item>@*android:drawable/ic_zen_mode_icon_heart</item>
+        <item>@*android:drawable/ic_zen_mode_icon_house</item>
+        <item>@*android:drawable/ic_zen_mode_type_bedtime</item> <!-- Moon -->
         <item>@*android:drawable/ic_zen_mode_type_schedule_time</item>
-        <item>@*android:drawable/ic_zen_mode_type_theater</item>
-        <item>@*android:drawable/ic_zen_mode_type_unknown</item>
     </array>
 
-    <!-- TODO: b/333901673 - Complete list -->
     <!-- Descriptions of the icons in zen_mode_icon_options. Should describe the associated image
          [CHAR LIMIT=NONE] -->
     <string-array name="zen_mode_icon_options_descriptions">
-        <item>Bedtime</item>
-        <item>Driving</item>
-        <item>Immersive</item>
-        <item>Managed</item>
-        <item>Star</item>
+        <!-- Work/Study/Meetings -->
+        <item>Briefcase</item>
+        <item>Classical building</item>
+        <item>Apartment building</item>
+        <item>Speech bubble</item>
+        <item>Group of people</item>
+        <item>Lightbulb</item>
         <item>Calendar</item>
-        <item>Time</item>
-        <item>Theater</item>
-        <item>Flower</item>
+        <!-- Sports -->
+        <item>Person running</item>
+        <item>Golf</item>
+        <item>Gym dumbbell</item>
+        <item>Swimming</item>
+        <item>Person hiking</item>
+        <item>Person throwing ball</item>
+        <item>Person kicking</item>
+        <!-- Leisure -->
+        <item>Game controller</item>
+        <item>Artist color palette</item>
+        <item>Snowflake</item>
+        <item>Beach umbrella</item>
+        <item>Workshop tools</item>
+        <item>Tent</item>
+        <item>Film reel</item>
+        <item>Book</item>
+        <!-- Wellbeing -->
+        <item>Lotus flower</item>
+        <item>Person\'s mind</item>
+        <item>Headphones</item>
+        <item>TV</item>
+        <!-- Other activities -->
+        <item>Train</item>
+        <item>Car</item>
+        <item>Croissant</item>
+        <item>Fork and knife</item>
+        <item>Shopping cart</item>
+        <item>Child</item>
+        <item>Animal paw</item>
+        <!-- Generic / abstract -->
+        <item>Star badge</item>
+        <item>Two people</item>
+        <item>Star</item>
+        <item>Heart</item>
+        <item>House</item>
+        <item>Half-moon</item>
+        <item>Clock</item>
     </string-array>
 
     <!-- Packages that will not show Display over other apps permission -->
diff --git a/res/values/config.xml b/res/values/config.xml
index 4b638b2..065d28a 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -235,9 +235,6 @@
          Can be overridden for specific product builds if the target device does not support it -->
     <bool name="config_media_vibration_supported">true</bool>
 
-    <!-- Whether to show Keyboard vibration settings in the vibration and haptics screen. -->
-    <bool name="config_keyboard_vibration_supported">false</bool>
-
     <!--
         Whether or not the homepage should be powered by legacy suggestion (versus contextual cards)
         Default to true as not all devices support contextual cards.
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index d972e13..689262f 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -179,6 +179,10 @@
     <dimen name="pointer_fill_style_circle_padding">8dp</dimen>
     <dimen name="pointer_fill_style_shape_default_stroke">1dp</dimen>
     <dimen name="pointer_fill_style_shape_hovered_stroke">3dp</dimen>
+    <dimen name="pointer_stroke_style_padding">8dp</dimen>
+    <dimen name="pointer_scale_padding">8dp</dimen>
+    <item name="pointer_scale_size_start" format="float" type="dimen">1.0</item>
+    <item name="pointer_scale_size_end" format="float" type="dimen">2.5</item>
 
     <!-- RemoteAuth-->
     <dimen name="remoteauth_fragment_padding_horizontal">40dp</dimen>
@@ -496,10 +500,23 @@
     <dimen name="contrast_button_horizontal_spacing">16dp</dimen>
 
     <dimen name="audio_streams_qrcode_size">264dp</dimen>
+    <dimen name="audio_streams_qrcode_preview_size">300dp</dimen>
     <dimen name="audio_streams_qrcode_preview_radius">30dp</dimen>
+    <dimen name="audio_streams_qrcode_scanner_fragment_padding">16dp</dimen>
 
     <!-- Zen Modes -->
-    <dimen name="zen_mode_icon_list_item_size">96dp</dimen>
-    <dimen name="zen_mode_icon_list_circle_diameter">56dp</dimen>
-    <dimen name="zen_mode_icon_list_icon_size">32dp</dimen>
+    <dimen name="zen_mode_header_size">136dp</dimen>
+    <dimen name="zen_mode_header_inner_icon_size">64dp</dimen>
+    <dimen name="zen_mode_blurb_text_size">16sp</dimen>
+    <dimen name="zen_mode_icon_list_header_circle_diameter">90dp</dimen>
+    <dimen name="zen_mode_icon_list_header_icon_size">48dp</dimen>
+    <dimen name="zen_mode_icon_list_item_size">76dp</dimen>
+    <dimen name="zen_mode_icon_list_item_circle_diameter">52dp</dimen>
+    <dimen name="zen_mode_icon_list_item_icon_size">28dp</dimen>
+    <!-- For the items in the CircularIconsPreference (contacts, apps, sound channels). -->
+    <dimen name="zen_mode_circular_icon_diameter">32dp</dimen>
+    <dimen name="zen_mode_circular_icon_inner_icon_size">20dp</dimen>
+    <dimen name="zen_mode_circular_icon_margin_between">4dp</dimen>
+    <dimen name="zen_mode_circular_icon_margin_vertical">8dp</dimen>
+    <dimen name="zen_mode_circular_icon_text_size">18dp</dimen>
 </resources>
diff --git a/res/values/integers.xml b/res/values/integers.xml
index f62ccae..5631e40 100644
--- a/res/values/integers.xml
+++ b/res/values/integers.xml
@@ -36,4 +36,10 @@
     <integer name="enrollment_progress_minimum_time_display">0</integer>
     <!-- The time (in millis) to wait to collect messages in fingerprint enrollment before displaying it. -->
     <integer name="enrollment_collect_time">0</integer>
+
+    <!--  PointerIcon Settings  -->
+    <integer name="pointer_scale_seek_bar_start">0</integer>
+    <integer name="pointer_scale_seek_bar_end">3</integer>
+
+    <integer name="max_integer">2147483647</integer>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2d5a671..0fcb0d6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -78,6 +78,8 @@
 
     <!-- Content description for preview pager. [CHAR LIMIT=NONE] -->
     <string name="preview_pager_content_description">Preview</string>
+    <!-- Content description for qrcode image. [CHAR LIMIT=none]-->
+    <string name="qr_code_content_description">QR code</string>
 
     <!-- Description for the button that makes interface elements smaller. [CHAR_LIMIT=NONE] -->
     <string name="font_size_make_smaller_desc">Make smaller</string>
@@ -156,6 +158,8 @@
     <string name="bluetooth_hearing_device_settings_summary">Shortcut, hearing aid compatibility</string>
     <!-- Connected devices settings. Title for hearing aids presets. A preset is a set of hearing aid settings. User can apply different settings in different environments (e.g. Outdoor, Restaurant, Home) [CHAR LIMIT=60] [BACKUP_MESSAGE_ID=5429761844739722885] -->
     <string name="bluetooth_hearing_aids_presets">Preset</string>
+    <!-- Connected devices settings. Summary of the preference when no preset info is obtained from the remote device [CHAR LIMIT=60] -->
+    <string name="bluetooth_hearing_aids_presets_empty_list_message">There are no presets programmed by your audiologist</string>
     <!-- Message when selecting hearing aids presets failed. [CHAR LIMIT=NONE] -->
     <string name="bluetooth_hearing_aids_presets_error">Couldn\u2019t update preset</string>
     <!-- Connected devices settings. Title of the preference to show the entrance of the audio output page. It can change different types of audio are played on phone or other bluetooth devices. [CHAR LIMIT=35] -->
@@ -405,7 +409,7 @@
     <string name="desc_app_locale_selection_supported">Set the language for each app.</string>
 
     <!-- Description for the introduction to language picker activity. [CHAR LIMIT=NONE]-->
-    <string name="desc_introduction_of_language_picker">Your system, apps, and websites use the first supported language from your preferred languages.</string>
+    <string name="desc_introduction_of_language_picker">Your device, apps, and websites use the first supported language from your preferred language list.\n\nMany apps will also use the region from your preferred language to format dates, numbers, and units. To change your region, add a language, then choose your preferred region.</string>
 
     <!-- Description for the notice of language picker. [CHAR LIMIT=NONE]-->
     <string name="desc_notice_of_language_picker">To select a language for each app, go to app language settings.</string>
@@ -653,7 +657,7 @@
     <string name="location_settings_loading_app_permission_stats">Loading\u2026</string>
     <!-- Location settings footer warning text when location is on [CHAR LIMIT=NONE] -->
     <string name="location_settings_footer_general">
-        Apps with the Nearby devices permission can determine the
+        Apps with the nearby devices permission can determine the
         relative position of connected devices.
     </string>
     <!-- Location settings footer warning text when location is off [CHAR LIMIT=NONE] -->
@@ -932,7 +936,8 @@
     <string name="security_settings_fingerprint_single_face_watch_preference_summary">Face, fingerprint, and <xliff:g id="watch" example="Dani's Watch">%s</xliff:g> added</string>
     <!-- Message showing that multiple fingerprints, face, and the current watch is set up. Shown for a menu item that launches fingerprint, face,  and active unlock settings or enrollment. [CHAR LIMIT=80]-->
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary">Face, fingerprints, and <xliff:g id="watch" example="Dani's Watch">%s</xliff:g> added</string>
-
+    <!-- Description for mandatory biometrics prompt-->
+    <string name="mandatory_biometrics_prompt_description">Identity Check is on</string>
     <!-- RemoteAuth unlock enrollment and settings --><skip />
     <!-- Title shown for menu item that launches watch unlock settings. [CHAR LIMIT=40] -->
     <string name ="security_settings_remoteauth_preference_title">Remote Authenticator Unlock</string>
@@ -995,7 +1000,7 @@
 
     <!-- Biometric settings --><skip />
     <!-- Title shown for menu item that launches biometric settings. [CHAR LIMIT=66] -->
-    <string name="security_settings_biometric_preference_title">Fingerprint &amp; Face Unlock</string>
+    <string name="security_settings_biometric_preference_title">Face &amp; Fingerprint Unlock</string>
     <!-- Title shown for work menu item that launches biometric settings. [CHAR LIMIT=66] -->
     <string name="security_settings_work_biometric_preference_title">Face &amp; Fingerprint Unlock for work</string>
     <!-- Message shown in summary field of biometric settings. [CHAR LIMIT=66] -->
@@ -1369,6 +1374,12 @@
     <string name="private_space_error_screen_title">Couldn\u2019t set up a private space</string>
     <!-- Label for button to retry creating private space again on creation error. [CHAR LIMIT=30] -->
     <string name="private_space_tryagain_label">Try Again</string>
+    <!-- Label for button to exit private space setup on creation error. [CHAR LIMIT=30] -->
+    <string name="private_space_exit_label">Exit</string>
+    <!-- Description in Private space error page with a link to the Help Center page[CHAR LIMIT=NONE] -->
+    <string name="private_space_error_description">Private space isn\u2019t available.\nView possible causes</string>
+    <!-- Text in Private space error page that points to view possible error causes [CHAR LIMIT=40] -->
+    <string name="private_space_error_causes_text">View possible causes</string>
     <!-- Title for private space lock setup screen. [CHAR LIMIT=90] -->
     <string name="private_space_lockscreen_title">Choose a new lock for private space?</string>
     <!-- Summary for the private space lock setup screen. [CHAR LIMIT=NONE] -->
@@ -1853,6 +1864,10 @@
     <string name="device_details_title">Device details</string>
     <!-- Title for keyboard settings preferences. [CHAR LIMIT=50] -->
     <string name="bluetooth_device_keyboard_settings_preference_title">Keyboard settings</string>
+    <!-- Title for more settings preferences. [CHAR LIMIT=50] -->
+    <string name="bluetooth_device_more_settings_preference_title">More settings</string>
+    <!-- Title for more settings summary. [CHAR LIMIT=50] -->
+    <string name="bluetooth_device_more_settings_preference_summary">Firmware updates, about, and more</string>
     <!-- Title of the item to show device MAC address -->
     <string name="bluetooth_device_mac_address">Device\'s Bluetooth address: <xliff:g id="address">%1$s</xliff:g></string>
     <!-- Title of the items to show multuple devices MAC address [CHAR LIMIT=NONE]-->
@@ -1873,6 +1888,9 @@
     <!-- Bluetooth device details companion apps. In the confirmation dialog for removing an associated app, this is the label on the button that will complete the disassociate action. [CHAR LIMIT=80] -->
     <string name = "bluetooth_companion_app_remove_association_confirm_button">Disconnect app</string>
 
+    <!-- Title of device details screen [CHAR LIMIT=28]-->
+    <string name="device_details_more_settings">More settings</string>
+
     <!-- Bluetooth developer settings: Maximum number of connected audio devices -->
     <string name="bluetooth_max_connected_audio_devices_string">Maximum connected Bluetooth audio devices</string>
     <!-- Bluetooth developer settings: Maximum number of connected audio devices -->
@@ -1893,6 +1911,35 @@
     <!-- Nfc developer settings: The confirm button of the popup dialog. [CHAR_LIMIT=60] -->
     <string name="nfc_reboot_dialog_confirm">Restart</string>
 
+    <!-- External Display settings. When external display is enabled. [CHAR LIMIT=40] -->
+    <string name="external_display_on">On</string>
+    <!-- External Display settings. When external display is disabled. [CHAR LIMIT=40] -->
+    <string name="external_display_off">Off</string>
+    <!-- External Display settings. The title of the screen. [CHAR LIMIT=40] -->
+    <string name="external_display_settings_title">External Display</string>
+    <!-- External Display use. The title of the use preference. [CHAR LIMIT=40] -->
+    <string name="external_display_use_title">Use external display</string>
+    <!-- External Display resolution settings. The title of the screen. [CHAR LIMIT=40] -->
+    <string name="external_display_resolution_settings_title">Display resolution</string>
+    <!-- External Display settings. Text that appears when scanning for devices is finished and no nearby device was found [CHAR LIMIT=40]-->
+    <string name="external_display_not_found">External display is disconnected</string>
+    <!-- External Display settings. Rotation of the external display -->
+    <string name="external_display_rotation">Rotation</string>
+    <!-- External Display settings. Standard rotation of the external display -->
+    <string name="external_display_standard_rotation">Standard</string>
+    <!-- External Display settings. 90 rotation of the external display -->
+    <string name="external_display_rotation_90">90°</string>
+    <!-- External Display settings. 180 rotation of the external display -->
+    <string name="external_display_rotation_180">180°</string>
+    <!-- External Display settings. 180 rotation of the external display -->
+    <string name="external_display_rotation_270">270°</string>
+    <!-- External Display settings. Footer title -->
+    <string name="external_display_change_resolution_footer_title">Changing rotation or resolution may stop any apps that are currently running</string>
+    <!-- External Display settings. No Displays footer title -->
+    <string name="external_display_not_found_footer_title">Your device must be connected to an external display to mirror your screen</string>
+    <!-- External Display settings. More resolution options -->
+    <string name="external_display_more_options_title">More options</string>
+
     <!-- Wifi Display settings. The title of the screen. [CHAR LIMIT=40] -->
     <string name="wifi_display_settings_title">Cast</string>
     <!-- Wifi Display settings. The keywords of the setting. [CHAR LIMIT=NONE] -->
@@ -2753,6 +2800,9 @@
     <string name="brightness">Brightness level</string>
     <!-- Sound & display settings screen, setting option name to enable adaptive brightness [CHAR LIMIT=30] -->
     <string name="auto_brightness_title">Adaptive brightness</string>
+    <!-- Note: The content description title is only applied in adaptive brightness detailed page in setup wizard flow, to make the consistency with other accessibility suw pages. -->
+    <!-- ContentDescription title for adaptive brightness detailed page footer. [CHAR LIMIT=60] -->
+    <string name="auto_brightness_content_description_title">About adaptive brightness</string>
     <!-- Description about the feature adaptive brightness -->
     <string name="auto_brightness_description">Your screen brightness will automatically adjust to your environment and activities. You can move the slider manually to help adaptive brightness learn your preferences.</string>
     <!-- Setting option summary when adaptive brightness is on [CHAR LIMIT=NONE] -->
@@ -4402,10 +4452,6 @@
     <string name="keyboard_a11y_category">Accessibility</string>
     <!-- Title for the 'physical keyboard' settings screen. [CHAR LIMIT=35] -->
     <string name="physical_keyboard_title">Physical keyboard</string>
-    <!-- Title for the 'show virtual keyboard' preference switch. [CHAR LIMIT=35] -->
-    <string name="show_ime">Use on-screen keyboard</string>
-    <!-- Summary text for the 'add virtual keyboard' preference sub-screen. [CHAR LIMIT=100] -->
-    <string name="show_ime_summary">Keep it on screen while physical keyboard is active</string>
     <!-- Title for the 'Bounce keys' preference switch. [CHAR LIMIT=35] -->
     <string name="bounce_keys">Bounce keys</string>
     <!-- Summary text for the 'Bounce keys' preference sub-screen. [CHAR LIMIT=300] -->
@@ -4418,6 +4464,10 @@
     <string name="sticky_keys">Sticky keys</string>
     <!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=300] -->
     <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>
+    <!-- Summary text for the accessibility setting 'Mouse keys' preference sub-screen. [CHAR LIMIT=100] -->
+    <string name="mouse_keys_summary">Use the physical keyboard to control the mouse.</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] -->
@@ -4450,10 +4500,10 @@
     <string name="trackpad_reverse_scrolling_title">Reverse scrolling</string>
     <!-- Summary text for 'Reverse scrolling' [CHAR LIMIT=60] -->
     <string name="trackpad_reverse_scrolling_summary">Content moves up when you scroll down</string>
-    <!-- Title text for 'Bottom-right tap' [CHAR LIMIT=35] -->
-    <string name="trackpad_bottom_right_tap_title">Bottom-right tap</string>
-    <!-- Summary text for 'Bottom-right tap' [CHAR LIMIT=60] -->
-    <string name="trackpad_bottom_right_tap_summary">Tap the bottom right corner of the touchpad for more options</string>
+    <!-- Title text for 'Bottom-right click', a setting that allows the user to right-click by pressing in the bottom-right corner of a touchpad. [CHAR LIMIT=35] -->
+    <string name="trackpad_bottom_right_tap_title">Bottom-right click</string>
+    <!-- Summary text for 'Bottom-right click', a setting that allows the user to right-click by pressing in the bottom-right corner of a touchpad [CHAR LIMIT=60] -->
+    <string name="trackpad_bottom_right_tap_summary">Click in the bottom right corner of the touchpad for more options</string>
     <!-- Title text for 'Pointer speed'. [CHAR LIMIT=35] -->
     <string name="trackpad_pointer_speed">Pointer speed</string>
     <!-- Title text for mouse pointer fill style. [CHAR LIMIT=35] -->
@@ -4468,6 +4518,14 @@
     <string name="pointer_fill_style_pink_button">Change pointer fill style to pink</string>
     <!-- Content description for blue pointer fill style. [CHAR LIMIT=60] -->
     <string name="pointer_fill_style_blue_button">Change pointer fill style to blue</string>
+    <!-- Title text for mouse pointer stroke style. [CHAR LIMIT=35] -->
+    <string name="pointer_stroke_style">Pointer stroke style</string>
+    <!-- White value for pointer stroke style. [CHAR LIMIT=35] -->
+    <string name="pointer_stroke_style_name_white">White</string>
+    <!-- Black value pointer stroke style. [CHAR LIMIT=35] -->
+    <string name="pointer_stroke_style_name_black">Black</string>
+    <!-- None value for pointer stroke style. [CHAR LIMIT=35] -->
+    <string name="pointer_stroke_style_name_none">None</string>
     <!-- Title for the button to trigger the 'touch gesture' education. [CHAR LIMIT=35] -->
     <string name="trackpad_touch_gesture">Learn touchpad gestures</string>
     <!-- Search keywords for "touchpad" -->
@@ -4571,6 +4629,12 @@
 
     <!-- On Languages & input settings screen, setting summary.  Setting for mouse pointer speed. [CHAR LIMIT=35] -->
     <string name="pointer_speed">Pointer speed</string>
+    <!-- Setting for mouse pointer scale. [CHAR LIMIT=35] -->
+    <string name="pointer_scale">Pointer scale</string>
+    <!-- Content description for decreasing pointer scale. [CHAR LIMIT=35] -->
+    <string name="pointer_scale_decrease_content_description">Decrease pointer scale</string>
+    <!-- Setting for mouse pointer scale. [CHAR LIMIT=35] -->
+    <string name="pointer_scale_increase_content_description">Increase pointer scale</string>
 
     <!-- On Languages & input settings screen, heading. Inside the "Languages & input settings" screen, this is the header for settings that relate to game controller devices. [CHAR LIMIT=40] -->
     <string name="game_controller_settings_category">Game Controller</string>
@@ -4841,8 +4905,10 @@
     <string name="accessibility_magnification_triple_tap_warning_negative_button">Cancel</string>
     <!-- Title for the accessibility preference screen to enable screen magnification settings. [CHAR LIMIT=35] -->
     <string name="accessibility_magnification_service_settings_title">Magnification settings</string>
-    <!-- Title for accessibility magnification preference where user can move the magnification area by dragging one finger instead of two. [CHAR LIMIT=60] -->
-    <string name="accessibility_magnification_one_finger_panning_title">One-finger panning</string>
+    <!-- Title for accessibility magnification preference where user can move the magnification area by dragging one finger. [CHAR LIMIT=60] -->
+    <string name="accessibility_magnification_one_finger_panning_title">Move magnifier with 1 finger</string>
+    <!-- Summary for accessibility magnification one finger panning feature where user can move the magnification area by dragging one finger. [CHAR LIMIT=60] -->
+    <string name="accessibility_magnification_one_finger_panning_summary">Drag 1 finger to move around the screen</string>
     <!-- Summary for accessibility magnification preference when one finger panning feature is turned on.
          The feature when enabled allows user to move the magnification area by dragging one finger instead of two. [CHAR LIMIT=60] -->
     <string name="accessibility_magnification_one_finger_panning_summary_on">Move the magnification area by dragging one finger.</string>
@@ -4906,6 +4972,30 @@
         {4,number,integer}. Lift finger to stop magnification
         ]]>
     </string>
+    <!-- Instructions on the accessibility preference screen teaching the user how to interact with screen magnification when one finger panning feature is turned off. [CHAR LIMIT=none] -->
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_off">
+        <![CDATA[
+        <b>To zoom in:</b><br/>
+        {0,number,integer}. Use shortcut to start magnification<br/>
+        {1,number,integer}. Tap the screen<br/>
+        {2,number,integer}. Drag 2 fingers to move around the screen<br/>
+        {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/>
+        {4,number,integer}. Use shortcut to stop magnification<br/><br/>
+        You can also zoom in temporarily and more.
+        ]]>
+    </string>
+    <!-- Instructions on the accessibility preference screen teaching the user how to interact with screen magnification when one finger panning feature is turned on. [CHAR LIMIT=none] -->
+    <string name="accessibility_screen_magnification_summary_one_finger_panning_on">
+        <![CDATA[
+        <b>To zoom in:</b><br/>
+        {0,number,integer}. Use shortcut to start magnification<br/>
+        {1,number,integer}. Tap the screen<br/>
+        {2,number,integer}. Drag 1 or 2 fingers to move around the screen<br/>
+        {3,number,integer}. Pinch with 2 fingers to adjust zoom<br/>
+        {4,number,integer}. Use shortcut to stop magnification<br/><br/>
+        You can also zoom in temporarily and more.
+        ]]>
+    </string>
     <!-- Summary for the accessibility preference screen to enable screen magnification via the nav bar. [CHAR LIMIT=none] -->
     <string name="accessibility_screen_magnification_navbar_summary">When magnification is turned on, you can zoom in on your screen.\n\n<b>To zoom</b>, start magnification, then tap anywhere on the screen.\n<ul><li>Drag 2 or more fingers to scroll</li>\n<li>Pinch 2 or more fingers to adjust zoom</li></ul>\n\n<b>To zoom temporarily</b>, start magnification, then touch &amp; hold anywhere on the screen.\n<ul><li>Drag to move around the screen</li>\n<li>Lift finger to zoom out</li></ul>\n\nYou can’t zoom in on the keyboard or navigation bar.</string>
     <!-- Accessibility label for paging indicator in accessibility tutorial page. [CHAR LIMIT=NONE] -->
@@ -4980,10 +5070,6 @@
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture">Accessibility gesture</string>
     <!-- Summary for software shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <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 software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation is enabled. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture">Swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
-    <!-- Summary for software shortcut in gesture mode in accessibility edit shortcut dialog while using gesture navigation and touch exploration are enabled [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback">Swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</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.}
@@ -5013,8 +5099,6 @@
     <string name="accessibility_shortcut_hardware_keyword">volume keys</string>
     <!-- Summary for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_hardware">Press &amp; hold both volume keys</string>
-    <!-- Title for two finger double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap">Two-finger double-tap screen</string>
     <!-- Title for 2-finger double tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap">%1$d-finger double tap</string>
     <!-- Summary for 2-finger double tap shortcut in accessibility edit shortcut screen. [CHAR LIMIT=NONE] -->
@@ -5025,14 +5109,8 @@
     <string name="accessibility_shortcut_edit_screen_summary_triple_tap">Quickly tap the screen %1$d times. This may slow down your device.</string>
     <!-- 2-finger double tap is shown as part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_two_finger_double_tap_keyword">%1$d-finger double tap</string>
-    <!-- Summary for two finger double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap">Quickly tap screen {0,number,integer} times with two fingers</string>
-    <!-- Title for triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_title_triple_tap">Triple-tap screen</string>
     <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_triple_tap_keyword">triple tap</string>
-    <!-- Summary for triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_shortcut_edit_dialog_summary_triple_tap">Quickly tap screen {0,number,integer} times. This shortcut may slow down your device</string>
     <!-- Title for the accessibility edit shortcut dialog to save the preference when user clicks it. [CHAR LIMIT=20] -->
     <string name="accessibility_shortcut_edit_dialog_title_advance">Advanced</string>
     <!-- Summary text appearing on the accessibility preference screen to enable screen magnification from the nav bar when the feature is enabled, but the accessibility button is not configured correctly for the feature to be used [CHAR LIMIT=none] -->
@@ -5391,19 +5469,21 @@
     <!-- Title for the preference to show a tile for a particular feature in the Quick Settings pane. [CHAR LIMIT=NONE] -->
     <string name="enable_quick_setting">Show in Quick Settings</string>
     <!-- Title shown for deuteranomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_deuteranomaly_title">Red-green</string>
+    <string name="daltonizer_mode_deuteranomaly_title">Red-green, green weak</string>
     <!-- Title shown for protanomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_protanomaly_title">Red-green</string>
+    <string name="daltonizer_mode_protanomaly_title">Red-green, red weak</string>
     <!-- Title shown for tritanomaly (blue-yellow color blindness) [CHAR LIMIT=45] -->
     <string name="daltonizer_mode_tritanomaly_title">Blue-yellow</string>
     <!-- Title shown for grayscale [CHAR LIMIT=45] -->
     <string name="daltonizer_mode_grayscale_title">Grayscale</string>
     <!-- Title shown for settings that controls color correction saturation level [CHAR LIMIT=45] -->
     <string name="daltonizer_saturation_title">Intensity</string>
+    <!-- The summary shown for settings that controls color correction intensity/saturation level. It is shown when intensity slider is grayed out and is not usable and it explains why it's not usable to the user. [CHAR LIMIT=NONE] -->
+    <string name="daltonizer_saturation_unavailable_summary">Unavailable for grayscale mode or when color correction is disabled</string>
     <!-- Summary shown for deuteranomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_deuteranomaly_summary">Green weak, deuteranomaly</string>
+    <string name="daltonizer_mode_deuteranomaly_summary">Deuteranomaly</string>
     <!-- Summary shown for protanomaly (red-green color blindness) [CHAR LIMIT=45] -->
-    <string name="daltonizer_mode_protanomaly_summary">Red weak, protanomaly</string>
+    <string name="daltonizer_mode_protanomaly_summary">Protanomaly</string>
     <!-- Summary shown for tritanomaly (blue-yellow color blindness) [CHAR LIMIT=45] -->
     <string name="daltonizer_mode_tritanomaly_summary">Tritanomaly</string>
 
@@ -5520,12 +5600,6 @@
     <string name="color_magenta">Magenta</string>
     <!-- Label for custom colors, formats as a HTML color. -->
     <string name="color_custom" translatable="false">#%1$02X%2$02X%3$02X</string>
-
-    <!-- Title for a warning about security implications of enabling an accessibility
-         service. [CHAR LIMIT=NONE] -->
-    <string name="enable_service_title">Allow
-         <xliff:g id="service" example="TalkBack">%1$s</xliff:g> to have full control of your
-        device?</string>
     <!-- Title for the list of capabilities of an accessibility service. -->
     <string name="capabilities_list_title"><xliff:g id="service" example="TalkBack">%1$s</xliff:g>
         needs to:</string>
@@ -5535,35 +5609,6 @@
     <string name="touch_filtered_warning">Because an app is obscuring a permission request, Settings
         can’t verify your response.</string>
 
-    <!-- Warning that explains that accessibility services have a lot of access to user data [CHAR LIMIT=NONE] -->
-    <string name="accessibility_service_warning"><xliff:g id="service"
-        example="TalkBack">%1$s</xliff:g> is requesting full control of this device. The service
-        can read the screen and act on behalf of users with accessibility needs.
-        This level of control is not appropriate for most apps.
-    </string>
-
-    <!-- Warning description that explains that it's appropriate for accessibility
-         services to have full control to help users with accessibility needs. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_service_warning_description">Full control is appropriate for apps
-        that help you with accessibility needs, but not for most apps.
-    </string>
-
-    <!-- Title for the screen control in accessibility dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_service_screen_control_title">View and control screen</string>
-
-    <!-- Description for the screen control in accessibility dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_service_screen_control_description">It can read all content on the
-        screen and display content over other apps.
-    </string>
-
-    <!-- Title for the action perform in accessibility dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_service_action_perform_title">View and perform actions</string>
-
-    <!-- Description for the action perform in accessibility dialog. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_service_action_perform_description">It can track your interactions
-        with an app or a hardware sensor, and interact with apps on your behalf.
-    </string>
-
     <!-- String for the allow button in accessibility permission dialog. [CHAR LIMIT=10] -->
     <string name="accessibility_dialog_button_allow">Allow</string>
     <!-- String for the deny button in accessibility permission dialog. [CHAR LIMIT=10] -->
@@ -7268,6 +7313,8 @@
     <string name="help_url_install_certificate" translatable="false"></string>
     <!-- Help URL, Tap & pay [DO NOT TRANSLATE] -->
     <string name="help_url_nfc_payment" translatable="false"></string>
+    <!-- Help URL, External display [DO NOT TRANSLATE] -->
+    <string name="help_url_external_display" translatable="false"></string>
     <!-- Help URL, Remote display [DO NOT TRANSLATE] -->
     <string name="help_url_remote_display" translatable="false"></string>
     <!-- Help URL, Face [DO NOT TRANSLATE] -->
@@ -7906,6 +7953,18 @@
     <!-- Sound: Footer hyperlink text to launch the Connected devices settings page. [CHAR LIMIT=NONE]-->
     <string name="spatial_audio_footer_learn_more_text">Connected devices settings</string>
 
+    <!-- Bluetooth device details: spatial audio multi-toggle title. [CHAR LIMIT=20]-->
+    <string name="spatial_audio_multi_toggle_title">Spatial Audio</string>
+
+    <!-- Bluetooth device details: spatial audio is off. [CHAR LIMIT=20]-->
+    <string name="spatial_audio_multi_toggle_off">Off</string>
+
+    <!-- Bluetooth device details: spatial audio is on. [CHAR LIMIT=20]-->
+    <string name="spatial_audio_multi_toggle_on">Off</string>
+
+    <!-- Bluetooth device details: head tracking is on. [CHAR LIMIT=20]-->
+    <string name="spatial_audio_multi_toggle_head_tracking_on">Off</string>
+
     <!-- 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,
@@ -7921,15 +7980,85 @@
     <!-- Zen Modes: Title for the Modes option and associated settings page. [CHAR LIMIT=50]-->
     <string name="zen_modes_list_title">Priority Modes</string>
 
+    <!-- Zen Modes: Intro text describing the feature. [CHAR LIMIT=NONE]-->
+    <string name="zen_modes_list_intro">Minimize distractions and take control of your attention with modes for sleep, work, driving, and everything in between.</string>
+
     <!-- Zen Modes: Caption of the "add a mode" item in the modes list -->
-    <string name="zen_modes_add_mode">Add a mode</string>
+    <string name="zen_modes_add_mode">Create your own mode</string>
 
     <!-- Zen Modes: Summary for the Do not Disturb option and associated settings page. [CHAR LIMIT=240]-->
     <string name="zen_mode_settings_summary">Only get notified by important people and apps</string>
 
+    <!-- Zen Modes: Option to add an automatic schedule for a mode. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_select_schedule">Set a schedule</string>
+
+    <!-- Priority Modes: Title of the dialog used to choose an automatic schedule for a mode. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_select_schedule_title">Schedule based on</string>
+
+    <!-- Priority Modes: Option to choose a time-based schedule for a mode. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_select_schedule_time">Day and time</string>
+    <!-- Priority Modes: Example text for the option to choose a time-based schedule for a mode. [CHAR_LIMIT=60] -->
+    <string name="zen_mode_select_schedule_time_example">\"9 AM - 5 PM weekdays\"</string>
+
+    <!-- Priority Modes: Option to choose a calendar-events-based schedule for a mode. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_select_schedule_calendar">Calendar events</string>
+
+    <!-- Priority 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}
+        }
+    </string>
+
+    <!-- Priority 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}
+        }
+    </string>
+
+    <!-- Priority Modes: Short text that indicates that a mode is currently on (active). [CHAR_LIMIT=10] -->
+    <string name="zen_mode_active_text">ON</string>
+
+    <!-- Priority Modes: Format string for the "current state + trigger description summary for rules in the list. [CHAR_LIMIT=10] -->
+    <string name="zen_mode_format_status_and_trigger" translatable="false"><xliff:g id="current_status" example="ON">%1$s</xliff:g> • <xliff:g id="trigger_description" example="Mon-Fri, 23:00-7:00">%2$s</xliff:g></string>
+
+    <!-- Priority Modes: Indicates that a mode is disabled and needs to be configured. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_disabled_needs_setup">Not set</string>
+
+    <!-- Priority Modes: Indicates that a mode is disabled by the user. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_disabled_by_user">Disabled</string>
+
+    <!-- Priority Modes: Title of the "Create a mode" dialog, to choose the mode type. [CHAR_LIMIT=30] -->
+    <string name="zen_mode_new_title">Create a mode</string>
+
+    <!-- Priority Modes: Option to add a "custom" mode in the "Add a mode" dialog. [CHAR_LIMIT=20] -->
+    <string name="zen_mode_new_option_custom">Custom</string>
+
+    <!-- Priority Modes: Caption of the button to turn on a mode [CHAR LIMIT=20] -->
+    <string name="zen_mode_action_activate">Turn on now</string>
+
+    <!-- Priority Modes: Caption of the button to turn off a currently active mode [CHAR LIMIT=20] -->
+    <string name="zen_mode_action_deactivate">Turn off</string>
+
+    <!-- Priority Modes: Text to display if a mode isn't found [CHAR LIMIT=40] -->
+    <string name="zen_mode_not_found_text">Mode not found</string>
+
     <!-- Subtitle for the Do not Disturb slice. [CHAR LIMIT=50]-->
     <string name="zen_mode_slice_subtitle">Limit interruptions</string>
 
+    <!-- Priority Modes: Summary on a page prompting the user to set up/enable a mode [CHAR_LIMIT=NONE] -->
+    <string name="zen_mode_setup_page_summary">Block interruptions and distractions</string>
+
+    <!-- Priority Modes: Label on a button prompting the user to set up the mode with the given name. [CHAR_LIMIT=40] -->
+    <string name="zen_mode_setup_button_label">Set up <xliff:g id="mode" example="My Mode">%1$s</xliff:g></string>
+
     <!-- Do not disturb: Title for the Do not Disturb dialog to turn on Do not disturb. [CHAR LIMIT=50]-->
     <string name="zen_mode_settings_turn_on_dialog_title">Turn on Do Not Disturb</string>
 
@@ -7942,9 +8071,18 @@
     <!--  Do not disturb: Title for dialog that allows users to delete DND rules/schedules[CHAR LIMIT=40] -->
     <string name="zen_mode_delete_automatic_rules">Delete schedules</string>
 
-    <!--  Do not disturb: Delete text button presented in a dialog to confirm the user would like to delete the selected DND rules. [CHAR LIMIT=30] -->
+    <!-- Do not disturb: Delete text button presented in a dialog to confirm the user would like to delete the selected DND rules. [CHAR LIMIT=30] -->
     <string name="zen_mode_schedule_delete">Delete</string>
 
+    <!-- Priority Modes: Menu option for renaming a mode on its configuration page [CHAR LIMIT=40] -->
+    <string name="zen_mode_menu_rename_mode">Rename</string>
+
+    <!-- Do not disturb: Menu option for deleting a mode on its configuration page [CHAR LIMIT=40] -->
+    <string name="zen_mode_menu_delete_mode">Delete</string>
+
+    <!-- Do not disturb: Confirmation dialog asking the user whether they would like to delete the named mode [CHAR LIMIT: 40] -->
+    <string name="zen_mode_delete_mode_confirmation">Delete \"<xliff:g id="mode" example="My Schedule">%1$s</xliff:g>\" mode?</string>
+
     <!--  Do not disturb: Edit label for button that allows user to edit the dnd schedule name. [CHAR LIMIT=30] -->
     <string name="zen_mode_rule_name_edit">Edit</string>
 
@@ -7955,19 +8093,17 @@
     <string name="zen_mode_automatic_rule_settings_page_title">Schedule</string>
 
     <!-- Do not disturb: Title for settings section describing when the rule turns on automatically [CHAR LIMIT=30] -->
-    <string name="zen_mode_automatic_trigger_title">Turn on automatically</string>
+    <string name="zen_mode_automatic_trigger_title">When to turn on automatically</string>
 
-    <!-- Do not disturb: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
-    <string name="zen_mode_set_calendar_title">Add a calendar</string>
-
-    <!-- Do not disturb: Link text prompting a user to click through to setting a calendar [CHAR LIMIT=40] -->
-    <string name="zen_mode_set_calendar_link">Use your calendar</string>
-
-    <!-- Do not disturb: Title on the page where users choose a calendar to determine the schedule for an automatically-triggered DND rule. [CHAR LIMIT=30] -->
-    <string name="zen_mode_set_calendar_category_title">Schedule</string>
+    <!-- Priority Modes: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
+    <string name="zen_mode_set_calendar_title">Event schedule</string>
+    <!-- Priority Modes: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
+    <string name="zen_mode_set_calendar_which_calendar">Turn on during events for</string>
+    <!-- Priority Modes: Title prompting a user to choose a calendar to use for an automatic rule [CHAR LIMIT=30] -->
+    <string name="zen_mode_set_calendar_which_reply">Where invite reply is</string>
 
     <!-- Do not disturb: Title prompting a user to set a time-based schedule to use for an automatic rule [CHAR LIMIT=30] -->
-    <string name="zen_mode_set_schedule_title">Set a schedule</string>
+    <string name="zen_mode_set_schedule_title">Time schedule</string>
 
     <!-- Do not disturb: Link text prompting a user to click through to setting a time-based schedule [CHAR LIMIT=40] -->
     <string name="zen_mode_set_schedule_link">Schedule</string>
@@ -8002,11 +8138,19 @@
     <!--  Do not disturb: Subtitle for the Visual signals option to toggle on/off visual signals/alerts when the screen is on/when screen is off. [CHAR LIMIT=30] -->
     <string name="zen_mode_visual_signals_settings_subtitle">Allow visual signals</string>
 
-    <!-- Do not disturb: mode page section title [CHAR LIMIT=80] -->
-    <string name="mode_interruption_filter_title">Notifications that can reach you</string>
-    <!-- Do not disturb: mode page section title [CHAR LIMIT=80] -->
-    <string name="mode_device_effects_title">Additional actions</string>
+    <!-- Priority Modes: mode page section title [CHAR LIMIT=80] -->
+    <string name="mode_interruption_filter_title">Notification filters</string>
+    <!-- Priority Modes: mode page section title [CHAR LIMIT=80] -->
+    <string name="mode_device_effects_title">More settings</string>
 
+    <!-- Summary for the Sound Do not Disturb option when DND isn't currently on. [CHAR LIMIT=NONE]-->
+    <string name="modes_sound_summary_off">
+        {count, plural,
+        =0    {Off}
+        =1    {Off / 1 mode can turn on automatically}
+        other {Off / # modes can turn on automatically}
+        }
+    </string>
 
     <!-- Do not disturb: display settings title [CHAR LIMIT=80] -->
     <string name="mode_display_settings_title">Display settings</string>
@@ -8047,7 +8191,10 @@
         other {{effect_1}, {effect_2}, and # more}
         }
     </string>
-
+    <!-- Modes: setting for a mode to allow all notifications and sounds through -->
+    <string name="zen_mode_allow_all_notifications">Allow all notifications</string>
+    <!-- Modes: subtext when a mode is allowing all notifications and sounds (i.e. no filtering) -->
+    <string name="zen_mode_all_notifications_allowed">People, apps, and sounds can interrupt</string>
 
     <!-- Do not disturb: restrict notifications settings title [CHAR LIMIT=80] -->
     <string name="zen_mode_restrict_notifications_title">Display options for filtered
@@ -8369,6 +8516,9 @@
     <!-- Configure Notifications: Title for the notification badging option. [CHAR LIMIT=50 BACKUP_MESSAGE_ID=5125022693565388760] -->
     <string name="notification_badging_title">Notification dot on app icon</string>
 
+    <!-- App Info > Notifications: Title for section where notifications bundles can be configured [CHAR LIMIT=80]-->
+    <string name="notification_bundles">Notification bundles</string>
+
     <!-- Configure Notifications: Title for the notification bubbles option. [CHAR LIMIT=60] -->
     <string name="notification_bubbles_title">Bubbles</string>
     <!-- Title for the toggle shown on the app-level bubbles page  [CHAR LIMIT=60] -->
@@ -8708,9 +8858,13 @@
     <string name="nls_feature_reply_summary">It can reply to messages and take action on buttons in notifications, including snoozing or dismissing notifications and answering calls.</string>
     <string name="nls_feature_settings_title">Change settings</string>
     <string name="nls_feature_settings_summary">It can turn Do Not Disturb on or off and change related settings.</string>
+    <string name="nls_feature_modes_settings_summary">It can manage and activate Priority Modes, and change related settings.</string>
     <string name="notification_listener_disable_warning_summary">
         If you turn off notification access for <xliff:g id="notification_listener_name">%1$s</xliff:g>, Do Not Disturb access may also be turned off.
     </string>
+    <string name="notification_listener_disable_modes_warning_summary">
+        If you turn off notification access for <xliff:g id="notification_listener_name">%1$s</xliff:g>, Priority Modes access may also be turned off.
+    </string>
     <string name="notification_listener_disable_warning_confirm">Turn off</string>
     <string name="notification_listener_disable_warning_cancel">Cancel</string>
     <string name="notif_type_ongoing">Real-time</string>
@@ -8735,9 +8889,10 @@
     <string name="notif_listener_more_settings_desc">More settings are available inside this app</string>
 
     <!-- Title for Polite Notifications setting  [CHAR LIMIT=45]-->
-    <string name="notification_polite_title">Adaptive Notifications</string>
-    <string name="notification_polite_main_control_title">Use adaptive notifications</string>
-    <string name="notification_polite_description">When you get many notifications within a short time, your phone will lower volume and minimize pop-ups on screen for up to two minutes. Calls, alarms, and priority conversations still vibrate, make a sound, or show up on the screen, and all notifications are easy to find when you pull down from the top of the screen.</string>
+    <string name="notification_polite_title">Notification cooldown</string>
+    <string name="notification_polite_main_control_title">Use notification cooldown</string>
+    <string name="notification_polite_description">When you receive many notifications within a short time, your device will lower its volume and minimize alerts for up to 2 minutes. Calls, alarms, and priority conversations are not affected.
+        \n\nNotifications received during the cooldown can be found by pulling down from the top of the screen.</string>
     <string name="notification_polite_work">Apply to work profiles</string>
     <string name="notification_polite_work_summary">Apply to work profile apps</string>
 
@@ -8886,6 +9041,15 @@
     <!-- Sound & notification > Do Not Disturb access > Text to display when the list is empty. [CHAR LIMIT=NONE] -->
     <string name="zen_access_empty_text">No installed apps have requested Do Not Disturb access</string>
 
+    <!-- Special App Access: Title for managing Priority Modes access option. [CHAR LIMIT=40] -->
+    <string name="manage_zen_modes_access_title">Priority Modes access</string>
+
+    <!-- Button title that grants 'Priority Modes' permission to an app [CHAR_LIMIT=60]-->
+    <string name="zen_modes_access_detail_switch">Allow Priority Modes access</string>
+
+    <!-- Special App Access > Do Not Disturb access > Text to display when the list is empty. [CHAR LIMIT=NONE] -->
+    <string name="zen_modes_access_empty_text">No installed apps have requested Priority Modes access</string>
+
     <!-- [CHAR LIMIT=NONE] Text appearing when app notifications are off -->
     <string name="app_notifications_off_desc">You haven\'t allowed notifications from this app</string>
 
@@ -8907,6 +9071,9 @@
     <!-- [CHAR LIMIT=NONE] App notification settings: no channels -->
     <string name="no_channels">This app has not posted any notifications</string>
 
+    <!-- [CHAR LIMIT=NONE] App notification settings: has channels, but hasn't sent notifications recently -->
+    <string name="no_recent_channels">Show unused categories</string>
+
     <!-- [CHAR LIMIT=NONE] App notification settings: link to app notification settings-->
     <string name="app_settings_link">Additional settings in the app</string>
 
@@ -9074,6 +9241,8 @@
     <!-- [CHAR LIMIT=120] Zen mode settings: Title for conversations settings page -->
     <string name="zen_mode_conversations_title">Conversations</string>
     <string name="zen_mode_from_all_conversations">All conversations</string>
+    <!-- [CHAR LIMIT=40] Version of zen_mode_from_all_conversations when it is a non-first member of a list -->
+    <string name="zen_mode_from_all_conversations_second">all conversations</string>
     <string name="zen_mode_from_important_conversations">Priority conversations</string>
     <!-- [CHAR LIMIT=40] Version of the above for "priority conversations" when it is a non-first member of a list -->
     <string name="zen_mode_from_important_conversations_second">priority conversations</string>
@@ -9212,8 +9381,6 @@
     <string name="zen_mode_apps_priority_apps">Selected apps</string>
     <!-- [CHAR LIMIT=60] Zen mode settings: no apps will be able to bypass dnd -->
     <string name="zen_mode_apps_none_apps">None</string>
-    <!-- [CHAR LIMIT=60] Zen mode settings: all apps will be able to bypass dnd -->
-    <string name="zen_mode_apps_all_apps">All</string>
     <!-- [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
@@ -9224,6 +9391,12 @@
             other {{app_1}, {app_2}, and # more can interrupt}
         }
     </string>
+    <!-- Priority Modes: Entry in the "apps that can bypass DND" list that corresponds to a work profile app (e.g. "Chrome (Work)" [CHAR LIMIT=15]. -->
+    <string name="zen_mode_apps_work_app"><xliff:g id="app_label" example="Chrome">%s</xliff:g> (Work)</string>
+    <!-- Text displayed (for a brief time) while the list of bypassing apps is being fetched. Will be replaced by a zen_mode_apps_subtext. [CHAR_LIMIT=60] -->
+    <string name="zen_mode_apps_calculating">Calculating\u2026</string>
+    <!-- Priority Modes: Format for a string displayed when there are more items (e.g. apps, contacts) that can be shown. For example, we show (A)(B)(C)(+5), where this string represents the "+5" value. Needs to be as compact as possible, since it will be drawn in a really small area. [CHAR_LIMIT=4] -->
+    <string name="zen_mode_plus_n_items">+<xliff:g id="number" example="42">%d</xliff:g></string>
 
     <!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND -->
     <string name="zen_mode_bypassing_apps">Allow apps to override</string>
@@ -9280,6 +9453,8 @@
     <!-- [CHAR LIMIT=120] Zen mode settings: Summary for people category -->
     <string name="zen_mode_people_some">Some people can interrupt</string>
     <!-- [CHAR LIMIT=120] Zen mode settings: Summary for people category -->
+    <string name="zen_mode_people_repeat_callers">Repeat callers can interrupt</string>
+    <!-- [CHAR LIMIT=120] Zen mode settings: Summary for people category -->
     <string name="zen_mode_people_all">All people can interrupt</string>
 
     <!-- [CHAR LIMIT=50] Zen mode settings: Repeat callers option -->
@@ -9325,14 +9500,77 @@
     <!-- [CHAR LIMIT=NONE] Zen mode summary spoken when changing mode by voice: Turn on all notifications. -->
     <string name="zen_mode_summary_always">Change to always interrupt</string>
 
-    <!-- [CHAR LIMIT=20] Caption of the action button to change the name of a mode. -->
-    <string name="zen_mode_action_change_name">Rename</string>
+    <!-- Priority Modes: Title for the "rename mode" screen [CHAR LIMIT=20] -->
+    <string name="zen_mode_rename_title">Edit mode</string>
 
-    <!-- [CHAR LIMIT=20] Caption of the action button to change the icon of a mode. -->
-    <string name="zen_mode_action_change_icon">Change icon</string>
+    <!-- Priority Modes: Title for the "add mode" screen [CHAR LIMIT=20] -->
+    <string name="zen_mode_new_custom_title">Create a mode</string>
 
-    <!-- [CHAR LIMIT=40] Zen mode settings: Title for the "choose mode icon" screen -->
-    <string name="zen_mode_icon_picker_title">Change icon</string>
+    <!-- Priority Modes: Default name for new custom modes [CHAR LIMIT=30] -->
+    <string name="zen_mode_new_custom_default_name">Custom mode</string>
+
+    <!-- Priority Modes: Hint for the EditText for editing a mode's name [CHAR LIMIT=30] -->
+    <string name="zen_mode_edit_name_hint">Mode name</string>
+
+    <!-- Priority Modes: Trigger title for modes of type SCHEDULE_CALENDAR. [CHAR LIMIT=30] -->
+    <string name="zen_mode_trigger_title_schedule_calendar">Calendar events</string>
+    <!-- Priority Modes: Trigger title for modes of type BEDTIME. [CHAR LIMIT=30] -->
+    <string name="zen_mode_trigger_title_bedtime">Bedtime routine</string>
+    <!-- Priority Modes: Trigger title for modes of type DRIVING. [CHAR LIMIT=30] -->
+    <string name="zen_mode_trigger_title_driving">While driving</string>
+    <!-- Priority Modes: Generic trigger title for modes of other types [CHAR LIMIT=30] -->
+    <string name="zen_mode_trigger_title_generic">App settings</string>
+    <!-- Priority Modes: Generic trigger summary for modes where the owner app did not provide a triggerDescription but did provide a configurationActivity to call [CHAR LIMIT=60] -->
+    <string name="zen_mode_trigger_summary_settings_in_app">Info and settings in <xliff:g id="app_name" example="The Awesome App">%1$s</xliff:g></string>
+    <!-- Priority Modes: Generic trigger summary for modes where the owner app did not provide neither a triggerDescription nor a configurationActivity to call [CHAR LIMIT=60] -->
+    <string name="zen_mode_trigger_summary_managed_by_app">Managed by <xliff:g id="app_name" example="The Awesome App">%1$s</xliff:g></string>
+
+    <!-- Priority Modes: Title of the confirmation dialog for disabling an enabled mode [CHAR LIMIT=20] -->
+    <string name="zen_mode_confirm_disable_mode_title">Disable <xliff:g id="mode_name" example="Driving Mode">%1$s</xliff:g>?</string>
+    <!-- Priority Modes: Message body of the confirmation dialog for disabling an enabled mode [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_confirm_disable_message">This mode will never turn on when disabled</string>
+    <!-- Priority Modes: Button to disable a mode [CHAR LIMIT=20] -->
+    <string name="zen_mode_action_disable">Disable</string>
+    <!-- Priority Modes: Title of the confirmation dialog for enabling a disabled mode [CHAR LIMIT=20] -->
+    <string name="zen_mode_confirm_enable_mode_title">Enable <xliff:g id="mode_name" example="Driving Mode">%1$s</xliff:g>?</string>
+    <!-- Priority Modes: Message body of the confirmation dialog for enabling a disabled mode [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_confirm_enable_message">This mode may turn on automatically based on its settings</string>
+    <!-- Priority Modes: Button to disable a mode [CHAR LIMIT=20] -->
+    <string name="zen_mode_action_enable">Enable</string>
+
+    <!-- Priority Modes: Blurb for a mode that activates during a fixed time schedule (e.g. 9:00-17:00). [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_schedule_time">Set a mode that follows a regular schedule</string>
+    <!-- Priority Modes: Blurb for a mode that activates during calendar events. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_schedule_calendar">Set a mode to sync with calendar events and invite responses</string>
+    <!-- Priority Modes: Blurb for a mode of type BEDTIME. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_bedtime">Design a calming sleep routine. Set alarms, dim the screen, and block notifications.</string>
+    <!-- Priority Modes: Blurb for a mode of type DRIVING. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_driving">Prioritize safety on the road for a focused and distraction-free drive</string>
+    <!-- Priority Modes: Blurb for a mode of type IMMERSIVE. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_immersive">Block distractions or interruptions from your device to gain focus</string>
+    <!-- Priority Modes: Blurb for a mode of type THEATER. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_theater">Eliminate all distractions for a quiet environment</string>
+    <!-- Priority Modes: Blurb for a mode of type MANAGED. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_managed">Personalize device experiences and settings for different users</string>
+    <!-- Priority Modes: Blurb for modes that are not of a specific type (OTHER, UNKNOWN). [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_blurb_generic">Minimize interruptions by only allowing important people and apps to reach you</string>
+
+    <!-- Priority Modes: Inspirational text for a mode that activates during a fixed time schedule (e.g. 9:00-17:00). [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_schedule_time">Set a mode that follows a regular schedule</string>
+    <!-- Priority Modes: Inspirational text for a mode that activates during calendar events. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_schedule_calendar">Keep your device in sync with your day’s events</string>
+    <!-- Priority Modes: Inspirational text for a mode of type BEDTIME. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_bedtime">Wake up feeling like 100%</string>
+    <!-- Priority Modes: Inspirational text for a mode of type DRIVING. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_driving">Put safety first while on the road</string>
+    <!-- Priority Modes: Inspirational text for a mode of type IMMERSIVE. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_immersive">Gain focus to get in the zone</string>
+    <!-- Priority Modes: Inspirational text for a mode of type THEATER. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_theater">For moments when courtesy counts</string>
+    <!-- Priority Modes: Inspirational text for a mode of type MANAGED. [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_managed">Guided usage to help you stay in good hands</string>
+    <!-- Priority Modes: Inspirational text for modes that are not of a specific type (OTHER, UNKNOWN). [CHAR LIMIT=NONE] -->
+    <string name="zen_mode_inspiration_generic">Take control of your attention</string>
 
     <!-- Content description for help icon button [CHAR LIMIT=20] -->
     <string name="warning_button_text">Warning</string>
@@ -9933,6 +10171,18 @@
     <!-- Zen mode access settings - summary for warning dialog when revoking access [CHAR LIMIT=NONE] -->
     <string name="zen_access_revoke_warning_dialog_summary">All Do Not Disturb rules created by this app will be removed.</string>
 
+    <!-- Priority modes access settings - title for warning dialog when enabling access [CHAR LIMIT=NONE] -->
+    <string name="zen_modes_access_warning_dialog_title">Allow access to Priority Modes for <xliff:g id="app" example="Tasker">%1$s</xliff:g>?</string>
+
+    <!-- Priority modes access settings - summary for warning dialog when enabling access [CHAR LIMIT=NONE] -->
+    <string name="zen_modes_access_warning_dialog_summary">The app will be able to turn on/off Do Not Disturb, manage and activate Priority Modes, and make changes to related settings.</string>
+
+    <!-- Priority modes access settings - title for warning dialog when revoking access [CHAR LIMIT=NONE] -->
+    <string name="zen_modes_access_revoke_warning_dialog_title">Revoke access Priority Modes for <xliff:g id="app" example="Tasker">%1$s</xliff:g>?</string>
+
+    <!-- Priority modes access settings - summary for warning dialog when revoking access [CHAR LIMIT=NONE] -->
+    <string name="zen_modes_access_revoke_warning_dialog_summary">All modes created by this app will be removed.</string>
+
     <!-- Ignore battery optimizations on label [CHAR LIMIT=30] -->
     <string name="ignore_optimizations_on">Don\u2019t optimize</string>
 
@@ -12091,10 +12341,12 @@
     <!-- Default title for the settings panel [CHAR LIMIT=NONE] -->
     <string name="settings_panel_title">Settings Panel</string>
 
-    <!-- UI debug setting: force desktop mode [CHAR LIMIT=50] -->
-    <string name="force_desktop_mode">Force desktop mode</string>
-    <!-- UI debug setting: force desktop mode summary [CHAR LIMIT=NONE] -->
-    <string name="force_desktop_mode_summary">Force experimental desktop mode on secondary displays</string>
+    <!-- Title for a toggle that enables freeform windows. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=50] -->
+    <string name="enable_desktop_mode">Enable freeform windows</string>
+
+    <!-- Title for a toggle that enables freeform windows on secondary display. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=50] -->
+    <string name="enable_desktop_mode_on_secondary_display">Enable freeform windows on secondary display</string>
+
     <!-- UI debug setting: enable non-resizables in multi window [CHAR LIMIT=60] -->
     <string name="enable_non_resizable_multi_window">Enable non-resizable in multi window</string>
     <!-- UI debug setting: enable non-resizables in multi window summary [CHAR LIMIT=NONE] -->
@@ -12549,9 +12801,6 @@
     <!-- Provider Model: Link text to bring the user to "scanning settings" screen. [CHAR LIMIT=NONE]-->
     <string name="wifi_scan_change">Change</string>
 
-    <!-- Summary text separator for preferences including a short description
-         (eg. "Connected / 5G"). [CHAR LIMIT=50] -->
-    <string name="preference_summary_default_combination"><xliff:g id="state" example="Connected">%1$s</xliff:g> / <xliff:g id="networkMode" example="LTE">%2$s</xliff:g></string>
     <!-- Provider Model:
          Summary indicating that a SIM has an active mobile data connection [CHAR LIMIT=50] -->
     <string name="mobile_data_connection_active">Connected</string>
@@ -12627,7 +12876,7 @@
     <string name="default_print_service_main_switch_title">Use print service</string>
 
     <!-- Title for multiple users main switch. [CHAR LIMIT=50] -->
-    <string name="multiple_users_main_switch_title">Allow multiple users</string>
+    <string name="multiple_users_main_switch_title">Allow user switch</string>
     <!-- Search keywords for the "Allow Multiple Users" section in Multiple Users Screen. [CHAR LIMIT=NONE] -->
     <string name="multiple_users_main_switch_keywords">allow, multiple, user, permit, many</string>
     <!-- Search keywords for the Users Screen. [CHAR LIMIT=NONE] -->
@@ -13056,14 +13305,12 @@
     <!-- The content description for accessibility tools of the customize button. It specifies which screensaver the user is customizing [CHAR LIMIT=NONE] -->
     <string name="customize_button_description">Customize <xliff:g id="screensaver_name" example="Art Gallery">%1$s</xliff:g></string>
 
-    <!-- Dialog body text used to explain a reboot is required after enabling freeform support for
-    it to work [CHAR LIMIT=none] -->
-    <string name="reboot_dialog_enable_freeform_support">A reboot is required to enable freeform
-    support.</string>
-    <!-- Dialog body text used to explain a reboot is required after forcing desktop mode on
-    secondary dislays. [CHAR LIMIT=none] -->
-    <string name="reboot_dialog_force_desktop_mode">A reboot is required to force desktop mode on
-    secondary displays.</string>
+    <!-- Dialog body text used to explain a reboot is required after enabling freeform window support for it to work. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=none] -->
+    <string name="reboot_dialog_enable_freeform_support">A reboot is required to enable freeform window support.</string>
+    <!-- Dialog body text used to explain a reboot is required after updating availability of freeform windows. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=none] -->
+    <string name="reboot_dialog_override_desktop_mode">A reboot is required to update availability of freeform windows.</string>
+    <!-- Dialog body text used to explain a reboot is required after enabling freeform windows on secondary displays. Freeform windows enables users to freely arrange and resize overlapping apps. [CHAR LIMIT=none] -->
+    <string name="reboot_dialog_enable_desktop_mode_on_secondary_display">A reboot is required to enable freeform windows on secondary displays.</string>
     <!-- Text on the dialog button to reboot the device now [CHAR LIMIT=50] -->
     <string name="reboot_dialog_reboot_now">Reboot now</string>
     <!-- Text on the dialog button to reboot the device later [CHAR LIMIT=50] -->
@@ -13294,7 +13541,7 @@
     <!-- Label of the color option show in the summary of screen flash preference. [CHAR LIMIT=60] -->
     <string name="screen_flash_color_violet">Violet</string>
     <!-- Button to save the selection in screen flash color selection dialog. [CHAR LIMIT=20] -->
-    <string name="color_selector_dialog_done">Done</string>
+    <string name="color_selector_dialog_save">Save</string>
     <!-- Button to close the dialog without saving in screen flash color selection dialog. [CHAR LIMIT=20] -->
     <string name="color_selector_dialog_cancel">Cancel</string>
 
@@ -13344,6 +13591,10 @@
     <string name="live_caption_disabled">Off</string>
     <!-- Summary of the Live Caption enabled state. -->
     <string name="live_caption_enabled">On</string>
+    <!-- State description for the Audio Balance seek bar, with left reported before right. -->
+    <string name="audio_seek_bar_state_left_first">Audio %1$d%% left, %2$d%% right</string>
+    <!-- State description for the Audio Balance seek bar, with right reported before left. -->
+    <string name="audio_seek_bar_state_right_first">Audio %1$d%% right, %2$d%% left</string>
 
     <!--  Warning text about the visibility of device name. [CHAR LIMIT=NONE] -->
     <string name="about_phone_device_name_warning">Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot.</string>
@@ -13584,8 +13835,13 @@
     <string name="audio_streams_main_page_qr_code_scanner_summary">Scan an audio stream QR code to listen with <xliff:g example="LE headset" id="device_name">%1$s</xliff:g></string>
     <!-- Le audio streams password dialog  [CHAR LIMIT=NONE] -->
     <string name="audio_streams_main_page_password_dialog_cannot_edit">Can\u0027t edit password while sharing. To change the password, first turn off audio sharing.</string>
+    <!-- Text for audio sharing qrcode scanner [CHAR LIMIT=none]-->
+    <string name="audio_streams_qr_code_scanner_label">QR code scanner</string>
 
 
     <!-- url for learning more about bluetooth audio sharing -->
     <string name="help_url_audio_sharing" translatable="false"></string>
+
+    <!-- Text for Search bar of Settings home screen [CHAR LIMIT=34] -->
+    <string name="homepage_search">Search Settings</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 0bd0406..c02378e 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -955,11 +955,16 @@
         <item name="biometricsEnrollProgressHelpWithTalkback">@color/udfps_enroll_progress_help_with_talkback</item>
     </style>
 
-    <style name="ScreenLockPasswordHintTextFontStyle">
+    <style name="ScreenLockPasswordHintTextFontStyleError">
         <item name="android:textColor">?android:attr/colorError</item>
         <item name="android:fontFamily">google-sans-text</item>
     </style>
 
+    <style name="ScreenLockPasswordHintTextFontStyle">
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
+        <item name="android:fontFamily">google-sans-text</item>
+    </style>
+
     <style name="PrivateSpaceSetupTextFontStyle" parent="@android:style/TextAppearance.DeviceDefault">
         <item name="android:textColor">?android:attr/textColorPrimary</item>
         <item name="android:fontFamily">google-sans-text</item>
@@ -982,14 +987,15 @@
     </style>
 
     <style name="PrivateSpaceBulletPointTextFontStyle" parent="@style/PrivateSpaceSetupTextFontStyle">
-        <item name="android:paddingLeft">16dp</item>
+        <item name="android:paddingStart">16dp</item>
         <item name="android:textSize">16sp</item>
+        <item name="android:textAlignment">viewStart</item>
     </style>
 
     <style name="PrivateSpaceBulletPointIconStyle">
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:layout_alignParentLeft">true</item>
+        <item name="android:layout_alignParentStart">true</item>
         <item name="android:layout_alignParentTop">true</item>
     </style>
 
diff --git a/res/xml/accessibility_daltonizer_settings.xml b/res/xml/accessibility_daltonizer_settings.xml
index 1f77030..db96167 100644
--- a/res/xml/accessibility_daltonizer_settings.xml
+++ b/res/xml/accessibility_daltonizer_settings.xml
@@ -32,24 +32,32 @@
         android:key="daltonizer_mode_deuteranomaly"
         android:persistent="false"
         android:summary="@string/daltonizer_mode_deuteranomaly_summary"
-        android:title="@string/daltonizer_mode_deuteranomaly_title" />
+        android:title="@string/daltonizer_mode_deuteranomaly_title"
+        settings:titleMaxLines="@integer/max_integer"
+        settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
 
     <com.android.settingslib.widget.SelectorWithWidgetPreference
         android:key="daltonizer_mode_protanomaly"
         android:persistent="false"
         android:summary="@string/daltonizer_mode_protanomaly_summary"
-        android:title="@string/daltonizer_mode_protanomaly_title" />
+        android:title="@string/daltonizer_mode_protanomaly_title"
+        settings:titleMaxLines="@integer/max_integer"
+        settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
 
     <com.android.settingslib.widget.SelectorWithWidgetPreference
         android:key="daltonizer_mode_tritanomaly"
         android:persistent="false"
         android:summary="@string/daltonizer_mode_tritanomaly_summary"
-        android:title="@string/daltonizer_mode_tritanomaly_title" />
+        android:title="@string/daltonizer_mode_tritanomaly_title"
+        settings:titleMaxLines="@integer/max_integer"
+        settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
 
     <com.android.settingslib.widget.SelectorWithWidgetPreference
         android:key="daltonizer_mode_grayscale"
         android:persistent="false"
-        android:title="@string/daltonizer_mode_grayscale_title" />
+        android:title="@string/daltonizer_mode_grayscale_title"
+        settings:titleMaxLines="@integer/max_integer"
+        settings:controller="com.android.settings.accessibility.DaltonizerRadioButtonPreferenceController" />
 
     <com.android.settings.widget.SeekBarPreference
         android:key="daltonizer_saturation"
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index f96a375..1eee0cb 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -50,11 +50,22 @@
         settings:controller="com.android.settings.notification.app.BubbleSummaryPreferenceController">
     </Preference>
 
+    <!-- Bundles added here -->
+    <PreferenceCategory
+        android:key="bundles"
+        android:title="@string/notification_bundles"
+        android:visibility="gone" />
+
     <!-- Channels/Channel groups added here -->
     <PreferenceCategory
         android:key="channels"
         android:layout="@layout/empty_view" />
 
+    <Preference
+        android:key="more"
+        android:title="@string/no_recent_channels"
+        android:icon="@drawable/ic_expand"/>
+
     <!-- Importance toggle -->
     <com.android.settingslib.RestrictedSwitchPreference
         android:key="allow_sound"
diff --git a/res/xml/bluetooth_audio_streams_dialog.xml b/res/xml/bluetooth_audio_streams_dialog.xml
index 8b20a14..d2b3933 100644
--- a/res/xml/bluetooth_audio_streams_dialog.xml
+++ b/res/xml/bluetooth_audio_streams_dialog.xml
@@ -45,6 +45,7 @@
             <TextView
                 android:id="@+id/dialog_title"
                 android:textAppearance="@android:style/TextAppearance.DeviceDefault.Headline"
+                android:textColor="?android:attr/textColorPrimary"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
@@ -54,6 +55,7 @@
             <TextView
                 android:id="@+id/dialog_subtitle"
                 android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
+                android:textColor="?android:attr/textColorSecondary"
                 android:textStyle="bold"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -65,6 +67,7 @@
             <TextView
                 android:id="@+id/dialog_subtitle_2"
                 android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
+                android:textColor="?android:attr/textColorSecondary"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="15dp"
diff --git a/res/xml/bluetooth_device_details_fragment.xml b/res/xml/bluetooth_device_details_fragment.xml
index 91f73a7..f2e9e73 100644
--- a/res/xml/bluetooth_device_details_fragment.xml
+++ b/res/xml/bluetooth_device_details_fragment.xml
@@ -27,6 +27,13 @@
         settings:searchable="false"/>
 
     <com.android.settingslib.widget.LayoutPreference
+        android:key="general_bluetooth_device_header"
+        android:layout="@layout/general_bt_entity_header"
+        android:selectable="false"
+        settings:allowDividerBelow="true"
+        settings:searchable="false"/>
+
+    <com.android.settingslib.widget.LayoutPreference
         android:key="advanced_bluetooth_device_header"
         android:layout="@layout/advanced_bt_entity_header"
         android:selectable="false"
diff --git a/res/xml/bluetooth_device_more_settings_fragment.xml b/res/xml/bluetooth_device_more_settings_fragment.xml
new file mode 100644
index 0000000..4fb4aca
--- /dev/null
+++ b/res/xml/bluetooth_device_more_settings_fragment.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:key="bluetooth_device_more_settings_screen"
+    android:title="@string/device_details_more_settings">
+
+    <PreferenceCategory
+        android:key="bluetooth_profiles"/>
+</PreferenceScreen>
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index b673a083..1e5b241 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -135,6 +135,15 @@
             settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"
         />
 
+        <com.android.settingslib.RestrictedPreference
+            android:key="modes_notifications"
+            android:order="18"
+            android:title="@string/zen_modes_list_title"
+            settings:useAdminDisabledSummary="true"
+            android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
+            settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"
+        />
+
         <SwitchPreferenceCompat
             android:key="lock_screen_show_only_unseen_notifs"
             android:order="19"
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 866a529..9032849 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -507,6 +507,11 @@
             android:title="@string/show_key_presses"
             android:summary="@string/show_key_presses_summary" />
 
+        <SwitchPreference
+            android:key="touchpad_visualizer"
+            android:title="@string/touchpad_visualizer"
+            android:summary="@string/touchpad_visualizer_summary" />
+
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -738,14 +743,16 @@
             android:summary="@string/force_resizable_activities_summary" />
 
         <SwitchPreferenceCompat
+            android:key="override_desktop_mode_features"
+            android:title="@string/enable_desktop_mode" />
+
+        <SwitchPreferenceCompat
             android:key="enable_freeform_support"
-            android:title="@string/enable_freeform_support"
-            android:summary="@string/enable_freeform_support_summary" />
+            android:title="@string/enable_freeform_support" />
 
         <SwitchPreferenceCompat
             android:key="force_desktop_mode_on_external_displays"
-            android:title="@string/force_desktop_mode"
-            android:summary="@string/force_desktop_mode_summary" />
+            android:title="@string/enable_desktop_mode_on_secondary_display"/>
 
         <SwitchPreferenceCompat
             android:key="enable_non_resizable_multi_window"
diff --git a/res/xml/external_display_resolution_settings.xml b/res/xml/external_display_resolution_settings.xml
new file mode 100644
index 0000000..6ac6b1a
--- /dev/null
+++ b/res/xml/external_display_resolution_settings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:title="@string/external_display_resolution_settings_title">
+</PreferenceScreen>
diff --git a/res/xml/external_display_settings.xml b/res/xml/external_display_settings.xml
new file mode 100644
index 0000000..e4dc5bb
--- /dev/null
+++ b/res/xml/external_display_settings.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/external_display_settings_title">
+</PreferenceScreen>
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 167f9d9..4613cb0 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -18,7 +18,8 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/languages_settings">
+    android:title="@string/languages_settings"
+    android:key="languages_settings">
     <PreferenceCategory
         android:key="languages_category"
         android:title="@string/locale_picker_category_title">
@@ -68,4 +69,4 @@
             android:fragment="com.android.settings.tts.TextToSpeechSettings"
             settings:searchable="false"/>
     </PreferenceCategory>
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/languages.xml b/res/xml/languages.xml
index 844b7fa..d478aa1 100644
--- a/res/xml/languages.xml
+++ b/res/xml/languages.xml
@@ -18,7 +18,8 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/language_picker_title">
+    android:title="@string/language_picker_title"
+    android:key="system_languages">
 
     <com.android.settingslib.widget.TopIntroPreference
         android:title="@string/desc_introduction_of_language_picker"
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index eb9f442..4f16e12 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -85,18 +85,17 @@
             android:summary="@string/auto_data_switch_summary"
             settings:controller="com.android.settings.network.telephony.AutoDataSwitchPreferenceController"/>
 
-        <com.android.settingslib.RestrictedSwitchPreference
+        <!-- Settings search is handled by RoamingSearchItem. -->
+        <com.android.settings.spa.preference.ComposePreference
             android:key="button_roaming_key"
-            android:title="@string/roaming"
-            android:persistent="false"
-            android:summaryOn="@string/roaming_enable"
-            android:summaryOff="@string/roaming_disable"
-            settings:userRestriction="no_data_roaming"
+            settings:searchable="false"
             settings:controller="com.android.settings.network.telephony.RoamingPreferenceController"/>
 
+        <!-- Settings search is handled by DataUsageSearchItem. -->
         <Preference
             android:key="data_usage_summary"
             android:title="@string/app_cellular_data_usage"
+            settings:searchable="false"
             settings:controller="com.android.settings.network.telephony.DataUsagePreferenceController"/>
 
         <com.android.settings.datausage.BillingCyclePreference
@@ -116,10 +115,12 @@
             android:selectable="false"
             settings:searchable="false"/>
 
+        <!-- Settings search is handled by MmsMessageSearchItem. -->
         <SwitchPreferenceCompat
             android:key="mms_message"
             android:title="@string/mms_message_title"
             android:summary="@string/mms_message_summary"
+            settings:searchable="false"
             settings:controller="com.android.settings.network.telephony.MmsMessagePreferenceController"/>
 
         <SwitchPreferenceCompat
@@ -153,6 +154,7 @@
             android:summary="@string/contact_discovery_opt_in_summary"
             settings:controller="com.android.settings.network.telephony.ContactDiscoveryPreferenceController"/>
 
+        <!-- Settings search is handled by PreferredNetworkModeSearchItem. -->
         <ListPreference
             android:key="preferred_network_mode_key"
             android:title="@string/preferred_network_mode_title"
@@ -160,8 +162,10 @@
             android:entries="@array/preferred_network_mode_choices"
             android:entryValues="@array/preferred_network_mode_values"
             android:dialogTitle="@string/preferred_network_mode_dialogtitle"
+            settings:searchable="false"
             settings:controller="com.android.settings.network.telephony.PreferredNetworkModePreferenceController"/>
 
+        <!-- Settings search is handled by EnabledNetworkModeSearchItem. -->
         <ListPreference
             android:key="enabled_networks_key"
             android:title="@string/preferred_network_mode_title"
@@ -169,14 +173,14 @@
             android:entries="@array/enabled_networks_choices"
             android:entryValues="@array/enabled_networks_values"
             android:dialogTitle="@string/preferred_network_mode_dialogtitle"
+            settings:searchable="false"
             settings:controller="com.android.settings.network.telephony.EnabledNetworkModePreferenceController"/>
 
+        <!-- Settings search is handled by CarrierSettingsVersionSearchItem. -->
         <Preference
             android:key="carrier_settings_version_key"
             android:title="@string/carrier_settings_version"
-            android:enabled="false"
-            android:shouldDisableView="false"
-            android:selectable="false"
+            settings:searchable="false"
             settings:controller="com.android.settings.network.telephony.CarrierSettingsVersionPreferenceController"
             settings:enableCopying="true"/>
 
@@ -203,10 +207,12 @@
             android:title="@string/call_category"
             settings:controller="com.android.settings.network.telephony.CallingPreferenceCategoryController">
 
+            <!-- Settings search is handled by WifiCallingSearchItem. -->
             <Preference
                 android:key="wifi_calling"
                 android:title="@string/wifi_calling_settings_title"
                 android:summary="@string/wifi_calling_summary"
+                settings:searchable="false"
                 settings:controller="com.android.settings.network.telephony.WifiCallingPreferenceController">
                 <intent android:action="android.intent.action.MAIN"
                         android:targetPackage="com.android.settings"
@@ -295,10 +301,10 @@
             settings:controller=
                 "com.android.settings.network.telephony.NullAlgorithmsPreferenceController"/>
 
+        <!-- Settings search is handled by NrAdvancedCallingSearchItem. -->
         <com.android.settings.spa.preference.ComposePreference
             android:key="nr_advanced_calling"
-            android:title="@string/nr_advanced_calling_title"
-            settings:keywords="@string/keywords_nr_advanced_calling"
+            settings:searchable="false"
             settings:controller="com.android.settings.network.telephony.NrAdvancedCallingPreferenceController"/>
     </PreferenceCategory>
 
diff --git a/res/xml/modes_calls_settings.xml b/res/xml/modes_calls_settings.xml
index f2ba7f1..b564020 100644
--- a/res/xml/modes_calls_settings.xml
+++ b/res/xml/modes_calls_settings.xml
@@ -24,14 +24,21 @@
 
     <PreferenceCategory
         android:key="zen_mode_settings_category_calls"
-        android:title="@string/zen_mode_calls_header"
-        settings:allowDividerBelow="true">
+        android:title="@string/zen_mode_calls_header">
     </PreferenceCategory>
 
+    <com.android.settings.applications.SpacePreference
+        android:key="hearing_aid_space_layout"
+        android:layout_height="16dp"/>
+
     <!-- Repeat callers -->
     <SwitchPreferenceCompat
         android:key="zen_mode_repeat_callers"
-        android:title="@string/zen_mode_repeat_callers_title"
-        settings:allowDividerAbove="true"/>
+        android:title="@string/zen_mode_repeat_callers_title" />
 
+    <com.android.settingslib.widget.FooterPreference
+        android:key="info_footer"
+        android:title="@string/zen_mode_calls_footer"
+        android:selectable="false"
+        settings:searchable="false"/>
 </PreferenceScreen>
diff --git a/res/xml/modes_display_settings.xml b/res/xml/modes_display_settings.xml
index 53268ec..98db7b8 100644
--- a/res/xml/modes_display_settings.xml
+++ b/res/xml/modes_display_settings.xml
@@ -24,22 +24,27 @@
         android:title="@string/mode_display_options_section">
         <Preference
                 android:key="notification_visibility"
-                android:title="@string/zen_mode_restrict_notifications_title" />
+                android:title="@string/zen_mode_restrict_notifications_title"
+                android:icon="@drawable/ic_zen_mode_category_display" />
         <SwitchPreferenceCompat
                 android:key="effect_greyscale"
                 android:title="@string/mode_grayscale_title"
-                android:summary="@string/mode_grayscale_summary"/>
+                android:summary="@string/mode_grayscale_summary"
+                android:icon="@drawable/ic_zen_mode_display_grayscale" />
         <SwitchPreferenceCompat
                 android:key="effect_aod"
                 android:title="@string/mode_aod_title"
-                android:summary="@string/mode_aod_summary"/>
+                android:summary="@string/mode_aod_summary"
+                android:icon="@drawable/ic_zen_mode_display_aod" />
         <SwitchPreferenceCompat
                 android:key="effect_wallpaper"
                 android:title="@string/mode_wallpaper_title"
-                android:summary="@string/mode_wallpaper_summary"/>
+                android:summary="@string/mode_wallpaper_summary"
+                android:icon="@drawable/ic_zen_mode_display_wallpaper" />
         <SwitchPreferenceCompat
                 android:key="effect_dark_theme"
                 android:title="@string/mode_dark_theme_title"
-                android:summary="@string/mode_dark_theme_summary"/>
+                android:summary="@string/mode_dark_theme_summary"
+                android:icon="@drawable/ic_zen_mode_display_dark_theme" />
     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/modes_icon_picker.xml b/res/xml/modes_edit_name_icon.xml
similarity index 71%
rename from res/xml/modes_icon_picker.xml
rename to res/xml/modes_edit_name_icon.xml
index cb0ff30..2109c77 100644
--- a/res/xml/modes_icon_picker.xml
+++ b/res/xml/modes_edit_name_icon.xml
@@ -18,20 +18,30 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:key="zen_mode_icon_picker_page"
+    android:key="zen_mode_edit_name_icon"
     settings:searchable="false"
-    android:title="@string/zen_mode_icon_picker_title">
+    android:title="@string/zen_mode_rename_title">
 
     <com.android.settingslib.widget.LayoutPreference
-        android:key="current_icon"
+        android:key="chosen_icon"
         android:layout="@layout/settings_entity_header" />
 
     <com.android.settings.applications.SpacePreference
         android:layout_height="16dp" />
 
     <com.android.settingslib.widget.LayoutPreference
+        android:key="name"
+        android:layout="@layout/modes_edit_name" />
+
+    <com.android.settings.applications.SpacePreference
+        android:layout_height="32dp" />
+
+    <com.android.settingslib.widget.LayoutPreference
         android:key="icon_list"
         android:selectable="false"
         android:layout="@layout/modes_icon_list"/>
 
+    <com.android.settingslib.widget.LayoutPreference
+        android:key="done"
+        android:layout="@layout/modes_edit_done_button" />
 </PreferenceScreen>
diff --git a/res/xml/modes_list_settings.xml b/res/xml/modes_list_settings.xml
index 8207af0..5c67218 100644
--- a/res/xml/modes_list_settings.xml
+++ b/res/xml/modes_list_settings.xml
@@ -20,11 +20,12 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/zen_modes_list_title">
 
-    <!-- TODO: b/333682392 - add strings for summary as appropriate -->
+    <com.android.settingslib.widget.TopIntroPreference
+        android:title="@string/zen_modes_list_intro" />
 
     <PreferenceCategory
         android:key="zen_modes_list">
-        <!-- Preferences leading to rules are added in this PreferenceCategory. -->
+        <!-- Preferences leading to individual mode pages are added in this PreferenceCategory. -->
     </PreferenceCategory>
 
     <Preference
diff --git a/res/xml/modes_messages_settings.xml b/res/xml/modes_messages_settings.xml
index d4aee3d..b87de0b 100644
--- a/res/xml/modes_messages_settings.xml
+++ b/res/xml/modes_messages_settings.xml
@@ -26,4 +26,10 @@
         android:key="zen_mode_settings_category_messages"
         android:title="@string/zen_mode_messages_header">
     </PreferenceCategory>
+
+    <com.android.settingslib.widget.FooterPreference
+        android:key="info_footer"
+        android:title="@string/zen_mode_messages_footer"
+        android:selectable="false"
+        settings:searchable="false"/>
 </PreferenceScreen>
diff --git a/res/xml/modes_people_settings.xml b/res/xml/modes_people_settings.xml
index 136a357..af292ad 100644
--- a/res/xml/modes_people_settings.xml
+++ b/res/xml/modes_people_settings.xml
@@ -17,6 +17,7 @@
 
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/zen_category_people" >
 
    <!-- Calls & Messages -->
@@ -26,10 +27,18 @@
 
       <Preference
           android:key="zen_mode_people_messages"
-          android:title="@string/zen_mode_messages_title"/>
+          android:title="@string/zen_mode_messages_title"
+          android:icon="@drawable/ic_zen_mode_people_messages" />
 
       <Preference
           android:key="zen_mode_people_calls"
-          android:title="@string/zen_mode_calls_title"/>
+          android:title="@string/zen_mode_calls_title"
+          android:icon="@drawable/ic_zen_mode_people_calls" />
    </PreferenceCategory>
+
+   <com.android.settingslib.widget.FooterPreference
+       android:key="info_footer"
+       android:title="@string/zen_mode_people_footer"
+       android:selectable="false"
+       settings:searchable="false"/>
 </PreferenceScreen>
diff --git a/res/xml/modes_rule_settings.xml b/res/xml/modes_rule_settings.xml
index cf090be..4f9b685 100644
--- a/res/xml/modes_rule_settings.xml
+++ b/res/xml/modes_rule_settings.xml
@@ -23,37 +23,59 @@
             android:key="header"
             android:layout="@layout/settings_entity_header" />
 
+    <com.android.settings.applications.SpacePreference
+        android:layout_height="16dp" />
+
+    <com.android.settings.notification.modes.ZenModeBlurbPreference
+        android:key="mode_blurb" />
+
+    <com.android.settings.applications.SpacePreference
+        android:layout_height="8dp" />
+
     <com.android.settingslib.widget.LayoutPreference
             android:key="activate"
             android:selectable="false"
             android:layout="@layout/modes_activation_button"/>
 
-    <com.android.settingslib.widget.ActionButtonsPreference
-        android:key="actions"
-        android:selectable="true" />
-
-    <PreferenceCategory
-            android:title="@string/mode_interruption_filter_title"
-            android:key="modes_filters">
-        <Preference
-                android:key="zen_mode_people"
-                android:title="@string/zen_category_people"/>
-
-        <Preference
-            android:key="zen_mode_apps"
-            android:title="@string/zen_category_apps" />
-
-        <Preference
-                android:key="zen_other_settings"
-                android:title="@string/zen_category_exceptions" />
-    </PreferenceCategory>
+    <com.android.settings.applications.SpacePreference
+        android:layout_height="16dp" />
 
     <!-- automatic trigger section; preference changes programmatically depending on type -->
     <PreferenceCategory
         android:key="zen_automatic_trigger_category"
         android:title="@string/zen_mode_automatic_trigger_title">
+        <!-- For configuring the trigger on tap  and enabling/disabling the mode with the switch. -->
         <com.android.settingslib.PrimarySwitchPreference
             android:key="zen_automatic_trigger_settings" />
+        <!-- For adding a trigger for custom manual modes (no switch). -->
+        <Preference
+            android:key="zen_add_automatic_trigger"
+            android:title="@string/zen_mode_select_schedule"
+            android:icon="@drawable/ic_add_24dp" />
+    </PreferenceCategory>
+
+    <PreferenceCategory
+            android:title="@string/mode_interruption_filter_title"
+            android:key="modes_filters">
+
+        <SwitchPreferenceCompat
+            android:key="allow_all"
+            android:title="@string/zen_mode_allow_all_notifications"/>
+
+        <com.android.settings.notification.modes.CircularIconsPreference
+            android:key="zen_mode_people"
+            android:title="@string/zen_category_people"
+            android:icon="@drawable/ic_zen_mode_category_people" />
+
+        <com.android.settings.notification.modes.CircularIconsPreference
+            android:key="zen_mode_apps"
+            android:title="@string/zen_category_apps"
+            android:icon="@drawable/ic_zen_mode_category_apps" />
+
+        <com.android.settings.notification.modes.CircularIconsPreference
+            android:key="zen_other_settings"
+            android:title="@string/zen_category_exceptions"
+            android:icon="@drawable/ic_zen_mode_category_other" />
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -61,6 +83,12 @@
             android:key="modes_additional_actions">
         <Preference
                 android:key="mode_display_settings"
-                android:title="@string/mode_display_settings_title" />
+                android:title="@string/mode_display_settings_title"
+                android:icon="@drawable/ic_zen_mode_category_display" />
+
+        <Preference
+                android:key="mode_manual_duration"
+                android:title="@string/zen_category_duration"
+                android:icon="@drawable/ic_zen_mode_category_duration" />
     </PreferenceCategory>
 </PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/modes_set_calendar.xml b/res/xml/modes_set_calendar.xml
index 02eb26e..be094f2 100644
--- a/res/xml/modes_set_calendar.xml
+++ b/res/xml/modes_set_calendar.xml
@@ -23,20 +23,18 @@
     android:title="@string/zen_mode_set_calendar_title">
 
     <PreferenceCategory
-        android:key="zen_mode_event_category"
-        android:title="@string/zen_mode_set_calendar_category_title">
+        android:key="zen_mode_event_category">
 
-        <!-- TODO: b/333682392 - use correct strings for below two prefs -->
         <!-- During events for -->
         <DropDownPreference
             android:key="calendar"
-            android:title="@string/zen_mode_event_rule_calendar"
+            android:title="@string/zen_mode_set_calendar_which_calendar"
             android:summary="%s" />
 
         <!-- Where reply is -->
         <DropDownPreference
             android:key="reply"
-            android:title="@string/zen_mode_event_rule_reply"
+            android:title="@string/zen_mode_set_calendar_which_reply"
             android:summary="%s" />
 
     </PreferenceCategory>
diff --git a/res/xml/more_security_privacy_settings.xml b/res/xml/more_security_privacy_settings.xml
index 799ff1e..f200493 100644
--- a/res/xml/more_security_privacy_settings.xml
+++ b/res/xml/more_security_privacy_settings.xml
@@ -92,7 +92,7 @@
                 "com.android.settings.sound.MediaControlsLockScreenPreferenceController" />
 
         <!-- Allow software fallback for camera extensions -->
-        <SwitchPreference
+        <SwitchPreferenceCompat
             android:key="privacy_camera_extensions_fallback"
             android:title="@string/camera_extensions_fallback_title"
             android:summary="@string/camera_extensions_fallback_description"
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
index 5b545bb..2063618 100644
--- a/res/xml/physical_keyboard_settings.xml
+++ b/res/xml/physical_keyboard_settings.xml
@@ -21,12 +21,6 @@
     <PreferenceCategory
         android:key="keyboard_options_category"
         android:title="@string/keyboard_options_category">
-        <SwitchPreferenceCompat
-            android:key="show_virtual_keyboard_switch"
-            android:title="@string/show_ime"
-            android:summary="@string/show_ime_summary"
-            android:defaultValue="false" />
-
         <Preference
             android:key="keyboard_shortcuts_helper"
             android:title="@string/keyboard_shortcuts_helper"
@@ -59,5 +53,11 @@
             android:title="@string/slow_keys"
             android:defaultValue="false" />
 
+        <SwitchPreferenceCompat
+            android:key="accessibility_mouse_keys"
+            android:title="@string/mouse_keys"
+            android:summary="@string/mouse_keys_summary"
+            android:defaultValue="false" />
+
     </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/polite_notifications_settings.xml b/res/xml/polite_notifications_settings.xml
index 3baf88f..c0b3980 100644
--- a/res/xml/polite_notifications_settings.xml
+++ b/res/xml/polite_notifications_settings.xml
@@ -17,20 +17,20 @@
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:title="@string/notification_polite_title">
 
     <com.android.settingslib.widget.TopIntroPreference
         android:key="polite_notification_desc"
         android:title="@string/notification_polite_description"/>
 
-<!--    TODO(b/330606963): add the illustration back when animation is ready-->
-<!--    <com.android.settingslib.widget.IllustrationPreference-->
-<!--        android:key="bubbles_illustration"-->
-<!--        settings:searchable="false"-->
-<!--        android:selectable="false"-->
-<!--        app:lottie_rawRes="@raw/lottie_bubbles"-->
-<!--        app:lottie_cacheComposition="false"-->
-<!--        settings:dynamicColor="true" />-->
+    <com.android.settingslib.widget.IllustrationPreference
+        android:key="notification_cooldown_illustration"
+        settings:searchable="false"
+        android:selectable="false"
+        app:lottie_rawRes="@raw/lottie_notification_cooldown"
+        app:lottie_cacheComposition="false"
+        settings:dynamicColor="true"/>
 
     <com.android.settingslib.widget.MainSwitchPreference
         android:key="polite_notification_global_pref"
diff --git a/res/xml/power_usage_advanced.xml b/res/xml/power_usage_advanced.xml
index c129453..f2c3d87 100644
--- a/res/xml/power_usage_advanced.xml
+++ b/res/xml/power_usage_advanced.xml
@@ -23,11 +23,12 @@
 
     <PreferenceCategory
         android:key="battery_tips_category"
+        android:layout="@layout/preference_category_no_label"
         settings:controller=
             "com.android.settings.fuelgauge.batteryusage.BatteryTipsController"
         settings:isPreferenceVisible="false">
 
-        <com.android.settings.fuelgauge.batteryusage.BatteryTipsCardPreference
+        <com.android.settings.widget.TipCardPreference
             android:key="battery_tips_card"
             settings:isPreferenceVisible="false" />
 
@@ -56,12 +57,13 @@
             "com.android.settings.fuelgauge.batteryusage.BatteryUsageBreakdownController"
         settings:isPreferenceVisible="false">
 
-        <com.android.settings.fuelgauge.batteryusage.SpinnerPreference
+        <com.android.settingslib.widget.SettingsSpinnerPreference
             android:key="battery_usage_spinner"
             settings:isPreferenceVisible="false" />
 
         <PreferenceCategory
             android:key="app_list"
+            android:layout="@layout/preference_category_no_label"
             settings:isPreferenceVisible="false" />
 
         <com.android.settingslib.widget.FooterPreference
diff --git a/res/xml/private_space_hide_locked.xml b/res/xml/private_space_hide_locked.xml
index d166b73..56dd151 100644
--- a/res/xml/private_space_hide_locked.xml
+++ b/res/xml/private_space_hide_locked.xml
@@ -21,7 +21,8 @@
     <com.android.settingslib.widget.IllustrationPreference
         android:key="private_space_hide_illustration"
         settings:searchable="false"
-        settings:lottie_rawRes="@raw/private_space_hide_when_locked_illustration"/>
+        settings:lottie_rawRes="@raw/private_space_hide_when_locked_illustration"
+        settings:controller="com.android.settings.privatespace.HidePrivateSpaceIllustrationController"/>
 
     <com.android.settingslib.widget.MainSwitchPreference
         android:key="hide_when_locked"
@@ -35,7 +36,9 @@
         settings:searchable="false" />
 
     <PreferenceCategory
-        android:title="@string/private_space_access_header">
+        android:key="private_space_access"
+        android:title="@string/private_space_access_header"
+        settings:controller="com.android.settings.privatespace.HidePrivateSpaceCategoryController">
 
         <Preference
         android:key="search_when_locked_footer"
diff --git a/res/xml/regional_preference_main_page.xml b/res/xml/regional_preference_main_page.xml
index 2746caa..5c46f8c 100644
--- a/res/xml/regional_preference_main_page.xml
+++ b/res/xml/regional_preference_main_page.xml
@@ -16,7 +16,8 @@
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/regional_preferences_title">
+    android:title="@string/regional_preferences_title"
+    android:key="regional_preferences">
 
     <com.android.settingslib.widget.TopIntroPreference
         android:title="@string/regional_preferences_main_page_sub_title"
diff --git a/res/xml/regional_preference_numbering_system_page.xml b/res/xml/regional_preference_numbering_system_page.xml
index 9263c09..b15dd8a 100644
--- a/res/xml/regional_preference_numbering_system_page.xml
+++ b/res/xml/regional_preference_numbering_system_page.xml
@@ -13,4 +13,6 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" />
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:key="regional_preference_numbering_system"/>
diff --git a/res/xml/regional_preferences_first_day_of_week.xml b/res/xml/regional_preferences_first_day_of_week.xml
index 2d0bec3..d9de5e5 100644
--- a/res/xml/regional_preferences_first_day_of_week.xml
+++ b/res/xml/regional_preferences_first_day_of_week.xml
@@ -17,7 +17,8 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/first_day_of_week_preferences_title">
+    android:title="@string/first_day_of_week_preferences_title"
+    android:key="regional_preference_first_day_of_week">
 
     <com.android.settingslib.widget.TopIntroPreference
         android:title="@string/regional_preferences_option_page_sub_title"
diff --git a/res/xml/regional_preferences_temperature.xml b/res/xml/regional_preferences_temperature.xml
index 547dd38..2519dfa 100644
--- a/res/xml/regional_preferences_temperature.xml
+++ b/res/xml/regional_preferences_temperature.xml
@@ -17,7 +17,8 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/temperature_preferences_title">
+    android:title="@string/temperature_preferences_title"
+    android:key="regional_preference_temperature">
 
     <com.android.settingslib.widget.TopIntroPreference
         android:title="@string/regional_preferences_option_page_sub_title"
diff --git a/res/xml/security_advanced_settings.xml b/res/xml/security_advanced_settings.xml
index c220e99..f1556d6 100644
--- a/res/xml/security_advanced_settings.xml
+++ b/res/xml/security_advanced_settings.xml
@@ -140,13 +140,13 @@
             settings:controller="com.android.settings.security.VisiblePatternProfilePreferenceController" />
 
         <com.android.settingslib.RestrictedPreference
-            android:key="fingerprint_settings_profile"
-            android:title="@string/security_settings_work_fingerprint_preference_title"
+            android:key="face_settings_profile"
+            android:title="@string/security_settings_face_profile_preference_title"
             android:summary="@string/summary_placeholder" />
 
         <com.android.settingslib.RestrictedPreference
-            android:key="face_settings_profile"
-            android:title="@string/security_settings_face_profile_preference_title"
+            android:key="fingerprint_settings_profile"
+            android:title="@string/security_settings_work_fingerprint_preference_title"
             android:summary="@string/summary_placeholder" />
 
         <com.android.settingslib.RestrictedPreference
diff --git a/res/xml/security_settings_combined_biometric_profile.xml b/res/xml/security_settings_combined_biometric_profile.xml
index 1ab4106..42078f5 100644
--- a/res/xml/security_settings_combined_biometric_profile.xml
+++ b/res/xml/security_settings_combined_biometric_profile.xml
@@ -27,19 +27,19 @@
         android:title="@string/biometric_settings_category_ways_to_unlock">
 
         <com.android.settingslib.RestrictedPreference
-            android:key="biometric_fingerprint_settings_profile"
-            android:title="@string/security_settings_work_fingerprint_preference_title"
-            android:summary="@string/summary_placeholder"
-            settings:keywords="@string/keywords_fingerprint_settings"
-            settings:controller="com.android.settings.biometrics.combination.BiometricFingerprintProfileStatusPreferenceController" />
-
-        <com.android.settingslib.RestrictedPreference
             android:key="biometric_face_settings_profile"
             android:title="@string/security_settings_face_profile_preference_title"
             android:summary="@string/summary_placeholder"
             settings:keywords="@string/keywords_face_settings"
             settings:controller="com.android.settings.biometrics.combination.BiometricFaceProfileStatusPreferenceController" />
 
+        <com.android.settingslib.RestrictedPreference
+            android:key="biometric_fingerprint_settings_profile"
+            android:title="@string/security_settings_work_fingerprint_preference_title"
+            android:summary="@string/summary_placeholder"
+            settings:keywords="@string/keywords_fingerprint_settings"
+            settings:controller="com.android.settings.biometrics.combination.BiometricFingerprintProfileStatusPreferenceController" />
+
     </PreferenceCategory>
 
     <PreferenceCategory
diff --git a/res/xml/security_settings_fingerprint_limbo.xml b/res/xml/security_settings_fingerprint_limbo.xml
index 02a3dfb..8b97c83 100644
--- a/res/xml/security_settings_fingerprint_limbo.xml
+++ b/res/xml/security_settings_fingerprint_limbo.xml
@@ -18,7 +18,8 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/security_settings_fingerprint_preference_title">
+    android:title="@string/security_settings_fingerprint_preference_title"
+    settings:searchable="false">
 
     <PreferenceCategory
         android:key="security_settings_fingerprints_enrolled"
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 15312c8..393009e 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -105,6 +105,14 @@
         settings:keywords="@string/keywords_sounds_and_notifications_interruptions"
         settings:controller="com.android.settings.notification.zen.ZenModePreferenceController"/>
 
+    <com.android.settingslib.RestrictedPreference
+        android:key="modes_notifications"
+        android:order="-130"
+        android:title="@string/zen_modes_list_title"
+        settings:useAdminDisabledSummary="true"
+        android:fragment="com.android.settings.notification.modes.ZenModesListFragment"
+        settings:controller="com.android.settings.notification.modes.ZenModesLinkPreferenceController"/>
+
     <!-- Phone ringtone -->
     <com.android.settings.DefaultRingtonePreference
         android:key="phone_ringtone"
diff --git a/res/xml/system_dashboard_fragment.xml b/res/xml/system_dashboard_fragment.xml
index 6225f4f..621a325 100644
--- a/res/xml/system_dashboard_fragment.xml
+++ b/res/xml/system_dashboard_fragment.xml
@@ -39,7 +39,7 @@
 
     <Preference
         android:key="trackpad_settings"
-        android:title="@string/trackpad_settings"
+        android:title="@string/trackpad_mouse_settings"
         android:summary="@string/trackpad_settings_summary"
         android:icon="@drawable/ic_settings_trackpad"
         android:order="-254"
diff --git a/res/xml/terms_of_address.xml b/res/xml/terms_of_address.xml
index a29a55c3..90cbe52 100644
--- a/res/xml/terms_of_address.xml
+++ b/res/xml/terms_of_address.xml
@@ -17,7 +17,8 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/terms_of_address_title">
+    android:title="@string/terms_of_address_title"
+    android:key="terms_of_address">
 
     <com.android.settingslib.widget.TopIntroPreference
         android:title="@string/terms_of_address_intro_title"
diff --git a/res/xml/trackpad_settings.xml b/res/xml/trackpad_settings.xml
index 1eb16b7..52a32b2 100644
--- a/res/xml/trackpad_settings.xml
+++ b/res/xml/trackpad_settings.xml
@@ -18,7 +18,7 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/trackpad_settings">
+    android:title="@string/trackpad_mouse_settings">
     <Preference
         android:key="trackpad_gesture_settings"
         android:title="@string/trackpad_touchpad_gesture_title"
@@ -66,9 +66,25 @@
         android:key="pointer_fill_style"
         android:title="@string/pointer_fill_style"
         android:order="50"
-        android:dialogTitle="@string/pointer_fill_style"
         settings:controller="com.android.settings.inputmethod.PointerFillStylePreferenceController"/>
 
+    <com.android.settings.inputmethod.PointerStrokeStylePreference
+        android:key="pointer_stroke_style"
+        android:title="@string/pointer_stroke_style"
+        android:order="60"
+        settings:controller="com.android.settings.inputmethod.PointerStrokeStylePreferenceController"/>
+
+    <com.android.settings.widget.LabeledSeekBarPreference
+        android:key="pointer_scale"
+        android:title="@string/pointer_scale"
+        android:order="70"
+        android:max="@integer/pointer_scale_seek_bar_end"
+        settings:iconStart="@drawable/ic_remove_24dp"
+        settings:iconStartContentDescription="@string/pointer_scale_decrease_content_description"
+        settings:iconEnd="@drawable/ic_add_24dp"
+        settings:iconEndContentDescription="@string/pointer_scale_increase_content_description"
+        settings:controller="com.android.settings.inputmethod.PointerScaleSeekBarController" />
+
     <com.android.settingslib.widget.ButtonPreference
         android:key="trackpad_touch_gesture"
         android:title="@string/trackpad_touch_gesture"
diff --git a/res/xml/wifi_network_details_fragment2.xml b/res/xml/wifi_network_details_fragment2.xml
index 518b65d..da4ea5a 100644
--- a/res/xml/wifi_network_details_fragment2.xml
+++ b/res/xml/wifi_network_details_fragment2.xml
@@ -35,6 +35,11 @@
         android:icon="@drawable/ic_info_outline_24dp"
         android:selectable="false"/>
 
+    <com.android.settingslib.widget.BannerMessagePreference
+        android:key="wep_less_secure_warning"
+        android:title="@string/wep_network_less_secure_warning_title"
+        settings:controller="com.android.settings.wifi.WepLessSecureWarningController"/>
+
     <!-- Buttons -->
     <com.android.settingslib.widget.ActionButtonsPreference
         android:key="buttons"
diff --git a/res/xml/zen_mode_apps_settings.xml b/res/xml/zen_mode_apps_settings.xml
index 4ee14e4..a452143 100644
--- a/res/xml/zen_mode_apps_settings.xml
+++ b/res/xml/zen_mode_apps_settings.xml
@@ -34,11 +34,6 @@
             android:title="@string/zen_mode_apps_none_apps"
             settings:searchable="false"/>
 
-        <com.android.settingslib.widget.SelectorWithWidgetPreference
-            android:key="zen_mode_apps_all"
-            android:title="@string/zen_mode_apps_all_apps"
-            settings:searchable="false"/>
-
     </PreferenceCategory>
 
 </PreferenceScreen>
\ No newline at end of file
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index 0639037..711d794 100644
--- a/src/com/android/settings/MainClear.java
+++ b/src/com/android/settings/MainClear.java
@@ -99,6 +99,7 @@
     static final int KEYGUARD_REQUEST = 55;
     @VisibleForTesting
     static final int CREDENTIAL_CONFIRM_REQUEST = 56;
+    static final int BIOMETRICS_REQUEST = 57;
     private static final String KEY_SHOW_ESIM_RESET_CHECKBOX =
             "masterclear.allow_retain_esim_profiles_after_fdr";
 
@@ -156,7 +157,8 @@
 
     @VisibleForTesting
     boolean isValidRequestCode(int requestCode) {
-        return !((requestCode != KEYGUARD_REQUEST) && (requestCode != CREDENTIAL_CONFIRM_REQUEST));
+        return !((requestCode != KEYGUARD_REQUEST) && (requestCode != CREDENTIAL_CONFIRM_REQUEST)
+                && (requestCode != BIOMETRICS_REQUEST));
     }
 
     @Override
@@ -179,9 +181,24 @@
             return;
         }
 
+        if (requestCode == KEYGUARD_REQUEST) {
+            final int userId = getActivity().getUserId();
+            final Utils.BiometricStatus biometricAuthStatus =
+                    Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
+                            false /* biometricsAuthenticationRequested */,
+                            userId);
+            if (biometricAuthStatus == Utils.BiometricStatus.OK) {
+                Utils.launchBiometricPromptForMandatoryBiometrics(this, BIOMETRICS_REQUEST,
+                        userId, false /* hideBackground */);
+                return;
+            } else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
+                return;
+            }
+        }
+
         Intent intent = null;
         // If returning from a Keyguard request, try to show an account confirmation request if
-        // applciable.
+        // applicable.
         if (CREDENTIAL_CONFIRM_REQUEST != requestCode
                 && (intent = getAccountConfirmationIntent()) != null) {
             showAccountCredentialConfirmation(intent);
diff --git a/src/com/android/settings/MainClearConfirm.java b/src/com/android/settings/MainClearConfirm.java
index 042c5c2..a5fbebf 100644
--- a/src/com/android/settings/MainClearConfirm.java
+++ b/src/com/android/settings/MainClearConfirm.java
@@ -89,8 +89,7 @@
             final PersistentDataBlockManager pdbManager;
             // pre-flight check hardware support PersistentDataBlockManager
             if (!SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP).equals("")) {
-                pdbManager = (PersistentDataBlockManager)
-                    getActivity().getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
+                pdbManager = getActivity().getSystemService(PersistentDataBlockManager.class);
             } else {
                 pdbManager = null;
             }
@@ -152,6 +151,11 @@
             return false;
         }
 
+        // Do not try to erase factory reset protection data if the protection is alive.
+        if (pdbManager.isFactoryResetProtectionActive()) {
+            return false;
+        }
+
         // The persistent data block will persist if the device is still being provisioned.
         if (isDeviceStillBeingProvisioned()) {
             return false;
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index c91ef5c..c1e3494 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -52,6 +52,7 @@
 import com.android.settings.network.telephony.EuiccRacConnectivityDialogActivity;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.password.ConfirmLockPattern;
+import com.android.settings.system.reset.ResetNetworkConfirm;
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
 
 import java.util.ArrayList;
diff --git a/src/com/android/settings/ResetNetworkConfirm.java b/src/com/android/settings/ResetNetworkConfirm.java
deleted file mode 100644
index c707b96..0000000
--- a/src/com/android/settings/ResetNetworkConfirm.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import android.app.Activity;
-import android.app.ProgressDialog;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.os.Looper;
-import android.telephony.SubscriptionManager;
-import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.appcompat.app.AlertDialog;
-
-import com.android.settings.core.InstrumentedFragment;
-import com.android.settings.network.ResetNetworkOperationBuilder;
-import com.android.settings.network.ResetNetworkRestrictionViewBuilder;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-/**
- * Confirm and execute a reset of the network settings to a clean "just out of the box"
- * state.  Multiple confirmations are required: first, a general "are you sure
- * you want to do this?" prompt, followed by a keyguard pattern trace if the user
- * has defined one, followed by a final strongly-worded "THIS WILL RESET EVERYTHING"
- * prompt.  If at any time the phone is allowed to go to sleep, is
- * locked, et cetera, then the confirmation sequence is abandoned.
- *
- * This is the confirmation screen.
- */
-public class ResetNetworkConfirm extends InstrumentedFragment {
-    private static final String TAG = "ResetNetworkConfirm";
-
-    @VisibleForTesting View mContentView;
-    @VisibleForTesting ResetNetworkTask mResetNetworkTask;
-    @VisibleForTesting Activity mActivity;
-    @VisibleForTesting ResetNetworkRequest mResetNetworkRequest;
-    private ProgressDialog mProgressDialog;
-    private AlertDialog mAlertDialog;
-    @VisibleForTesting ResetSubscriptionContract mResetSubscriptionContract;
-    private OnSubscriptionsChangedListener mSubscriptionsChangedListener;
-
-    /**
-     * Async task used to do all reset task. If error happens during
-     * erasing eSIM profiles or timeout, an error msg is shown.
-     */
-    private class ResetNetworkTask extends AsyncTask<Void, Void, Boolean> {
-        private static final String TAG = "ResetNetworkTask";
-
-        private final Context mContext;
-
-        ResetNetworkTask(Context context) {
-            mContext = context;
-        }
-
-        @Override
-        protected Boolean doInBackground(Void... params) {
-            final AtomicBoolean resetEsimSuccess = new AtomicBoolean(true);
-
-            String resetEsimPackageName = mResetNetworkRequest.getResetEsimPackageName();
-            ResetNetworkOperationBuilder builder = mResetNetworkRequest
-                    .toResetNetworkOperationBuilder(mContext, Looper.getMainLooper());
-            if (resetEsimPackageName != null) {
-                // Override reset eSIM option for the result of reset operation
-                builder = builder.resetEsim(resetEsimPackageName,
-                        success -> { resetEsimSuccess.set(success); }
-                        );
-            }
-            builder.build().run();
-
-            boolean isResetSucceed = resetEsimSuccess.get();
-            Log.d(TAG, "network factoryReset complete. succeeded: "
-                    + String.valueOf(isResetSucceed));
-            return isResetSucceed;
-        }
-
-        @Override
-        protected void onPostExecute(Boolean succeeded) {
-            if (mProgressDialog != null && mProgressDialog.isShowing()) {
-                mProgressDialog.dismiss();
-            }
-
-            if (succeeded) {
-                Toast.makeText(mContext, R.string.reset_network_complete_toast, Toast.LENGTH_SHORT)
-                        .show();
-            } else {
-                mAlertDialog = new AlertDialog.Builder(mContext)
-                        .setTitle(R.string.reset_esim_error_title)
-                        .setMessage(R.string.reset_esim_error_msg)
-                        .setPositiveButton(android.R.string.ok, null /* listener */)
-                        .show();
-            }
-        }
-    }
-
-    /**
-     * The user has gone through the multiple confirmation, so now we go ahead
-     * and reset the network settings to its factory-default state.
-     */
-    @VisibleForTesting
-    Button.OnClickListener mFinalClickListener = new Button.OnClickListener() {
-
-        @Override
-        public void onClick(View v) {
-            if (Utils.isMonkeyRunning()) {
-                return;
-            }
-
-            // abandon execution if subscription no longer active
-            Integer subId = mResetSubscriptionContract.getAnyMissingSubscriptionId();
-            if (subId != null) {
-                Log.w(TAG, "subId " + subId + " no longer active");
-                getActivity().onBackPressed();
-                return;
-            }
-
-            // Should dismiss the progress dialog firstly if it is showing
-            // Or not the progress dialog maybe not dismissed in fast clicking.
-            if (mProgressDialog != null && mProgressDialog.isShowing()) {
-                mProgressDialog.dismiss();
-            }
-
-            mProgressDialog = getProgressDialog(mActivity);
-            mProgressDialog.show();
-
-            mResetNetworkTask = new ResetNetworkTask(mActivity);
-            mResetNetworkTask.execute();
-        }
-    };
-
-    private ProgressDialog getProgressDialog(Context context) {
-        final ProgressDialog progressDialog = new ProgressDialog(context);
-        progressDialog.setIndeterminate(true);
-        progressDialog.setCancelable(false);
-        progressDialog.setMessage(
-                context.getString(R.string.main_clear_progress_text));
-        return progressDialog;
-    }
-
-    /**
-     * Configure the UI for the final confirmation interaction
-     */
-    private void establishFinalConfirmationState() {
-        mContentView.findViewById(R.id.execute_reset_network)
-                .setOnClickListener(mFinalClickListener);
-    }
-
-    @VisibleForTesting
-    void setSubtitle() {
-        if (mResetNetworkRequest.getResetEsimPackageName() != null) {
-            ((TextView) mContentView.findViewById(R.id.reset_network_confirm))
-                    .setText(R.string.reset_network_final_desc_esim);
-        }
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        View view = (new ResetNetworkRestrictionViewBuilder(mActivity)).build();
-        if (view != null) {
-            mResetSubscriptionContract.close();
-            Log.w(TAG, "Access deny.");
-            return view;
-        }
-        mContentView = inflater.inflate(R.layout.reset_network_confirm, null);
-        establishFinalConfirmationState();
-        setSubtitle();
-        return mContentView;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        Bundle args = getArguments();
-        if (args == null) {
-            args = savedInstanceState;
-        }
-        mResetNetworkRequest = new ResetNetworkRequest(args);
-
-        mActivity = getActivity();
-
-        mResetSubscriptionContract = new ResetSubscriptionContract(getContext(),
-                mResetNetworkRequest) {
-            @Override
-            public void onSubscriptionInactive(int subscriptionId) {
-                // close UI if subscription no longer active
-                Log.w(TAG, "subId " + subscriptionId + " no longer active.");
-                getActivity().onBackPressed();
-            }
-        };
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        mResetNetworkRequest.writeIntoBundle(outState);
-    }
-
-    @Override
-    public void onDestroy() {
-        if (mResetNetworkTask != null) {
-            mResetNetworkTask.cancel(true /* mayInterruptIfRunning */);
-            mResetNetworkTask = null;
-        }
-        if (mResetSubscriptionContract != null) {
-            mResetSubscriptionContract.close();
-            mResetSubscriptionContract = null;
-        }
-        if (mProgressDialog != null) {
-            mProgressDialog.dismiss();
-        }
-        if (mAlertDialog != null) {
-            mAlertDialog.dismiss();
-        }
-        super.onDestroy();
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.RESET_NETWORK_CONFIRM;
-    }
-}
diff --git a/src/com/android/settings/ResetSubscriptionContract.java b/src/com/android/settings/ResetSubscriptionContract.java
deleted file mode 100644
index 528a16d..0000000
--- a/src/com/android/settings/ResetSubscriptionContract.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import android.content.Context;
-import android.telephony.SubscriptionManager;
-import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.IntStream;
-
-/**
- * A Class monitoring the availability of subscription IDs provided within reset request.
- *
- * This is to detect the situation when user changing SIM card during the presenting of
- * confirmation UI.
- */
-public class ResetSubscriptionContract implements AutoCloseable {
-    private static final String TAG = "ResetSubscriptionContract";
-
-    private final Context mContext;
-    private ExecutorService mExecutorService;
-    private final int [] mResetSubscriptionIds;
-    @VisibleForTesting
-    protected OnSubscriptionsChangedListener mSubscriptionsChangedListener;
-    private AtomicBoolean mSubscriptionsUpdateNotify = new AtomicBoolean();
-
-    /**
-     * Constructor
-     * @param context Context
-     * @param resetRequest the request object for perform network reset operation.
-     */
-    public ResetSubscriptionContract(Context context, ResetNetworkRequest resetRequest) {
-        mContext = context;
-        // Only keeps specific subscription ID required to perform reset operation
-        IntStream subIdStream = IntStream.of(
-                resetRequest.getResetTelephonyAndNetworkPolicyManager(),
-                resetRequest.getResetApnSubId(), resetRequest.getResetImsSubId());
-        mResetSubscriptionIds = subIdStream.sorted().distinct()
-                .filter(id -> SubscriptionManager.isUsableSubscriptionId(id))
-                .toArray();
-
-        if (mResetSubscriptionIds.length <= 0) {
-            return;
-        }
-
-        // Monitoring callback through background thread
-        mExecutorService = Executors.newSingleThreadExecutor();
-        startMonitorSubscriptionChange();
-    }
-
-    /**
-     * A method for detecting if there's any subscription under monitor no longer active.
-     * @return subscription ID which is no longer active.
-     */
-    public Integer getAnyMissingSubscriptionId() {
-        if (mResetSubscriptionIds.length <= 0) {
-            return null;
-        }
-        SubscriptionManager mgr = getSubscriptionManager();
-        if (mgr == null) {
-            Log.w(TAG, "Fail to access subscription manager");
-            return mResetSubscriptionIds[0];
-        }
-        for (int idx = 0; idx < mResetSubscriptionIds.length; idx++) {
-            int subId = mResetSubscriptionIds[idx];
-            if (mgr.getActiveSubscriptionInfo(subId) == null) {
-                Log.w(TAG, "SubId " + subId + " no longer active.");
-                return subId;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Async callback when detecting if there's any subscription under monitor no longer active.
-     * @param subscriptionId subscription ID which is no longer active.
-     */
-    public void onSubscriptionInactive(int subscriptionId) {}
-
-    @VisibleForTesting
-    protected SubscriptionManager getSubscriptionManager() {
-        return mContext.getSystemService(SubscriptionManager.class);
-    }
-
-    @VisibleForTesting
-    protected OnSubscriptionsChangedListener getChangeListener() {
-        return new OnSubscriptionsChangedListener() {
-            @Override
-            public void onSubscriptionsChanged() {
-                /**
-                 * Reducing the processing time on main UI thread through a flag.
-                 * Once flag get into false, which means latest callback has been
-                 * processed.
-                 */
-                mSubscriptionsUpdateNotify.set(true);
-
-                // Back to main UI thread
-                mContext.getMainExecutor().execute(() -> {
-                    // Remove notifications and perform checking.
-                    if (mSubscriptionsUpdateNotify.getAndSet(false)) {
-                        Integer subId = getAnyMissingSubscriptionId();
-                        if (subId != null) {
-                            onSubscriptionInactive(subId);
-                        }
-                    }
-                });
-            }
-        };
-    }
-
-    private void startMonitorSubscriptionChange() {
-        SubscriptionManager mgr = getSubscriptionManager();
-        if (mgr == null) {
-            return;
-        }
-        // update monitor listener
-        mSubscriptionsChangedListener = getChangeListener();
-
-        mgr.addOnSubscriptionsChangedListener(
-                mExecutorService, mSubscriptionsChangedListener);
-    }
-
-    // Implementation of AutoCloseable
-    public void close() {
-        if (mExecutorService == null) {
-            return;
-        }
-        // Stop monitoring subscription change
-        SubscriptionManager mgr = getSubscriptionManager();
-        if (mgr != null) {
-            mgr.removeOnSubscriptionsChangedListener(mSubscriptionsChangedListener);
-        }
-        // Release Executor
-        mExecutorService.shutdownNow();
-        mExecutorService = null;
-    }
-}
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 3367bf1..24d9525 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -18,6 +18,8 @@
 
 import static android.provider.Settings.ACTION_PRIVACY_SETTINGS;
 
+import android.annotation.FlaggedApi;
+import android.app.Flags;
 import android.content.ActivityNotFoundException;
 import android.content.Intent;
 import android.os.Bundle;
@@ -301,6 +303,7 @@
     public static class UserSettingsActivity extends SettingsActivity { /* empty */ }
     public static class NotificationAccessSettingsActivity extends SettingsActivity { /* empty */ }
     public static class NotificationAccessDetailsActivity extends SettingsActivity { /* empty */ }
+    public static class ManageAdaptiveNotificationsActivity extends SettingsActivity { /* empty */ }
     public static class VrListenersSettingsActivity extends SettingsActivity { /* empty */ }
     public static class PremiumSmsAccessActivity extends SettingsActivity { /* empty */ }
     public static class PictureInPictureSettingsActivity extends SettingsActivity { /* empty */ }
@@ -317,11 +320,13 @@
     public static class PrintSettingsActivity extends SettingsActivity { /* empty */ }
     public static class PrintJobSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class ZenModeBehaviorSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class ZenModeBlockedEffectsSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ZenModeScheduleRuleSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ }
+    @FlaggedApi(Flags.FLAG_MODES_UI)
+    public static class ModeSettingsActivity extends SettingsActivity { /* empty */ }
+    @FlaggedApi(Flags.FLAG_MODES_UI)
+    public static class ModesSettingsActivity extends SettingsActivity { /* empty */ }
     public static class SoundSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ConfigureNotificationSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ConversationListSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/SettingsApplication.java b/src/com/android/settings/SettingsApplication.java
index 7d5d2c7..d208fdf 100644
--- a/src/com/android/settings/SettingsApplication.java
+++ b/src/com/android/settings/SettingsApplication.java
@@ -18,7 +18,9 @@
 
 import android.app.Application;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.database.ContentObserver;
+import android.hardware.fingerprint.FingerprintManager;
 import android.net.Uri;
 import android.provider.Settings;
 import android.util.FeatureFlagUtils;
@@ -31,6 +33,7 @@
 import com.android.settings.biometrics.fingerprint2.BiometricsEnvironment;
 import com.android.settings.core.instrumentation.ElapsedTimeUtils;
 import com.android.settings.development.DeveloperOptionsActivityLifecycle;
+import com.android.settings.flags.Flags;
 import com.android.settings.fuelgauge.BatterySettingsStorage;
 import com.android.settings.homepage.SettingsHomepageActivity;
 import com.android.settings.localepicker.LocaleNotificationDataManager;
@@ -49,7 +52,7 @@
 public class SettingsApplication extends Application {
 
     private WeakReference<SettingsHomepageActivity> mHomeActivity = new WeakReference<>(null);
-    private BiometricsEnvironment mBiometricsEnvironment;
+    @Nullable private BiometricsEnvironment mBiometricsEnvironment;
 
     @Override
     protected void attachBaseContext(Context base) {
@@ -73,7 +76,6 @@
 
         // Set Spa environment.
         setSpaEnvironment();
-        mBiometricsEnvironment = new BiometricsEnvironment(this);
 
         if (ActivityEmbeddingUtils.isSettingsSplitEnabled(this)
                 && FeatureFlagUtils.isEnabled(this,
@@ -117,7 +119,20 @@
 
     @Nullable
     public BiometricsEnvironment getBiometricEnvironment() {
-        return mBiometricsEnvironment;
+        if (Flags.fingerprintV2Enrollment()) {
+            if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
+                final FingerprintManager fpm = getSystemService(FingerprintManager.class);
+                if (mBiometricsEnvironment == null) {
+                    mBiometricsEnvironment = new BiometricsEnvironment(this, fpm);
+                }
+                return  mBiometricsEnvironment;
+
+            } else {
+                return null;
+            }
+
+        }
+        return null;
     }
 
     @Override
diff --git a/src/com/android/settings/SettingsPreferenceFragmentBase.java b/src/com/android/settings/SettingsPreferenceFragmentBase.java
new file mode 100644
index 0000000..dd2e287
--- /dev/null
+++ b/src/com/android/settings/SettingsPreferenceFragmentBase.java
@@ -0,0 +1,94 @@
+/*
+ * 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.app.Activity;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settingslib.search.Indexable;
+
+/**
+ * Base class for fragment suitable for unit testing.
+ */
+public abstract class SettingsPreferenceFragmentBase extends SettingsPreferenceFragment
+        implements Indexable {
+    @Override
+    @SuppressWarnings({"RequiresNullabilityAnnotation"})
+    public void onCreate(final Bundle icicle) {
+        super.onCreate(icicle);
+        onCreateCallback(icicle);
+    }
+
+    @Override
+    @SuppressWarnings({"RequiresNullabilityAnnotation"})
+    public void onActivityCreated(final Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        onActivityCreatedCallback(savedInstanceState);
+    }
+
+    @Override
+    public void onSaveInstanceState(@NonNull final Bundle outState) {
+        super.onSaveInstanceState(outState);
+        onSaveInstanceStateCallback(outState);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        onStartCallback();
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        onStopCallback();
+    }
+
+    protected Activity getCurrentActivity() {
+        return getActivity();
+    }
+
+    /**
+     * Callback called from {@link #onCreate}
+     */
+    public abstract void onCreateCallback(@Nullable Bundle icicle);
+
+    /**
+     * Callback called from {@link #onActivityCreated}
+     */
+    public abstract void onActivityCreatedCallback(@Nullable Bundle savedInstanceState);
+
+    /**
+     * Callback called from {@link #onStart}
+     */
+    public abstract void onStartCallback();
+
+    /**
+     * Callback called from {@link #onStop}
+     */
+    public abstract void onStopCallback();
+
+    /**
+     * Callback called from {@link #onSaveInstanceState}
+     */
+    public void onSaveInstanceStateCallback(@NonNull final Bundle outState) {
+        // Do nothing.
+    }
+}
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 7ed6ba0..3646938 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -24,6 +24,10 @@
 import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
 import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
 
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_HIDE_BACKGROUND;
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
+
 import android.app.ActionBar;
 import android.app.Activity;
 import android.app.ActivityManager;
@@ -54,6 +58,7 @@
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.VectorDrawable;
+import android.hardware.biometrics.BiometricManager;
 import android.hardware.biometrics.SensorProperties;
 import android.hardware.face.Face;
 import android.hardware.face.FaceManager;
@@ -122,6 +127,7 @@
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
 import com.android.settings.dashboard.profileselector.ProfileSelectFragment.ProfileType;
 import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmDeviceCredentialActivity;
 import com.android.settingslib.widget.ActionBarShadowController;
 import com.android.settingslib.widget.AdaptiveIcon;
 
@@ -194,6 +200,15 @@
     }
 
     /**
+     * Enum for returning biometric status.
+     * {@link OK} no error detected when requesting mandatory biometrics authentication
+     * {@link NOT_ACTIVE} mandatory biometrics is not active
+     * {@link LOCKOUT} biometric sensors are in lockout mode
+     * {@link ERROR} corresponds to other errors
+     */
+    public enum BiometricStatus {OK, NOT_ACTIVE, LOCKOUT, ERROR}
+
+    /**
      * Returns whether the device is voice-capable (meaning, it is also a phone).
      */
     public static boolean isVoiceCapable(Context context) {
@@ -1418,13 +1433,15 @@
     public static void setupEdgeToEdge(@NonNull FragmentActivity activity) {
         ViewCompat.setOnApplyWindowInsetsListener(activity.findViewById(android.R.id.content),
                 (v, windowInsets) -> {
-                    Insets insets = windowInsets.getInsets(
+                    final Insets insets = windowInsets.getInsets(
                             WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime()
                                     | WindowInsetsCompat.Type.displayCutout());
-                    int statusBarHeight = activity.getWindow().getDecorView().getRootWindowInsets()
-                            .getInsets(WindowInsetsCompat.Type.statusBars()).top;
+                    int newInsetsTop = activity.getWindow().getDecorView().getRootWindowInsets()
+                            .getInsets(WindowInsetsCompat.Type.statusBars()
+                                    | WindowInsetsCompat.Type.captionBar()).top;
+
                     // Apply the insets paddings to the view.
-                    v.setPadding(insets.left, statusBarHeight, insets.right, insets.bottom);
+                    v.setPadding(insets.left, newInsetsTop, insets.right, insets.bottom);
 
                     // Return CONSUMED if you don't want the window insets to keep being
                     // passed down to descendant views.
@@ -1478,6 +1495,69 @@
         disableComponent(pm, new ComponentName(context, Settings.CreateShortcutActivity.class));
     }
 
+    /**
+     * Request biometric authentication if all requirements for mandatory biometrics is satisfied.
+     *
+     * @param context                           of the corresponding activity/fragment
+     * @param biometricsAuthenticationRequested if the activity/fragment has already requested for
+     *                                          biometric prompt
+     * @param userId                            user id for the authentication request
+     * @return biometric status when mandatory biometrics authentication is requested
+     */
+    public static BiometricStatus requestBiometricAuthenticationForMandatoryBiometrics(
+            @NonNull Context context,
+            boolean biometricsAuthenticationRequested, int userId) {
+        final BiometricManager biometricManager = context.getSystemService(BiometricManager.class);
+        if (biometricManager == null) {
+            Log.e(TAG, "Biometric Manager is null.");
+            return BiometricStatus.NOT_ACTIVE;
+        }
+        final int status = biometricManager.canAuthenticate(userId,
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
+        if (android.hardware.biometrics.Flags.mandatoryBiometrics()
+                && !biometricsAuthenticationRequested) {
+            switch(status) {
+                case BiometricManager.BIOMETRIC_SUCCESS:
+                    return BiometricStatus.OK;
+                case BiometricManager.BIOMETRIC_ERROR_LOCKOUT:
+                    return BiometricStatus.LOCKOUT;
+                case BiometricManager.BIOMETRIC_ERROR_MANDATORY_NOT_ACTIVE:
+                    return BiometricStatus.NOT_ACTIVE;
+                default:
+                    return BiometricStatus.ERROR;
+            }
+        }
+        return BiometricStatus.NOT_ACTIVE;
+    }
+
+    /**
+     * Launch biometric prompt for mandatory biometrics. Call
+     * {@link #requestBiometricAuthenticationForMandatoryBiometrics(Context, boolean, int)}
+     * to check if all requirements for mandatory biometrics is satisfied
+     * before launching biometric prompt.
+     *
+     * @param fragment       corresponding fragment of the surface
+     * @param requestCode    for starting the new activity
+     * @param userId         user id for the authentication request
+     * @param hideBackground if the background activity screen needs to be hidden
+     */
+    public static void launchBiometricPromptForMandatoryBiometrics(@NonNull Fragment fragment,
+            int requestCode, int userId, boolean hideBackground) {
+        final Intent intent = new Intent();
+        intent.putExtra(BIOMETRIC_PROMPT_AUTHENTICATORS,
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
+        intent.putExtra(BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT,
+                fragment.getString(R.string.cancel));
+        intent.putExtra(KeyguardManager.EXTRA_DESCRIPTION,
+                fragment.getString(R.string.mandatory_biometrics_prompt_description));
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, true);
+        intent.putExtra(EXTRA_USER_ID, userId);
+        intent.putExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, hideBackground);
+        intent.setClassName(SETTINGS_PACKAGE_NAME,
+                ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
+        fragment.startActivityForResult(intent, requestCode);
+    }
+
     private static void disableComponent(PackageManager pm, ComponentName componentName) {
         pm.setComponentEnabledSetting(componentName,
                 PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
diff --git a/src/com/android/settings/accessibility/AccessibilityDialogUtils.java b/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
index ca3a7b1..a1f59c8 100644
--- a/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
+++ b/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
@@ -19,53 +19,22 @@
 import static com.android.settings.accessibility.ItemInfoArrayAdapter.ItemInfo;
 
 import android.app.Dialog;
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
-import android.icu.text.MessageFormat;
-import android.text.Spannable;
-import android.text.SpannableString;
-import android.text.SpannableStringBuilder;
-import android.text.TextUtils;
-import android.text.method.LinkMovementMethod;
-import android.text.style.ImageSpan;
-import android.util.Log;
-import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AbsListView;
 import android.widget.AdapterView;
-import android.widget.CheckBox;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.ScrollView;
-import android.widget.TextView;
 
-import androidx.annotation.ColorInt;
-import androidx.annotation.DrawableRes;
-import androidx.annotation.IntDef;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.annotation.RawRes;
 import androidx.appcompat.app.AlertDialog;
-import androidx.core.content.ContextCompat;
-
-import com.android.server.accessibility.Flags;
-import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.utils.AnnotationSpan;
-import com.android.settingslib.widget.LottieColorUtils;
-
-import com.airbnb.lottie.LottieAnimationView;
-import com.airbnb.lottie.LottieDrawable;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.List;
 
-
 /**
  * Utility class for creating the edit dialog.
  */
@@ -75,25 +44,20 @@
     /** Denotes the dialog emuns for show dialog. */
     @Retention(RetentionPolicy.SOURCE)
     public @interface DialogEnums {
-
-        /** OPEN: Settings > Accessibility > Any toggle service > Shortcut > Settings. */
-        int EDIT_SHORTCUT = 1;
-
-        /** OPEN: Settings > Accessibility > Magnification > Shortcut > Settings. */
-        int MAGNIFICATION_EDIT_SHORTCUT = 1001;
-
         /**
          * OPEN: Settings > Accessibility > Downloaded toggle service > Toggle use service to
          * enable service.
          */
         int ENABLE_WARNING_FROM_TOGGLE = 1002;
 
-        /** OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut checkbox. */
+        /**
+         * OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut options
+         * settings.
+         */
         int ENABLE_WARNING_FROM_SHORTCUT = 1003;
 
         /**
-         * OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut checkbox
-         * toggle.
+         * OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut toggle
          */
         int ENABLE_WARNING_FROM_SHORTCUT_TOGGLE = 1004;
 
@@ -128,83 +92,6 @@
     }
 
     /**
-     * IntDef enum for dialog type that indicates different dialog for user to choose the shortcut
-     * type.
-     */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-         DialogType.EDIT_SHORTCUT_GENERIC,
-         DialogType.EDIT_SHORTCUT_GENERIC_SUW,
-         DialogType.EDIT_SHORTCUT_MAGNIFICATION,
-         DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW,
-    })
-
-    public @interface DialogType {
-        int EDIT_SHORTCUT_GENERIC = 0;
-        int EDIT_SHORTCUT_GENERIC_SUW = 1;
-        int EDIT_SHORTCUT_MAGNIFICATION = 2;
-        int EDIT_SHORTCUT_MAGNIFICATION_SUW = 3;
-    }
-
-    /**
-     * Method to show the edit shortcut dialog.
-     *
-     * @param context A valid context
-     * @param dialogType The type of edit shortcut dialog
-     * @param dialogTitle The title of edit shortcut dialog
-     * @param listener The listener to determine the action of edit shortcut dialog
-     * @return A edit shortcut dialog for showing
-     */
-    public static AlertDialog showEditShortcutDialog(Context context, int dialogType,
-            CharSequence dialogTitle, DialogInterface.OnClickListener listener) {
-        final AlertDialog alertDialog = createDialog(context, dialogType, dialogTitle, listener);
-        alertDialog.show();
-        setScrollIndicators(alertDialog);
-        return alertDialog;
-    }
-
-    /**
-     * Updates the shortcut content in edit shortcut dialog.
-     *
-     * @param context A valid context
-     * @param editShortcutDialog Need to be a type of edit shortcut dialog
-     * @return True if the update is successful
-     */
-    public static boolean updateShortcutInDialog(Context context,
-            Dialog editShortcutDialog) {
-        final View container = editShortcutDialog.findViewById(R.id.container_layout);
-        if (container != null) {
-            initSoftwareShortcut(context, container);
-            initHardwareShortcut(context, container);
-            return true;
-        }
-        return false;
-    }
-
-    private static AlertDialog createDialog(Context context, int dialogType,
-            CharSequence dialogTitle, DialogInterface.OnClickListener listener) {
-
-        final AlertDialog alertDialog = new AlertDialog.Builder(context)
-                .setView(createEditDialogContentView(context, dialogType))
-                .setTitle(dialogTitle)
-                .setPositiveButton(R.string.save, listener)
-                .setNegativeButton(R.string.cancel,
-                        (DialogInterface dialog, int which) -> dialog.dismiss())
-                .create();
-
-        return alertDialog;
-    }
-
-    /**
-     * Sets the scroll indicators for dialog view. The indicators appears while content view is
-     * out of vision for vertical scrolling.
-     */
-    private static void setScrollIndicators(AlertDialog dialog) {
-        final ScrollView scrollView = dialog.findViewById(R.id.container_layout);
-        setScrollIndicators(scrollView);
-    }
-
-    /**
      * Sets the scroll indicators for dialog view. The indicators appear while content view is
      * out of vision for vertical scrolling.
      *
@@ -218,284 +105,6 @@
     }
 
     /**
-     * Get a content View for the edit shortcut dialog.
-     *
-     * @param context A valid context
-     * @param dialogType The type of edit shortcut dialog
-     * @return A content view suitable for viewing
-     */
-    private static View createEditDialogContentView(Context context, int dialogType) {
-        final LayoutInflater inflater = (LayoutInflater) context.getSystemService(
-                Context.LAYOUT_INFLATER_SERVICE);
-
-        View contentView = null;
-
-        switch (dialogType) {
-            case DialogType.EDIT_SHORTCUT_GENERIC:
-                contentView = inflater.inflate(
-                        R.layout.accessibility_edit_shortcut, null);
-                initSoftwareShortcut(context, contentView);
-                initHardwareShortcut(context, contentView);
-                break;
-            case DialogType.EDIT_SHORTCUT_GENERIC_SUW:
-                contentView = inflater.inflate(
-                        R.layout.accessibility_edit_shortcut, null);
-                initSoftwareShortcutForSUW(context, contentView);
-                initHardwareShortcut(context, contentView);
-                break;
-            case DialogType.EDIT_SHORTCUT_MAGNIFICATION:
-                contentView = inflater.inflate(
-                        R.layout.accessibility_edit_shortcut_magnification, null);
-                initSoftwareShortcut(context, contentView);
-                initHardwareShortcut(context, contentView);
-                if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-                    initTwoFingerDoubleTapMagnificationShortcut(context, contentView);
-                }
-                initMagnifyShortcut(context, contentView);
-                initAdvancedWidget(contentView);
-                break;
-            case DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW:
-                contentView = inflater.inflate(
-                        R.layout.accessibility_edit_shortcut_magnification, null);
-                initSoftwareShortcutForSUW(context, contentView);
-                initHardwareShortcut(context, contentView);
-                if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-                    initTwoFingerDoubleTapMagnificationShortcut(context, contentView);
-                }
-                initMagnifyShortcut(context, contentView);
-                initAdvancedWidget(contentView);
-                break;
-            default:
-                throw new IllegalArgumentException();
-        }
-
-        return contentView;
-    }
-
-    private static void setupShortcutWidget(View view, CharSequence titleText,
-            CharSequence summaryText, @DrawableRes int imageResId) {
-        setupShortcutWidgetWithTitleAndSummary(view, titleText, summaryText);
-        setupShortcutWidgetWithImageResource(view, imageResId);
-    }
-
-    private static void setupShortcutWidgetWithImageRawResource(Context context,
-            View view, CharSequence titleText,
-            CharSequence summaryText, @RawRes int imageRawResId) {
-        setupShortcutWidgetWithTitleAndSummary(view, titleText, summaryText);
-        setupShortcutWidgetWithImageRawResource(context, view, imageRawResId);
-    }
-
-    private static void setupShortcutWidgetWithTitleAndSummary(View view, CharSequence titleText,
-            CharSequence summaryText) {
-        final CheckBox checkBox = view.findViewById(R.id.checkbox);
-        checkBox.setText(titleText);
-
-        final TextView summary = view.findViewById(R.id.summary);
-        if (TextUtils.isEmpty(summaryText)) {
-            summary.setVisibility(View.GONE);
-        } else {
-            summary.setText(summaryText);
-            summary.setMovementMethod(LinkMovementMethod.getInstance());
-            summary.setFocusable(false);
-        }
-    }
-
-    private static void setupShortcutWidgetWithImageResource(View view,
-            @DrawableRes int imageResId) {
-        final ImageView imageView = view.findViewById(R.id.image);
-        imageView.setImageResource(imageResId);
-    }
-
-    private static void setupShortcutWidgetWithImageRawResource(Context context, View view,
-            @RawRes int imageRawResId) {
-        final LottieAnimationView lottieView = view.findViewById(R.id.image);
-        lottieView.setFailureListener(
-                result -> Log.w(TAG, "Invalid image raw resource id: " + imageRawResId,
-                        result));
-        lottieView.setAnimation(imageRawResId);
-        lottieView.setRepeatCount(LottieDrawable.INFINITE);
-        LottieColorUtils.applyDynamicColors(context, lottieView);
-        lottieView.playAnimation();
-    }
-
-    private static void initSoftwareShortcutForSUW(Context context, View view) {
-        final View dialogView = view.findViewById(R.id.software_shortcut);
-        final CharSequence title = context.getText(
-                R.string.accessibility_shortcut_edit_dialog_title_software);
-        final TextView summary = dialogView.findViewById(R.id.summary);
-        final int lineHeight = summary.getLineHeight();
-
-        setupShortcutWidget(dialogView, title,
-                retrieveSoftwareShortcutSummaryForSUW(context, lineHeight),
-                retrieveSoftwareShortcutImageResId(context));
-    }
-
-    private static void initSoftwareShortcut(Context context, View view) {
-        final View dialogView = view.findViewById(R.id.software_shortcut);
-        final TextView summary = dialogView.findViewById(R.id.summary);
-        final int lineHeight = summary.getLineHeight();
-
-        setupShortcutWidget(dialogView,
-                retrieveTitle(context),
-                retrieveSoftwareShortcutSummary(context, lineHeight),
-                retrieveSoftwareShortcutImageResId(context));
-    }
-
-    private static void initHardwareShortcut(Context context, View view) {
-        final View dialogView = view.findViewById(R.id.hardware_shortcut);
-        final CharSequence title = context.getText(
-                R.string.accessibility_shortcut_edit_dialog_title_hardware);
-        final CharSequence summary = context.getText(
-                R.string.accessibility_shortcut_edit_dialog_summary_hardware);
-        setupShortcutWidget(dialogView, title, summary,
-                R.drawable.a11y_shortcut_type_hardware);
-    }
-
-    private static void initMagnifyShortcut(Context context, View view) {
-        final View dialogView = view.findViewById(R.id.triple_tap_shortcut);
-        final CharSequence title = context.getText(
-                R.string.accessibility_shortcut_edit_dialog_title_triple_tap);
-        String summary = context.getString(
-                R.string.accessibility_shortcut_edit_dialog_summary_triple_tap);
-        // Format the number '3' in the summary.
-        final Object[] arguments = {3};
-        summary = MessageFormat.format(summary, arguments);
-
-        setupShortcutWidgetWithImageRawResource(context, dialogView, title, summary,
-                R.raw.a11y_shortcut_type_triple_tap);
-    }
-
-    private static void initTwoFingerDoubleTapMagnificationShortcut(Context context, View view) {
-        // TODO(b/306153204): Update shortcut string and image when UX provides them
-        final View dialogView = view.findViewById(R.id.two_finger_triple_tap_shortcut);
-        final CharSequence title = context.getText(
-                R.string.accessibility_shortcut_edit_dialog_title_two_finger_double_tap);
-        String summary = context.getString(
-                R.string.accessibility_shortcut_edit_dialog_summary_two_finger_double_tap);
-        // Format the number '2' in the summary.
-        final Object[] arguments = {2};
-        summary = MessageFormat.format(summary, arguments);
-
-        setupShortcutWidgetWithImageRawResource(context, dialogView, title, summary,
-                R.raw.a11y_shortcut_type_triple_tap);
-
-        dialogView.setVisibility(View.VISIBLE);
-    }
-
-    private static void initAdvancedWidget(View view) {
-        final LinearLayout advanced = view.findViewById(R.id.advanced_shortcut);
-        final View tripleTap = view.findViewById(R.id.triple_tap_shortcut);
-        advanced.setOnClickListener((View v) -> {
-            advanced.setVisibility(View.GONE);
-            tripleTap.setVisibility(View.VISIBLE);
-        });
-    }
-
-    private static CharSequence retrieveSoftwareShortcutSummaryForSUW(Context context,
-            int lineHeight) {
-        final SpannableStringBuilder sb = new SpannableStringBuilder();
-        if (!AccessibilityUtil.isFloatingMenuEnabled(context)) {
-            sb.append(getSummaryStringWithIcon(context, lineHeight));
-        }
-        return sb;
-    }
-
-    private static CharSequence retrieveTitle(Context context) {
-        int resId;
-        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
-            resId = R.string.accessibility_shortcut_edit_dialog_title_software;
-        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
-            resId = R.string.accessibility_shortcut_edit_dialog_title_software_by_gesture;
-        } else {
-            resId = R.string.accessibility_shortcut_edit_dialog_title_software;
-        }
-        return context.getText(resId);
-    }
-
-    private static CharSequence retrieveSoftwareShortcutSummary(Context context, int lineHeight) {
-        final SpannableStringBuilder sb = new SpannableStringBuilder();
-        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
-            sb.append(getCustomizeAccessibilityButtonLink(context));
-        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
-            final int resId = AccessibilityUtil.isTouchExploreEnabled(context)
-                    ? R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback
-                    : R.string.accessibility_shortcut_edit_dialog_summary_software_gesture;
-            sb.append(context.getText(resId));
-            sb.append("\n\n");
-            sb.append(getCustomizeAccessibilityButtonLink(context));
-        } else {
-            sb.append(getSummaryStringWithIcon(context, lineHeight));
-            sb.append("\n\n");
-            sb.append(getCustomizeAccessibilityButtonLink(context));
-        }
-        return sb;
-    }
-
-    private static int retrieveSoftwareShortcutImageResId(Context context) {
-        int resId;
-        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
-            resId = R.drawable.a11y_shortcut_type_software_floating;
-        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
-            resId = AccessibilityUtil.isTouchExploreEnabled(context)
-                    ? R.drawable.a11y_shortcut_type_software_gesture_talkback
-                    : R.drawable.a11y_shortcut_type_software_gesture;
-        } else {
-            resId = R.drawable.a11y_shortcut_type_software;
-        }
-        return resId;
-    }
-
-    private static CharSequence getCustomizeAccessibilityButtonLink(Context context) {
-        final View.OnClickListener linkListener = v -> new SubSettingLauncher(context)
-                .setDestination(AccessibilityButtonFragment.class.getName())
-                .setSourceMetricsCategory(
-                        SettingsEnums.SWITCH_SHORTCUT_DIALOG_ACCESSIBILITY_BUTTON_SETTINGS)
-                .launch();
-        final AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo(
-                AnnotationSpan.LinkInfo.DEFAULT_ANNOTATION, linkListener);
-        return AnnotationSpan.linkify(context.getText(
-                R.string.accessibility_shortcut_edit_dialog_summary_software_floating), linkInfo);
-    }
-
-    private static SpannableString getSummaryStringWithIcon(Context context, int lineHeight) {
-        final String summary = context
-                .getString(R.string.accessibility_shortcut_edit_dialog_summary_software);
-        final SpannableString spannableMessage = SpannableString.valueOf(summary);
-
-        // Icon
-        final int indexIconStart = summary.indexOf("%s");
-        final int indexIconEnd = indexIconStart + 2;
-        final Drawable icon = context.getDrawable(R.drawable.ic_accessibility_new);
-        final ImageSpan imageSpan = new ImageSpan(icon);
-        imageSpan.setContentDescription("");
-        icon.setBounds(0, 0, lineHeight, lineHeight);
-        spannableMessage.setSpan(
-                imageSpan, indexIconStart, indexIconEnd,
-                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-        return spannableMessage;
-    }
-
-    /**
-     * Returns the color associated with the specified attribute in the context's theme.
-     */
-    @ColorInt
-    private static int getThemeAttrColor(final Context context, final int attributeColor) {
-        final int colorResId = getAttrResourceId(context, attributeColor);
-        return ContextCompat.getColor(context, colorResId);
-    }
-
-    /**
-     * Returns the identifier of the resolved resource assigned to the given attribute.
-     */
-    private static int getAttrResourceId(final Context context, final int attributeColor) {
-        final int[] attrs = {attributeColor};
-        final TypedArray typedArray = context.obtainStyledAttributes(attrs);
-        final int colorResId = typedArray.getResourceId(0, 0);
-        typedArray.recycle();
-        return colorResId;
-    }
-
-    /**
      * Creates a dialog with the given view.
      *
      * @param context A valid context
diff --git a/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java
index e82cd96..8a3f22d 100644
--- a/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceController.java
@@ -21,6 +21,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 
+import androidx.annotation.Nullable;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
@@ -42,6 +43,7 @@
     private boolean mNeedsQSTooltipReshow = false;
 
     /** Returns the accessibility tile component name. */
+    @Nullable
     abstract ComponentName getTileComponentName();
 
     /** Returns the accessibility tile tooltip content. */
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index 8441c2a..f3eab93 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.accessibilityservice.AccessibilityShortcutInfo;
 import android.app.settings.SettingsEnums;
@@ -73,7 +75,8 @@
     private static final String CATEGORY_AUDIO = "audio_category";
     private static final String CATEGORY_SPEECH = "speech_category";
     private static final String CATEGORY_DISPLAY = "display_category";
-    private static final String CATEGORY_DOWNLOADED_SERVICES = "user_installed_services_category";
+    @VisibleForTesting
+    static final String CATEGORY_DOWNLOADED_SERVICES = "user_installed_services_category";
     private static final String CATEGORY_KEYBOARD_OPTIONS = "physical_keyboard_options_category";
     @VisibleForTesting
     static final String CATEGORY_INTERACTION_CONTROL = "interaction_control_category";
@@ -152,7 +155,7 @@
     };
 
     @VisibleForTesting
-    final AccessibilitySettingsContentObserver mSettingsContentObserver;
+    AccessibilitySettingsContentObserver mSettingsContentObserver;
 
     private final Map<String, PreferenceCategory> mCategoryToPrefCategoryMap =
             new ArrayMap<>();
@@ -166,9 +169,14 @@
     private boolean mIsForeground = true;
 
     public AccessibilitySettings() {
+        mSettingsContentObserver = new AccessibilitySettingsContentObserver(mHandler);
+    }
+
+    private void initializeSettingsContentObserver() {
         // Observe changes to anything that the shortcut can toggle, so we can reflect updates
         final Collection<AccessibilityShortcutController.FrameworkFeatureInfo> features =
-                AccessibilityShortcutController.getFrameworkShortcutFeaturesMap().values();
+                AccessibilityShortcutController
+                        .getFrameworkShortcutFeaturesMap().values();
         final List<String> shortcutFeatureKeys = new ArrayList<>(features.size());
         for (AccessibilityShortcutController.FrameworkFeatureInfo feature : features) {
             final String key = feature.getSettingKey();
@@ -186,7 +194,6 @@
         shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_STICKY_KEYS);
         shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SLOW_KEYS);
         shortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BOUNCE_KEYS);
-        mSettingsContentObserver = new AccessibilitySettingsContentObserver(mHandler);
         mSettingsContentObserver.registerKeysToObserverCallback(shortcutFeatureKeys,
                 key -> onContentChanged());
     }
@@ -211,6 +218,7 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        initializeSettingsContentObserver();
         initializeAllPreferences();
         updateAllPreferences();
         mNeedPreferencesUpdate = false;
@@ -283,7 +291,7 @@
                     info.getResolveInfo().serviceInfo.packageName,
                     info.getResolveInfo().serviceInfo.name);
             final boolean shortcutEnabled = AccessibilityUtil.getUserShortcutTypesFromSettings(
-                    context, componentName) != AccessibilityUtil.UserShortcutType.EMPTY;
+                    context, componentName) != DEFAULT;
             serviceState = shortcutEnabled
                     ? context.getText(R.string.accessibility_summary_shortcut_enabled)
                     : context.getText(R.string.generic_accessibility_feature_shortcut_off);
@@ -295,7 +303,7 @@
 
         final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
         final String stateSummaryCombo = context.getString(
-                R.string.preference_summary_default_combination,
+                com.android.settingslib.R.string.preference_summary_default_combination,
                 serviceState, serviceSummary);
 
         return TextUtils.isEmpty(serviceSummary) ? serviceState : stateSummaryCombo;
@@ -373,6 +381,7 @@
     }
 
     protected void updateServicePreferences() {
+        final AccessibilityManager a11yManager = AccessibilityManager.getInstance(getPrefContext());
         // Since services category is auto generated we have to do a pass
         // to generate it since services can come and go and then based on
         // the global accessibility state to decided whether it is enabled.
@@ -403,8 +412,18 @@
                 AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM,
                 mCategoryToPrefCategoryMap.get(CATEGORY_INTERACTION_CONTROL));
 
-        final List<RestrictedPreference> preferenceList = getInstalledAccessibilityList(
-                getPrefContext());
+        final List<AccessibilityShortcutInfo> installedShortcutList =
+                a11yManager.getInstalledAccessibilityShortcutListAsUser(getPrefContext(),
+                        UserHandle.myUserId());
+        final List<AccessibilityServiceInfo> modifiableInstalledServiceList =
+                new ArrayList<>(a11yManager.getInstalledAccessibilityServiceList());
+        final List<RestrictedPreference> preferenceList = getInstalledAccessibilityPreferences(
+                getPrefContext(), installedShortcutList, modifiableInstalledServiceList);
+
+        if (Flags.checkPrebundledIsPreinstalled()) {
+            removeNonPreinstalledComponents(mPreBundledServiceComponentToCategoryMap,
+                    installedShortcutList, modifiableInstalledServiceList);
+        }
 
         final PreferenceCategory downloadedServicesCategory =
                 mCategoryToPrefCategoryMap.get(CATEGORY_DOWNLOADED_SERVICES);
@@ -449,13 +468,21 @@
         updatePreferenceCategoryVisibility(CATEGORY_KEYBOARD_OPTIONS);
     }
 
-    private List<RestrictedPreference> getInstalledAccessibilityList(Context context) {
-        final AccessibilityManager a11yManager = AccessibilityManager.getInstance(context);
+    /**
+     * Gets a list of {@link RestrictedPreference}s for the provided a11y shortcuts and services.
+     *
+     * <p>{@code modifiableInstalledServiceList} may be modified to remove any entries with
+     * matching package name and label as an entry in {@code installedShortcutList}.
+     *
+     * @param installedShortcutList          A list of installed {@link AccessibilityShortcutInfo}s.
+     * @param modifiableInstalledServiceList A modifiable list of installed
+     *                                       {@link AccessibilityServiceInfo}s.
+     */
+    private List<RestrictedPreference> getInstalledAccessibilityPreferences(Context context,
+            List<AccessibilityShortcutInfo> installedShortcutList,
+            List<AccessibilityServiceInfo> modifiableInstalledServiceList) {
         final RestrictedPreferenceHelper preferenceHelper = new RestrictedPreferenceHelper(context);
 
-        final List<AccessibilityShortcutInfo> installedShortcutList =
-                a11yManager.getInstalledAccessibilityShortcutListAsUser(context,
-                        UserHandle.myUserId());
         final List<AccessibilityActivityPreference> activityList =
                 preferenceHelper.createAccessibilityActivityPreferenceList(installedShortcutList);
         final Set<Pair<String, CharSequence>> packageLabelPairs =
@@ -464,16 +491,14 @@
                                 a11yActivityPref.getPackageName(), a11yActivityPref.getLabel())
                         ).collect(Collectors.toSet());
 
-        // Remove duplicate item here, new a ArrayList to copy unmodifiable list result
-        // (getInstalledAccessibilityServiceList).
-        final List<AccessibilityServiceInfo> installedServiceList = new ArrayList<>(
-                a11yManager.getInstalledAccessibilityServiceList());
+        // Remove duplicate A11yServices that are already shown as A11yActivities.
         if (!packageLabelPairs.isEmpty()) {
-            installedServiceList.removeIf(
+            modifiableInstalledServiceList.removeIf(
                     target -> containsPackageAndLabelInList(packageLabelPairs, target));
         }
         final List<RestrictedPreference> serviceList =
-                preferenceHelper.createAccessibilityServicePreferenceList(installedServiceList);
+                preferenceHelper.createAccessibilityServicePreferenceList(
+                        modifiableInstalledServiceList);
 
         final List<RestrictedPreference> preferenceList = new ArrayList<>();
         preferenceList.addAll(activityList);
@@ -482,6 +507,22 @@
         return preferenceList;
     }
 
+    private static void removeNonPreinstalledComponents(
+            Map<ComponentName, PreferenceCategory> componentToCategory,
+            List<AccessibilityShortcutInfo> shortcutInfos,
+            List<AccessibilityServiceInfo> serviceInfos) {
+        for (AccessibilityShortcutInfo info : shortcutInfos) {
+            if (!info.getActivityInfo().applicationInfo.isSystemApp()) {
+                componentToCategory.remove(info.getComponentName());
+            }
+        }
+        for (AccessibilityServiceInfo info : serviceInfos) {
+            if (!info.getResolveInfo().serviceInfo.applicationInfo.isSystemApp()) {
+                componentToCategory.remove(info.getComponentName());
+            }
+        }
+    }
+
     private boolean containsPackageAndLabelInList(
             Set<Pair<String, CharSequence>> packageLabelPairs,
             AccessibilityServiceInfo targetServiceInfo) {
@@ -572,7 +613,7 @@
         }
     }
 
-    private boolean isAnyHardKeyboardsExist() {
+    static boolean isAnyHardKeyboardsExist() {
         for (int deviceId : InputDevice.getDeviceIds()) {
             final InputDevice device = InputDevice.getDevice(deviceId);
             if (device != null && !device.isVirtual() && device.isFullKeyboard()) {
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
index 92259ac..e92c86b 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -16,6 +16,10 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
 import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
 import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_GENERAL_CATEGORY;
 import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_QS_TOOLTIP_TYPE;
@@ -35,7 +39,6 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityManager;
-import android.widget.CheckBox;
 
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
@@ -43,6 +46,7 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
 import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
@@ -61,19 +65,13 @@
 public abstract class AccessibilityShortcutPreferenceFragment extends RestrictedDashboardFragment
         implements ShortcutPreference.OnClickCallback {
     private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
-    protected static final String KEY_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
     protected static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow";
-    protected static final int NOT_SET = -1;
-    // Save user's shortcutType value when savedInstance has value (e.g. device rotated).
-    protected int mSavedCheckBoxValue = NOT_SET;
 
     protected ShortcutPreference mShortcutPreference;
     protected Dialog mDialog;
     private AccessibilityManager.TouchExplorationStateChangeListener
             mTouchExplorationStateChangeListener;
     private AccessibilitySettingsContentObserver mSettingsContentObserver;
-    private CheckBox mSoftwareTypeCheckBox;
-    private CheckBox mHardwareTypeCheckBox;
     private AccessibilityQuickSettingsTooltipWindow mTooltipWindow;
     private boolean mNeedsQSTooltipReshow = false;
     private int mNeedsQSTooltipType = QuickSettingsTooltipType.GUIDE_TO_EDIT;
@@ -100,10 +98,6 @@
 
         // Restore the user shortcut type and tooltip.
         if (savedInstanceState != null) {
-            if (savedInstanceState.containsKey(KEY_SAVED_USER_SHORTCUT_TYPE)) {
-                mSavedCheckBoxValue = savedInstanceState.getInt(KEY_SAVED_USER_SHORTCUT_TYPE,
-                        NOT_SET);
-            }
             if (savedInstanceState.containsKey(KEY_SAVED_QS_TOOLTIP_RESHOW)) {
                 mNeedsQSTooltipReshow = savedInstanceState.getBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW);
             }
@@ -148,7 +142,6 @@
         getPreferenceScreen().addPreference(mShortcutPreference);
 
         mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
-            removeDialog(DialogEnums.EDIT_SHORTCUT);
             mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
         };
 
@@ -180,8 +173,6 @@
         mSettingsContentObserver.register(getContentResolver());
         updateShortcutPreferenceData();
         updateShortcutPreference();
-
-        updateEditShortcutDialogIfNeeded();
     }
 
     @Override
@@ -195,10 +186,6 @@
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
-        final int value = getShortcutTypeCheckBoxValue();
-        if (value != NOT_SET) {
-            outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value);
-        }
         final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing();
         if (mNeedsQSTooltipReshow || isTooltipWindowShowing) {
             outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true);
@@ -210,15 +197,6 @@
     @Override
     public Dialog onCreateDialog(int dialogId) {
         switch (dialogId) {
-            case DialogEnums.EDIT_SHORTCUT:
-                final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
-                        ? AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC_SUW :
-                        AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC;
-                mDialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                        getPrefContext(), dialogType, getShortcutTitle(),
-                        this::callOnAlertDialogCheckboxClicked);
-                setupEditShortcutDialog(mDialog);
-                return mDialog;
             case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
                 if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
                     mDialog = AccessibilityShortcutsTutorial
@@ -245,8 +223,6 @@
     @Override
     public int getDialogMetricsCategory(int dialogId) {
         switch (dialogId) {
-            case DialogEnums.EDIT_SHORTCUT:
-                return SettingsEnums.DIALOG_ACCESSIBILITY_SERVICE_EDIT_SHORTCUT;
             case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
                 return SettingsEnums.DIALOG_ACCESSIBILITY_TUTORIAL;
             default:
@@ -256,17 +232,13 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        if (Flags.editShortcutsInFullScreen()) {
-            EditShortcutsPreferenceFragment.showEditShortcutScreen(
-                    getContext(),
-                    getMetricsCategory(),
-                    getShortcutTitle(),
-                    getComponentName(),
-                    getIntent()
-            );
-        } else {
-            showDialog(DialogEnums.EDIT_SHORTCUT);
-        }
+        EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                getContext(),
+                getMetricsCategory(),
+                getShortcutTitle(),
+                getComponentName(),
+                getIntent()
+        );
     }
 
     @Override
@@ -296,38 +268,6 @@
         return KEY_SHORTCUT_PREFERENCE;
     }
 
-    @VisibleForTesting
-    void setupEditShortcutDialog(Dialog dialog) {
-        final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
-        mSoftwareTypeCheckBox = dialogSoftwareView.findViewById(R.id.checkbox);
-        setDialogTextAreaClickListener(dialogSoftwareView, mSoftwareTypeCheckBox);
-
-        final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
-        mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
-        setDialogTextAreaClickListener(dialogHardwareView, mHardwareTypeCheckBox);
-
-        updateEditShortcutDialogCheckBox();
-    }
-
-    /**
-     * Returns accumulated {@link AccessibilityUtil.UserShortcutType} checkbox value or
-     * {@code NOT_SET} if checkboxes did not exist.
-     */
-    protected int getShortcutTypeCheckBoxValue() {
-        if (mSoftwareTypeCheckBox == null || mHardwareTypeCheckBox == null) {
-            return NOT_SET;
-        }
-
-        int value = AccessibilityUtil.UserShortcutType.EMPTY;
-        if (mSoftwareTypeCheckBox.isChecked()) {
-            value |= AccessibilityUtil.UserShortcutType.SOFTWARE;
-        }
-        if (mHardwareTypeCheckBox.isChecked()) {
-            value |= AccessibilityUtil.UserShortcutType.HARDWARE;
-        }
-        return value;
-    }
-
     /**
      * Returns the shortcut type list which has been checked by user.
      */
@@ -359,35 +299,6 @@
         showQuickSettingsTooltipIfNeeded();
     }
 
-    /**
-     * This method will be invoked when a button in the edit shortcut dialog is clicked.
-     *
-     * @param dialog The dialog that received the click
-     * @param which  The button that was clicked
-     */
-    protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
-        if (getComponentName() == null) {
-            return;
-        }
-
-        final int value = getShortcutTypeCheckBoxValue();
-        saveNonEmptyUserShortcutType(value);
-        AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), value, getComponentName());
-        AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~value, getComponentName());
-        final boolean shortcutAssigned = value != AccessibilityUtil.UserShortcutType.EMPTY;
-        mShortcutPreference.setChecked(shortcutAssigned);
-        mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
-
-        if (mHardwareTypeCheckBox.isChecked()) {
-            AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
-        }
-
-        // Show the quick setting tooltip if the shortcut assigned in the first time
-        if (shortcutAssigned) {
-            showQuickSettingsTooltipIfNeeded();
-        }
-    }
-
     @VisibleForTesting
     void initGeneralCategory() {
         final PreferenceCategory generalCategory = new PreferenceCategory(getPrefContext());
@@ -397,24 +308,6 @@
         getPreferenceScreen().addPreference(generalCategory);
     }
 
-    private void updateEditShortcutDialogIfNeeded() {
-        if (mDialog == null || !mDialog.isShowing()) {
-            return;
-        }
-        AccessibilityDialogUtils.updateShortcutInDialog(getContext(), mDialog);
-    }
-
-    @VisibleForTesting
-    void saveNonEmptyUserShortcutType(int type) {
-        if (type == AccessibilityUtil.UserShortcutType.EMPTY) {
-            return;
-        }
-
-        final PreferredShortcut shortcut = new PreferredShortcut(
-                getComponentName().flattenToString(), type);
-        PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
-    }
-
     /**
      * Overrides to return customized description for general category above shortcut
      *
@@ -437,11 +330,6 @@
         return false;
     }
 
-    private void setDialogTextAreaClickListener(View dialogView, CheckBox checkBox) {
-        final View dialogTextArea = dialogView.findViewById(R.id.container);
-        dialogTextArea.setOnClickListener(v -> checkBox.toggle());
-    }
-
     protected CharSequence getShortcutTypeSummary(Context context) {
         if (!mShortcutPreference.isSettingsEditable()) {
             return context.getText(R.string.accessibility_shortcut_edit_dialog_title_hardware);
@@ -456,16 +344,16 @@
         // LINT.IfChange(shortcut_type_ui_order)
         final List<CharSequence> list = new ArrayList<>();
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if (hasShortcutType(shortcutTypes, AccessibilityUtil.UserShortcutType.QUICK_SETTINGS)) {
+            if (hasShortcutType(shortcutTypes, QUICK_SETTINGS)) {
                 final CharSequence qsTitle = context.getText(
                         R.string.accessibility_feature_shortcut_setting_summary_quick_settings);
                 list.add(qsTitle);
             }
         }
-        if (hasShortcutType(shortcutTypes, AccessibilityUtil.UserShortcutType.SOFTWARE)) {
+        if (hasShortcutType(shortcutTypes, SOFTWARE)) {
             list.add(getSoftwareShortcutTypeSummary(context));
         }
-        if (hasShortcutType(shortcutTypes, AccessibilityUtil.UserShortcutType.HARDWARE)) {
+        if (hasShortcutType(shortcutTypes, HARDWARE)) {
             final CharSequence hardwareTitle = context.getText(
                     R.string.accessibility_shortcut_hardware_keyword);
             list.add(hardwareTitle);
@@ -481,29 +369,7 @@
                 null, LocaleUtils.getConcatenatedString(list));
     }
 
-    private void updateEditShortcutDialogCheckBox() {
-        // If it is during onConfigChanged process then restore the value, or get the saved value
-        // when shortcutPreference is checked.
-        int value = restoreOnConfigChangedValue();
-        if (value == NOT_SET) {
-            final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
-            value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
-                    : AccessibilityUtil.UserShortcutType.EMPTY;
-        }
-
-        mSoftwareTypeCheckBox.setChecked(
-                hasShortcutType(value, AccessibilityUtil.UserShortcutType.SOFTWARE));
-        mHardwareTypeCheckBox.setChecked(
-                hasShortcutType(value, AccessibilityUtil.UserShortcutType.HARDWARE));
-    }
-
-    private int restoreOnConfigChangedValue() {
-        final int savedValue = mSavedCheckBoxValue;
-        mSavedCheckBoxValue = NOT_SET;
-        return savedValue;
-    }
-
-    private boolean hasShortcutType(int value, @AccessibilityUtil.UserShortcutType int type) {
+    private boolean hasShortcutType(int value, @UserShortcutType int type) {
         return (value & type) == type;
     }
 
@@ -514,7 +380,7 @@
 
         final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(
                 getPrefContext(), getComponentName());
-        if (shortcutTypes != AccessibilityUtil.UserShortcutType.EMPTY) {
+        if (shortcutTypes != DEFAULT) {
             final PreferredShortcut shortcut = new PreferredShortcut(
                     getComponentName().flattenToString(), shortcutTypes);
             PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java b/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java
index e286c63..8d908ac 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutsTutorial.java
@@ -19,7 +19,11 @@
 import static android.view.View.GONE;
 import static android.view.View.VISIBLE;
 
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -171,7 +175,7 @@
             AlertDialog dialog, List<TutorialPage> pages, int selectedPageIndex) {
         final Button button = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
         final int pageType = pages.get(selectedPageIndex).getType();
-        final int buttonVisibility = pageType == UserShortcutType.SOFTWARE ? VISIBLE : GONE;
+        final int buttonVisibility = (pageType == SOFTWARE) ? VISIBLE : GONE;
         button.setVisibility(buttonVisibility);
         if (buttonVisibility == VISIBLE) {
             final int textResId = AccessibilityUtil.isFloatingMenuEnabled(dialog.getContext())
@@ -393,7 +397,7 @@
     }
 
     private static TutorialPage createSoftwareTutorialPage(@NonNull Context context) {
-        final int type = UserShortcutType.SOFTWARE;
+        final int type = SOFTWARE;
         final CharSequence title = getSoftwareTitle(context);
         final View image = createSoftwareImage(context);
         final CharSequence instruction = getSoftwareInstruction(context);
@@ -405,7 +409,7 @@
     }
 
     private static TutorialPage createHardwareTutorialPage(@NonNull Context context) {
-        final int type = UserShortcutType.HARDWARE;
+        final int type = HARDWARE;
         final CharSequence title =
                 context.getText(R.string.accessibility_tutorial_dialog_title_volume);
         final View image =
@@ -420,7 +424,7 @@
     }
 
     private static TutorialPage createTripleTapTutorialPage(@NonNull Context context) {
-        final int type = UserShortcutType.TRIPLETAP;
+        final int type = TRIPLETAP;
         final CharSequence title =
                 context.getText(R.string.accessibility_tutorial_dialog_title_triple);
         final View image =
@@ -436,7 +440,7 @@
     }
 
     private static TutorialPage createTwoFingerTripleTapTutorialPage(@NonNull Context context) {
-        final int type = UserShortcutType.TWOFINGER_DOUBLETAP;
+        final int type = TWOFINGER_DOUBLETAP;
         final int numFingers = 2;
         final CharSequence title = context.getString(
                 R.string.accessibility_tutorial_dialog_title_two_finger_double, numFingers);
@@ -454,7 +458,7 @@
 
     private static TutorialPage createQuickSettingsTutorialPage(
             @NonNull Context context, @NonNull CharSequence featureName, boolean inSetupWizard) {
-        final int type = UserShortcutType.QUICK_SETTINGS;
+        final int type = QUICK_SETTINGS;
         final CharSequence title =
                 context.getText(R.string.accessibility_tutorial_dialog_title_quick_setting);
         final View image =
@@ -494,28 +498,28 @@
         // LINT.IfChange(shortcut_type_ui_order)
         final List<TutorialPage> tutorialPages = new ArrayList<>();
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if ((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
-                    == UserShortcutType.QUICK_SETTINGS) {
+            if ((shortcutTypes & QUICK_SETTINGS)
+                    == QUICK_SETTINGS) {
                 tutorialPages.add(
                         createQuickSettingsTutorialPage(context, featureName, inSetupWizard));
             }
         }
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
+        if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
             tutorialPages.add(createSoftwareTutorialPage(context));
         }
 
-        if ((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE) {
+        if ((shortcutTypes & HARDWARE) == HARDWARE) {
             tutorialPages.add(createHardwareTutorialPage(context));
         }
 
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if ((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
-                    == UserShortcutType.TWOFINGER_DOUBLETAP) {
+            if ((shortcutTypes & TWOFINGER_DOUBLETAP)
+                    == TWOFINGER_DOUBLETAP) {
                 tutorialPages.add(createTwoFingerTripleTapTutorialPage(context));
             }
         }
 
-        if ((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP) {
+        if ((shortcutTypes & TRIPLETAP) == TRIPLETAP) {
             tutorialPages.add(createTripleTapTutorialPage(context));
         }
         // LINT.ThenChange(/res/xml/accessibility_edit_shortcuts.xml:shortcut_type_ui_order)
diff --git a/src/com/android/settings/accessibility/AccessibilityUtil.java b/src/com/android/settings/accessibility/AccessibilityUtil.java
index afc7b84..5bf2a3e 100644
--- a/src/com/android/settings/accessibility/AccessibilityUtil.java
+++ b/src/com/android/settings/accessibility/AccessibilityUtil.java
@@ -21,6 +21,12 @@
 import static android.view.WindowInsets.Type.systemBars;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.content.ComponentName;
 import android.content.Context;
@@ -41,6 +47,7 @@
 import androidx.annotation.StringRes;
 import androidx.annotation.VisibleForTesting;
 
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 import com.android.internal.accessibility.util.ShortcutUtils;
 
 import java.lang.annotation.Retention;
@@ -82,41 +89,6 @@
             new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
 
     /**
-     * Annotation for different user shortcut type UI type.
-     *
-     * {@code EMPTY} for displaying default value.
-     * {@code SOFTWARE} for displaying specifying the accessibility services or features which
-     * choose accessibility button in the navigation bar as preferred shortcut.
-     * {@code HARDWARE} for displaying specifying the accessibility services or features which
-     * choose accessibility shortcut as preferred shortcut.
-     * {@code TRIPLETAP} for displaying specifying magnification to be toggled via quickly
-     * tapping screen 3 times as preferred shortcut.
-     * {@code TWOFINGER_DOUBLETAP} for displaying specifying magnification to be toggled via
-     * quickly tapping screen 2 times with two fingers as preferred shortcut.
-     * {@code QUICK_SETTINGS} for displaying specifying the accessibility services or features which
-     * choose Quick Settings as preferred shortcut.
-     */
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({
-            UserShortcutType.EMPTY,
-            UserShortcutType.SOFTWARE,
-            UserShortcutType.HARDWARE,
-            UserShortcutType.TRIPLETAP,
-            UserShortcutType.TWOFINGER_DOUBLETAP,
-            UserShortcutType.QUICK_SETTINGS,
-    })
-
-    /** Denotes the user shortcut type. */
-    public @interface UserShortcutType {
-        int EMPTY = 0;
-        int SOFTWARE = 1;
-        int HARDWARE = 1 << 1;
-        int TRIPLETAP = 1 << 2;
-        int TWOFINGER_DOUBLETAP = 1 << 3;
-        int QUICK_SETTINGS = 1 << 4;
-    }
-
-    /**
      * Denotes the quick setting tooltip type.
      *
      * {@code GUIDE_TO_EDIT} for QS tiles that need to be added by editing.
@@ -230,11 +202,11 @@
             return;
         }
 
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
-            optInValueToSettings(context, UserShortcutType.SOFTWARE, componentName);
+        if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+            optInValueToSettings(context, SOFTWARE, componentName);
         }
-        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
-            optInValueToSettings(context, UserShortcutType.HARDWARE, componentName);
+        if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+            optInValueToSettings(context, HARDWARE, componentName);
         }
     }
 
@@ -301,11 +273,11 @@
             return;
         }
 
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
-            optOutValueFromSettings(context, UserShortcutType.SOFTWARE, componentName);
+        if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+            optOutValueFromSettings(context, SOFTWARE, componentName);
         }
-        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
-            optOutValueFromSettings(context, UserShortcutType.HARDWARE, componentName);
+        if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+            optOutValueFromSettings(context, HARDWARE, componentName);
         }
     }
 
@@ -364,16 +336,16 @@
     static boolean hasValuesInSettings(Context context, int shortcutTypes,
             @NonNull ComponentName componentName) {
         boolean exist = false;
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
-            exist = hasValueInSettings(context, UserShortcutType.SOFTWARE, componentName);
+        if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+            exist = hasValueInSettings(context, SOFTWARE, componentName);
         }
-        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
-            exist |= hasValueInSettings(context, UserShortcutType.HARDWARE, componentName);
+        if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+            exist |= hasValueInSettings(context, HARDWARE, componentName);
         }
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if ((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
-                    == UserShortcutType.QUICK_SETTINGS) {
-                exist |= hasValueInSettings(context, UserShortcutType.QUICK_SETTINGS,
+            if ((shortcutTypes & QUICK_SETTINGS)
+                    == QUICK_SETTINGS) {
+                exist |= hasValueInSettings(context, QUICK_SETTINGS,
                         componentName);
             }
         }
@@ -427,16 +399,16 @@
      */
     static int getUserShortcutTypesFromSettings(Context context,
             @NonNull ComponentName componentName) {
-        int shortcutTypes = UserShortcutType.EMPTY;
-        if (hasValuesInSettings(context, UserShortcutType.SOFTWARE, componentName)) {
-            shortcutTypes |= UserShortcutType.SOFTWARE;
+        int shortcutTypes = DEFAULT;
+        if (hasValuesInSettings(context, SOFTWARE, componentName)) {
+            shortcutTypes |= SOFTWARE;
         }
-        if (hasValuesInSettings(context, UserShortcutType.HARDWARE, componentName)) {
-            shortcutTypes |= UserShortcutType.HARDWARE;
+        if (hasValuesInSettings(context, HARDWARE, componentName)) {
+            shortcutTypes |= HARDWARE;
         }
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if (hasValuesInSettings(context, UserShortcutType.QUICK_SETTINGS, componentName)) {
-                shortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+            if (hasValuesInSettings(context, QUICK_SETTINGS, componentName)) {
+                shortcutTypes |= QUICK_SETTINGS;
             }
         }
 
@@ -455,11 +427,11 @@
         }
 
         switch (shortcutType) {
-            case UserShortcutType.SOFTWARE:
+            case SOFTWARE:
                 return Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
-            case UserShortcutType.HARDWARE:
+            case HARDWARE:
                 return Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
-            case UserShortcutType.TRIPLETAP:
+            case TRIPLETAP:
                 return Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
             default:
                 throw new IllegalArgumentException(
diff --git a/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java
index ad1ae96..19db266 100644
--- a/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizard.java
@@ -27,11 +27,13 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.preference.PreferenceScreen;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
 import com.android.settings.display.AutoBrightnessSettings;
 import com.android.settingslib.Utils;
+import com.android.settingslib.widget.FooterPreference;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupdesign.GlifPreferenceLayout;
@@ -41,10 +43,14 @@
  */
 public class AutoBrightnessPreferenceFragmentForSetupWizard extends AutoBrightnessSettings {
 
+    private static final String FOOTER_PREFERENCE_KEY = "auto_brightness_footer";
+
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
 
+        updateFooterContentDescription();
+
         if (view instanceof GlifPreferenceLayout) {
             final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
             final String title = getContext().getString(
@@ -78,4 +84,15 @@
     public int getMetricsCategory() {
         return SettingsEnums.SUW_ACCESSIBILITY_AUTO_BRIGHTNESS;
     }
+
+    private void updateFooterContentDescription() {
+        final PreferenceScreen screen = getPreferenceScreen();
+        final FooterPreference footerPreference = screen.findPreference(FOOTER_PREFERENCE_KEY);
+        if (footerPreference != null) {
+            String title = getString(R.string.auto_brightness_content_description_title);
+            final StringBuilder sb = new StringBuilder();
+            sb.append(title).append("\n\n").append(footerPreference.getTitle());
+            footerPreference.setContentDescription(sb);
+        }
+    }
 }
diff --git a/src/com/android/settings/accessibility/AvailableHearingDeviceUpdater.java b/src/com/android/settings/accessibility/AvailableHearingDeviceUpdater.java
index f600b03..31d069a 100644
--- a/src/com/android/settings/accessibility/AvailableHearingDeviceUpdater.java
+++ b/src/com/android/settings/accessibility/AvailableHearingDeviceUpdater.java
@@ -27,7 +27,7 @@
  */
 public class AvailableHearingDeviceUpdater extends AvailableMediaBluetoothDeviceUpdater {
 
-    private static final String PREF_KEY = "connected_hearing_device";
+    private static final String PREF_KEY_PREFIX = "connected_hearing_device_";
 
     public AvailableHearingDeviceUpdater(Context context,
             DevicePreferenceCallback devicePreferenceCallback, int metricsCategory) {
@@ -42,7 +42,7 @@
     }
 
     @Override
-    protected String getPreferenceKey() {
-        return PREF_KEY;
+    protected String getPreferenceKeyPrefix() {
+        return PREF_KEY_PREFIX;
     }
 }
diff --git a/src/com/android/settings/accessibility/BalanceSeekBar.java b/src/com/android/settings/accessibility/BalanceSeekBar.java
index 19301ae..7441d6f 100644
--- a/src/com/android/settings/accessibility/BalanceSeekBar.java
+++ b/src/com/android/settings/accessibility/BalanceSeekBar.java
@@ -20,6 +20,7 @@
 
 import static com.android.settings.Utils.isNightMode;
 
+import android.annotation.StringRes;
 import android.content.Context;
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
@@ -86,6 +87,14 @@
                 Settings.System.putFloatForUser(mContext.getContentResolver(),
                         Settings.System.MASTER_BALANCE, balance, UserHandle.USER_CURRENT);
             }
+            final int max = getMax();
+            if (Flags.audioBalanceStateDescription() && max > 0) {
+                seekBar.setStateDescription(createStateDescription(mContext,
+                        R.string.audio_seek_bar_state_left_first,
+                        R.string.audio_seek_bar_state_right_first,
+                        progress,
+                        max));
+            }
             // If fromUser is false, the call is a set from the framework on creation or on
             // internal update. The progress may be zero, ignore (don't change system settings).
 
@@ -161,5 +170,19 @@
         canvas.restore();
         super.onDraw(canvas);
     }
+
+    private static CharSequence createStateDescription(Context context,
+            @StringRes int resIdLeftFirst, @StringRes int resIdRightFirst,
+            int progress, float max) {
+        final boolean isLayoutRtl = context.getResources().getConfiguration().getLayoutDirection()
+                == LAYOUT_DIRECTION_RTL;
+        final int rightPercent = (int) (100 * (progress / max));
+        final int leftPercent = 100 - rightPercent;
+        if (rightPercent > leftPercent || (rightPercent == leftPercent && isLayoutRtl)) {
+            return context.getString(resIdRightFirst, rightPercent, leftPercent);
+        } else {
+            return context.getString(resIdLeftFirst, leftPercent, rightPercent);
+        }
+    }
 }
 
diff --git a/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java b/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
index 74cb534..700a013 100644
--- a/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningAppearancePreferenceController.java
@@ -42,7 +42,8 @@
 
     @Override
     public CharSequence getSummary() {
-        return mContext.getString(R.string.preference_summary_default_combination,
+        return mContext.getString(
+                com.android.settingslib.R.string.preference_summary_default_combination,
                 geFontScaleSummary(), getPresetSummary());
     }
 
diff --git a/src/com/android/settings/accessibility/DaltonizerPreferenceUtil.java b/src/com/android/settings/accessibility/DaltonizerPreferenceUtil.java
new file mode 100644
index 0000000..459dbb9
--- /dev/null
+++ b/src/com/android/settings/accessibility/DaltonizerPreferenceUtil.java
@@ -0,0 +1,59 @@
+/*
+ * 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 static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+
+import android.content.ContentResolver;
+import android.provider.Settings;
+import android.view.accessibility.AccessibilityManager;
+
+import com.google.common.primitives.Ints;
+
+/**
+ * Utility class for retrieving accessibility daltonizer related values in secure settings.
+ */
+public class DaltonizerPreferenceUtil {
+
+    /**
+     * Return the daltonizer display mode stored in
+     * {@link Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER}.
+     * By default it returns {@link DALTONIZER_CORRECT_DEUTERANOMALY}.
+     */
+    public static int getSecureAccessibilityDaltonizerValue(ContentResolver resolver) {
+        final String daltonizerStringValue = Settings.Secure.getString(
+                resolver, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER);
+        if (daltonizerStringValue == null) {
+            return AccessibilityManager.DALTONIZER_CORRECT_DEUTERANOMALY;
+        }
+        final Integer daltonizerIntValue = Ints.tryParse(daltonizerStringValue);
+        return daltonizerIntValue == null ? AccessibilityManager.DALTONIZER_CORRECT_DEUTERANOMALY
+                : daltonizerIntValue;
+    }
+
+    /**
+     * Returns the daltonizer enabled value in
+     * {@link Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED}.
+     * By default it returns false.
+     */
+    public static boolean isSecureAccessibilityDaltonizerEnabled(ContentResolver resolver) {
+        return Settings.Secure.getInt(
+                resolver,
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
+                OFF) == ON;
+    }
+}
diff --git a/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceController.java b/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceController.java
index 75d9229..5a8c710 100644
--- a/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceController.java
+++ b/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceController.java
@@ -19,76 +19,56 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.res.Resources;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.os.Looper;
 import android.provider.Settings;
 import android.view.View;
-import android.view.accessibility.AccessibilityManager;
 
-import androidx.lifecycle.LifecycleObserver;
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
-import com.google.common.primitives.Ints;
-
 import java.util.HashMap;
 import java.util.Map;
 
 /** Controller class that control radio button of accessibility daltonizer settings. */
 public class DaltonizerRadioButtonPreferenceController extends BasePreferenceController implements
-        LifecycleObserver, SelectorWithWidgetPreference.OnClickListener {
-    private static final String TYPE = Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER;
+        DefaultLifecycleObserver, SelectorWithWidgetPreference.OnClickListener {
+    private static final String DALTONIZER_TYPE_SETTINGS_KEY =
+            Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER;
 
     // pair the preference key and daltonizer value.
     private final Map<String, Integer> mAccessibilityDaltonizerKeyToValueMap = new HashMap<>();
 
     // RadioButtonPreference key, each preference represent a daltonizer value.
     private final ContentResolver mContentResolver;
+    private final ContentObserver mSettingsContentObserver;
     private final Resources mResources;
-    private DaltonizerRadioButtonPreferenceController.OnChangeListener mOnChangeListener;
     private SelectorWithWidgetPreference mPreference;
-    private int mAccessibilityDaltonizerValue;
 
     public DaltonizerRadioButtonPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-
         mContentResolver = context.getContentResolver();
         mResources = context.getResources();
-    }
-
-    public DaltonizerRadioButtonPreferenceController(Context context, Lifecycle lifecycle,
-            String preferenceKey) {
-        super(context, preferenceKey);
-
-        mContentResolver = context.getContentResolver();
-        mResources = context.getResources();
-
-        if (lifecycle != null) {
-            lifecycle.addObserver(this);
-        }
-    }
-
-    protected static int getSecureAccessibilityDaltonizerValue(ContentResolver resolver,
-            String name) {
-        final String daltonizerStringValue = Settings.Secure.getString(resolver, name);
-        if (daltonizerStringValue == null) {
-            return AccessibilityManager.DALTONIZER_CORRECT_DEUTERANOMALY;
-        }
-        final Integer daltonizerIntValue = Ints.tryParse(daltonizerStringValue);
-        return daltonizerIntValue == null ? AccessibilityManager.DALTONIZER_CORRECT_DEUTERANOMALY
-                : daltonizerIntValue;
-    }
-
-    public void setOnChangeListener(
-            DaltonizerRadioButtonPreferenceController.OnChangeListener listener) {
-        mOnChangeListener = listener;
+        mSettingsContentObserver = new ContentObserver(new Handler(Looper.getMainLooper())) {
+            @Override
+            public void onChange(boolean selfChange) {
+                if (mPreference != null) {
+                    updateState(mPreference);
+                }
+            }
+        };
     }
 
     private Map<String, Integer> getDaltonizerValueToKeyMap() {
-        if (mAccessibilityDaltonizerKeyToValueMap.size() == 0) {
+        if (mAccessibilityDaltonizerKeyToValueMap.isEmpty()) {
 
             final String[] daltonizerKeys = mResources.getStringArray(
                     R.array.daltonizer_mode_keys);
@@ -104,12 +84,8 @@
         return mAccessibilityDaltonizerKeyToValueMap;
     }
 
-    private void putSecureString(String name, String value) {
-        Settings.Secure.putString(mContentResolver, name, value);
-    }
-
     private void handlePreferenceChange(String value) {
-        putSecureString(TYPE, value);
+        Settings.Secure.putString(mContentResolver, DALTONIZER_TYPE_SETTINGS_KEY, value);
     }
 
     @Override
@@ -124,44 +100,39 @@
                 screen.findPreference(getPreferenceKey());
         mPreference.setOnClickListener(this);
         mPreference.setAppendixVisibility(View.GONE);
-        updateState(mPreference);
     }
 
     @Override
     public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
         final int value = getDaltonizerValueToKeyMap().get(mPreferenceKey);
         handlePreferenceChange(String.valueOf(value));
-        if (mOnChangeListener != null) {
-            mOnChangeListener.onCheckedChanged(mPreference);
-        }
     }
 
     private int getAccessibilityDaltonizerValue() {
-        final int daltonizerValue = getSecureAccessibilityDaltonizerValue(mContentResolver,
-                TYPE);
+        final int daltonizerValue =
+                DaltonizerPreferenceUtil.getSecureAccessibilityDaltonizerValue(mContentResolver);
         return daltonizerValue;
     }
 
-    protected void updatePreferenceCheckedState(int value) {
-        if (mAccessibilityDaltonizerValue == value) {
-            mPreference.setChecked(true);
-        }
-    }
-
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        mAccessibilityDaltonizerValue = getAccessibilityDaltonizerValue();
-
-        // reset RadioButton
-        mPreference.setChecked(false);
+        final int daltonizerValueInSetting = getAccessibilityDaltonizerValue();
         final int preferenceValue = getDaltonizerValueToKeyMap().get(mPreference.getKey());
-        updatePreferenceCheckedState(preferenceValue);
+        mPreference.setChecked(preferenceValue == daltonizerValueInSetting);
     }
 
-    /** Listener interface handles checked event. */
-    public interface OnChangeListener {
-        /** A hook that is called when preference checked. */
-        void onCheckedChanged(Preference preference);
+    @Override
+    public void onResume(@NonNull LifecycleOwner owner) {
+        mContentResolver.registerContentObserver(
+                Settings.Secure.getUriFor(DALTONIZER_TYPE_SETTINGS_KEY),
+                /* notifyForDescendants= */ false,
+                mSettingsContentObserver
+        );
+    }
+
+    @Override
+    public void onPause(@NonNull LifecycleOwner owner) {
+        mContentResolver.unregisterContentObserver(mSettingsContentObserver);
     }
 }
diff --git a/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java b/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java
index 7dcd661..6a9977a 100644
--- a/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java
+++ b/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceController.java
@@ -15,28 +15,55 @@
  */
 package com.android.settings.accessibility;
 
+import static com.android.settings.accessibility.DaltonizerPreferenceUtil.isSecureAccessibilityDaltonizerEnabled;
+import static com.android.settings.accessibility.DaltonizerPreferenceUtil.getSecureAccessibilityDaltonizerValue;
+
 import android.content.ContentResolver;
 import android.content.Context;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.os.Looper;
 import android.provider.Settings;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.server.accessibility.Flags;
+import com.android.settings.R;
 import com.android.settings.core.SliderPreferenceController;
 import com.android.settings.widget.SeekBarPreference;
 
 /**
  * The controller of the seekbar preference for the saturation level of color correction.
  */
-public class DaltonizerSaturationSeekbarPreferenceController extends SliderPreferenceController {
+public class DaltonizerSaturationSeekbarPreferenceController
+        extends SliderPreferenceController
+        implements DefaultLifecycleObserver {
 
     private static final int DEFAULT_SATURATION_LEVEL = 7;
     private static final int SATURATION_MAX = 10;
-    private static final int SATURATION_MIN = 0;
+    private static final int SATURATION_MIN = 1;
 
     private int mSliderPosition;
     private final ContentResolver mContentResolver;
 
+    @Nullable
+    private SeekBarPreference mPreference;
+
+    public final ContentObserver mContentObserver = new ContentObserver(
+            new Handler(Looper.getMainLooper())) {
+        @Override
+        public void onChange(boolean selfChange) {
+            if (mPreference != null) {
+                updateState(mPreference);
+            }
+        }
+    };
+
     public DaltonizerSaturationSeekbarPreferenceController(Context context,
             String preferenceKey) {
         super(context, preferenceKey);
@@ -50,9 +77,32 @@
     }
 
     @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (!isAvailable()) return;
+        mContentResolver.registerContentObserver(
+                Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER),
+                true,
+                mContentObserver
+        );
+        mContentResolver.registerContentObserver(
+                Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED),
+                true,
+                mContentObserver
+        );
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (!isAvailable()) return;
+        mContentResolver.unregisterContentObserver(mContentObserver);
+        mPreference = null;
+    }
+
+    @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         SeekBarPreference preference = screen.findPreference(getPreferenceKey());
+        mPreference = preference;
         preference.setMax(getMax());
         preference.setMin(getMin());
         preference.setProgress(mSliderPosition);
@@ -62,7 +112,7 @@
     @Override
     public int getAvailabilityStatus() {
         if (Flags.enableColorCorrectionSaturation()) {
-            return AVAILABLE;
+            return shouldSeekBarEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
         }
         return CONDITIONALLY_UNAVAILABLE;
     }
@@ -86,6 +136,21 @@
     }
 
     @Override
+    public void updateState(Preference preference) {
+        if (preference == null) {
+            return;
+        }
+
+        var shouldSeekbarEnabled = shouldSeekBarEnabled();
+        // setSummary not working yet on SeekBarPreference.
+        String summary = shouldSeekbarEnabled
+                ? ""
+                : mContext.getString(R.string.daltonizer_saturation_unavailable_summary);
+        preference.setSummary(summary);
+        preference.setEnabled(shouldSeekbarEnabled);
+    }
+
+    @Override
     public int getMax() {
         return SATURATION_MAX;
     }
@@ -94,4 +159,13 @@
     public int getMin() {
         return SATURATION_MIN;
     }
+
+    private boolean shouldSeekBarEnabled() {
+        boolean enabled = isSecureAccessibilityDaltonizerEnabled(mContentResolver);
+        int mode = getSecureAccessibilityDaltonizerValue(mContentResolver);
+
+        // mode == 0 is gray scale where saturation level isn't applicable.
+        // mode == -1 is disabled and also default.
+        return enabled && mode != -1 && mode != 0;
+    }
 }
diff --git a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
index ae1adfa..fe69b2b 100644
--- a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
+++ b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
@@ -110,7 +110,7 @@
         if (preference == null) {
             return;
         }
-        preference.setEnabled(FlashNotificationsUtil.getFlashNotificationsState(mContext)
+        preference.setVisible(FlashNotificationsUtil.getFlashNotificationsState(mContext)
                 != FlashNotificationsUtil.State.OFF);
     }
 }
diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
index eb7b27d..9c8560b 100644
--- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
@@ -17,7 +17,6 @@
 package com.android.settings.accessibility;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
-import android.content.DialogInterface;
 
 import com.android.settingslib.accessibility.AccessibilityUtils;
 
@@ -63,17 +62,4 @@
         super.onAllowButtonFromShortcutToggleClicked();
         AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
     }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Enables accessibility service when shortcutPreference is checked.
-     */
-    @Override
-    protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
-        super.callOnAlertDialogCheckboxClicked(dialog, which);
-
-        final boolean enabled = mShortcutPreference.isChecked();
-        AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, enabled);
-    }
 }
diff --git a/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java b/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java
index 6d988ac..840caa6 100644
--- a/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceController.java
@@ -19,16 +19,21 @@
 
 import android.content.Context;
 import android.hardware.input.InputSettings;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.inputmethod.PhysicalKeyboardFragment;
 
+import java.util.List;
+
 /**
  * A toggle preference controller for keyboard bounce key.
  */
 public class KeyboardBounceKeyPreferenceController extends TogglePreferenceController {
-
+    private static final String TAG = "BounceKeyPrefController";
     static final String PREF_KEY = "toggle_keyboard_bounce_keys";
 
     public KeyboardBounceKeyPreferenceController(Context context, String preferenceKey) {
@@ -58,4 +63,17 @@
     public int getSliceHighlightMenuRes() {
         return R.string.menu_key_accessibility;
     }
+
+    @Override
+    public void updateNonIndexableKeys(@NonNull List<String> keys) {
+        super.updateNonIndexableKeys(keys);
+
+        if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
+            if (keys.contains(getPreferenceKey())) {
+                Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
+                return;
+            }
+            keys.add(getPreferenceKey());
+        }
+    }
 }
diff --git a/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java b/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java
index 8bd2316..bb9d950 100644
--- a/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceController.java
@@ -19,15 +19,21 @@
 
 import android.content.Context;
 import android.hardware.input.InputSettings;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.inputmethod.PhysicalKeyboardFragment;
 
+import java.util.List;
+
 /**
  * A toggle preference controller for keyboard slow key.
  */
 public class KeyboardSlowKeyPreferenceController extends TogglePreferenceController {
+    private static final String TAG = "SlowKeyPrefController";
 
     static final String PREF_KEY = "toggle_keyboard_slow_keys";
 
@@ -58,4 +64,17 @@
     public int getSliceHighlightMenuRes() {
         return R.string.menu_key_accessibility;
     }
+
+    @Override
+    public void updateNonIndexableKeys(@NonNull List<String> keys) {
+        super.updateNonIndexableKeys(keys);
+
+        if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
+            if (keys.contains(getPreferenceKey())) {
+                Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
+                return;
+            }
+            keys.add(getPreferenceKey());
+        }
+    }
 }
diff --git a/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java b/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java
index ee5559d..c896c9c 100644
--- a/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceController.java
@@ -19,15 +19,20 @@
 
 import android.content.Context;
 import android.hardware.input.InputSettings;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 
+import java.util.List;
+
 /**
  * A toggle preference controller for keyboard sticky key.
  */
 public class KeyboardStickyKeyPreferenceController extends TogglePreferenceController {
-
+    private static final String TAG = "StickyKeyPrefController";
     static final String PREF_KEY = "toggle_keyboard_sticky_keys";
 
     public KeyboardStickyKeyPreferenceController(Context context, String preferenceKey) {
@@ -55,4 +60,17 @@
     public int getSliceHighlightMenuRes() {
         return R.string.menu_key_accessibility;
     }
+
+    @Override
+    public void updateNonIndexableKeys(@NonNull List<String> keys) {
+        super.updateNonIndexableKeys(keys);
+
+        if (Flags.fixA11ySettingsSearch() && !AccessibilitySettings.isAnyHardKeyboardsExist()) {
+            if (keys.contains(getPreferenceKey())) {
+                Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list.");
+                return;
+            }
+            keys.add(getPreferenceKey());
+        }
+    }
 }
diff --git a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
index 21800b9..818eb5e 100644
--- a/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
+++ b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
@@ -29,7 +29,6 @@
 import android.os.Handler;
 import android.os.VibrationAttributes;
 import android.os.Vibrator;
-import android.os.vibrator.Flags;
 import android.provider.Settings;
 import android.util.Log;
 
@@ -110,10 +109,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        if (Flags.keyboardCategoryEnabled()
-                && mContext.getResources().getBoolean(R.bool.config_keyboard_vibration_supported)
-                && mContext.getResources().getFloat(
-                com.android.internal.R.dimen.config_keyboardHapticFeedbackFixedAmplitude) > 0) {
+        if (mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_keyboardVibrationSettingsSupported)) {
             return AVAILABLE;
         }
         return UNSUPPORTED_ON_DEVICE;
@@ -131,15 +128,9 @@
         mMetricsFeatureProvider.action(mContext,
                 SettingsEnums.ACTION_KEYBOARD_VIBRATION_CHANGED, isChecked);
         if (success && isChecked) {
-            // Play the preview vibration effect when the toggle is on.
-            final VibrationAttributes touchAttrs =
-                    VibrationPreferenceConfig.createPreviewVibrationAttributes(
-                            VibrationAttributes.USAGE_TOUCH);
-            final VibrationAttributes keyboardAttrs =
-                    new VibrationAttributes.Builder(touchAttrs)
-                            .setCategory(VibrationAttributes.CATEGORY_KEYBOARD)
-                            .build();
-            VibrationPreferenceConfig.playVibrationPreview(mVibrator, keyboardAttrs);
+            // Play the preview vibration effect for the IME feedback when the toggle is on.
+            VibrationPreferenceConfig.playVibrationPreview(
+                    mVibrator, VibrationAttributes.USAGE_IME_FEEDBACK);
         }
         return true;
     }
@@ -155,8 +146,8 @@
     }
 
     private boolean isKeyboardVibrationSwitchEnabled() {
-        return Settings.System.getInt(mContext.getContentResolver(), KEYBOARD_VIBRATION_ENABLED,
-                mVibrator.isDefaultKeyboardVibrationEnabled() ? ON : OFF) == ON;
+        return Settings.System.getInt(
+                mContext.getContentResolver(), KEYBOARD_VIBRATION_ENABLED, ON) == ON;
     }
 
     private boolean updateKeyboardVibrationSetting(boolean enable) {
diff --git a/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceController.java b/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceController.java
index 3e3b8d9..a6d87f2 100644
--- a/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceController.java
@@ -28,6 +28,7 @@
 import android.provider.Settings;
 
 import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -103,16 +104,10 @@
 
     @Override
     public CharSequence getSummary() {
-        if (!mSwitchPreference.isEnabled()) {
-            return mContext.getString(
-                    R.string.accessibility_magnification_one_finger_panning_summary_unavailable);
-        }
-
-        return (isChecked())
-                ? mContext.getString(
-                        R.string.accessibility_magnification_one_finger_panning_summary_on)
-                : mContext.getString(
-                        R.string.accessibility_magnification_one_finger_panning_summary_off);
+        @StringRes int resId = mSwitchPreference.isEnabled()
+                ? R.string.accessibility_magnification_one_finger_panning_summary
+                : R.string.accessibility_magnification_one_finger_panning_summary_unavailable;
+        return mContext.getString(resId);
     }
 
     @Override
diff --git a/src/com/android/settings/accessibility/PreferredShortcut.java b/src/com/android/settings/accessibility/PreferredShortcut.java
index 1654992..c26960e 100644
--- a/src/com/android/settings/accessibility/PreferredShortcut.java
+++ b/src/com/android/settings/accessibility/PreferredShortcut.java
@@ -19,7 +19,7 @@
 import android.content.ComponentName;
 import android.text.TextUtils;
 
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 
 import com.google.common.base.Objects;
 
diff --git a/src/com/android/settings/accessibility/PreferredShortcuts.java b/src/com/android/settings/accessibility/PreferredShortcuts.java
index 895430a..c3e64ab 100644
--- a/src/com/android/settings/accessibility/PreferredShortcuts.java
+++ b/src/com/android/settings/accessibility/PreferredShortcuts.java
@@ -16,6 +16,10 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.SharedPreferences;
@@ -27,8 +31,8 @@
 import androidx.annotation.VisibleForTesting;
 
 import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 import com.android.internal.accessibility.util.ShortcutUtils;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 
 import java.util.HashSet;
 import java.util.Map;
@@ -43,18 +47,18 @@
     /**
      * Retrieves the user preferred shortcut types for the given {@code componentName} from
      * SharedPreferences. If the user doesn't have a preferred shortcut,
-     * {@link ShortcutConstants.UserShortcutType.SOFTWARE} is returned.
+     * {@link SOFTWARE} is returned.
      *
      * @param context       {@link Context} to access the {@link SharedPreferences}
      * @param componentName Name of the service or activity, should be the format of {@link
      *                      ComponentName#flattenToString()}.
-     * @return {@link ShortcutConstants.UserShortcutType}
+     * @return {@link UserShortcutType}
      */
-    @ShortcutConstants.UserShortcutType
+    @UserShortcutType
     public static int retrieveUserShortcutType(
             @NonNull Context context, @NonNull String componentName) {
         return retrieveUserShortcutType(
-                context, componentName, ShortcutConstants.UserShortcutType.SOFTWARE);
+                context, componentName, SOFTWARE);
     }
 
     /**
@@ -66,13 +70,13 @@
      *                         ComponentName#flattenToString()}.
      * @param defaultTypes The default shortcut types to use if the user doesn't have a
      *                         preferred shortcut.
-     * @return {@link ShortcutConstants.UserShortcutType}
+     * @return {@link UserShortcutType}
      */
-    @ShortcutConstants.UserShortcutType
+    @UserShortcutType
     public static int retrieveUserShortcutType(
             @NonNull Context context,
             @NonNull String componentName,
-            @ShortcutConstants.UserShortcutType int defaultTypes) {
+            @UserShortcutType int defaultTypes) {
 
         // Create a mutable set to modify
         final Set<String> info = new HashSet<>(getFromSharedPreferences(context));
@@ -121,7 +125,7 @@
         final Map<Integer, Set<String>> shortcutTypeToTargets = new ArrayMap<>();
         for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
             if (!Flags.a11yQsShortcut()
-                    && shortcutType == ShortcutConstants.UserShortcutType.QUICK_SETTINGS) {
+                    && shortcutType == QUICK_SETTINGS) {
                 // Skip saving quick setting as preferred shortcut option when flag is not enabled
                 continue;
             }
@@ -132,14 +136,14 @@
         }
 
         for (String target : components) {
-            int shortcutTypes = ShortcutConstants.UserShortcutType.DEFAULT;
+            int shortcutTypes = DEFAULT;
             for (Map.Entry<Integer, Set<String>> entry : shortcutTypeToTargets.entrySet()) {
                 if (entry.getValue().contains(target)) {
                     shortcutTypes |= entry.getKey();
                 }
             }
 
-            if (shortcutTypes != ShortcutConstants.UserShortcutType.DEFAULT) {
+            if (shortcutTypes != DEFAULT) {
                 final PreferredShortcut shortcut = new PreferredShortcut(
                         target, shortcutTypes);
                 PreferredShortcuts.saveUserShortcutType(context, shortcut);
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
index 3ca089c..e7f59f4 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
@@ -29,6 +29,7 @@
 import android.provider.Settings;
 import android.text.TextUtils;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -125,9 +126,14 @@
         mContext.getContentResolver().unregisterContentObserver(mSettingsContentObserver);
     }
 
+    @Nullable
     @Override
     protected ComponentName getTileComponentName() {
-        return REDUCE_BRIGHT_COLORS_TILE_SERVICE_COMPONENT_NAME;
+        // TODO: When clean up the feature flag, change the parent class from
+        // AccessibilityQuickSettingsPrimarySwitchPreferenceController to
+        // TogglePreferenceController
+        return android.view.accessibility.Flags.a11yQsShortcut()
+                ? null : REDUCE_BRIGHT_COLORS_TILE_SERVICE_COMPONENT_NAME;
     }
 
     @Override
diff --git a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
index 2cabc76..c324130 100644
--- a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
+++ b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
@@ -128,7 +128,13 @@
             AccessibilityActivityPreference preference = new AccessibilityActivityPreference(
                     mContext, componentName.getPackageName(), activityInfo.applicationInfo.uid,
                     info);
-            setRestrictedPreferenceEnabled(preference, permittedServices, serviceEnabled);
+            if (Flags.neverRestrictAccessibilityActivity()) {
+                // Accessibility Activities do not have elevated privileges so restricting
+                // them based on ECM or device admin does not give any value.
+                preference.setEnabled(true);
+            } else {
+                setRestrictedPreferenceEnabled(preference, permittedServices, serviceEnabled);
+            }
             preferenceList.add(preference);
         }
         return preferenceList;
diff --git a/src/com/android/settings/accessibility/SavedHearingDeviceUpdater.java b/src/com/android/settings/accessibility/SavedHearingDeviceUpdater.java
index 645d091..1de9c72 100644
--- a/src/com/android/settings/accessibility/SavedHearingDeviceUpdater.java
+++ b/src/com/android/settings/accessibility/SavedHearingDeviceUpdater.java
@@ -29,7 +29,7 @@
  */
 public class SavedHearingDeviceUpdater extends SavedBluetoothDeviceUpdater {
 
-    private static final String PREF_KEY = "saved_hearing_device";
+    private static final String PREF_KEY_PREFIX = "saved_hearing_device_";
 
     public SavedHearingDeviceUpdater(Context context,
             DevicePreferenceCallback devicePreferenceCallback, int metricsCategory) {
@@ -47,7 +47,7 @@
     }
 
     @Override
-    protected String getPreferenceKey() {
-        return PREF_KEY;
+    protected String getPreferenceKeyPrefix() {
+        return PREF_KEY_PREFIX;
     }
 }
diff --git a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
index ca77f16..2be843c 100644
--- a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
+++ b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
@@ -28,11 +28,13 @@
 import android.graphics.Color;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.provider.Settings;
 import android.view.View;
 
 import androidx.annotation.ColorInt;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 
@@ -40,8 +42,6 @@
 
 import java.util.Timer;
 import java.util.TimerTask;
-import java.util.function.Consumer;
-
 
 /**
  * DialogFragment for Screen flash notification color picker.
@@ -49,30 +49,33 @@
 public class ScreenFlashNotificationColorDialogFragment extends DialogFragment implements
         ColorSelectorLayout.OnCheckedChangeListener {
 
+    private static final int DEFAULT_COLOR = Color.TRANSPARENT;
     private static final int PREVIEW_LONG_TIME_MS = 5000;
     private static final int BETWEEN_STOP_AND_START_DELAY_MS = 250;
     private static final int MARGIN_FOR_STOP_DELAY_MS = 100;
 
+    @VisibleForTesting
+    static final String EXTRA_COLOR = "extra_color";
     @ColorInt
-    private int mCurrentColor = Color.TRANSPARENT;
-    private Consumer<Integer> mConsumer;
+    private int mCurrentColor = DEFAULT_COLOR;
 
     private Timer mTimer = null;
     private Boolean mIsPreview = false;
 
-    static ScreenFlashNotificationColorDialogFragment getInstance(int initialColor,
-            Consumer<Integer> colorConsumer) {
+    static ScreenFlashNotificationColorDialogFragment getInstance(int initialColor) {
         final ScreenFlashNotificationColorDialogFragment result =
                 new ScreenFlashNotificationColorDialogFragment();
-        result.mCurrentColor = initialColor;
-        result.mConsumer = colorConsumer != null ? colorConsumer : i -> {
-        };
+        Bundle bundle = new Bundle();
+        bundle.putInt(EXTRA_COLOR, initialColor);
+        result.setArguments(bundle);
         return result;
     }
 
     @NonNull
     @Override
     public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+        mCurrentColor = getArguments().getInt(EXTRA_COLOR, DEFAULT_COLOR);
+
         final View dialogView = getLayoutInflater().inflate(R.layout.layout_color_selector_dialog,
                 null);
 
@@ -89,9 +92,10 @@
                 .setNeutralButton(R.string.flash_notifications_preview, null)
                 .setNegativeButton(R.string.color_selector_dialog_cancel, (dialog, which) -> {
                 })
-                .setPositiveButton(R.string.color_selector_dialog_done, (dialog, which) -> {
+                .setPositiveButton(R.string.color_selector_dialog_save, (dialog, which) -> {
                     mCurrentColor = colorSelectorLayout.getCheckedColor(DEFAULT_SCREEN_FLASH_COLOR);
-                    mConsumer.accept(mCurrentColor);
+                    Settings.System.putInt(getContext().getContentResolver(),
+                            Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, mCurrentColor);
                 })
                 .create();
         createdDialog.setOnShowListener(
diff --git a/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java b/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
index bd54aca..3ebcd1c 100644
--- a/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
+++ b/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
@@ -21,10 +21,17 @@
 import static com.android.settings.accessibility.FlashNotificationsUtil.DEFAULT_SCREEN_FLASH_COLOR;
 
 import android.content.Context;
+import android.database.ContentObserver;
 import android.graphics.Color;
+import android.net.Uri;
+import android.os.Handler;
 import android.provider.Settings;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -32,18 +39,21 @@
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 
-import java.util.function.Consumer;
-
 /**
  * Controller for Screen flash notification.
  */
-public class ScreenFlashNotificationPreferenceController extends TogglePreferenceController {
+public class ScreenFlashNotificationPreferenceController extends
+        TogglePreferenceController implements DefaultLifecycleObserver {
+
+    private final FlashNotificationColorContentObserver mFlashNotificationColorContentObserver;
 
     private Fragment mParentFragment;
     private Preference mPreference;
 
     public ScreenFlashNotificationPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
+        mFlashNotificationColorContentObserver = new FlashNotificationColorContentObserver(
+                new Handler(mContext.getMainLooper()));
     }
 
     public void setParentFragment(Fragment parentFragment) {
@@ -51,6 +61,16 @@
     }
 
     @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        mFlashNotificationColorContentObserver.register(mContext);
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        mFlashNotificationColorContentObserver.unregister(mContext);
+    }
+
+    @Override
     public int getAvailabilityStatus() {
         return AVAILABLE;
     }
@@ -100,14 +120,8 @@
                     Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR,
                     DEFAULT_SCREEN_FLASH_COLOR);
 
-            final Consumer<Integer> consumer = color -> {
-                Settings.System.putInt(mContext.getContentResolver(),
-                        Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, color);
-                refreshColorSummary();
-            };
-
             ScreenFlashNotificationColorDialogFragment
-                    .getInstance(initialColor, consumer)
+                    .getInstance(initialColor)
                     .show(mParentFragment.getParentFragmentManager(),
                             ScreenFlashNotificationColorDialogFragment.class.getSimpleName());
             return true;
@@ -128,4 +142,37 @@
     private void refreshColorSummary() {
         if (mPreference != null) mPreference.setSummary(getSummary());
     }
+
+    private final class FlashNotificationColorContentObserver extends ContentObserver {
+        private final Uri mColorUri = Settings.System.getUriFor(
+                Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR);
+
+        FlashNotificationColorContentObserver(Handler handler) {
+            super(handler);
+        }
+
+        /**
+         * Register this observer to given {@link Context}, to be called from lifecycle
+         * {@code onStart} method.
+         */
+        public void register(@NonNull Context context) {
+            context.getContentResolver().registerContentObserver(
+                    mColorUri, /* notifyForDescendants= */ false, this);
+        }
+
+        /**
+         * Unregister this observer from given {@link Context}, to be called from lifecycle
+         * {@code onStop} method.
+         */
+        public void unregister(@NonNull Context context) {
+            context.getContentResolver().unregisterContentObserver(this);
+        }
+
+        @Override
+        public void onChange(boolean selfChange, @Nullable Uri uri) {
+            if (mColorUri.equals(uri)) {
+                refreshColorSummary();
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index a79098b..e41d857 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -40,7 +40,6 @@
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
-import android.view.View;
 import android.view.accessibility.AccessibilityManager;
 import android.widget.CompoundButton;
 
@@ -411,17 +410,6 @@
         }
     }
 
-    private void onDialogButtonFromEnableToggleClicked(View view) {
-        final int viewId = view.getId();
-        if (viewId == R.id.permission_enable_allow_button) {
-            onAllowButtonFromEnableToggleClicked();
-        } else if (viewId == R.id.permission_enable_deny_button) {
-            onDenyButtonFromEnableToggleClicked();
-        } else {
-            throw new IllegalArgumentException("Unexpected view id");
-        }
-    }
-
     private void onDialogButtonFromUninstallClicked() {
         mWarningDialog.dismiss();
         final Intent uninstallIntent = createUninstallPackageActivityIntent();
@@ -491,17 +479,6 @@
         mWarningDialog.dismiss();
     }
 
-    void onDialogButtonFromShortcutToggleClicked(View view) {
-        final int viewId = view.getId();
-        if (viewId == R.id.permission_enable_allow_button) {
-            onAllowButtonFromShortcutToggleClicked();
-        } else if (viewId == R.id.permission_enable_deny_button) {
-            onDenyButtonFromShortcutToggleClicked();
-        } else {
-            throw new IllegalArgumentException("Unexpected view id");
-        }
-    }
-
     void onAllowButtonFromShortcutToggleClicked() {
         mShortcutPreference.setChecked(true);
 
@@ -526,17 +503,13 @@
 
     private void onAllowButtonFromShortcutClicked() {
         mIsDialogShown.set(false);
-        if (Flags.editShortcutsInFullScreen()) {
-            EditShortcutsPreferenceFragment.showEditShortcutScreen(
-                    getContext(),
-                    getMetricsCategory(),
-                    getShortcutTitle(),
-                    mComponentName,
-                    getIntent()
-            );
-        } else {
-            showPopupDialog(DialogEnums.EDIT_SHORTCUT);
-        }
+        EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                getContext(),
+                getMetricsCategory(),
+                getShortcutTitle(),
+                mComponentName,
+                getIntent()
+        );
 
         if (mWarningDialog != null) {
             mWarningDialog.dismiss();
diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
index 0cfa756..86ddd71 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -21,11 +21,10 @@
 import static com.android.settings.accessibility.AccessibilityStatsLogUtils.logAccessibilityServiceEnabled;
 import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
 import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+import static com.android.settings.accessibility.DaltonizerPreferenceUtil.isSecureAccessibilityDaltonizerEnabled;
 
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
-import android.content.Context;
-import android.content.res.Resources;
 import android.os.Bundle;
 import android.provider.Settings;
 import android.view.LayoutInflater;
@@ -33,14 +32,11 @@
 import android.view.ViewGroup;
 
 import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.widget.SettingsMainSwitchPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexable;
 
 import java.util.ArrayList;
@@ -48,40 +44,18 @@
 
 /** Settings for daltonizer. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceFragment
-        implements DaltonizerRadioButtonPreferenceController.OnChangeListener {
+public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceFragment {
 
     private static final String TAG = "ToggleDaltonizerPreferenceFragment";
     private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED;
     private static final String KEY_PREVIEW = "daltonizer_preview";
-    @VisibleForTesting
-    static final String KEY_DEUTERANOMALY = "daltonizer_mode_deuteranomaly";
-    @VisibleForTesting
-    static final String KEY_PROTANOMALY = "daltonizer_mode_protanomaly";
-    @VisibleForTesting
-    static final String KEY_TRITANOMEALY = "daltonizer_mode_tritanomaly";
-    @VisibleForTesting
-    static final String KEY_GRAYSCALE = "daltonizer_mode_grayscale";
+    private static final String KEY_DEUTERANOMALY = "daltonizer_mode_deuteranomaly";
+    private static final String KEY_PROTANOMALY = "daltonizer_mode_protanomaly";
+    private static final String KEY_TRITANOMEALY = "daltonizer_mode_tritanomaly";
+    private static final String KEY_GRAYSCALE = "daltonizer_mode_grayscale";
     @VisibleForTesting
     static final String KEY_SATURATION = "daltonizer_saturation";
 
-    private static final List<AbstractPreferenceController> sControllers = new ArrayList<>();
-
-    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
-            Lifecycle lifecycle) {
-        if (sControllers.size() == 0) {
-            final Resources resources = context.getResources();
-            final String[] daltonizerKeys = resources.getStringArray(
-                    R.array.daltonizer_mode_keys);
-
-            for (String daltonizerKey : daltonizerKeys) {
-                sControllers.add(new DaltonizerRadioButtonPreferenceController(
-                        context, lifecycle, daltonizerKey));
-            }
-        }
-        return sControllers;
-    }
-
     @Override
     protected void registerKeysToObserverCallback(
             AccessibilitySettingsContentObserver contentObserver) {
@@ -117,13 +91,6 @@
         }
     }
 
-    @Override
-    public void onCheckedChanged(Preference preference) {
-        for (AbstractPreferenceController controller : sControllers) {
-            controller.updateState(preference);
-        }
-    }
-
     private void updateFooterPreference() {
         final String title = getPrefContext()
                 .getString(R.string.accessibility_daltonizer_about_title);
@@ -155,21 +122,6 @@
     public void onResume() {
         super.onResume();
         updateSwitchBarToggleSwitch();
-        for (AbstractPreferenceController controller :
-                buildPreferenceControllers(getPrefContext(), getSettingsLifecycle())) {
-            ((DaltonizerRadioButtonPreferenceController) controller).setOnChangeListener(this);
-            ((DaltonizerRadioButtonPreferenceController) controller).displayPreference(
-                    getPreferenceScreen());
-        }
-    }
-
-    @Override
-    public void onPause() {
-        for (AbstractPreferenceController controller :
-                buildPreferenceControllers(getPrefContext(), getSettingsLifecycle())) {
-            ((DaltonizerRadioButtonPreferenceController) controller).setOnChangeListener(null);
-        }
-        super.onPause();
     }
 
     @Override
@@ -194,7 +146,8 @@
 
     @Override
     protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
-        final boolean isEnabled = Settings.Secure.getInt(getContentResolver(), ENABLED, OFF) == ON;
+        final boolean isEnabled =
+                isSecureAccessibilityDaltonizerEnabled(getContentResolver());
         if (enabled == isEnabled) {
             return;
         }
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index a57b459..0ac29bc 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -16,6 +16,10 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
 import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
 
 import android.app.Activity;
@@ -43,7 +47,6 @@
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityManager;
 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
-import android.widget.CheckBox;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.ImageView;
@@ -55,11 +58,10 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
-import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.flags.Flags;
@@ -84,11 +86,9 @@
 
     public static final String KEY_GENERAL_CATEGORY = "general_categories";
     public static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
-    public static final int NOT_SET = -1;
     protected static final String KEY_TOP_INTRO_PREFERENCE = "top_intro";
     protected static final String KEY_USE_SERVICE_PREFERENCE = "use_service";
     protected static final String KEY_HTML_DESCRIPTION_PREFERENCE = "html_description";
-    protected static final String KEY_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
     protected static final String KEY_SAVED_QS_TOOLTIP_RESHOW = "qs_tooltip_reshow";
     protected static final String KEY_SAVED_QS_TOOLTIP_TYPE = "qs_tooltip_type";
     protected static final String KEY_ANIMATED_IMAGE = "animated_image";
@@ -101,6 +101,7 @@
     protected SettingsMainSwitchPreference mToggleServiceSwitchPreference;
     protected ShortcutPreference mShortcutPreference;
     protected Preference mSettingsPreference;
+    @Nullable protected AccessibilityFooterPreference mHtmlFooterPreference;
     protected AccessibilityFooterPreferenceController mFooterPreferenceController;
     protected String mPreferenceKey;
     protected Dialog mDialog;
@@ -112,15 +113,10 @@
     protected Uri mImageUri;
     protected CharSequence mHtmlDescription;
     protected CharSequence mTopIntroTitle;
-    // Save user's shortcutType value when savedInstance has value (e.g. device rotated).
-    protected int mSavedCheckBoxValue = NOT_SET;
     private CharSequence mDescription;
     private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
     private AccessibilitySettingsContentObserver mSettingsContentObserver;
 
-    private CheckBox mSoftwareTypeCheckBox;
-    private CheckBox mHardwareTypeCheckBox;
-
     private AccessibilityQuickSettingsTooltipWindow mTooltipWindow;
     private boolean mNeedsQSTooltipReshow = false;
     private int mNeedsQSTooltipType = QuickSettingsTooltipType.GUIDE_TO_EDIT;
@@ -143,10 +139,6 @@
         onProcessArguments(getArguments());
         // Restore the user shortcut type and tooltip.
         if (savedInstanceState != null) {
-            if (savedInstanceState.containsKey(KEY_SAVED_USER_SHORTCUT_TYPE)) {
-                mSavedCheckBoxValue = savedInstanceState.getInt(KEY_SAVED_USER_SHORTCUT_TYPE,
-                        NOT_SET);
-            }
             if (savedInstanceState.containsKey(KEY_SAVED_QS_TOOLTIP_RESHOW)) {
                 mNeedsQSTooltipReshow = savedInstanceState.getBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW);
             }
@@ -204,7 +196,6 @@
         updateToggleServiceTitle(mToggleServiceSwitchPreference);
 
         mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
-            removeDialog(DialogEnums.EDIT_SHORTCUT);
             mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
         };
 
@@ -215,14 +206,6 @@
     @Override
     public Dialog onCreateDialog(int dialogId) {
         switch (dialogId) {
-            case DialogEnums.EDIT_SHORTCUT:
-                final int dialogType = isAnySetupWizard()
-                        ? DialogType.EDIT_SHORTCUT_GENERIC_SUW : DialogType.EDIT_SHORTCUT_GENERIC;
-                mDialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                        getPrefContext(), dialogType, getShortcutTitle(),
-                        this::callOnAlertDialogCheckboxClicked);
-                setupEditShortcutDialog(mDialog);
-                return mDialog;
             case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
                 if (isAnySetupWizard()) {
                     mDialog = AccessibilityShortcutsTutorial
@@ -273,8 +256,6 @@
         mSettingsContentObserver.register(getContentResolver());
         updateShortcutPreferenceData();
         updateShortcutPreference();
-
-        updateEditShortcutDialogIfNeeded();
     }
 
     @Override
@@ -288,10 +269,6 @@
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
-        final int value = getShortcutTypeCheckBoxValue();
-        if (value != NOT_SET) {
-            outState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, value);
-        }
         final boolean isTooltipWindowShowing = mTooltipWindow != null && mTooltipWindow.isShowing();
         if (mNeedsQSTooltipReshow || isTooltipWindowShowing) {
             outState.putBoolean(KEY_SAVED_QS_TOOLTIP_RESHOW, /* value= */ true);
@@ -313,8 +290,6 @@
     @Override
     public int getDialogMetricsCategory(int dialogId) {
         switch (dialogId) {
-            case DialogEnums.EDIT_SHORTCUT:
-                return SettingsEnums.DIALOG_ACCESSIBILITY_SERVICE_EDIT_SHORTCUT;
             case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
                 return SettingsEnums.DIALOG_ACCESSIBILITY_TUTORIAL;
             default:
@@ -589,27 +564,40 @@
     }
 
     private void initHtmlTextPreference() {
-        if (TextUtils.isEmpty(mHtmlDescription)) {
+        if (TextUtils.isEmpty(getCurrentHtmlDescription())) {
             return;
         }
         final PreferenceScreen screen = getPreferenceScreen();
-        final CharSequence htmlDescription = Html.fromHtml(mHtmlDescription.toString(),
-                Html.FROM_HTML_MODE_COMPACT, mImageGetter, /* tagHandler= */ null);
 
-        final AccessibilityFooterPreference htmlFooterPreference =
+        mHtmlFooterPreference =
                 new AccessibilityFooterPreference(screen.getContext());
-        htmlFooterPreference.setKey(KEY_HTML_DESCRIPTION_PREFERENCE);
-        htmlFooterPreference.setSummary(htmlDescription);
-        screen.addPreference(htmlFooterPreference);
+        mHtmlFooterPreference.setKey(KEY_HTML_DESCRIPTION_PREFERENCE);
+        updateHtmlTextPreference();
+        screen.addPreference(mHtmlFooterPreference);
 
         // TODO(b/171272809): Migrate to DashboardFragment.
         final String title = getString(R.string.accessibility_introduction_title, mPackageName);
         mFooterPreferenceController = new AccessibilityFooterPreferenceController(
-                screen.getContext(), htmlFooterPreference.getKey());
+                screen.getContext(), mHtmlFooterPreference.getKey());
         mFooterPreferenceController.setIntroductionTitle(title);
         mFooterPreferenceController.displayPreference(screen);
     }
 
+    protected void updateHtmlTextPreference() {
+        if (mHtmlFooterPreference == null) {
+            return;
+        }
+
+        String description = getCurrentHtmlDescription().toString();
+        final CharSequence htmlDescription = Html.fromHtml(description,
+                Html.FROM_HTML_MODE_COMPACT, mImageGetter, /* tagHandler= */ null);
+        mHtmlFooterPreference.setSummary(htmlDescription);
+    }
+
+    CharSequence getCurrentHtmlDescription() {
+        return mHtmlDescription;
+    }
+
     private void initFooterPreference() {
         if (!TextUtils.isEmpty(mDescription)) {
             createFooterPreference(getPreferenceScreen(), mDescription,
@@ -617,7 +605,6 @@
         }
     }
 
-
     /**
      * Creates {@link AccessibilityFooterPreference} and append into {@link PreferenceScreen}
      *
@@ -639,69 +626,10 @@
         mFooterPreferenceController.displayPreference(screen);
     }
 
-    @VisibleForTesting
-    void setupEditShortcutDialog(Dialog dialog) {
-        final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
-        mSoftwareTypeCheckBox = dialogSoftwareView.findViewById(R.id.checkbox);
-        setDialogTextAreaClickListener(dialogSoftwareView, mSoftwareTypeCheckBox);
-
-        final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
-        mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
-        setDialogTextAreaClickListener(dialogHardwareView, mHardwareTypeCheckBox);
-
-        updateEditShortcutDialogCheckBox();
-    }
-
-    private void setDialogTextAreaClickListener(View dialogView, CheckBox checkBox) {
-        final View dialogTextArea = dialogView.findViewById(R.id.container);
-        dialogTextArea.setOnClickListener(v -> checkBox.toggle());
-    }
-
-    private void updateEditShortcutDialogCheckBox() {
-        // If it is during onConfigChanged process then restore the value, or get the saved value
-        // when shortcutPreference is checked.
-        int value = restoreOnConfigChangedValue();
-        if (value == NOT_SET) {
-            final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
-            value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
-                    : UserShortcutType.EMPTY;
-        }
-
-        mSoftwareTypeCheckBox.setChecked(
-                hasShortcutType(value, UserShortcutType.SOFTWARE));
-        mHardwareTypeCheckBox.setChecked(
-                hasShortcutType(value, UserShortcutType.HARDWARE));
-    }
-
-    private int restoreOnConfigChangedValue() {
-        final int savedValue = mSavedCheckBoxValue;
-        mSavedCheckBoxValue = NOT_SET;
-        return savedValue;
-    }
-
     private boolean hasShortcutType(int value, @UserShortcutType int type) {
         return (value & type) == type;
     }
 
-    /**
-     * Returns accumulated {@link UserShortcutType} checkbox value or {@code NOT_SET} if checkboxes
-     * did not exist.
-     */
-    protected int getShortcutTypeCheckBoxValue() {
-        if (mSoftwareTypeCheckBox == null || mHardwareTypeCheckBox == null) {
-            return NOT_SET;
-        }
-
-        int value = UserShortcutType.EMPTY;
-        if (mSoftwareTypeCheckBox.isChecked()) {
-            value |= UserShortcutType.SOFTWARE;
-        }
-        if (mHardwareTypeCheckBox.isChecked()) {
-            value |= UserShortcutType.HARDWARE;
-        }
-        return value;
-    }
-
     protected CharSequence getShortcutTypeSummary(Context context) {
         if (!mShortcutPreference.isSettingsEditable()) {
             return context.getText(R.string.accessibility_shortcut_edit_dialog_title_hardware);
@@ -717,16 +645,16 @@
 
         final List<CharSequence> list = new ArrayList<>();
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if (hasShortcutType(shortcutTypes, UserShortcutType.QUICK_SETTINGS)) {
+            if (hasShortcutType(shortcutTypes, QUICK_SETTINGS)) {
                 final CharSequence qsTitle = context.getText(
                         R.string.accessibility_feature_shortcut_setting_summary_quick_settings);
                 list.add(qsTitle);
             }
         }
-        if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
+        if (hasShortcutType(shortcutTypes, SOFTWARE)) {
             list.add(getSoftwareShortcutTypeSummary(context));
         }
-        if (hasShortcutType(shortcutTypes, UserShortcutType.HARDWARE)) {
+        if (hasShortcutType(shortcutTypes, HARDWARE)) {
             final CharSequence hardwareTitle = context.getText(
                     R.string.accessibility_shortcut_hardware_keyword);
             list.add(hardwareTitle);
@@ -765,35 +693,6 @@
         showQuickSettingsTooltipIfNeeded();
     }
 
-    /**
-     * This method will be invoked when a button in the edit shortcut dialog is clicked.
-     *
-     * @param dialog The dialog that received the click
-     * @param which  The button that was clicked
-     */
-    protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
-        if (mComponentName == null) {
-            return;
-        }
-
-        final int value = getShortcutTypeCheckBoxValue();
-        saveNonEmptyUserShortcutType(value);
-        AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), value, mComponentName);
-        AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), ~value, mComponentName);
-        final boolean shortcutAssigned = value != UserShortcutType.EMPTY;
-        mShortcutPreference.setChecked(shortcutAssigned);
-        mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
-
-        if (mHardwareTypeCheckBox.isChecked()) {
-            AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
-        }
-
-        // Show the quick setting tooltip if the shortcut assigned in the first time
-        if (shortcutAssigned) {
-            showQuickSettingsTooltipIfNeeded();
-        }
-    }
-
     protected void updateShortcutPreferenceData() {
         if (mComponentName == null) {
             return;
@@ -801,7 +700,7 @@
 
         final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(
                 getPrefContext(), mComponentName);
-        if (shortcutTypes != UserShortcutType.EMPTY) {
+        if (shortcutTypes != DEFAULT) {
             final PreferredShortcut shortcut = new PreferredShortcut(
                     mComponentName.flattenToString(), shortcutTypes);
             PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
@@ -844,13 +743,9 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        if (com.android.settings.accessibility.Flags.editShortcutsInFullScreen()) {
-            EditShortcutsPreferenceFragment.showEditShortcutScreen(
-                    requireContext(), getMetricsCategory(), getShortcutTitle(),
-                    mComponentName, getIntent());
-        } else {
-            showDialog(DialogEnums.EDIT_SHORTCUT);
-        }
+        EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                requireContext(), getMetricsCategory(), getShortcutTitle(),
+                mComponentName, getIntent());
     }
 
     /**
@@ -887,24 +782,6 @@
         }
     }
 
-    private void updateEditShortcutDialogIfNeeded() {
-        if (mDialog == null || !mDialog.isShowing()) {
-            return;
-        }
-        AccessibilityDialogUtils.updateShortcutInDialog(getContext(), mDialog);
-    }
-
-    @VisibleForTesting
-    void saveNonEmptyUserShortcutType(int type) {
-        if (type == UserShortcutType.EMPTY) {
-            return;
-        }
-
-        final PreferredShortcut shortcut = new PreferredShortcut(
-                mComponentName.flattenToString(), type);
-        PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
-    }
-
     /**
      * Shows the quick settings tooltip if the quick settings feature is assigned. The tooltip only
      * shows once.
@@ -983,7 +860,7 @@
      */
     @ShortcutConstants.UserShortcutType
     protected int getDefaultShortcutTypes() {
-        return ShortcutConstants.UserShortcutType.SOFTWARE;
+        return SOFTWARE;
     }
 
     /**
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index fc75cde..a030a0a 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -18,6 +18,12 @@
 
 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.DEFAULT;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
 import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
 import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
 import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
@@ -27,7 +33,6 @@
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.pm.PackageManager;
 import android.icu.text.CaseMap;
 import android.icu.text.MessageFormat;
@@ -42,21 +47,20 @@
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityManager;
 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
-import android.widget.CheckBox;
 
 import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.SwitchPreferenceCompat;
 import androidx.preference.TwoStatePreference;
 
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.server.accessibility.Flags;
 import com.android.settings.DialogCreatable;
 import com.android.settings.R;
-import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
 import com.android.settings.utils.LocaleUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -85,12 +89,11 @@
 
     // TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util.
     private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
-    private CheckBox mSoftwareTypeCheckBox;
-    private CheckBox mHardwareTypeCheckBox;
-    private CheckBox mTripleTapTypeCheckBox;
-    @Nullable private CheckBox mTwoFingerTripleTapTypeCheckBox;
     private DialogCreatable mDialogDelegate;
 
+    @Nullable
+    MagnificationOneFingerPanningPreferenceController mOneFingerPanningPreferenceController;
+
     private boolean mInSetupWizard;
 
     @Override
@@ -109,7 +112,6 @@
                 .appendPath(String.valueOf(R.raw.a11y_magnification_banner))
                 .build();
         mTouchExplorationStateChangeListener = isTouchExplorationEnabled -> {
-            removeDialog(DialogEnums.EDIT_SHORTCUT);
             mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
         };
 
@@ -174,15 +176,6 @@
             case DialogEnums.GESTURE_NAVIGATION_TUTORIAL:
                 return AccessibilityShortcutsTutorial
                         .showAccessibilityGestureTutorialDialog(getPrefContext());
-            case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
-                final CharSequence dialogTitle = getShortcutTitle();
-                final int dialogType = mInSetupWizard
-                        ? DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW
-                        : DialogType.EDIT_SHORTCUT_MAGNIFICATION;
-                mDialog = AccessibilityDialogUtils.showEditShortcutDialog(getPrefContext(),
-                        dialogType, dialogTitle, this::callOnAlertDialogCheckboxClicked);
-                setupMagnificationEditShortcutDialog(mDialog);
-                return mDialog;
             default:
                 return super.onCreateDialog(dialogId);
         }
@@ -236,7 +229,8 @@
                     context.getString(R.string.accessibility_screen_magnification_intro_text));
         }
 
-        if (!arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION)) {
+        if (!arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION)
+                && !Flags.enableMagnificationOneFingerPanningGesture()) {
             String summary = MessageFormat.format(
                     context.getString(R.string.accessibility_screen_magnification_summary),
                             new Object[]{1, 2, 3, 4, 5});
@@ -308,12 +302,12 @@
                 MagnificationOneFingerPanningPreferenceController.PREF_KEY);
         generalCategory.addPreference(oneFingerPanningPreference);
 
-        var oneFingerPanningPreferenceController =
+        mOneFingerPanningPreferenceController =
                 new MagnificationOneFingerPanningPreferenceController(getContext());
-        oneFingerPanningPreferenceController.setInSetupWizard(mInSetupWizard);
-        getSettingsLifecycle().addObserver(oneFingerPanningPreferenceController);
-        oneFingerPanningPreferenceController.displayPreference(getPreferenceScreen());
-        addPreferenceController(oneFingerPanningPreferenceController);
+        mOneFingerPanningPreferenceController.setInSetupWizard(mInSetupWizard);
+        getSettingsLifecycle().addObserver(mOneFingerPanningPreferenceController);
+        mOneFingerPanningPreferenceController.displayPreference(getPreferenceScreen());
+        addPreferenceController(mOneFingerPanningPreferenceController);
     }
 
     private void addJoystickSetting(PreferenceCategory generalCategory) {
@@ -354,95 +348,6 @@
         mDialogDelegate = delegate;
     }
 
-    @Override
-    protected int getShortcutTypeCheckBoxValue() {
-        if (mSoftwareTypeCheckBox == null || mHardwareTypeCheckBox == null) {
-            return NOT_SET;
-        }
-
-        int value = UserShortcutType.EMPTY;
-        if (mSoftwareTypeCheckBox.isChecked()) {
-            value |= UserShortcutType.SOFTWARE;
-        }
-        if (mHardwareTypeCheckBox.isChecked()) {
-            value |= UserShortcutType.HARDWARE;
-        }
-        if (mTripleTapTypeCheckBox.isChecked()) {
-            value |= UserShortcutType.TRIPLETAP;
-        }
-        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (mTwoFingerTripleTapTypeCheckBox.isChecked()) {
-                value |= UserShortcutType.TWOFINGER_DOUBLETAP;
-            }
-        }
-        return value;
-    }
-
-    @VisibleForTesting
-    void setupMagnificationEditShortcutDialog(Dialog dialog) {
-        final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
-        mSoftwareTypeCheckBox = dialogSoftwareView.findViewById(R.id.checkbox);
-        setDialogTextAreaClickListener(dialogSoftwareView, mSoftwareTypeCheckBox);
-
-        final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
-        mHardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
-        setDialogTextAreaClickListener(dialogHardwareView, mHardwareTypeCheckBox);
-
-        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            final View dialogTwoFignerTripleTapView =
-                    dialog.findViewById(R.id.two_finger_triple_tap_shortcut);
-            mTwoFingerTripleTapTypeCheckBox = dialogTwoFignerTripleTapView.findViewById(
-                    R.id.checkbox);
-            setDialogTextAreaClickListener(
-                    dialogTwoFignerTripleTapView, mTwoFingerTripleTapTypeCheckBox);
-        }
-
-        final View dialogTripleTapView = dialog.findViewById(R.id.triple_tap_shortcut);
-        mTripleTapTypeCheckBox = dialogTripleTapView.findViewById(R.id.checkbox);
-        setDialogTextAreaClickListener(dialogTripleTapView, mTripleTapTypeCheckBox);
-
-        final View advancedView = dialog.findViewById(R.id.advanced_shortcut);
-        if (mTripleTapTypeCheckBox.isChecked()) {
-            advancedView.setVisibility(View.GONE);
-            dialogTripleTapView.setVisibility(View.VISIBLE);
-        }
-
-        updateMagnificationEditShortcutDialogCheckBox();
-    }
-
-    private void setDialogTextAreaClickListener(View dialogView, CheckBox checkBox) {
-        final View dialogTextArea = dialogView.findViewById(R.id.container);
-        dialogTextArea.setOnClickListener(v -> checkBox.toggle());
-    }
-
-    private void updateMagnificationEditShortcutDialogCheckBox() {
-        // If it is during onConfigChanged process then restore the value, or get the saved value
-        // when shortcutPreference is checked.
-        int value = restoreOnConfigChangedValue();
-        if (value == NOT_SET) {
-            final int lastNonEmptyUserShortcutType = getUserPreferredShortcutTypes();
-            value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
-                    : UserShortcutType.EMPTY;
-        }
-
-        mSoftwareTypeCheckBox.setChecked(
-                hasShortcutType(value, UserShortcutType.SOFTWARE));
-        mHardwareTypeCheckBox.setChecked(
-                hasShortcutType(value, UserShortcutType.HARDWARE));
-        mTripleTapTypeCheckBox.setChecked(
-                hasShortcutType(value, UserShortcutType.TRIPLETAP));
-        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            mTwoFingerTripleTapTypeCheckBox.setChecked(
-                    hasShortcutType(value, UserShortcutType.TWOFINGER_DOUBLETAP));
-        }
-    }
-
-    private int restoreOnConfigChangedValue() {
-        final int savedValue = mSavedCheckBoxValue;
-        mSavedCheckBoxValue = NOT_SET;
-        return savedValue;
-    }
-
     private boolean hasShortcutType(int value, @UserShortcutType int type) {
         return (value & type) == type;
     }
@@ -471,6 +376,12 @@
         );
         contentObserver.registerKeysToObserverCallback(keysToObserve,
                 key -> updatePreferencesState());
+
+        if (Flags.enableMagnificationOneFingerPanningGesture()) {
+            contentObserver.registerKeysToObserverCallback(
+                    List.of(Settings.Secure.ACCESSIBILITY_SINGLE_FINGER_PANNING_ENABLED),
+                    key -> updateHtmlTextPreference());
+        }
     }
 
     private void updatePreferencesState() {
@@ -481,6 +392,25 @@
     }
 
     @Override
+    CharSequence getCurrentHtmlDescription() {
+        CharSequence origin = super.getCurrentHtmlDescription();
+        if (!TextUtils.isEmpty(origin)) {
+            // If in ToggleFeaturePreferenceFragment we already have a fixed html description, we
+            // should use the fixed one, otherwise we'll dynamically decide the description.
+            return origin;
+        }
+
+        Context context = getContext();
+        if (mOneFingerPanningPreferenceController != null && context != null) {
+            @StringRes int resId = mOneFingerPanningPreferenceController.isChecked()
+                    ? R.string.accessibility_screen_magnification_summary_one_finger_panning_on
+                    : R.string.accessibility_screen_magnification_summary_one_finger_panning_off;
+            return MessageFormat.format(context.getString(resId), new Object[]{1, 2, 3, 4, 5});
+        }
+        return "";
+    }
+
+    @Override
     protected List<String> getShortcutFeatureSettingsKeys() {
         final List<String> shortcutKeys = super.getShortcutFeatureSettingsKeys();
         shortcutKeys.add(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
@@ -499,28 +429,28 @@
         // LINT.IfChange(shortcut_type_ui_order)
         final List<CharSequence> list = new ArrayList<>();
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if (hasShortcutType(shortcutTypes, UserShortcutType.QUICK_SETTINGS)) {
+            if (hasShortcutType(shortcutTypes, QUICK_SETTINGS)) {
                 final CharSequence qsTitle = context.getText(
                         R.string.accessibility_feature_shortcut_setting_summary_quick_settings);
                 list.add(qsTitle);
             }
         }
-        if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
+        if (hasShortcutType(shortcutTypes, SOFTWARE)) {
             list.add(getSoftwareShortcutTypeSummary(context));
         }
-        if (hasShortcutType(shortcutTypes, UserShortcutType.HARDWARE)) {
+        if (hasShortcutType(shortcutTypes, HARDWARE)) {
             final CharSequence hardwareTitle = context.getText(
                     R.string.accessibility_shortcut_hardware_keyword);
             list.add(hardwareTitle);
         }
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (hasShortcutType(shortcutTypes, UserShortcutType.TWOFINGER_DOUBLETAP)) {
+            if (hasShortcutType(shortcutTypes, TWOFINGER_DOUBLETAP)) {
                 final CharSequence twoFingerDoubleTapTitle = context.getString(
                         R.string.accessibility_shortcut_two_finger_double_tap_keyword, 2);
                 list.add(twoFingerDoubleTapTitle);
             }
         }
-        if (hasShortcutType(shortcutTypes, UserShortcutType.TRIPLETAP)) {
+        if (hasShortcutType(shortcutTypes, TRIPLETAP)) {
             final CharSequence tripleTapTitle = context.getText(
                     R.string.accessibility_shortcut_triple_tap_keyword);
             list.add(tripleTapTitle);
@@ -537,22 +467,6 @@
     }
 
     @Override
-    protected void callOnAlertDialogCheckboxClicked(DialogInterface dialog, int which) {
-        final int value = getShortcutTypeCheckBoxValue();
-
-        saveNonEmptyUserShortcutType(value);
-        optInAllMagnificationValuesToSettings(getPrefContext(), value);
-        optOutAllMagnificationValuesFromSettings(getPrefContext(), ~value);
-        mShortcutPreference.setChecked(value != UserShortcutType.EMPTY);
-        mShortcutPreference.setSummary(
-                getShortcutTypeSummary(getPrefContext()));
-
-        if (mHardwareTypeCheckBox.isChecked()) {
-            AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(getPrefContext());
-        }
-    }
-
-    @Override
     public int getHelpResource() {
         return R.string.help_url_magnification;
     }
@@ -577,8 +491,6 @@
                 return SettingsEnums.DIALOG_TOGGLE_SCREEN_MAGNIFICATION_GESTURE_NAVIGATION;
             case DialogEnums.ACCESSIBILITY_BUTTON_TUTORIAL:
                 return SettingsEnums.DIALOG_TOGGLE_SCREEN_MAGNIFICATION_ACCESSIBILITY_BUTTON;
-            case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
-                return SettingsEnums.DIALOG_MAGNIFICATION_EDIT_SHORTCUT;
             default:
                 return super.getDialogMetricsCategory(dialogId);
         }
@@ -628,22 +540,18 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        if (com.android.settings.accessibility.Flags.editShortcutsInFullScreen()) {
-            EditShortcutsPreferenceFragment.showEditShortcutScreen(
-                    requireContext(),
-                    getMetricsCategory(),
-                    getShortcutTitle(),
-                    MAGNIFICATION_COMPONENT_NAME,
-                    getIntent());
-        } else {
-            showDialog(DialogEnums.MAGNIFICATION_EDIT_SHORTCUT);
-        }
+        EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                requireContext(),
+                getMetricsCategory(),
+                getShortcutTitle(),
+                MAGNIFICATION_COMPONENT_NAME,
+                getIntent());
     }
 
     @Override
     protected void updateShortcutPreferenceData() {
         final int shortcutTypes = getUserShortcutTypeFromSettings(getPrefContext());
-        if (shortcutTypes != UserShortcutType.EMPTY) {
+        if (shortcutTypes != DEFAULT) {
             final PreferredShortcut shortcut = new PreferredShortcut(
                     MAGNIFICATION_CONTROLLER_NAME, shortcutTypes);
             PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
@@ -677,37 +585,26 @@
     }
 
     @VisibleForTesting
-    void saveNonEmptyUserShortcutType(int type) {
-        if (type == UserShortcutType.EMPTY) {
-            return;
-        }
-
-        final PreferredShortcut shortcut = new PreferredShortcut(
-                MAGNIFICATION_CONTROLLER_NAME, type);
-        PreferredShortcuts.saveUserShortcutType(getPrefContext(), shortcut);
-    }
-
-    @VisibleForTesting
     static void optInAllMagnificationValuesToSettings(Context context, int shortcutTypes) {
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
-            optInMagnificationValueToSettings(context, UserShortcutType.SOFTWARE);
+        if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+            optInMagnificationValueToSettings(context, SOFTWARE);
         }
-        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
-            optInMagnificationValueToSettings(context, UserShortcutType.HARDWARE);
+        if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+            optInMagnificationValueToSettings(context, HARDWARE);
         }
-        if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
-            optInMagnificationValueToSettings(context, UserShortcutType.TRIPLETAP);
+        if (((shortcutTypes & TRIPLETAP) == TRIPLETAP)) {
+            optInMagnificationValueToSettings(context, TRIPLETAP);
         }
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
-                    == UserShortcutType.TWOFINGER_DOUBLETAP)) {
-                optInMagnificationValueToSettings(context, UserShortcutType.TWOFINGER_DOUBLETAP);
+            if (((shortcutTypes & TWOFINGER_DOUBLETAP)
+                    == TWOFINGER_DOUBLETAP)) {
+                optInMagnificationValueToSettings(context, TWOFINGER_DOUBLETAP);
             }
         }
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if (((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
-                    == UserShortcutType.QUICK_SETTINGS)) {
-                optInMagnificationValueToSettings(context, UserShortcutType.QUICK_SETTINGS);
+            if (((shortcutTypes & QUICK_SETTINGS)
+                    == QUICK_SETTINGS)) {
+                optInMagnificationValueToSettings(context, QUICK_SETTINGS);
             }
         }
     }
@@ -727,14 +624,14 @@
             return;
         }
 
-        if (shortcutType == UserShortcutType.TRIPLETAP) {
+        if (shortcutType == TRIPLETAP) {
             Settings.Secure.putInt(context.getContentResolver(),
                     Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
             return;
         }
 
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP) {
+            if (shortcutType == TWOFINGER_DOUBLETAP) {
                 Settings.Secure.putInt(
                         context.getContentResolver(),
                         Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
@@ -760,7 +657,7 @@
         Settings.Secure.putString(context.getContentResolver(), targetKey, joiner.toString());
         // The size setting defaults to unknown. If the user has ever manually changed the size
         // before, we do not automatically change it.
-        if (shortcutType == UserShortcutType.SOFTWARE
+        if (shortcutType == SOFTWARE
                 && Settings.Secure.getInt(context.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
                 FloatingMenuSizePreferenceController.Size.UNKNOWN)
@@ -774,25 +671,25 @@
     @VisibleForTesting
     static void optOutAllMagnificationValuesFromSettings(Context context,
             int shortcutTypes) {
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
-            optOutMagnificationValueFromSettings(context, UserShortcutType.SOFTWARE);
+        if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+            optOutMagnificationValueFromSettings(context, SOFTWARE);
         }
-        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
-            optOutMagnificationValueFromSettings(context, UserShortcutType.HARDWARE);
+        if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+            optOutMagnificationValueFromSettings(context, HARDWARE);
         }
-        if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
-            optOutMagnificationValueFromSettings(context, UserShortcutType.TRIPLETAP);
+        if (((shortcutTypes & TRIPLETAP) == TRIPLETAP)) {
+            optOutMagnificationValueFromSettings(context, TRIPLETAP);
         }
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
-                    == UserShortcutType.TWOFINGER_DOUBLETAP)) {
-                optOutMagnificationValueFromSettings(context, UserShortcutType.TWOFINGER_DOUBLETAP);
+            if (((shortcutTypes & TWOFINGER_DOUBLETAP)
+                    == TWOFINGER_DOUBLETAP)) {
+                optOutMagnificationValueFromSettings(context, TWOFINGER_DOUBLETAP);
             }
         }
         if (android.view.accessibility.Flags.a11yQsShortcut()) {
-            if (((shortcutTypes & UserShortcutType.QUICK_SETTINGS)
-                    == UserShortcutType.QUICK_SETTINGS)) {
-                optOutMagnificationValueFromSettings(context, UserShortcutType.QUICK_SETTINGS);
+            if (((shortcutTypes & QUICK_SETTINGS)
+                    == QUICK_SETTINGS)) {
+                optOutMagnificationValueFromSettings(context, QUICK_SETTINGS);
             }
         }
     }
@@ -812,14 +709,14 @@
             return;
         }
 
-        if (shortcutType == UserShortcutType.TRIPLETAP) {
+        if (shortcutType == TRIPLETAP) {
             Settings.Secure.putInt(context.getContentResolver(),
                     Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
             return;
         }
 
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP) {
+            if (shortcutType == TWOFINGER_DOUBLETAP) {
                 Settings.Secure.putInt(
                         context.getContentResolver(),
                         Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
@@ -854,20 +751,20 @@
     static boolean hasMagnificationValuesInSettings(Context context, int shortcutTypes) {
         boolean exist = false;
 
-        if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
-            exist = hasMagnificationValueInSettings(context, UserShortcutType.SOFTWARE);
+        if ((shortcutTypes & SOFTWARE) == SOFTWARE) {
+            exist = hasMagnificationValueInSettings(context, SOFTWARE);
         }
-        if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
-            exist |= hasMagnificationValueInSettings(context, UserShortcutType.HARDWARE);
+        if (((shortcutTypes & HARDWARE) == HARDWARE)) {
+            exist |= hasMagnificationValueInSettings(context, HARDWARE);
         }
-        if (((shortcutTypes & UserShortcutType.TRIPLETAP) == UserShortcutType.TRIPLETAP)) {
-            exist |= hasMagnificationValueInSettings(context, UserShortcutType.TRIPLETAP);
+        if (((shortcutTypes & TRIPLETAP) == TRIPLETAP)) {
+            exist |= hasMagnificationValueInSettings(context, TRIPLETAP);
         }
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (((shortcutTypes & UserShortcutType.TWOFINGER_DOUBLETAP)
-                    == UserShortcutType.TWOFINGER_DOUBLETAP)) {
+            if (((shortcutTypes & TWOFINGER_DOUBLETAP)
+                    == TWOFINGER_DOUBLETAP)) {
                 exist |= hasMagnificationValueInSettings(context,
-                        UserShortcutType.TWOFINGER_DOUBLETAP);
+                        TWOFINGER_DOUBLETAP);
             }
         }
         return exist;
@@ -875,13 +772,13 @@
 
     private static boolean hasMagnificationValueInSettings(Context context,
             @UserShortcutType int shortcutType) {
-        if (shortcutType == UserShortcutType.TRIPLETAP) {
+        if (shortcutType == TRIPLETAP) {
             return Settings.Secure.getInt(context.getContentResolver(),
                     Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF) == ON;
         }
 
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (shortcutType == UserShortcutType.TWOFINGER_DOUBLETAP) {
+            if (shortcutType == TWOFINGER_DOUBLETAP) {
                 return Settings.Secure.getInt(context.getContentResolver(),
                         Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
                         OFF) == ON;
@@ -907,19 +804,19 @@
     }
 
     private static int getUserShortcutTypeFromSettings(Context context) {
-        int shortcutTypes = UserShortcutType.EMPTY;
-        if (hasMagnificationValuesInSettings(context, UserShortcutType.SOFTWARE)) {
-            shortcutTypes |= UserShortcutType.SOFTWARE;
+        int shortcutTypes = DEFAULT;
+        if (hasMagnificationValuesInSettings(context, SOFTWARE)) {
+            shortcutTypes |= SOFTWARE;
         }
-        if (hasMagnificationValuesInSettings(context, UserShortcutType.HARDWARE)) {
-            shortcutTypes |= UserShortcutType.HARDWARE;
+        if (hasMagnificationValuesInSettings(context, HARDWARE)) {
+            shortcutTypes |= HARDWARE;
         }
-        if (hasMagnificationValuesInSettings(context, UserShortcutType.TRIPLETAP)) {
-            shortcutTypes |= UserShortcutType.TRIPLETAP;
+        if (hasMagnificationValuesInSettings(context, TRIPLETAP)) {
+            shortcutTypes |= TRIPLETAP;
         }
         if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
-            if (hasMagnificationValuesInSettings(context, UserShortcutType.TWOFINGER_DOUBLETAP)) {
-                shortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
+            if (hasMagnificationValuesInSettings(context, TWOFINGER_DOUBLETAP)) {
+                shortcutTypes |= TWOFINGER_DOUBLETAP;
             }
         }
         return shortcutTypes;
@@ -934,11 +831,12 @@
         // Get the user shortcut type from settings provider.
         final int userShortcutType = getUserShortcutTypeFromSettings(context);
         final CharSequence featureState =
-                (userShortcutType != AccessibilityUtil.UserShortcutType.EMPTY)
+                (userShortcutType != DEFAULT)
                 ? context.getText(R.string.accessibility_summary_shortcut_enabled)
                 : context.getText(R.string.generic_accessibility_feature_shortcut_off);
         final CharSequence featureSummary = context.getText(R.string.magnification_feature_summary);
-        return context.getString(R.string.preference_summary_default_combination,
+        return context.getString(
+                com.android.settingslib.R.string.preference_summary_default_combination,
                 featureState, featureSummary);
     }
 
diff --git a/src/com/android/settings/accessibility/VibrationPreferenceConfig.java b/src/com/android/settings/accessibility/VibrationPreferenceConfig.java
index a304862..ec1fab1 100644
--- a/src/com/android/settings/accessibility/VibrationPreferenceConfig.java
+++ b/src/com/android/settings/accessibility/VibrationPreferenceConfig.java
@@ -68,19 +68,8 @@
     /** Play a vibration effect with intensity just selected by the user. */
     public static void playVibrationPreview(Vibrator vibrator,
             @VibrationAttributes.Usage int vibrationUsage) {
-        playVibrationPreview(vibrator, createPreviewVibrationAttributes(vibrationUsage));
-    }
-
-    /**
-     * Play a vibration effect with intensity just selected by the user.
-     *
-     * @param vibrator The {@link Vibrator} used to play the vibration.
-     * @param vibrationAttributes The {@link VibrationAttributes} to indicate the
-     *        vibration information.
-     */
-    public static void playVibrationPreview(Vibrator vibrator,
-            VibrationAttributes vibrationAttributes) {
-        vibrator.vibrate(PREVIEW_VIBRATION_EFFECT, vibrationAttributes);
+        vibrator.vibrate(PREVIEW_VIBRATION_EFFECT,
+                createPreviewVibrationAttributes(vibrationUsage));
     }
 
     public VibrationPreferenceConfig(Context context, String settingKey,
diff --git a/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java
index eccfbce..11aa565 100644
--- a/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/VolumeShortcutToggleAccessibilityServicePreferenceFragment.java
@@ -16,12 +16,14 @@
 
 package com.android.settings.accessibility;
 
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.os.Bundle;
 import android.view.View;
 
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 import com.android.settings.R;
 
 /**
@@ -44,7 +46,7 @@
         mShortcutPreference.setSummary(hardwareTitle);
         mShortcutPreference.setSettingsEditable(false);
 
-        setAllowedPreferredShortcutType(UserShortcutType.HARDWARE);
+        setAllowedPreferredShortcutType(HARDWARE);
     }
 
     @Override
@@ -56,9 +58,9 @@
         final boolean hasRequestAccessibilityButtonFlag =
                 (info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
         if (hasRequestAccessibilityButtonFlag && isServiceOn) {
-            shortcutTypes |= UserShortcutType.SOFTWARE;
+            shortcutTypes |= SOFTWARE;
         } else {
-            shortcutTypes &= (~UserShortcutType.SOFTWARE);
+            shortcutTypes &= (~SOFTWARE);
         }
 
         return shortcutTypes;
diff --git a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
index 9e1290e..d04b34a 100644
--- a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
@@ -20,6 +20,7 @@
 import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE;
 import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
 import static android.provider.Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
+import static android.provider.Settings.Secure.ACCESSIBILITY_GESTURE_TARGETS;
 import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED;
 import static android.provider.Settings.Secure.ACCESSIBILITY_QS_TARGETS;
 import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
@@ -60,7 +61,6 @@
 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;
@@ -94,7 +94,8 @@
             Settings.Secure.getUriFor(ACCESSIBILITY_BUTTON_MODE);
     private static final Uri BUTTON_SHORTCUT_SETTING =
             Settings.Secure.getUriFor(ACCESSIBILITY_BUTTON_TARGETS);
-
+    private static final Uri GESTURE_SHORTCUT_SETTING =
+            Settings.Secure.getUriFor(ACCESSIBILITY_GESTURE_TARGETS);
     private static final Uri TRIPLE_TAP_SHORTCUT_SETTING =
             Settings.Secure.getUriFor(ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
     private static final Uri TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING =
@@ -108,6 +109,7 @@
             VOLUME_KEYS_SHORTCUT_SETTING,
             BUTTON_SHORTCUT_MODE_SETTING,
             BUTTON_SHORTCUT_SETTING,
+            GESTURE_SHORTCUT_SETTING,
             TRIPLE_TAP_SHORTCUT_SETTING,
             TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING,
             QUICK_SETTINGS_SHORTCUT_SETTING,
@@ -174,6 +176,8 @@
                 } else if (BUTTON_SHORTCUT_MODE_SETTING.equals(uri)
                         || BUTTON_SHORTCUT_SETTING.equals(uri)) {
                     refreshSoftwareShortcutControllers();
+                } else if (GESTURE_SHORTCUT_SETTING.equals(uri)) {
+                    refreshPreferenceController(GestureShortcutOptionController.class);
                 } else if (TRIPLE_TAP_SHORTCUT_SETTING.equals(uri)) {
                     refreshPreferenceController(TripleTapShortcutOptionController.class);
                 } else if (TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING.equals(uri)) {
@@ -199,8 +203,7 @@
         Activity activity = getActivity();
 
         if (!activity.getIntent().getAction().equals(
-                Settings.ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS)
-                || !Flags.editShortcutsInFullScreen()) {
+                Settings.ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS)) {
             return;
         }
 
diff --git a/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
index 2242cab..20ff12d 100644
--- a/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
@@ -50,7 +50,14 @@
 
     @Override
     protected boolean isShortcutAvailable() {
-        return AccessibilityUtil.isFloatingMenuEnabled(mContext);
+        if (android.provider.Flags.a11yStandaloneGestureEnabled()) {
+            // FAB should be available when in gesture navigation mode,
+            // or if we're in the FAB button mode while in navbar navigation mode.
+            return AccessibilityUtil.isGestureNavigateEnabled(mContext)
+                    || AccessibilityUtil.isFloatingMenuEnabled(mContext);
+        } else {
+            return AccessibilityUtil.isFloatingMenuEnabled(mContext);
+        }
     }
 
     @Nullable
diff --git a/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
index e65aab9..3c19b5d 100644
--- a/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
+++ b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.accessibility.shortcuts;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.GESTURE;
+
 import android.content.Context;
 import android.text.SpannableStringBuilder;
 
@@ -52,10 +54,21 @@
     }
 
     @Override
+    protected int getShortcutType() {
+        return android.provider.Flags.a11yStandaloneGestureEnabled()
+                ? GESTURE : super.getShortcutType();
+    }
+
+    @Override
     protected boolean isShortcutAvailable() {
-        return !isInSetupWizard()
-                && !AccessibilityUtil.isFloatingMenuEnabled(mContext)
-                && AccessibilityUtil.isGestureNavigateEnabled(mContext);
+        if (android.provider.Flags.a11yStandaloneGestureEnabled()) {
+            return !isInSetupWizard()
+                    && AccessibilityUtil.isGestureNavigateEnabled(mContext);
+        } else {
+            return !isInSetupWizard()
+                    && AccessibilityUtil.isGestureNavigateEnabled(mContext)
+                    && !AccessibilityUtil.isFloatingMenuEnabled(mContext);
+        }
     }
 
     @Override
@@ -68,9 +81,8 @@
 
         final SpannableStringBuilder sb = new SpannableStringBuilder();
         sb.append(instruction);
-        if (!isInSetupWizard()) {
-            sb.append("\n\n");
-            sb.append(getCustomizeAccessibilityButtonLink());
+        if (!isInSetupWizard() && !android.provider.Flags.a11yStandaloneGestureEnabled()) {
+            sb.append("\n\n").append(getCustomizeAccessibilityButtonLink());
         }
 
         return sb;
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index f4c928c..72a0f08 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -43,7 +43,6 @@
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling;
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal;
-import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
 import com.android.settings.core.FeatureFlags;
 import com.android.settings.homepage.DeepLinkHomepageActivity;
 import com.android.settings.homepage.DeepLinkHomepageActivityInternal;
@@ -51,6 +50,7 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockPattern;
 import com.android.settings.privatespace.PrivateSpaceSetupActivity;
+import com.android.settings.privatespace.delete.PrivateSpaceDeleteActivity;
 import com.android.settings.remoteauth.RemoteAuthActivity;
 import com.android.settings.remoteauth.RemoteAuthActivityInternal;
 
@@ -255,8 +255,6 @@
                     .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE);
             addActivityFilter(activityFilters, searchIntent);
         }
-        addActivityFilter(activityFilters, FingerprintEnrollmentActivity.class);
-        addActivityFilter(activityFilters, FingerprintEnrollmentActivity.InternalActivity.class);
         addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class);
         addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class);
         addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class);
@@ -266,6 +264,9 @@
         addActivityFilter(activityFilters, RemoteAuthActivityInternal.class);
         addActivityFilter(activityFilters, ChooseLockPattern.class);
         addActivityFilter(activityFilters, PrivateSpaceSetupActivity.class);
+        if (android.multiuser.Flags.fixLargeDisplayPrivateSpaceSettings()) {
+            addActivityFilter(activityFilters, PrivateSpaceDeleteActivity.class);
+        }
         String action = mContext.getString(R.string.config_avatar_picker_action);
         addActivityFilter(activityFilters, new Intent(action));
 
diff --git a/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt b/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
index ab32fc1..9bbb723 100644
--- a/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
+++ b/src/com/android/settings/activityembedding/EmbeddedDeepLinkUtils.kt
@@ -34,7 +34,7 @@
     private const val TAG = "EmbeddedDeepLinkUtils"
 
     @JvmStatic
-    fun Activity.tryStartMultiPaneDeepLink(
+    fun Context.tryStartMultiPaneDeepLink(
         intent: Intent,
         highlightMenuKey: String? = null,
     ): Boolean {
diff --git a/src/com/android/settings/applications/AppStorageSettings.java b/src/com/android/settings/applications/AppStorageSettings.java
index e45657f..0f52053 100644
--- a/src/com/android/settings/applications/AppStorageSettings.java
+++ b/src/com/android/settings/applications/AppStorageSettings.java
@@ -324,9 +324,11 @@
     private void initMoveDialog() {
         final Context context = getActivity();
         final StorageManager storage = context.getSystemService(StorageManager.class);
-
-        final List<VolumeInfo> candidates = context.getPackageManager()
-                .getPackageCandidateVolumes(mAppEntry.info);
+        final PackageManager pm = context.getPackageManager();
+        final List<VolumeInfo> candidates =
+            mAppEntry != null && pm != null
+                ? pm.getPackageCandidateVolumes(mAppEntry.info)
+                : Collections.emptyList();
         if (candidates.size() > 1) {
             Collections.sort(candidates, VolumeInfo.getDescriptionComparator());
 
diff --git a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
index 1e7ca1e..b40f62f 100644
--- a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
+++ b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
@@ -33,6 +33,7 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 
 import com.android.internal.app.LocaleHelper;
@@ -62,6 +63,7 @@
     private LayoutPreference mPrefOfDescription;
     private Preference mPrefOfDisclaimer;
     private ApplicationInfo mApplicationInfo;
+    @Nullable private String mParentLocale;
 
     /**
      * Create a instance of AppLocaleDetails.
@@ -111,6 +113,12 @@
     public void onResume() {
         super.onResume();
         refreshUi();
+        final Activity activity = getActivity();
+        if (mParentLocale != null) {
+            activity.setTitle(mParentLocale);
+        } else {
+            activity.setTitle(R.string.app_locale_picker_title);
+        }
     }
 
     private void refreshUi() {
@@ -215,4 +223,8 @@
             return LocaleHelper.getDisplayName(appLocale.stripExtensions(), appLocale, true);
         }
     }
+
+    public void setParentLocale(@Nullable String localeName) {
+        mParentLocale = localeName;
+    }
 }
diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
index d40a075..5df5914 100644
--- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
+++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
@@ -72,9 +72,9 @@
 import com.android.settingslib.RestrictedSwitchPreference;
 import com.android.settingslib.widget.LayoutPreference;
 
-import java.util.Collections;
+import java.util.Arrays;
+import java.util.HashSet;
 import java.util.Optional;
-import java.util.Set;
 
 public class InteractAcrossProfilesDetails extends AppInfoBase
         implements Preference.OnPreferenceClickListener {
@@ -571,8 +571,8 @@
         String disallowedPackagesString = Settings.Global.getString(getContentResolver(),
                 CONNECTED_APPS_DISALLOWED_PACKAGES);
 
-        Set<String> allowedPackagesSet = getSetFromString(allowedPackagesString);
-        Set<String> disallowedPackagesSet = getSetFromString(disallowedPackagesString);
+        HashSet<String> allowedPackagesSet = getSetFromString(allowedPackagesString);
+        HashSet<String> disallowedPackagesSet = getSetFromString(disallowedPackagesString);
 
         if (enabled) {
             allowedPackagesSet.add(crossProfilePackage);
@@ -592,9 +592,9 @@
                 String.join(",", disallowedPackagesSet));
     }
 
-    private Set<String> getSetFromString(String packages) {
+    private HashSet<String> getSetFromString(String packages) {
         return Optional.ofNullable(packages)
-                .map(pkg -> Set.of(pkg.split(",")))
-                .orElse(Collections.emptySet());
+                .map(pkg -> new HashSet<>(Arrays.asList(pkg.split(","))))
+                .orElseGet(HashSet::new);
     }
 }
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java
index 3577946..c92f734 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/FriendlyWarningDialogFragment.java
@@ -16,6 +16,7 @@
 package com.android.settings.applications.specialaccess.notificationaccess;
 
 import android.app.Dialog;
+import android.app.Flags;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.DialogInterface;
@@ -55,7 +56,10 @@
         NotificationAccessDetails parent = (NotificationAccessDetails) getTargetFragment();
 
         final String summary = getResources().getString(
-                R.string.notification_listener_disable_warning_summary, label);
+                Flags.modesApi() && Flags.modesUi()
+                        ? R.string.notification_listener_disable_modes_warning_summary
+                        : R.string.notification_listener_disable_warning_summary,
+                label);
         return new AlertDialog.Builder(getContext())
                 .setMessage(summary)
                 .setCancelable(true)
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java
index 747a125..53181fd 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/ScaryWarningDialogFragment.java
@@ -16,6 +16,7 @@
 package com.android.settings.applications.specialaccess.notificationaccess;
 
 import android.app.Dialog;
+import android.app.Flags;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
@@ -96,6 +97,11 @@
                 R.string.nls_warning_prompt, label);
         ((TextView) content.findViewById(R.id.prompt)).setText(prompt);
 
+        ((TextView) content.findViewById(R.id.settings_description)).setText(
+                Flags.modesApi() && Flags.modesUi()
+                        ? R.string.nls_feature_modes_settings_summary
+                        : R.string.nls_feature_settings_summary);
+
         Button allowButton = content.findViewById(R.id.allow_button);
         allowButton.setOnClickListener((view) -> {
             parent.enable(cn);
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java
index 5da2990..38317ed 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java
@@ -17,6 +17,7 @@
 package com.android.settings.applications.specialaccess.zenaccess;
 
 import android.app.Dialog;
+import android.app.Flags;
 import android.app.settings.SettingsEnums;
 import android.os.Bundle;
 import android.text.TextUtils;
@@ -58,9 +59,14 @@
         final String label = args.getString(KEY_LABEL);
 
         final String title = getResources().getString(
-                R.string.zen_access_revoke_warning_dialog_title, label);
+                Flags.modesApi() && Flags.modesUi()
+                        ? R.string.zen_modes_access_revoke_warning_dialog_title
+                        : R.string.zen_access_revoke_warning_dialog_title,
+                label);
         final String summary = getResources()
-                .getString(R.string.zen_access_revoke_warning_dialog_summary);
+                .getString(Flags.modesApi() && Flags.modesUi()
+                        ? R.string.zen_modes_access_revoke_warning_dialog_summary
+                        : R.string.zen_access_revoke_warning_dialog_summary);
 
         ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment();
         return new AlertDialog.Builder(getContext())
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java
index e4ef48b..b489602 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java
@@ -17,6 +17,7 @@
 package com.android.settings.applications.specialaccess.zenaccess;
 
 import android.app.Dialog;
+import android.app.Flags;
 import android.app.settings.SettingsEnums;
 import android.os.Bundle;
 import android.text.TextUtils;
@@ -55,10 +56,15 @@
         final String pkg = args.getString(KEY_PKG);
         final String label = args.getString(KEY_LABEL);
 
-        final String title = getResources().getString(R.string.zen_access_warning_dialog_title,
+        final String title = getResources().getString(
+                Flags.modesApi() && Flags.modesUi()
+                        ? R.string.zen_modes_access_warning_dialog_title
+                        : R.string.zen_access_warning_dialog_title,
                 label);
         final String summary = getResources()
-                .getString(R.string.zen_access_warning_dialog_summary);
+                .getString(Flags.modesApi() && Flags.modesUi()
+                        ? R.string.zen_modes_access_warning_dialog_summary
+                        : R.string.zen_access_warning_dialog_summary);
 
         ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment();
 
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
index 6f4137c..cfeeb0d 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
@@ -18,6 +18,7 @@
 
 import android.app.ActivityManager;
 import android.app.AppGlobals;
+import android.app.Flags;
 import android.app.NotificationManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -28,7 +29,10 @@
 import android.util.Log;
 
 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.overlay.FeatureFactory;
 
@@ -48,6 +52,16 @@
         return AVAILABLE;
     }
 
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference != null) {
+            preference.setTitle(Flags.modesApi() && Flags.modesUi()
+                    ? R.string.manage_zen_modes_access_title
+                    : R.string.manage_zen_access_title);
+        }
+    }
+
     public static Set<String> getPackagesRequestingNotificationPolicyAccess() {
         final String[] PERM = {
                 android.Manifest.permission.ACCESS_NOTIFICATION_POLICY
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java
index ffe13e6..74903c0 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java
@@ -16,9 +16,11 @@
 
 package com.android.settings.applications.specialaccess.zenaccess;
 
+import android.app.Flags;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
+import android.os.UserManager;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.preference.TwoStatePreference;
@@ -42,6 +44,9 @@
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         addPreferencesFromResource(R.xml.zen_access_permission_details);
+        requireActivity().setTitle(Flags.modesApi() && Flags.modesUi()
+                ? R.string.manage_zen_modes_access_title
+                : R.string.manage_zen_access_title);
         getSettingsLifecycle().addObserver(
                 new ZenAccessSettingObserverMixin(getContext(), this /* listener */));
     }
@@ -49,6 +54,11 @@
     @Override
     protected boolean refreshUi() {
         final Context context = getContext();
+        // don't show for managed profiles
+        if (UserManager.get(context).isManagedProfile(context.getUserId())
+            && !ZenAccessController.hasAccess(context, mPackageName)) {
+            finish();
+        }
         // If this app didn't declare this permission in their manifest, don't bother showing UI.
         final Set<String> needAccessApps =
                 ZenAccessController.getPackagesRequestingNotificationPolicyAccess();
@@ -74,6 +84,9 @@
             preference.setSummary(getString(R.string.zen_access_disabled_package_warning));
             return;
         }
+        preference.setTitle(Flags.modesApi() && Flags.modesUi()
+                ? R.string.zen_modes_access_detail_switch
+                : R.string.zen_access_detail_switch);
         preference.setChecked(ZenAccessController.hasAccess(context, mPackageName));
         preference.setOnPreferenceChangeListener((p, newValue) -> {
             final boolean access = (Boolean) newValue;
diff --git a/src/com/android/settings/backup/SettingsBackupHelper.java b/src/com/android/settings/backup/SettingsBackupHelper.java
index 556ab72..73760a4 100644
--- a/src/com/android/settings/backup/SettingsBackupHelper.java
+++ b/src/com/android/settings/backup/SettingsBackupHelper.java
@@ -28,19 +28,30 @@
 /** Backup agent for Settings APK */
 public class SettingsBackupHelper extends BackupAgentHelper {
     public static final String SOUND_BACKUP_HELPER = "SoundSettingsBackup";
+    public static final String ACCESSIBILITY_APPEARANCE_BACKUP_HELPER =
+            "AccessibilityAppearanceSettingsBackup";
 
     @Override
     public void onCreate() {
         super.onCreate();
         BackupRestoreStorageManager.getInstance(this).addBackupAgentHelpers(this);
+        OnboardingFeatureProvider onboardingFeatureProvider =
+                FeatureFactory.getFeatureFactory().getOnboardingFeatureProvider();
+
         if (Flags.enableSoundBackup()) {
-            OnboardingFeatureProvider onboardingFeatureProvider =
-                    FeatureFactory.getFeatureFactory().getOnboardingFeatureProvider();
             if (onboardingFeatureProvider != null) {
                 addHelper(SOUND_BACKUP_HELPER, onboardingFeatureProvider.
                         getSoundBackupHelper(this, this.getBackupRestoreEventLogger()));
             }
         }
+
+        if (Flags.accessibilityAppearanceSettingsBackupEnabled()) {
+            if (onboardingFeatureProvider != null) {
+                addHelper(ACCESSIBILITY_APPEARANCE_BACKUP_HELPER,
+                        onboardingFeatureProvider.getAccessibilityAppearanceBackupHelper(
+                            this, this.getBackupRestoreEventLogger()));
+            }
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/BiometricEnrollBase.java b/src/com/android/settings/biometrics/BiometricEnrollBase.java
index 335d0b9..37ada23 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollBase.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollBase.java
@@ -68,6 +68,8 @@
     public static final String EXTRA_FINISHED_ENROLL_FACE = "finished_enrolling_face";
     public static final String EXTRA_FINISHED_ENROLL_FINGERPRINT = "finished_enrolling_fingerprint";
     public static final String EXTRA_LAUNCHED_POSTURE_GUIDANCE = "launched_posture_guidance";
+    public static final String EXTRA_BIOMETRICS_AUTHENTICATED_SUCCESSFULLY =
+            "biometrics_authenticated_successfully";
 
     /**
      * Used by the choose fingerprint wizard to indicate the wizard is
@@ -115,6 +117,7 @@
     public static final int LEARN_MORE_REQUEST = 3;
     public static final int CONFIRM_REQUEST = 4;
     public static final int ENROLL_REQUEST = 5;
+    public static final int BIOMETRIC_AUTH_REQUEST = 6;
 
     /**
      * Request code when starting another biometric enrollment from within a biometric flow. For
diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java
index 3376d86..09b2dba 100644
--- a/src/com/android/settings/biometrics/BiometricUtils.java
+++ b/src/com/android/settings/biometrics/BiometricUtils.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.biometrics;
 
-import static android.util.FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT;
 
 import android.annotation.IntDef;
 import android.app.Activity;
@@ -33,7 +32,6 @@
 import android.os.storage.StorageManager;
 import android.text.BidiFormatter;
 import android.text.SpannableStringBuilder;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.view.Surface;
 
@@ -50,7 +48,6 @@
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
 import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor;
 import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
-import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.password.ChooseLockSettingsHelper;
@@ -254,17 +251,8 @@
     public static Intent getFingerprintFindSensorIntent(@NonNull Context context,
             @NonNull Intent activityIntent) {
         final boolean isSuw =  WizardManagerHelper.isAnySetupWizard(activityIntent);
-        final Intent intent;
-        if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
-            intent = new Intent(context, isSuw
-                    ? FingerprintEnrollmentActivity.SetupActivity.class
-                    : FingerprintEnrollmentActivity.class);
-            intent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true);
-        } else {
-            intent = new Intent(context, isSuw
-                    ? SetupFingerprintEnrollFindSensor.class
-                    : FingerprintEnrollFindSensor.class);
-        }
+        final Intent intent = new Intent(context, isSuw
+                ? SetupFingerprintEnrollFindSensor.class : FingerprintEnrollFindSensor.class);
         if (isSuw) {
             SetupWizardUtils.copySetupExtras(activityIntent, intent);
         }
@@ -279,16 +267,8 @@
     public static Intent getFingerprintIntroIntent(@NonNull Context context,
             @NonNull Intent activityIntent) {
         final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent);
-        final Intent intent;
-        if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
-            intent = new Intent(context, isSuw
-                    ? FingerprintEnrollmentActivity.SetupActivity.class
-                    : FingerprintEnrollmentActivity.class);
-        } else {
-            intent = new Intent(context, isSuw
-                    ? SetupFingerprintEnrollIntroduction.class
-                    : FingerprintEnrollIntroduction.class);
-        }
+        final Intent intent = new Intent(context, isSuw
+                ? SetupFingerprintEnrollIntroduction.class : FingerprintEnrollIntroduction.class);
         if (isSuw) {
             WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
         }
diff --git a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
index b174788..43b5da2 100644
--- a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
+++ b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
@@ -65,6 +65,8 @@
     static final int CONFIRM_REQUEST = 2001;
     private static final int CHOOSE_LOCK_REQUEST = 2002;
     protected static final int ACTIVE_UNLOCK_REQUEST = 2003;
+    @VisibleForTesting
+    static final int BIOMETRIC_AUTH_REQUEST = 2004;
 
     private static final String SAVE_STATE_CONFIRM_CREDETIAL = "confirm_credential";
     private static final String DO_NOT_FINISH_ACTIVITY = "do_not_finish_activity";
@@ -72,10 +74,12 @@
     static final String RETRY_PREFERENCE_KEY = "retry_preference_key";
     @VisibleForTesting
     static final String RETRY_PREFERENCE_BUNDLE = "retry_preference_bundle";
+    private static final String BIOMETRICS_AUTH_REQUESTED = "biometrics_auth_requested";
 
     protected int mUserId;
     protected long mGkPwHandle;
     private boolean mConfirmCredential;
+    private boolean mBiometricsAuthenticationRequested;
     @Nullable private FaceManager mFaceManager;
     @Nullable private FingerprintManager mFingerprintManager;
     // Do not finish() if choosing/confirming credential, showing fp/face settings, or launching
@@ -123,13 +127,14 @@
                 mGkPwHandle = savedInstanceState.getLong(
                         ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE);
             }
+            mBiometricsAuthenticationRequested = savedInstanceState.getBoolean(
+                    BIOMETRICS_AUTH_REQUESTED);
         }
 
         if (mGkPwHandle == 0L && !mConfirmCredential) {
             mConfirmCredential = true;
             launchChooseOrConfirmLock();
         }
-
         updateUnlockPhonePreferenceSummary();
 
         final Preference useInAppsPreference = findPreference(getUseInAppsPreferenceKey());
@@ -288,6 +293,8 @@
             outState.putString(RETRY_PREFERENCE_KEY, mRetryPreferenceKey);
             outState.putBundle(RETRY_PREFERENCE_BUNDLE, mRetryPreferenceExtra);
         }
+        outState.putBoolean(BIOMETRICS_AUTH_REQUESTED,
+                mBiometricsAuthenticationRequested);
     }
 
     @Override
@@ -305,6 +312,20 @@
                                 com.google.android.setupdesign.R.anim.sud_slide_next_out);
                         retryPreferenceKey(mRetryPreferenceKey, mRetryPreferenceExtra);
                     }
+                    final Utils.BiometricStatus biometricAuthStatus =
+                            Utils.requestBiometricAuthenticationForMandatoryBiometrics(
+                                    getActivity(),
+                                    mBiometricsAuthenticationRequested,
+                                    mUserId);
+                    if (biometricAuthStatus == Utils.BiometricStatus.OK) {
+                        mBiometricsAuthenticationRequested = true;
+                        Utils.launchBiometricPromptForMandatoryBiometrics(this,
+                                BIOMETRIC_AUTH_REQUEST,
+                                mUserId, true /* hideBackground */);
+                    } else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
+                        finish();
+                        return;
+                    }
                 } else {
                     Log.d(getLogTag(), "Data null or GK PW missing.");
                     finish();
@@ -315,6 +336,11 @@
             }
             mRetryPreferenceKey = null;
             mRetryPreferenceExtra = null;
+        } else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
+            mBiometricsAuthenticationRequested = false;
+            if (resultCode != RESULT_OK) {
+                finish();
+            }
         }
     }
 
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 8884ce3..d42b570 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -20,6 +20,7 @@
 import static android.app.admin.DevicePolicyResources.Strings.Settings.FACE_SETTINGS_FOR_WORK_TITLE;
 
 import static com.android.settings.Utils.isPrivateProfile;
+import static com.android.settings.biometrics.BiometricEnrollBase.BIOMETRIC_AUTH_REQUEST;
 import static com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST;
 import static com.android.settings.biometrics.BiometricEnrollBase.ENROLL_REQUEST;
 import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED;
@@ -66,6 +67,8 @@
     private static final String TAG = "FaceSettings";
     private static final String KEY_TOKEN = "hw_auth_token";
     private static final String KEY_RE_ENROLL_FACE = "re_enroll_face_unlock";
+    private static final String KEY_BIOMETRICS_SUCCESSFULLY_AUTHENTICATED =
+            "biometrics_successfully_authenticated";
 
     private static final String PREF_KEY_DELETE_FACE_DATA =
             "security_settings_face_delete_faces_container";
@@ -93,6 +96,7 @@
     private FaceFeatureProvider mFaceFeatureProvider;
 
     private boolean mConfirmingPassword;
+    private boolean mBiometricsAuthenticationRequested;
 
     private final FaceSettingsRemoveButtonPreferenceController.Listener mRemovalListener = () -> {
 
@@ -312,12 +316,28 @@
                 final boolean hasEnrolled = mFaceManager.hasEnrolledTemplates(mUserId);
                 mEnrollButton.setVisible(!hasEnrolled);
                 mRemoveButton.setVisible(hasEnrolled);
+                final Utils.BiometricStatus biometricAuthStatus =
+                        Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
+                                mBiometricsAuthenticationRequested,
+                                mUserId);
+                if (biometricAuthStatus == Utils.BiometricStatus.OK) {
+                    Utils.launchBiometricPromptForMandatoryBiometrics(this,
+                            BIOMETRIC_AUTH_REQUEST,
+                            mUserId, true /* hideBackground */);
+                } else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
+                    finish();
+                }
             }
         } else if (requestCode == ENROLL_REQUEST) {
             if (resultCode == RESULT_TIMEOUT) {
                 setResult(resultCode, data);
                 finish();
             }
+        } else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
+            mBiometricsAuthenticationRequested = false;
+            if (resultCode != RESULT_OK) {
+                finish();
+            }
         }
     }
 
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 795f999..b32ab4f 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -74,6 +74,7 @@
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.display.DisplayDensityUtils;
+import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
 
 import com.airbnb.lottie.LottieAnimationView;
 import com.airbnb.lottie.LottieComposition;
@@ -89,7 +90,6 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.List;
-import java.util.function.Function;
 
 /**
  * Activity which handles the actual enrolling for fingerprint.
@@ -197,8 +197,10 @@
     private OrientationEventListener mOrientationEventListener;
     private int mPreviousRotation = 0;
 
-    @NonNull
-    private SfpsEnrollmentFeature mSfpsEnrollmentFeature = new EmptySfpsEnrollmentFeature();
+    private boolean mIsFolded = false;
+
+    private SfpsEnrollmentFeature mSfpsEnrollmentFeature;
+
     @Nullable
     private UdfpsEnrollCalibrator mCalibrator;
 
@@ -386,6 +388,7 @@
     @Override
     protected void onStart() {
         super.onStart();
+        setupScreenFoldCallbackWhenNecessary();
         updateProgress(false /* animate */);
         updateTitleAndDescription(true);
         if (mRestoring) {
@@ -393,6 +396,19 @@
         }
     }
 
+    private void setupScreenFoldCallbackWhenNecessary() {
+        if (mCanAssumeSfps) {
+            // These two fields will be cleaned up in BiometricEnrollBase#onStop.
+            mScreenSizeFoldProvider = new ScreenSizeFoldProvider(getApplicationContext());
+            mFoldCallback = isFolded -> {
+                mIsFolded = isFolded;
+                maybeHideSfpsText(getResources().getConfiguration());
+            };
+            // The callback will be unregistered in BiometricEnrollBase#onStop.
+            mScreenSizeFoldProvider.registerCallback(mFoldCallback, getMainExecutor());
+        }
+    }
+
     @Override
     public void onEnterAnimationComplete() {
         super.onEnterAnimationComplete();
@@ -1156,13 +1172,12 @@
     private void maybeHideSfpsText(@NonNull Configuration newConfig) {
         final HeaderMixin headerMixin = getLayout().getMixin(HeaderMixin.class);
         final DescriptionMixin descriptionMixin = getLayout().getMixin(DescriptionMixin.class);
-        final boolean isLandscape = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE;
 
         if (mCanAssumeSfps) {
             // hide the description
             descriptionMixin.getTextView().setVisibility(View.GONE);
             headerMixin.getTextView().setHyphenationFrequency(HYPHENATION_FREQUENCY_NONE);
-            if (isLandscape) {
+            if (mSfpsEnrollmentFeature.shouldAdjustHeaderText(newConfig, mIsFolded)) {
                 headerMixin.setAutoTextSizeEnabled(true);
                 headerMixin.getTextView().setMinLines(0);
                 headerMixin.getTextView().setMaxLines(10);
@@ -1209,32 +1224,4 @@
         }
     }
 
-    private static class EmptySfpsEnrollmentFeature implements SfpsEnrollmentFeature {
-        private final String exceptionStr = "Assume sfps but no SfpsEnrollmentFeature impl.";
-
-        @Override
-        public int getCurrentSfpsEnrollStage(int progressSteps, Function<Integer, Integer> mapper) {
-            throw new IllegalStateException(exceptionStr);
-        }
-
-        @Override
-        public int getFeaturedStageHeaderResource(int stage) {
-            throw new IllegalStateException(exceptionStr);
-        }
-
-        @Override
-        public int getSfpsEnrollLottiePerStage(int stage) {
-            throw new IllegalStateException(exceptionStr);
-        }
-
-        @Override
-        public float getEnrollStageThreshold(@NonNull Context context, int index) {
-            throw new IllegalStateException(exceptionStr);
-        }
-
-        @Override
-        public Animator getHelpAnimator(@NonNull View target) {
-            throw new IllegalStateException(exceptionStr);
-        }
-    }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java b/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
index 73eccdc..2737d38 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
@@ -23,6 +23,7 @@
 import android.util.Log;
 
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.core.InstrumentedFragment;
 
@@ -51,7 +52,8 @@
         }
     }
 
-    private FingerprintManager.RemovalCallback
+    @VisibleForTesting
+    FingerprintManager.RemovalCallback
             mRemoveCallback = new FingerprintManager.RemovalCallback() {
         @Override
         public void onRemovalSucceeded(Fingerprint fingerprint, int remaining) {
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 4646134..125691f 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -23,6 +23,7 @@
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 import static com.android.settings.Utils.isPrivateProfile;
+import static com.android.settings.biometrics.BiometricEnrollBase.BIOMETRIC_AUTH_REQUEST;
 import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;
 import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE;
 
@@ -41,10 +42,11 @@
 import android.os.Handler;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.os.VibrationEffect;
+import android.os.Vibrator;
 import android.text.InputFilter;
 import android.text.Spanned;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.view.View;
 import android.widget.ImeAwareEditText;
@@ -69,8 +71,6 @@
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricUtils;
 import com.android.settings.biometrics.GatekeeperPasswordProvider;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
 import com.android.settings.core.SettingsBaseActivity;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.dashboard.DashboardFragment;
@@ -111,6 +111,9 @@
     private static final int RESULT_FINISHED = BiometricEnrollBase.RESULT_FINISHED;
     private static final int RESULT_SKIP = BiometricEnrollBase.RESULT_SKIP;
     private static final int RESULT_TIMEOUT = BiometricEnrollBase.RESULT_TIMEOUT;
+    @VisibleForTesting
+    static final VibrationEffect SUCCESS_VIBRATION_EFFECT =
+            VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
 
     @Override
     public Intent getIntent() {
@@ -161,11 +164,27 @@
 
         public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
                 new BaseSearchIndexProvider(R.xml.security_settings_fingerprint) {
+
+                    @Override
+                    protected boolean isPageSearchEnabled(Context context) {
+                        return super.isPageSearchEnabled(context) &&
+                                hasEnrolledFingerprints(context);
+                    }
+
                     @Override
                     public List<AbstractPreferenceController>
                             createPreferenceControllers(Context context) {
                         return createThePreferenceControllers(context);
                     }
+
+                    private boolean hasEnrolledFingerprints(Context context) {
+                        final FingerprintManager fingerprintManager =
+                                Utils.getFingerprintManagerOrNull(context);
+                        if (fingerprintManager != null) {
+                            return fingerprintManager.hasEnrolledTemplates(UserHandle.myUserId());
+                        }
+                        return false;
+                    }
                 };
 
         private static List<AbstractPreferenceController> createThePreferenceControllers(Context
@@ -218,12 +237,15 @@
                 "security_settings_fingerprint_unlock_category";
         private static final String KEY_FINGERPRINT_UNLOCK_FOOTER =
                 "security_settings_fingerprint_footer";
+        private static final String KEY_BIOMETRICS_AUTHENTICATION_REQUESTED =
+                "biometrics_authentication_requested";
 
         private static final int MSG_REFRESH_FINGERPRINT_TEMPLATES = 1000;
         private static final int MSG_FINGER_AUTH_SUCCESS = 1001;
         private static final int MSG_FINGER_AUTH_FAIL = 1002;
         private static final int MSG_FINGER_AUTH_ERROR = 1003;
         private static final int MSG_FINGER_AUTH_HELP = 1004;
+        private static final int MSG_RELOAD_FINGERPRINT_TEMPLATES = 1005;
 
         private static final int CONFIRM_REQUEST = 101;
         @VisibleForTesting
@@ -251,6 +273,7 @@
         private boolean mInFingerprintLockout;
         private byte[] mToken;
         private boolean mLaunchedConfirm;
+        private boolean mBiometricsAuthenticationRequested;
         private boolean mHasFirstEnrolled = true;
         private Drawable mHighlightDrawable;
         private int mUserId;
@@ -264,6 +287,7 @@
         private FingerprintAuthenticateSidecar mAuthenticateSidecar;
         private FingerprintRemoveSidecar mRemovalSidecar;
         private HashMap<Integer, String> mFingerprintsRenaming;
+        private Vibrator mVibrator;
 
         @Nullable
         private UdfpsEnrollCalibrator mCalibrator;
@@ -309,6 +333,8 @@
                         if (activity != null) {
                             Toast.makeText(activity, errString, Toast.LENGTH_SHORT);
                         }
+                        mHandler.obtainMessage(MSG_RELOAD_FINGERPRINT_TEMPLATES)
+                                .sendToTarget();
                         updateDialog();
                     }
 
@@ -327,11 +353,7 @@
                 switch (msg.what) {
                     case MSG_REFRESH_FINGERPRINT_TEMPLATES:
                         removeFingerprintPreference(msg.arg1);
-                        updateAddPreference();
-                        if (isSfps()) {
-                            updateFingerprintUnlockCategoryVisibility();
-                        }
-                        updatePreferences();
+                        updatePreferencesAfterFingerprintRemoved();
                         break;
                     case MSG_FINGER_AUTH_SUCCESS:
                         highlightFingerprintItem(msg.arg1);
@@ -343,10 +365,13 @@
                     case MSG_FINGER_AUTH_ERROR:
                         handleError(msg.arg1 /* errMsgId */, (CharSequence) msg.obj /* errStr */);
                         break;
+                    case MSG_RELOAD_FINGERPRINT_TEMPLATES:
+                        updatePreferencesAfterFingerprintRemoved();
+                        break;
                     case MSG_FINGER_AUTH_HELP: {
                         // Not used
+                        break;
                     }
-                    break;
                 }
             }
         };
@@ -464,6 +489,8 @@
                 mIsEnrolling = savedInstanceState.getBoolean(KEY_IS_ENROLLING, mIsEnrolling);
                 mHasFirstEnrolled = savedInstanceState.getBoolean(KEY_HAS_FIRST_ENROLLED,
                         mHasFirstEnrolled);
+                mBiometricsAuthenticationRequested = savedInstanceState.getBoolean(
+                        KEY_BIOMETRICS_AUTHENTICATION_REQUESTED);
             }
 
             // (mLaunchedConfirm or mIsEnrolling) means that we are waiting an activity result.
@@ -477,6 +504,7 @@
                     addFirstFingerprint(null);
                 }
             }
+            mVibrator = getContext().getSystemService(Vibrator.class);
             final PreferenceScreen root = getPreferenceScreen();
             root.removeAll();
             addPreferencesFromResource(getPreferenceScreenResId());
@@ -554,6 +582,7 @@
 
         protected void removeFingerprintPreference(int fingerprintId) {
             String name = genKey(fingerprintId);
+            Log.e(TAG, "removeFingerprintPreference : " + fingerprintId);
             Preference prefToRemove = findPreference(name);
             if (prefToRemove != null) {
                 if (!getPreferenceScreen().removePreference(prefToRemove)) {
@@ -678,6 +707,14 @@
                     });
         }
 
+        private void updatePreferencesAfterFingerprintRemoved() {
+            updateAddPreference();
+            if (isSfps()) {
+                updateFingerprintUnlockCategoryVisibility();
+            }
+            updatePreferences();
+        }
+
         private void updateAddPreference() {
             if (getActivity() == null) {
                 return; // Activity went away
@@ -798,6 +835,8 @@
             outState.putSerializable("mFingerprintsRenaming", mFingerprintsRenaming);
             outState.putBoolean(KEY_IS_ENROLLING, mIsEnrolling);
             outState.putBoolean(KEY_HAS_FIRST_ENROLLED, mHasFirstEnrolled);
+            outState.putBoolean(KEY_BIOMETRICS_AUTHENTICATION_REQUESTED,
+                    mBiometricsAuthenticationRequested);
         }
 
         @Override
@@ -806,15 +845,8 @@
             if (KEY_FINGERPRINT_ADD.equals(key)) {
                 mIsEnrolling = true;
                 Intent intent = new Intent();
-                if (FeatureFlagUtils.isEnabled(getContext(),
-                        FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
-                    intent.setClassName(SETTINGS_PACKAGE_NAME,
-                            FingerprintEnrollmentActivity.InternalActivity.class.getName());
-                    intent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, true);
-                } else {
-                    intent.setClassName(SETTINGS_PACKAGE_NAME,
-                            FingerprintEnrollEnrolling.class.getName());
-                }
+                intent.setClassName(SETTINGS_PACKAGE_NAME,
+                        FingerprintEnrollEnrolling.class.getName());
                 intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
                 intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
                 if (mCalibrator != null) {
@@ -968,6 +1000,18 @@
                                         updateAddPreference();
                                     });
                         }
+                        final Utils.BiometricStatus biometricAuthStatus =
+                                Utils.requestBiometricAuthenticationForMandatoryBiometrics(
+                                        getActivity(),
+                                        mBiometricsAuthenticationRequested,
+                                        mUserId);
+                        if (biometricAuthStatus == Utils.BiometricStatus.OK) {
+                            Utils.launchBiometricPromptForMandatoryBiometrics(this,
+                                    BIOMETRIC_AUTH_REQUEST,
+                                    mUserId, true /* hideBackground */);
+                        } else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
+                            finish();
+                        }
                     } else {
                         Log.d(TAG, "Data null or GK PW missing");
                         finish();
@@ -1018,6 +1062,11 @@
                 mIsEnrolling = false;
                 mHasFirstEnrolled = true;
                 updateAddPreference();
+            } else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
+                mBiometricsAuthenticationRequested = false;
+                if (resultCode != RESULT_OK) {
+                    finish();
+                }
             }
         }
 
@@ -1040,6 +1089,7 @@
         }
 
         private void highlightFingerprintItem(int fpId) {
+            mVibrator.vibrate(SUCCESS_VIBRATION_EFFECT);
             String prefName = genKey(fpId);
             FingerprintPreference fpref = (FingerprintPreference) findPreference(prefName);
             final Drawable highlight = getHighlightDrawable();
@@ -1092,12 +1142,7 @@
         private void addFirstFingerprint(@Nullable Long gkPwHandle) {
             Intent intent = new Intent();
             intent.setClassName(SETTINGS_PACKAGE_NAME,
-                    FeatureFlagUtils.isEnabled(getActivity(),
-                            FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)
-                            ? FingerprintEnrollmentActivity.InternalActivity.class.getName()
-                            : FingerprintEnrollIntroductionInternal.class.getName()
-            );
-
+                    FingerprintEnrollIntroductionInternal.class.getName());
             intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true);
             intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
                     SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
@@ -1163,7 +1208,7 @@
 
             @Override
             public int getMetricsCategory() {
-                return SettingsEnums.DIALOG_FINGERPINT_EDIT;
+                return SettingsEnums.DIALOG_FINGERPRINT_DELETE;
             }
 
             @Override
@@ -1325,7 +1370,7 @@
 
             @Override
             public int getMetricsCategory() {
-                return SettingsEnums.DIALOG_FINGERPINT_EDIT;
+                return SettingsEnums.DIALOG_FINGERPRINT_RENAME;
             }
         }
 
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
index bdf9530..2d31b0c 100644
--- a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
@@ -18,6 +18,7 @@
 
 import android.animation.Animator;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.view.View;
 
 import androidx.annotation.NonNull;
@@ -114,4 +115,13 @@
      * @param remaining remaining
      */
     default void handleOnEnrollmentProgressChange(int steps, int remaining) {}
+
+    /**
+     * Indicates if the properties of header text view like auto text size or min / max lines
+     * should be adjusted.
+     * @param conf the current configuration
+     * @param isFolded is the device folded
+     * @return true if should adjust auto size and max lines of header; otherwise false
+     */
+    boolean shouldAdjustHeaderText(@NonNull Configuration conf, boolean isFolded);
 }
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
index 60ced6e..bf97478 100644
--- a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
@@ -26,6 +26,7 @@
 import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.content.Context;
+import android.content.res.Configuration;
 import android.hardware.fingerprint.FingerprintManager;
 import android.view.View;
 import android.view.animation.AccelerateInterpolator;
@@ -107,4 +108,9 @@
         help.setAutoCancel(false);
         return help;
     }
+
+    @Override
+    public boolean shouldAdjustHeaderText(@NonNull Configuration conf, boolean isFolded) {
+        return conf.orientation == Configuration.ORIENTATION_LANDSCAPE;
+    }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
index 215692a..e3233ed 100644
--- a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
@@ -19,7 +19,6 @@
 import android.hardware.fingerprint.FingerprintManager
 import android.view.MotionEvent
 import android.view.accessibility.AccessibilityManager
-import androidx.fragment.app.FragmentActivity
 import androidx.lifecycle.ViewModelStore
 import androidx.lifecycle.ViewModelStoreOwner
 import com.android.internal.widget.LockPatternUtils
@@ -27,33 +26,47 @@
 import com.android.settings.biometrics.GatekeeperPasswordProvider
 import com.android.settings.biometrics.fingerprint2.data.repository.DebuggingRepository
 import com.android.settings.biometrics.fingerprint2.data.repository.DebuggingRepositoryImpl
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintEnrollmentRepositoryImpl
 import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepository
 import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepositoryImpl
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSettingsRepositoryImpl
+import com.android.settings.biometrics.fingerprint2.data.repository.UserRepoImpl
 import com.android.settings.biometrics.fingerprint2.debug.data.repository.UdfpsEnrollDebugRepositoryImpl
 import com.android.settings.biometrics.fingerprint2.debug.domain.interactor.DebugTouchEventInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.AccessibilityInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.AccessibilityInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.AuthenticateInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.CanEnrollFingerprintsInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.DebuggingInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.DebuggingInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.DisplayDensityInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.DisplayDensityInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollFingerprintInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollStageInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollStageInteractorImpl
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollInteractor
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollInteractorImpl
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrolledFingerprintsInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintSensorInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintSensorInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FoldStateInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FoldStateInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.GenerateChallengeInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.OrientationInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.OrientationInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.RemoveFingerprintsInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.RenameFingerprintsInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.SensorInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.TouchEventInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.UdfpsEnrollInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.UdfpsEnrollInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.VibrationInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.VibrationInteractorImpl
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.AuthenitcateInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.CanEnrollFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrollFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.GenerateChallengeInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RemoveFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RenameFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.Settings
 import java.util.concurrent.Executors
 import kotlinx.coroutines.MainScope
@@ -68,36 +81,53 @@
  * This code is instantiated within the [SettingsApplication], all repos should be private &
  * immutable and all interactors should public and immutable
  */
-class BiometricsEnvironment(context: SettingsApplication) : ViewModelStoreOwner {
-
+class BiometricsEnvironment(
+  val context: SettingsApplication,
+  private val fingerprintManager: FingerprintManager,
+) : ViewModelStoreOwner {
   private val executorService = Executors.newSingleThreadExecutor()
   private val backgroundDispatcher = executorService.asCoroutineDispatcher()
   private val applicationScope = MainScope()
   private val gateKeeperPasswordProvider = GatekeeperPasswordProvider(LockPatternUtils(context))
-  private val fingerprintManager =
-    context.getSystemService(FragmentActivity.FINGERPRINT_SERVICE) as FingerprintManager?
 
+  private val userRepo = UserRepoImpl(context.userId)
+  private val fingerprintSettingsRepository =
+    FingerprintSettingsRepositoryImpl(
+      context.resources.getInteger(
+        com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser
+      )
+    )
+  private val fingerprintEnrollmentRepository =
+    FingerprintEnrollmentRepositoryImpl(fingerprintManager, userRepo, fingerprintSettingsRepository,
+      backgroundDispatcher, applicationScope)
   private val fingerprintSensorRepository: FingerprintSensorRepository =
     FingerprintSensorRepositoryImpl(fingerprintManager, backgroundDispatcher, applicationScope)
   private val debuggingRepository: DebuggingRepository = DebuggingRepositoryImpl()
   private val udfpsDebugRepo = UdfpsEnrollDebugRepositoryImpl()
 
-  /** For now, interactors are public to those with access to the [BiometricsEnvironment] class */
-  val fingerprintEnrollInteractor: FingerprintEnrollInteractor by lazy {
-    FingerprintEnrollInteractorImpl(context, fingerprintManager, Settings)
-  }
+  fun createSensorPropertiesInteractor(): SensorInteractor =
+    SensorInteractorImpl(fingerprintSensorRepository)
 
-  /** [FingerprintManagerInteractor] to be used to construct view models */
-  val fingerprintManagerInteractor: FingerprintManagerInteractor by lazy {
-    FingerprintManagerInteractorImpl(
-      context,
-      backgroundDispatcher,
-      fingerprintManager,
-      fingerprintSensorRepository,
-      gateKeeperPasswordProvider,
-      fingerprintEnrollInteractor,
-    )
-  }
+  fun createCanEnrollFingerprintsInteractor(): CanEnrollFingerprintsInteractor =
+    CanEnrollFingerprintsInteractorImpl(fingerprintEnrollmentRepository)
+
+  fun createGenerateChallengeInteractor(): GenerateChallengeInteractor =
+    GenerateChallengeInteractorImpl(fingerprintManager, context.userId, gateKeeperPasswordProvider)
+
+  fun createFingerprintEnrollInteractor(): EnrollFingerprintInteractor =
+    EnrollFingerprintInteractorImpl(context.userId, fingerprintManager, Settings)
+
+  fun createFingerprintsEnrolledInteractor(): EnrolledFingerprintsInteractorImpl =
+    EnrolledFingerprintsInteractorImpl(fingerprintManager, context.userId)
+
+  fun createAuthenticateInteractor(): AuthenitcateInteractor =
+    AuthenticateInteractorImpl(fingerprintManager, context.userId)
+
+  fun createRemoveFingerprintInteractor(): RemoveFingerprintInteractor =
+    RemoveFingerprintsInteractorImpl(fingerprintManager, context.userId)
+
+  fun createRenameFingerprintInteractor(): RenameFingerprintInteractor =
+    RenameFingerprintsInteractorImpl(fingerprintManager, context.userId, backgroundDispatcher)
 
   val accessibilityInteractor: AccessibilityInteractor by lazy {
     AccessibilityInteractorImpl(
diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt
new file mode 100644
index 0000000..22904e9
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintEnrollmentRepo.kt
@@ -0,0 +1,98 @@
+/*
+ * 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.biometrics.fingerprint2.data.repository
+
+import android.hardware.biometrics.BiometricStateListener
+import android.hardware.fingerprint.FingerprintManager
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.withContext
+
+/** Repository that contains information about fingerprint enrollments. */
+interface FingerprintEnrollmentRepository {
+  /** The current enrollments of the user */
+  val currentEnrollments: Flow<List<FingerprintData>?>
+
+  /** Indicates if a user can enroll another fingerprint */
+  val canEnrollUser: Flow<Boolean>
+
+  fun maxFingerprintsEnrollable(): Int
+}
+
+class FingerprintEnrollmentRepositoryImpl(
+  fingerprintManager: FingerprintManager,
+  userRepo: UserRepo,
+  private val settingsRepository: FingerprintSettingsRepository,
+  backgroundDispatcher: CoroutineDispatcher,
+  applicationScope: CoroutineScope,
+) : FingerprintEnrollmentRepository {
+
+  private val enrollmentChangedFlow: Flow<Int?> =
+    callbackFlow {
+        val callback =
+          object : BiometricStateListener() {
+            override fun onEnrollmentsChanged(userId: Int, sensorId: Int, hasEnrollments: Boolean) {
+              trySend(userId)
+            }
+          }
+        withContext(backgroundDispatcher) {
+          fingerprintManager.registerBiometricStateListener(callback)
+        }
+        awaitClose {
+          // no way to unregister
+        }
+      }
+      .stateIn(applicationScope, started = SharingStarted.Eagerly, initialValue = null)
+
+  override val currentEnrollments: Flow<List<FingerprintData>> =
+    userRepo.currentUser
+      .distinctUntilChanged()
+      .flatMapLatest { currentUser ->
+        enrollmentChangedFlow.map { enrollmentChanged ->
+          if (enrollmentChanged == null || enrollmentChanged == currentUser) {
+            fingerprintManager
+              .getEnrolledFingerprints(currentUser)
+              ?.map { (FingerprintData(it.name.toString(), it.biometricId, it.deviceId)) }
+              ?.toList()
+          } else {
+            null
+          }
+        }
+      }
+      .filterNotNull()
+      .flowOn(backgroundDispatcher)
+
+  override val canEnrollUser: Flow<Boolean> =
+    currentEnrollments.map {
+      it?.size?.let { it < settingsRepository.maxEnrollableFingerprints() } ?: false
+    }
+
+  override fun maxFingerprintsEnrollable(): Int {
+    return settingsRepository.maxEnrollableFingerprints()
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSensorRepository.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSensorRepository.kt
index 516549e..1cca532 100644
--- a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSensorRepository.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSensorRepository.kt
@@ -31,6 +31,8 @@
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.stateIn
 import kotlinx.coroutines.flow.transform
 import kotlinx.coroutines.withContext
@@ -43,10 +45,13 @@
 interface FingerprintSensorRepository {
   /** Get the [FingerprintSensor] */
   val fingerprintSensor: Flow<FingerprintSensor>
+
+  /** Indicates if this device supports the side fingerprint sensor */
+  val hasSideFps: Flow<Boolean>
 }
 
 class FingerprintSensorRepositoryImpl(
-  fingerprintManager: FingerprintManager?,
+  private val fingerprintManager: FingerprintManager,
   backgroundDispatcher: CoroutineDispatcher,
   activityScope: CoroutineScope,
 ) : FingerprintSensorRepository {
@@ -66,7 +71,7 @@
             }
           }
         withContext(backgroundDispatcher) {
-          fingerprintManager?.addAuthenticatorsRegisteredCallback(callback)
+          fingerprintManager.addAuthenticatorsRegisteredCallback(callback)
         }
         awaitClose {}
       }
@@ -75,6 +80,9 @@
   override val fingerprintSensor: Flow<FingerprintSensor> =
     fingerprintPropsInternal.transform { emit(it.toFingerprintSensor()) }
 
+  override val hasSideFps: Flow<Boolean> =
+    fingerprintSensor.flatMapLatest { flow { emit(fingerprintManager.isPowerbuttonFps()) } }
+
   companion object {
 
     private val DEFAULT_PROPS =
diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSettingsRepository.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSettingsRepository.kt
new file mode 100644
index 0000000..fe6676c
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSettingsRepository.kt
@@ -0,0 +1,32 @@
+/*
+ * 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.biometrics.fingerprint2.data.repository
+
+/**
+ * Repository for storing metadata about fingerprint enrollments.
+ */
+interface FingerprintSettingsRepository {
+    /**
+     * Indicates the maximum number of fingerprints enrollable
+     */
+    fun maxEnrollableFingerprints(): Int
+}
+
+class FingerprintSettingsRepositoryImpl(private val maxFingerprintsEnrollable: Int) :
+    FingerprintSettingsRepository {
+    override fun maxEnrollableFingerprints() = maxFingerprintsEnrollable
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/SimulatedTouchEventsRepository.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/SimulatedTouchEventsRepository.kt
index 3c355e7..9b7f280 100644
--- a/src/com/android/settings/biometrics/fingerprint2/data/repository/SimulatedTouchEventsRepository.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/SimulatedTouchEventsRepository.kt
@@ -16,7 +16,6 @@
 
 package com.android.settings.biometrics.fingerprint2.data.repository
 
-import android.graphics.Point
 import android.view.MotionEvent
 import kotlinx.coroutines.flow.Flow
 
diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/UserRepo.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/UserRepo.kt
new file mode 100644
index 0000000..720e778
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/UserRepo.kt
@@ -0,0 +1,34 @@
+/*
+ * 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.biometrics.fingerprint2.data.repository
+
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOf
+
+/**
+ * A repository responsible for indicating the current user.
+ */
+interface UserRepo {
+    /**
+     * This flow indicates the current user.
+     */
+    val currentUser: Flow<Int>
+}
+
+class UserRepoImpl(val currUser: Int): UserRepo {
+    override val currentUser: Flow<Int> = flowOf(currUser)
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/debug/data/repository/UdfpsEnrollDebugRepository.kt b/src/com/android/settings/biometrics/fingerprint2/debug/data/repository/UdfpsEnrollDebugRepository.kt
index 0c3152a..bc48f07 100644
--- a/src/com/android/settings/biometrics/fingerprint2/debug/data/repository/UdfpsEnrollDebugRepository.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/debug/data/repository/UdfpsEnrollDebugRepository.kt
@@ -97,6 +97,8 @@
   }
 
   override val fingerprintSensor: Flow<FingerprintSensor> = flowOf(sensorProps)
+  override val hasSideFps: Flow<Boolean>
+    get() = flowOf(false)
 
   private fun pointToLeftOfSensor(sensorLocation: Rect): MotionEvent =
     MotionEvent.obtain(
diff --git a/src/com/android/settings/biometrics/fingerprint2/debug/domain/interactor/DebugTouchEventInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/debug/domain/interactor/DebugTouchEventInteractorImpl.kt
index fff6b66..f6627e1 100644
--- a/src/com/android/settings/biometrics/fingerprint2/debug/domain/interactor/DebugTouchEventInteractorImpl.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/debug/domain/interactor/DebugTouchEventInteractorImpl.kt
@@ -26,4 +26,4 @@
 ) : TouchEventInteractor {
   override val touchEvent: Flow<MotionEvent> =
     udfpsSimulatedTouchEventsRepository.touchExplorationDebug
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/AuthenticateInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/AuthenticateInteractorImpl.kt
new file mode 100644
index 0000000..df93092
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/AuthenticateInteractorImpl.kt
@@ -0,0 +1,71 @@
+/*
+ * 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.biometrics.fingerprint2.domain.interactor
+
+import android.hardware.fingerprint.FingerprintManager
+import android.os.CancellationSignal
+import android.util.Log
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.AuthenitcateInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import kotlin.coroutines.resume
+import kotlinx.coroutines.CancellableContinuation
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+class AuthenticateInteractorImpl(
+  private val fingerprintManager: FingerprintManager,
+  private val userId: Int,
+) : AuthenitcateInteractor {
+
+  override suspend fun authenticate(): FingerprintAuthAttemptModel =
+    suspendCancellableCoroutine { c: CancellableContinuation<FingerprintAuthAttemptModel> ->
+      val authenticationCallback =
+        object : FingerprintManager.AuthenticationCallback() {
+
+          override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
+            super.onAuthenticationError(errorCode, errString)
+            if (c.isCompleted) {
+              Log.d(TAG, "framework sent down onAuthError after finish")
+              return
+            }
+            c.resume(FingerprintAuthAttemptModel.Error(errorCode, errString.toString()))
+          }
+
+          override fun onAuthenticationSucceeded(result: FingerprintManager.AuthenticationResult) {
+            super.onAuthenticationSucceeded(result)
+            if (c.isCompleted) {
+              Log.d(TAG, "framework sent down onAuthError after finish")
+              return
+            }
+            c.resume(FingerprintAuthAttemptModel.Success(result.fingerprint?.biometricId ?: -1))
+          }
+        }
+
+      val cancellationSignal = CancellationSignal()
+      c.invokeOnCancellation { cancellationSignal.cancel() }
+      fingerprintManager.authenticate(
+        null,
+        cancellationSignal,
+        authenticationCallback,
+        null,
+        userId,
+      )
+    }
+
+  companion object {
+    private const val TAG = "AuthenticateInteractor"
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/CanEnrollFingerprintsInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/CanEnrollFingerprintsInteractorImpl.kt
new file mode 100644
index 0000000..caeea4e
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/CanEnrollFingerprintsInteractorImpl.kt
@@ -0,0 +1,31 @@
+/*
+ * 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.biometrics.fingerprint2.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintEnrollmentRepository
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.CanEnrollFingerprintsInteractor
+import kotlinx.coroutines.flow.Flow
+
+class CanEnrollFingerprintsInteractorImpl(
+  val fingerprintEnrollmentRepository: FingerprintEnrollmentRepository
+) : CanEnrollFingerprintsInteractor {
+  override val canEnrollFingerprints: Flow<Boolean> = fingerprintEnrollmentRepository.canEnrollUser
+  /** Indicates the maximum fingerprints enrollable for a given user */
+  override fun maxFingerprintsEnrollable(): Int {
+    return fingerprintEnrollmentRepository.maxFingerprintsEnrollable()
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/EnrollFingerprintInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/EnrollFingerprintInteractorImpl.kt
new file mode 100644
index 0000000..3e14a64
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/EnrollFingerprintInteractorImpl.kt
@@ -0,0 +1,146 @@
+/*
+ * 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.biometrics.fingerprint2.domain.interactor
+
+import android.hardware.fingerprint.FingerprintEnrollOptions
+import android.hardware.fingerprint.FingerprintManager
+import android.os.CancellationSignal
+import android.util.Log
+import com.android.settings.biometrics.fingerprint2.conversion.Util.toEnrollError
+import com.android.settings.biometrics.fingerprint2.conversion.Util.toOriginalReason
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrollFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
+import com.android.settings.biometrics.fingerprint2.lib.model.SetupWizard
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.channels.onFailure
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.update
+
+class EnrollFingerprintInteractorImpl(
+  private val userId: Int,
+  private val fingerprintManager: FingerprintManager,
+  private val fingerprintFlow: FingerprintFlow,
+) : EnrollFingerprintInteractor {
+  private val enrollRequestOutstanding = MutableStateFlow(false)
+
+  override suspend fun enroll(
+    hardwareAuthToken: ByteArray?,
+    enrollReason: EnrollReason,
+    fingerprintEnrollOptions: FingerprintEnrollOptions,
+  ): Flow<FingerEnrollState> = callbackFlow {
+    // TODO (b/308456120) Improve this logic
+    if (enrollRequestOutstanding.value) {
+      Log.d(TAG, "Outstanding enroll request, waiting 150ms")
+      delay(150)
+      if (enrollRequestOutstanding.value) {
+        Log.e(TAG, "Request still present, continuing")
+      }
+    }
+
+    enrollRequestOutstanding.update { true }
+
+    var streamEnded = false
+    var totalSteps: Int? = null
+    val enrollmentCallback =
+      object : FingerprintManager.EnrollmentCallback() {
+        override fun onEnrollmentProgress(remaining: Int) {
+          // This is sort of an implementation detail, but unfortunately the API isn't
+          // very expressive. If anything we should look at changing the FingerprintManager API.
+          if (totalSteps == null) {
+            totalSteps = remaining + 1
+          }
+
+          trySend(FingerEnrollState.EnrollProgress(remaining, totalSteps!!)).onFailure { error ->
+            Log.d(TAG, "onEnrollmentProgress($remaining) failed to send, due to $error")
+          }
+
+          if (remaining == 0) {
+            streamEnded = true
+            enrollRequestOutstanding.update { false }
+          }
+        }
+
+        override fun onEnrollmentHelp(helpMsgId: Int, helpString: CharSequence?) {
+          trySend(FingerEnrollState.EnrollHelp(helpMsgId, helpString.toString())).onFailure { error
+            ->
+            Log.d(TAG, "onEnrollmentHelp failed to send, due to $error")
+          }
+        }
+
+        override fun onEnrollmentError(errMsgId: Int, errString: CharSequence?) {
+          trySend(errMsgId.toEnrollError(fingerprintFlow == SetupWizard)).onFailure { error ->
+            Log.d(TAG, "onEnrollmentError failed to send, due to $error")
+          }
+          Log.d(TAG, "onEnrollmentError($errMsgId)")
+          streamEnded = true
+          enrollRequestOutstanding.update { false }
+        }
+
+        override fun onUdfpsPointerDown(sensorId: Int) {
+          trySend(FingerEnrollState.PointerDown(sensorId)).onFailure { error ->
+            Log.d(TAG, "onUdfpsPointerDown failed to send, due to $error")
+          }
+        }
+
+        override fun onUdfpsPointerUp(sensorId: Int) {
+          trySend(FingerEnrollState.PointerUp(sensorId)).onFailure { error ->
+            Log.d(TAG, "onUdfpsPointerUp failed to send, due to $error")
+          }
+        }
+
+        override fun onUdfpsOverlayShown() {
+          trySend(FingerEnrollState.OverlayShown).onFailure { error ->
+            Log.d(TAG, "OverlayShown failed to send, due to $error")
+          }
+        }
+
+        override fun onAcquired(isAcquiredGood: Boolean) {
+          trySend(FingerEnrollState.Acquired(isAcquiredGood)).onFailure { error ->
+            Log.d(TAG, "Acquired failed to send, due to $error")
+          }
+        }
+      }
+
+    val cancellationSignal = CancellationSignal()
+
+    fingerprintManager.enroll(
+      hardwareAuthToken,
+      cancellationSignal,
+      userId,
+      enrollmentCallback,
+      enrollReason.toOriginalReason(),
+      fingerprintEnrollOptions,
+    )
+    awaitClose {
+      // If the stream has not been ended, and the user has stopped collecting the flow
+      // before it was over, send cancel.
+      if (!streamEnded) {
+        Log.e(TAG, "Cancel is sent from settings for enroll()")
+        cancellationSignal.cancel()
+      }
+    }
+  }
+
+  companion object {
+    private const val TAG = "FingerprintEnrollStateRepository"
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/EnrolledFingerprintsInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/EnrolledFingerprintsInteractorImpl.kt
new file mode 100644
index 0000000..83b532e
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/EnrolledFingerprintsInteractorImpl.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.biometrics.fingerprint2.domain.interactor
+
+import android.hardware.fingerprint.FingerprintManager
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrolledFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flow
+
+class EnrolledFingerprintsInteractorImpl(
+  private val fingerprintManager: FingerprintManager,
+  userId: Int,
+) : EnrolledFingerprintsInteractor {
+  override val enrolledFingerprints: Flow<List<FingerprintData>?> = flow {
+    emit(
+      fingerprintManager
+        .getEnrolledFingerprints(userId)
+        ?.map { (FingerprintData(it.name.toString(), it.biometricId, it.deviceId)) }
+        ?.toList()
+    )
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollInteractor.kt
index a36832d..56a1257 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintEnrollInteractor.kt
@@ -16,7 +16,6 @@
 
 package com.android.settings.biometrics.fingerprint2.domain.interactor
 
-import android.content.Context
 import android.hardware.fingerprint.FingerprintEnrollOptions
 import android.hardware.fingerprint.FingerprintManager
 import android.os.CancellationSignal
@@ -49,7 +48,7 @@
 }
 
 class FingerprintEnrollInteractorImpl(
-  private val applicationContext: Context,
+  private val userId: Int,
   private val fingerprintManager: FingerprintManager?,
   private val fingerprintFlow: FingerprintFlow,
 ) : FingerprintEnrollInteractor {
@@ -138,7 +137,7 @@
     fingerprintManager?.enroll(
       hardwareAuthToken,
       cancellationSignal,
-      applicationContext.userId,
+      userId,
       enrollmentCallback,
       enrollReason.toOriginalReason(),
       fingerprintEnrollOptions,
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
deleted file mode 100644
index f03c94e..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
+++ /dev/null
@@ -1,173 +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.biometrics.fingerprint2.domain.interactor
-
-import android.content.Context
-import android.content.Intent
-import android.hardware.fingerprint.FingerprintEnrollOptions
-import android.hardware.fingerprint.FingerprintManager
-import android.hardware.fingerprint.FingerprintManager.GenerateChallengeCallback
-import android.hardware.fingerprint.FingerprintManager.RemovalCallback
-import android.os.CancellationSignal
-import android.util.Log
-import com.android.settings.biometrics.GatekeeperPasswordProvider
-import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepository
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
-import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
-import com.android.settings.password.ChooseLockSettingsHelper
-import kotlin.coroutines.resume
-import kotlin.coroutines.suspendCoroutine
-import kotlinx.coroutines.CancellableContinuation
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.flow
-import kotlinx.coroutines.suspendCancellableCoroutine
-import kotlinx.coroutines.withContext
-
-private const val TAG = "FingerprintManagerInteractor"
-
-class FingerprintManagerInteractorImpl(
-  applicationContext: Context,
-  private val backgroundDispatcher: CoroutineDispatcher,
-  private val fingerprintManager: FingerprintManager?,
-  fingerprintSensorRepository: FingerprintSensorRepository,
-  private val gatekeeperPasswordProvider: GatekeeperPasswordProvider,
-  private val fingerprintEnrollStateRepository: FingerprintEnrollInteractor,
-) : FingerprintManagerInteractor {
-
-  private val maxFingerprints =
-    applicationContext.resources.getInteger(
-      com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser
-    )
-  private val applicationContext = applicationContext.applicationContext
-
-  override suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray> =
-    suspendCoroutine {
-      val callback = GenerateChallengeCallback { _, userId, challenge ->
-        val intent = Intent()
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gateKeeperPasswordHandle)
-        val challengeToken =
-          gatekeeperPasswordProvider.requestGatekeeperHat(intent, challenge, userId)
-
-        gatekeeperPasswordProvider.removeGatekeeperPasswordHandle(intent, false)
-        val p = Pair(challenge, challengeToken)
-        it.resume(p)
-      }
-      fingerprintManager?.generateChallenge(applicationContext.userId, callback)
-    }
-
-  override val enrolledFingerprints: Flow<List<FingerprintData>?> = flow {
-    emit(
-      fingerprintManager?.getEnrolledFingerprints(applicationContext.userId)
-        ?.map { (FingerprintData(it.name.toString(), it.biometricId, it.deviceId)) }?.toList()
-    )
-  }
-
-  override val canEnrollFingerprints: Flow<Boolean> = flow {
-    emit(
-      fingerprintManager?.getEnrolledFingerprints(applicationContext.userId)?.size  ?: maxFingerprints < maxFingerprints
-    )
-  }
-
-  override val sensorPropertiesInternal = fingerprintSensorRepository.fingerprintSensor
-
-  override val maxEnrollableFingerprints = flow { emit(maxFingerprints) }
-
-  override suspend fun enroll(
-    hardwareAuthToken: ByteArray?,
-    enrollReason: EnrollReason,
-    fingerprintEnrollOptions: FingerprintEnrollOptions,
-  ): Flow<FingerEnrollState> =
-    fingerprintEnrollStateRepository.enroll(
-      hardwareAuthToken,
-      enrollReason,
-      fingerprintEnrollOptions,
-    )
-
-  override suspend fun removeFingerprint(fp: FingerprintData): Boolean = suspendCoroutine {
-    val callback =
-      object : RemovalCallback() {
-        override fun onRemovalError(
-          fp: android.hardware.fingerprint.Fingerprint,
-          errMsgId: Int,
-          errString: CharSequence,
-        ) {
-          it.resume(false)
-        }
-
-        override fun onRemovalSucceeded(
-          fp: android.hardware.fingerprint.Fingerprint?,
-          remaining: Int,
-        ) {
-          it.resume(true)
-        }
-      }
-    fingerprintManager?.remove(
-      android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId),
-      applicationContext.userId,
-      callback,
-    )
-  }
-
-  override suspend fun renameFingerprint(fp: FingerprintData, newName: String) {
-    withContext(backgroundDispatcher) {
-      fingerprintManager?.rename(fp.fingerId, applicationContext.userId, newName)
-    }
-  }
-
-  override suspend fun hasSideFps(): Boolean? = suspendCancellableCoroutine {
-    it.resume(fingerprintManager?.isPowerbuttonFps)
-  }
-
-  override suspend fun authenticate(): FingerprintAuthAttemptModel =
-    suspendCancellableCoroutine { c: CancellableContinuation<FingerprintAuthAttemptModel> ->
-      val authenticationCallback =
-        object : FingerprintManager.AuthenticationCallback() {
-
-          override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
-            super.onAuthenticationError(errorCode, errString)
-            if (c.isCompleted) {
-              Log.d(TAG, "framework sent down onAuthError after finish")
-              return
-            }
-            c.resume(FingerprintAuthAttemptModel.Error(errorCode, errString.toString()))
-          }
-
-          override fun onAuthenticationSucceeded(result: FingerprintManager.AuthenticationResult) {
-            super.onAuthenticationSucceeded(result)
-            if (c.isCompleted) {
-              Log.d(TAG, "framework sent down onAuthError after finish")
-              return
-            }
-            c.resume(FingerprintAuthAttemptModel.Success(result.fingerprint?.biometricId ?: -1))
-          }
-        }
-
-      val cancellationSignal = CancellationSignal()
-      c.invokeOnCancellation { cancellationSignal.cancel() }
-      fingerprintManager?.authenticate(
-        null,
-        cancellationSignal,
-        authenticationCallback,
-        null,
-        applicationContext.userId,
-      )
-    }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintSensorInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintSensorInteractor.kt
index 073629c..7b1d4fd 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintSensorInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintSensorInteractor.kt
@@ -20,9 +20,7 @@
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
 import kotlinx.coroutines.flow.Flow
 
-/**
- * Interactor that propagates the type of [FingerprintSensor] this device supports.
- */
+/** Interactor that propagates the type of [FingerprintSensor] this device supports. */
 interface FingerprintSensorInteractor {
   /** Get the [FingerprintSensor] */
   val fingerprintSensor: Flow<FingerprintSensor>
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/GenerateChallengeInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/GenerateChallengeInteractorImpl.kt
new file mode 100644
index 0000000..a2080fb
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/GenerateChallengeInteractorImpl.kt
@@ -0,0 +1,48 @@
+/*
+ * 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.biometrics.fingerprint2.domain.interactor
+
+import android.content.Intent
+import android.hardware.fingerprint.FingerprintManager
+import com.android.settings.biometrics.GatekeeperPasswordProvider
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.GenerateChallengeInteractor
+import com.android.settings.password.ChooseLockSettingsHelper
+import kotlin.coroutines.resume
+import kotlin.coroutines.suspendCoroutine
+
+class GenerateChallengeInteractorImpl(
+  private val fingerprintManager: FingerprintManager,
+  private val userId: Int,
+  private val gatekeeperPasswordProvider: GatekeeperPasswordProvider,
+) : GenerateChallengeInteractor {
+
+  override suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray> =
+    suspendCoroutine {
+      val callback =
+        FingerprintManager.GenerateChallengeCallback { _, userId, challenge ->
+          val intent = Intent()
+          intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gateKeeperPasswordHandle)
+          val challengeToken =
+            gatekeeperPasswordProvider.requestGatekeeperHat(intent, challenge, userId)
+
+          gatekeeperPasswordProvider.removeGatekeeperPasswordHandle(intent, false)
+          val p = Pair(challenge, challengeToken)
+          it.resume(p)
+        }
+      fingerprintManager.generateChallenge(userId, callback)
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/RemoveFingerprintsInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/RemoveFingerprintsInteractorImpl.kt
new file mode 100644
index 0000000..4232963
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/RemoveFingerprintsInteractorImpl.kt
@@ -0,0 +1,55 @@
+/*
+ * 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.biometrics.fingerprint2.domain.interactor
+
+import android.hardware.fingerprint.FingerprintManager
+import android.hardware.fingerprint.FingerprintManager.RemovalCallback
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RemoveFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import kotlin.coroutines.resume
+import kotlin.coroutines.suspendCoroutine
+
+class RemoveFingerprintsInteractorImpl(
+  private val fingerprintManager: FingerprintManager,
+  private val userId: Int,
+) : RemoveFingerprintInteractor {
+
+  override suspend fun removeFingerprint(fp: FingerprintData): Boolean = suspendCoroutine {
+    val callback =
+      object : RemovalCallback() {
+        override fun onRemovalError(
+          fp: android.hardware.fingerprint.Fingerprint,
+          errMsgId: Int,
+          errString: CharSequence,
+        ) {
+          it.resume(false)
+        }
+
+        override fun onRemovalSucceeded(
+          fp: android.hardware.fingerprint.Fingerprint?,
+          remaining: Int,
+        ) {
+          it.resume(true)
+        }
+      }
+    fingerprintManager.remove(
+      android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId),
+      userId,
+      callback,
+    )
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/RenameFingerprintsInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/RenameFingerprintsInteractorImpl.kt
new file mode 100644
index 0000000..f238e7c
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/RenameFingerprintsInteractorImpl.kt
@@ -0,0 +1,34 @@
+/*
+ * 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.biometrics.fingerprint2.domain.interactor
+
+import android.hardware.fingerprint.FingerprintManager
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RenameFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.withContext
+
+class RenameFingerprintsInteractorImpl(
+  private val fingerprintManager: FingerprintManager,
+  private val userId: Int,
+  private val backgroundDispatcher: CoroutineDispatcher,
+) : RenameFingerprintInteractor {
+
+  override suspend fun renameFingerprint(fp: FingerprintData, newName: String) {
+    withContext(backgroundDispatcher) { fingerprintManager.rename(fp.fingerId, userId, newName) }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/SensorInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/SensorInteractorImpl.kt
new file mode 100644
index 0000000..7df0795
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/SensorInteractorImpl.kt
@@ -0,0 +1,27 @@
+/*
+ * 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.biometrics.fingerprint2.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepository
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
+import kotlinx.coroutines.flow.Flow
+
+class SensorInteractorImpl(private val repo: FingerprintSensorRepository) :
+  SensorInteractor {
+  override val sensorPropertiesInternal = repo.fingerprintSensor
+  override val hasSideFps: Flow<Boolean> = repo.hasSideFps
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/TouchEventInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/TouchEventInteractor.kt
index 4ef2afa..778837d 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/TouchEventInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/TouchEventInteractor.kt
@@ -24,4 +24,3 @@
   /** A flow simulating user touches. */
   val touchEvent: Flow<MotionEvent>
 }
-
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/AndroidManifest.xml b/src/com/android/settings/biometrics/fingerprint2/lib/AndroidManifest.xml
index 250f0af..0b7ea28 100644
--- a/src/com/android/settings/biometrics/fingerprint2/lib/AndroidManifest.xml
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/AndroidManifest.xml
@@ -13,6 +13,6 @@
   ~ See the License for the specific language governing permissions and
   ~ limitations under the License.
   -->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+<manifest
     package="com.android.settings.biometrics.fingerprint2.lib">
 </manifest>
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/AuthenitcateInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/AuthenitcateInteractor.kt
new file mode 100644
index 0000000..4fc9413
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/AuthenitcateInteractor.kt
@@ -0,0 +1,25 @@
+/*
+ * 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.biometrics.fingerprint2.lib.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+
+/** Interactor responsible for coordinating authentication. */
+interface AuthenitcateInteractor {
+  /** Runs the authenticate flow */
+  suspend fun authenticate(): FingerprintAuthAttemptModel
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/CanEnrollFingerprintsInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/CanEnrollFingerprintsInteractor.kt
new file mode 100644
index 0000000..11a9258
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/CanEnrollFingerprintsInteractor.kt
@@ -0,0 +1,27 @@
+/*
+ * 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.biometrics.fingerprint2.lib.domain.interactor
+
+import kotlinx.coroutines.flow.Flow
+
+/** Returns whether or not a user can enroll a fingerprint */
+interface CanEnrollFingerprintsInteractor {
+  /** Returns true if a user can enroll a fingerprint false otherwise. */
+  val canEnrollFingerprints: Flow<Boolean>
+  /** Indicates the maximum fingerprints enrollable for a given user */
+  fun maxFingerprintsEnrollable(): Int
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/EnrollFingerprintInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/EnrollFingerprintInteractor.kt
new file mode 100644
index 0000000..be7b4d0
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/EnrollFingerprintInteractor.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.biometrics.fingerprint2.lib.domain.interactor
+
+import android.hardware.fingerprint.FingerprintEnrollOptions
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import kotlinx.coroutines.flow.Flow
+
+/** Interactor that enrolls a fingerprint */
+interface EnrollFingerprintInteractor {
+  /**
+   * Runs [FingerprintManager.enroll] with the [hardwareAuthToken] and [EnrollReason] for this
+   * enrollment. If successful data in the [fingerprintEnrollState] should be populated.
+   */
+  suspend fun enroll(
+    hardwareAuthToken: ByteArray?,
+    enrollReason: EnrollReason,
+    fingerprintEnrollOptions: FingerprintEnrollOptions,
+  ): Flow<FingerEnrollState>
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/EnrolledFingerprintsInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/EnrolledFingerprintsInteractor.kt
new file mode 100644
index 0000000..14fc1e5
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/EnrolledFingerprintsInteractor.kt
@@ -0,0 +1,26 @@
+/*
+ * 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.biometrics.fingerprint2.lib.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import kotlinx.coroutines.flow.Flow
+
+/** Interface to obtain the enrolled fingerprints */
+interface EnrolledFingerprintsInteractor {
+  /** Returns the list of current fingerprints. */
+  val enrolledFingerprints: Flow<List<FingerprintData>?>
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/FingerprintManagerInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/FingerprintManagerInteractor.kt
deleted file mode 100644
index 5f4ceca..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/FingerprintManagerInteractor.kt
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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.biometrics.fingerprint2.lib.domain.interactor
-
-import android.hardware.fingerprint.FingerprintEnrollOptions
-import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
-import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
-import com.android.systemui.biometrics.shared.model.FingerprintSensor
-import kotlinx.coroutines.flow.Flow
-
-/**
- * Interface to obtain the necessary data for FingerprintEnrollment/Settings
- *
- * Note that this interface should not have dependencies on heavyweight libraries such as the
- * framework, hidl/aidl, etc. This makes it much easier to test and create fakes for.
- */
-interface FingerprintManagerInteractor {
-  /** Returns the list of current fingerprints. */
-  val enrolledFingerprints: Flow<List<FingerprintData>?>
-
-  /** Returns the max enrollable fingerprints, note during SUW this might be 1 */
-  val maxEnrollableFingerprints: Flow<Int>
-
-  /** Returns true if a user can enroll a fingerprint false otherwise. */
-  val canEnrollFingerprints: Flow<Boolean>
-
-  /** Retrieves the sensor properties of a device */
-  val sensorPropertiesInternal: Flow<FingerprintSensor?>
-
-  /** Runs the authenticate flow */
-  suspend fun authenticate(): FingerprintAuthAttemptModel
-
-  /**
-   * Generates a challenge with the provided [gateKeeperPasswordHandle] and on success returns a
-   * challenge and challenge token. This info can be used for secure operations such as enrollment
-   *
-   * @param gateKeeperPasswordHandle GateKeeper password handle generated by a Confirm
-   * @return A [Pair] of the challenge and challenge token
-   */
-  suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray>
-
-  /**
-   * Runs [FingerprintManager.enroll] with the [hardwareAuthToken] and [EnrollReason] for this
-   * enrollment. If successful data in the [fingerprintEnrollState] should be populated.
-   */
-  suspend fun enroll(
-    hardwareAuthToken: ByteArray?,
-    enrollReason: EnrollReason,
-    fingerprintEnrollOptions: FingerprintEnrollOptions,
-  ): Flow<FingerEnrollState>
-
-  /**
-   * Removes the given fingerprint, returning true if it was successfully removed and false
-   * otherwise
-   */
-  suspend fun removeFingerprint(fp: FingerprintData): Boolean
-
-  /** Renames the given fingerprint if one exists */
-  suspend fun renameFingerprint(fp: FingerprintData, newName: String)
-
-  /** Indicates if the device has side fingerprint */
-  suspend fun hasSideFps(): Boolean?
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/GenerateChallengeInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/GenerateChallengeInteractor.kt
new file mode 100644
index 0000000..82667fe
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/GenerateChallengeInteractor.kt
@@ -0,0 +1,29 @@
+/*
+ * 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.biometrics.fingerprint2.lib.domain.interactor
+
+/** This interactor is responsible for generating a challenge. */
+interface GenerateChallengeInteractor {
+  /**
+   * Generates a challenge with the provided [gateKeeperPasswordHandle] and on success returns a
+   * challenge and challenge token. This info can be used for secure operations such as enrollment
+   *
+   * @param gateKeeperPasswordHandle GateKeeper password handle generated by a Confirm
+   * @return A [Pair] of the challenge and challenge token
+   */
+  suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray>
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/RemoveFingerprintInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/RemoveFingerprintInteractor.kt
new file mode 100644
index 0000000..6d0e5641
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/RemoveFingerprintInteractor.kt
@@ -0,0 +1,28 @@
+/*
+ * 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.biometrics.fingerprint2.lib.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+
+/** Interactor in charge of removing a fingerprint */
+interface RemoveFingerprintInteractor {
+  /**
+   * Removes the given fingerprint, returning true if it was successfully removed and false
+   * otherwise
+   */
+  suspend fun removeFingerprint(fp: FingerprintData): Boolean
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/RenameFingerprintInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/RenameFingerprintInteractor.kt
new file mode 100644
index 0000000..d7fe1c0
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/RenameFingerprintInteractor.kt
@@ -0,0 +1,25 @@
+/*
+ * 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.biometrics.fingerprint2.lib.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+
+/** Interactor that can rename a fingerprint. */
+interface RenameFingerprintInteractor {
+  /** Renames the given fingerprint if one exists */
+  suspend fun renameFingerprint(fp: FingerprintData, newName: String)
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/SensorInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/SensorInteractor.kt
new file mode 100644
index 0000000..f265c32
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/SensorInteractor.kt
@@ -0,0 +1,28 @@
+/*
+ * 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.biometrics.fingerprint2.lib.domain.interactor
+
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import kotlinx.coroutines.flow.Flow
+
+/** Interactor that has various information about a fingerprint sensor */
+interface SensorInteractor {
+  /** Retrieves the sensor properties of the device */
+  val sensorPropertiesInternal: Flow<FingerprintSensor?>
+  /** Indicates if the device supports side fps */
+  val hasSideFps: Flow<Boolean>
+}
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 421548f..77d070e 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
@@ -96,8 +96,8 @@
   }
 
   /**
-   * View models below this line are not used by this class but must be initialized
-   * in the activity view model store to be used by other view models.
+   * View models below this line are not used by this class but must be initialized in the activity
+   * view model store to be used by other view models.
    */
   private val fingerprintEnrollViewModel: FingerprintEnrollViewModel by viewModels {
     FingerprintEnrollViewModel.Factory
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt
index c95020d..932c408 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt
@@ -25,7 +25,7 @@
 import androidx.lifecycle.viewmodel.viewModelFactory
 import com.android.settings.SettingsApplication
 import com.android.settings.biometrics.fingerprint2.domain.interactor.OrientationInteractor
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintAction
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
@@ -46,10 +46,10 @@
 
 /** View Model used by the rear fingerprint enrollment fragment. */
 class RFPSViewModel(
-  private val fingerprintEnrollViewModel: FingerprintEnrollEnrollingViewModel,
-  private val navigationViewModel: FingerprintNavigationViewModel,
-  orientationInteractor: OrientationInteractor,
-  private val fingerprintManager: FingerprintManagerInteractor,
+    private val fingerprintEnrollViewModel: FingerprintEnrollEnrollingViewModel,
+    private val navigationViewModel: FingerprintNavigationViewModel,
+    orientationInteractor: OrientationInteractor,
+    private val sensorInteractor: SensorInteractor,
 ) : ViewModel() {
 
   private val _textViewIsVisible = MutableStateFlow(false)
@@ -62,7 +62,7 @@
   val shouldAnimateIcon = _shouldAnimateIcon
 
   private var enrollFlow: Flow<FingerEnrollState?> =
-    fingerprintManager.sensorPropertiesInternal.filterNotNull().combine(
+    sensorInteractor.sensorPropertiesInternal.filterNotNull().combine(
       fingerprintEnrollViewModel.enrollFlow
     ) { props, enroll ->
       if (props.sensorType == FingerprintSensorType.REAR) {
@@ -181,7 +181,7 @@
           provider[FingerprintEnrollEnrollingViewModel::class],
           provider[FingerprintNavigationViewModel::class],
           biometricEnvironment.orientationInteractor,
-          biometricEnvironment.fingerprintManagerInteractor,
+          biometricEnvironment.createSensorPropertiesInteractor(),
         )
       }
     }
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 3396cdc..658c6c7 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
@@ -38,7 +38,7 @@
 import com.android.settings.biometrics.fingerprint2.domain.interactor.TouchEventInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.UdfpsEnrollInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.VibrationInteractor
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.udfps.ui.model.DescriptionText
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.udfps.ui.model.HeaderText
@@ -76,17 +76,17 @@
   enrollStageInteractor: EnrollStageInteractor,
   orientationInteractor: OrientationInteractor,
   udfpsEnrollInteractor: UdfpsEnrollInteractor,
-  fingerprintManager: FingerprintManagerInteractor,
   accessibilityInteractor: AccessibilityInteractor,
   sensorRepository: FingerprintSensorInteractor,
   touchEventInteractor: TouchEventInteractor,
+  sensorInteractor: SensorInteractor,
 ) : ViewModel() {
 
   private val isSetupWizard = flowOf(false)
   private var shouldResetErollment = false
 
   private var _enrollState: Flow<FingerEnrollState?> =
-    fingerprintManager.sensorPropertiesInternal.filterNotNull().combine(
+    sensorInteractor.sensorPropertiesInternal.filterNotNull().combine(
       fingerprintEnrollEnrollingViewModel.enrollFlow
     ) { props, enroll ->
       if (props.sensorType.isUdfps()) {
@@ -198,8 +198,7 @@
       .distinctUntilChanged()
 
   private val _touchEvent: MutableStateFlow<MotionEvent?> = MutableStateFlow(null)
-  val touchEvent =
-    _touchEvent.asStateFlow().filterNotNull()
+  val touchEvent = _touchEvent.asStateFlow().filterNotNull()
 
   /** Determines the current [EnrollStageModel] enrollment is in */
   private val enrollStage: Flow<EnrollStageModel> =
@@ -267,11 +266,7 @@
       backgroundViewModel.background.filter { it }.collect { didGoToBackground() }
     }
 
-    viewModelScope.launch {
-      touchEventInteractor.touchEvent.collect {
-        _touchEvent.update { it }
-      }
-    }
+    viewModelScope.launch { touchEventInteractor.touchEvent.collect { _touchEvent.update { it } } }
   }
 
   /** Indicates if we should show the lottie. */
@@ -430,10 +425,10 @@
           biometricEnvironment.enrollStageInteractor,
           biometricEnvironment.orientationInteractor,
           biometricEnvironment.udfpsEnrollInteractor,
-          biometricEnvironment.fingerprintManagerInteractor,
           biometricEnvironment.accessibilityInteractor,
           biometricEnvironment.sensorInteractor,
           biometricEnvironment.touchEventInteractor,
+          biometricEnvironment.createSensorPropertiesInteractor(),
         )
       }
     }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollConfirmationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollConfirmationViewModel.kt
index 5ce2ed7..0803f89 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollConfirmationViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollConfirmationViewModel.kt
@@ -16,27 +16,27 @@
 
 package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
 
-import android.util.Log
 import androidx.lifecycle.VIEW_MODEL_STORE_OWNER_KEY
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewmodel.initializer
 import androidx.lifecycle.viewmodel.viewModelFactory
 import com.android.settings.SettingsApplication
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.CanEnrollFingerprintsInteractor
 import kotlinx.coroutines.flow.Flow
 
 /** Models the UI state for [FingerprintEnrollConfirmationV2Fragment] */
 class FingerprintEnrollConfirmationViewModel(
   private val navigationViewModel: FingerprintNavigationViewModel,
-  fingerprintInteractor: FingerprintManagerInteractor,
+  private val canEnrollFingerprintsInteractor: CanEnrollFingerprintsInteractor,
 ) : ViewModel() {
 
   /**
    * Indicates if the add another button is possible. This should only be true when the user is able
    * to enroll more fingerprints.
    */
-  val isAddAnotherButtonVisible: Flow<Boolean> = fingerprintInteractor.canEnrollFingerprints
+  val isAddAnotherButtonVisible: Flow<Boolean> =
+    canEnrollFingerprintsInteractor.canEnrollFingerprints
 
   /**
    * Indicates that the user has clicked the next button and is done with fingerprint enrollment.
@@ -64,7 +64,7 @@
         val provider = ViewModelProvider(this[VIEW_MODEL_STORE_OWNER_KEY]!!)
         FingerprintEnrollConfirmationViewModel(
           provider[FingerprintNavigationViewModel::class],
-          biometricEnvironment!!.fingerprintManagerInteractor,
+          biometricEnvironment!!.createCanEnrollFingerprintsInteractor(),
         )
       }
     }
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 3568dbd..9b2cdde 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
@@ -27,7 +27,7 @@
 import com.android.settings.biometrics.fingerprint2.domain.interactor.AccessibilityInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FoldStateInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.OrientationInteractor
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.biometrics.fingerprint2.lib.model.SetupWizard
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
@@ -44,20 +44,20 @@
 
 /** Models the UI state for fingerprint enroll education */
 class FingerprintEnrollFindSensorViewModel(
-  private val navigationViewModel: FingerprintNavigationViewModel,
-  private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
-  private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
-  backgroundViewModel: BackgroundViewModel,
-  fingerprintFlowViewModel: FingerprintFlowViewModel,
-  accessibilityInteractor: AccessibilityInteractor,
-  foldStateInteractor: FoldStateInteractor,
-  orientationInteractor: OrientationInteractor,
-  fingerprintManagerInteractor: FingerprintManagerInteractor,
+    private val navigationViewModel: FingerprintNavigationViewModel,
+    private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
+    private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
+    backgroundViewModel: BackgroundViewModel,
+    fingerprintFlowViewModel: FingerprintFlowViewModel,
+    accessibilityInteractor: AccessibilityInteractor,
+    foldStateInteractor: FoldStateInteractor,
+    orientationInteractor: OrientationInteractor,
+    sensorInteractor: SensorInteractor,
 ) : ViewModel() {
 
   /** Represents the stream of sensor type. */
   val sensorType: Flow<FingerprintSensorType> =
-    fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
+    sensorInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
   private val _isUdfps: Flow<Boolean> =
     sensorType.map {
       it == FingerprintSensorType.UDFPS_OPTICAL || it == FingerprintSensorType.UDFPS_ULTRASONIC
@@ -216,7 +216,7 @@
           biometricEnvironment.accessibilityInteractor,
           biometricEnvironment.foldStateInteractor,
           biometricEnvironment.orientationInteractor,
-          biometricEnvironment.fingerprintManagerInteractor,
+          biometricEnvironment.createSensorPropertiesInteractor(),
         )
       }
     }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollIntroViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollIntroViewModel.kt
index 6ec2048..e103cbc 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollIntroViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollIntroViewModel.kt
@@ -22,7 +22,7 @@
 import androidx.lifecycle.viewmodel.initializer
 import androidx.lifecycle.viewmodel.viewModelFactory
 import com.android.settings.SettingsApplication
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Introduction
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
@@ -30,13 +30,13 @@
 
 /** A view model for fingerprint enroll introduction. */
 class FingerprintEnrollIntroViewModel(
-  val navigationViewModel: FingerprintNavigationViewModel,
-  fingerprintFlowViewModel: FingerprintFlowViewModel,
-  fingerprintManagerInteractor: FingerprintManagerInteractor,
+    val navigationViewModel: FingerprintNavigationViewModel,
+    fingerprintFlowViewModel: FingerprintFlowViewModel,
+    sensorInteractor: SensorInteractor,
 ) : ViewModel() {
 
   /** Represents a stream of [FingerprintSensor] */
-  val sensor: Flow<FingerprintSensor?> = fingerprintManagerInteractor.sensorPropertiesInternal
+  val sensor: Flow<FingerprintSensor?> = sensorInteractor.sensorPropertiesInternal
 
   /** Represents a stream of [FingerprintFlow] */
   val fingerprintFlow: Flow<FingerprintFlow?> = fingerprintFlowViewModel.fingerprintFlow
@@ -67,7 +67,7 @@
         FingerprintEnrollIntroViewModel(
           provider[FingerprintNavigationViewModel::class],
           provider[FingerprintFlowViewModel::class],
-          biometricEnvironment!!.fingerprintManagerInteractor,
+          biometricEnvironment!!.createSensorPropertiesInteractor(),
         )
       }
     }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt
index 2669b8b..fb8a182 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt
@@ -24,7 +24,8 @@
 import androidx.lifecycle.viewmodel.initializer
 import androidx.lifecycle.viewmodel.viewModelFactory
 import com.android.settings.SettingsApplication
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrollFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
@@ -42,9 +43,10 @@
 
 /** Represents all of the fingerprint information needed for a fingerprint enrollment process. */
 class FingerprintEnrollViewModel(
-  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-  gatekeeperViewModel: FingerprintGatekeeperViewModel,
-  val navigationViewModel: FingerprintNavigationViewModel,
+    gatekeeperViewModel: FingerprintGatekeeperViewModel,
+    val navigationViewModel: FingerprintNavigationViewModel,
+    private val sensorInteractor: SensorInteractor,
+    private val fingerprintEnrollInteractor: EnrollFingerprintInteractor,
 ) : ViewModel() {
 
   /**
@@ -67,7 +69,7 @@
 
   /** Represents the stream of [FingerprintSensorType] */
   val sensorType: Flow<FingerprintSensorType?> =
-    fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
+    sensorInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
 
   /**
    * A flow that contains a [FingerprintEnrollViewModel] which contains the relevant information for
@@ -90,7 +92,7 @@
             enrollReason != null &&
             enrollOptions != null
         ) {
-          fingerprintManagerInteractor
+          fingerprintEnrollInteractor
             .enroll(hardwareAuthToken.token, enrollReason, enrollOptions)
             .collect { emit(it) }
         }
@@ -137,9 +139,10 @@
         val biometricEnvironment = settingsApplication.biometricEnvironment
         val provider = ViewModelProvider(this[VIEW_MODEL_STORE_OWNER_KEY]!!)
         FingerprintEnrollViewModel(
-          biometricEnvironment!!.fingerprintManagerInteractor,
           provider[FingerprintGatekeeperViewModel::class],
           provider[FingerprintNavigationViewModel::class],
+          biometricEnvironment!!.createSensorPropertiesInteractor(),
+          biometricEnvironment!!.createFingerprintEnrollInteractor(),
         )
       }
     }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
index b5be165..c2b0a0f 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
@@ -24,7 +24,7 @@
 import androidx.lifecycle.viewmodel.initializer
 import androidx.lifecycle.viewmodel.viewModelFactory
 import com.android.settings.SettingsApplication
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.GenerateChallengeInteractor
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.asStateFlow
@@ -50,7 +50,7 @@
  * in as a parameter to this class.
  */
 class FingerprintGatekeeperViewModel(
-  private val fingerprintManagerInteractor: FingerprintManagerInteractor
+  private val generateChallengeInteractor: GenerateChallengeInteractor
 ) : ViewModel() {
 
   private var _gatekeeperInfo: MutableStateFlow<GatekeeperInfo?> = MutableStateFlow(null)
@@ -78,7 +78,7 @@
       _gatekeeperInfo.update { GatekeeperInfo.Invalid }
     } else {
       viewModelScope.launch {
-        val res = fingerprintManagerInteractor.generateChallenge(theGatekeeperPasswordHandle!!)
+        val res = generateChallengeInteractor.generateChallenge(theGatekeeperPasswordHandle!!)
         _gatekeeperInfo.update { GatekeeperInfo.GatekeeperPasswordInfo(res.second, res.first) }
         if (shouldStartTimer) {
           startTimeout()
@@ -119,7 +119,7 @@
         val settingsApplication =
           this[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY] as SettingsApplication
         val biometricEnvironment = settingsApplication.biometricEnvironment
-        FingerprintGatekeeperViewModel(biometricEnvironment!!.fingerprintManagerInteractor)
+        FingerprintGatekeeperViewModel(biometricEnvironment!!.createGenerateChallengeInteractor())
       }
     }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationViewModel.kt
index caf7d2a..d9bcf7f 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationViewModel.kt
@@ -23,7 +23,7 @@
 import androidx.lifecycle.viewmodel.initializer
 import androidx.lifecycle.viewmodel.viewModelFactory
 import com.android.settings.SettingsApplication
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Finish
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.TransitionStep
@@ -46,7 +46,7 @@
  * fragments/viewmodels that want to consume these events. It should provide no additional
  * functionality beyond what is available in [FingerprintNavigationStep].
  */
-class FingerprintNavigationViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
+class FingerprintNavigationViewModel(sensorInteractor: SensorInteractor) :
   ViewModel() {
 
   private val _flowInternal: MutableStateFlow<FingerprintFlow?> = MutableStateFlow(null)
@@ -55,7 +55,7 @@
     combine(
         _flowInternal,
         _hasConfirmedDeviceCredential,
-        fingerprintManagerInteractor.sensorPropertiesInternal,
+        sensorInteractor.sensorPropertiesInternal,
       ) { flow, hasConfirmed, sensorType ->
         if (flow == null || sensorType == null) {
           return@combine null
@@ -144,7 +144,7 @@
         val settingsApplication =
           this[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY] as SettingsApplication
         val biometricEnvironment = settingsApplication.biometricEnvironment
-        FingerprintNavigationViewModel(biometricEnvironment!!.fingerprintManagerInteractor)
+        FingerprintNavigationViewModel(biometricEnvironment!!.createSensorPropertiesInteractor())
       }
     }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
index 46f64de..cb36721 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
@@ -42,7 +42,7 @@
   lateinit var onCancelListener: DialogInterface.OnCancelListener
 
   override fun getMetricsCategory(): Int {
-    return SettingsEnums.DIALOG_FINGERPINT_EDIT
+    return SettingsEnums.DIALOG_FINGERPRINT_DELETE
   }
 
   override fun onCancel(dialog: DialogInterface) {
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
index 9fef0c5..2f251de 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
@@ -95,7 +95,7 @@
   }
 
   override fun getMetricsCategory(): Int {
-    return SettingsEnums.DIALOG_FINGERPINT_EDIT
+    return SettingsEnums.DIALOG_FINGERPRINT_RENAME
   }
 
   companion object {
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
index 4c3773b..241eaea 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
@@ -35,19 +35,16 @@
 import androidx.lifecycle.lifecycleScope
 import androidx.preference.Preference
 import androidx.preference.PreferenceCategory
-import com.android.internal.widget.LockPatternUtils
 import com.android.settings.R
+import com.android.settings.SettingsApplication
 import com.android.settings.Utils.SETTINGS_PACKAGE_NAME
 import com.android.settings.biometrics.BiometricEnrollBase
 import com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST
 import com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY
 import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED
-import com.android.settings.biometrics.GatekeeperPasswordProvider
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
 import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepositoryImpl
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollInteractorImpl
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.PressToAuthInteractorImpl
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
@@ -223,35 +220,24 @@
     val fingerprintSensorProvider =
       FingerprintSensorRepositoryImpl(fingerprintManager, backgroundDispatcher, lifecycleScope)
     val pressToAuthInteractor = PressToAuthInteractorImpl(context, backgroundDispatcher)
-    val fingerprintEnrollStateRepository =
-      FingerprintEnrollInteractorImpl(
-        requireContext().applicationContext,
-        fingerprintManager,
-        Settings,
-      )
-
-    val interactor =
-      FingerprintManagerInteractorImpl(
-        context.applicationContext,
-        backgroundDispatcher,
-        fingerprintManager,
-        fingerprintSensorProvider,
-        GatekeeperPasswordProvider(LockPatternUtils(context.applicationContext)),
-        fingerprintEnrollStateRepository,
-      )
 
     val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
     val challenge = intent.getLongExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, -1L)
+    val application = requireActivity().application as SettingsApplication
+    val environment =
+      application.biometricEnvironment
+        ?: throw IllegalStateException("The biometric environment must be present")
 
     navigationViewModel =
       ViewModelProvider(
         this,
         FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
           userId,
-          interactor,
           backgroundDispatcher,
           token,
           challenge,
+          environment.createFingerprintsEnrolledInteractor(),
+          environment.createGenerateChallengeInteractor(),
         ),
       )[FingerprintSettingsNavigationViewModel::class.java]
 
@@ -260,9 +246,14 @@
         this,
         FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
           userId,
-          interactor,
           backgroundDispatcher,
           navigationViewModel,
+          environment.createCanEnrollFingerprintsInteractor(),
+          environment.createSensorPropertiesInteractor(),
+          environment.createAuthenticateInteractor(),
+          environment.createRenameFingerprintInteractor(),
+          environment.createRemoveFingerprintInteractor(),
+          environment.createFingerprintsEnrolledInteractor(),
         ),
       )[FingerprintSettingsViewModel::class.java]
 
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
index 8a694ae..73b2b1c 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
@@ -21,7 +21,8 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrolledFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.GenerateChallengeInteractor
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.StateFlow
@@ -33,10 +34,11 @@
 /** A Viewmodel that represents the navigation of the FingerprintSettings activity. */
 class FingerprintSettingsNavigationViewModel(
   private val userId: Int,
-  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
   private val backgroundDispatcher: CoroutineDispatcher,
   tokenInit: ByteArray?,
   challengeInit: Long?,
+  private val enrolledFingerprintsInteractor: EnrolledFingerprintsInteractor,
+  private val generateChallengeInteractor: GenerateChallengeInteractor,
 ) : ViewModel() {
 
   private var token = tokenInit
@@ -52,7 +54,7 @@
       _nextStep.update { LaunchConfirmDeviceCredential(userId) }
     } else {
       viewModelScope.launch {
-        if (fingerprintManagerInteractor.enrolledFingerprints.last()?.isEmpty() == true) {
+        if (enrolledFingerprintsInteractor.enrolledFingerprints.last()?.isEmpty() == true) {
           _nextStep.update { EnrollFirstFingerprint(userId, null, challenge, token) }
         } else {
           showSettingsHelper()
@@ -148,13 +150,13 @@
   }
 
   private suspend fun launchEnrollNextStep(gateKeeperPasswordHandle: Long?) {
-    fingerprintManagerInteractor.enrolledFingerprints.collect {
+    enrolledFingerprintsInteractor.enrolledFingerprints.collect {
       if (it?.isEmpty() == true) {
         _nextStep.update { EnrollFirstFingerprint(userId, gateKeeperPasswordHandle, null, null) }
       } else {
         viewModelScope.launch(backgroundDispatcher) {
           val challengePair =
-            fingerprintManagerInteractor.generateChallenge(gateKeeperPasswordHandle!!)
+            generateChallengeInteractor.generateChallenge(gateKeeperPasswordHandle!!)
           challenge = challengePair.first
           token = challengePair.second
 
@@ -174,10 +176,11 @@
 
   class FingerprintSettingsNavigationModelFactory(
     private val userId: Int,
-    private val interactor: FingerprintManagerInteractor,
     private val backgroundDispatcher: CoroutineDispatcher,
     private val token: ByteArray?,
     private val challenge: Long?,
+    private val enrolledFingerprintsInteractor: EnrolledFingerprintsInteractor,
+    private val generateChallengeInteractor: GenerateChallengeInteractor,
   ) : ViewModelProvider.Factory {
 
     @Suppress("UNCHECKED_CAST")
@@ -185,10 +188,11 @@
 
       return FingerprintSettingsNavigationViewModel(
         userId,
-        interactor,
         backgroundDispatcher,
         token,
         challenge,
+        enrolledFingerprintsInteractor,
+        generateChallengeInteractor,
       )
         as T
     }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
index cf8c527..c306c78 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
@@ -21,7 +21,12 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.AuthenitcateInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.CanEnrollFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrolledFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RemoveFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RenameFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
@@ -49,9 +54,14 @@
 /** Models the UI state for fingerprint settings. */
 class FingerprintSettingsViewModel(
   private val userId: Int,
-  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
   private val backgroundDispatcher: CoroutineDispatcher,
   private val navigationViewModel: FingerprintSettingsNavigationViewModel,
+  private val canEnrollFingerprintsInteractor: CanEnrollFingerprintsInteractor,
+  private val sensorInteractor: SensorInteractor,
+  private val authenticateInteractor: AuthenitcateInteractor,
+  private val renameFingerprintInteractor: RenameFingerprintInteractor,
+  private val removeFingerprintInteractor: RemoveFingerprintInteractor,
+  private val enrolledFingerprintsInteractor: EnrolledFingerprintsInteractor,
 ) : ViewModel() {
   private val _enrolledFingerprints: MutableStateFlow<List<FingerprintData>?> =
     MutableStateFlow(null)
@@ -62,19 +72,18 @@
 
   /** Represents the stream of the information of "Add Fingerprint" preference. */
   val addFingerprintPrefInfo: Flow<Pair<Boolean, Int>> =
-    _enrolledFingerprints.filterOnlyWhenSettingsIsShown().transform {
-      emit(
-        Pair(
-          fingerprintManagerInteractor.canEnrollFingerprints.first(),
-          fingerprintManagerInteractor.maxEnrollableFingerprints.first(),
-        )
-      )
+    _enrolledFingerprints.filterOnlyWhenSettingsIsShown().combine(
+      canEnrollFingerprintsInteractor.canEnrollFingerprints
+    ) { _, canEnrollFingerprints ->
+      Pair(canEnrollFingerprints, canEnrollFingerprintsInteractor.maxFingerprintsEnrollable())
     }
 
   /** Represents the stream of visibility of sfps preference. */
   val isSfpsPrefVisible: Flow<Boolean> =
-    _enrolledFingerprints.filterOnlyWhenSettingsIsShown().transform {
-      emit(fingerprintManagerInteractor.hasSideFps() == true && !it.isNullOrEmpty())
+    _enrolledFingerprints.filterOnlyWhenSettingsIsShown().combine(sensorInteractor.hasSideFps) {
+      fingerprints,
+      hasSideFps ->
+      hasSideFps && !fingerprints.isNullOrEmpty()
     }
 
   private val _isShowingDialog: MutableStateFlow<PreferenceViewModel?> = MutableStateFlow(null)
@@ -90,10 +99,10 @@
   private val _consumerShouldAuthenticate: MutableStateFlow<Boolean> = MutableStateFlow(false)
 
   private val _fingerprintSensorType: Flow<FingerprintSensorType> =
-    fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
+    sensorInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
 
   private val _sensorNullOrEmpty: Flow<Boolean> =
-    fingerprintManagerInteractor.sensorPropertiesInternal.map { it == null }
+    sensorInteractor.sensorPropertiesInternal.map { it == null }
 
   private val _isLockedOut: MutableStateFlow<FingerprintAuthAttemptModel.Error?> =
     MutableStateFlow(null)
@@ -172,7 +181,7 @@
           while (it && navigationViewModel.nextStep.value is ShowSettings) {
             Log.d(TAG, "canAuthenticate authing")
             attemptingAuth()
-            when (val authAttempt = fingerprintManagerInteractor.authenticate()) {
+            when (val authAttempt = authenticateInteractor.authenticate()) {
               is FingerprintAuthAttemptModel.Success -> {
                 onAuthSuccess(authAttempt)
                 emit(authAttempt)
@@ -243,7 +252,7 @@
   /** A request to delete a fingerprint */
   fun deleteFingerprint(fp: FingerprintData) {
     viewModelScope.launch(backgroundDispatcher) {
-      if (fingerprintManagerInteractor.removeFingerprint(fp)) {
+      if (removeFingerprintInteractor.removeFingerprint(fp)) {
         updateEnrolledFingerprints()
       }
     }
@@ -252,7 +261,7 @@
   /** A request to rename a fingerprint */
   fun renameFingerprint(fp: FingerprintData, newName: String) {
     viewModelScope.launch {
-      fingerprintManagerInteractor.renameFingerprint(fp, newName)
+      renameFingerprintInteractor.renameFingerprint(fp, newName)
       updateEnrolledFingerprints()
     }
   }
@@ -271,7 +280,7 @@
   }
 
   private suspend fun updateEnrolledFingerprints() {
-    _enrolledFingerprints.update { fingerprintManagerInteractor.enrolledFingerprints.first() }
+    _enrolledFingerprints.update { enrolledFingerprintsInteractor.enrolledFingerprints.first() }
   }
 
   /** Used to indicate whether the consumer of the view model is ready for authentication. */
@@ -288,9 +297,14 @@
 
   class FingerprintSettingsViewModelFactory(
     private val userId: Int,
-    private val interactor: FingerprintManagerInteractor,
     private val backgroundDispatcher: CoroutineDispatcher,
     private val navigationViewModel: FingerprintSettingsNavigationViewModel,
+    private val canEnrollFingerprintsInteractor: CanEnrollFingerprintsInteractor,
+    private val sensorInteractor: SensorInteractor,
+    private val authenticateInteractor: AuthenitcateInteractor,
+    private val renameFingerprintInteractor: RenameFingerprintInteractor,
+    private val removeFingerprintInteractor: RemoveFingerprintInteractor,
+    private val enrolledFingerprintsInteractor: EnrolledFingerprintsInteractor,
   ) : ViewModelProvider.Factory {
 
     @Suppress("UNCHECKED_CAST")
@@ -298,9 +312,14 @@
 
       return FingerprintSettingsViewModel(
         userId,
-        interactor,
         backgroundDispatcher,
         navigationViewModel,
+        canEnrollFingerprintsInteractor,
+        sensorInteractor,
+        authenticateInteractor,
+        renameFingerprintInteractor,
+        removeFingerprintInteractor,
+        enrolledFingerprintsInteractor,
       )
         as T
     }
diff --git a/src/com/android/settings/biometrics2/OWNERS b/src/com/android/settings/biometrics2/OWNERS
deleted file mode 100644
index ac806eb..0000000
--- a/src/com/android/settings/biometrics2/OWNERS
+++ /dev/null
@@ -1,4 +0,0 @@
-# The Android Biometric team should approve all changes to biometrics2 subdirectories.
-set noparent
-
-include /src/com/android/settings/biometrics/OWNERS
diff --git a/src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java b/src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java
deleted file mode 100644
index 6a9892a..0000000
--- a/src/com/android/settings/biometrics2/data/repository/FingerprintRepository.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.data.repository;
-
-import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.fingerprint.Fingerprint;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.ParentalControlsUtils;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-
-import java.util.List;
-
-/**
- * This repository is used to call all APIs in {@link FingerprintManager}
- */
-public class FingerprintRepository {
-
-    private static final String TAG = "FingerprintRepository";
-    @NonNull
-    private final FingerprintManager mFingerprintManager;
-
-    private List<FingerprintSensorPropertiesInternal> mSensorPropertiesCache;
-
-    public FingerprintRepository(@NonNull FingerprintManager fingerprintManager) {
-        mFingerprintManager = fingerprintManager;
-        mFingerprintManager.addAuthenticatorsRegisteredCallback(
-                new IFingerprintAuthenticatorsRegisteredCallback.Stub() {
-                    @Override
-                    public void onAllAuthenticatorsRegistered(
-                            List<FingerprintSensorPropertiesInternal> sensors) {
-                        mSensorPropertiesCache = sensors;
-                    }
-                });
-    }
-
-    /**
-     * The first sensor type is UDFPS sensor or not
-     */
-    public boolean canAssumeUdfps() {
-        FingerprintSensorPropertiesInternal prop = getFirstFingerprintSensorPropertiesInternal();
-        return prop != null && prop.isAnyUdfpsType();
-    }
-
-    /**
-     * The first sensor type is Side fps sensor or not
-     */
-    public boolean canAssumeSfps() {
-        FingerprintSensorPropertiesInternal prop = getFirstFingerprintSensorPropertiesInternal();
-        return prop != null && prop.isAnySidefpsType();
-    }
-
-    /**
-     * Get max possible number of fingerprints for a user
-     */
-    public int getMaxFingerprints() {
-        FingerprintSensorPropertiesInternal prop = getFirstFingerprintSensorPropertiesInternal();
-        return prop != null ? prop.maxEnrollmentsPerUser : 0;
-    }
-
-    /**
-     * Get number of fingerprints that this user enrolled.
-     */
-    public int getNumOfEnrolledFingerprintsSize(int userId) {
-        final List<Fingerprint> list = mFingerprintManager.getEnrolledFingerprints(userId);
-        return list != null ? list.size() : 0;
-    }
-
-    /**
-     * Get maximum possible fingerprints in setup wizard flow
-     */
-    public int getMaxFingerprintsInSuw(@NonNull Resources resources) {
-        return resources.getInteger(R.integer.suw_max_fingerprints_enrollable);
-    }
-
-    /**
-     * Gets the first FingerprintSensorPropertiesInternal from FingerprintManager
-     */
-    @Nullable
-    public FingerprintSensorPropertiesInternal getFirstFingerprintSensorPropertiesInternal() {
-        final List<FingerprintSensorPropertiesInternal> props = mSensorPropertiesCache;
-        if (props == null) {
-            // Handle this case if it really happens
-            Log.e(TAG, "Sensor properties cache is null");
-            return null;
-        }
-        return props.size() > 0 ? props.get(0) : null;
-    }
-
-    /**
-     * Call FingerprintManager to generate challenge for first sensor
-     */
-    public void generateChallenge(int userId,
-            @NonNull FingerprintManager.GenerateChallengeCallback callback) {
-        mFingerprintManager.generateChallenge(userId, callback);
-    }
-
-    /**
-     * Get parental consent required or not during enrollment process
-     */
-    public boolean isParentalConsentRequired(@NonNull Context context) {
-        return ParentalControlsUtils.parentConsentRequired(context, TYPE_FINGERPRINT) != null;
-    }
-
-    /**
-     * Get fingerprint is disable by admin or not
-     */
-    public boolean isDisabledByAdmin(@NonNull Context context, int userId) {
-        return RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
-                context, DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT, userId) != null;
-    }
-
-    /**
-     * Get fingerprint enroll stage threshold
-     */
-    public float getEnrollStageThreshold(int index) {
-        return mFingerprintManager.getEnrollStageThreshold(index);
-    }
-
-    /**
-     * Get fingerprint enroll stage count
-     */
-    public int getEnrollStageCount() {
-        return mFingerprintManager.getEnrollStageCount();
-    }
-}
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java b/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java
deleted file mode 100644
index fdc5745..0000000
--- a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.factory;
-
-import android.app.Application;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-/**
- * Interface for BiometricsRepositoryProvider
- */
-public interface BiometricsRepositoryProvider {
-
-    /**
-     * Get FingerprintRepository
-     */
-    @Nullable
-    FingerprintRepository getFingerprintRepository(@NonNull Application application);
-}
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java b/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java
deleted file mode 100644
index 22409c8..0000000
--- a/src/com/android/settings/biometrics2/factory/BiometricsRepositoryProviderImpl.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.factory;
-
-import android.app.Application;
-import android.hardware.fingerprint.FingerprintManager;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.Utils;
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-/**
- * Implementation for BiometricsRepositoryProvider
- */
-public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryProvider {
-
-    private static volatile FingerprintRepository sFingerprintRepository;
-
-    /**
-     * Get FingerprintRepository
-     */
-    @Nullable
-    @Override
-    public FingerprintRepository getFingerprintRepository(@NonNull Application application) {
-        final FingerprintManager fingerprintManager =
-                Utils.getFingerprintManagerOrNull(application);
-        if (fingerprintManager == null) {
-            return null;
-        }
-        if (sFingerprintRepository == null) {
-            synchronized (FingerprintRepository.class) {
-                if (sFingerprintRepository == null) {
-                    sFingerprintRepository = new FingerprintRepository(fingerprintManager);
-                }
-            }
-        }
-        return sFingerprintRepository;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java b/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
deleted file mode 100644
index 516f471..0000000
--- a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.factory;
-
-import android.app.Application;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.ViewModel;
-import androidx.lifecycle.ViewModelProvider;
-import androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory;
-import androidx.lifecycle.viewmodel.CreationExtras;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.CredentialModel;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
-
-/**
- * View model factory for biometric enrollment fragment
- */
-public class BiometricsViewModelFactory implements ViewModelProvider.Factory {
-
-    private static final String TAG = "BiometricsViewModelFactory";
-
-    public static final CreationExtras.Key<ChallengeGenerator> CHALLENGE_GENERATOR_KEY =
-            new CreationExtras.Key<ChallengeGenerator>() {};
-    public static final CreationExtras.Key<EnrollmentRequest> ENROLLMENT_REQUEST_KEY =
-            new CreationExtras.Key<EnrollmentRequest>() {};
-    public static final CreationExtras.Key<CredentialModel> CREDENTIAL_MODEL_KEY =
-            new CreationExtras.Key<CredentialModel>() {};
-
-    @NonNull
-    @Override
-    @SuppressWarnings("unchecked")
-    public <T extends ViewModel> T create(@NonNull Class<T> modelClass,
-            @NonNull CreationExtras extras) {
-        final Application application = extras.get(AndroidViewModelFactory.APPLICATION_KEY);
-
-        if (application == null) {
-            Log.w(TAG, "create, null application");
-            return create(modelClass);
-        }
-        final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
-        final BiometricsRepositoryProvider provider =
-                featureFactory.getBiometricsRepositoryProvider();
-
-        if (modelClass.isAssignableFrom(AutoCredentialViewModel.class)) {
-            final LockPatternUtils lockPatternUtils =
-                    featureFactory.getSecurityFeatureProvider().getLockPatternUtils(application);
-            final ChallengeGenerator challengeGenerator = extras.get(CHALLENGE_GENERATOR_KEY);
-            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
-            if (challengeGenerator != null && credentialModel != null) {
-                return (T) new AutoCredentialViewModel(application, lockPatternUtils,
-                        challengeGenerator, credentialModel);
-            }
-        } else if (modelClass.isAssignableFrom(DeviceFoldedViewModel.class)) {
-            return (T) new DeviceFoldedViewModel(new ScreenSizeFoldProvider(application),
-                    application.getMainExecutor());
-        } else if (modelClass.isAssignableFrom(DeviceRotationViewModel.class)) {
-            return (T) new DeviceRotationViewModel(application);
-        } else if (modelClass.isAssignableFrom(FingerprintEnrollFindSensorViewModel.class)) {
-            final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
-            if (request != null) {
-                return (T) new FingerprintEnrollFindSensorViewModel(application, request.isSuw());
-            }
-        } else if (modelClass.isAssignableFrom(FingerprintEnrollIntroViewModel.class)) {
-            final FingerprintRepository repository = provider.getFingerprintRepository(application);
-            final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
-            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
-            if (repository != null && request != null && credentialModel != null) {
-                return (T) new FingerprintEnrollIntroViewModel(application, repository, request,
-                        credentialModel.getUserId());
-            }
-        } else if (modelClass.isAssignableFrom(FingerprintEnrollmentViewModel.class)) {
-            final FingerprintRepository repository = provider.getFingerprintRepository(application);
-            final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
-            if (repository != null && request != null) {
-                return (T) new FingerprintEnrollmentViewModel(application, repository, request);
-            }
-        } else if (modelClass.isAssignableFrom(FingerprintEnrollProgressViewModel.class)) {
-            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
-            if (credentialModel != null) {
-                return (T) new FingerprintEnrollProgressViewModel(application,
-                        new FingerprintUpdater(application), credentialModel.getUserId());
-            }
-        } else if (modelClass.isAssignableFrom(FingerprintEnrollEnrollingViewModel.class)) {
-            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
-            final FingerprintRepository fingerprint = provider.getFingerprintRepository(
-                    application);
-            if (fingerprint != null && credentialModel != null) {
-                return (T) new FingerprintEnrollEnrollingViewModel(application,
-                        credentialModel.getUserId(), fingerprint);
-            }
-        } else if (modelClass.isAssignableFrom(FingerprintEnrollFinishViewModel.class)) {
-            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
-            final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
-            final FingerprintRepository fingerprint = provider.getFingerprintRepository(
-                    application);
-            if (fingerprint != null && credentialModel != null && request != null) {
-                return (T) new FingerprintEnrollFinishViewModel(application,
-                        credentialModel.getUserId(), request, fingerprint);
-            }
-        } else if (modelClass.isAssignableFrom(FingerprintEnrollErrorDialogViewModel.class)) {
-            final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
-            if (request != null) {
-                return (T) new FingerprintEnrollErrorDialogViewModel(application, request.isSuw());
-            }
-        }
-        return create(modelClass);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt b/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt
deleted file mode 100644
index 5350733..0000000
--- a/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt
+++ /dev/null
@@ -1,108 +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.biometrics2.ui.model
-
-import android.content.Intent.EXTRA_USER_ID
-import android.os.Bundle
-import android.os.UserHandle
-import androidx.annotation.VisibleForTesting
-import com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE
-import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN
-import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE
-import java.time.Clock
-
-/**
- * Secret credential data including
- * 1. userId
- * 2. challenge
- * 3. token
- * 4. gkPwHandle
- */
-class CredentialModel(bundle: Bundle?, private val clock: Clock) {
-
-    private val mInitMillis = clock.millis()
-
-    /** userId for this credential */
-    val userId: Int = (bundle ?: Bundle()).getInt(EXTRA_USER_ID, UserHandle.myUserId())
-
-    private var clearGkPwHandleMillis: Long? = null
-
-    /** Gatekeeper password handle */
-    var gkPwHandle: Long = (bundle ?: Bundle()).getLong(EXTRA_KEY_GK_PW_HANDLE, INVALID_GK_PW_HANDLE)
-        private set
-
-    val isValidGkPwHandle: Boolean
-        get() = gkPwHandle != INVALID_GK_PW_HANDLE
-
-    /** Clear gatekeeper password handle data */
-    fun clearGkPwHandle() {
-        clearGkPwHandleMillis = clock.millis()
-        gkPwHandle = INVALID_GK_PW_HANDLE
-    }
-
-    /** Check user id is valid or not */
-    val isValidUserId: Boolean
-        get() = userId != UserHandle.USER_NULL
-
-    private var updateChallengeMillis: Long? = null
-
-    var challenge: Long = (bundle ?: Bundle()).getLong(EXTRA_KEY_CHALLENGE, INVALID_CHALLENGE)
-        set(value) {
-            updateChallengeMillis = clock.millis()
-            field = value
-        }
-
-    val isValidChallenge: Boolean
-        get() = challenge != INVALID_CHALLENGE
-
-    private var updateTokenMillis: Long? = null
-
-    /** Challenge token */
-    var token: ByteArray? = (bundle ?: Bundle()).getByteArray(EXTRA_KEY_CHALLENGE_TOKEN)
-        set(value) {
-            updateTokenMillis = clock.millis()
-            field = value
-        }
-
-    val isValidToken: Boolean
-        get() = token != null
-
-    /** Returns a string representation of the object */
-    override fun toString(): String {
-        val gkPwHandleLen = "$gkPwHandle".length
-        val tokenLen = token?.size ?: 0
-        val challengeLen = "$challenge".length
-        return (javaClass.simpleName + ":{initMillis:$mInitMillis"
-                + ", userId:$userId"
-                + ", challenge:{len:$challengeLen"
-                + ", updateMillis:$updateChallengeMillis}"
-                + ", token:{len:$tokenLen, isValid:$isValidToken"
-                + ", updateMillis:$updateTokenMillis}"
-                + ", gkPwHandle:{len:$gkPwHandleLen, isValid:$isValidGkPwHandle"
-                + ", clearMillis:$clearGkPwHandleMillis}"
-                + " }")
-    }
-
-    companion object {
-        /** Default value for an invalid challenge */
-        @VisibleForTesting
-        const val INVALID_CHALLENGE = -1L
-
-        /** Default value if GkPwHandle is invalid */
-        @VisibleForTesting
-        const val INVALID_GK_PW_HANDLE = 0L
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt
deleted file mode 100644
index 7b35a68..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt
+++ /dev/null
@@ -1,33 +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.biometrics2.ui.model
-
-/** Biometric Enrollment progress */
-class EnrollmentProgress(val steps: Int, val remaining: Int) {
-
-    val isInitialStep: Boolean
-        get() = steps == INITIAL_STEPS
-
-    override fun toString(): String {
-        return ("${javaClass.simpleName}@${Integer.toHexString(hashCode())}"
-                + "{steps:$steps, remaining:$remaining}")
-    }
-
-    companion object {
-        const val INITIAL_STEPS = -1
-        const val INITIAL_REMAINING = 0
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt
deleted file mode 100644
index 4696c62..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt
+++ /dev/null
@@ -1,78 +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.biometrics2.ui.model
-
-import android.content.Context
-import android.content.Intent
-import android.os.Bundle
-import com.android.settings.SetupWizardUtils
-import com.android.settings.biometrics.BiometricEnrollActivity.EXTRA_SKIP_INTRO
-import com.google.android.setupcompat.util.WizardManagerHelper
-import com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW
-
-/**
- * Biometric enrollment generic intent data, which includes
- * 1. isSuw
- * 2. isAfterSuwOrSuwSuggestedAction
- * 3. theme
- * 4. isFromSettingsSummery
- * 5. isSkipIntro
- * 6. isSkipFindSensor
- * 7. a helper method, getSetupWizardExtras
- */
-class EnrollmentRequest(
-    intent: Intent,
-    context: Context,
-    isSetupActivity: Boolean
-) {
-    val isSuw: Boolean = isSetupActivity && WizardManagerHelper.isAnySetupWizard(intent)
-
-    val isAfterSuwOrSuwSuggestedAction = (isSetupActivity
-            && (WizardManagerHelper.isDeferredSetupWizard(intent)
-            || WizardManagerHelper.isPortalSetupWizard(intent)
-            || intent.getBooleanExtra(EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false)))
-
-    private val _suwExtras = getSuwExtras(isSuw, intent)
-
-    val isSkipIntro = intent.getBooleanExtra(EXTRA_SKIP_INTRO, false)
-
-    val isSkipFindSensor = intent.getBooleanExtra(EXTRA_SKIP_FIND_SENSOR, false)
-
-    val theme = SetupWizardUtils.getTheme(context, intent)
-
-    val suwExtras: Bundle
-        get() = Bundle(_suwExtras)
-
-    /**
-     * Returns a string representation of the object
-     */
-    override fun toString(): String {
-        return (javaClass.simpleName + ":{isSuw:" + isSuw
-                + ", isAfterSuwOrSuwSuggestedAction:" + isAfterSuwOrSuwSuggestedAction
-                + "}")
-    }
-
-    companion object {
-        const val EXTRA_SKIP_FIND_SENSOR = "skip_find_sensor"
-        private fun getSuwExtras(isSuw: Boolean, intent: Intent): Bundle {
-            val toIntent = Intent()
-            if (isSuw) {
-                SetupWizardUtils.copySetupExtras(intent, toIntent)
-            }
-            return toIntent.extras ?: Bundle()
-        }
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt
deleted file mode 100644
index 6dd0c5c..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt
+++ /dev/null
@@ -1,27 +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.biometrics2.ui.model
-
-/** Enrolling status message (help or error) */
-class EnrollmentStatusMessage(val msgId: Int, string: CharSequence?) {
-
-    /** Status string */
-    val str: CharSequence = string ?: ""
-
-    override fun toString(): String {
-        return "${javaClass.simpleName}@${Integer.toHexString(hashCode())}{id:$msgId, str:$str}"
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt b/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt
deleted file mode 100644
index 4cbaffa..0000000
--- a/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt
+++ /dev/null
@@ -1,49 +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.biometrics2.ui.model
-
-
-enum class FingerprintEnrollable {
-    // Unconfirmed case, this value is invalid, and view shall bypass this value
-    FINGERPRINT_ENROLLABLE_UNKNOWN,
-    // User is allowed to enrolled a new fingerprint
-    FINGERPRINT_ENROLLABLE_OK,
-    // User is not allowed to enroll because the number has reached maximum
-    FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-}
-
-/**
- * Fingerprint onboarding introduction page data, it contains following information which needs
- * to be passed from view model to view.
- * 1. mEnrollableStatus: User is allowed to enroll a new fingerprint or not.
- * 2. mHasScrollToBottom: User has scrolled to the bottom of this page or not.
- */
-class FingerprintEnrollIntroStatus(
-    private val mHasScrollToBottom: Boolean,
-    /** Enrollable status. It means that user is allowed to enroll a new fingerprint or not. */
-    val enrollableStatus: FingerprintEnrollable
-) {
-    /** Get info for this onboarding introduction page has scrolled to bottom or not */
-    fun hasScrollToBottom(): Boolean {
-        return mHasScrollToBottom
-    }
-
-    override fun toString(): String {
-        return ("${javaClass.simpleName}@${Integer.toHexString(hashCode())}"
-                + "{scrollToBottom:$mHasScrollToBottom"
-                + ", enrollableStatus:$enrollableStatus}")
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt
deleted file mode 100644
index 9f99d17..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt
+++ /dev/null
@@ -1,41 +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.biometrics2.ui.view
-
-import android.app.Dialog
-import android.content.Context
-import android.content.DialogInterface
-import android.os.Bundle
-import androidx.appcompat.app.AlertDialog
-import androidx.fragment.app.DialogFragment
-import com.android.settings.R
-
-/**
- * Icon Touch dialog
- */
-class FingerprintEnrollEnrollingIconTouchDialog : DialogFragment() {
-    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog =
-        requireActivity().bindFingerprintEnrollEnrollingIconTouchDialog()
-}
-
-fun Context.bindFingerprintEnrollEnrollingIconTouchDialog(): AlertDialog =
-    AlertDialog.Builder(this, R.style.Theme_AlertDialog)
-        .setTitle(R.string.security_settings_fingerprint_enroll_touch_dialog_title)
-        .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
-        .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok) {
-            dialog: DialogInterface?, _: Int -> dialog?.dismiss()
-        }
-        .create()
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt
deleted file mode 100644
index 2530628..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt
+++ /dev/null
@@ -1,513 +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.biometrics2.ui.view
-
-import android.animation.Animator
-import android.animation.ObjectAnimator
-import android.content.Context
-import android.graphics.PorterDuff
-import android.graphics.drawable.Animatable2
-import android.graphics.drawable.AnimatedVectorDrawable
-import android.graphics.drawable.Drawable
-import android.graphics.drawable.LayerDrawable
-import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
-import android.os.Bundle
-import android.text.TextUtils
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.MotionEvent
-import android.view.View
-import android.view.ViewGroup
-import android.view.animation.AnimationUtils.loadInterpolator
-import android.view.animation.Interpolator
-import android.widget.ProgressBar
-import android.widget.TextView
-import androidx.activity.OnBackPressedCallback
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import kotlinx.coroutines.launch
-
-/**
- * Fragment is used to handle enrolling process for rfps
- */
-class FingerprintEnrollEnrollingRfpsFragment : Fragment() {
-
-    private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
-    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
-        get() = _enrollingViewModel!!
-
-    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
-    private val progressViewModel: FingerprintEnrollProgressViewModel
-        get() = _progressViewModel!!
-
-    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
-    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
-        get() = _errorDialogViewModel!!
-
-    private var fastOutSlowInInterpolator: Interpolator? = null
-    private var linearOutSlowInInterpolator: Interpolator? = null
-    private var fastOutLinearInInterpolator: Interpolator? = null
-
-    private var isAnimationCancelled = false
-
-    private var enrollingView: GlifLayout? = null
-    private val progressBar: ProgressBar
-        get() = enrollingView!!.findViewById(R.id.fingerprint_progress_bar)!!
-
-    private var progressAnim: ObjectAnimator? = null
-
-    private val errorText: TextView
-        get() = enrollingView!!.findViewById(R.id.error_text)!!
-
-    private val iconAnimationDrawable: AnimatedVectorDrawable?
-        get() = (progressBar.background as LayerDrawable)
-            .findDrawableByLayerId(R.id.fingerprint_animation) as AnimatedVectorDrawable?
-
-    private val iconBackgroundBlinksDrawable: AnimatedVectorDrawable?
-        get() = (progressBar.background as LayerDrawable)
-            .findDrawableByLayerId(R.id.fingerprint_background) as AnimatedVectorDrawable?
-
-    private var iconTouchCount = 0
-
-    private val touchAgainRunnable = Runnable {
-        showError(
-            // Use enrollingView to getString to prevent activity is missing during rotation
-            enrollingView!!.context.getString(
-                R.string.security_settings_fingerprint_enroll_lift_touch_again
-            )
-        )
-    }
-
-    private val onSkipClickListener = View.OnClickListener { _: View? ->
-        enrollingViewModel.setOnSkipPressed()
-        cancelEnrollment(true)
-    }
-
-    private var enrollingCancelSignal: Any? = null
-
-    private val progressObserver = Observer { progress: EnrollmentProgress? ->
-        if (progress != null && progress.steps >= 0) {
-            onEnrollmentProgressChange(progress)
-        }
-    }
-
-    private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
-        helpMessage?.let { onEnrollmentHelp(it) }
-    }
-
-    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
-        Log.d(TAG, "errorMessageObserver($errorMessage)")
-        errorMessage?.let { onEnrollmentError(it) }
-   }
-
-    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
-        canceledSignal?.let { onEnrollmentCanceled(it) }
-    }
-
-    private val onBackPressedCallback: OnBackPressedCallback =
-        object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                isEnabled = false
-                enrollingViewModel.setOnBackPressed()
-                cancelEnrollment(true)
-            }
-        }
-
-    override fun onAttach(context: Context) {
-        ViewModelProvider(requireActivity()).let { provider ->
-            _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
-            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
-            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
-        }
-        super.onAttach(context)
-        requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
-    }
-
-    override fun onDetach() {
-        onBackPressedCallback.isEnabled = false
-        super.onDetach()
-    }
-
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View {
-        enrollingView = inflater.inflate(
-                R.layout.fingerprint_enroll_enrolling, container, false
-        ) as GlifLayout
-        return enrollingView!!
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-
-        iconAnimationDrawable!!.registerAnimationCallback(iconAnimationCallback)
-
-        progressBar.setOnTouchListener { _: View?, event: MotionEvent ->
-            if (event.actionMasked == MotionEvent.ACTION_DOWN) {
-                iconTouchCount++
-                if (iconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
-                    showIconTouchDialog()
-                } else {
-                    progressBar.postDelayed(
-                        showDialogRunnable,
-                        ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN
-                    )
-                }
-            } else if (event.actionMasked == MotionEvent.ACTION_CANCEL
-                || event.actionMasked == MotionEvent.ACTION_UP
-            ) {
-                progressBar.removeCallbacks(showDialogRunnable)
-            }
-            true
-        }
-
-        requireActivity().bindFingerprintEnrollEnrollingRfpsView(
-            view = enrollingView!!,
-            onSkipClickListener = onSkipClickListener
-        )
-
-        fastOutSlowInInterpolator =
-            loadInterpolator(requireContext(), android.R.interpolator.fast_out_slow_in)
-        linearOutSlowInInterpolator =
-            loadInterpolator(requireContext(), android.R.interpolator.linear_out_slow_in)
-        fastOutLinearInInterpolator =
-            loadInterpolator(requireContext(), android.R.interpolator.fast_out_linear_in)
-
-        lifecycleScope.launch {
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
-            }
-        }
-    }
-
-    private fun retryEnrollment() {
-        isAnimationCancelled = false
-        startIconAnimation()
-        startEnrollment()
-
-        clearError()
-        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
-        updateTitleAndDescription()
-    }
-
-    override fun onStart() {
-        super.onStart()
-
-        val isEnrolling = progressViewModel.isEnrolling
-        val isErrorDialogShown = errorDialogViewModel.isDialogShown
-        Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
-        if (!isErrorDialogShown) {
-            isAnimationCancelled = false
-            startIconAnimation()
-            startEnrollment()
-        }
-
-        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
-        updateTitleAndDescription()
-    }
-
-    private fun startIconAnimation() {
-        iconAnimationDrawable?.start()
-    }
-
-    private fun stopIconAnimation() {
-        isAnimationCancelled = true
-        iconAnimationDrawable?.stop()
-    }
-
-    override fun onStop() {
-        stopIconAnimation()
-        removeEnrollmentObservers()
-        val isEnrolling = progressViewModel.isEnrolling
-        val isConfigChange = requireActivity().isChangingConfigurations
-        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
-        if (isEnrolling && !isConfigChange) {
-            cancelEnrollment(false)
-        }
-        super.onStop()
-    }
-
-    private fun removeEnrollmentObservers() {
-        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
-        progressViewModel.progressLiveData.removeObserver(progressObserver)
-        progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
-    }
-
-    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
-        if (!progressViewModel.isEnrolling) {
-            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
-            return
-        }
-        removeEnrollmentObservers()
-        if (waitForLastCancelErrMsg) {
-            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
-        } else {
-            enrollingCancelSignal = null
-        }
-        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
-        if (!cancelResult) {
-            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
-        }
-    }
-
-    private fun startEnrollment() {
-        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
-        if (enrollingCancelSignal == null) {
-            Log.e(TAG, "startEnrollment(), failed")
-        } else {
-            Log.d(TAG, "startEnrollment(), success")
-        }
-        progressViewModel.progressLiveData.observe(this, progressObserver)
-        progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
-        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
-    }
-
-    private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
-        Log.d(TAG, "onEnrollmentHelp($helpMessage)")
-        val helpStr: CharSequence = helpMessage.str
-        if (!TextUtils.isEmpty(helpStr)) {
-            errorText.removeCallbacks(touchAgainRunnable)
-            showError(helpStr)
-        }
-    }
-
-    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
-        stopIconAnimation()
-
-        cancelEnrollment(true)
-        lifecycleScope.launch {
-            Log.d(TAG, "newDialog $errorMessage")
-            errorDialogViewModel.newDialog(errorMessage.msgId)
-        }
-    }
-
-    private fun onEnrollmentCanceled(canceledSignal: Any) {
-        Log.d(
-            TAG,
-            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
-        )
-        if (enrollingCancelSignal === canceledSignal) {
-            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
-            progressViewModel.clearProgressLiveData()
-            if (enrollingViewModel.onBackPressed) {
-                enrollingViewModel.onCancelledDueToOnBackPressed()
-            } else if (enrollingViewModel.onSkipPressed) {
-                enrollingViewModel.onCancelledDueToOnSkipPressed()
-            }
-        }
-    }
-
-    private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
-        updateProgress(true /* animate */, progress)
-        updateTitleAndDescription()
-        animateFlash()
-        errorText.removeCallbacks(touchAgainRunnable)
-        errorText.postDelayed(touchAgainRunnable, HINT_TIMEOUT_DURATION.toLong())
-    }
-
-    private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
-        val progress = getProgress(enrollmentProgress)
-        Log.d(TAG, "updateProgress($animate, $enrollmentProgress), old:${progressBar.progress}"
-                + ", new:$progress")
-
-        // Only clear the error when progress has been made.
-        // TODO (b/234772728) Add tests.
-        if (progressBar.progress < progress) {
-            clearError()
-        }
-        if (animate) {
-            animateProgress(progress)
-        } else {
-            progressBar.progress = progress
-            if (progress >= PROGRESS_BAR_MAX) {
-                delayedFinishRunnable.run()
-            }
-        }
-    }
-
-    private fun getProgress(progress: EnrollmentProgress): Int {
-        if (progress.steps == -1) {
-            return 0
-        }
-        val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
-        return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
-    }
-
-    private fun showError(error: CharSequence) {
-        errorText.text = error
-        if (errorText.visibility == View.INVISIBLE) {
-            errorText.visibility = View.VISIBLE
-            errorText.translationY = enrollingView!!.context.resources.getDimensionPixelSize(
-                R.dimen.fingerprint_error_text_appear_distance
-            ).toFloat()
-            errorText.alpha = 0f
-            errorText.animate()
-                .alpha(1f)
-                .translationY(0f)
-                .setDuration(200)
-                .setInterpolator(linearOutSlowInInterpolator)
-                .start()
-        } else {
-            errorText.animate().cancel()
-            errorText.alpha = 1f
-            errorText.translationY = 0f
-        }
-        if (isResumed && enrollingViewModel.isAccessibilityEnabled) {
-            enrollingViewModel.vibrateError(javaClass.simpleName + "::showError")
-        }
-    }
-
-    private fun clearError() {
-        if (errorText.visibility == View.VISIBLE) {
-            errorText.animate()
-                .alpha(0f)
-                .translationY(
-                    resources.getDimensionPixelSize(
-                        R.dimen.fingerprint_error_text_disappear_distance
-                    ).toFloat()
-                )
-                .setDuration(100)
-                .setInterpolator(fastOutLinearInInterpolator)
-                .withEndAction { errorText.visibility = View.INVISIBLE }
-                .start()
-        }
-    }
-
-    private fun animateProgress(progress: Int) {
-        progressAnim?.cancel()
-        val anim = ObjectAnimator.ofInt(
-            progressBar /* target */,
-            "progress" /* propertyName */,
-            progressBar.progress /* values[0] */,
-            progress /* values[1] */
-        )
-        anim.addListener(progressAnimationListener)
-        anim.interpolator = fastOutSlowInInterpolator
-        anim.setDuration(ANIMATION_DURATION)
-        anim.start()
-        progressAnim = anim
-    }
-
-    private fun animateFlash() {
-        iconBackgroundBlinksDrawable?.start()
-    }
-
-    private fun updateTitleAndDescription() {
-        val progressLiveData: EnrollmentProgress = progressViewModel.progressLiveData.value!!
-        GlifLayoutHelper(activity!!, enrollingView!!).setDescriptionText(
-            enrollingView!!.context.getString(
-                if (progressLiveData.steps == -1)
-                    R.string.security_settings_fingerprint_enroll_start_message
-                else
-                    R.string.security_settings_fingerprint_enroll_repeat_message
-            )
-        )
-    }
-
-    private fun showIconTouchDialog() {
-        iconTouchCount = 0
-        enrollingViewModel.showIconTouchDialog()
-    }
-
-    private val showDialogRunnable = Runnable { showIconTouchDialog() }
-
-    private val progressAnimationListener: Animator.AnimatorListener =
-        object : Animator.AnimatorListener {
-            override fun onAnimationStart(animation: Animator) {
-                startIconAnimation()
-            }
-
-            override fun onAnimationRepeat(animation: Animator) {}
-            override fun onAnimationEnd(animation: Animator) {
-                stopIconAnimation()
-                if (progressBar.progress >= PROGRESS_BAR_MAX) {
-                    progressBar.postDelayed(delayedFinishRunnable, ANIMATION_DURATION)
-                }
-            }
-
-            override fun onAnimationCancel(animation: Animator) {}
-        }
-
-    // Give the user a chance to see progress completed before jumping to the next stage.
-    private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
-
-    private val iconAnimationCallback: Animatable2.AnimationCallback =
-        object : Animatable2.AnimationCallback() {
-            override fun onAnimationEnd(d: Drawable) {
-                if (isAnimationCancelled) {
-                    return
-                }
-
-                // Start animation after it has ended.
-                progressBar.post { startIconAnimation() }
-            }
-        }
-
-    companion object {
-        private const val DEBUG = false
-        private const val TAG = "FingerprintEnrollEnrollingRfpsFragment"
-        private const val PROGRESS_BAR_MAX = 10000
-        private const val ANIMATION_DURATION = 250L
-        private const val ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN: Long = 500
-        private const val ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3
-
-        /**
-         * If we don't see progress during this time, we show an error message to remind the users that
-         * they need to lift the finger and touch again.
-         */
-        private const val HINT_TIMEOUT_DURATION = 2500
-    }
-}
-
-fun FragmentActivity.bindFingerprintEnrollEnrollingRfpsView(
-    view: GlifLayout,
-    onSkipClickListener: View.OnClickListener
-) {
-    GlifLayoutHelper(this, view).let {
-        it.setDescriptionText(
-            getString(
-                R.string.security_settings_fingerprint_enroll_start_message
-            )
-        )
-        it.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title)
-    }
-
-    view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!
-        .progressBackgroundTintMode = PorterDuff.Mode.SRC
-
-    view.getMixin(FooterBarMixin::class.java).secondaryButton =
-        FooterButton.Builder(this)
-            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-            .setListener(onSkipClickListener)
-            .setButtonType(FooterButton.ButtonType.SKIP)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
-            .build()
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt
deleted file mode 100644
index 7faeeac..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt
+++ /dev/null
@@ -1,669 +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.biometrics2.ui.view
-
-import android.animation.Animator
-import android.animation.ObjectAnimator
-import android.annotation.RawRes
-import android.content.Context
-import android.content.res.ColorStateList
-import android.content.res.Configuration
-import android.graphics.PorterDuff
-import android.graphics.PorterDuffColorFilter
-import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.MotionEvent
-import android.view.View
-import android.view.ViewGroup
-import android.view.animation.AccelerateDecelerateInterpolator
-import android.view.animation.AnimationUtils
-import android.view.animation.Interpolator
-import android.widget.ProgressBar
-import android.widget.RelativeLayout
-import androidx.activity.OnBackPressedCallback
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.airbnb.lottie.LottieAnimationView
-import com.airbnb.lottie.LottieComposition
-import com.airbnb.lottie.LottieCompositionFactory
-import com.airbnb.lottie.LottieProperty
-import com.airbnb.lottie.model.KeyPath
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import com.google.android.setupdesign.template.DescriptionMixin
-import com.google.android.setupdesign.template.HeaderMixin
-import kotlin.math.roundToInt
-import kotlinx.coroutines.launch
-
-/**
- * Fragment is used to handle enrolling process for sfps
- */
-class FingerprintEnrollEnrollingSfpsFragment : Fragment() {
-
-    private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
-    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
-        get() = _enrollingViewModel!!
-
-    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
-    private val progressViewModel: FingerprintEnrollProgressViewModel
-        get() = _progressViewModel!!
-
-    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
-    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
-        get() = _errorDialogViewModel!!
-
-    private val fastOutSlowInInterpolator: Interpolator
-        get() = AnimationUtils.loadInterpolator(
-            activity,
-            androidx.appcompat.R.interpolator.fast_out_slow_in,
-        )
-
-    private var enrollingView: GlifLayout? = null
-
-    private val progressBar: ProgressBar
-        get() = enrollingView!!.findViewById(R.id.fingerprint_progress_bar)!!
-
-    private var progressAnim: ObjectAnimator? = null
-
-    private val progressAnimationListener: Animator.AnimatorListener =
-        object : Animator.AnimatorListener {
-            override fun onAnimationStart(animation: Animator) {}
-            override fun onAnimationRepeat(animation: Animator) {}
-            override fun onAnimationEnd(animation: Animator) {
-                if (progressBar.progress >= PROGRESS_BAR_MAX) {
-                    progressBar.postDelayed(delayedFinishRunnable, PROGRESS_ANIMATION_DURATION)
-                }
-            }
-
-            override fun onAnimationCancel(animation: Animator) {}
-        }
-
-    private val illustrationLottie: LottieAnimationView
-        get() = enrollingView!!.findViewById(R.id.illustration_lottie)!!
-
-    private var haveShownSfpsNoAnimationLottie = false
-    private var haveShownSfpsCenterLottie = false
-    private var haveShownSfpsTipLottie = false
-    private var haveShownSfpsLeftEdgeLottie = false
-    private var haveShownSfpsRightEdgeLottie = false
-
-    private var helpAnimation: ObjectAnimator? = null
-
-    private var iconTouchCount = 0
-
-    private val showIconTouchDialogRunnable = Runnable { showIconTouchDialog() }
-
-    private var enrollingCancelSignal: Any? = null
-
-    // Give the user a chance to see progress completed before jumping to the next stage.
-    private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
-
-    private val onSkipClickListener = View.OnClickListener { _: View? ->
-        enrollingViewModel.setOnSkipPressed()
-        cancelEnrollment(true)
-    }
-
-    private val progressObserver = Observer { progress: EnrollmentProgress? ->
-        if (progress != null && progress.steps >= 0) {
-            onEnrollmentProgressChange(progress)
-        }
-    }
-
-    private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
-        helpMessage?.let { onEnrollmentHelp(it) }
-    }
-
-    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
-        Log.d(TAG, "errorMessageObserver($errorMessage)")
-        errorMessage?.let { onEnrollmentError(it) }
-    }
-
-    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
-        Log.d(TAG, "canceledSignalObserver($canceledSignal)")
-        canceledSignal?.let { onEnrollmentCanceled(it) }
-    }
-
-    private val onBackPressedCallback: OnBackPressedCallback =
-        object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                isEnabled = false
-                enrollingViewModel.setOnBackPressed()
-                cancelEnrollment(true)
-            }
-        }
-
-    override fun onAttach(context: Context) {
-        ViewModelProvider(requireActivity()).let { provider ->
-            _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
-            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
-            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
-        }
-        super.onAttach(context)
-        requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
-    }
-
-    override fun onDetach() {
-        onBackPressedCallback.isEnabled = false
-        super.onDetach()
-    }
-
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View? {
-        enrollingView = inflater.inflate(
-            R.layout.sfps_enroll_enrolling,
-            container, false
-        ) as GlifLayout
-        return enrollingView
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-
-        requireActivity().bindFingerprintEnrollEnrollingSfpsView(
-            view = enrollingView!!,
-            onSkipClickListener = onSkipClickListener
-        )
-
-        // setHelpAnimation()
-        helpAnimation = ObjectAnimator.ofFloat(
-            enrollingView!!.findViewById<RelativeLayout>(R.id.progress_lottie)!!,
-            "translationX" /* propertyName */,
-            0f,
-            HELP_ANIMATION_TRANSLATION_X,
-            -1 * HELP_ANIMATION_TRANSLATION_X,
-            HELP_ANIMATION_TRANSLATION_X,
-            0f
-        ).also {
-            it.interpolator = AccelerateDecelerateInterpolator()
-            it.setDuration(HELP_ANIMATION_DURATION)
-            it.setAutoCancel(false)
-        }
-
-        progressBar.setOnTouchListener { _: View?, event: MotionEvent ->
-            if (event.actionMasked == MotionEvent.ACTION_DOWN) {
-                iconTouchCount++
-                if (iconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
-                    showIconTouchDialog()
-                } else {
-                    progressBar.postDelayed(
-                        showIconTouchDialogRunnable,
-                        ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN
-                    )
-                }
-            } else if (event.actionMasked == MotionEvent.ACTION_CANCEL
-                || event.actionMasked == MotionEvent.ACTION_UP
-            ) {
-                progressBar.removeCallbacks(showIconTouchDialogRunnable)
-            }
-            true
-        }
-
-        lifecycleScope.launch {
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
-            }
-        }
-    }
-
-    private fun retryEnrollment() {
-        startEnrollment()
-        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
-    }
-
-    override fun onStart() {
-        super.onStart()
-        val isEnrolling = progressViewModel.isEnrolling
-        val isErrorDialogShown = errorDialogViewModel.isDialogShown
-        Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
-        if (!isErrorDialogShown) {
-            startEnrollment()
-        }
-
-        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
-        progressViewModel.helpMessageLiveData.value.let {
-            if (it != null) {
-                onEnrollmentHelp(it)
-            } else {
-                clearError()
-                updateTitleAndDescription()
-            }
-        }
-    }
-
-    override fun onStop() {
-        removeEnrollmentObservers()
-        val isEnrolling = progressViewModel.isEnrolling
-        val isConfigChange = requireActivity().isChangingConfigurations
-        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
-        if (isEnrolling && !isConfigChange) {
-            cancelEnrollment(false)
-        }
-        super.onStop()
-    }
-
-    private fun removeEnrollmentObservers() {
-        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
-        progressViewModel.progressLiveData.removeObserver(progressObserver)
-        progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
-    }
-
-    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
-        if (!progressViewModel.isEnrolling) {
-            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
-            return
-        }
-        removeEnrollmentObservers()
-        if (waitForLastCancelErrMsg) {
-            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
-        } else {
-            enrollingCancelSignal = null
-        }
-        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
-        if (!cancelResult) {
-            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
-        }
-    }
-
-    private fun startEnrollment() {
-        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
-        if (enrollingCancelSignal == null) {
-            Log.e(TAG, "startEnrollment(), failed")
-        } else {
-            Log.d(TAG, "startEnrollment(), success")
-        }
-        progressViewModel.progressLiveData.observe(this, progressObserver)
-        progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
-        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
-    }
-
-    private fun configureEnrollmentStage(description: CharSequence, @RawRes lottie: Int) {
-        GlifLayoutHelper(requireActivity(), enrollingView!!).setDescriptionText(description)
-        LottieCompositionFactory.fromRawRes(activity, lottie)
-            .addListener { c: LottieComposition ->
-                illustrationLottie.setComposition(c)
-                illustrationLottie.visibility = View.VISIBLE
-                illustrationLottie.playAnimation()
-            }
-    }
-
-    private val currentSfpsStage: Int
-        get() {
-            val progressLiveData: EnrollmentProgress =
-                progressViewModel.progressLiveData.value
-                    ?: return STAGE_UNKNOWN
-            val progressSteps: Int = progressLiveData.steps - progressLiveData.remaining
-            return if (progressSteps < getStageThresholdSteps(0)) {
-                SFPS_STAGE_NO_ANIMATION
-            } else if (progressSteps < getStageThresholdSteps(1)) {
-                SFPS_STAGE_CENTER
-            } else if (progressSteps < getStageThresholdSteps(2)) {
-                SFPS_STAGE_FINGERTIP
-            } else if (progressSteps < getStageThresholdSteps(3)) {
-                SFPS_STAGE_LEFT_EDGE
-            } else {
-                SFPS_STAGE_RIGHT_EDGE
-            }
-        }
-
-    private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
-        Log.d(TAG, "onEnrollmentHelp($helpMessage)")
-        val helpStr: CharSequence = helpMessage.str
-        if (helpStr.isNotEmpty()) {
-            showError(helpStr)
-        }
-    }
-
-    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
-        cancelEnrollment(true)
-        lifecycleScope.launch {
-            Log.d(TAG, "newDialog $errorMessage")
-            errorDialogViewModel.newDialog(errorMessage.msgId)
-        }
-    }
-
-    private fun onEnrollmentCanceled(canceledSignal: Any) {
-        Log.d(
-            TAG,
-            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
-        )
-        if (enrollingCancelSignal === canceledSignal) {
-            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
-            progressViewModel.clearProgressLiveData()
-            if (enrollingViewModel.onBackPressed) {
-                enrollingViewModel.onCancelledDueToOnBackPressed()
-            } else if (enrollingViewModel.onSkipPressed) {
-                enrollingViewModel.onCancelledDueToOnSkipPressed()
-            }
-        }
-    }
-
-    private fun announceEnrollmentProgress(announcement: CharSequence) {
-        enrollingViewModel.sendAccessibilityEvent(announcement)
-    }
-
-    private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
-        updateProgress(true /* animate */, progress)
-        if (enrollingViewModel.isAccessibilityEnabled) {
-            val percent: Int =
-                ((progress.steps - progress.remaining).toFloat() / progress.steps.toFloat() * 100).toInt()
-            val announcement: CharSequence = getString(
-                R.string.security_settings_sfps_enroll_progress_a11y_message, percent
-            )
-            announceEnrollmentProgress(announcement)
-            illustrationLottie.contentDescription =
-                getString(R.string.security_settings_sfps_animation_a11y_label, percent)
-        }
-        updateTitleAndDescription()
-    }
-
-    private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
-        if (!progressViewModel.isEnrolling) {
-            Log.d(TAG, "Enrollment not started yet")
-            return
-        }
-
-        val progress = getProgress(enrollmentProgress)
-        Log.d(TAG, "updateProgress($animate, $enrollmentProgress), old:${progressBar.progress}"
-                + ", new:$progress")
-
-        // Only clear the error when progress has been made.
-        // TODO (b/234772728) Add tests.
-        if (progressBar.progress < progress) {
-            clearError()
-        }
-        if (animate) {
-            animateProgress(progress)
-        } else {
-            progressBar.progress = progress
-            if (progress >= PROGRESS_BAR_MAX) {
-                delayedFinishRunnable.run()
-            }
-        }
-    }
-
-    private fun getProgress(progress: EnrollmentProgress): Int {
-        if (progress.steps == -1) {
-            return 0
-        }
-        val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
-        return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
-    }
-
-    private fun showError(error: CharSequence) {
-        enrollingView!!.let {
-            it.headerText = error
-            it.headerTextView.contentDescription = error
-            GlifLayoutHelper(requireActivity(), it).setDescriptionText("")
-        }
-
-        if (isResumed && !helpAnimation!!.isRunning) {
-            helpAnimation!!.start()
-        }
-        applySfpsErrorDynamicColors(true)
-        if (isResumed && enrollingViewModel.isAccessibilityEnabled) {
-            enrollingViewModel.vibrateError(javaClass.simpleName + "::showError")
-        }
-    }
-
-    private fun clearError() {
-        applySfpsErrorDynamicColors(false)
-    }
-
-    private fun animateProgress(progress: Int) {
-        progressAnim?.cancel()
-        progressAnim = ObjectAnimator.ofInt(
-            progressBar,
-            "progress",
-            progressBar.progress,
-            progress
-        ).also {
-            it.addListener(progressAnimationListener)
-            it.interpolator = fastOutSlowInInterpolator
-            it.setDuration(PROGRESS_ANIMATION_DURATION)
-            it.start()
-        }
-    }
-
-    /**
-     * Applies dynamic colors corresponding to showing or clearing errors on the progress bar
-     * and finger lottie for SFPS
-     */
-    private fun applySfpsErrorDynamicColors(isError: Boolean) {
-        progressBar.applyProgressBarDynamicColor(requireContext(), isError)
-        illustrationLottie.applyLottieDynamicColor(requireContext(), isError)
-    }
-
-    private fun getStageThresholdSteps(index: Int): Int {
-        val progressLiveData: EnrollmentProgress? =
-            progressViewModel.progressLiveData.value
-        if (progressLiveData == null || progressLiveData.steps == -1) {
-            Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet")
-            return 1
-        }
-        return (progressLiveData.steps
-                * enrollingViewModel.getEnrollStageThreshold(index)).roundToInt()
-    }
-
-    private fun updateTitleAndDescription() {
-        val helper = GlifLayoutHelper(requireActivity(), enrollingView!!)
-        if (enrollingViewModel.isAccessibilityEnabled) {
-            enrollingViewModel.clearTalkback()
-            helper.glifLayout.descriptionTextView.accessibilityLiveRegion =
-                View.ACCESSIBILITY_LIVE_REGION_POLITE
-        }
-        val stage = currentSfpsStage
-        if (DEBUG) {
-            Log.d(
-                TAG, "updateTitleAndDescription, stage:" + stage
-                        + ", noAnimation:" + haveShownSfpsNoAnimationLottie
-                        + ", center:" + haveShownSfpsCenterLottie
-                        + ", tip:" + haveShownSfpsTipLottie
-                        + ", leftEdge:" + haveShownSfpsLeftEdgeLottie
-                        + ", rightEdge:" + haveShownSfpsRightEdgeLottie
-            )
-        }
-        when (stage) {
-            SFPS_STAGE_NO_ANIMATION -> {
-                helper.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title)
-                if (!haveShownSfpsNoAnimationLottie) {
-                    haveShownSfpsNoAnimationLottie = true
-                    illustrationLottie.contentDescription =
-                        getString(R.string.security_settings_sfps_animation_a11y_label, 0)
-                    configureEnrollmentStage(
-                        getString(R.string.security_settings_sfps_enroll_start_message),
-                        R.raw.sfps_lottie_no_animation
-                    )
-                }
-            }
-
-            SFPS_STAGE_CENTER -> {
-                helper.setHeaderText(R.string.security_settings_sfps_enroll_finger_center_title)
-                if (!haveShownSfpsCenterLottie) {
-                    haveShownSfpsCenterLottie = true
-                    configureEnrollmentStage(
-                        getString(R.string.security_settings_sfps_enroll_start_message),
-                        R.raw.sfps_lottie_pad_center
-                    )
-                }
-            }
-
-            SFPS_STAGE_FINGERTIP -> {
-                helper.setHeaderText(R.string.security_settings_sfps_enroll_fingertip_title)
-                if (!haveShownSfpsTipLottie) {
-                    haveShownSfpsTipLottie = true
-                    configureEnrollmentStage("", R.raw.sfps_lottie_tip)
-                }
-            }
-
-            SFPS_STAGE_LEFT_EDGE -> {
-                helper.setHeaderText(R.string.security_settings_sfps_enroll_left_edge_title)
-                if (!haveShownSfpsLeftEdgeLottie) {
-                    haveShownSfpsLeftEdgeLottie = true
-                    configureEnrollmentStage("", R.raw.sfps_lottie_left_edge)
-                }
-            }
-
-            SFPS_STAGE_RIGHT_EDGE -> {
-                helper.setHeaderText(R.string.security_settings_sfps_enroll_right_edge_title)
-                if (!haveShownSfpsRightEdgeLottie) {
-                    haveShownSfpsRightEdgeLottie = true
-                    configureEnrollmentStage("", R.raw.sfps_lottie_right_edge)
-                }
-            }
-
-            STAGE_UNKNOWN -> {
-                // Don't use BiometricEnrollBase#setHeaderText, since that invokes setTitle,
-                // which gets announced for a11y upon entering the page. For SFPS, we want to
-                // announce a different string for a11y upon entering the page.
-                helper.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
-                helper.setDescriptionText(
-                    getString(R.string.security_settings_sfps_enroll_start_message)
-                )
-                val description: CharSequence = getString(
-                    R.string.security_settings_sfps_enroll_find_sensor_message
-                )
-                helper.glifLayout.headerTextView.contentDescription = description
-                helper.activity.title = description
-            }
-
-            else -> {
-                helper.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
-                helper.setDescriptionText(
-                    getString(R.string.security_settings_sfps_enroll_start_message)
-                )
-                val description: CharSequence = getString(
-                    R.string.security_settings_sfps_enroll_find_sensor_message
-                )
-                helper.glifLayout.headerTextView.contentDescription = description
-                helper.activity.title = description
-            }
-        }
-    }
-
-    private fun showIconTouchDialog() {
-        iconTouchCount = 0
-        enrollingViewModel.showIconTouchDialog()
-    }
-
-    companion object {
-        private val TAG = FingerprintEnrollEnrollingSfpsFragment::class.java.simpleName
-        private const val DEBUG = false
-        private const val PROGRESS_BAR_MAX = 10000
-        private const val HELP_ANIMATION_DURATION = 550L
-        private const val HELP_ANIMATION_TRANSLATION_X = 40f
-        private const val PROGRESS_ANIMATION_DURATION = 250L
-        private const val ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN: Long = 500
-        private const val ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3
-        private const val STAGE_UNKNOWN = -1
-        private const val SFPS_STAGE_NO_ANIMATION = 0
-        private const val SFPS_STAGE_CENTER = 1
-        private const val SFPS_STAGE_FINGERTIP = 2
-        private const val SFPS_STAGE_LEFT_EDGE = 3
-        private const val SFPS_STAGE_RIGHT_EDGE = 4
-    }
-}
-
-fun FragmentActivity.bindFingerprintEnrollEnrollingSfpsView(
-    view: GlifLayout,
-    onSkipClickListener: View.OnClickListener
-) {
-    GlifLayoutHelper(this, view).setDescriptionText(
-        getString(R.string.security_settings_fingerprint_enroll_start_message)
-    )
-
-    view.getMixin(FooterBarMixin::class.java).secondaryButton = FooterButton.Builder(this)
-        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-        .setListener(onSkipClickListener)
-        .setButtonType(FooterButton.ButtonType.SKIP)
-        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
-        .build()
-
-    view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!.progressBackgroundTintMode =
-        PorterDuff.Mode.SRC
-
-    view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!
-        .applyProgressBarDynamicColor(this, false)
-
-    view.findViewById<LottieAnimationView>(R.id.illustration_lottie)!!
-        .applyLottieDynamicColor(this, false)
-
-    view.maybeHideSfpsText(resources.configuration.orientation)
-}
-
-private fun ProgressBar.applyProgressBarDynamicColor(context: Context, isError: Boolean) {
-    progressTintList = ColorStateList.valueOf(
-        context.getColor(
-            if (isError)
-                R.color.sfps_enrollment_progress_bar_error_color
-            else
-                R.color.sfps_enrollment_progress_bar_fill_color
-        )
-    )
-    progressTintMode = PorterDuff.Mode.SRC
-    invalidate()
-}
-
-fun LottieAnimationView.applyLottieDynamicColor(context: Context, isError: Boolean) {
-    addValueCallback(
-        KeyPath(".blue100", "**"),
-        LottieProperty.COLOR_FILTER
-    ) {
-        PorterDuffColorFilter(
-            context.getColor(
-                if (isError)
-                    R.color.sfps_enrollment_fp_error_color
-                else
-                    R.color.sfps_enrollment_fp_captured_color
-            ),
-            PorterDuff.Mode.SRC_ATOP
-        )
-    }
-    invalidate()
-}
-
-fun GlifLayout.maybeHideSfpsText(@Configuration.Orientation orientation: Int) {
-    val headerMixin: HeaderMixin = getMixin(HeaderMixin::class.java)
-    val descriptionMixin: DescriptionMixin = getMixin(DescriptionMixin::class.java)
-
-    val isLandscape = (orientation == Configuration.ORIENTATION_LANDSCAPE)
-    headerMixin.setAutoTextSizeEnabled(isLandscape)
-    if (isLandscape) {
-        headerMixin.textView.minLines = 0
-        headerMixin.textView.maxLines = 10
-        descriptionMixin.textView.minLines = 0
-        descriptionMixin.textView.maxLines = 10
-    } else {
-        headerMixin.textView.setLines(4)
-        // hide the description
-        descriptionMixin.textView.setLines(0)
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt
deleted file mode 100644
index 7e754ac..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt
+++ /dev/null
@@ -1,707 +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.biometrics2.ui.view
-
-import android.annotation.RawRes
-import android.content.Context
-import android.hardware.biometrics.BiometricFingerprintConstants
-import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.Surface
-import android.view.Surface.ROTATION_270
-import android.view.Surface.ROTATION_90
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Button
-import android.widget.ImageView
-import android.widget.RelativeLayout
-import android.widget.TextView
-import androidx.activity.OnBackPressedCallback
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.airbnb.lottie.LottieAnimationView
-import com.airbnb.lottie.LottieComposition
-import com.airbnb.lottie.LottieCompositionFactory
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.android.settings.biometrics2.ui.widget.UdfpsEnrollView
-import com.android.settingslib.display.DisplayDensityUtils
-import kotlinx.coroutines.launch
-import kotlin.math.roundToInt
-
-/**
- * Fragment is used to handle enrolling process for udfps
- */
-class FingerprintEnrollEnrollingUdfpsFragment : Fragment() {
-
-    private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
-    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
-        get() = _enrollingViewModel!!
-
-    private var _rotationViewModel: DeviceRotationViewModel? = null
-    private val rotationViewModel: DeviceRotationViewModel
-        get() = _rotationViewModel!!
-
-    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
-    private val progressViewModel: FingerprintEnrollProgressViewModel
-        get() = _progressViewModel!!
-
-    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
-    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
-        get() = _errorDialogViewModel!!
-
-    private var illustrationLottie: LottieAnimationView? = null
-
-    private var haveShownTipLottie = false
-    private var haveShownLeftEdgeLottie = false
-    private var haveShownRightEdgeLottie = false
-    private var haveShownCenterLottie = false
-    private var haveShownGuideLottie = false
-
-    private var enrollingView: RelativeLayout? = null
-
-    private val titleText: TextView
-        get() = enrollingView!!.findViewById(R.id.suc_layout_title)!!
-
-    private val subTitleText: TextView
-        get() = enrollingView!!.findViewById(R.id.sud_layout_subtitle)!!
-
-    private val udfpsEnrollView: UdfpsEnrollView
-        get() = enrollingView!!.findViewById(R.id.udfps_animation_view)!!
-
-    private val skipBtn: Button
-        get() = enrollingView!!.findViewById(R.id.skip_btn)!!
-
-    private val icon: ImageView
-        get() = enrollingView!!.findViewById(R.id.sud_layout_icon)!!
-
-    private val shouldShowLottie: Boolean
-        get() {
-            val displayDensity = DisplayDensityUtils(requireContext())
-            val currentDensityIndex: Int = displayDensity.currentIndexForDefaultDisplay
-            val currentDensity: Int =
-                displayDensity.defaultDisplayDensityValues[currentDensityIndex]
-            val defaultDensity: Int = displayDensity.defaultDensityForDefaultDisplay
-            return defaultDensity == currentDensity
-        }
-
-    private val isAccessibilityEnabled
-        get() = enrollingViewModel.isAccessibilityEnabled
-
-    private var rotation = -1
-
-    private var enrollingCancelSignal: Any? = null
-
-    private val onSkipClickListener = View.OnClickListener { _: View? ->
-        enrollingViewModel.setOnSkipPressed()
-        cancelEnrollment(true) // TODO Add test after b/273640000 fixed
-    }
-
-    private val progressObserver = Observer { progress: EnrollmentProgress? ->
-        if (progress != null && progress.steps >= 0) {
-            onEnrollmentProgressChange(progress)
-        }
-    }
-
-    private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
-        Log.d(TAG, "helpMessageObserver($helpMessage)")
-        helpMessage?.let { onEnrollmentHelp(it) }
-    }
-
-    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
-        Log.d(TAG, "errorMessageObserver($errorMessage)")
-        errorMessage?.let { onEnrollmentError(it) }
-    }
-
-    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
-        Log.d(TAG, "canceledSignalObserver($canceledSignal)")
-        canceledSignal?.let { onEnrollmentCanceled(it) }
-    }
-
-    private val acquireObserver =
-        Observer { isAcquiredGood: Boolean? -> isAcquiredGood?.let { onAcquired(it) } }
-
-    private val pointerDownObserver =
-        Observer { sensorId: Int? -> sensorId?.let { onPointerDown(it) } }
-
-    private val pointerUpObserver =
-        Observer { sensorId: Int? -> sensorId?.let { onPointerUp(it) } }
-
-    private val rotationObserver =
-        Observer { rotation: Int? -> rotation?.let { onRotationChanged(it) } }
-
-    private val onBackPressedCallback: OnBackPressedCallback =
-        object : OnBackPressedCallback(true) {
-            override fun handleOnBackPressed() {
-                isEnabled = false
-                enrollingViewModel.setOnBackPressed()
-                cancelEnrollment(true)
-            }
-        }
-
-    // Give the user a chance to see progress completed before jumping to the next stage.
-    private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
-
-    override fun onAttach(context: Context) {
-        ViewModelProvider(requireActivity()).let { provider ->
-            _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
-            _rotationViewModel = provider[DeviceRotationViewModel::class.java]
-            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
-            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
-        }
-        super.onAttach(context)
-        requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
-    }
-
-    override fun onDetach() {
-        onBackPressedCallback.isEnabled = false
-        super.onDetach()
-    }
-
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View = (inflater.inflate(
-        R.layout.udfps_enroll_enrolling_v2, container, false
-    ) as RelativeLayout).also {
-        enrollingView = it
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        rotation = rotationViewModel.liveData.value!!
-        updateIllustrationLottie(rotation)
-
-        requireActivity().bindFingerprintEnrollEnrollingUdfpsView(
-            view = enrollingView!!,
-            sensorProperties = enrollingViewModel.firstFingerprintSensorPropertiesInternal!!,
-            rotation = rotation,
-            onSkipClickListener = onSkipClickListener,
-        )
-
-        lifecycleScope.launch {
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
-            }
-        }
-    }
-
-    private fun retryEnrollment() {
-        reattachUdfpsEnrollView()
-
-        startEnrollment()
-
-        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
-        progressViewModel.helpMessageLiveData.value.let {
-            if (it != null) {
-                onEnrollmentHelp(it)
-            } else {
-                updateTitleAndDescription()
-            }
-        }
-    }
-
-    override fun onStart() {
-        super.onStart()
-        val isEnrolling = progressViewModel.isEnrolling
-        val isErrorDialogShown = errorDialogViewModel.isDialogShown
-        Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
-        if (!isErrorDialogShown) {
-            startEnrollment()
-        }
-
-        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
-        progressViewModel.helpMessageLiveData.value.let {
-            if (it != null) {
-                onEnrollmentHelp(it)
-            } else {
-                updateTitleAndDescription()
-            }
-        }
-    }
-
-    private fun reattachUdfpsEnrollView() {
-        enrollingView!!.let {
-            val newUdfpsView = LayoutInflater.from(requireActivity()).inflate(
-                R.layout.udfps_enroll_enrolling_v2_udfps_view,
-                null
-            )
-            val index = it.indexOfChild(udfpsEnrollView)
-            val lp = udfpsEnrollView.layoutParams
-
-            it.removeView(udfpsEnrollView)
-            it.addView(newUdfpsView, index, lp)
-            udfpsEnrollView.setSensorProperties(
-                enrollingViewModel.firstFingerprintSensorPropertiesInternal
-            )
-        }
-
-        // Clear lottie status
-        haveShownTipLottie = false
-        haveShownLeftEdgeLottie = false
-        haveShownRightEdgeLottie = false
-        haveShownCenterLottie = false
-        haveShownGuideLottie = false
-        illustrationLottie?.let {
-            it.contentDescription = ""
-            it.visibility = View.GONE
-        }
-    }
-
-    override fun onResume() {
-        super.onResume()
-        rotationViewModel.liveData.observe(this, rotationObserver)
-    }
-
-    override fun onPause() {
-        rotationViewModel.liveData.removeObserver(rotationObserver)
-        super.onPause()
-    }
-
-    override fun onStop() {
-        removeEnrollmentObservers()
-        val isEnrolling = progressViewModel.isEnrolling
-        val isConfigChange = requireActivity().isChangingConfigurations
-        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
-        if (isEnrolling && !isConfigChange) {
-            cancelEnrollment(false)
-        }
-        super.onStop()
-    }
-
-    private fun removeEnrollmentObservers() {
-        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
-        progressViewModel.progressLiveData.removeObserver(progressObserver)
-        progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
-        progressViewModel.acquireLiveData.removeObserver(acquireObserver)
-        progressViewModel.pointerDownLiveData.removeObserver(pointerDownObserver)
-        progressViewModel.pointerUpLiveData.removeObserver(pointerUpObserver)
-    }
-
-    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
-        if (!progressViewModel.isEnrolling) {
-            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
-            return
-        }
-        removeEnrollmentObservers()
-        if (waitForLastCancelErrMsg) {
-            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
-        } else {
-            enrollingCancelSignal = null
-        }
-        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
-        if (!cancelResult) {
-            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
-        }
-    }
-
-    private fun startEnrollment() {
-        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
-        if (enrollingCancelSignal == null) {
-            Log.e(TAG, "startEnrollment(), failed")
-        } else {
-            Log.d(TAG, "startEnrollment(), success")
-        }
-        progressViewModel.progressLiveData.observe(this, progressObserver)
-        progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
-        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
-        progressViewModel.acquireLiveData.observe(this, acquireObserver)
-        progressViewModel.pointerDownLiveData.observe(this, pointerDownObserver)
-        progressViewModel.pointerUpLiveData.observe(this, pointerUpObserver)
-    }
-
-    private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
-        if (!progressViewModel.isEnrolling) {
-            Log.d(TAG, "Enrollment not started yet")
-            return
-        }
-
-        val progress = getProgress(enrollmentProgress)
-        Log.d(TAG, "updateProgress($animate, $enrollmentProgress), progress:$progress")
-
-        if (enrollmentProgress.steps != -1) {
-            udfpsEnrollView.onEnrollmentProgress(
-                enrollmentProgress.remaining,
-                enrollmentProgress.steps
-            )
-        }
-
-        if (progress >= PROGRESS_BAR_MAX) {
-            if (animate) {
-                // Wait animations to finish, then proceed to next page
-                activity!!.mainThreadHandler.postDelayed(delayedFinishRunnable, 400L)
-            } else {
-                delayedFinishRunnable.run()
-            }
-        }
-    }
-
-    private fun getProgress(progress: EnrollmentProgress): Int {
-        if (progress.steps == -1) {
-            return 0
-        }
-        val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
-        return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
-    }
-
-    private fun updateTitleAndDescription() {
-        Log.d(TAG, "updateTitleAndDescription($currentStage)")
-        when (currentStage) {
-            STAGE_CENTER -> {
-                titleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title)
-                if (isAccessibilityEnabled || illustrationLottie == null) {
-                    subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
-                } else if (!haveShownCenterLottie) {
-                    haveShownCenterLottie = true
-                    // Note: Update string reference when differentiate in between udfps & sfps
-                    illustrationLottie!!.contentDescription = getString(R.string.security_settings_sfps_enroll_finger_center_title)
-                    configureEnrollmentStage(R.raw.udfps_center_hint_lottie)
-                }
-            }
-
-            STAGE_GUIDED -> {
-                titleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title)
-                if (isAccessibilityEnabled || illustrationLottie == null) {
-                    subTitleText.setText(
-                        R.string.security_settings_udfps_enroll_repeat_a11y_message
-                    )
-                } else if (!haveShownGuideLottie) {
-                    haveShownGuideLottie = true
-                    illustrationLottie!!.contentDescription =
-                        getString(R.string.security_settings_fingerprint_enroll_repeat_message)
-                    // TODO(b/228100413) Could customize guided lottie animation
-                    configureEnrollmentStage(R.raw.udfps_center_hint_lottie)
-                }
-            }
-
-            STAGE_FINGERTIP -> {
-                titleText.setText(R.string.security_settings_udfps_enroll_fingertip_title)
-                if (!haveShownTipLottie && illustrationLottie != null) {
-                    haveShownTipLottie = true
-                    illustrationLottie!!.contentDescription =
-                        getString(R.string.security_settings_udfps_tip_fingerprint_help)
-                    configureEnrollmentStage(R.raw.udfps_tip_hint_lottie)
-                }
-            }
-
-            STAGE_LEFT_EDGE -> {
-                titleText.setText(R.string.security_settings_udfps_enroll_left_edge_title)
-                if (!haveShownLeftEdgeLottie && illustrationLottie != null) {
-                    haveShownLeftEdgeLottie = true
-                    illustrationLottie!!.contentDescription =
-                        getString(R.string.security_settings_udfps_side_fingerprint_help)
-                    configureEnrollmentStage(R.raw.udfps_left_edge_hint_lottie)
-                } else if (illustrationLottie == null) {
-                    if (isStageHalfCompleted) {
-                        subTitleText.setText(
-                            R.string.security_settings_fingerprint_enroll_repeat_message
-                        )
-                    } else {
-                        subTitleText.setText(R.string.security_settings_udfps_enroll_edge_message)
-                    }
-                }
-            }
-
-            STAGE_RIGHT_EDGE -> {
-                titleText.setText(R.string.security_settings_udfps_enroll_right_edge_title)
-                if (!haveShownRightEdgeLottie && illustrationLottie != null) {
-                    haveShownRightEdgeLottie = true
-                    illustrationLottie!!.contentDescription =
-                        getString(R.string.security_settings_udfps_side_fingerprint_help)
-                    configureEnrollmentStage(R.raw.udfps_right_edge_hint_lottie)
-                } else if (illustrationLottie == null) {
-                    if (isStageHalfCompleted) {
-                        subTitleText.setText(
-                            R.string.security_settings_fingerprint_enroll_repeat_message
-                        )
-                    } else {
-                        subTitleText.setText(R.string.security_settings_udfps_enroll_edge_message)
-                    }
-                }
-            }
-
-            STAGE_UNKNOWN -> {
-                titleText.setText(R.string.security_settings_fingerprint_enroll_udfps_title)
-                subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
-                val description: CharSequence = getString(
-                    R.string.security_settings_udfps_enroll_a11y
-                )
-                requireActivity().title = description
-            }
-
-            else -> {
-                titleText.setText(R.string.security_settings_fingerprint_enroll_udfps_title)
-                subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
-                val description: CharSequence = getString(
-                    R.string.security_settings_udfps_enroll_a11y
-                )
-                requireActivity().title = description
-            }
-        }
-    }
-
-    private fun updateIllustrationLottie(@Surface.Rotation rotation: Int) {
-        if (rotation == ROTATION_90 || rotation == ROTATION_270) {
-            illustrationLottie = null
-        } else if (shouldShowLottie) {
-            illustrationLottie =
-                enrollingView!!.findViewById(R.id.illustration_lottie)
-        }
-    }
-
-    private val currentStage: Int
-        get() {
-            val progress = progressViewModel.progressLiveData.value!!
-            if (progress.steps == -1) {
-                return STAGE_UNKNOWN
-            }
-            val progressSteps: Int = progress.steps - progress.remaining
-            return if (progressSteps < getStageThresholdSteps(0)) {
-                STAGE_CENTER
-            } else if (progressSteps < getStageThresholdSteps(1)) {
-                STAGE_GUIDED
-            } else if (progressSteps < getStageThresholdSteps(2)) {
-                STAGE_FINGERTIP
-            } else if (progressSteps < getStageThresholdSteps(3)) {
-                STAGE_LEFT_EDGE
-            } else {
-                STAGE_RIGHT_EDGE
-            }
-        }
-
-    private val isStageHalfCompleted: Boolean
-        get() {
-            val progress: EnrollmentProgress = progressViewModel.progressLiveData.value!!
-            if (progress.steps == -1) {
-                return false
-            }
-            val progressSteps: Int = progress.steps - progress.remaining
-            var prevThresholdSteps = 0
-            for (i in 0 until enrollingViewModel.getEnrollStageCount()) {
-                val thresholdSteps = getStageThresholdSteps(i)
-                if (progressSteps in prevThresholdSteps until thresholdSteps) {
-                    val adjustedProgress = progressSteps - prevThresholdSteps
-                    val adjustedThreshold = thresholdSteps - prevThresholdSteps
-                    return adjustedProgress >= adjustedThreshold / 2
-                }
-                prevThresholdSteps = thresholdSteps
-            }
-
-            // After last enrollment step.
-            return true
-        }
-
-    private fun getStageThresholdSteps(index: Int): Int {
-        val progress: EnrollmentProgress = progressViewModel.progressLiveData.value!!
-        if (progress.steps == -1) {
-            Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet")
-            return 1
-        }
-        return (progress.steps * enrollingViewModel.getEnrollStageThreshold(index)).roundToInt()
-    }
-
-    private fun configureEnrollmentStage(@RawRes lottie: Int) {
-        subTitleText.text = ""
-        LottieCompositionFactory.fromRawRes(activity, lottie)
-            .addListener { c: LottieComposition ->
-                illustrationLottie?.let {
-                    it.setComposition(c)
-                    it.visibility = View.VISIBLE
-                    it.playAnimation()
-                }
-            }
-    }
-
-    private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
-        updateProgress(true /* animate */, progress)
-        updateTitleAndDescription()
-        if (isAccessibilityEnabled) {
-            val steps: Int = progress.steps
-            val remaining: Int = progress.remaining
-            val percent = ((steps - remaining).toFloat() / steps.toFloat() * 100).toInt()
-            val announcement: CharSequence = activity!!.getString(
-                R.string.security_settings_udfps_enroll_progress_a11y_message, percent
-            )
-            enrollingViewModel.sendAccessibilityEvent(announcement)
-        }
-    }
-
-    private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
-        Log.d(TAG, "onEnrollmentHelp($helpMessage)")
-        val helpStr: CharSequence = helpMessage.str
-        if (helpStr.isNotEmpty()) {
-            showError(helpStr)
-            udfpsEnrollView.onEnrollmentHelp()
-        }
-    }
-
-    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
-        cancelEnrollment(true)
-        lifecycleScope.launch {
-            Log.d(TAG, "newDialog $errorMessage")
-            errorDialogViewModel.newDialog(errorMessage.msgId)
-        }
-    }
-
-    private fun onEnrollmentCanceled(canceledSignal: Any) {
-        Log.d(
-            TAG,
-            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
-        )
-        if (enrollingCancelSignal === canceledSignal) {
-            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
-            progressViewModel.clearProgressLiveData()
-            if (enrollingViewModel.onBackPressed) {
-                enrollingViewModel.onCancelledDueToOnBackPressed()
-            } else if (enrollingViewModel.onSkipPressed) {
-                enrollingViewModel.onCancelledDueToOnSkipPressed()
-            }
-        }
-    }
-
-    private fun onAcquired(isAcquiredGood: Boolean) {
-        udfpsEnrollView.onAcquired(isAcquiredGood)
-    }
-
-    private fun onPointerDown(sensorId: Int) {
-        udfpsEnrollView.onPointerDown(sensorId)
-    }
-
-    private fun onPointerUp(sensorId: Int) {
-        udfpsEnrollView.onPointerUp(sensorId)
-    }
-
-    private fun showError(error: CharSequence) {
-        titleText.text = error
-        titleText.contentDescription = error
-        subTitleText.contentDescription = ""
-    }
-
-    private fun onRotationChanged(newRotation: Int) {
-        if ((newRotation + 2) % 4 == rotation) {
-            rotation = newRotation
-            requireContext().configLayout(newRotation, titleText, subTitleText, icon, skipBtn)
-        }
-    }
-
-    companion object {
-        private val TAG = "FingerprintEnrollEnrollingUdfpsFragment"
-        private const val PROGRESS_BAR_MAX = 10000
-        private const val STAGE_UNKNOWN = -1
-        private const val STAGE_CENTER = 0
-        private const val STAGE_GUIDED = 1
-        private const val STAGE_FINGERTIP = 2
-        private const val STAGE_LEFT_EDGE = 3
-        private const val STAGE_RIGHT_EDGE = 4
-    }
-}
-
-
-fun FragmentActivity.bindFingerprintEnrollEnrollingUdfpsView(
-    view: RelativeLayout,
-    sensorProperties: FingerprintSensorPropertiesInternal,
-    @Surface.Rotation rotation: Int,
-    onSkipClickListener: View.OnClickListener
-) {
-    view.findViewById<UdfpsEnrollView>(R.id.udfps_animation_view)!!.setSensorProperties(
-        sensorProperties
-    )
-
-    val titleText = view.findViewById<TextView>(R.id.suc_layout_title)!!
-    val subTitleText = view.findViewById<TextView>(R.id.sud_layout_subtitle)!!
-    val icon = view.findViewById<ImageView>(R.id.sud_layout_icon)!!
-    val skipBtn = view.findViewById<Button>(R.id.skip_btn)!!.also {
-        it.setOnClickListener(onSkipClickListener)
-    }
-    configLayout(rotation, titleText, subTitleText, icon, skipBtn)
-}
-
-private fun Context.configLayout(
-    @Surface.Rotation newRotation: Int,
-    titleText: TextView,
-    subTitleText: TextView,
-    icon: ImageView,
-    skipBtn: Button
-) {
-    if (newRotation == ROTATION_270) {
-        val iconLP = RelativeLayout.LayoutParams(-2, -2)
-        iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
-        iconLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
-        iconLP.topMargin = convertDpToPixel(76.64f)
-        iconLP.leftMargin = convertDpToPixel(151.54f)
-        icon.layoutParams = iconLP
-        val titleLP = RelativeLayout.LayoutParams(-1, -2)
-        titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
-        titleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
-        titleLP.topMargin = convertDpToPixel(138f)
-        titleLP.leftMargin = convertDpToPixel(144f)
-        titleText.layoutParams = titleLP
-        val subtitleLP = RelativeLayout.LayoutParams(-1, -2)
-        subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
-        subtitleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
-        subtitleLP.topMargin = convertDpToPixel(198f)
-        subtitleLP.leftMargin = convertDpToPixel(144f)
-        subTitleText.layoutParams = subtitleLP
-    } else if (newRotation == ROTATION_90) {
-        val metrics = resources.displayMetrics
-        val iconLP = RelativeLayout.LayoutParams(-2, -2)
-        iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
-        iconLP.addRule(RelativeLayout.ALIGN_PARENT_START)
-        iconLP.topMargin = convertDpToPixel(76.64f)
-        iconLP.leftMargin = convertDpToPixel(71.99f)
-        icon.layoutParams = iconLP
-        val titleLP = RelativeLayout.LayoutParams(
-            metrics.widthPixels / 2, -2
-        )
-        titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
-        titleLP.addRule(RelativeLayout.ALIGN_PARENT_START, R.id.udfps_animation_view)
-        titleLP.topMargin = convertDpToPixel(138f)
-        titleLP.leftMargin = convertDpToPixel(66f)
-        titleText.layoutParams = titleLP
-        val subtitleLP = RelativeLayout.LayoutParams(
-            metrics.widthPixels / 2, -2
-        )
-        subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
-        subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_START)
-        subtitleLP.topMargin = convertDpToPixel(198f)
-        subtitleLP.leftMargin = convertDpToPixel(66f)
-        subTitleText.layoutParams = subtitleLP
-    }
-    if (newRotation == ROTATION_90 || newRotation == ROTATION_270) {
-        val skipBtnLP = skipBtn.layoutParams as RelativeLayout.LayoutParams
-        skipBtnLP.topMargin = convertDpToPixel(26f)
-        skipBtnLP.leftMargin = convertDpToPixel(54f)
-        skipBtn.requestLayout()
-    }
-}
-
-fun Context.convertDpToPixel(dp: Float): Int {
-    return (dp * resources.displayMetrics.density).toInt()
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt
deleted file mode 100644
index 882cbcf..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 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.biometrics2.ui.view
-
-import android.app.Dialog
-import android.content.Context
-import android.content.DialogInterface
-import android.hardware.biometrics.BiometricConstants
-import android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_UNABLE_TO_PROCESS
-import android.hardware.fingerprint.FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE
-import android.os.Bundle
-import android.util.Log
-import androidx.appcompat.app.AlertDialog
-import androidx.fragment.app.DialogFragment
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getErrorMessage
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getErrorTitle
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getSetupErrorMessage
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint error dialog, will be shown when an error occurs during fingerprint enrollment.
- */
-class FingerprintEnrollErrorDialog : DialogFragment() {
-
-    private val viewModel: FingerprintEnrollErrorDialogViewModel?
-        get() = activity?.let {
-            ViewModelProvider(it)[FingerprintEnrollErrorDialogViewModel::class.java]
-        }
-
-    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
-        val errorMsgId: Int = requireArguments().getInt(KEY_ERROR_MSG_ID)
-        val okButtonSetResultAction =
-            if (errorMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT)
-                FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-            else
-                FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
-        return requireActivity().bindFingerprintEnrollEnrollingErrorDialog(
-                errorMsgId = errorMsgId,
-                isSuw = viewModel!!.isSuw,
-                tryAgainButtonClickListener = { dialog: DialogInterface?, _: Int ->
-                    activity?.lifecycleScope?.launch {
-                        Log.d(TAG, "tryAgain flow")
-                        viewModel?.triggerRetry()
-                        dialog?.dismiss()
-                    }
-                },
-                okButtonClickListener = { dialog: DialogInterface?, _: Int ->
-                    activity?.lifecycleScope?.launch {
-                        Log.d(TAG, "ok flow as $okButtonSetResultAction")
-                        viewModel?.setResultAndFinish(okButtonSetResultAction)
-                        dialog?.dismiss()
-                    }
-                }
-            )
-    }
-
-    companion object {
-        private const val TAG = "FingerprintEnrollErrorDialog"
-        private const val KEY_ERROR_MSG_ID = "error_msg_id"
-
-        fun newInstance(errorMsgId: Int): FingerprintEnrollErrorDialog {
-            val dialog = FingerprintEnrollErrorDialog()
-            val args = Bundle()
-            args.putInt(KEY_ERROR_MSG_ID, errorMsgId)
-            dialog.arguments = args
-            return dialog
-        }
-    }
-}
-
-fun Context.bindFingerprintEnrollEnrollingErrorDialog(
-    errorMsgId: Int,
-    isSuw: Boolean,
-    tryAgainButtonClickListener: DialogInterface.OnClickListener,
-    okButtonClickListener: DialogInterface.OnClickListener
-): AlertDialog = AlertDialog.Builder(this)
-    .setTitle(getString(getErrorTitle(errorMsgId)))
-    .setMessage(
-        getString(
-            if (isSuw)
-                getSetupErrorMessage(errorMsgId)
-            else
-                getErrorMessage(errorMsgId)
-        )
-    )
-    .setCancelable(false).apply {
-        if (errorMsgId == FINGERPRINT_ERROR_UNABLE_TO_PROCESS) {
-            setPositiveButton(
-                R.string.security_settings_fingerprint_enroll_dialog_try_again,
-                tryAgainButtonClickListener
-            )
-            setNegativeButton(
-                R.string.security_settings_fingerprint_enroll_dialog_ok,
-                okButtonClickListener
-            )
-        } else {
-            setPositiveButton(
-                R.string.security_settings_fingerprint_enroll_dialog_ok,
-                okButtonClickListener
-            )
-        }
-    }
-    .create()
-    .apply { setCanceledOnTouchOutside(false) }
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt
deleted file mode 100644
index be24fc6..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.content.Context
-import android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.Surface
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint.FingerprintFindSensorAnimation
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import kotlinx.coroutines.launch
-
-/**
- * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
- * It interacts with ProgressViewModel, and FingerprintFindSensorAnimation.
- * <pre>
- * | Has                 | UDFPS | SFPS | Other (Rear FPS) |
- * |---------------------|-------|------|------------------|
- * | Primary button      | Yes   | No   | No               |
- * | Illustration Lottie | Yes   | Yes  | No               |
- * | Animation           | No    | No   | Depend on layout |
- * | Progress ViewModel  | No    | Yes  | Yes              |
- * | Orientation detect  | No    | Yes  | No               |
- * | Foldable detect     | No    | Yes  | No               |
- * </pre>
- */
-class FingerprintEnrollFindRfpsFragment : Fragment() {
-
-    private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
-    private val viewModel: FingerprintEnrollFindSensorViewModel
-        get() = _viewModel!!
-
-    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
-    private val progressViewModel: FingerprintEnrollProgressViewModel
-        get() = _progressViewModel!!
-
-    private var _rotationViewModel: DeviceRotationViewModel? = null
-    private val rotationViewModel: DeviceRotationViewModel
-        get() = _rotationViewModel!!
-
-    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
-    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
-        get() = _errorDialogViewModel!!
-
-    private var findRfpsView: GlifLayout? = null
-
-    private val onSkipClickListener =
-        View.OnClickListener { _: View? -> viewModel.onSkipButtonClick() }
-
-    private var animation: FingerprintFindSensorAnimation? = null
-
-    private var enrollingCancelSignal: Any? = null
-
-    @Surface.Rotation
-    private var lastRotation = -1
-
-    private val progressObserver = Observer { progress: EnrollmentProgress? ->
-        if (progress != null && !progress.isInitialStep) {
-            cancelEnrollment(true)
-        }
-    }
-
-    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
-        Log.d(TAG, "errorMessageObserver($errorMessage)")
-        errorMessage?.let { onEnrollmentError(it) }
-    }
-
-    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
-        canceledSignal?.let { onEnrollmentCanceled(it) }
-    }
-
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View {
-        findRfpsView = inflater.inflate(
-            R.layout.fingerprint_enroll_find_sensor,
-            container,
-            false
-        ) as GlifLayout
-
-        val animationView = findRfpsView!!.findViewById<View>(
-            R.id.fingerprint_sensor_location_animation
-        )
-        if (animationView is FingerprintFindSensorAnimation) {
-            animation = animationView
-        }
-
-        return findRfpsView!!
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        requireActivity().bindFingerprintEnrollFindRfpsView(
-            view = findRfpsView!!,
-            onSkipClickListener = onSkipClickListener
-        )
-
-        lifecycleScope.launch {
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                errorDialogViewModel.triggerRetryFlow.collect { retryLookingForFingerprint() }
-            }
-        }
-    }
-
-    private fun retryLookingForFingerprint() {
-        startEnrollment()
-        animation?.let {
-            Log.d(TAG, "retry, start animation")
-            it.startAnimation()
-        }
-    }
-
-    override fun onStart() {
-        super.onStart()
-        val isErrorDialogShown = errorDialogViewModel.isDialogShown
-        Log.d(TAG, "onStart(), isEnrolling:${progressViewModel.isEnrolling}"
-                + ", isErrorDialog:$isErrorDialogShown")
-        if (!isErrorDialogShown) {
-            startEnrollment()
-        }
-    }
-
-    override fun onResume() {
-        val rotationLiveData: LiveData<Int> = rotationViewModel.liveData
-        lastRotation = rotationLiveData.value!!
-        if (!errorDialogViewModel.isDialogShown) {
-            animation?.let {
-                Log.d(TAG, "onResume(), start animation")
-                it.startAnimation()
-            }
-        }
-        super.onResume()
-    }
-
-    override fun onPause() {
-        animation?.let {
-            if (DEBUG) {
-                Log.d(TAG, "onPause(), pause animation")
-            }
-            it.pauseAnimation()
-        }
-        super.onPause()
-    }
-
-    override fun onStop() {
-        super.onStop()
-        removeEnrollmentObservers()
-        val isEnrolling = progressViewModel.isEnrolling
-        val isConfigChange = requireActivity().isChangingConfigurations
-        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
-        if (isEnrolling && !isConfigChange) {
-            cancelEnrollment(false)
-        }
-    }
-
-    private fun removeEnrollmentObservers() {
-        progressViewModel.progressLiveData.removeObserver(progressObserver)
-        progressViewModel.helpMessageLiveData.removeObserver(errorMessageObserver)
-    }
-
-    private fun startEnrollment() {
-        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_FIND_SENSOR)
-        if (enrollingCancelSignal == null) {
-            Log.e(TAG, "startEnrollment(), failed to start enrollment")
-        } else {
-            Log.d(TAG, "startEnrollment(), success")
-        }
-        progressViewModel.progressLiveData.observe(this, progressObserver)
-        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
-    }
-
-    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
-        if (!progressViewModel.isEnrolling) {
-            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
-            return
-        }
-        removeEnrollmentObservers()
-        if (waitForLastCancelErrMsg) {
-            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
-        } else {
-            enrollingCancelSignal = null
-        }
-        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
-        if (!cancelResult) {
-            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
-        }
-    }
-
-    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
-        cancelEnrollment(false)
-        lifecycleScope.launch {
-            Log.d(TAG, "newDialogFlow as $errorMessage")
-            errorDialogViewModel.newDialog(errorMessage.msgId)
-        }
-    }
-
-    private fun onEnrollmentCanceled(canceledSignal: Any) {
-        Log.d(
-            TAG,
-            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
-        )
-        if (enrollingCancelSignal === canceledSignal) {
-            val progress: EnrollmentProgress? = progressViewModel.progressLiveData.value
-            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
-            progressViewModel.clearProgressLiveData()
-            if (progress != null && !progress.isInitialStep) {
-                viewModel.onStartButtonClick()
-            }
-        }
-    }
-
-    override fun onDestroy() {
-        animation?.let {
-            if (DEBUG) {
-                Log.d(TAG, "onDestroy(), stop animation")
-            }
-            it.stopAnimation()
-        }
-        super.onDestroy()
-    }
-
-    override fun onAttach(context: Context) {
-        ViewModelProvider(requireActivity()).let { provider ->
-            _viewModel = provider[FingerprintEnrollFindSensorViewModel::class.java]
-            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
-            _rotationViewModel = provider[DeviceRotationViewModel::class.java]
-            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
-        }
-        super.onAttach(context)
-    }
-
-    companion object {
-        private const val DEBUG = false
-        private const val TAG = "FingerprintEnrollFindRfpsFragment"
-    }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFindRfpsView(
-    view: GlifLayout,
-    onSkipClickListener: View.OnClickListener,
-) {
-    GlifLayoutHelper(this, view).let {
-        it.setHeaderText(
-            R.string.security_settings_fingerprint_enroll_find_sensor_title
-        )
-        it.setDescriptionText(
-            getText(R.string.security_settings_fingerprint_enroll_find_sensor_message)
-        )
-    }
-
-    view.getMixin(FooterBarMixin::class.java).secondaryButton =
-        FooterButton.Builder(this)
-            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-            .setButtonType(FooterButton.ButtonType.SKIP)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
-            .build()
-            .also {
-                it.setOnClickListener(onSkipClickListener)
-            }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt
deleted file mode 100644
index 7455be1..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.content.Context
-import android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR
-import android.os.Bundle
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.Surface
-import android.view.View
-import android.view.ViewGroup
-import androidx.annotation.RawRes
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.airbnb.lottie.LottieAnimationView
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.android.settingslib.widget.LottieColorUtils
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import kotlinx.coroutines.launch
-
-/**
- * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
- * It interacts with ProgressViewModel, FoldCallback (for different lottie), and
- * LottieAnimationView.
- * <pre>
- * | Has                 | UDFPS | SFPS | Other (Rear FPS) |
- * |---------------------|-------|------|------------------|
- * | Primary button      | Yes   | No   | No               |
- * | Illustration Lottie | Yes   | Yes  | No               |
- * | Animation           | No    | No   | Depend on layout |
- * | Progress ViewModel  | No    | Yes  | Yes              |
- * | Orientation detect  | No    | Yes  | No               |
- * | Foldable detect     | No    | Yes  | No               |
- * </pre>
- */
-class FingerprintEnrollFindSfpsFragment : Fragment() {
-
-    private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
-    private val viewModel: FingerprintEnrollFindSensorViewModel
-        get() = _viewModel!!
-
-    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
-    private val progressViewModel: FingerprintEnrollProgressViewModel
-        get() = _progressViewModel!!
-
-    private var _rotationViewModel: DeviceRotationViewModel? = null
-    private val rotationViewModel: DeviceRotationViewModel
-        get() = _rotationViewModel!!
-
-    private var _foldedViewModel: DeviceFoldedViewModel? = null
-    private val foldedViewModel: DeviceFoldedViewModel
-        get() = _foldedViewModel!!
-
-    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
-    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
-        get() = _errorDialogViewModel!!
-
-    private var findSfpsView: GlifLayout? = null
-
-    private val onSkipClickListener =
-        View.OnClickListener { _: View? -> viewModel.onSkipButtonClick() }
-
-    private val illustrationLottie: LottieAnimationView
-        get() = findSfpsView!!.findViewById(R.id.illustration_lottie)!!
-
-    private var enrollingCancelSignal: Any? = null
-
-    @Surface.Rotation
-    private var animationRotation = -1
-
-    private val rotationObserver = Observer { rotation: Int? ->
-        rotation?.let { onRotationChanged(it) }
-    }
-
-    private val progressObserver = Observer { progress: EnrollmentProgress? ->
-        if (progress != null && !progress.isInitialStep) {
-            cancelEnrollment(true)
-        }
-    }
-
-    private val errorMessageObserver = Observer{ errorMessage: EnrollmentStatusMessage? ->
-        Log.d(TAG, "errorMessageObserver($errorMessage)")
-        errorMessage?.let { onEnrollmentError(it) }
-    }
-
-    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
-        canceledSignal?.let { onEnrollmentCanceled(it) }
-    }
-
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View = (inflater.inflate(
-        R.layout.sfps_enroll_find_sensor_layout,
-        container,
-        false
-    ) as GlifLayout).also {
-        findSfpsView = it
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        requireActivity().bindFingerprintEnrollFindSfpsView(
-            view = findSfpsView!!,
-            onSkipClickListener = onSkipClickListener
-        )
-
-        lifecycleScope.launch {
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                errorDialogViewModel.triggerRetryFlow.collect { startEnrollment() }
-            }
-        }
-    }
-
-    override fun onStart() {
-        super.onStart()
-        val isErrorDialogShown = errorDialogViewModel.isDialogShown
-        Log.d(TAG, "onStart(), isEnrolling:${progressViewModel.isEnrolling}"
-                + ", isErrorDialog:$isErrorDialogShown")
-        if (!isErrorDialogShown) {
-            startEnrollment()
-        }
-    }
-
-    override fun onResume() {
-        super.onResume()
-        val rotationLiveData: LiveData<Int> = rotationViewModel.liveData
-        playLottieAnimation(rotationLiveData.value!!)
-        rotationLiveData.observe(this, rotationObserver)
-    }
-
-    override fun onPause() {
-        rotationViewModel.liveData.removeObserver(rotationObserver)
-        super.onPause()
-    }
-
-    override fun onStop() {
-        super.onStop()
-        val isEnrolling = progressViewModel.isEnrolling
-        val isConfigChange = requireActivity().isChangingConfigurations
-        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
-        if (isEnrolling && !isConfigChange) {
-            cancelEnrollment(false)
-        }
-    }
-
-    private fun removeEnrollmentObservers() {
-        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
-        progressViewModel.progressLiveData.removeObserver(progressObserver)
-    }
-
-    private fun startEnrollment() {
-        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_FIND_SENSOR)
-        if (enrollingCancelSignal == null) {
-            Log.e(TAG, "startEnrollment(), failed to start enrollment")
-        } else {
-            Log.d(TAG, "startEnrollment(), success")
-        }
-        progressViewModel.progressLiveData.observe(this, progressObserver)
-        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
-    }
-
-    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
-        if (!progressViewModel.isEnrolling) {
-            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
-            return
-        }
-        removeEnrollmentObservers()
-        if (waitForLastCancelErrMsg) {
-            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
-        } else {
-            enrollingCancelSignal = null
-        }
-        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
-        if (!cancelResult) {
-            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
-        }
-    }
-
-    private fun onRotationChanged(@Surface.Rotation newRotation: Int) {
-        if (DEBUG) {
-            Log.d(TAG, "onRotationChanged() from $animationRotation to $newRotation")
-        }
-        if ((newRotation + 2) % 4 == animationRotation) {
-            // Fragment not changed, we just need to play correct rotation animation
-            playLottieAnimation(newRotation)
-        }
-    }
-
-    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
-        progressViewModel.cancelEnrollment()
-        lifecycleScope.launch {
-            Log.d(TAG, "newDialogFlow as $errorMessage")
-            errorDialogViewModel.newDialog(errorMessage.msgId)
-        }
-    }
-
-    private fun onEnrollmentCanceled(canceledSignal: Any) {
-        Log.d(
-            TAG,
-            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
-        )
-        if (enrollingCancelSignal === canceledSignal) {
-            val progress: EnrollmentProgress? = progressViewModel.progressLiveData.value
-            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
-            progressViewModel.clearProgressLiveData()
-            if (progress != null && !progress.isInitialStep) {
-                viewModel.onStartButtonClick()
-            }
-        }
-    }
-
-    private fun playLottieAnimation(@Surface.Rotation rotation: Int) {
-        @RawRes val animationRawRes = getSfpsLottieAnimationRawRes(rotation)
-        Log.d(
-            TAG,
-            "play lottie animation $animationRawRes, previous rotation:$animationRotation"
-                    + ", new rotation:" + rotation
-        )
-        animationRotation = rotation
-        illustrationLottie.setAnimation(animationRawRes)
-        LottieColorUtils.applyDynamicColors(activity, illustrationLottie)
-        illustrationLottie.visibility = View.VISIBLE
-        illustrationLottie.playAnimation()
-    }
-
-    @RawRes
-    private fun getSfpsLottieAnimationRawRes(@Surface.Rotation rotation: Int): Int {
-        val isFolded = java.lang.Boolean.FALSE != foldedViewModel.liveData.value
-        return when (rotation) {
-            Surface.ROTATION_90 ->
-                if (isFolded)
-                    R.raw.fingerprint_edu_lottie_folded_top_left
-                else
-                    R.raw.fingerprint_edu_lottie_portrait_top_left
-            Surface.ROTATION_180 ->
-                if (isFolded)
-                    R.raw.fingerprint_edu_lottie_folded_bottom_left
-                else
-                    R.raw.fingerprint_edu_lottie_landscape_bottom_left
-            Surface.ROTATION_270 ->
-                if (isFolded)
-                    R.raw.fingerprint_edu_lottie_folded_bottom_right
-                else
-                    R.raw.fingerprint_edu_lottie_portrait_bottom_right
-            else ->
-                if (isFolded)
-                    R.raw.fingerprint_edu_lottie_folded_top_right
-                else
-                    R.raw.fingerprint_edu_lottie_landscape_top_right
-        }
-    }
-
-    override fun onAttach(context: Context) {
-        ViewModelProvider(requireActivity()).let { provider ->
-            _viewModel = provider[FingerprintEnrollFindSensorViewModel::class.java]
-            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
-            _rotationViewModel = provider[DeviceRotationViewModel::class.java]
-            _foldedViewModel = provider[DeviceFoldedViewModel::class.java]
-            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
-        }
-        super.onAttach(context)
-    }
-
-    companion object {
-        private const val DEBUG = false
-        private const val TAG = "FingerprintEnrollFindSfpsFragment"
-    }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFindSfpsView(
-    view: GlifLayout,
-    onSkipClickListener: View.OnClickListener
-) {
-    view.getMixin(FooterBarMixin::class.java).let {
-        it.secondaryButton = FooterButton.Builder(this)
-            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-            .setButtonType(FooterButton.ButtonType.SKIP)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
-            .build()
-        it.secondaryButton.setOnClickListener(onSkipClickListener)
-    }
-
-    GlifLayoutHelper(this, view).let {
-        it.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
-        it.setDescriptionText(
-            getText(R.string.security_settings_sfps_enroll_find_sensor_message)
-        )
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt
deleted file mode 100644
index 3dce99c..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt
+++ /dev/null
@@ -1,125 +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.biometrics2.ui.view
-
-import android.content.Context
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.ViewModelProvider
-import com.airbnb.lottie.LottieAnimationView
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-
-/**
- * Fragment explaining the under-display fingerprint sensor location for fingerprint enrollment.
- * It interacts with Primary button, and LottieAnimationView.
- * <pre>
- * | Has                 | UDFPS | SFPS | Other (Rear FPS) |
- * |---------------------|-------|------|------------------|
- * | Primary button      | Yes   | No   | No               |
- * | Illustration Lottie | Yes   | Yes  | No               |
- * | Animation           | No    | No   | Depend on layout |
- * | Progress ViewModel  | No    | Yes  | Yes              |
- * | Orientation detect  | No    | Yes  | No               |
- * | Foldable detect     | No    | Yes  | No               |
- * </pre>
- */
-class FingerprintEnrollFindUdfpsFragment : Fragment() {
-
-    private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
-    private val mViewModel: FingerprintEnrollFindSensorViewModel
-        get() = _viewModel!!
-
-    private var findUdfpsView: GlifLayout? = null
-
-    private val mOnSkipClickListener =
-        View.OnClickListener { _: View? -> mViewModel.onSkipButtonClick() }
-
-    private val mOnStartClickListener =
-        View.OnClickListener { _: View? -> mViewModel.onStartButtonClick() }
-
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View = (inflater.inflate(
-        R.layout.udfps_enroll_find_sensor_layout,
-        container,
-        false
-    ) as GlifLayout).also {
-        findUdfpsView = it
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        requireActivity().bindFingerprintEnrollFindUdfpsView(
-            view = findUdfpsView!!,
-            isAccessibilityEnabled = mViewModel.isAccessibilityEnabled,
-            onSkipClickListener = mOnSkipClickListener,
-            onStartClickListener = mOnStartClickListener
-        )
-    }
-
-    override fun onAttach(context: Context) {
-        _viewModel = ViewModelProvider(requireActivity())[
-            FingerprintEnrollFindSensorViewModel::class.java
-        ]
-        super.onAttach(context)
-    }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFindUdfpsView(
-    view: GlifLayout,
-    isAccessibilityEnabled: Boolean,
-    onSkipClickListener: View.OnClickListener,
-    onStartClickListener: View.OnClickListener,
-) {
-    GlifLayoutHelper(this, view).let { helper ->
-        helper.setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title)
-        helper.setDescriptionText(
-            getText(R.string.security_settings_udfps_enroll_find_sensor_message)
-        )
-    }
-
-    view.getMixin(FooterBarMixin::class.java)!!.let {
-        it.secondaryButton = FooterButton.Builder(this)
-            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-            .setButtonType(FooterButton.ButtonType.SKIP)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
-            .build()
-        it.secondaryButton.setOnClickListener(onSkipClickListener)
-
-        it.primaryButton = FooterButton.Builder(this)
-            .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
-            .setButtonType(FooterButton.ButtonType.NEXT)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
-            .build()
-        it.primaryButton.setOnClickListener(onStartClickListener)
-    }
-
-    view.findViewById<LottieAnimationView>(R.id.illustration_lottie)!!.let {
-        it.setOnClickListener(onStartClickListener)
-        if (isAccessibilityEnabled) {
-            it.setAnimation(R.raw.udfps_edu_a11y_lottie)
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt
deleted file mode 100644
index 2af2dee..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt
+++ /dev/null
@@ -1,117 +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.biometrics2.ui.view
-
-import android.content.Context
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.ViewModelProvider
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-
-/**
- * Fragment which concludes fingerprint enrollment.
- */
-class FingerprintEnrollFinishFragment : Fragment() {
-
-    private var _viewModel: FingerprintEnrollFinishViewModel? = null
-    private val viewModel: FingerprintEnrollFinishViewModel
-        get() = _viewModel!!
-
-    private val addButtonClickListener =
-        View.OnClickListener { _: View? -> viewModel.onAddButtonClick() }
-
-    private val nextButtonClickListener =
-        View.OnClickListener { _: View? -> viewModel.onNextButtonClick() }
-    override fun onAttach(context: Context) {
-        super.onAttach(context)
-        _viewModel = ViewModelProvider(requireActivity())[
-            FingerprintEnrollFinishViewModel::class.java
-        ]
-    }
-
-    override fun onCreateView(
-        inflater: LayoutInflater, container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ) : View = (inflater.inflate(
-            if (viewModel.canAssumeSfps())
-                R.layout.sfps_enroll_finish
-            else
-                R.layout.fingerprint_enroll_finish,
-            container,
-            false
-        ) as GlifLayout).also {
-            requireActivity().bindFingerprintEnrollFinishFragment(
-                view = it,
-                isSuw = viewModel.request.isSuw,
-                canAssumeSfps = viewModel.canAssumeSfps(),
-                isAnotherFingerprintEnrollable = viewModel.isAnotherFingerprintEnrollable,
-                nextButtonClickListener = nextButtonClickListener,
-                addButtonClickListener = addButtonClickListener
-            )
-        }
-}
-
-fun FragmentActivity.bindFingerprintEnrollFinishFragment(
-    view: GlifLayout,
-    isSuw: Boolean,
-    canAssumeSfps: Boolean,
-    isAnotherFingerprintEnrollable: Boolean,
-    nextButtonClickListener: View.OnClickListener,
-    addButtonClickListener: View.OnClickListener
-) {
-    GlifLayoutHelper(this, view).apply {
-        setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title)
-        setDescriptionText(
-            getString(
-                if (canAssumeSfps && isAnotherFingerprintEnrollable)
-                    R.string.security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message
-                else
-                    R.string.security_settings_fingerprint_enroll_finish_v2_message
-            )
-        )
-    }
-
-    view.getMixin(FooterBarMixin::class.java).also { footer ->
-        footer.primaryButton = FooterButton.Builder(this)
-            .setText(
-                if (isSuw)
-                    R.string.next_label
-                else
-                    R.string.security_settings_fingerprint_enroll_done
-            )
-            .setListener(nextButtonClickListener)
-            .setButtonType(FooterButton.ButtonType.NEXT)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
-            .build()
-        if (isAnotherFingerprintEnrollable) {
-            footer.secondaryButton = FooterButton.Builder(this)
-                .setText(R.string.fingerprint_enroll_button_add)
-                .setListener(addButtonClickListener)
-                .setButtonType(FooterButton.ButtonType.SKIP)
-                .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
-                .build()
-        }
-    }
-
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt
deleted file mode 100644
index d1b3799..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt
+++ /dev/null
@@ -1,329 +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.biometrics2.ui.view
-
-import android.app.admin.DevicePolicyManager
-import android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED
-import android.content.Context
-import android.graphics.PorterDuff
-import android.graphics.PorterDuffColorFilter
-import android.os.Bundle
-import android.text.Html
-import android.text.method.LinkMovementMethod
-import android.util.Log
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import android.widget.ScrollView
-import android.widget.TextView
-import androidx.annotation.StringRes
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_UNKNOWN
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel
-import com.google.android.setupcompat.template.FooterBarMixin
-import com.google.android.setupcompat.template.FooterButton
-import com.google.android.setupdesign.GlifLayout
-import com.google.android.setupdesign.template.RequireScrollMixin
-import com.google.android.setupdesign.util.DeviceHelper
-import com.google.android.setupdesign.util.DynamicColorPalette
-import com.google.android.setupdesign.util.DynamicColorPalette.ColorType.ACCENT
-import java.util.function.Supplier
-import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint intro onboarding page fragment implementation
- */
-class FingerprintEnrollIntroFragment : Fragment() {
-
-    private val viewModelProvider: ViewModelProvider
-        get() = ViewModelProvider(requireActivity())
-
-    private var _viewModel: FingerprintEnrollIntroViewModel? = null
-    private val viewModel: FingerprintEnrollIntroViewModel
-        get() = _viewModel!!
-
-    private var introView: GlifLayout? = null
-
-    private var primaryFooterButton: FooterButton? = null
-
-    private var secondaryFooterButton: FooterButton? = null
-
-    private val onNextClickListener =
-        View.OnClickListener { _: View? ->
-            activity?.lifecycleScope?.let {
-                viewModel.onNextButtonClick(it)
-            }
-        }
-
-    private val onSkipOrCancelClickListener =
-        View.OnClickListener { _: View? ->
-            activity?.lifecycleScope?.let {
-                viewModel.onSkipOrCancelButtonClick(it)
-            }
-        }
-
-    override fun onCreateView(
-        inflater: LayoutInflater,
-        container: ViewGroup?,
-        savedInstanceState: Bundle?
-    ): View {
-        introView = inflater.inflate(
-            R.layout.fingerprint_enroll_introduction,
-            container,
-            false
-        ) as GlifLayout
-        return introView!!
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        super.onViewCreated(view, savedInstanceState)
-        requireActivity().bindFingerprintEnrollIntroView(
-            view = introView!!,
-            canAssumeUdfps = viewModel.canAssumeUdfps,
-            isBiometricUnlockDisabledByAdmin = viewModel.isBiometricUnlockDisabledByAdmin,
-            isParentalConsentRequired = viewModel.isParentalConsentRequired,
-            descriptionDisabledByAdminSupplier = { getDescriptionDisabledByAdmin(view.context) }
-        )
-    }
-
-    override fun onStart() {
-        val context: Context = requireContext()
-        val footerBarMixin: FooterBarMixin = footerBarMixin
-        viewModel.updateEnrollableStatus(lifecycleScope)
-        initPrimaryFooterButton(context, footerBarMixin)
-        initSecondaryFooterButton(context, footerBarMixin)
-        collectPageStatusFlowIfNeed()
-        super.onStart()
-    }
-
-    private fun initPrimaryFooterButton(
-        context: Context,
-        footerBarMixin: FooterBarMixin
-    ) {
-        if (footerBarMixin.primaryButton != null) {
-            return
-        }
-        primaryFooterButton = FooterButton.Builder(context)
-            .setText(R.string.security_settings_fingerprint_enroll_introduction_agree)
-            .setButtonType(FooterButton.ButtonType.OPT_IN)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
-            .build()
-            .also {
-                it.setOnClickListener(onNextClickListener)
-                footerBarMixin.primaryButton = it
-            }
-    }
-
-    private fun initSecondaryFooterButton(
-        context: Context,
-        footerBarMixin: FooterBarMixin
-    ) {
-        if (footerBarMixin.secondaryButton != null) {
-            return
-        }
-        secondaryFooterButton = FooterButton.Builder(context)
-            .setText(
-                if (viewModel.request.isAfterSuwOrSuwSuggestedAction)
-                    R.string.security_settings_fingerprint_enroll_introduction_cancel
-                else
-                    R.string.security_settings_fingerprint_enroll_introduction_no_thanks
-            )
-            .setButtonType(FooterButton.ButtonType.NEXT)
-            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
-            .build()
-            .also {
-                it.setOnClickListener(onSkipOrCancelClickListener)
-                footerBarMixin.setSecondaryButton(it, true /* usePrimaryStyle */)
-            }
-    }
-
-    private fun collectPageStatusFlowIfNeed() {
-        lifecycleScope.launch {
-            val status = viewModel.pageStatusFlow.first()
-            Log.d(TAG, "collectPageStatusFlowIfNeed status:$status")
-            if (status.hasScrollToBottom()
-                || status.enrollableStatus === FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-            ) {
-                // Update once and do not requireScrollWithButton() again when page has
-                // scrolled to bottom or User has enrolled at least a fingerprint, because if
-                // we requireScrollWithButton() again, primary button will become "More" after
-                // scrolling.
-                updateFooterButtons(status)
-            } else {
-                introView!!.getMixin(RequireScrollMixin::class.java).let {
-                    it.requireScrollWithButton(
-                        requireActivity(),
-                        primaryFooterButton!!,
-                        moreButtonTextRes,
-                        onNextClickListener
-                    )
-                    it.setOnRequireScrollStateChangedListener { scrollNeeded: Boolean ->
-                        viewModel.setHasScrolledToBottom(!scrollNeeded, lifecycleScope)
-                    }
-                }
-                repeatOnLifecycle(Lifecycle.State.STARTED) {
-                    viewModel.pageStatusFlow.collect(
-                        this@FingerprintEnrollIntroFragment::updateFooterButtons
-                    )
-                }
-            }
-        }
-    }
-
-    override fun onAttach(context: Context) {
-        _viewModel = viewModelProvider[FingerprintEnrollIntroViewModel::class.java]
-        super.onAttach(context)
-    }
-
-    private val footerBarMixin: FooterBarMixin
-        get() = introView!!.getMixin(FooterBarMixin::class.java)
-
-    private fun getDescriptionDisabledByAdmin(context: Context): String? {
-        val defaultStrId: Int =
-            R.string.security_settings_fingerprint_enroll_introduction_message_unlock_disabled
-        val devicePolicyManager: DevicePolicyManager =
-            checkNotNull(requireActivity().getSystemService(DevicePolicyManager::class.java))
-
-        return devicePolicyManager.resources.getString(FINGERPRINT_UNLOCK_DISABLED) {
-            context.getString(defaultStrId)
-        }
-    }
-
-    private fun updateFooterButtons(status: FingerprintEnrollIntroStatus) {
-        if (DEBUG) {
-            Log.d(TAG, "updateFooterButtons($status)")
-        }
-        primaryFooterButton!!.setText(
-            context,
-            if (status.enrollableStatus === FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
-                R.string.done
-            else if (status.hasScrollToBottom())
-                R.string.security_settings_fingerprint_enroll_introduction_agree
-            else
-                moreButtonTextRes
-        )
-        secondaryFooterButton!!.visibility =
-            if (status.hasScrollToBottom()
-                && status.enrollableStatus !== FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-                )
-                View.VISIBLE
-            else
-                View.INVISIBLE
-
-        view!!.requireViewById<TextView>(R.id.error_text).let {
-            when (status.enrollableStatus) {
-                FINGERPRINT_ENROLLABLE_OK -> {
-                    it.text = null
-                    it.visibility = View.GONE
-                }
-
-                FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX -> {
-                    it.setText(R.string.fingerprint_intro_error_max)
-                    it.visibility = View.VISIBLE
-                }
-
-                FINGERPRINT_ENROLLABLE_UNKNOWN -> {}
-            }
-        }
-    }
-
-    @get:StringRes
-    private val moreButtonTextRes: Int
-        get() = R.string.security_settings_face_enroll_introduction_more
-
-    companion object {
-        private const val TAG = "FingerprintEnrollIntroFragment"
-        private const val DEBUG = false
-    }
-}
-
-fun FragmentActivity.bindFingerprintEnrollIntroView(
-    view: GlifLayout,
-    canAssumeUdfps: Boolean,
-    isBiometricUnlockDisabledByAdmin: Boolean,
-    isParentalConsentRequired: Boolean,
-    descriptionDisabledByAdminSupplier: Supplier<String?>
-) {
-    val context = view.context
-
-    val iconFingerprint = view.findViewById<ImageView>(R.id.icon_fingerprint)!!
-    val iconDeviceLocked = view.findViewById<ImageView>(R.id.icon_device_locked)!!
-    val iconTrashCan = view.findViewById<ImageView>(R.id.icon_trash_can)!!
-    val iconInfo = view.findViewById<ImageView>(R.id.icon_info)!!
-    val iconShield = view.findViewById<ImageView>(R.id.icon_shield)!!
-    val iconLink = view.findViewById<ImageView>(R.id.icon_link)!!
-    val footerMessage6 = view.findViewById<TextView>(R.id.footer_message_6)!!
-
-    PorterDuffColorFilter(
-        DynamicColorPalette.getColor(context, ACCENT),
-        PorterDuff.Mode.SRC_IN
-    ).let { colorFilter ->
-        iconFingerprint.drawable.colorFilter = colorFilter
-        iconDeviceLocked.drawable.colorFilter = colorFilter
-        iconTrashCan.drawable.colorFilter = colorFilter
-        iconInfo.drawable.colorFilter = colorFilter
-        iconShield.drawable.colorFilter = colorFilter
-        iconLink.drawable.colorFilter = colorFilter
-    }
-
-    view.findViewById<TextView>(R.id.footer_learn_more)!!.let { learnMore ->
-        learnMore.movementMethod = LinkMovementMethod.getInstance()
-        val footerLinkStr: String = context.getString(
-            R.string.security_settings_fingerprint_v2_enroll_introduction_message_learn_more,
-            Html.FROM_HTML_MODE_LEGACY
-        )
-        learnMore.text = Html.fromHtml(footerLinkStr)
-    }
-
-    if (canAssumeUdfps) {
-        footerMessage6.visibility = View.VISIBLE
-        iconShield.visibility = View.VISIBLE
-    } else {
-        footerMessage6.visibility = View.GONE
-        iconShield.visibility = View.GONE
-    }
-    val glifLayoutHelper = GlifLayoutHelper(this, view)
-    if (isBiometricUnlockDisabledByAdmin && !isParentalConsentRequired) {
-        glifLayoutHelper.setHeaderText(
-            R.string.security_settings_fingerprint_enroll_introduction_title_unlock_disabled
-        )
-        glifLayoutHelper.setDescriptionText(descriptionDisabledByAdminSupplier.get())
-    } else {
-        glifLayoutHelper.setHeaderText(
-            R.string.security_settings_fingerprint_enroll_introduction_title
-        )
-        glifLayoutHelper.setDescriptionText(
-            getString(
-                R.string.security_settings_fingerprint_enroll_introduction_v3_message,
-                DeviceHelper.getDeviceName(context)
-            )
-        )
-    }
-
-    view.findViewById<ScrollView>(com.google.android.setupdesign.R.id.sud_scroll_view)
-        ?.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt
deleted file mode 100644
index ec96597..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt
+++ /dev/null
@@ -1,633 +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.biometrics2.ui.view
-
-import android.annotation.StyleRes
-import android.content.Intent
-import android.content.res.ColorStateList
-import android.content.res.Configuration
-import android.content.res.Resources.Theme
-import android.graphics.Color
-import android.os.Bundle
-import android.os.SystemClock
-import android.util.Log
-import androidx.activity.result.ActivityResult
-import androidx.activity.result.ActivityResultCallback
-import androidx.activity.result.ActivityResultLauncher
-import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
-import androidx.annotation.ColorInt
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.fragment.app.FragmentManager.POP_BACK_STACK_INCLUSIVE
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.Observer
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
-import androidx.lifecycle.viewmodel.CreationExtras
-import androidx.lifecycle.viewmodel.MutableCreationExtras
-import com.android.settings.R
-import com.android.settings.Utils
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.CHALLENGE_GENERATOR_KEY
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.CREDENTIAL_MODEL_KEY
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.ENROLLMENT_REQUEST_KEY
-import com.android.settings.biometrics2.ui.model.CredentialModel
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.FingerprintChallengeGenerator
-import com.android.settings.biometrics2.ui.viewmodel.CredentialAction
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FingerprintEnrollFindSensorAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FingerprintEnrollFinishAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
-import com.google.android.setupdesign.util.ThemeHelper
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint enrollment activity implementation
- */
-open class FingerprintEnrollmentActivity : FragmentActivity() {
-    /** SetupWizard activity*/
-    class SetupActivity : FingerprintEnrollmentActivity()
-
-    /** Internal activity for FingerprintSettings */
-    class InternalActivity : FingerprintEnrollmentActivity()
-
-    private val viewModelProvider: ViewModelProvider by lazy {
-        ViewModelProvider(this)
-    }
-
-    private val viewModel: FingerprintEnrollmentViewModel by lazy {
-        viewModelProvider[FingerprintEnrollmentViewModel::class.java]
-    }
-
-    private val autoCredentialViewModel: AutoCredentialViewModel by lazy {
-        viewModelProvider[AutoCredentialViewModel::class.java]
-    }
-
-    private val introViewModel: FingerprintEnrollIntroViewModel by lazy {
-        viewModelProvider[FingerprintEnrollIntroViewModel::class.java]
-    }
-
-    private val findSensorViewModel: FingerprintEnrollFindSensorViewModel by lazy {
-        viewModelProvider[FingerprintEnrollFindSensorViewModel::class.java]
-    }
-
-    private val progressViewModel: FingerprintEnrollProgressViewModel by lazy {
-        viewModelProvider[FingerprintEnrollProgressViewModel::class.java]
-    }
-
-    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel by lazy {
-        viewModelProvider[FingerprintEnrollEnrollingViewModel::class.java]
-    }
-
-    private val finishViewModel: FingerprintEnrollFinishViewModel by lazy {
-        viewModelProvider[FingerprintEnrollFinishViewModel::class.java]
-    }
-
-    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel by lazy {
-        viewModelProvider[FingerprintEnrollErrorDialogViewModel::class.java]
-    }
-
-    private var isFirstFragmentAdded = false
-
-    private val findSensorActionObserver = Observer<Int?> { action ->
-        if (DEBUG) {
-            Log.d(TAG, "findSensorActionObserver($action)")
-        }
-        action?.let { onFindSensorAction(it) }
-    }
-
-    private val enrollingActionObserver = Observer<Int?> { action ->
-        if (DEBUG) {
-            Log.d(TAG, "enrollingActionObserver($action)")
-        }
-        action?.let { onEnrollingAction(it) }
-    }
-
-    private val finishActionObserver = Observer<Int?> { action ->
-        if (DEBUG) {
-            Log.d(TAG, "finishActionObserver($action)")
-        }
-        action?.let { onFinishAction(it) }
-    }
-
-    private val chooseLockResultCallback: ActivityResultCallback<ActivityResult> =
-        ActivityResultCallback { result ->
-            onChooseOrConfirmLockResult(true /* isChooseLock */, result)
-        }
-
-    private val chooseLockLauncher: ActivityResultLauncher<Intent> =
-        registerForActivityResult(StartActivityForResult(), chooseLockResultCallback)
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-
-        // Theme
-        setTheme(viewModel.request.theme)
-        ThemeHelper.trySetDynamicColor(this)
-        window.statusBarColor = Color.TRANSPARENT
-
-        // fragment
-        setContentView(R.layout.biometric_enrollment_container)
-        val fragment: Fragment? = supportFragmentManager.findFragmentById(
-            R.id.fragment_container_view
-        )
-        Log.d(
-            TAG,
-            "onCreate() has savedInstance:$(savedInstanceState != null), fragment:$fragment"
-        )
-
-        isFirstFragmentAdded = (savedInstanceState != null)
-        if (fragment == null) {
-            checkCredential()
-            if (viewModel.request.isSkipFindSensor) {
-                startEnrollingFragment()
-            } else if (viewModel.request.isSkipIntro) {
-                startFindSensorFragment()
-            } else {
-                startIntroFragment()
-            }
-        } else {
-            val tag: String? = fragment.tag
-            if (INTRO_TAG == tag) {
-                attachIntroViewModel()
-            } else if (FIND_SENSOR_TAG == tag) {
-                attachFindSensorViewModel()
-                attachIntroViewModel()
-            } else if (ENROLLING_TAG == tag) {
-                attachEnrollingViewModel()
-                attachFindSensorViewModel()
-                attachIntroViewModel()
-            } else if (FINISH_TAG == tag) {
-                attachFinishViewModel()
-                attachFindSensorViewModel()
-                attachIntroViewModel()
-            } else {
-                Log.e(TAG, "fragment tag $tag not found")
-                finish()
-                return
-            }
-        }
-
-        collectFlows()
-    }
-
-    private fun collectFlows() {
-        lifecycleScope.launch {
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                viewModel.setResultFlow.collect {
-                    Log.d(TAG, "setResultLiveData($it)")
-                    onSetActivityResult(it)
-                }
-            }
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                autoCredentialViewModel.generateChallengeFailedFlow.collect {
-                    Log.d(TAG, "generateChallengeFailedFlow($it)")
-                    onSetActivityResult(ActivityResult(RESULT_CANCELED, null))
-                }
-            }
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                errorDialogViewModel.newDialogFlow.collect {
-                    Log.d(TAG, "newErrorDialogFlow($it)")
-                    FingerprintEnrollErrorDialog.newInstance(it).show(
-                        supportFragmentManager,
-                        ERROR_DIALOG_TAG
-                    )
-                }
-            }
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                errorDialogViewModel.setResultFlow.collect {
-                    Log.d(TAG, "errorDialogSetResultFlow($it)")
-                    when (it) {
-                        FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH -> onSetActivityResult(
-                            ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null)
-                        )
-
-                        FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT -> onSetActivityResult(
-                            ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null)
-                        )
-                    }
-                }
-            }
-        }
-    }
-
-    private fun startFragment(fragmentClass: Class<out Fragment>, tag: String) {
-        if (!isFirstFragmentAdded) {
-            supportFragmentManager.beginTransaction()
-                .setReorderingAllowed(true)
-                .replace(R.id.fragment_container_view, fragmentClass, null, tag)
-                .commit()
-            isFirstFragmentAdded = true
-        } else {
-            supportFragmentManager.beginTransaction()
-                .setReorderingAllowed(true)
-                .setCustomAnimations(
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
-                )
-                .replace(R.id.fragment_container_view, fragmentClass, null, tag)
-                .addToBackStack(tag)
-                .commit()
-        }
-    }
-
-    private fun startIntroFragment() {
-        attachIntroViewModel()
-        startFragment(FingerprintEnrollIntroFragment::class.java, INTRO_TAG)
-    }
-
-    private fun attachIntroViewModel() {
-        val request: EnrollmentRequest = viewModel.request
-        if (request.isSkipIntro || request.isSkipFindSensor) {
-            return
-        }
-        lifecycleScope.launch {
-            repeatOnLifecycle(Lifecycle.State.STARTED) {
-                introViewModel.actionFlow.collect(this@FingerprintEnrollmentActivity::onIntroAction)
-            }
-        }
-    }
-
-    // We need to make sure token is valid before entering find sensor page
-    private fun startFindSensorFragment() {
-        // Always setToken into progressViewModel even it is not necessary action for UDFPS
-        progressViewModel.setToken(autoCredentialViewModel.token)
-        attachFindSensorViewModel()
-        val fragmentClass: Class<out Fragment> = if (viewModel.canAssumeUdfps) {
-            FingerprintEnrollFindUdfpsFragment::class.java
-        } else if (viewModel.canAssumeSfps) {
-            FingerprintEnrollFindSfpsFragment::class.java
-        } else {
-            FingerprintEnrollFindRfpsFragment::class.java
-        }
-        startFragment(fragmentClass, FIND_SENSOR_TAG)
-    }
-
-    private fun attachFindSensorViewModel() {
-        if (viewModel.request.isSkipFindSensor) {
-            return
-        }
-        findSensorViewModel.let {
-            // Clear ActionLiveData in FragmentViewModel to prevent getting previous action during
-            // recreate, like press 'Start' then press 'back' in FingerprintEnrollEnrolling
-            // activity.
-            it.clearActionLiveData()
-            it.actionLiveData.observe(this, findSensorActionObserver)
-        }
-    }
-
-    private fun startEnrollingFragment() {
-        // Always setToken into progressViewModel even it is not necessary action for SFPS or RFPS
-        progressViewModel.setToken(autoCredentialViewModel.token)
-        attachEnrollingViewModel()
-        val fragmentClass: Class<out Fragment> = if (viewModel.canAssumeUdfps) {
-            FingerprintEnrollEnrollingUdfpsFragment::class.java
-        } else if (viewModel.canAssumeSfps) {
-            FingerprintEnrollEnrollingSfpsFragment::class.java
-        } else {
-            FingerprintEnrollEnrollingRfpsFragment::class.java
-        }
-        startFragment(fragmentClass, ENROLLING_TAG)
-    }
-
-    private fun attachEnrollingViewModel() {
-        enrollingViewModel.let {
-            it.clearActionLiveData()
-            it.actionLiveData.observe(this, enrollingActionObserver)
-        }
-    }
-
-    private fun startFinishFragment() {
-        viewModel.isNewFingerprintAdded = true
-        attachFinishViewModel()
-        if (viewModel.request.isSkipFindSensor) {
-            // Set page to Finish
-            supportFragmentManager.beginTransaction()
-                .setReorderingAllowed(true)
-                .setCustomAnimations(
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
-                )
-                .replace(
-                    R.id.fragment_container_view,
-                    FingerprintEnrollFinishFragment::class.java,
-                    null,
-                    FINISH_TAG
-                )
-                .commit()
-        } else {
-            // Remove Enrolling page
-            supportFragmentManager.popBackStack()
-
-            // Remove old Finish page if any
-            if (supportFragmentManager.findFragmentByTag(FINISH_TAG) != null) {
-                supportFragmentManager.popBackStack(FINISH_TAG, POP_BACK_STACK_INCLUSIVE)
-            }
-
-            // Remove FindSensor page if maxEnrolled
-            if (viewModel.isMaxEnrolledReached(autoCredentialViewModel.userId)
-                && supportFragmentManager.findFragmentByTag(FIND_SENSOR_TAG) != null
-            ) {
-                supportFragmentManager.popBackStack(FIND_SENSOR_TAG, POP_BACK_STACK_INCLUSIVE)
-            }
-
-            // Add Finish page
-            supportFragmentManager.beginTransaction()
-                .setReorderingAllowed(true)
-                .setCustomAnimations(
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
-                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
-                )
-                .replace(
-                    R.id.fragment_container_view,
-                    FingerprintEnrollFinishFragment::class.java,
-                    null,
-                    FINISH_TAG
-                )
-                .addToBackStack(FINISH_TAG)
-                .commit()
-        }
-    }
-
-    private fun attachFinishViewModel() {
-        finishViewModel.let {
-            it.clearActionLiveData()
-            it.actionLiveData.observe(this, finishActionObserver)
-        }
-    }
-
-    private fun onSetActivityResult(result: ActivityResult) {
-        val challengeExtras: Bundle? = autoCredentialViewModel.createGeneratingChallengeExtras()
-        val overrideResult: ActivityResult = viewModel.getOverrideActivityResult(
-            result, challengeExtras
-        )
-        if (DEBUG) {
-            Log.d(
-                TAG, "onSetActivityResult(" + result + "), override:" + overrideResult
-                        + ") challengeExtras:" + challengeExtras
-            )
-        }
-        setResult(overrideResult.resultCode, overrideResult.data)
-        finish()
-    }
-
-    private fun checkCredential() {
-        when (autoCredentialViewModel.checkCredential(lifecycleScope)) {
-            CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK -> {
-                val intent: Intent = autoCredentialViewModel.createChooseLockIntent(
-                    this,
-                    viewModel.request.isSuw,
-                    viewModel.request.suwExtras
-                )
-                if (!viewModel.isWaitingActivityResult.compareAndSet(false, true)) {
-                    Log.w(TAG, "chooseLock, fail to set isWaiting flag to true")
-                }
-                chooseLockLauncher.launch(intent)
-                return
-            }
-
-            CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK -> {
-                val launched: Boolean = autoCredentialViewModel.createConfirmLockLauncher(
-                    this,
-                    LAUNCH_CONFIRM_LOCK_ACTIVITY,
-                    getString(R.string.security_settings_fingerprint_preference_title)
-                ).launch()
-                if (!launched) {
-                    // This shouldn't happen, as we should only end up at this step if a lock thingy
-                    // is already set.
-                    Log.e(TAG, "confirmLock, launched is true")
-                    finish()
-                } else if (!viewModel.isWaitingActivityResult.compareAndSet(false, true)) {
-                    Log.w(TAG, "confirmLock, fail to set isWaiting flag to true")
-                }
-                return
-            }
-
-            CredentialAction.CREDENTIAL_VALID,
-            CredentialAction.IS_GENERATING_CHALLENGE -> {}
-        }
-    }
-
-    private fun onChooseOrConfirmLockResult(
-        isChooseLock: Boolean,
-        activityResult: ActivityResult
-    ) {
-        if (!viewModel.isWaitingActivityResult.compareAndSet(true, false)) {
-            Log.w(TAG, "isChooseLock:$isChooseLock, fail to unset waiting flag")
-        }
-        if (!autoCredentialViewModel.generateChallengeAsCredentialActivityResult(
-                isChooseLock,
-                activityResult,
-                lifecycleScope
-            )
-        ) {
-            onSetActivityResult(activityResult)
-        }
-    }
-
-    private fun onIntroAction(action: FingerprintEnrollIntroAction) {
-        Log.d(TAG, "onIntroAction($action)")
-        when (action) {
-            FingerprintEnrollIntroAction.DONE_AND_FINISH -> {
-                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null))
-                return
-            }
-
-            FingerprintEnrollIntroAction.SKIP_OR_CANCEL -> {
-                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
-                return
-            }
-
-            FingerprintEnrollIntroAction.CONTINUE_ENROLL -> {
-                startFindSensorFragment()
-            }
-        }
-    }
-
-    private fun onFindSensorAction(@FingerprintEnrollFindSensorAction action: Int) {
-        when (action) {
-            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP -> {
-                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
-                return
-            }
-
-            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG -> {
-                SkipSetupFindFpsDialog().show(
-                    supportFragmentManager,
-                    SKIP_SETUP_FIND_FPS_DIALOG_TAG
-                )
-                return
-            }
-
-            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START -> {
-                startEnrollingFragment()
-            }
-        }
-    }
-
-    private fun onEnrollingAction(@FingerprintEnrollEnrollingAction action: Int) {
-        when (action) {
-            FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE -> {
-                startFinishFragment()
-            }
-
-            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP -> {
-                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
-            }
-
-            FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG -> {
-                FingerprintEnrollEnrollingIconTouchDialog().show(
-                    supportFragmentManager,
-                    SKIP_SETUP_FIND_FPS_DIALOG_TAG
-                )
-            }
-
-            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED -> {
-                if (supportFragmentManager.backStackEntryCount > 0) {
-                    supportFragmentManager.popBackStack()
-                } else {
-                    onSetActivityResult(ActivityResult(RESULT_CANCELED, null))
-                }
-            }
-        }
-    }
-
-    private fun onFinishAction(@FingerprintEnrollFinishAction action: Int) {
-        when (action) {
-            FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK -> {
-                startEnrollingFragment()
-            }
-
-            FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK -> {
-                val data: Intent? = if (viewModel.request.isSuw) {
-                    Intent().also {
-                        it.putExtras(
-                            viewModel.getSuwFingerprintCountExtra(
-                                autoCredentialViewModel.userId
-                            )
-                        )
-                    }
-                } else {
-                    null
-                }
-                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_FINISHED, data))
-            }
-        }
-    }
-
-    override fun onPause() {
-        super.onPause()
-        viewModel.checkFinishActivityDuringOnPause(
-            isFinishing,
-            isChangingConfigurations,
-            lifecycleScope
-        )
-    }
-
-    override fun onDestroy() {
-        viewModel.updateFingerprintSuggestionEnableState(autoCredentialViewModel.userId)
-        super.onDestroy()
-    }
-
-    override fun onApplyThemeResource(theme: Theme, @StyleRes resid: Int, first: Boolean) {
-        theme.applyStyle(R.style.SetupWizardPartnerResource, true)
-        super.onApplyThemeResource(theme, resid, first)
-    }
-
-    @Deprecated("Deprecated in Java")
-    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
-        if (requestCode == LAUNCH_CONFIRM_LOCK_ACTIVITY) {
-            onChooseOrConfirmLockResult(false, ActivityResult(resultCode, data))
-            return
-        }
-        super.onActivityResult(requestCode, resultCode, data)
-    }
-
-    override val defaultViewModelCreationExtras: CreationExtras
-        get() = MutableCreationExtras(super.defaultViewModelCreationExtras).also {
-            it[CHALLENGE_GENERATOR_KEY] = FingerprintChallengeGenerator(
-                featureFactory.biometricsRepositoryProvider.getFingerprintRepository(application)!!
-            )
-            it[ENROLLMENT_REQUEST_KEY] =
-                EnrollmentRequest(intent, applicationContext, this is SetupActivity)
-            it[CREDENTIAL_MODEL_KEY] =
-                CredentialModel(intent.extras, SystemClock.elapsedRealtimeClock())
-        }
-
-    override val defaultViewModelProviderFactory: ViewModelProvider.Factory
-        get() = BiometricsViewModelFactory()
-
-    override fun onAttachedToWindow() {
-        super.onAttachedToWindow()
-        window.statusBarColor = backgroundColor
-    }
-
-    @get:ColorInt
-    private val backgroundColor: Int
-        get() {
-            val stateList: ColorStateList? =
-                Utils.getColorAttr(this, android.R.attr.windowBackground)
-            return stateList?.defaultColor ?: Color.TRANSPARENT
-        }
-
-    override fun onConfigurationChanged(newConfig: Configuration) {
-        viewModelProvider[DeviceFoldedViewModel::class.java].onConfigurationChanged(newConfig)
-        super.onConfigurationChanged(newConfig)
-    }
-
-    companion object {
-        private const val DEBUG = false
-        private const val TAG = "FingerprintEnrollmentActivity"
-        protected const val LAUNCH_CONFIRM_LOCK_ACTIVITY = 1
-
-        private const val INTRO_TAG = "intro"
-        private const val FIND_SENSOR_TAG = "find-sensor"
-        private const val ENROLLING_TAG = "enrolling"
-        private const val FINISH_TAG = "finish"
-        private const val SKIP_SETUP_FIND_FPS_DIALOG_TAG = "skip-setup-dialog"
-        private const val ERROR_DIALOG_TAG = "error-dialog"
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt b/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt
deleted file mode 100644
index 756f309..0000000
--- a/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.app.Activity
-import android.text.TextUtils
-import android.view.View
-import androidx.annotation.StringRes
-import com.google.android.setupdesign.GlifLayout
-
-/**
- * Utils class for GlifLayout
- */
-class GlifLayoutHelper(val activity: Activity, val glifLayout: GlifLayout) {
-
-    /**
-     * Sets header text to GlifLayout
-     */
-    fun setHeaderText(@StringRes textResId: Int) {
-        val layoutTitle = glifLayout.headerTextView
-        val previousTitle = layoutTitle.text
-        val title = activity.getText(textResId)
-        if (previousTitle !== title) {
-            if (!TextUtils.isEmpty(previousTitle)) {
-                layoutTitle.accessibilityLiveRegion = View.ACCESSIBILITY_LIVE_REGION_POLITE
-            }
-            glifLayout.headerText = title
-            glifLayout.headerTextView.contentDescription = title
-            activity.title = title
-        }
-    }
-
-    /**
-     * Sets description text to GlifLayout
-     */
-    fun setDescriptionText(description: CharSequence?) {
-        val previousDescription = glifLayout.descriptionText
-        // Prevent a11y for re-reading the same string
-        if (!TextUtils.equals(previousDescription, description)) {
-            glifLayout.descriptionText = description
-        }
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt b/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt
deleted file mode 100644
index bb74e36..0000000
--- a/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.biometrics2.ui.view
-
-import android.app.Dialog
-import android.content.Context
-import android.content.DialogInterface
-import android.os.Bundle
-import androidx.appcompat.app.AlertDialog
-import androidx.fragment.app.DialogFragment
-import androidx.lifecycle.ViewModelProvider
-import com.android.settings.R
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
-
-/**
- * Skip dialog which shows when user clicks "Do it later" button in FingerprintFindSensor page.
- */
-class SkipSetupFindFpsDialog : DialogFragment() {
-
-    private var mViewModel: FingerprintEnrollFindSensorViewModel? = null
-
-    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog =
-        requireActivity().bindSkipSetupFindFpsDialog {
-            _: DialogInterface?, _: Int -> mViewModel?.onSkipDialogButtonClick()
-        }
-
-    override fun onAttach(context: Context) {
-        mViewModel = ViewModelProvider(requireActivity())[
-            FingerprintEnrollFindSensorViewModel::class.java
-        ]
-        super.onAttach(context)
-    }
-}
-
-fun Context.bindSkipSetupFindFpsDialog(
-    positiveButtonClickListener: DialogInterface.OnClickListener
-): AlertDialog =
-    AlertDialog.Builder(this, R.style.Theme_AlertDialog)
-        .setTitle(R.string.setup_fingerprint_enroll_skip_title)
-        .setPositiveButton(R.string.skip_anyway_button_label, positiveButtonClickListener)
-        .setNegativeButton(R.string.go_back_button_label, null)
-        .setMessage(R.string.setup_fingerprint_enroll_skip_after_adding_lock_text)
-        .create()
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt
deleted file mode 100644
index 95aee4b..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt
+++ /dev/null
@@ -1,283 +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.biometrics2.ui.viewmodel
-
-import android.app.Activity
-import android.app.Application
-import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
-import android.content.Context
-import android.content.Intent
-import android.os.Bundle
-import android.util.Log
-import androidx.activity.result.ActivityResult
-import androidx.lifecycle.AndroidViewModel
-import com.android.internal.widget.LockPatternUtils
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.BiometricUtils
-import com.android.settings.biometrics.BiometricUtils.GatekeeperCredentialNotMatchException
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.CredentialModel
-import com.android.settings.password.ChooseLockGeneric
-import com.android.settings.password.ChooseLockPattern
-import com.android.settings.password.ChooseLockSettingsHelper
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-import kotlinx.coroutines.launch
-
-/**
- * AutoCredentialViewModel which uses CredentialModel to determine next actions for activity, like
- * start ChooseLockActivity, start ConfirmLockActivity, GenerateCredential, or do nothing.
- */
-class AutoCredentialViewModel(
-    application: Application,
-    private val lockPatternUtils: LockPatternUtils,
-    private val challengeGenerator: ChallengeGenerator,
-    private val credentialModel: CredentialModel
-) : AndroidViewModel(application) {
-
-    /**
-     * Generic callback for FingerprintManager#generateChallenge or FaceManager#generateChallenge
-     */
-    interface GenerateChallengeCallback {
-        /** Generic generateChallenge method for FingerprintManager or FaceManager */
-        fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long)
-    }
-
-    /**
-     * A generic interface class for calling different generateChallenge from FingerprintManager or
-     * FaceManager
-     */
-    interface ChallengeGenerator {
-
-        /** Callback that will be called later after challenge generated */
-        var callback: GenerateChallengeCallback?
-
-        /** Method for generating challenge from FingerprintManager or FaceManager */
-        fun generateChallenge(userId: Int)
-    }
-
-    /** Used to generate challenge through FingerprintRepository */
-    class FingerprintChallengeGenerator(
-        private val fingerprintRepository: FingerprintRepository
-    ) : ChallengeGenerator {
-
-        override var callback: GenerateChallengeCallback? = null
-
-        override fun generateChallenge(userId: Int) {
-            callback?.let {
-                fingerprintRepository.generateChallenge(userId) {
-                        sensorId: Int, uid: Int, challenge: Long ->
-                    it.onChallengeGenerated(sensorId, uid, challenge)
-                }
-            } ?:run {
-                Log.e(TAG, "generateChallenge, null callback")
-            }
-        }
-
-        companion object {
-            private const val TAG = "FingerprintChallengeGenerator"
-        }
-    }
-
-    private val _generateChallengeFailedFlow = MutableSharedFlow<Boolean>()
-    val generateChallengeFailedFlow: SharedFlow<Boolean>
-        get() = _generateChallengeFailedFlow.asSharedFlow()
-
-
-    // flag if token is generating through checkCredential()'s generateChallenge()
-    private var isGeneratingChallengeDuringCheckingCredential = false
-
-    /** Get bundle which passing back to FingerprintSettings for late generateChallenge() */
-    fun createGeneratingChallengeExtras(): Bundle? {
-        if (!isGeneratingChallengeDuringCheckingCredential
-            || !credentialModel.isValidToken
-            || !credentialModel.isValidChallenge
-        ) {
-            return null
-        }
-        val bundle = Bundle()
-        bundle.putByteArray(
-            ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
-            credentialModel.token
-        )
-        bundle.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, credentialModel.challenge)
-        return bundle
-    }
-
-    /** Check credential status for biometric enrollment. */
-    fun checkCredential(scope: CoroutineScope): CredentialAction {
-        return if (isValidCredential) {
-            CredentialAction.CREDENTIAL_VALID
-        } else if (isUnspecifiedPassword) {
-            CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK
-        } else if (credentialModel.isValidGkPwHandle) {
-            val gkPwHandle = credentialModel.gkPwHandle
-            credentialModel.clearGkPwHandle()
-            // GkPwHandle is got through caller activity, we shall not revoke it after
-            // generateChallenge(). Let caller activity to make decision.
-            generateChallenge(gkPwHandle, false, scope)
-            isGeneratingChallengeDuringCheckingCredential = true
-            CredentialAction.IS_GENERATING_CHALLENGE
-        } else {
-            CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK
-        }
-    }
-
-    private fun generateChallenge(
-        gkPwHandle: Long,
-        revokeGkPwHandle: Boolean,
-        scope: CoroutineScope
-    ) {
-        challengeGenerator.callback = object : GenerateChallengeCallback {
-            override fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long) {
-                var illegalStateExceptionCaught = false
-                try {
-                    val newToken = requestGatekeeperHat(gkPwHandle, challenge, userId)
-                    credentialModel.challenge = challenge
-                    credentialModel.token = newToken
-                } catch (e: IllegalStateException) {
-                    Log.e(TAG, "generateChallenge, IllegalStateException", e)
-                    illegalStateExceptionCaught = true
-                } finally {
-                    if (revokeGkPwHandle) {
-                        lockPatternUtils.removeGatekeeperPasswordHandle(gkPwHandle)
-                    }
-                    Log.d(
-                        TAG,
-                        "generateChallenge(), model:$credentialModel"
-                                + ", revokeGkPwHandle:$revokeGkPwHandle"
-                    )
-                    // Check credential again
-                    if (!isValidCredential || illegalStateExceptionCaught) {
-                        Log.w(TAG, "generateChallenge, invalid Credential or IllegalStateException")
-                        scope.launch {
-                            _generateChallengeFailedFlow.emit(true)
-                        }
-                    }
-                }
-            }
-        }
-        challengeGenerator.generateChallenge(userId)
-    }
-
-    private val isValidCredential: Boolean
-        get() = !isUnspecifiedPassword && credentialModel.isValidToken
-
-    private val isUnspecifiedPassword: Boolean
-        get() = lockPatternUtils.getActivePasswordQuality(userId) == PASSWORD_QUALITY_UNSPECIFIED
-
-    /**
-     * Handle activity result from ChooseLockGeneric, ConfirmLockPassword, or ConfirmLockPattern
-     * @param isChooseLock true if result is coming from ChooseLockGeneric. False if result is
-     * coming from ConfirmLockPassword or ConfirmLockPattern
-     * @param result activity result
-     * @return if it is a valid result and viewModel is generating challenge
-     */
-    fun generateChallengeAsCredentialActivityResult(
-        isChooseLock: Boolean,
-        result: ActivityResult,
-        scope: CoroutineScope
-    ): Boolean {
-        if ((isChooseLock && result.resultCode == ChooseLockPattern.RESULT_FINISHED) ||
-            (!isChooseLock && result.resultCode == Activity.RESULT_OK)) {
-            result.data?.let {
-                val gkPwHandle = it.getLongExtra(
-                    ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE,
-                    CredentialModel.INVALID_GK_PW_HANDLE
-                )
-                // Revoke self requested GkPwHandle because it shall only used once inside this
-                // activity lifecycle.
-                generateChallenge(gkPwHandle, true, scope)
-                return true
-            }
-        }
-        return false
-    }
-
-    val userId: Int
-        get() = credentialModel.userId
-
-    val token: ByteArray?
-        get() = credentialModel.token
-
-    @Throws(IllegalStateException::class)
-    private fun requestGatekeeperHat(gkPwHandle: Long, challenge: Long, userId: Int): ByteArray? {
-        val response = lockPatternUtils
-            .verifyGatekeeperPasswordHandle(gkPwHandle, challenge, userId)
-        if (!response.isMatched) {
-            throw GatekeeperCredentialNotMatchException("Unable to request Gatekeeper HAT")
-        }
-        return response.gatekeeperHAT
-    }
-
-    /** Create Intent for choosing lock */
-    fun createChooseLockIntent(
-        context: Context, isSuw: Boolean,
-        suwExtras: Bundle
-    ): Intent {
-        val intent = BiometricUtils.getChooseLockIntent(
-            context, isSuw,
-            suwExtras
-        )
-        intent.putExtra(
-            ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS,
-            true
-        )
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true)
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true)
-        if (credentialModel.isValidUserId) {
-            intent.putExtra(Intent.EXTRA_USER_ID, credentialModel.userId)
-        }
-        return intent
-    }
-
-    /** Create ConfirmLockLauncher */
-    fun createConfirmLockLauncher(
-        activity: Activity,
-        requestCode: Int, title: String
-    ): ChooseLockSettingsHelper {
-        val builder = ChooseLockSettingsHelper.Builder(activity)
-        builder.setRequestCode(requestCode)
-            .setTitle(title)
-            .setRequestGatekeeperPasswordHandle(true)
-            .setForegroundOnly(true)
-            .setReturnCredentials(true)
-        if (credentialModel.isValidUserId) {
-            builder.setUserId(credentialModel.userId)
-        }
-        return builder.build()
-    }
-
-    companion object {
-        private const val TAG = "AutoCredentialViewModel"
-    }
-}
-
-enum class CredentialAction {
-
-    CREDENTIAL_VALID,
-
-    /** Valid credential, activity does nothing. */
-    IS_GENERATING_CHALLENGE,
-
-    /** This credential looks good, but still need to run generateChallenge(). */
-    FAIL_NEED_TO_CHOOSE_LOCK,
-
-    /** Need activity to run confirm lock */
-    FAIL_NEED_TO_CONFIRM_LOCK
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModel.java
deleted file mode 100644
index 7dc1328..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModel.java
+++ /dev/null
@@ -1,74 +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.biometrics2.ui.viewmodel;
-
-import android.content.res.Configuration;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-import androidx.lifecycle.ViewModel;
-
-import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
-import com.android.systemui.unfold.updates.FoldProvider;
-
-import java.util.concurrent.Executor;
-
-/**
- * ViewModel explaining the fingerprint sensor location for fingerprint enrollment.
- */
-public class DeviceFoldedViewModel extends ViewModel {
-
-    private static final String TAG = "DeviceFoldedViewModel";
-
-    @NonNull private final MutableLiveData<Boolean> mLiveData =
-            new MutableLiveData<>(null);
-
-    private final ScreenSizeFoldProvider mScreenSizeFoldProvider;
-    private final FoldProvider.FoldCallback mIsFoldedCallback = isFolded -> {
-        Log.d(TAG, "onFoldUpdated= " + isFolded);
-        mLiveData.postValue(isFolded);
-    };
-
-    public DeviceFoldedViewModel(@NonNull ScreenSizeFoldProvider screenSizeFoldProvider,
-            @NonNull Executor executor) {
-        super();
-        mScreenSizeFoldProvider = screenSizeFoldProvider;
-        mScreenSizeFoldProvider.registerCallback(mIsFoldedCallback, executor);
-    }
-
-    /**
-     * Calls this method when activity gets configuration change
-     */
-    public void onConfigurationChanged(@NonNull Configuration newConfig) {
-        mScreenSizeFoldProvider.onConfigurationChange(newConfig);
-    }
-
-    /**
-     * Returns FoldedLiveData
-     */
-    public LiveData<Boolean> getLiveData() {
-        return mLiveData;
-    }
-
-    @Override
-    protected void onCleared() {
-        mScreenSizeFoldProvider.unregisterCallback(mIsFoldedCallback);
-        super.onCleared();
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java
deleted file mode 100644
index 07fe275..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.display.DisplayManager.DisplayListener;
-
-import android.app.Application;
-import android.hardware.display.DisplayManager;
-import android.util.Log;
-import android.view.DisplayInfo;
-import android.view.Surface;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-/**
- * ViewModel explaining the fingerprint sensor location for fingerprint enrollment.
- */
-public class DeviceRotationViewModel extends AndroidViewModel {
-
-    private static final boolean DEBUG = false;
-    private static final String TAG = "DeviceRotationViewModel";
-
-    private final DisplayManager mDisplayManager;
-    private final boolean mIsReverseDefaultRotation;
-    @NonNull private final DisplayInfo mDisplayInfo = new DisplayInfo();
-
-    /** {@link android.hardware.display.DisplayManager} is a final class, set this member visibility
-     * to 'protected' for testing
-     */
-    @VisibleForTesting
-    protected final DisplayListener mDisplayListener = new DisplayListener() {
-        @Override
-        public void onDisplayAdded(int displayId) {
-        }
-
-        @Override
-        public void onDisplayRemoved(int displayId) {
-        }
-
-        @Override
-        public void onDisplayChanged(int displayId) {
-            final int rotation = getRotation();
-            Log.d(TAG, "onDisplayChanged(" + displayId + "), rotation:" + rotation);
-            mLiveData.postValue(rotation);
-        }
-    };
-
-    @NonNull private final MutableLiveData<Integer> mLiveData = new MutableLiveData<>();
-
-    public DeviceRotationViewModel(@NonNull Application application) {
-        super(application);
-        mDisplayManager = application.getSystemService(DisplayManager.class);
-        mDisplayManager.registerDisplayListener(mDisplayListener,
-                application.getMainThreadHandler());
-        mIsReverseDefaultRotation = application.getResources().getBoolean(
-                com.android.internal.R.bool.config_reverseDefaultRotation);
-    }
-
-    /**
-     * Returns current rotation.
-     *
-     * {@link android.view.Display} is a final class, set this method visibility to "protected" for
-     * inheriting it in test
-     */
-    @VisibleForTesting
-    @Surface.Rotation
-    protected int getRotation() {
-        getApplication().getDisplay().getDisplayInfo(mDisplayInfo);
-        if (mIsReverseDefaultRotation) {
-            return (mDisplayInfo.rotation + 1) % 4;
-        } else {
-            return mDisplayInfo.rotation;
-        }
-    }
-
-    /**
-     * Returns RotationLiveData
-     */
-    public LiveData<Integer> getLiveData() {
-        final Integer lastRotation = mLiveData.getValue();
-        @Surface.Rotation int newRotation = getRotation();
-        if (lastRotation == null || lastRotation != newRotation) {
-            Log.d(TAG, "getLiveData, update rotation from " + lastRotation + " to " + newRotation);
-            mLiveData.setValue(newRotation);
-        }
-        return mLiveData;
-    }
-
-    @Override
-    protected void onCleared() {
-        mDisplayManager.unregisterDisplayListener(mDisplayListener);
-        super.onCleared();
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
deleted file mode 100644
index eba6a15..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
+++ /dev/null
@@ -1,248 +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.biometrics2.ui.viewmodel;
-
-import android.annotation.IntDef;
-import android.app.Application;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.os.VibrationAttributes;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
-import android.util.Log;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * ViewModel explaining the fingerprint enrolling page
- */
-public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
-
-    private static final String TAG = FingerprintEnrollEnrollingViewModel.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    private static final VibrationEffect VIBRATE_EFFECT_ERROR =
-            VibrationEffect.createWaveform(new long[]{0, 5, 55, 60}, -1);
-    private static final VibrationAttributes FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES =
-            VibrationAttributes.createForUsage(VibrationAttributes.USAGE_ACCESSIBILITY);
-
-    /**
-     * Enrolling finished
-     */
-    public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE = 0;
-
-    /**
-     * Icon touch dialog show
-     */
-    public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG = 1;
-
-    /**
-     * Has got latest cancelled event due to user skip
-     */
-    public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP = 2;
-
-    /**
-     * Has got latest cancelled event due to back key
-     */
-    public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED = 3;
-
-    @IntDef(prefix = { "FINGERPRINT_ENROLL_ENROLLING_ACTION_" }, value = {
-            FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE,
-            FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG,
-            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FingerprintEnrollEnrollingAction {}
-
-    private final int mUserId;
-    private boolean mOnBackPressed;
-    private boolean mOnSkipPressed;
-    @NonNull private final FingerprintRepository mFingerprintRepository;
-    private final AccessibilityManager mAccessibilityManager;
-    private final Vibrator mVibrator;
-
-    private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-
-    public FingerprintEnrollEnrollingViewModel(
-            @NonNull Application application,
-            int userId,
-            @NonNull FingerprintRepository fingerprintRepository
-    ) {
-        super(application);
-        mUserId = userId;
-        mFingerprintRepository = fingerprintRepository;
-        mAccessibilityManager = application.getSystemService(AccessibilityManager.class);
-        mVibrator = application.getSystemService(Vibrator.class);
-    }
-
-    public LiveData<Integer> getActionLiveData() {
-        return mActionLiveData;
-    }
-
-    /**
-     * Clears action live data
-     */
-    public void clearActionLiveData() {
-        mActionLiveData.setValue(null);
-    }
-
-    public boolean getOnSkipPressed() {
-        return mOnSkipPressed;
-    }
-
-    /**
-     * User clicks skip button
-     */
-    public void setOnSkipPressed() {
-        mOnSkipPressed = true;
-    }
-
-    /**
-     * Enrolling is cancelled because user clicks skip
-     */
-    public void onCancelledDueToOnSkipPressed() {
-        final int action = FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
-        if (DEBUG) {
-            Log.d(TAG, "onSkipButtonClick, post action " + action);
-        }
-        mOnSkipPressed = false;
-        mActionLiveData.postValue(action);
-    }
-
-    /**
-     * Is enrolling finished
-     */
-    public void onEnrollingDone() {
-        final int action = FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE;
-        if (DEBUG) {
-            Log.d(TAG, "onEnrollingDone, post action " + action);
-        }
-        mActionLiveData.postValue(action);
-    }
-
-    public boolean getOnBackPressed() {
-        return mOnBackPressed;
-    }
-
-    /**
-     * Back key is pressed.
-     */
-    public void setOnBackPressed() {
-        mOnBackPressed = true;
-    }
-
-    /**
-     * Enrollment is cancelled because back key is pressed.
-     */
-    public void onCancelledDueToOnBackPressed() {
-        final int action = FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
-        if (DEBUG) {
-            Log.d(TAG, "onCancelledEventReceivedAfterOnBackPressed, post action " + action);
-        }
-        mOnBackPressed = false;
-        mActionLiveData.postValue(action);
-    }
-
-    /**
-     * Icon touch dialog show
-     */
-    public void showIconTouchDialog() {
-        final int action = FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
-        if (DEBUG) {
-            Log.d(TAG, "onIconTouchDialogShow, post action " + action);
-        }
-        mActionLiveData.postValue(action);
-    }
-
-    /**
-     * get enroll stage threshold
-     */
-    public float getEnrollStageThreshold(int index) {
-        return mFingerprintRepository.getEnrollStageThreshold(index);
-    }
-
-    /**
-     * Get enroll stage count
-     */
-    public int getEnrollStageCount() {
-        return mFingerprintRepository.getEnrollStageCount();
-    }
-
-    /**
-     * Requests interruption of the accessibility feedback from all accessibility services.
-     */
-    public void clearTalkback() {
-        mAccessibilityManager.interrupt();
-    }
-
-    /**
-     * Returns if the {@link AccessibilityManager} is enabled.
-     *
-     * @return True if this {@link AccessibilityManager} is enabled, false otherwise.
-     */
-    public boolean isAccessibilityEnabled() {
-        return mAccessibilityManager.isEnabled();
-    }
-
-    /**
-     * Sends an {@link AccessibilityEvent}.
-     */
-    public void sendAccessibilityEvent(CharSequence announcement) {
-        AccessibilityEvent e = AccessibilityEvent.obtain();
-        e.setEventType(AccessibilityEvent.TYPE_ANNOUNCEMENT);
-        e.setClassName(getClass().getName());
-        e.setPackageName(getApplication().getPackageName());
-        e.getText().add(announcement);
-        mAccessibilityManager.sendAccessibilityEvent(e);
-    }
-
-     /**
-     * Returns if the touch exploration in the system is enabled.
-     *
-     * @return True if touch exploration is enabled, false otherwise.
-     */
-    public boolean isTouchExplorationEnabled() {
-        return mAccessibilityManager.isTouchExplorationEnabled();
-    }
-
-    /**
-     * Like {@link #vibrate(VibrationEffect, VibrationAttributes)}, but allows the
-     * caller to specify the vibration is owned by someone else and set a reason for vibration.
-     */
-    public void vibrateError(String reason) {
-        mVibrator.vibrate(mUserId, getApplication().getOpPackageName(),
-                VIBRATE_EFFECT_ERROR, reason, FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
-    }
-
-    /**
-     * Gets the first FingerprintSensorPropertiesInternal from FingerprintManager
-     */
-    @Nullable
-    public FingerprintSensorPropertiesInternal getFirstFingerprintSensorPropertiesInternal() {
-        return mFingerprintRepository.getFirstFingerprintSensorPropertiesInternal();
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt
deleted file mode 100644
index b154fe7..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.android.settings.biometrics2.ui.viewmodel
-
-import android.app.Application
-import androidx.lifecycle.AndroidViewModel
-import kotlinx.atomicfu.AtomicBoolean
-import kotlinx.atomicfu.atomic
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-
-class FingerprintEnrollErrorDialogViewModel(
-    application: Application,
-    val isSuw: Boolean
-): AndroidViewModel(application) {
-
-    private val _isDialogShown: AtomicBoolean = atomic(false)
-    val isDialogShown: Boolean
-        get() = _isDialogShown.value
-
-    private val _newDialogFlow = MutableSharedFlow<Int>()
-    val newDialogFlow: SharedFlow<Int>
-        get() = _newDialogFlow.asSharedFlow()
-
-    private val _triggerRetryFlow = MutableSharedFlow<Any>()
-    val triggerRetryFlow: SharedFlow<Any>
-        get() = _triggerRetryFlow.asSharedFlow()
-
-    private val _setResultFlow = MutableSharedFlow<FingerprintErrorDialogSetResultAction>()
-    val setResultFlow: SharedFlow<FingerprintErrorDialogSetResultAction>
-        get() = _setResultFlow.asSharedFlow()
-
-    suspend fun newDialog(errorMsgId: Int) {
-        _isDialogShown.compareAndSet(expect = false, update = true)
-        _newDialogFlow.emit(errorMsgId)
-    }
-
-    suspend fun triggerRetry() {
-        _isDialogShown.compareAndSet(expect = true, update = false)
-        _triggerRetryFlow.emit(Any())
-    }
-
-    suspend fun setResultAndFinish(action: FingerprintErrorDialogSetResultAction) {
-        _isDialogShown.compareAndSet(expect = true, update = false)
-        _setResultFlow.emit(action)
-    }
-}
-
-enum class FingerprintErrorDialogSetResultAction {
-    FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH,
-    FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModel.java
deleted file mode 100644
index 00c67c4..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModel.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import android.annotation.IntDef;
-import android.app.Application;
-import android.util.Log;
-import android.view.accessibility.AccessibilityManager;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * ViewModel explaining the fingerprint sensor location for fingerprint enrollment.
- */
-public class FingerprintEnrollFindSensorViewModel extends AndroidViewModel {
-
-    private static final boolean DEBUG = false;
-    private static final String TAG = "FingerprintEnrollFindSensorViewModel";
-
-    /**
-     * User clicks 'Skip' button on this page in Settings
-     */
-    public static final int FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP = 0;
-
-    /**
-     * User clicks 'Skip' button on this page in SetupWizard flow
-     */
-    public static final int FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG = 1;
-
-    /**
-     * User clicks 'Start' button on this page
-     */
-    public static final int FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START = 2;
-
-    @IntDef(prefix = { "FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_" }, value = {
-            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP,
-            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG,
-            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FingerprintEnrollFindSensorAction {}
-
-    private final AccessibilityManager mAccessibilityManager;
-
-    private final boolean mIsSuw;
-    @NonNull private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-
-    public FingerprintEnrollFindSensorViewModel(@NonNull Application application, boolean isSuw) {
-        super(application);
-        mAccessibilityManager = application.getSystemService(AccessibilityManager.class);
-        mIsSuw = isSuw;
-    }
-
-    /**
-     * Returns action live data that user chooses
-     */
-    public LiveData<Integer> getActionLiveData() {
-        return mActionLiveData;
-    }
-
-    /**
-     * Clear ActionLiveData to prevent get obsolete data
-     */
-    public void clearActionLiveData() {
-        mActionLiveData.setValue(null);
-    }
-
-    /**
-     * User clicks skip button on dialog
-     */
-    public void onSkipDialogButtonClick() {
-        final int action = FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
-        if (DEBUG) {
-            Log.d(TAG, "onSkipDialogButtonClick, post " + action);
-        }
-        mActionLiveData.postValue(action);
-    }
-
-    /**
-     * User clicks skip button
-     */
-    public void onSkipButtonClick() {
-        final int action = mIsSuw
-                ? FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG
-                : FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
-        if (DEBUG) {
-            Log.d(TAG, "onSkipButtonClick, post action " + action);
-        }
-        mActionLiveData.postValue(action);
-    }
-
-    /**
-     * User clicks start button
-     */
-    public void onStartButtonClick() {
-        final int action = FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START;
-        if (DEBUG) {
-            Log.d(TAG, "onStartButtonClick, post action " + action);
-        }
-        mActionLiveData.postValue(action);
-    }
-
-    /**
-     * Returns the info about accessibility is enabled or not
-     */
-    public boolean isAccessibilityEnabled() {
-        return mAccessibilityManager.isEnabled();
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModel.java
deleted file mode 100644
index ae67f74..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModel.java
+++ /dev/null
@@ -1,129 +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.biometrics2.ui.viewmodel;
-
-import android.annotation.IntDef;
-import android.app.Application;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Finish ViewModel handles the state of the fingerprint renroll final stage
- */
-public class FingerprintEnrollFinishViewModel extends AndroidViewModel {
-
-    private static final String TAG = FingerprintEnrollFinishViewModel.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    /**
-     * User clicks "Add" button
-     */
-    public static final int FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK = 0;
-
-    /**
-     * User clicks "Next" button
-     */
-    public static final int FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK = 1;
-
-    @IntDef(prefix = { "FINGERPRINT_ENROLL_FINISH_ACTION_" }, value = {
-            FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK,
-            FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FingerprintEnrollFinishAction {}
-
-    @NonNull private final FingerprintRepository mFingerprintRepository;
-    @NonNull private final EnrollmentRequest mRequest;
-    private final int mUserId;
-
-    private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-
-    public FingerprintEnrollFinishViewModel(@NonNull Application application, int userId,
-            @NonNull EnrollmentRequest request,
-            @NonNull FingerprintRepository fingerprintRepository) {
-        super(application);
-        mUserId = userId;
-        mRequest = request;
-        mFingerprintRepository = fingerprintRepository;
-    }
-
-    @NonNull
-    public EnrollmentRequest getRequest() {
-        return mRequest;
-    }
-
-    /**
-     * The first sensor type is Side fps sensor or not
-     */
-    public boolean canAssumeSfps() {
-        return mFingerprintRepository.canAssumeSfps();
-    }
-
-    /**
-     * Device allows user to enroll another fingerprint or not.
-     */
-    public boolean isAnotherFingerprintEnrollable() {
-        return mFingerprintRepository.getNumOfEnrolledFingerprintsSize(mUserId)
-                < mFingerprintRepository.getMaxFingerprints();
-    }
-
-    /**
-     * Clear action LiveData
-     */
-    public void clearActionLiveData() {
-        mActionLiveData.setValue(null);
-    }
-
-    /**
-     * Get action LiveData
-     */
-    public LiveData<Integer> getActionLiveData() {
-        return mActionLiveData;
-    }
-
-    /**
-     * Handle add button Click
-     */
-    public void onAddButtonClick() {
-        final int action = FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK;
-        if (DEBUG) {
-            Log.d(TAG, "onAddButtonClick post(" + action + ")");
-        }
-        mActionLiveData.postValue(action);
-    }
-
-    /**
-     * Handle next button Click
-     */
-    public void onNextButtonClick() {
-        final int action = FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK;
-        if (DEBUG) {
-            Log.d(TAG, "onNextButtonClick post(" + action + ")");
-        }
-        mActionLiveData.postValue(action);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt
deleted file mode 100644
index 98137b4..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt
+++ /dev/null
@@ -1,138 +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.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.util.Log
-import androidx.lifecycle.AndroidViewModel
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.CONTINUE_ENROLL
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.DONE_AND_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.SKIP_OR_CANCEL
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.launch
-
-/** Fingerprint intro onboarding page view model implementation */
-class FingerprintEnrollIntroViewModel(
-    application: Application,
-    private val fingerprintRepository: FingerprintRepository,
-    val request: EnrollmentRequest,
-    private val userId: Int
-) : AndroidViewModel(application) {
-
-    /** User's action flow (like clicking Agree, Skip, or Done) */
-    private val _actionFlow = MutableSharedFlow<FingerprintEnrollIntroAction>()
-    val actionFlow: SharedFlow<FingerprintEnrollIntroAction>
-        get() = _actionFlow.asSharedFlow()
-
-    private fun getEnrollableStatus(): FingerprintEnrollable {
-        val num = fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId)
-        val max =
-            if (request.isSuw && !request.isAfterSuwOrSuwSuggestedAction)
-                fingerprintRepository.getMaxFingerprintsInSuw(
-                    getApplication<Application>().resources
-                )
-            else
-                fingerprintRepository.maxFingerprints
-        return if (num >= max)
-            FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-        else
-            FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
-    }
-
-    private val hasScrolledToBottomFlow = MutableStateFlow(HAS_SCROLLED_TO_BOTTOM_DEFAULT)
-    private val enrollableStatusFlow = MutableStateFlow(getEnrollableStatus())
-
-    /** Enrollable status and hasScrollToBottom live data */
-    val pageStatusFlow: Flow<FingerprintEnrollIntroStatus> =
-        hasScrolledToBottomFlow.combine(enrollableStatusFlow) {
-            hasScrolledToBottom: Boolean, enrollableStatus: FingerprintEnrollable ->
-            FingerprintEnrollIntroStatus(hasScrolledToBottom, enrollableStatus)
-        }
-
-    fun updateEnrollableStatus(scope: CoroutineScope) {
-        scope.launch {
-            enrollableStatusFlow.emit(getEnrollableStatus())
-        }
-    }
-
-    /** The first sensor type is UDFPS sensor or not */
-    val canAssumeUdfps: Boolean
-        get() = fingerprintRepository.canAssumeUdfps()
-
-    /** Update onboarding intro page has scrolled to bottom */
-    fun setHasScrolledToBottom(value: Boolean, scope: CoroutineScope) {
-        scope.launch {
-            hasScrolledToBottomFlow.emit(value)
-        }
-    }
-
-    /** Get parental consent required or not during enrollment process */
-    val isParentalConsentRequired: Boolean
-        get() = fingerprintRepository.isParentalConsentRequired(getApplication())
-
-    /** Get fingerprint is disable by admin or not */
-    val isBiometricUnlockDisabledByAdmin: Boolean
-        get() = fingerprintRepository.isDisabledByAdmin(getApplication(), userId)
-
-    /**
-     * User clicks next button
-     */
-    fun onNextButtonClick(scope: CoroutineScope) {
-        scope.launch {
-            when (val status = enrollableStatusFlow.value) {
-                FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX ->
-                    _actionFlow.emit(DONE_AND_FINISH)
-
-                FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK ->
-                    _actionFlow.emit(CONTINUE_ENROLL)
-
-                else -> Log.w(TAG, "fail to click next, enrolled:$status")
-            }
-        }
-    }
-
-    /** User clicks skip/cancel button */
-    fun onSkipOrCancelButtonClick(scope: CoroutineScope) {
-        scope.launch {
-            _actionFlow.emit(SKIP_OR_CANCEL)
-        }
-    }
-
-    companion object {
-        private const val TAG = "FingerprintEnrollIntroViewModel"
-        private const val HAS_SCROLLED_TO_BOTTOM_DEFAULT = false
-        private val ENROLLABLE_STATUS_DEFAULT = FingerprintEnrollable.FINGERPRINT_ENROLLABLE_UNKNOWN
-    }
-}
-
-enum class FingerprintEnrollIntroAction {
-    /** User clicks 'Done' button on this page */
-    DONE_AND_FINISH,
-    /** User clicks 'Agree' button on this page */
-    CONTINUE_ENROLL,
-    /** User clicks 'Skip' button on this page */
-    SKIP_OR_CANCEL
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java
deleted file mode 100644
index 1cfec52..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_CANCELED;
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
-
-import static com.android.settings.biometrics2.ui.model.EnrollmentProgress.INITIAL_REMAINING;
-import static com.android.settings.biometrics2.ui.model.EnrollmentProgress.INITIAL_STEPS;
-
-import android.app.Application;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.hardware.fingerprint.FingerprintManager.EnrollReason;
-import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
-import android.os.CancellationSignal;
-import android.os.SystemClock;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
-import com.android.settings.biometrics.fingerprint.MessageDisplayController;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-
-import java.util.LinkedList;
-
-/**
- * Progress ViewModel handles the state around biometric enrollment. It manages the state of
- * enrollment throughout the activity lifecycle so the app can continue after an event like
- * rotation.
- */
-public class FingerprintEnrollProgressViewModel extends AndroidViewModel {
-
-    private static final boolean DEBUG = false;
-    private static final String TAG = "FingerprintEnrollProgressViewModel";
-
-    private final MutableLiveData<EnrollmentProgress> mProgressLiveData = new MutableLiveData<>(
-            new EnrollmentProgress(INITIAL_STEPS, INITIAL_REMAINING));
-    private final MutableLiveData<EnrollmentStatusMessage> mHelpMessageLiveData =
-            new MutableLiveData<>();
-    private final MutableLiveData<EnrollmentStatusMessage> mErrorMessageLiveData =
-            new MutableLiveData<>();
-    private final MutableLiveData<Object> mCanceledSignalLiveData = new MutableLiveData<>();
-    private final MutableLiveData<Boolean> mAcquireLiveData = new MutableLiveData<>();
-    private final MutableLiveData<Integer> mPointerDownLiveData = new MutableLiveData<>();
-    private final MutableLiveData<Integer> mPointerUpLiveData = new MutableLiveData<>();
-
-    private byte[] mToken = null;
-    private final int mUserId;
-
-    private final FingerprintUpdater mFingerprintUpdater;
-    @Nullable private CancellationSignal mCancellationSignal = null;
-    @NonNull private final LinkedList<CancellationSignal> mCancelingSignalQueue =
-            new LinkedList<>();
-    private final EnrollmentCallback mEnrollmentCallback = new EnrollmentCallback() {
-
-        @Override
-        public void onEnrollmentProgress(int remaining) {
-            final int currentSteps = getSteps();
-            final EnrollmentProgress progress = new EnrollmentProgress(
-                    currentSteps == INITIAL_STEPS ? remaining : getSteps(), remaining);
-            if (DEBUG) {
-                Log.d(TAG, "onEnrollmentProgress(" + remaining + "), steps: " + currentSteps
-                        + ", post progress as " + progress);
-            }
-            mHelpMessageLiveData.setValue(null);
-            mProgressLiveData.postValue(progress);
-        }
-
-        @Override
-        public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
-            if (DEBUG) {
-                Log.d(TAG, "onEnrollmentHelp(" + helpMsgId + ", " + helpString + ")");
-            }
-            mHelpMessageLiveData.postValue(new EnrollmentStatusMessage(helpMsgId, helpString));
-        }
-
-        @Override
-        public void onEnrollmentError(int errMsgId, CharSequence errString) {
-            Log.d(TAG, "onEnrollmentError(" + errMsgId + ", " + errString
-                    + "), cancelingQueueSize:" + mCancelingSignalQueue.size());
-            if (FINGERPRINT_ERROR_CANCELED == errMsgId && mCancelingSignalQueue.size() > 0) {
-                mCanceledSignalLiveData.postValue(mCancelingSignalQueue.poll());
-            } else {
-                mErrorMessageLiveData.postValue(new EnrollmentStatusMessage(errMsgId, errString));
-            }
-        }
-
-        @Override
-        public void onAcquired(boolean isAcquiredGood) {
-            mAcquireLiveData.postValue(isAcquiredGood);
-        }
-
-        @Override
-        public void onUdfpsPointerDown(int sensorId) {
-            mPointerDownLiveData.postValue(sensorId);
-        }
-
-        @Override
-        public void onUdfpsPointerUp(int sensorId) {
-            mPointerUpLiveData.postValue(sensorId);
-        }
-    };
-
-    public FingerprintEnrollProgressViewModel(@NonNull Application application,
-            @NonNull FingerprintUpdater fingerprintUpdater, int userId) {
-        super(application);
-        mFingerprintUpdater = fingerprintUpdater;
-        mUserId = userId;
-    }
-
-    public void setToken(byte[] token) {
-        mToken = token;
-    }
-
-    /**
-     * clear progress
-     */
-    public void clearProgressLiveData() {
-        mProgressLiveData.setValue(new EnrollmentProgress(INITIAL_STEPS, INITIAL_REMAINING));
-        mHelpMessageLiveData.setValue(null);
-        mErrorMessageLiveData.setValue(null);
-    }
-
-    /**
-     * clear error message
-     */
-    public void clearErrorMessageLiveData() {
-        mErrorMessageLiveData.setValue(null);
-    }
-
-    public LiveData<EnrollmentProgress> getProgressLiveData() {
-        return mProgressLiveData;
-    }
-
-    public LiveData<EnrollmentStatusMessage> getHelpMessageLiveData() {
-        return mHelpMessageLiveData;
-    }
-
-    public LiveData<EnrollmentStatusMessage> getErrorMessageLiveData() {
-        return mErrorMessageLiveData;
-    }
-
-    public LiveData<Object> getCanceledSignalLiveData() {
-        return mCanceledSignalLiveData;
-    }
-
-    public LiveData<Boolean> getAcquireLiveData() {
-        return mAcquireLiveData;
-    }
-
-    public LiveData<Integer> getPointerDownLiveData() {
-        return mPointerDownLiveData;
-    }
-
-    public LiveData<Integer> getPointerUpLiveData() {
-        return mPointerUpLiveData;
-    }
-
-    /**
-     * Starts enrollment and return latest isEnrolling() result
-     */
-    public Object startEnrollment(@EnrollReason int reason) {
-        if (mToken == null) {
-            Log.e(TAG, "Null hardware auth token for enroll");
-            return null;
-        }
-        if (mCancellationSignal != null) {
-            Log.w(TAG, "Enrolling is running, shall not start again");
-            return mCancellationSignal;
-        }
-        if (DEBUG) {
-            Log.e(TAG, "startEnrollment(" + reason + ")");
-        }
-
-        // Clear data
-        mProgressLiveData.setValue(new EnrollmentProgress(INITIAL_STEPS, INITIAL_REMAINING));
-        mHelpMessageLiveData.setValue(null);
-        mErrorMessageLiveData.setValue(null);
-
-        mCancellationSignal = new CancellationSignal();
-
-        final Resources res = getApplication().getResources();
-        if (reason == ENROLL_ENROLL
-                && res.getBoolean(R.bool.enrollment_message_display_controller_flag)) {
-            final EnrollmentCallback callback = new MessageDisplayController(
-                    getApplication().getMainThreadHandler(),
-                    mEnrollmentCallback,
-                    SystemClock.elapsedRealtimeClock(),
-                    res.getInteger(R.integer.enrollment_help_minimum_time_display),
-                    res.getInteger(R.integer.enrollment_progress_minimum_time_display),
-                    res.getBoolean(R.bool.enrollment_progress_priority_over_help),
-                    res.getBoolean(R.bool.enrollment_prioritize_acquire_messages),
-                    res.getInteger(R.integer.enrollment_collect_time));
-            mFingerprintUpdater.enroll(mToken, mCancellationSignal, mUserId, callback, reason,
-                    new Intent());
-        } else {
-            mFingerprintUpdater.enroll(mToken, mCancellationSignal, mUserId, mEnrollmentCallback,
-                    reason, new Intent());
-        }
-        return mCancellationSignal;
-    }
-
-    /**
-     * Cancels enrollment and return latest isEnrolling result
-     */
-    public boolean cancelEnrollment() {
-        final CancellationSignal cancellationSignal = mCancellationSignal;
-        mCancellationSignal = null;
-
-        if (cancellationSignal == null) {
-            Log.e(TAG, "Fail to cancel enrollment, has cancelled or not start");
-            return false;
-        } else {
-            Log.d(TAG, "enrollment cancelled");
-        }
-        mCancelingSignalQueue.add(cancellationSignal);
-        cancellationSignal.cancel();
-
-        return true;
-    }
-
-    public boolean isEnrolling() {
-        return (mCancellationSignal != null);
-    }
-
-    private int getSteps() {
-        return mProgressLiveData.getValue().getSteps();
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt
deleted file mode 100644
index 37b0052..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt
+++ /dev/null
@@ -1,162 +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.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.content.ComponentName
-import android.content.Intent
-import android.content.pm.PackageManager
-import android.os.Bundle
-import android.util.Log
-import androidx.activity.result.ActivityResult
-import androidx.lifecycle.AndroidViewModel
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint.FingerprintEnrollFinish.FINGERPRINT_SUGGESTION_ACTIVITY
-import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import kotlinx.atomicfu.AtomicBoolean
-import kotlinx.atomicfu.atomic
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.SharedFlow
-import kotlinx.coroutines.flow.asSharedFlow
-import kotlinx.coroutines.launch
-
-/**
- * Fingerprint enrollment view model implementation
- */
-class FingerprintEnrollmentViewModel(
-    application: Application,
-    private val fingerprintRepository: FingerprintRepository,
-    val request: EnrollmentRequest
-) : AndroidViewModel(application) {
-
-    val isWaitingActivityResult: AtomicBoolean = atomic(false)
-
-    private val _setResultFlow = MutableSharedFlow<ActivityResult>()
-    val setResultFlow: SharedFlow<ActivityResult>
-        get() = _setResultFlow.asSharedFlow()
-
-    var isNewFingerprintAdded = false
-        set(value) {
-            // Only allow changing this value from false to true
-            if (!field) {
-                field = value
-            }
-        }
-
-    /**
-     * Get override activity result as current ViewModel status.
-     *
-     * FingerprintEnrollmentActivity supports user enrolls 2nd fingerprint or starts a new flow
-     * through Deferred-SUW, Portal-SUW, or SUW Suggestion. Use a method to get override activity
-     * result instead of putting these if-else on every setResult(), .
-     */
-    fun getOverrideActivityResult(
-        result: ActivityResult,
-        generatingChallengeExtras: Bundle?
-    ): ActivityResult {
-        val newResultCode = if (isNewFingerprintAdded)
-            BiometricEnrollBase.RESULT_FINISHED
-        else if (request.isAfterSuwOrSuwSuggestedAction)
-            BiometricEnrollBase.RESULT_CANCELED
-        else
-            result.resultCode
-
-        var newData = result.data
-        if (newResultCode == BiometricEnrollBase.RESULT_FINISHED
-            && generatingChallengeExtras != null
-        ) {
-            if (newData == null) {
-                newData = Intent()
-            }
-            newData.putExtras(generatingChallengeExtras)
-        }
-        return ActivityResult(newResultCode, newData)
-    }
-
-    /**
-     * Activity calls this method during onPause() to finish itself when back to background.
-     *
-     * @param isActivityFinishing Activity has called finish() or not
-     * @param isChangingConfigurations Activity is finished because of configuration changed or not.
-     */
-    fun checkFinishActivityDuringOnPause(
-        isActivityFinishing: Boolean,
-        isChangingConfigurations: Boolean,
-        scope: CoroutineScope
-    ) {
-        if (isChangingConfigurations || isActivityFinishing || request.isSuw
-            || isWaitingActivityResult.value
-        ) {
-            return
-        }
-        scope.launch {
-            _setResultFlow.emit(ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null))
-        }
-    }
-
-    /**
-     * Get Suw fingerprint count extra for statistics
-     */
-    fun getSuwFingerprintCountExtra(userId: Int) = Bundle().also {
-        it.putInt(
-            SetupFingerprintEnrollIntroduction.EXTRA_FINGERPRINT_ENROLLED_COUNT,
-            fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId)
-        )
-    }
-
-    /**
-     * Gets the result about fingerprint enrollable
-     */
-    fun isMaxEnrolledReached(userId: Int): Boolean = with(fingerprintRepository) {
-        maxFingerprints <= getNumOfEnrolledFingerprintsSize(userId)
-    }
-
-    val canAssumeUdfps: Boolean
-        get() = fingerprintRepository.canAssumeUdfps()
-
-    val canAssumeSfps: Boolean
-        get() = fingerprintRepository.canAssumeSfps()
-
-    /**
-     * Update FINGERPRINT_SUGGESTION_ACTIVITY into package manager
-     */
-    fun updateFingerprintSuggestionEnableState(userId: Int) {
-        // Only show "Add another fingerprint" if the user already enrolled one.
-        // "Add fingerprint" will be shown in the main flow if the user hasn't enrolled any
-        // fingerprints. If the user already added more than one fingerprint, they already know
-        // to add multiple fingerprints so we don't show the suggestion.
-        val state = if (fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId) == 1)
-            PackageManager.COMPONENT_ENABLED_STATE_ENABLED
-        else
-            PackageManager.COMPONENT_ENABLED_STATE_DISABLED
-        getApplication<Application>().packageManager.setComponentEnabledSetting(
-            ComponentName(
-                getApplication(),
-                FINGERPRINT_SUGGESTION_ACTIVITY
-            ),
-            state,
-            PackageManager.DONT_KILL_APP
-        )
-        Log.d(TAG, "$FINGERPRINT_SUGGESTION_ACTIVITY enabled state: $state")
-    }
-
-    companion object {
-        private const val TAG = "FingerprintEnrollmentViewModel"
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollDrawable.java b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollDrawable.java
deleted file mode 100644
index 4b0b624..0000000
--- a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollDrawable.java
+++ /dev/null
@@ -1,436 +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.biometrics2.ui.widget;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.graphics.Paint;
-import android.graphics.PointF;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.PathShape;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Build;
-import android.os.UserHandle;
-import android.provider.Settings;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.PathParser;
-import android.util.TypedValue;
-import android.view.accessibility.AccessibilityManager;
-import android.view.animation.AccelerateDecelerateInterpolator;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * UDFPS fingerprint drawable that is shown when enrolling
- */
-public class UdfpsEnrollDrawable extends Drawable {
-    private static final String TAG = "UdfpsAnimationEnroll";
-
-    private static final long TARGET_ANIM_DURATION_LONG = 800L;
-    private static final long TARGET_ANIM_DURATION_SHORT = 600L;
-    // 1 + SCALE_MAX is the maximum that the moving target will animate to
-    private static final float SCALE_MAX = 0.25f;
-    private static final float DEFAULT_STROKE_WIDTH = 3f;
-    private static final float SCALE = 0.5f;
-    private static final String SCALE_OVERRIDE =
-            "com.android.systemui.biometrics.UdfpsEnrollHelper.scale";
-    private static final String NEW_COORDS_OVERRIDE =
-            "com.android.systemui.biometrics.UdfpsNewCoords";
-
-    @NonNull
-    private final Drawable mMovingTargetFpIcon;
-    @NonNull
-    private final Paint mSensorOutlinePaint;
-    @NonNull
-    private final Paint mBlueFill;
-    @NonNull
-    private final ShapeDrawable mFingerprintDrawable;
-    private int mAlpha;
-    private boolean mSkipDraw = false;
-
-    @Nullable
-    private RectF mSensorRect;
-
-    // Moving target animator set
-    @Nullable
-    AnimatorSet mTargetAnimatorSet;
-    // Moving target location
-    float mCurrentX;
-    float mCurrentY;
-    // Moving target size
-    float mCurrentScale = 1.f;
-
-    @NonNull
-    private final Animator.AnimatorListener mTargetAnimListener;
-
-    private boolean mShouldShowTipHint = false;
-    private boolean mShouldShowEdgeHint = false;
-
-    private int mEnrollIcon;
-    private int mMovingTargetFill;
-
-    private int mTotalSteps = -1;
-    private int mRemainingSteps = -1;
-    private int mLocationsEnrolled = 0;
-    private int mCenterTouchCount = 0;
-
-    private FingerprintManager mFingerprintManager;
-
-    private boolean mAccessibilityEnabled;
-    private Context mContext;
-    private final List<PointF> mGuidedEnrollmentPoints;
-
-    UdfpsEnrollDrawable(@NonNull Context context, @Nullable AttributeSet attrs) {
-        mFingerprintDrawable = defaultFactory(context);
-
-        loadResources(context, attrs);
-        mSensorOutlinePaint = new Paint(0 /* flags */);
-        mSensorOutlinePaint.setAntiAlias(true);
-        mSensorOutlinePaint.setColor(mMovingTargetFill);
-        mSensorOutlinePaint.setStyle(Paint.Style.FILL);
-
-        mBlueFill = new Paint(0 /* flags */);
-        mBlueFill.setAntiAlias(true);
-        mBlueFill.setColor(mMovingTargetFill);
-        mBlueFill.setStyle(Paint.Style.FILL);
-
-        mMovingTargetFpIcon = context.getResources()
-                .getDrawable(R.drawable.ic_enrollment_fingerprint, null);
-        mMovingTargetFpIcon.setTint(mEnrollIcon);
-        mMovingTargetFpIcon.mutate();
-
-        mFingerprintDrawable.setTint(mEnrollIcon);
-
-        setAlpha(255);
-        mTargetAnimListener = new Animator.AnimatorListener() {
-            @Override
-            public void onAnimationStart(Animator animation) {
-            }
-
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                updateTipHintVisibility();
-            }
-
-            @Override
-            public void onAnimationCancel(Animator animation) {
-            }
-
-            @Override
-            public void onAnimationRepeat(Animator animation) {
-            }
-        };
-        mContext = context;
-        mFingerprintManager = context.getSystemService(FingerprintManager.class);
-        final AccessibilityManager am = context.getSystemService(AccessibilityManager.class);
-        mAccessibilityEnabled = am.isEnabled();
-        mGuidedEnrollmentPoints = new ArrayList<>();
-        initEnrollPoint(context);
-    }
-
-    /** The [sensorRect] coordinates for the sensor area. */
-    void onSensorRectUpdated(@NonNull RectF sensorRect) {
-        int margin = ((int) sensorRect.height()) / 8;
-        Rect bounds = new Rect((int) (sensorRect.left) + margin, (int) (sensorRect.top) + margin,
-                (int) (sensorRect.right) - margin, (int) (sensorRect.bottom) - margin);
-        updateFingerprintIconBounds(bounds);
-        mSensorRect = sensorRect;
-    }
-
-    void setShouldSkipDraw(boolean skipDraw) {
-        if (mSkipDraw == skipDraw) {
-            return;
-        }
-        mSkipDraw = skipDraw;
-        invalidateSelf();
-    }
-
-    void updateFingerprintIconBounds(@NonNull Rect bounds) {
-        mFingerprintDrawable.setBounds(bounds);
-        invalidateSelf();
-        mMovingTargetFpIcon.setBounds(bounds);
-        invalidateSelf();
-    }
-
-    void onEnrollmentProgress(final int remaining, final int totalSteps) {
-        if (mTotalSteps == -1) {
-            mTotalSteps = totalSteps;
-        }
-
-        if (remaining != mRemainingSteps) {
-            mLocationsEnrolled++;
-            if (isCenterEnrollmentStage()) {
-                mCenterTouchCount++;
-            }
-        }
-        mRemainingSteps = remaining;
-
-        if (!isCenterEnrollmentStage()) {
-            if (mTargetAnimatorSet != null && mTargetAnimatorSet.isRunning()) {
-                mTargetAnimatorSet.end();
-            }
-
-            final PointF point = getNextGuidedEnrollmentPoint();
-            if (mCurrentX != point.x || mCurrentY != point.y) {
-                final ValueAnimator x = ValueAnimator.ofFloat(mCurrentX, point.x);
-                x.addUpdateListener(animation -> {
-                    mCurrentX = (float) animation.getAnimatedValue();
-                    invalidateSelf();
-                });
-
-                final ValueAnimator y = ValueAnimator.ofFloat(mCurrentY, point.y);
-                y.addUpdateListener(animation -> {
-                    mCurrentY = (float) animation.getAnimatedValue();
-                    invalidateSelf();
-                });
-
-                final boolean isMovingToCenter = point.x == 0f && point.y == 0f;
-                final long duration = isMovingToCenter
-                        ? TARGET_ANIM_DURATION_SHORT
-                        : TARGET_ANIM_DURATION_LONG;
-
-                final ValueAnimator scale = ValueAnimator.ofFloat(0, (float) Math.PI);
-                scale.setDuration(duration);
-                scale.addUpdateListener(animation -> {
-                    // Grow then shrink
-                    mCurrentScale = 1
-                            + SCALE_MAX * (float) Math.sin((float) animation.getAnimatedValue());
-                    invalidateSelf();
-                });
-
-                mTargetAnimatorSet = new AnimatorSet();
-
-                mTargetAnimatorSet.setInterpolator(new AccelerateDecelerateInterpolator());
-                mTargetAnimatorSet.setDuration(duration);
-                mTargetAnimatorSet.addListener(mTargetAnimListener);
-                mTargetAnimatorSet.playTogether(x, y, scale);
-                mTargetAnimatorSet.start();
-            } else {
-                updateTipHintVisibility();
-            }
-        } else {
-            updateTipHintVisibility();
-        }
-
-        updateEdgeHintVisibility();
-    }
-
-    @Override
-    public void draw(@NonNull Canvas canvas) {
-        if (mSkipDraw) {
-            return;
-        }
-
-        // Draw moving target
-        if (!isCenterEnrollmentStage()) {
-            canvas.save();
-            canvas.translate(mCurrentX, mCurrentY);
-
-            if (mSensorRect != null) {
-                canvas.scale(mCurrentScale, mCurrentScale,
-                        mSensorRect.centerX(), mSensorRect.centerY());
-                canvas.drawOval(mSensorRect, mBlueFill);
-            }
-
-            mMovingTargetFpIcon.draw(canvas);
-            canvas.restore();
-        } else {
-            if (mSensorRect != null) {
-                canvas.drawOval(mSensorRect, mSensorOutlinePaint);
-            }
-            mFingerprintDrawable.draw(canvas);
-            mFingerprintDrawable.setAlpha(getAlpha());
-            mSensorOutlinePaint.setAlpha(getAlpha());
-        }
-
-    }
-
-    @Override
-    public void setAlpha(int alpha) {
-        mAlpha = alpha;
-        mFingerprintDrawable.setAlpha(alpha);
-        mSensorOutlinePaint.setAlpha(alpha);
-        mBlueFill.setAlpha(alpha);
-        mMovingTargetFpIcon.setAlpha(alpha);
-        invalidateSelf();
-    }
-
-    @Override
-    public int getAlpha() {
-        return mAlpha;
-    }
-
-    @Override
-    public void setColorFilter(@Nullable ColorFilter colorFilter) {
-    }
-
-    @Override
-    public int getOpacity() {
-        return 0;
-    }
-
-    private void updateTipHintVisibility() {
-        final boolean shouldShow = isTipEnrollmentStage();
-        // With the new update, we will git rid of most of this code, and instead
-        // we will change the fingerprint icon.
-        if (mShouldShowTipHint == shouldShow) {
-            return;
-        }
-        mShouldShowTipHint = shouldShow;
-    }
-
-    private void updateEdgeHintVisibility() {
-        final boolean shouldShow = isEdgeEnrollmentStage();
-        if (mShouldShowEdgeHint == shouldShow) {
-            return;
-        }
-        mShouldShowEdgeHint = shouldShow;
-    }
-
-    private ShapeDrawable defaultFactory(Context context) {
-        String fpPath = context.getResources().getString(R.string.config_udfpsIcon);
-        ShapeDrawable drawable = new ShapeDrawable(
-                new PathShape(PathParser.createPathFromPathData(fpPath), 72f, 72f)
-        );
-        drawable.mutate();
-        drawable.getPaint().setStyle(Paint.Style.STROKE);
-        drawable.getPaint().setStrokeCap(Paint.Cap.ROUND);
-        drawable.getPaint().setStrokeWidth(DEFAULT_STROKE_WIDTH);
-        return drawable;
-    }
-
-    private void loadResources(Context context, @Nullable AttributeSet attrs) {
-        final TypedArray ta = context.obtainStyledAttributes(attrs,
-                R.styleable.BiometricsEnrollView, R.attr.biometricsEnrollStyle,
-                R.style.BiometricsEnrollStyle);
-        mEnrollIcon = ta.getColor(R.styleable.BiometricsEnrollView_biometricsEnrollIcon, 0);
-        mMovingTargetFill = ta.getColor(
-                R.styleable.BiometricsEnrollView_biometricsMovingTargetFill, 0);
-        ta.recycle();
-    }
-
-    private boolean isCenterEnrollmentStage() {
-        if (mTotalSteps == -1 || mRemainingSteps == -1) {
-            return true;
-        }
-        return mTotalSteps - mRemainingSteps < getStageThresholdSteps(mTotalSteps, 0);
-    }
-
-    private int getStageThresholdSteps(int totalSteps, int stageIndex) {
-        return Math.round(totalSteps * mFingerprintManager.getEnrollStageThreshold(stageIndex));
-    }
-
-    private PointF getNextGuidedEnrollmentPoint() {
-        if (mAccessibilityEnabled || !isGuidedEnrollmentStage()) {
-            return new PointF(0f, 0f);
-        }
-
-        float scale = SCALE;
-        if (Build.IS_ENG || Build.IS_USERDEBUG) {
-            scale = Settings.Secure.getFloatForUser(mContext.getContentResolver(),
-                    SCALE_OVERRIDE, SCALE,
-                    UserHandle.USER_CURRENT);
-        }
-        final int index = mLocationsEnrolled - mCenterTouchCount;
-        final PointF originalPoint = mGuidedEnrollmentPoints
-                .get(index % mGuidedEnrollmentPoints.size());
-        return new PointF(originalPoint.x * scale, originalPoint.y * scale);
-    }
-
-    private boolean isGuidedEnrollmentStage() {
-        if (mAccessibilityEnabled || mTotalSteps == -1 || mRemainingSteps == -1) {
-            return false;
-        }
-        final int progressSteps = mTotalSteps - mRemainingSteps;
-        return progressSteps >= getStageThresholdSteps(mTotalSteps, 0)
-                && progressSteps < getStageThresholdSteps(mTotalSteps, 1);
-    }
-
-    private boolean isTipEnrollmentStage() {
-        if (mTotalSteps == -1 || mRemainingSteps == -1) {
-            return false;
-        }
-        final int progressSteps = mTotalSteps - mRemainingSteps;
-        return progressSteps >= getStageThresholdSteps(mTotalSteps, 1)
-                && progressSteps < getStageThresholdSteps(mTotalSteps, 2);
-    }
-
-    private boolean isEdgeEnrollmentStage() {
-        if (mTotalSteps == -1 || mRemainingSteps == -1) {
-            return false;
-        }
-        return mTotalSteps - mRemainingSteps >= getStageThresholdSteps(mTotalSteps, 2);
-    }
-
-    private void initEnrollPoint(Context context) {
-        // Number of pixels per mm
-        float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 1,
-                context.getResources().getDisplayMetrics());
-        boolean useNewCoords = Settings.Secure.getIntForUser(mContext.getContentResolver(),
-                NEW_COORDS_OVERRIDE, 0,
-                UserHandle.USER_CURRENT) != 0;
-        if (useNewCoords && (Build.IS_ENG || Build.IS_USERDEBUG)) {
-            Log.v(TAG, "Using new coordinates");
-            mGuidedEnrollmentPoints.add(new PointF(-0.15f * px, -1.02f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-0.15f * px, 1.02f * px));
-            mGuidedEnrollmentPoints.add(new PointF(0.29f * px, 0.00f * px));
-            mGuidedEnrollmentPoints.add(new PointF(2.17f * px, -2.35f * px));
-            mGuidedEnrollmentPoints.add(new PointF(1.07f * px, -3.96f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-0.37f * px, -4.31f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-1.69f * px, -3.29f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-2.48f * px, -1.23f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-2.48f * px, 1.23f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-1.69f * px, 3.29f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-0.37f * px, 4.31f * px));
-            mGuidedEnrollmentPoints.add(new PointF(1.07f * px, 3.96f * px));
-            mGuidedEnrollmentPoints.add(new PointF(2.17f * px, 2.35f * px));
-            mGuidedEnrollmentPoints.add(new PointF(2.58f * px, 0.00f * px));
-        } else {
-            Log.v(TAG, "Using old coordinates");
-            mGuidedEnrollmentPoints.add(new PointF(2.00f * px, 0.00f * px));
-            mGuidedEnrollmentPoints.add(new PointF(0.87f * px, -2.70f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-1.80f * px, -1.31f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-1.80f * px, 1.31f * px));
-            mGuidedEnrollmentPoints.add(new PointF(0.88f * px, 2.70f * px));
-            mGuidedEnrollmentPoints.add(new PointF(3.94f * px, -1.06f * px));
-            mGuidedEnrollmentPoints.add(new PointF(2.90f * px, -4.14f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-0.52f * px, -5.95f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-3.33f * px, -3.33f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-3.99f * px, -0.35f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-3.62f * px, 2.54f * px));
-            mGuidedEnrollmentPoints.add(new PointF(-1.49f * px, 5.57f * px));
-            mGuidedEnrollmentPoints.add(new PointF(2.29f * px, 4.92f * px));
-            mGuidedEnrollmentPoints.add(new PointF(3.82f * px, 1.78f * px));
-        }
-    }
-
-}
diff --git a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollProgressBarDrawable.java b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollProgressBarDrawable.java
deleted file mode 100644
index 8cb4bb2..0000000
--- a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollProgressBarDrawable.java
+++ /dev/null
@@ -1,422 +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.biometrics2.ui.widget;
-
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.ColorFilter;
-import android.graphics.Paint;
-import android.graphics.drawable.Drawable;
-import android.os.Process;
-import android.os.VibrationAttributes;
-import android.os.VibrationEffect;
-import android.os.Vibrator;
-import android.util.AttributeSet;
-import android.util.DisplayMetrics;
-import android.view.accessibility.AccessibilityManager;
-import android.view.animation.DecelerateInterpolator;
-import android.view.animation.Interpolator;
-import android.view.animation.OvershootInterpolator;
-
-import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.R;
-
-/**
- * UDFPS enrollment progress bar.
- */
-public class UdfpsEnrollProgressBarDrawable extends Drawable {
-    private static final String TAG = "UdfpsProgressBar";
-
-    private static final long CHECKMARK_ANIMATION_DELAY_MS = 200L;
-    private static final long CHECKMARK_ANIMATION_DURATION_MS = 300L;
-    private static final long FILL_COLOR_ANIMATION_DURATION_MS = 350L;
-    private static final long PROGRESS_ANIMATION_DURATION_MS = 400L;
-    private static final float STROKE_WIDTH_DP = 12f;
-    private static final Interpolator DEACCEL = new DecelerateInterpolator();
-
-    private static final VibrationEffect VIBRATE_EFFECT_ERROR =
-            VibrationEffect.createWaveform(new long[]{0, 5, 55, 60}, -1);
-    private static final VibrationAttributes FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES =
-            VibrationAttributes.createForUsage(VibrationAttributes.USAGE_ACCESSIBILITY);
-
-    private static final VibrationAttributes HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES =
-            VibrationAttributes.createForUsage(VibrationAttributes.USAGE_HARDWARE_FEEDBACK);
-
-    private static final VibrationEffect SUCCESS_VIBRATION_EFFECT =
-            VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
-
-    private final float mStrokeWidthPx;
-    @ColorInt
-    private final int mProgressColor;
-    @ColorInt
-    private final int mHelpColor;
-    @ColorInt
-    private final int mOnFirstBucketFailedColor;
-    @NonNull
-    private final Drawable mCheckmarkDrawable;
-    @NonNull
-    private final Interpolator mCheckmarkInterpolator;
-    @NonNull
-    private final Paint mBackgroundPaint;
-    @VisibleForTesting
-    @NonNull
-    final Paint mFillPaint;
-    @NonNull
-    private final Vibrator mVibrator;
-    @NonNull
-    private final boolean mIsAccessibilityEnabled;
-    @NonNull
-    private final Context mContext;
-
-    private boolean mAfterFirstTouch;
-
-    private int mRemainingSteps = 0;
-    private int mTotalSteps = 0;
-    private float mProgress = 0f;
-    @Nullable
-    private ValueAnimator mProgressAnimator;
-    @NonNull
-    private final ValueAnimator.AnimatorUpdateListener mProgressUpdateListener;
-
-    private boolean mShowingHelp = false;
-    @Nullable
-    private ValueAnimator mFillColorAnimator;
-    @NonNull
-    private final ValueAnimator.AnimatorUpdateListener mFillColorUpdateListener;
-
-    @Nullable
-    private ValueAnimator mBackgroundColorAnimator;
-    @NonNull
-    private final ValueAnimator.AnimatorUpdateListener mBackgroundColorUpdateListener;
-
-    private boolean mComplete = false;
-    private float mCheckmarkScale = 0f;
-    @Nullable
-    private ValueAnimator mCheckmarkAnimator;
-    @NonNull
-    private final ValueAnimator.AnimatorUpdateListener mCheckmarkUpdateListener;
-
-    private int mMovingTargetFill;
-    private int mMovingTargetFillError;
-    private int mEnrollProgress;
-    private int mEnrollProgressHelp;
-    private int mEnrollProgressHelpWithTalkback;
-
-    public UdfpsEnrollProgressBarDrawable(@NonNull Context context, @Nullable AttributeSet attrs) {
-        mContext = context;
-
-        loadResources(context, attrs);
-        float density = context.getResources().getDisplayMetrics().densityDpi;
-        mStrokeWidthPx = STROKE_WIDTH_DP * (density / DisplayMetrics.DENSITY_DEFAULT);
-        mProgressColor = mEnrollProgress;
-        final AccessibilityManager am = context.getSystemService(AccessibilityManager.class);
-        mIsAccessibilityEnabled = am.isTouchExplorationEnabled();
-        mOnFirstBucketFailedColor = mMovingTargetFillError;
-        if (!mIsAccessibilityEnabled) {
-            mHelpColor = mEnrollProgressHelp;
-        } else {
-            mHelpColor = mEnrollProgressHelpWithTalkback;
-        }
-        mCheckmarkDrawable = context.getDrawable(R.drawable.udfps_enroll_checkmark);
-        mCheckmarkDrawable.mutate();
-        mCheckmarkInterpolator = new OvershootInterpolator();
-
-        mBackgroundPaint = new Paint();
-        mBackgroundPaint.setStrokeWidth(mStrokeWidthPx);
-        mBackgroundPaint.setColor(mMovingTargetFill);
-        mBackgroundPaint.setAntiAlias(true);
-        mBackgroundPaint.setStyle(Paint.Style.STROKE);
-        mBackgroundPaint.setStrokeCap(Paint.Cap.ROUND);
-
-        // Progress fill should *not* use the extracted system color.
-        mFillPaint = new Paint();
-        mFillPaint.setStrokeWidth(mStrokeWidthPx);
-        mFillPaint.setColor(mProgressColor);
-        mFillPaint.setAntiAlias(true);
-        mFillPaint.setStyle(Paint.Style.STROKE);
-        mFillPaint.setStrokeCap(Paint.Cap.ROUND);
-
-        mVibrator = mContext.getSystemService(Vibrator.class);
-
-        mProgressUpdateListener = animation -> {
-            mProgress = (float) animation.getAnimatedValue();
-            invalidateSelf();
-        };
-
-        mFillColorUpdateListener = animation -> {
-            mFillPaint.setColor((int) animation.getAnimatedValue());
-            invalidateSelf();
-        };
-
-        mCheckmarkUpdateListener = animation -> {
-            mCheckmarkScale = (float) animation.getAnimatedValue();
-            invalidateSelf();
-        };
-
-        mBackgroundColorUpdateListener = animation -> {
-            mBackgroundPaint.setColor((int) animation.getAnimatedValue());
-            invalidateSelf();
-        };
-    }
-
-    void onEnrollmentProgress(final int remaining, final int totalSteps) {
-        mAfterFirstTouch = true;
-        updateState(remaining, totalSteps, false /* showingHelp */);
-    }
-
-    void onEnrollmentHelp(int remaining, int totalSteps) {
-        updateState(remaining, totalSteps, true /* showingHelp */);
-    }
-
-    void onLastStepAcquired() {
-        updateState(0, mTotalSteps, false /* showingHelp */);
-    }
-
-    private void updateState(int remainingSteps, int totalSteps, boolean showingHelp) {
-        updateProgress(remainingSteps, totalSteps, showingHelp);
-        updateFillColor(showingHelp);
-    }
-
-    private void updateProgress(int remainingSteps, int totalSteps, boolean showingHelp) {
-        if (mRemainingSteps == remainingSteps && mTotalSteps == totalSteps) {
-            return;
-        }
-
-        if (mShowingHelp) {
-            if (mVibrator != null && mIsAccessibilityEnabled) {
-                mVibrator.vibrate(Process.myUid(), mContext.getOpPackageName(),
-                        VIBRATE_EFFECT_ERROR, getClass().getSimpleName() + "::onEnrollmentHelp",
-                        FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
-            }
-        } else {
-            // If the first touch is an error, remainingSteps will be -1 and the callback
-            // doesn't come from onEnrollmentHelp. If we are in the accessibility flow,
-            // we still would like to vibrate.
-            if (mVibrator != null) {
-                if (remainingSteps == -1 && mIsAccessibilityEnabled) {
-                    mVibrator.vibrate(Process.myUid(), mContext.getOpPackageName(),
-                            VIBRATE_EFFECT_ERROR,
-                            getClass().getSimpleName() + "::onFirstTouchError",
-                            FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
-                } else if (remainingSteps != -1 && !mIsAccessibilityEnabled) {
-                    mVibrator.vibrate(Process.myUid(),
-                            mContext.getOpPackageName(),
-                            SUCCESS_VIBRATION_EFFECT,
-                            getClass().getSimpleName() + "::OnEnrollmentProgress",
-                            HARDWARE_FEEDBACK_VIBRATION_ATTRIBUTES);
-                }
-            }
-        }
-
-        mShowingHelp = showingHelp;
-        mRemainingSteps = remainingSteps;
-        mTotalSteps = totalSteps;
-
-        final int progressSteps = Math.max(0, totalSteps - remainingSteps);
-
-        // If needed, add 1 to progress and total steps to account for initial touch.
-        final int adjustedSteps = mAfterFirstTouch ? progressSteps + 1 : progressSteps;
-        final int adjustedTotal = mAfterFirstTouch ? mTotalSteps + 1 : mTotalSteps;
-
-        final float targetProgress = Math.min(1f, (float) adjustedSteps / (float) adjustedTotal);
-
-        if (mProgressAnimator != null && mProgressAnimator.isRunning()) {
-            mProgressAnimator.cancel();
-        }
-
-        mProgressAnimator = ValueAnimator.ofFloat(mProgress, targetProgress);
-        mProgressAnimator.setDuration(PROGRESS_ANIMATION_DURATION_MS);
-        mProgressAnimator.addUpdateListener(mProgressUpdateListener);
-        mProgressAnimator.start();
-
-        if (remainingSteps == 0) {
-            startCompletionAnimation();
-        } else if (remainingSteps > 0) {
-            rollBackCompletionAnimation();
-        }
-    }
-
-    private void animateBackgroundColor() {
-        if (mBackgroundColorAnimator != null && mBackgroundColorAnimator.isRunning()) {
-            mBackgroundColorAnimator.end();
-        }
-        mBackgroundColorAnimator = ValueAnimator.ofArgb(mBackgroundPaint.getColor(),
-                mOnFirstBucketFailedColor);
-        mBackgroundColorAnimator.setDuration(FILL_COLOR_ANIMATION_DURATION_MS);
-        mBackgroundColorAnimator.setRepeatCount(1);
-        mBackgroundColorAnimator.setRepeatMode(ValueAnimator.REVERSE);
-        mBackgroundColorAnimator.setInterpolator(DEACCEL);
-        mBackgroundColorAnimator.addUpdateListener(mBackgroundColorUpdateListener);
-        mBackgroundColorAnimator.start();
-    }
-
-    private void updateFillColor(boolean showingHelp) {
-        if (!mAfterFirstTouch && showingHelp) {
-            // If we are on the first touch, animate the background color
-            // instead of the progress color.
-            animateBackgroundColor();
-            return;
-        }
-
-        if (mFillColorAnimator != null && mFillColorAnimator.isRunning()) {
-            mFillColorAnimator.end();
-        }
-
-        @ColorInt final int targetColor = showingHelp ? mHelpColor : mProgressColor;
-        mFillColorAnimator = ValueAnimator.ofArgb(mFillPaint.getColor(), targetColor);
-        mFillColorAnimator.setDuration(FILL_COLOR_ANIMATION_DURATION_MS);
-        mFillColorAnimator.setRepeatCount(1);
-        mFillColorAnimator.setRepeatMode(ValueAnimator.REVERSE);
-        mFillColorAnimator.setInterpolator(DEACCEL);
-        mFillColorAnimator.addUpdateListener(mFillColorUpdateListener);
-        mFillColorAnimator.start();
-    }
-
-    private void startCompletionAnimation() {
-        if (mComplete) {
-            return;
-        }
-        mComplete = true;
-
-        if (mCheckmarkAnimator != null && mCheckmarkAnimator.isRunning()) {
-            mCheckmarkAnimator.cancel();
-        }
-
-        mCheckmarkAnimator = ValueAnimator.ofFloat(mCheckmarkScale, 1f);
-        mCheckmarkAnimator.setStartDelay(CHECKMARK_ANIMATION_DELAY_MS);
-        mCheckmarkAnimator.setDuration(CHECKMARK_ANIMATION_DURATION_MS);
-        mCheckmarkAnimator.setInterpolator(mCheckmarkInterpolator);
-        mCheckmarkAnimator.addUpdateListener(mCheckmarkUpdateListener);
-        mCheckmarkAnimator.start();
-    }
-
-    private void rollBackCompletionAnimation() {
-        if (!mComplete) {
-            return;
-        }
-        mComplete = false;
-
-        // Adjust duration based on how much of the completion animation has played.
-        final float animatedFraction = mCheckmarkAnimator != null
-                ? mCheckmarkAnimator.getAnimatedFraction()
-                : 0f;
-        final long durationMs = Math.round(CHECKMARK_ANIMATION_DELAY_MS * animatedFraction);
-
-        if (mCheckmarkAnimator != null && mCheckmarkAnimator.isRunning()) {
-            mCheckmarkAnimator.cancel();
-        }
-
-        mCheckmarkAnimator = ValueAnimator.ofFloat(mCheckmarkScale, 0f);
-        mCheckmarkAnimator.setDuration(durationMs);
-        mCheckmarkAnimator.addUpdateListener(mCheckmarkUpdateListener);
-        mCheckmarkAnimator.start();
-    }
-
-    private void loadResources(Context context, @Nullable AttributeSet attrs) {
-        final TypedArray ta = context.obtainStyledAttributes(attrs,
-                R.styleable.BiometricsEnrollView, R.attr.biometricsEnrollStyle,
-                R.style.BiometricsEnrollStyle);
-        mMovingTargetFill = ta.getColor(
-                R.styleable.BiometricsEnrollView_biometricsMovingTargetFill, 0);
-        mMovingTargetFillError = ta.getColor(
-                R.styleable.BiometricsEnrollView_biometricsMovingTargetFillError, 0);
-        mEnrollProgress = ta.getColor(
-                R.styleable.BiometricsEnrollView_biometricsEnrollProgress, 0);
-        mEnrollProgressHelp = ta.getColor(
-                R.styleable.BiometricsEnrollView_biometricsEnrollProgressHelp, 0);
-        mEnrollProgressHelpWithTalkback = ta.getColor(
-                R.styleable.BiometricsEnrollView_biometricsEnrollProgressHelpWithTalkback, 0);
-        ta.recycle();
-    }
-
-    @Override
-    public void draw(@NonNull Canvas canvas) {
-        canvas.save();
-
-        // Progress starts from the top, instead of the right
-        canvas.rotate(-90f, getBounds().centerX(), getBounds().centerY());
-
-        final float halfPaddingPx = mStrokeWidthPx / 2f;
-
-        if (mProgress < 1f) {
-            // Draw the background color of the progress circle.
-            canvas.drawArc(
-                    halfPaddingPx,
-                    halfPaddingPx,
-                    getBounds().right - halfPaddingPx,
-                    getBounds().bottom - halfPaddingPx,
-                    0f /* startAngle */,
-                    360f /* sweepAngle */,
-                    false /* useCenter */,
-                    mBackgroundPaint);
-        }
-
-        if (mProgress > 0f) {
-            // Draw the filled portion of the progress circle.
-            canvas.drawArc(
-                    halfPaddingPx,
-                    halfPaddingPx,
-                    getBounds().right - halfPaddingPx,
-                    getBounds().bottom - halfPaddingPx,
-                    0f /* startAngle */,
-                    360f * mProgress /* sweepAngle */,
-                    false /* useCenter */,
-                    mFillPaint);
-        }
-
-        canvas.restore();
-
-        if (mCheckmarkScale > 0f) {
-            final float offsetScale = (float) Math.sqrt(2) / 2f;
-            final float centerXOffset = (getBounds().width() - mStrokeWidthPx) / 2f * offsetScale;
-            final float centerYOffset = (getBounds().height() - mStrokeWidthPx) / 2f * offsetScale;
-            final float centerX = getBounds().centerX() + centerXOffset;
-            final float centerY = getBounds().centerY() + centerYOffset;
-
-            final float boundsXOffset =
-                    mCheckmarkDrawable.getIntrinsicWidth() / 2f * mCheckmarkScale;
-            final float boundsYOffset =
-                    mCheckmarkDrawable.getIntrinsicHeight() / 2f * mCheckmarkScale;
-
-            final int left = Math.round(centerX - boundsXOffset);
-            final int top = Math.round(centerY - boundsYOffset);
-            final int right = Math.round(centerX + boundsXOffset);
-            final int bottom = Math.round(centerY + boundsYOffset);
-            mCheckmarkDrawable.setBounds(left, top, right, bottom);
-            mCheckmarkDrawable.draw(canvas);
-        }
-    }
-
-    @Override
-    public void setAlpha(int alpha) {
-    }
-
-    @Override
-    public void setColorFilter(@Nullable ColorFilter colorFilter) {
-    }
-
-    @Override
-    public int getOpacity() {
-        return 0;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java
deleted file mode 100644
index c99cb2d..0000000
--- a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java
+++ /dev/null
@@ -1,277 +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.biometrics2.ui.widget;
-
-import android.content.Context;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.os.Handler;
-import android.os.Looper;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.RotationUtils;
-import android.view.DisplayInfo;
-import android.view.Surface;
-import android.view.ViewGroup;
-import android.view.ViewTreeObserver;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-import com.android.systemui.biometrics.UdfpsUtils;
-import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams;
-
-/**
- * View corresponding with udfps_enroll_view.xml
- */
-public class UdfpsEnrollView extends FrameLayout {
-    private static final String TAG = "UdfpsEnrollView";
-    @NonNull
-    private final UdfpsEnrollDrawable mFingerprintDrawable;
-    @NonNull
-    private final UdfpsEnrollProgressBarDrawable mFingerprintProgressDrawable;
-    @NonNull
-    private final Handler mHandler;
-
-    @NonNull
-    private ImageView mFingerprintProgressView;
-    private UdfpsUtils mUdfpsUtils;
-
-    private int mProgressBarRadius;
-
-    private Rect mSensorRect;
-    private UdfpsOverlayParams mOverlayParams;
-    private FingerprintSensorPropertiesInternal mSensorProperties;
-
-    private int mTotalSteps = -1;
-    private int mRemainingSteps = -1;
-    private int mLocationsEnrolled = 0;
-    private int mCenterTouchCount = 0;
-
-    public UdfpsEnrollView(Context context, @Nullable AttributeSet attrs) {
-        super(context, attrs);
-        mFingerprintDrawable = new UdfpsEnrollDrawable(mContext, attrs);
-        mFingerprintProgressDrawable = new UdfpsEnrollProgressBarDrawable(context, attrs);
-        mHandler = new Handler(Looper.getMainLooper());
-        mUdfpsUtils = new UdfpsUtils();
-    }
-
-    @Override
-    protected void onFinishInflate() {
-        ImageView fingerprintView = findViewById(R.id.udfps_enroll_animation_fp_view);
-        fingerprintView.setImageDrawable(mFingerprintDrawable);
-        mFingerprintProgressView = findViewById(R.id.udfps_enroll_animation_fp_progress_view);
-        mFingerprintProgressView.setImageDrawable(mFingerprintProgressDrawable);
-    }
-
-    /**
-     * Receive enroll progress information from FingerprintEnrollEnrollingUdfpsFragment
-     */
-    public void onEnrollmentProgress(int remaining, int totalSteps) {
-        if (mTotalSteps == -1) {
-            mTotalSteps = totalSteps;
-        }
-        mRemainingSteps = remaining;
-        mHandler.post(() -> {
-            mFingerprintProgressDrawable.onEnrollmentProgress(remaining, totalSteps);
-            mFingerprintDrawable.onEnrollmentProgress(remaining, totalSteps);
-        });
-    }
-
-    /**
-     * Receive enroll help information from FingerprintEnrollEnrollingUdfpsFragment
-     */
-    public void onEnrollmentHelp() {
-        mHandler.post(
-                () -> mFingerprintProgressDrawable.onEnrollmentHelp(mRemainingSteps, mTotalSteps));
-    }
-
-    /**
-     * Receive onAcquired from FingerprintEnrollEnrollingUdfpsFragment
-     */
-    public void onAcquired(boolean isAcquiredGood) {
-        final boolean animateIfLastStepGood =
-                isAcquiredGood && (mRemainingSteps <= 2 && mRemainingSteps >= 0);
-        mHandler.post(() -> {
-            onFingerUp();
-            if (animateIfLastStepGood) mFingerprintProgressDrawable.onLastStepAcquired();
-        });
-    }
-
-    /**
-     * Receive onPointerDown from FingerprintEnrollEnrollingUdfpsFragment
-     */
-    public void onPointerDown(int sensorId) {
-        onFingerDown();
-    }
-
-    /**
-     * Receive onPointerUp from FingerprintEnrollEnrollingUdfpsFragment
-     */
-    public void onPointerUp(int sensorId) {
-        onFingerUp();
-    }
-
-    private final ViewTreeObserver.OnDrawListener mOnDrawListener = this::updateOverlayParams;
-
-    /**
-     * setup SensorProperties
-     */
-    public void setSensorProperties(FingerprintSensorPropertiesInternal properties) {
-        mSensorProperties = properties;
-        ((ViewGroup) getParent()).getViewTreeObserver().addOnDrawListener(mOnDrawListener);
-    }
-
-    @Override
-    protected void onDetachedFromWindow() {
-        final ViewGroup parent = (ViewGroup) getParent();
-        if (parent != null) {
-            final ViewTreeObserver observer = parent.getViewTreeObserver();
-            if (observer != null) {
-                observer.removeOnDrawListener(mOnDrawListener);
-            }
-        }
-        super.onDetachedFromWindow();
-    }
-
-    private void onSensorRectUpdated() {
-        updateDimensions();
-
-        // Updates sensor rect in relation to the overlay view
-        mSensorRect.set(getPaddingX(), getPaddingY(),
-                (mOverlayParams.getSensorBounds().width() + getPaddingX()),
-                (mOverlayParams.getSensorBounds().height() + getPaddingY()));
-        mFingerprintDrawable.onSensorRectUpdated(new RectF(mSensorRect));
-    }
-
-    private void updateDimensions() {
-        // Original sensorBounds assume portrait mode.
-        final Rect rotatedBounds = new Rect(mOverlayParams.getSensorBounds());
-        int rotation = mOverlayParams.getRotation();
-        if (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270) {
-            RotationUtils.rotateBounds(
-                    rotatedBounds,
-                    mOverlayParams.getNaturalDisplayWidth(),
-                    mOverlayParams.getNaturalDisplayHeight(),
-                    rotation
-            );
-        }
-
-        RelativeLayout parent = ((RelativeLayout) getParent());
-        if (parent == null) {
-            Log.e(TAG, "Fail to updateDimensions for " + this + ", parent null");
-            return;
-        }
-        final int[] coords = parent.getLocationOnScreen();
-        final int parentLeft = coords[0];
-        final int parentTop = coords[1];
-        final int parentRight = parentLeft + parent.getWidth();
-        final int parentBottom = parentTop + parent.getHeight();
-
-
-        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(getWidth(),
-                getHeight());
-        if (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) {
-            params.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
-            params.rightMargin = parentRight - rotatedBounds.right - getPaddingX();
-            params.topMargin = rotatedBounds.top - parentTop - getPaddingY();
-        } else {
-            if (rotation == Surface.ROTATION_90) {
-                params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-                params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
-                params.rightMargin = parentRight - rotatedBounds.right - getPaddingX();
-                params.bottomMargin = parentBottom - rotatedBounds.bottom - getPaddingY();
-            } else {
-                params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
-                params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
-                params.bottomMargin = parentBottom - rotatedBounds.bottom - getPaddingY();
-                params.leftMargin = rotatedBounds.left - parentLeft - getPaddingX();
-            }
-        }
-        params.height = rotatedBounds.height() + 2 * getPaddingX();
-        params.width = rotatedBounds.width() + 2 * getPaddingY();
-        setLayoutParams(params);
-    }
-
-    private void onFingerDown() {
-        mFingerprintDrawable.setShouldSkipDraw(true);
-        mFingerprintDrawable.invalidateSelf();
-    }
-
-    private void onFingerUp() {
-        mFingerprintDrawable.setShouldSkipDraw(false);
-        mFingerprintDrawable.invalidateSelf();
-    }
-
-    private int getPaddingX() {
-        return mProgressBarRadius;
-    }
-
-    private int getPaddingY() {
-        return mProgressBarRadius;
-    }
-
-    private void updateOverlayParams() {
-
-        if (mSensorProperties == null) {
-            android.util.Log.e(TAG, "There is no sensor info!");
-            return;
-        }
-
-        DisplayInfo displayInfo = new DisplayInfo();
-        if (getDisplay() == null) {
-            android.util.Log.e(TAG, "Can not get display");
-            return;
-        }
-        getDisplay().getDisplayInfo(displayInfo);
-        Rect udfpsBounds = mSensorProperties.getLocation().getRect();
-        float scaleFactor = mUdfpsUtils.getScaleFactor(displayInfo);
-        udfpsBounds.scale(scaleFactor);
-
-        final Rect overlayBounds = new Rect(
-                0, /* left */
-                displayInfo.getNaturalHeight() / 2, /* top */
-                displayInfo.getNaturalWidth(), /* right */
-                displayInfo.getNaturalHeight() /* botom */);
-
-        mOverlayParams = new UdfpsOverlayParams(
-                udfpsBounds,
-                overlayBounds,
-                displayInfo.getNaturalWidth(),
-                displayInfo.getNaturalHeight(),
-                scaleFactor,
-                displayInfo.rotation,
-                mSensorProperties.sensorType);
-
-        post(() -> {
-            mProgressBarRadius =
-                    (int) (mOverlayParams.getScaleFactor() * getContext().getResources().getInteger(
-                            R.integer.config_udfpsEnrollProgressBar));
-            mSensorRect = new Rect(mOverlayParams.getSensorBounds());
-
-            onSensorRectUpdated();
-        });
-
-    }
-}
-
diff --git a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
index 1326831..02b8813 100644
--- a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
@@ -37,15 +37,19 @@
 import android.util.Pair;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 
 import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.flags.Flags;
 import com.android.settings.fuelgauge.BatteryMeterView;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -95,6 +99,7 @@
     private static final int MAIN_DEVICE_ID = 4;
     private static final float HALF_ALPHA = 0.5f;
 
+    PreferenceFragmentCompat mFragment;
     @VisibleForTesting
     LayoutPreference mLayoutPreference;
     @VisibleForTesting
@@ -168,8 +173,11 @@
         mIconCache.clear();
     }
 
-    public void init(CachedBluetoothDevice cachedBluetoothDevice) {
+    /** Initializes the controller. */
+    public void init(
+            CachedBluetoothDevice cachedBluetoothDevice, PreferenceFragmentCompat fragment) {
         mCachedDevice = cachedBluetoothDevice;
+        mFragment = fragment;
     }
 
     private void registerBluetoothDevice() {
@@ -323,6 +331,14 @@
                                     MAIN_DEVICE_ID);
                         }
                     });
+            if (Flags.enableBluetoothDeviceDetailsPolish()) {
+                ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button);
+                renameButton.setVisibility(View.VISIBLE);
+                renameButton.setOnClickListener(view -> {
+                    RemoteDeviceNameDialogFragment.newInstance(mCachedDevice).show(
+                            mFragment.getFragmentManager(), RemoteDeviceNameDialogFragment.TAG);
+                });
+            }
         }
     }
 
@@ -456,18 +472,24 @@
                         com.android.settings.Utils.formatPercentage(batteryLevel));
                 batterySummaryView.setVisibility(View.VISIBLE);
                 showBatteryIcon(linearLayout, batteryLevel, lowBatteryLevel, charging);
+                showBatteryRing(linearLayout, batteryLevel);
             } else {
                 if (deviceId == MAIN_DEVICE_ID) {
                     linearLayout.setVisibility(View.VISIBLE);
                     linearLayout.findViewById(R.id.bt_battery_icon).setVisibility(View.GONE);
+
                     int level = preloadedNativeBatteryLevel.get();
                     if (level != BluetoothDevice.BATTERY_LEVEL_UNKNOWN
                             && level != BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF) {
                         batterySummaryView.setText(
                                 com.android.settings.Utils.formatPercentage(level));
                         batterySummaryView.setVisibility(View.VISIBLE);
+                        showBatteryRing(linearLayout, level);
                     } else {
                         batterySummaryView.setVisibility(View.GONE);
+                        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+                            linearLayout.findViewById(R.id.battery_ring).setVisibility(View.GONE);
+                        }
                     }
                 } else {
                     // Hide it if it doesn't have battery information
@@ -481,6 +503,7 @@
                         com.android.settings.Utils.formatPercentage(batteryLevel));
                 batterySummaryView.setVisibility(View.VISIBLE);
                 showBatteryIcon(linearLayout, batteryLevel, lowBatteryLevel, charging);
+                showBatteryRing(linearLayout, batteryLevel);
             } else {
                 batterySummaryView.setVisibility(View.GONE);
             }
@@ -610,6 +633,14 @@
         imageView.setVisibility(View.VISIBLE);
     }
 
+    private void showBatteryRing(LinearLayout linearLayout, int level) {
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            ProgressBar batteryProgress = linearLayout.findViewById(R.id.battery_ring);
+            batteryProgress.setProgress(level);
+            batteryProgress.setVisibility(View.VISIBLE);
+        }
+    }
+
     private void updateDisconnectLayout() {
         mLayoutPreference.findViewById(R.id.layout_left).setVisibility(View.GONE);
         mLayoutPreference.findViewById(R.id.layout_right).setVisibility(View.GONE);
@@ -620,6 +651,9 @@
         linearLayout.findViewById(R.id.header_title).setVisibility(View.GONE);
         linearLayout.findViewById(R.id.bt_battery_summary).setVisibility(View.GONE);
         linearLayout.findViewById(R.id.bt_battery_icon).setVisibility(View.GONE);
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            linearLayout.findViewById(R.id.battery_ring).setVisibility(View.GONE);
+        }
 
         // Only show bluetooth icon
         final BluetoothDevice bluetoothDevice = mCachedDevice.getDevice();
diff --git a/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
index b361bd2..bb56c50 100644
--- a/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
@@ -23,7 +23,6 @@
 import androidx.preference.Preference;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -35,7 +34,7 @@
     private static final String TAG = "AvailableMediaBluetoothDeviceUpdater";
     private static final boolean DBG = Log.isLoggable(BluetoothDeviceUpdater.TAG, Log.DEBUG);
 
-    private static final String PREF_KEY = "available_media_bt";
+    private static final String PREF_KEY_PREFIX = "available_media_bt_";
 
     private final AudioManager mAudioManager;
     private final LocalBluetoothManager mLocalBtManager;
@@ -77,7 +76,7 @@
             // It would show in Available Devices group if the audio sharing flag is disabled or
             // the device is not in the audio sharing session.
             if (cachedDevice.isConnectedLeAudioDevice()) {
-                if (AudioSharingUtils.isFeatureEnabled()
+                if (BluetoothUtils.isAudioSharingEnabled()
                         && BluetoothUtils.hasConnectedBroadcastSource(
                                 cachedDevice, mLocalBtManager)) {
                     Log.d(
@@ -141,8 +140,8 @@
     }
 
     @Override
-    protected String getPreferenceKey() {
-        return PREF_KEY;
+    protected String getPreferenceKeyPrefix() {
+        return PREF_KEY_PREFIX;
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/BlockingPrefWithSliceController.java b/src/com/android/settings/bluetooth/BlockingPrefWithSliceController.java
index 0690186..442acd2 100644
--- a/src/com/android/settings/bluetooth/BlockingPrefWithSliceController.java
+++ b/src/com/android/settings/bluetooth/BlockingPrefWithSliceController.java
@@ -101,7 +101,8 @@
         return mUri != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
-    public void setSliceUri(Uri uri) {
+    /** Sets Slice uri for the preference. */
+    public void setSliceUri(@Nullable Uri uri) {
         mUri = uri;
         mLiveData = SliceLiveData.fromUri(mContext, mUri, (int type, Throwable source) -> {
             Log.w(TAG, "Slice may be null. uri = " + uri + ", error = " + type);
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
index 5ffa8cf..3fbd445 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
@@ -26,6 +26,7 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -47,7 +48,10 @@
 
     @Override
     public boolean isAvailable() {
-        boolean hasLeAudio = mCachedDevice.getConnectableProfiles()
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            return false;
+        }
+        boolean hasLeAudio = mCachedDevice.getUiAccessibleProfiles()
                 .stream()
                 .anyMatch(profile -> profile.getProfileId() == BluetoothProfile.LE_AUDIO);
         return !BluetoothUtils.isAdvancedDetailsHeader(mCachedDevice.getDevice()) && !hasLeAudio;
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java
index 564e138..f7ccc61 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsController.java
@@ -159,19 +159,22 @@
         mPreference.setEnabled(mCachedDevice.isConnectedHapClientDevice());
 
         loadAllPresetInfo();
+        mPreference.setSummary(null);
         if (mPreference.getEntries().length == 0) {
-            if (DEBUG) {
-                Log.w(TAG, "Disable the preference since preset info size = 0");
+            if (mPreference.isEnabled()) {
+                if (DEBUG) {
+                    Log.w(TAG, "Disable the preference since preset info size = 0");
+                }
+                mPreference.setEnabled(false);
+                mPreference.setSummary(mContext.getString(
+                        R.string.bluetooth_hearing_aids_presets_empty_list_message));
             }
-            mPreference.setEnabled(false);
         } else {
             int activePresetIndex = mHapClientProfile.getActivePresetIndex(
                     mCachedDevice.getDevice());
             if (activePresetIndex != BluetoothHapClient.PRESET_INDEX_UNAVAILABLE) {
                 mPreference.setValue(Integer.toString(activePresetIndex));
                 mPreference.setSummary(mPreference.getEntry());
-            } else {
-                mPreference.setSummary(null);
             }
         }
     }
@@ -273,7 +276,8 @@
             return;
         }
         List<BluetoothHapPresetInfo> infoList = mHapClientProfile.getAllPresetInfo(
-                mCachedDevice.getDevice());
+                mCachedDevice.getDevice()).stream().filter(
+                BluetoothHapPresetInfo::isAvailable).toList();
         CharSequence[] presetNames = new CharSequence[infoList.size()];
         CharSequence[] presetIndexes = new CharSequence[infoList.size()];
         for (int i = 0; i < infoList.size(); i++) {
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
index d1d00d8..e29dcb0 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
@@ -50,7 +50,6 @@
             CachedBluetoothDevice device,
             Lifecycle lifecycle) {
         super(context, fragment, device, lifecycle);
-        lifecycle.addObserver(this);
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
index 3fa811a..0897a43 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
@@ -43,7 +43,6 @@
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.HeadsetProfile;
-import com.android.settingslib.bluetooth.HearingAidProfile;
 import com.android.settingslib.bluetooth.LeAudioProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfile;
@@ -90,11 +89,12 @@
     private LocalBluetoothManager mManager;
     private LocalBluetoothProfileManager mProfileManager;
     private CachedBluetoothDevice mCachedDevice;
-    private List<CachedBluetoothDevice> mAllOfCachedDevices;
+    private Set<CachedBluetoothDevice> mCachedDeviceGroup;
     private Map<String, List<CachedBluetoothDevice>> mProfileDeviceMap =
             new HashMap<String, List<CachedBluetoothDevice>>();
     private boolean mIsLeContactSharingEnabled = false;
     private boolean mIsLeAudioToggleEnabled = false;
+    private boolean mIsLeAudioOnlyDevice = false;
 
     @VisibleForTesting
     PreferenceCategory mProfilesContainer;
@@ -105,8 +105,7 @@
         mManager = manager;
         mProfileManager = mManager.getProfileManager();
         mCachedDevice = device;
-        mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
-        lifecycle.addObserver(this);
+        mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
     }
 
     @Override
@@ -182,7 +181,15 @@
         }
 
         if (profile instanceof LeAudioProfile) {
-            profilePref.setVisible(mIsLeAudioToggleEnabled);
+            boolean showLeAudioToggle = mIsLeAudioToggleEnabled;
+            if (Flags.hideLeAudioToggleForLeAudioOnlyDevice() && mIsLeAudioOnlyDevice) {
+                showLeAudioToggle = false;
+                Log.d(
+                        TAG,
+                        "Hide LeAudio toggle for LeAudio-only Device: "
+                                + mCachedDevice.getDevice().getAnonymizedAddress());
+            }
+            profilePref.setVisible(showLeAudioToggle);
         }
 
         if (profile instanceof MapProfile) {
@@ -301,19 +308,18 @@
      * Helper to get the list of connectable and special profiles.
      */
     private List<LocalBluetoothProfile> getProfiles() {
-        List<LocalBluetoothProfile> result = new ArrayList<LocalBluetoothProfile>();
+        List<LocalBluetoothProfile> result = new ArrayList<>();
         mProfileDeviceMap.clear();
-        if (mAllOfCachedDevices == null || mAllOfCachedDevices.isEmpty()) {
+        if (mCachedDeviceGroup == null || mCachedDeviceGroup.isEmpty()) {
             return result;
         }
-        for (CachedBluetoothDevice cachedItem : mAllOfCachedDevices) {
-            List<LocalBluetoothProfile> tmpResult = cachedItem.getConnectableProfiles();
+        for (CachedBluetoothDevice cachedItem : mCachedDeviceGroup) {
+            List<LocalBluetoothProfile> tmpResult = cachedItem.getUiAccessibleProfiles();
             for (LocalBluetoothProfile profile : tmpResult) {
                 if (mProfileDeviceMap.containsKey(profile.toString())) {
                     mProfileDeviceMap.get(profile.toString()).add(cachedItem);
                 } else {
-                    List<CachedBluetoothDevice> tmpCachedDeviceList =
-                            new ArrayList<CachedBluetoothDevice>();
+                    List<CachedBluetoothDevice> tmpCachedDeviceList = new ArrayList<>();
                     tmpCachedDeviceList.add(cachedItem);
                     mProfileDeviceMap.put(profile.toString(), tmpCachedDeviceList);
                     result.add(profile);
@@ -326,12 +332,14 @@
         // Only provide PBAP cabability if the client device has requested PBAP.
         if (pbapPermission != BluetoothDevice.ACCESS_UNKNOWN) {
             final PbapServerProfile psp = mManager.getProfileManager().getPbapProfile();
-            result.add(psp);
+            if (psp != null) {
+                result.add(psp);
+            }
         }
 
         final MapProfile mapProfile = mManager.getProfileManager().getMapProfile();
         final int mapPermission = device.getMessageAccessPermission();
-        if (mapPermission != BluetoothDevice.ACCESS_UNKNOWN) {
+        if (mapPermission != BluetoothDevice.ACCESS_UNKNOWN && mapProfile != null) {
             result.add(mapProfile);
         }
 
@@ -345,6 +353,15 @@
             result.remove(mManager.getProfileManager().getA2dpProfile());
             result.remove(mManager.getProfileManager().getHeadsetProfile());
         }
+        boolean hearingAidSupported = result.contains(
+                mManager.getProfileManager().getHearingAidProfile());
+        // Remove hearing aids toggle anyway since showing the toggle will confuse users
+        if (hearingAidSupported) {
+            result.remove(mManager.getProfileManager().getHearingAidProfile());
+        }
+        if (leAudioSupported && !classicAudioSupported && !hearingAidSupported) {
+            mIsLeAudioOnlyDevice = true;
+        }
         Log.d(TAG, "getProfiles:Map:" + mProfileDeviceMap);
         return result;
     }
@@ -497,7 +514,7 @@
 
     @Override
     public void onPause() {
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.unregisterCallback(this);
         }
         mProfileManager.removeServiceListener(this);
@@ -506,26 +523,13 @@
     @Override
     public void onResume() {
         updateLeAudioConfig();
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.registerCallback(this);
         }
         mProfileManager.addServiceListener(this);
         refresh();
     }
 
-    private boolean isLeAudioOnlyDevice() {
-        if (mCachedDevice.getProfiles().stream()
-                .noneMatch(profile -> profile instanceof LeAudioProfile)) {
-            return false;
-        }
-        return mCachedDevice.getProfiles().stream()
-                .noneMatch(
-                        profile ->
-                                profile instanceof HearingAidProfile
-                                        || profile instanceof A2dpProfile
-                                        || profile instanceof HeadsetProfile);
-    }
-
     private void updateLeAudioConfig() {
         mIsLeContactSharingEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
                 SettingsUIDeviceConfig.BT_LE_AUDIO_CONTACT_SHARING_ENABLED, true);
@@ -534,13 +538,6 @@
         boolean isLeEnabledByDefault =
                 SystemProperties.getBoolean(LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY, true);
         mIsLeAudioToggleEnabled = isLeAudioToggleVisible || isLeEnabledByDefault;
-        if (Flags.hideLeAudioToggleForLeAudioOnlyDevice() && isLeAudioOnlyDevice()) {
-            mIsLeAudioToggleEnabled = false;
-            Log.d(
-                    TAG,
-                    "Hide LeAudio toggle for LeAudio-only Device: "
-                            + mCachedDevice.getDevice().getAnonymizedAddress());
-        }
         Log.d(TAG, "BT_LE_AUDIO_CONTACT_SHARING_ENABLED:" + mIsLeContactSharingEnabled
                 + ", LE_AUDIO_TOGGLE_VISIBLE_PROPERTY:" + isLeAudioToggleVisible
                 + ", LE_AUDIO_CONNECTION_BY_DEFAULT_PROPERTY:" + isLeEnabledByDefault);
@@ -548,11 +545,11 @@
 
     @Override
     public void onDeviceAttributesChanged() {
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.unregisterCallback(this);
         }
-        mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.registerCallback(this);
         }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
index 4ff7136..398edb6 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
@@ -39,8 +39,8 @@
 
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-import com.android.settingslib.bluetooth.LocalBluetoothProfile;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.flags.Flags;
 import com.android.settingslib.utils.ThreadUtils;
@@ -299,57 +299,14 @@
                         + " profiles: "
                         + mCachedDevice.getProfiles());
 
-        AudioDeviceAttributes saDevice = null;
-        for (LocalBluetoothProfile profile : mCachedDevice.getProfiles()) {
-            // pick first enabled profile that is compatible with spatial audio
-            if (SA_PROFILES.contains(profile.getProfileId())
-                    && profile.isEnabled(mCachedDevice.getDevice())) {
-                switch (profile.getProfileId()) {
-                    case BluetoothProfile.A2DP:
-                        saDevice =
-                                new AudioDeviceAttributes(
-                                        AudioDeviceAttributes.ROLE_OUTPUT,
-                                        AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
-                                        mCachedDevice.getAddress());
-                        break;
-                    case BluetoothProfile.LE_AUDIO:
-                        if (mAudioManager.getBluetoothAudioDeviceCategory(
-                                mCachedDevice.getAddress())
-                                == AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER) {
-                            saDevice =
-                                    new AudioDeviceAttributes(
-                                            AudioDeviceAttributes.ROLE_OUTPUT,
-                                            AudioDeviceInfo.TYPE_BLE_SPEAKER,
-                                            mCachedDevice.getAddress());
-                        } else {
-                            saDevice =
-                                    new AudioDeviceAttributes(
-                                            AudioDeviceAttributes.ROLE_OUTPUT,
-                                            AudioDeviceInfo.TYPE_BLE_HEADSET,
-                                            mCachedDevice.getAddress());
-                        }
-
-                        break;
-                    case BluetoothProfile.HEARING_AID:
-                        saDevice =
-                                new AudioDeviceAttributes(
-                                        AudioDeviceAttributes.ROLE_OUTPUT,
-                                        AudioDeviceInfo.TYPE_HEARING_AID,
-                                        mCachedDevice.getAddress());
-                        break;
-                    default:
-                        Log.i(
-                                TAG,
-                                "unrecognized profile for spatial audio: "
-                                        + profile.getProfileId());
-                        break;
-                }
-                break;
-            }
-        }
-        mAudioDevice = null;
+        AudioDeviceAttributes saDevice =
+                BluetoothUtils.getAudioDeviceAttributesForSpatialAudio(
+                        mCachedDevice,
+                        mAudioManager.getBluetoothAudioDeviceCategory(mCachedDevice.getAddress()));
         if (saDevice != null && mSpatializer.isAvailableForDevice(saDevice)) {
             mAudioDevice = saDevice;
+        } else {
+            mAudioDevice = null;
         }
 
         Log.d(
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index 5f9957b..76bff57 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -43,13 +43,17 @@
 import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
+import com.android.settings.bluetooth.ui.model.FragmentTypeModel;
+import com.android.settings.bluetooth.ui.view.DeviceDetailsFragmentFormatter;
 import com.android.settings.connecteddevice.stylus.StylusDevicesController;
 import com.android.settings.core.SettingsUIDeviceConfig;
 import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.inputmethod.KeyboardSettingsPreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.slices.SlicePreferenceController;
@@ -59,9 +63,11 @@
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.Consumer;
 
 public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment {
     public static final String KEY_DEVICE_ADDRESS = "device_address";
@@ -97,6 +103,8 @@
     @VisibleForTesting
     CachedBluetoothDevice mCachedDevice;
     BluetoothAdapter mBluetoothAdapter;
+    @VisibleForTesting
+    DeviceDetailsFragmentFormatter mFormatter;
 
     @Nullable
     InputDevice mInputDevice;
@@ -213,18 +221,29 @@
             finish();
             return;
         }
-        use(AdvancedBluetoothDetailsHeaderController.class).init(mCachedDevice);
-        use(LeAudioBluetoothDetailsHeaderController.class).init(mCachedDevice, mManager);
-        use(KeyboardSettingsPreferenceController.class).init(mCachedDevice);
+        getController(
+                AdvancedBluetoothDetailsHeaderController.class,
+                controller -> controller.init(mCachedDevice, this));
+        getController(
+                LeAudioBluetoothDetailsHeaderController.class,
+                controller -> controller.init(mCachedDevice, mManager, this));
+        getController(
+                KeyboardSettingsPreferenceController.class,
+                controller -> controller.init(mCachedDevice));
 
         final BluetoothFeatureProvider featureProvider =
                 FeatureFactory.getFeatureFactory().getBluetoothFeatureProvider();
         final boolean sliceEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
                 SettingsUIDeviceConfig.BT_SLICE_SETTINGS_ENABLED, true);
 
-        use(BlockingPrefWithSliceController.class).setSliceUri(sliceEnabled
-                ? featureProvider.getBluetoothDeviceSettingsUri(mCachedDevice.getDevice())
-                : null);
+        getController(
+                BlockingPrefWithSliceController.class,
+                controller ->
+                        controller.setSliceUri(
+                                sliceEnabled
+                                        ? featureProvider.getBluetoothDeviceSettingsUri(
+                                                mCachedDevice.getDevice())
+                                        : null));
 
         mManager.getEventManager().registerCallback(mBluetoothCallback);
         mBluetoothAdapter.addOnMetadataChangedListener(
@@ -237,8 +256,17 @@
     public void onDetach() {
         super.onDetach();
         mManager.getEventManager().unregisterCallback(mBluetoothCallback);
-        mBluetoothAdapter.removeOnMetadataChangedListener(
-                mCachedDevice.getDevice(), mExtraControlMetadataListener);
+        BluetoothDevice device = mCachedDevice.getDevice();
+        try {
+            mBluetoothAdapter.removeOnMetadataChangedListener(
+                    device, mExtraControlMetadataListener);
+        } catch (IllegalArgumentException e) {
+            Log.w(
+                    TAG,
+                    "Unable to unregister metadata change callback for "
+                            + mCachedDevice,
+                    e);
+        }
     }
 
     private void updateExtraControlUri(int viewWidth) {
@@ -256,21 +284,35 @@
             }
         }
         mExtraControlUriLoaded |= controlUri != null;
-        final SlicePreferenceController slicePreferenceController = use(
-                SlicePreferenceController.class);
-        slicePreferenceController.setSliceUri(sliceEnabled ? controlUri : null);
-        slicePreferenceController.onStart();
-        slicePreferenceController.displayPreference(getPreferenceScreen());
+
+        Uri finalControlUri = controlUri;
+        getController(SlicePreferenceController.class, controller -> {
+            controller.setSliceUri(sliceEnabled ? finalControlUri : null);
+            controller.onStart();
+            controller.displayPreference(getPreferenceScreen());
+        });
+
 
         // Temporarily fix the issue that the page will be automatically scrolled to a wrong
         // position when entering the page. This will make sure the bluetooth header is shown on top
         // of the page.
-        use(LeAudioBluetoothDetailsHeaderController.class).displayPreference(
-                getPreferenceScreen());
-        use(AdvancedBluetoothDetailsHeaderController.class).displayPreference(
-                getPreferenceScreen());
-        use(BluetoothDetailsHeaderController.class).displayPreference(
-                getPreferenceScreen());
+        getController(
+                LeAudioBluetoothDetailsHeaderController.class,
+                controller -> controller.displayPreference(getPreferenceScreen()));
+        getController(
+                AdvancedBluetoothDetailsHeaderController.class,
+                controller -> controller.displayPreference(getPreferenceScreen()));
+        getController(
+                BluetoothDetailsHeaderController.class,
+                controller -> controller.displayPreference(getPreferenceScreen()));
+    }
+
+    protected <T extends AbstractPreferenceController> void getController(Class<T> clazz,
+            Consumer<T> action) {
+        T controller = use(clazz);
+        if (controller != null) {
+            action.accept(controller);
+        }
     }
 
     private final ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener =
@@ -308,6 +350,14 @@
     }
 
     @Override
+    public void onCreatePreferences(@NonNull Bundle savedInstanceState, @NonNull String rootKey) {
+        super.onCreatePreferences(savedInstanceState, rootKey);
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            mFormatter.updateLayout(FragmentTypeModel.DeviceDetailsMainFragment.INSTANCE);
+        }
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
         finishFragmentIfNecessary();
@@ -338,7 +388,7 @@
 
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        if (!mUserManager.isGuestUser()) {
+        if (!Flags.enableBluetoothDeviceDetailsPolish() && !mUserManager.isGuestUser()) {
             MenuItem item = menu.add(0, EDIT_DEVICE_NAME_ITEM_ID, 0,
                     R.string.bluetooth_rename_button);
             item.setIcon(com.android.internal.R.drawable.ic_mode_edit);
@@ -358,13 +408,40 @@
     }
 
     @Override
+    protected void addPreferenceController(AbstractPreferenceController controller) {
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            List<String> keys =
+                    mFormatter.getVisiblePreferenceKeys(
+                            FragmentTypeModel.DeviceDetailsMainFragment.INSTANCE);
+            Lifecycle lifecycle = getSettingsLifecycle();
+            if (keys == null || keys.contains(controller.getPreferenceKey())) {
+                super.addPreferenceController(controller);
+            } else if (controller instanceof LifecycleObserver) {
+                lifecycle.removeObserver((LifecycleObserver) controller);
+            }
+        } else {
+            super.addPreferenceController(controller);
+        }
+    }
+
+    @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            mFormatter =
+                    FeatureFactory.getFeatureFactory()
+                            .getBluetoothFeatureProvider()
+                            .getDeviceDetailsFragmentFormatter(
+                                    requireContext(), this, mBluetoothAdapter, mCachedDevice);
+        }
         ArrayList<AbstractPreferenceController> controllers = new ArrayList<>();
 
         if (mCachedDevice != null) {
             Lifecycle lifecycle = getSettingsLifecycle();
             controllers.add(new BluetoothDetailsHeaderController(context, this, mCachedDevice,
                     lifecycle));
+            controllers.add(
+                    new GeneralBluetoothDetailsHeaderController(
+                            context, this, mCachedDevice, lifecycle));
             controllers.add(new BluetoothDetailsButtonsController(context, this, mCachedDevice,
                     lifecycle));
             controllers.add(new BluetoothDetailsCompanionAppsController(context, this,
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index ac0c63b..209c900 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -46,6 +46,7 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.GearPreference;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.utils.ThreadUtils;
 
@@ -55,6 +56,7 @@
 import java.util.Set;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 /**
  * BluetoothDevicePreference is the preference type used to display each remote
@@ -76,7 +78,10 @@
     }
 
     private final CachedBluetoothDevice mCachedDevice;
+    private Set<CachedBluetoothDevice> mCachedDeviceGroup;
+
     private final UserManager mUserManager;
+    private final LocalBluetoothManager mLocalBtManager;
 
     private Set<BluetoothDevice> mBluetoothDevices;
     @VisibleForTesting
@@ -113,6 +118,21 @@
         @Override
         public void onDeviceAttributesChanged() {
             onPreferenceAttributesChanged();
+            Set<CachedBluetoothDevice> newCachedDeviceGroup = new HashSet<>(
+                    Utils.findAllCachedBluetoothDevicesByGroupId(mLocalBtManager, mCachedDevice));
+            if (!mCachedDeviceGroup.equals(newCachedDeviceGroup)) {
+                for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+                    cachedBluetoothDevice.unregisterCallback(this);
+                }
+                unregisterMetadataChangedListener();
+
+                mCachedDeviceGroup = newCachedDeviceGroup;
+
+                for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+                    cachedBluetoothDevice.registerCallback(getContext().getMainExecutor(), this);
+                }
+                registerMetadataChangedListener();
+            }
         }
     }
 
@@ -121,6 +141,7 @@
         super(context, null);
         mResources = getContext().getResources();
         mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        mLocalBtManager = Utils.getLocalBluetoothManager(context);
         mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
         mShowDevicesWithoutNames = showDeviceWithoutNames;
 
@@ -131,6 +152,8 @@
         }
 
         mCachedDevice = cachedDevice;
+        mCachedDeviceGroup = new HashSet<>(
+                Utils.findAllCachedBluetoothDevicesByGroupId(mLocalBtManager, mCachedDevice));
         mCallback = new BluetoothDevicePreferenceCallback();
         mId = sNextId.getAndIncrement();
         mType = type;
@@ -164,7 +187,9 @@
     protected void onPrepareForRemoval() {
         super.onPrepareForRemoval();
         if (!mIsCallbackRemoved) {
-            mCachedDevice.unregisterCallback(mCallback);
+            for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+                cachedBluetoothDevice.unregisterCallback(mCallback);
+            }
             unregisterMetadataChangedListener();
             mIsCallbackRemoved = true;
         }
@@ -178,7 +203,9 @@
     public void onAttached() {
         super.onAttached();
         if (mIsCallbackRemoved) {
-            mCachedDevice.registerCallback(mCallback);
+            for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+                cachedBluetoothDevice.registerCallback(getContext().getMainExecutor(), mCallback);
+            }
             registerMetadataChangedListener();
             mIsCallbackRemoved = false;
         }
@@ -189,7 +216,9 @@
     public void onDetached() {
         super.onDetached();
         if (!mIsCallbackRemoved) {
-            mCachedDevice.unregisterCallback(mCallback);
+            for (CachedBluetoothDevice cachedBluetoothDevice : mCachedDeviceGroup) {
+                cachedBluetoothDevice.unregisterCallback(mCallback);
+            }
             unregisterMetadataChangedListener();
             mIsCallbackRemoved = true;
         }
@@ -200,16 +229,11 @@
             Log.d(TAG, "No mBluetoothAdapter");
             return;
         }
-        if (mBluetoothDevices == null) {
-            mBluetoothDevices = new HashSet<>();
-        }
-        mBluetoothDevices.clear();
-        if (mCachedDevice.getDevice() != null) {
-            mBluetoothDevices.add(mCachedDevice.getDevice());
-        }
-        for (CachedBluetoothDevice cbd : mCachedDevice.getMemberDevice()) {
-            mBluetoothDevices.add(cbd.getDevice());
-        }
+
+        mBluetoothDevices = mCachedDeviceGroup.stream()
+                .map(CachedBluetoothDevice::getDevice)
+                .collect(Collectors.toCollection(HashSet::new));
+
         if (mBluetoothDevices.isEmpty()) {
             Log.d(TAG, "No BT device to register.");
             return;
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
index 4b21b2e..965bb94 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
@@ -213,9 +213,9 @@
     public abstract boolean isFilterMatched(CachedBluetoothDevice cachedBluetoothDevice);
 
     /**
-     * Return a preference key for logging
+     * Return a preference key prefix for logging
      */
-    protected abstract String getPreferenceKey();
+    protected abstract String getPreferenceKeyPrefix();
 
     /**
      * Update whether to show {@link CachedBluetoothDevice} in the list.
@@ -248,7 +248,7 @@
                     new BluetoothDevicePreference(mPrefContext, cachedDevice,
                             true /* showDeviceWithoutNames */,
                             type);
-            btPreference.setKey(getPreferenceKey());
+            btPreference.setKey(getPreferenceKeyPrefix() + cachedDevice.hashCode());
             btPreference.setOnGearClickListener(mDeviceProfilesListener);
             if (this instanceof Preference.OnPreferenceClickListener) {
                 btPreference.setOnPreferenceClickListener(
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index df5cc72..a5d0bc6 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -132,7 +132,7 @@
 
         new Thread(() -> {
             try {
-                mIsSatelliteOn.set(mSatelliteRepository.requestIsEnabled(
+                mIsSatelliteOn.set(mSatelliteRepository.requestIsSessionStarted(
                         Executors.newSingleThreadExecutor()).get(3000, TimeUnit.MILLISECONDS));
             } catch (InterruptedException | ExecutionException | TimeoutException e) {
                 Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java b/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
index 1751082..be0f6f3 100644
--- a/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
+++ b/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
@@ -16,15 +16,23 @@
 
 package com.android.settings.bluetooth;
 
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.content.ComponentName;
 import android.content.Context;
+import android.media.AudioManager;
 import android.media.Spatializer;
 import android.net.Uri;
 
+import androidx.annotation.NonNull;
+import androidx.lifecycle.LifecycleCoroutineScope;
 import androidx.preference.Preference;
 
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.bluetooth.domain.interactor.SpatialAudioInteractor;
+import com.android.settings.bluetooth.ui.view.DeviceDetailsFragmentFormatter;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepository;
 
 import java.util.List;
 import java.util.Set;
@@ -84,4 +92,26 @@
      */
     Set<String> getInvisibleProfilePreferenceKeys(
             Context context, BluetoothDevice bluetoothDevice);
+
+    /** Gets DeviceSettingRepository. */
+    @NonNull
+    DeviceSettingRepository getDeviceSettingRepository(
+            @NonNull Context context,
+            @NonNull BluetoothAdapter bluetoothAdapter,
+            @NonNull LifecycleCoroutineScope scope);
+
+    /** Gets spatial audio interactor. */
+    @NonNull
+    SpatialAudioInteractor getSpatialAudioInteractor(
+            @NonNull Context context,
+            @NonNull AudioManager audioManager,
+            @NonNull LifecycleCoroutineScope scope);
+
+    /** Gets device details fragment layout formatter. */
+    @NonNull
+    DeviceDetailsFragmentFormatter getDeviceDetailsFragmentFormatter(
+            @NonNull Context context,
+            @NonNull SettingsPreferenceFragment fragment,
+            @NonNull BluetoothAdapter bluetoothAdapter,
+            @NonNull CachedBluetoothDevice cachedDevice);
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java
deleted file mode 100644
index 2d4ac49..0000000
--- a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java
+++ /dev/null
@@ -1,76 +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.bluetooth;
-
-import android.bluetooth.BluetoothDevice;
-import android.content.ComponentName;
-import android.content.Context;
-import android.media.AudioManager;
-import android.media.Spatializer;
-import android.net.Uri;
-
-import androidx.preference.Preference;
-
-import com.android.settingslib.bluetooth.BluetoothUtils;
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-
-import java.util.List;
-import java.util.Set;
-
-/**
- * Impl of {@link BluetoothFeatureProvider}
- */
-public class BluetoothFeatureProviderImpl implements BluetoothFeatureProvider {
-
-    @Override
-    public Uri getBluetoothDeviceSettingsUri(BluetoothDevice bluetoothDevice) {
-        final byte[] uriByte = bluetoothDevice.getMetadata(
-                BluetoothDevice.METADATA_ENHANCED_SETTINGS_UI_URI);
-        return uriByte == null ? null : Uri.parse(new String(uriByte));
-    }
-
-    @Override
-    public String getBluetoothDeviceControlUri(BluetoothDevice bluetoothDevice) {
-        return BluetoothUtils.getControlUriMetaData(bluetoothDevice);
-    }
-
-    @Override
-    public List<ComponentName> getRelatedTools() {
-        return null;
-    }
-
-    @Override
-    public Spatializer getSpatializer(Context context) {
-        AudioManager audioManager = context.getSystemService(AudioManager.class);
-        return audioManager.getSpatializer();
-    }
-
-    @Override
-    public List<Preference> getBluetoothExtraOptions(Context context,
-            CachedBluetoothDevice device) {
-        return ImmutableList.of();
-    }
-
-    @Override
-    public Set<String> getInvisibleProfilePreferenceKeys(
-            Context context, BluetoothDevice bluetoothDevice) {
-        return ImmutableSet.of();
-    }
-}
diff --git a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.kt b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.kt
new file mode 100644
index 0000000..3a549c6
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.kt
@@ -0,0 +1,106 @@
+/*
+ * 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.bluetooth
+
+import android.bluetooth.BluetoothAdapter
+import android.bluetooth.BluetoothDevice
+import android.content.ComponentName
+import android.content.Context
+import android.media.AudioManager
+import android.media.Spatializer
+import android.net.Uri
+import androidx.lifecycle.LifecycleCoroutineScope
+import androidx.preference.Preference
+import com.android.settings.SettingsPreferenceFragment
+import com.android.settings.bluetooth.domain.interactor.SpatialAudioInteractor
+import com.android.settings.bluetooth.domain.interactor.SpatialAudioInteractorImpl
+import com.android.settings.bluetooth.ui.view.DeviceDetailsFragmentFormatter
+import com.android.settings.bluetooth.ui.view.DeviceDetailsFragmentFormatterImpl
+import com.android.settingslib.bluetooth.BluetoothUtils
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepository
+import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepositoryImpl
+import com.android.settingslib.media.data.repository.SpatializerRepositoryImpl
+import com.android.settingslib.media.domain.interactor.SpatializerInteractor
+import com.google.common.collect.ImmutableList
+import com.google.common.collect.ImmutableSet
+import kotlinx.coroutines.Dispatchers
+
+/** Impl of [BluetoothFeatureProvider] */
+open class BluetoothFeatureProviderImpl : BluetoothFeatureProvider {
+    override fun getBluetoothDeviceSettingsUri(bluetoothDevice: BluetoothDevice): Uri? {
+        val uriByte = bluetoothDevice.getMetadata(BluetoothDevice.METADATA_ENHANCED_SETTINGS_UI_URI)
+        return uriByte?.let { Uri.parse(String(it)) }
+    }
+
+    override fun getBluetoothDeviceControlUri(bluetoothDevice: BluetoothDevice): String? {
+        return BluetoothUtils.getControlUriMetaData(bluetoothDevice)
+    }
+
+    override fun getRelatedTools(): List<ComponentName>? {
+        return null
+    }
+
+    override fun getSpatializer(context: Context): Spatializer? {
+        val audioManager = context.getSystemService(AudioManager::class.java)
+        return audioManager.spatializer
+    }
+
+    override fun getBluetoothExtraOptions(
+        context: Context,
+        device: CachedBluetoothDevice
+    ): List<Preference>? {
+        return ImmutableList.of<Preference>()
+    }
+
+    override fun getInvisibleProfilePreferenceKeys(
+        context: Context,
+        bluetoothDevice: BluetoothDevice
+    ): Set<String> {
+        return ImmutableSet.of()
+    }
+
+    override fun getDeviceSettingRepository(
+        context: Context,
+        bluetoothAdapter: BluetoothAdapter,
+        scope: LifecycleCoroutineScope
+    ): DeviceSettingRepository =
+        DeviceSettingRepositoryImpl(context, bluetoothAdapter, scope, Dispatchers.IO)
+
+    override fun getSpatialAudioInteractor(
+        context: Context,
+        audioManager: AudioManager,
+        scope: LifecycleCoroutineScope
+    ): SpatialAudioInteractor {
+        return SpatialAudioInteractorImpl(
+            context, audioManager,
+            SpatializerInteractor(
+                SpatializerRepositoryImpl(
+                    audioManager.spatializer,
+                    Dispatchers.IO
+                )
+            ), scope, Dispatchers.IO)
+    }
+
+    override fun getDeviceDetailsFragmentFormatter(
+        context: Context,
+        fragment: SettingsPreferenceFragment,
+        bluetoothAdapter: BluetoothAdapter,
+        cachedDevice: CachedBluetoothDevice
+    ): DeviceDetailsFragmentFormatter {
+        return DeviceDetailsFragmentFormatterImpl(context, fragment, bluetoothAdapter, cachedDevice)
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDetail.java b/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
index ca53854..ebb07bd 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
@@ -79,7 +79,7 @@
         boolean isSatelliteOn = true;
         try {
             isSatelliteOn =
-                    satelliteRepository.requestIsEnabled(
+                    satelliteRepository.requestIsSessionStarted(
                             Executors.newSingleThreadExecutor()).get(3000, TimeUnit.MILLISECONDS);
         } catch (InterruptedException | ExecutionException | TimeoutException e) {
             Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
index 33e6fc3..e6b197c 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
@@ -41,6 +41,7 @@
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
 
 /**
  * A dialogFragment used by {@link BluetoothPairingDialog} to create an appropriately styled dialog
@@ -87,12 +88,15 @@
     @Override
     public void onDestroy() {
         super.onDestroy();
-        if (mPairingController.getDialogType()
-                != BluetoothPairingController.DISPLAY_PASSKEY_DIALOG) {
-            /* Cancel pairing unless explicitly accepted by user */
-            if (!mPositiveClicked) {
-                mPairingController.onCancel();
-            }
+        /* Cancel pairing unless 1) explicitly accepted by user 2) the event is triggered by
+         * orientation change. */
+        boolean shouldCancelPairing =
+                Flags.disableBondingCancellationForOrientationChange()
+                        ? !mPositiveClicked && !getActivity().isChangingConfigurations()
+                        : !mPositiveClicked;
+        if (mPairingController.getDialogType() != BluetoothPairingController.DISPLAY_PASSKEY_DIALOG
+                && shouldCancelPairing) {
+            mPairingController.onCancel();
         }
     }
 
diff --git a/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java
index d15696b..2107569 100644
--- a/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java
@@ -36,7 +36,7 @@
     private static final String TAG = "ConnBluetoothDeviceUpdater";
     private static final boolean DBG = Log.isLoggable(BluetoothDeviceUpdater.TAG, Log.DEBUG);
 
-    private static final String PREF_KEY = "connected_bt";
+    private static final String PREF_KEY_PREFIX = "connected_bt_";
 
     private final AudioManager mAudioManager;
 
@@ -126,8 +126,8 @@
     }
 
     @Override
-    protected String getPreferenceKey() {
-        return PREF_KEY;
+    protected String getPreferenceKeyPrefix() {
+        return PREF_KEY_PREFIX;
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderController.java
new file mode 100644
index 0000000..57a1027
--- /dev/null
+++ b/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderController.java
@@ -0,0 +1,108 @@
+/*
+ * 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.bluetooth;
+
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.util.Pair;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.widget.LayoutPreference;
+
+/** This class adds a header with device name and status (connected/disconnected, etc.). */
+public class GeneralBluetoothDetailsHeaderController extends BluetoothDetailsController {
+    private static final String KEY_GENERAL_DEVICE_HEADER = "general_bluetooth_device_header";
+
+    @Nullable
+    private LayoutPreference mLayoutPreference;
+
+    public GeneralBluetoothDetailsHeaderController(
+            Context context,
+            PreferenceFragmentCompat fragment,
+            CachedBluetoothDevice device,
+            Lifecycle lifecycle) {
+        super(context, fragment, device, lifecycle);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!Flags.enableBluetoothDeviceDetailsPolish()) {
+            return false;
+        }
+        boolean hasLeAudio =
+                mCachedDevice.getUiAccessibleProfiles().stream()
+                        .anyMatch(profile -> profile.getProfileId() == BluetoothProfile.LE_AUDIO);
+        return !BluetoothUtils.isAdvancedDetailsHeader(mCachedDevice.getDevice()) && !hasLeAudio;
+    }
+
+    @Override
+    protected void init(PreferenceScreen screen) {
+        mLayoutPreference = screen.findPreference(KEY_GENERAL_DEVICE_HEADER);
+    }
+
+    @Override
+    protected void refresh() {
+        if (!isAvailable() || mLayoutPreference == null) {
+            return;
+        }
+        ImageView imageView = mLayoutPreference.findViewById(R.id.bt_header_icon);
+        if (imageView != null) {
+            final Pair<Drawable, String> pair =
+                    BluetoothUtils.getBtRainbowDrawableWithDescription(mContext, mCachedDevice);
+            imageView.setImageDrawable(pair.first);
+            imageView.setContentDescription(pair.second);
+        }
+
+        TextView title = mLayoutPreference.findViewById(R.id.bt_header_device_name);
+        if (title != null) {
+            title.setText(mCachedDevice.getName());
+        }
+        TextView summary = mLayoutPreference.findViewById(R.id.bt_header_connection_summary);
+        if (summary != null) {
+            summary.setText(mCachedDevice.getConnectionSummary());
+        }
+        ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button);
+        renameButton.setVisibility(View.VISIBLE);
+        renameButton.setOnClickListener(
+                view -> {
+                    RemoteDeviceNameDialogFragment.newInstance(mCachedDevice)
+                            .show(
+                                    mFragment.getFragmentManager(),
+                                    RemoteDeviceNameDialogFragment.TAG);
+                });
+    }
+
+    @Override
+    @NonNull
+    public String getPreferenceKey() {
+        return KEY_GENERAL_DEVICE_HEADER;
+    }
+}
diff --git a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
index a64874d..2524894 100644
--- a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
@@ -27,14 +27,17 @@
 import android.util.Log;
 import android.util.Pair;
 import android.view.View;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.TextView;
 
 import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.flags.Flags;
 import com.android.settings.fuelgauge.BatteryMeterView;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -47,7 +50,7 @@
 import com.android.settingslib.core.lifecycle.events.OnStop;
 import com.android.settingslib.widget.LayoutPreference;
 
-import java.util.List;
+import java.util.Set;
 
 /**
  * This class adds a header with device name and status (connected/disconnected, etc.).
@@ -86,11 +89,12 @@
     @VisibleForTesting
     static final int INVALID_RESOURCE_ID = -1;
 
+    PreferenceFragmentCompat mFragment;
     @VisibleForTesting
     LayoutPreference mLayoutPreference;
     LocalBluetoothManager mManager;
     private CachedBluetoothDevice mCachedDevice;
-    private List<CachedBluetoothDevice> mAllOfCachedDevices;
+    private Set<CachedBluetoothDevice> mCachedDeviceGroup;
     @VisibleForTesting
     Handler mHandler = new Handler(Looper.getMainLooper());
     @VisibleForTesting
@@ -107,7 +111,7 @@
         if (mCachedDevice == null || mProfileManager == null) {
             return CONDITIONALLY_UNAVAILABLE;
         }
-        boolean hasLeAudio = mCachedDevice.getConnectableProfiles()
+        boolean hasLeAudio = mCachedDevice.getUiAccessibleProfiles()
                 .stream()
                 .anyMatch(profile -> profile.getProfileId() == BluetoothProfile.LE_AUDIO);
 
@@ -128,7 +132,7 @@
             return;
         }
         mIsRegisterCallback = true;
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.registerCallback(this);
         }
         refresh();
@@ -139,7 +143,7 @@
         if (!mIsRegisterCallback) {
             return;
         }
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.unregisterCallback(this);
         }
 
@@ -151,11 +155,12 @@
     }
 
     public void init(CachedBluetoothDevice cachedBluetoothDevice,
-            LocalBluetoothManager bluetoothManager) {
+            LocalBluetoothManager bluetoothManager, PreferenceFragmentCompat fragment) {
         mCachedDevice = cachedBluetoothDevice;
         mManager = bluetoothManager;
         mProfileManager = bluetoothManager.getProfileManager();
-        mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
+        mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
+        mFragment = fragment;
     }
 
     @VisibleForTesting
@@ -163,6 +168,14 @@
         if (mLayoutPreference == null || mCachedDevice == null) {
             return;
         }
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            ImageButton renameButton = mLayoutPreference.findViewById(R.id.rename_button);
+            renameButton.setVisibility(View.VISIBLE);
+            renameButton.setOnClickListener(view -> {
+                RemoteDeviceNameDialogFragment.newInstance(mCachedDevice).show(
+                        mFragment.getFragmentManager(), RemoteDeviceNameDialogFragment.TAG);
+            });
+        }
         final ImageView imageView = mLayoutPreference.findViewById(R.id.entity_header_icon);
         if (imageView != null) {
             final Pair<Drawable, String> pair =
@@ -230,7 +243,7 @@
         // Init the battery layouts.
         hideAllOfBatteryLayouts();
         LeAudioProfile leAudioProfile = mProfileManager.getLeAudioProfile();
-        if (mAllOfCachedDevices.isEmpty()) {
+        if (mCachedDeviceGroup.isEmpty()) {
             Log.e(TAG, "There is no LeAudioProfile.");
             return;
         }
@@ -244,7 +257,7 @@
             return;
         }
 
-        for (CachedBluetoothDevice cachedDevice : mAllOfCachedDevices) {
+        for (CachedBluetoothDevice cachedDevice : mCachedDeviceGroup) {
             int deviceId = leAudioProfile.getAudioLocation(cachedDevice.getDevice());
             Log.d(TAG, "LeAudioDevices:" + cachedDevice.getDevice().getAnonymizedAddress()
                     + ", deviceId:" + deviceId);
@@ -300,15 +313,15 @@
 
     @Override
     public void onDeviceAttributesChanged() {
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.unregisterCallback(this);
         }
-        mAllOfCachedDevices = Utils.getAllOfCachedBluetoothDevices(mManager, mCachedDevice);
-        for (CachedBluetoothDevice item : mAllOfCachedDevices) {
+        mCachedDeviceGroup = Utils.findAllCachedBluetoothDevicesByGroupId(mManager, mCachedDevice);
+        for (CachedBluetoothDevice item : mCachedDeviceGroup) {
             item.registerCallback(this);
         }
 
-        if (!mAllOfCachedDevices.isEmpty()) {
+        if (!mCachedDeviceGroup.isEmpty()) {
             refresh();
         }
     }
diff --git a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
index ed1be7a..d7c0366 100644
--- a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
@@ -41,7 +41,7 @@
 
     private static final String TAG = "SavedBluetoothDeviceUpdater";
 
-    private static final String PREF_KEY = "saved_bt";
+    private static final String PREF_KEY_PREFIX = "saved_bt_";
 
     private final boolean mShowConnectedDevice;
 
@@ -134,8 +134,8 @@
     }
 
     @Override
-    protected String getPreferenceKey() {
-        return PREF_KEY;
+    protected String getPreferenceKeyPrefix() {
+        return PREF_KEY_PREFIX;
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java
index f6288b2..b1d9de7 100644
--- a/src/com/android/settings/bluetooth/Utils.java
+++ b/src/com/android/settings/bluetooth/Utils.java
@@ -48,8 +48,9 @@
 
 import com.google.common.base.Supplier;
 
-import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.FutureTask;
 
@@ -239,12 +240,12 @@
      * @param cachedBluetoothDevice The main cachedBluetoothDevice.
      * @return all cachedBluetoothDevices with the same groupId.
      */
-    public static List<CachedBluetoothDevice> getAllOfCachedBluetoothDevices(
+    public static Set<CachedBluetoothDevice> findAllCachedBluetoothDevicesByGroupId(
             LocalBluetoothManager localBtMgr,
             CachedBluetoothDevice cachedBluetoothDevice) {
-        List<CachedBluetoothDevice> cachedBluetoothDevices = new ArrayList<>();
+        Set<CachedBluetoothDevice> cachedBluetoothDevices = new HashSet<>();
         if (cachedBluetoothDevice == null) {
-            Log.e(TAG, "getAllOfCachedBluetoothDevices: no cachedBluetoothDevice");
+            Log.e(TAG, "findAllCachedBluetoothDevicesByGroupId: no cachedBluetoothDevice");
             return cachedBluetoothDevices;
         }
         int deviceGroupId = cachedBluetoothDevice.getGroupId();
@@ -254,7 +255,7 @@
         }
 
         if (localBtMgr == null) {
-            Log.e(TAG, "getAllOfCachedBluetoothDevices: no LocalBluetoothManager");
+            Log.e(TAG, "findAllCachedBluetoothDevicesByGroupId: no LocalBluetoothManager");
             return cachedBluetoothDevices;
         }
         CachedBluetoothDevice mainDevice =
@@ -262,16 +263,14 @@
                         .filter(cachedDevice -> cachedDevice.getGroupId() == deviceGroupId)
                         .findFirst().orElse(null);
         if (mainDevice == null) {
-            Log.e(TAG, "getAllOfCachedBluetoothDevices: groupId = " + deviceGroupId
+            Log.e(TAG, "findAllCachedBluetoothDevicesByGroupId: groupId = " + deviceGroupId
                     + ", no main device.");
             return cachedBluetoothDevices;
         }
         cachedBluetoothDevice = mainDevice;
         cachedBluetoothDevices.add(cachedBluetoothDevice);
-        for (CachedBluetoothDevice member : cachedBluetoothDevice.getMemberDevice()) {
-            cachedBluetoothDevices.add(member);
-        }
-        Log.d(TAG, "getAllOfCachedBluetoothDevices: groupId = " + deviceGroupId
+        cachedBluetoothDevices.addAll(cachedBluetoothDevice.getMemberDevice());
+        Log.d(TAG, "findAllCachedBluetoothDevicesByGroupId: groupId = " + deviceGroupId
                 + " , cachedBluetoothDevice = " + cachedBluetoothDevice
                 + " , deviceList = " + cachedBluetoothDevices);
         return cachedBluetoothDevices;
diff --git a/src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractor.kt b/src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractor.kt
new file mode 100644
index 0000000..6b72b53
--- /dev/null
+++ b/src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractor.kt
@@ -0,0 +1,155 @@
+/*
+ * 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.bluetooth.domain.interactor
+
+import android.content.Context
+import android.media.AudioManager
+import android.util.Log
+import com.android.settings.R
+import com.android.settingslib.bluetooth.BluetoothUtils
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.devicesettings.DeviceSettingId
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingIcon
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingStateModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.ToggleModel
+import com.android.settingslib.media.domain.interactor.SpatializerInteractor
+import kotlin.coroutines.CoroutineContext
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.onStart
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.launch
+
+/** Provides device setting for spatial audio. */
+interface SpatialAudioInteractor {
+    /** Gets device setting for spatial audio */
+    fun getDeviceSetting(
+        cachedDevice: CachedBluetoothDevice,
+    ): Flow<DeviceSettingModel?>
+}
+
+class SpatialAudioInteractorImpl(
+    private val context: Context,
+    private val audioManager: AudioManager,
+    private val spatializerInteractor: SpatializerInteractor,
+    private val coroutineScope: CoroutineScope,
+    private val backgroundCoroutineContext: CoroutineContext,
+) : SpatialAudioInteractor {
+    private val spatialAudioOffToggle =
+        ToggleModel(
+            context.getString(R.string.spatial_audio_multi_toggle_off),
+            DeviceSettingIcon.ResourceIcon(R.drawable.ic_spatial_audio_off))
+    private val spatialAudioOnToggle =
+        ToggleModel(
+            context.getString(R.string.spatial_audio_multi_toggle_on),
+            DeviceSettingIcon.ResourceIcon(R.drawable.ic_spatial_audio))
+    private val headTrackingOnToggle =
+        ToggleModel(
+            context.getString(R.string.spatial_audio_multi_toggle_head_tracking_on),
+            DeviceSettingIcon.ResourceIcon(R.drawable.ic_head_tracking))
+    private val changes = MutableSharedFlow<Unit>()
+
+    override fun getDeviceSetting(
+        cachedDevice: CachedBluetoothDevice,
+    ): Flow<DeviceSettingModel?> =
+        changes
+            .onStart { emit(Unit) }
+            .map { getSpatialAudioDeviceSettingModel(cachedDevice) }
+            .stateIn(coroutineScope, SharingStarted.WhileSubscribed(), initialValue = null)
+
+    private suspend fun getSpatialAudioDeviceSettingModel(
+        cachedDevice: CachedBluetoothDevice,
+    ): DeviceSettingModel? {
+        // TODO(b/343317785): use audio repository instead of calling AudioManager directly.
+        Log.i(TAG, "CachedDevice: $cachedDevice profiles: ${cachedDevice.profiles}")
+        val attributes =
+            BluetoothUtils.getAudioDeviceAttributesForSpatialAudio(
+                cachedDevice, audioManager.getBluetoothAudioDeviceCategory(cachedDevice.address))
+                ?: run {
+                    Log.i(TAG, "No audio profiles in cachedDevice: ${cachedDevice.address}.")
+                    return null
+                }
+
+        Log.i(TAG, "Audio device attributes for ${cachedDevice.address}: $attributes.")
+        val spatialAudioAvailable = spatializerInteractor.isSpatialAudioAvailable(attributes)
+        if (!spatialAudioAvailable) {
+            Log.i(TAG, "Spatial audio is not available for ${cachedDevice.address}")
+            return null
+        }
+        val headTrackingAvailable =
+            spatialAudioAvailable && spatializerInteractor.isHeadTrackingAvailable(attributes)
+        val toggles =
+            if (headTrackingAvailable) {
+                listOf(spatialAudioOffToggle, spatialAudioOnToggle, headTrackingOnToggle)
+            } else {
+                listOf(spatialAudioOffToggle, spatialAudioOnToggle)
+            }
+        val spatialAudioEnabled = spatializerInteractor.isSpatialAudioEnabled(attributes)
+        val headTrackingEnabled =
+            spatialAudioEnabled && spatializerInteractor.isHeadTrackingEnabled(attributes)
+
+        val activeIndex =
+            when {
+                headTrackingEnabled -> INDEX_HEAD_TRACKING_ENABLED
+                spatialAudioEnabled -> INDEX_SPATIAL_AUDIO_ON
+                else -> INDEX_SPATIAL_AUDIO_OFF
+            }
+        Log.i(
+            TAG,
+            "Head tracking available: $headTrackingAvailable, " +
+                "spatial audio enabled: $spatialAudioEnabled, " +
+                "head tracking enabled: $headTrackingEnabled")
+        return DeviceSettingModel.MultiTogglePreference(
+            cachedDevice = cachedDevice,
+            id = DeviceSettingId.DEVICE_SETTING_ID_SPATIAL_AUDIO_MULTI_TOGGLE,
+            title = context.getString(R.string.spatial_audio_multi_toggle_title),
+            toggles = toggles,
+            isActive = spatialAudioEnabled,
+            state = DeviceSettingStateModel.MultiTogglePreferenceState(activeIndex),
+            isAllowedChangingState = true,
+            updateState = { newState ->
+                coroutineScope.launch(backgroundCoroutineContext) {
+                    Log.i(TAG, "Update spatial audio state: $newState")
+                    when (newState.selectedIndex) {
+                        INDEX_SPATIAL_AUDIO_OFF -> {
+                            spatializerInteractor.setSpatialAudioEnabled(attributes, false)
+                        }
+                        INDEX_SPATIAL_AUDIO_ON -> {
+                            spatializerInteractor.setSpatialAudioEnabled(attributes, true)
+                            spatializerInteractor.setHeadTrackingEnabled(attributes, false)
+                        }
+                        INDEX_HEAD_TRACKING_ENABLED -> {
+                            spatializerInteractor.setSpatialAudioEnabled(attributes, true)
+                            spatializerInteractor.setHeadTrackingEnabled(attributes, true)
+                        }
+                    }
+                    changes.emit(Unit)
+                }
+            })
+    }
+
+    companion object {
+        private const val TAG = "SpatialAudioInteractorImpl"
+        private const val INDEX_SPATIAL_AUDIO_OFF = 0
+        private const val INDEX_SPATIAL_AUDIO_ON = 1
+        private const val INDEX_HEAD_TRACKING_ENABLED = 2
+    }
+}
diff --git a/src/com/android/settings/bluetooth/ui/composable/Icon.kt b/src/com/android/settings/bluetooth/ui/composable/Icon.kt
new file mode 100644
index 0000000..676bd14
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/composable/Icon.kt
@@ -0,0 +1,48 @@
+/*
+ * 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.bluetooth.ui.composable
+
+import androidx.compose.material3.LocalContentColor
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.asImageBitmap
+import androidx.compose.ui.res.painterResource
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingIcon
+
+@Composable
+fun Icon(
+    icon: DeviceSettingIcon,
+    modifier: Modifier = Modifier,
+    tint: Color = LocalContentColor.current,
+) {
+    when (icon) {
+        is DeviceSettingIcon.BitmapIcon ->
+            androidx.compose.material3.Icon(
+                icon.bitmap.asImageBitmap(),
+                contentDescription = null,
+                modifier = modifier,
+                tint = LocalContentColor.current)
+        is DeviceSettingIcon.ResourceIcon ->
+            androidx.compose.material3.Icon(
+                painterResource(icon.resId),
+                contentDescription = null,
+                modifier = modifier,
+                tint = tint)
+        else -> {}
+    }
+}
diff --git a/src/com/android/settings/bluetooth/ui/composable/MultiTogglePreferenceGroup.kt b/src/com/android/settings/bluetooth/ui/composable/MultiTogglePreferenceGroup.kt
new file mode 100644
index 0000000..d29795e
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/composable/MultiTogglePreferenceGroup.kt
@@ -0,0 +1,270 @@
+/*
+ * 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.bluetooth.ui.composable
+
+import androidx.compose.animation.core.animateFloatAsState
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.PaddingValues
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.offset
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material3.BasicAlertDialog
+import androidx.compose.material3.Button
+import androidx.compose.material3.ButtonDefaults
+import androidx.compose.material3.Card
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.LocalContentColor
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.geometry.Rect
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.boundsInParent
+import androidx.compose.ui.layout.onGloballyPositioned
+import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.semantics.Role
+import androidx.compose.ui.semantics.contentDescription
+import androidx.compose.ui.semantics.role
+import androidx.compose.ui.semantics.semantics
+import androidx.compose.ui.semantics.toggleableState
+import androidx.compose.ui.state.ToggleableState
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import androidx.compose.ui.window.DialogProperties
+import com.android.settings.R
+import com.android.settings.bluetooth.ui.model.DeviceSettingPreferenceModel
+import com.android.settings.bluetooth.ui.composable.Icon as DeviceSettingComposeIcon
+import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.widget.dialog.getDialogWidth
+
+@Composable
+fun MultiTogglePreferenceGroup(
+    preferenceModels: List<DeviceSettingPreferenceModel.MultiTogglePreference>,
+) {
+    var settingIdForPopUp by remember { mutableStateOf<Int?>(null) }
+
+    settingIdForPopUp?.let { id ->
+        preferenceModels.find { it.id == id }?.let { dialog(it) { settingIdForPopUp = null } }
+    }
+
+    Row(
+        modifier = Modifier.padding(SettingsDimension.itemPadding),
+        verticalAlignment = Alignment.CenterVertically,
+        horizontalArrangement = Arrangement.spacedBy(24.dp),
+    ) {
+        preferenceModels.forEach { preferenceModel ->
+            Column(
+                modifier = Modifier.weight(1f),
+                verticalArrangement = Arrangement.Top,
+                horizontalAlignment = Alignment.CenterHorizontally,
+            ) {
+                Row {
+                    Surface(
+                        modifier = Modifier.height(64.dp),
+                        shape = RoundedCornerShape(28.dp),
+                        color = MaterialTheme.colorScheme.surface) {
+                            Button(
+                                modifier =
+                                    Modifier.fillMaxSize().padding(8.dp).semantics {
+                                        role = Role.Switch
+                                        toggleableState =
+                                            if (preferenceModel.isActive) {
+                                                ToggleableState.On
+                                            } else {
+                                                ToggleableState.Off
+                                            }
+                                        contentDescription = preferenceModel.title
+                                    },
+                                onClick = { settingIdForPopUp = preferenceModel.id },
+                                shape = RoundedCornerShape(20.dp),
+                                colors = getButtonColors(preferenceModel.isActive),
+                                contentPadding = PaddingValues(0.dp)) {
+                                    DeviceSettingComposeIcon(
+                                        preferenceModel.toggles[preferenceModel.selectedIndex]
+                                            .icon,
+                                        modifier = Modifier.size(24.dp))
+                                }
+                        }
+                }
+                Row { Text(text = preferenceModel.title, fontSize = 12.sp) }
+            }
+        }
+    }
+}
+
+@Composable
+private fun getButtonColors(isActive: Boolean) =
+    if (isActive) {
+        ButtonDefaults.buttonColors(
+            containerColor = MaterialTheme.colorScheme.tertiaryContainer,
+            contentColor = MaterialTheme.colorScheme.onTertiaryContainer,
+        )
+    } else {
+        ButtonDefaults.buttonColors(
+            containerColor = Color.Transparent,
+            contentColor = MaterialTheme.colorScheme.onSurfaceVariant,
+        )
+    }
+
+@OptIn(ExperimentalMaterial3Api::class)
+@Composable
+private fun dialog(
+    multiTogglePreference: DeviceSettingPreferenceModel.MultiTogglePreference,
+    onDismiss: () -> Unit
+) {
+    BasicAlertDialog(
+        onDismissRequest = { onDismiss() },
+        modifier = Modifier.width(getDialogWidth()),
+        properties = DialogProperties(usePlatformDefaultWidth = false),
+        content = {
+            Card(
+                shape = RoundedCornerShape(28.dp),
+                modifier = Modifier.fillMaxWidth().height(192.dp),
+                content = {
+                    Box {
+                        Button(
+                            onClick = { onDismiss() },
+                            modifier = Modifier.padding(8.dp).align(Alignment.TopEnd).size(48.dp),
+                            contentPadding = PaddingValues(12.dp),
+                            colors =
+                                ButtonDefaults.buttonColors(containerColor = Color.Transparent),
+                        ) {
+                            Icon(
+                                painterResource(id = R.drawable.ic_close),
+                                null,
+                                tint = MaterialTheme.colorScheme.inverseSurface)
+                        }
+                        Box(modifier = Modifier.padding(horizontal = 8.dp, vertical = 20.dp)) {
+                            dialogContent(multiTogglePreference)
+                        }
+                    }
+                },
+            )
+        })
+}
+
+@Composable
+private fun dialogContent(multiTogglePreference: DeviceSettingPreferenceModel.MultiTogglePreference) {
+    Column {
+        Row(
+            modifier = Modifier.fillMaxWidth().height(24.dp),
+            verticalAlignment = Alignment.CenterVertically,
+            horizontalArrangement = Arrangement.SpaceEvenly,
+        ) {
+            Text(text = multiTogglePreference.title, fontSize = 16.sp)
+        }
+        Spacer(modifier = Modifier.height(20.dp))
+        var selectedRect by remember { mutableStateOf<Rect?>(null) }
+        val offset =
+            selectedRect?.let { rect ->
+                animateFloatAsState(targetValue = rect.left, finishedListener = {}).value
+            }
+
+        Row(
+            modifier =
+                Modifier.fillMaxWidth()
+                    .height(64.dp)
+                    .background(
+                        MaterialTheme.colorScheme.surface, shape = RoundedCornerShape(28.dp)),
+            verticalAlignment = Alignment.CenterVertically,
+            horizontalArrangement = Arrangement.SpaceEvenly,
+        ) {
+            Box {
+                offset?.let { offset ->
+                    with(LocalDensity.current) {
+                        Box(
+                            modifier =
+                                Modifier.offset(offset.toDp(), 0.dp)
+                                    .height(selectedRect!!.height.toDp())
+                                    .width(selectedRect!!.width.toDp())
+                                    .background(
+                                        MaterialTheme.colorScheme.tertiaryContainer,
+                                        shape = RoundedCornerShape(20.dp)))
+                    }
+                }
+                Row {
+                    for ((idx, toggle) in multiTogglePreference.toggles.withIndex()) {
+                        val selected = idx == multiTogglePreference.selectedIndex
+                        Column(
+                            modifier =
+                                Modifier.weight(1f)
+                                    .padding(horizontal = 8.dp)
+                                    .height(48.dp)
+                                    .background(
+                                        Color.Transparent, shape = RoundedCornerShape(28.dp))
+                                    .onGloballyPositioned { layoutCoordinates ->
+                                        if (selected) {
+                                            selectedRect = layoutCoordinates.boundsInParent()
+                                        }
+                                    },
+                            verticalArrangement = Arrangement.Center,
+                            horizontalAlignment = Alignment.CenterHorizontally,
+                        ) {
+                            Button(
+                                onClick = {
+                                    multiTogglePreference.onSelectedChange(idx)
+                                },
+                                modifier = Modifier.fillMaxSize(),
+                                colors =
+                                    ButtonDefaults.buttonColors(
+                                        containerColor = Color.Transparent,
+                                        contentColor = LocalContentColor.current),
+                            ) {
+                                DeviceSettingComposeIcon(
+                                    toggle.icon, modifier = Modifier.size(24.dp))
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        Spacer(modifier = Modifier.height(12.dp))
+        Row(
+            modifier = Modifier.fillMaxWidth().height(32.dp),
+            verticalAlignment = Alignment.CenterVertically,
+            horizontalArrangement = Arrangement.SpaceEvenly,
+        ) {
+            for (toggle in multiTogglePreference.toggles) {
+                Text(
+                    text = toggle.label,
+                    fontSize = 12.sp,
+                    textAlign = TextAlign.Center,
+                    modifier = Modifier.weight(1f).padding(horizontal = 8.dp))
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/bluetooth/ui/layout/DeviceSettingLayout.kt b/src/com/android/settings/bluetooth/ui/layout/DeviceSettingLayout.kt
new file mode 100644
index 0000000..87e2e8b
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/layout/DeviceSettingLayout.kt
@@ -0,0 +1,25 @@
+/*
+ * 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.bluetooth.ui.layout
+
+import kotlinx.coroutines.flow.Flow
+
+/** Represent the layout of device settings. */
+data class DeviceSettingLayout(val rows: List<DeviceSettingLayoutRow>)
+
+/** Represent a row in the layout. */
+data class DeviceSettingLayoutRow(val settingIds: Flow<List<Int>>)
diff --git a/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt b/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt
new file mode 100644
index 0000000..6612591
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt
@@ -0,0 +1,69 @@
+/*
+ * 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.bluetooth.ui.model
+
+import com.android.settingslib.bluetooth.devicesettings.DeviceSettingId
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingIcon
+import com.android.settingslib.bluetooth.devicesettings.shared.model.ToggleModel
+
+/** Models a device setting preference. */
+sealed interface DeviceSettingPreferenceModel {
+    @DeviceSettingId
+    val id: Int
+
+    /** Models a plain preference. */
+    data class PlainPreference(
+        @DeviceSettingId override val id: Int,
+        val title: String,
+        val summary: String? = null,
+        val icon: DeviceSettingIcon? = null,
+        val onClick: (() -> Unit)? = null,
+    ) : DeviceSettingPreferenceModel
+
+    /** Models a switch preference. */
+    data class SwitchPreference(
+        @DeviceSettingId override val id: Int,
+        val title: String,
+        val summary: String? = null,
+        val icon: DeviceSettingIcon? = null,
+        val checked: Boolean,
+        val onCheckedChange: ((Boolean) -> Unit),
+        val onPrimaryClick: (() -> Unit)? = null,
+    ) : DeviceSettingPreferenceModel
+
+    /** Models a multi-toggle preference. */
+    data class MultiTogglePreference(
+        @DeviceSettingId override val id: Int,
+        val title: String,
+        val toggles: List<ToggleModel>,
+        val isActive: Boolean,
+        val selectedIndex: Int,
+        val isAllowedChangingState: Boolean,
+        val onSelectedChange: (Int) -> Unit,
+    ) : DeviceSettingPreferenceModel
+
+    /** Models a footer preference. */
+    data class FooterPreference(
+        @DeviceSettingId override val id: Int,
+        val footerText: String,
+    ) : DeviceSettingPreferenceModel
+
+    /** Models a preference which could navigate to more settings fragment. */
+    data class MoreSettingsPreference(
+        @DeviceSettingId override val id: Int,
+    ) : DeviceSettingPreferenceModel
+}
diff --git a/src/com/android/settings/bluetooth/ui/model/FragmentTypeModel.kt b/src/com/android/settings/bluetooth/ui/model/FragmentTypeModel.kt
new file mode 100644
index 0000000..19858c4
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/model/FragmentTypeModel.kt
@@ -0,0 +1,25 @@
+/*
+ * 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.bluetooth.ui.model
+
+/** Models a device details fragment type. */
+sealed interface FragmentTypeModel {
+    /** Device details main page. */
+    data object DeviceDetailsMainFragment : FragmentTypeModel
+    /** Device details more settings page. */
+    data object DeviceDetailsMoreSettingsFragment : FragmentTypeModel
+}
diff --git a/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt
new file mode 100644
index 0000000..c933c75
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt
@@ -0,0 +1,267 @@
+/*
+ * 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.bluetooth.ui.view
+
+import android.bluetooth.BluetoothAdapter
+import android.content.Context
+import android.media.AudioManager
+import android.os.Bundle
+import androidx.compose.foundation.layout.size
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.Preference
+import com.android.settings.R
+import com.android.settings.SettingsPreferenceFragment
+import com.android.settings.bluetooth.ui.composable.Icon
+import com.android.settings.bluetooth.ui.composable.MultiTogglePreferenceGroup
+import com.android.settings.bluetooth.ui.layout.DeviceSettingLayout
+import com.android.settings.bluetooth.ui.model.DeviceSettingPreferenceModel
+import com.android.settings.bluetooth.ui.model.FragmentTypeModel
+import com.android.settings.bluetooth.ui.view.DeviceDetailsMoreSettingsFragment.Companion.KEY_DEVICE_ADDRESS
+import com.android.settings.bluetooth.ui.viewmodel.BluetoothDeviceDetailsViewModel
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settings.spa.preference.ComposePreference
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingConfigItemModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingIcon
+import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.widget.preference.Preference as SpaPreference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spa.widget.preference.SwitchPreference
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+import com.android.settingslib.spa.widget.preference.TwoTargetSwitchPreference
+import com.android.settingslib.spa.widget.ui.Footer
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.runBlocking
+
+/** Handles device details fragment layout according to config. */
+interface DeviceDetailsFragmentFormatter {
+    /** Gets keys of visible preferences in built-in preference in xml. */
+    fun getVisiblePreferenceKeys(fragmentType: FragmentTypeModel): List<String>?
+
+    /** Updates device details fragment layout. */
+    fun updateLayout(fragmentType: FragmentTypeModel)
+}
+
+@OptIn(ExperimentalCoroutinesApi::class)
+class DeviceDetailsFragmentFormatterImpl(
+    private val context: Context,
+    private val fragment: SettingsPreferenceFragment,
+    bluetoothAdapter: BluetoothAdapter,
+    private val cachedDevice: CachedBluetoothDevice
+) : DeviceDetailsFragmentFormatter {
+    private val repository =
+        featureFactory.bluetoothFeatureProvider.getDeviceSettingRepository(
+            context, bluetoothAdapter, fragment.lifecycleScope)
+    private val spatialAudioInteractor =
+        featureFactory.bluetoothFeatureProvider.getSpatialAudioInteractor(
+            context, context.getSystemService(AudioManager::class.java), fragment.lifecycleScope)
+    private val viewModel: BluetoothDeviceDetailsViewModel =
+        ViewModelProvider(
+                fragment,
+                BluetoothDeviceDetailsViewModel.Factory(
+                    fragment.requireActivity().application,
+                    repository,
+                    spatialAudioInteractor,
+                    cachedDevice,
+                ))
+            .get(BluetoothDeviceDetailsViewModel::class.java)
+
+    override fun getVisiblePreferenceKeys(fragmentType: FragmentTypeModel): List<String>? =
+        runBlocking {
+            viewModel
+                .getItems(fragmentType)
+                ?.filterIsInstance<DeviceSettingConfigItemModel.BuiltinItem>()
+                ?.mapNotNull { it.preferenceKey }
+        }
+
+    /** Updates bluetooth device details fragment layout. */
+    override fun updateLayout(fragmentType: FragmentTypeModel) = runBlocking {
+        val items = viewModel.getItems(fragmentType) ?: return@runBlocking
+        val layout = viewModel.getLayout(fragmentType) ?: return@runBlocking
+        val prefKeyToSettingId =
+            items
+                .filterIsInstance<DeviceSettingConfigItemModel.BuiltinItem>()
+                .associateBy({ it.preferenceKey }, { it.settingId })
+
+        val settingIdToXmlPreferences: MutableMap<Int, Preference> = HashMap()
+        for (i in 0 until fragment.preferenceScreen.preferenceCount) {
+            val pref = fragment.preferenceScreen.getPreference(i)
+            prefKeyToSettingId[pref.key]?.let { id -> settingIdToXmlPreferences[id] = pref }
+        }
+        fragment.preferenceScreen.removeAll()
+
+        for (row in items.indices) {
+            val settingId = items[row].settingId
+            if (settingIdToXmlPreferences.containsKey(settingId)) {
+                fragment.preferenceScreen.addPreference(
+                    settingIdToXmlPreferences[settingId]!!.apply { order = row })
+            } else {
+                val pref =
+                    ComposePreference(context)
+                        .apply {
+                            key = getPreferenceKey(settingId)
+                            order = row
+                        }
+                        .also { pref -> pref.setContent { buildPreference(layout, row) } }
+                fragment.preferenceScreen.addPreference(pref)
+            }
+        }
+        // TODO(b/343317785): figure out how to remove the foot preference.
+        fragment.preferenceScreen.addPreference(Preference(context).apply { order = 10000 })
+    }
+
+    @Composable
+    private fun buildPreference(layout: DeviceSettingLayout, row: Int) {
+        val contents by
+            remember(row) {
+                    layout.rows[row].settingIds.flatMapLatest { settingIds ->
+                        if (settingIds.isEmpty()) {
+                            flowOf(emptyList<DeviceSettingPreferenceModel>())
+                        } else {
+                            combine(
+                                settingIds.map { settingId ->
+                                    viewModel.getDeviceSetting(cachedDevice, settingId)
+                                }) {
+                                    it.toList()
+                                }
+                        }
+                    }
+                }
+                .collectAsStateWithLifecycle(initialValue = listOf())
+
+        val settings = contents
+        when (settings.size) {
+            0 -> {}
+            1 -> {
+                when (val setting = settings[0]) {
+                    is DeviceSettingPreferenceModel.PlainPreference -> {
+                        buildPlainPreference(setting)
+                    }
+                    is DeviceSettingPreferenceModel.SwitchPreference -> {
+                        buildSwitchPreference(setting)
+                    }
+                    is DeviceSettingPreferenceModel.MultiTogglePreference -> {
+                        buildMultiTogglePreference(listOf(setting))
+                    }
+                    is DeviceSettingPreferenceModel.FooterPreference -> {
+                        buildFooterPreference(setting)
+                    }
+                    is DeviceSettingPreferenceModel.MoreSettingsPreference -> {
+                        buildMoreSettingsPreference()
+                    }
+                    null -> {}
+                }
+            }
+            else -> {
+                if (!settings.all { it is DeviceSettingPreferenceModel.MultiTogglePreference }) {
+                    return
+                }
+                buildMultiTogglePreference(
+                    settings.filterIsInstance<DeviceSettingPreferenceModel.MultiTogglePreference>())
+            }
+        }
+    }
+
+    @Composable
+    private fun buildMultiTogglePreference(
+        prefs: List<DeviceSettingPreferenceModel.MultiTogglePreference>
+    ) {
+        MultiTogglePreferenceGroup(prefs)
+    }
+
+    @Composable
+    private fun buildSwitchPreference(model: DeviceSettingPreferenceModel.SwitchPreference) {
+        val switchPrefModel =
+            object : SwitchPreferenceModel {
+                override val title = model.title
+                override val summary = { model.summary ?: "" }
+                override val checked = { model.checked }
+                override val onCheckedChange = { newChecked: Boolean ->
+                    model.onCheckedChange(newChecked)
+                }
+                override val icon = @Composable { deviceSettingIcon(model.icon) }
+            }
+        if (model.onPrimaryClick != null) {
+            TwoTargetSwitchPreference(
+                switchPrefModel, primaryOnClick = model.onPrimaryClick::invoke)
+        } else {
+            SwitchPreference(switchPrefModel)
+        }
+    }
+
+    @Composable
+    private fun buildPlainPreference(model: DeviceSettingPreferenceModel.PlainPreference) {
+        SpaPreference(
+            object : PreferenceModel {
+                override val title = model.title
+                override val summary = { model.summary ?: "" }
+                override val onClick = {
+                    model.onClick?.invoke()
+                    Unit
+                }
+                override val icon = @Composable { deviceSettingIcon(model.icon) }
+            })
+    }
+
+    @Composable
+    fun buildMoreSettingsPreference() {
+        SpaPreference(
+            object : PreferenceModel {
+                override val title =
+                    stringResource(R.string.bluetooth_device_more_settings_preference_title)
+                override val summary = {
+                    context.getString(R.string.bluetooth_device_more_settings_preference_summary)
+                }
+                override val onClick = {
+                    SubSettingLauncher(context)
+                        .setDestination(DeviceDetailsMoreSettingsFragment::class.java.name)
+                        .setSourceMetricsCategory(fragment.getMetricsCategory())
+                        .setArguments(
+                            Bundle().apply { putString(KEY_DEVICE_ADDRESS, cachedDevice.address) })
+                        .launch()
+                }
+                override val icon = @Composable { deviceSettingIcon(null) }
+            })
+    }
+
+    @Composable
+    fun buildFooterPreference(model: DeviceSettingPreferenceModel.FooterPreference) {
+        Footer(footerText = model.footerText)
+    }
+
+    @Composable
+    private fun deviceSettingIcon(icon: DeviceSettingIcon?) {
+        icon?.let { Icon(it, modifier = Modifier.size(SettingsDimension.itemIconSize)) }
+    }
+
+    private fun getPreferenceKey(settingId: Int) = "DEVICE_SETTING_${settingId}"
+
+    companion object {
+        const val TAG = "DeviceDetailsFormatter"
+    }
+}
diff --git a/src/com/android/settings/bluetooth/ui/view/DeviceDetailsMoreSettingsFragment.kt b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsMoreSettingsFragment.kt
new file mode 100644
index 0000000..c648a3e
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsMoreSettingsFragment.kt
@@ -0,0 +1,92 @@
+/*
+ * 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.bluetooth.ui.view
+
+import android.bluetooth.BluetoothDevice
+import android.bluetooth.BluetoothManager
+import android.content.Context
+import android.os.Bundle
+import com.android.settings.R
+import com.android.settings.bluetooth.BluetoothDetailsProfilesController
+import com.android.settings.bluetooth.Utils
+import com.android.settings.bluetooth.ui.model.FragmentTypeModel
+import com.android.settings.dashboard.DashboardFragment
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.LocalBluetoothManager
+import com.android.settingslib.core.AbstractPreferenceController
+import com.android.settingslib.core.lifecycle.LifecycleObserver
+
+class DeviceDetailsMoreSettingsFragment : DashboardFragment() {
+    private lateinit var formatter: DeviceDetailsFragmentFormatter
+    private lateinit var localBluetoothManager: LocalBluetoothManager
+    private lateinit var cachedDevice: CachedBluetoothDevice
+
+    // TODO(b/343317785): add metrics category
+    override fun getMetricsCategory(): Int = 0
+
+    override fun getPreferenceScreenResId(): Int {
+        return R.xml.bluetooth_device_more_settings_fragment
+    }
+
+    override fun addPreferenceController(controller: AbstractPreferenceController) {
+        val keys: List<String>? =
+            formatter.getVisiblePreferenceKeys(FragmentTypeModel.DeviceDetailsMoreSettingsFragment)
+        val lifecycle = settingsLifecycle
+        if (keys == null || keys.contains(controller.preferenceKey)) {
+            super.addPreferenceController(controller)
+        } else if (controller is LifecycleObserver) {
+            lifecycle.removeObserver((controller as LifecycleObserver))
+        }
+    }
+
+    private fun getCachedDevice(): CachedBluetoothDevice? {
+        val bluetoothAddress = arguments?.getString(KEY_DEVICE_ADDRESS) ?: return null
+        localBluetoothManager = Utils.getLocalBtManager(context) ?: return null
+        val remoteDevice: BluetoothDevice =
+            localBluetoothManager.bluetoothAdapter.getRemoteDevice(bluetoothAddress) ?: return null
+        return Utils.getLocalBtManager(context).cachedDeviceManager.findDevice(remoteDevice)
+    }
+
+    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
+        super.onCreatePreferences(savedInstanceState, rootKey)
+        formatter.updateLayout(FragmentTypeModel.DeviceDetailsMoreSettingsFragment)
+    }
+
+    override fun createPreferenceControllers(context: Context): List<AbstractPreferenceController> {
+        val bluetoothManager = context.getSystemService(BluetoothManager::class.java)
+        cachedDevice =
+            getCachedDevice()
+                ?: run {
+                    finish()
+                    return emptyList()
+                }
+        formatter =
+            featureFactory.bluetoothFeatureProvider.getDeviceDetailsFragmentFormatter(
+                requireContext(), this, bluetoothManager.adapter, cachedDevice)
+        return listOf(
+            BluetoothDetailsProfilesController(
+                context, this, localBluetoothManager, cachedDevice, settingsLifecycle))
+    }
+
+    override fun getLogTag(): String = TAG
+
+    companion object {
+        const val TAG: String = "DeviceMoreSettingsFrg"
+        const val KEY_DEVICE_ADDRESS: String = "device_address"
+    }
+}
diff --git a/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt b/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt
new file mode 100644
index 0000000..c85015c
--- /dev/null
+++ b/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt
@@ -0,0 +1,178 @@
+/*
+ * 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.bluetooth.ui.viewmodel
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.bluetooth.domain.interactor.SpatialAudioInteractor
+import com.android.settings.bluetooth.ui.layout.DeviceSettingLayout
+import com.android.settings.bluetooth.ui.layout.DeviceSettingLayoutRow
+import com.android.settings.bluetooth.ui.model.DeviceSettingPreferenceModel
+import com.android.settings.bluetooth.ui.model.FragmentTypeModel
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.devicesettings.DeviceSettingId
+import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepository
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingConfigItemModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingStateModel
+import kotlinx.coroutines.CoroutineStart
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.async
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.stateIn
+
+class BluetoothDeviceDetailsViewModel(
+    private val application: Application,
+    private val deviceSettingRepository: DeviceSettingRepository,
+    private val spatialAudioInteractor: SpatialAudioInteractor,
+    private val cachedDevice: CachedBluetoothDevice,
+) : AndroidViewModel(application){
+
+    private val items =
+        viewModelScope.async(Dispatchers.IO, start = CoroutineStart.LAZY) {
+            deviceSettingRepository.getDeviceSettingsConfig(cachedDevice)
+        }
+
+    suspend fun getItems(fragment: FragmentTypeModel): List<DeviceSettingConfigItemModel>? =
+        when (fragment) {
+            is FragmentTypeModel.DeviceDetailsMainFragment -> items.await()?.mainItems
+            is FragmentTypeModel.DeviceDetailsMoreSettingsFragment ->
+                items.await()?.moreSettingsItems
+        }
+
+    fun getDeviceSetting(
+        cachedDevice: CachedBluetoothDevice,
+        @DeviceSettingId settingId: Int
+    ): Flow<DeviceSettingPreferenceModel?> {
+        if (settingId == DeviceSettingId.DEVICE_SETTING_ID_MORE_SETTINGS) {
+            return flowOf(DeviceSettingPreferenceModel.MoreSettingsPreference(settingId))
+        }
+        return when (settingId) {
+            DeviceSettingId.DEVICE_SETTING_ID_SPATIAL_AUDIO_MULTI_TOGGLE ->
+                spatialAudioInteractor.getDeviceSetting(cachedDevice)
+            else -> deviceSettingRepository.getDeviceSetting(cachedDevice, settingId)
+        }.map { it?.toPreferenceModel() }
+    }
+
+    private fun DeviceSettingModel.toPreferenceModel(): DeviceSettingPreferenceModel? {
+        return when (this) {
+            is DeviceSettingModel.ActionSwitchPreference -> {
+                if (switchState != null) {
+                    DeviceSettingPreferenceModel.SwitchPreference(
+                        id = id,
+                        title = title,
+                        summary = summary,
+                        icon = icon,
+                        checked = switchState?.checked ?: false,
+                        onCheckedChange = { newState ->
+                            updateState?.invoke(
+                                DeviceSettingStateModel.ActionSwitchPreferenceState(newState))
+                        },
+                        onPrimaryClick = { intent?.let { application.startActivity(it) } })
+                } else {
+                    DeviceSettingPreferenceModel.PlainPreference(
+                        id = id,
+                        title = title,
+                        summary = summary,
+                        icon = icon,
+                        onClick = { intent?.let { application.startActivity(it) } })
+                }
+            }
+            is DeviceSettingModel.FooterPreference ->
+                DeviceSettingPreferenceModel.FooterPreference(id = id, footerText = footerText)
+            is DeviceSettingModel.MultiTogglePreference ->
+                DeviceSettingPreferenceModel.MultiTogglePreference(
+                    id = id,
+                    title = title,
+                    toggles = toggles,
+                    isActive = isActive,
+                    selectedIndex = state.selectedIndex,
+                    isAllowedChangingState = isAllowedChangingState,
+                    onSelectedChange = { newState ->
+                        updateState(DeviceSettingStateModel.MultiTogglePreferenceState(newState))
+                    })
+            is DeviceSettingModel.Unknown -> null
+        }
+    }
+
+    suspend fun getLayout(fragment: FragmentTypeModel): DeviceSettingLayout? {
+        val configItems = getItems(fragment) ?: return null
+        val idToDeviceSetting =
+            configItems
+                .filterIsInstance<DeviceSettingConfigItemModel.AppProvidedItem>()
+                .associateBy({ it.settingId }, { getDeviceSetting(cachedDevice, it.settingId) })
+
+        val configDeviceSetting =
+            configItems.map { idToDeviceSetting[it.settingId] ?: flowOf(null) }
+        val positionToSettingIds =
+            combine(configDeviceSetting) { settings ->
+                    val positionMapping = mutableMapOf<Int, List<Int>>()
+                    var multiToggleSettingIds: MutableList<Int>? = null
+                    for (i in settings.indices) {
+                        val configItem = configItems[i]
+                        val setting = settings[i]
+                        val isXmlPreference = configItem is DeviceSettingConfigItemModel.BuiltinItem
+                        if (!isXmlPreference && setting == null) {
+                            continue
+                        }
+                        if (setting !is DeviceSettingPreferenceModel.MultiTogglePreference) {
+                            multiToggleSettingIds = null
+                            positionMapping[i] = listOf(configItem.settingId)
+                            continue
+                        }
+
+                        if (multiToggleSettingIds != null) {
+                            multiToggleSettingIds.add(setting.id)
+                        } else {
+                            multiToggleSettingIds = mutableListOf(setting.id)
+                            positionMapping[i] = multiToggleSettingIds
+                        }
+                    }
+                    positionMapping
+                }
+                .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), initialValue = mapOf())
+        return DeviceSettingLayout(
+            configItems.indices.map { idx ->
+                DeviceSettingLayoutRow(positionToSettingIds.map { it[idx] ?: emptyList() })
+            })
+    }
+
+    class Factory(
+        private val application: Application,
+        private val deviceSettingRepository: DeviceSettingRepository,
+        private val spatialAudioInteractor: SpatialAudioInteractor,
+        private val cachedDevice: CachedBluetoothDevice,
+    ) : ViewModelProvider.Factory {
+        override fun <T : ViewModel> create(modelClass: Class<T>): T {
+            @Suppress("UNCHECKED_CAST")
+            return BluetoothDeviceDetailsViewModel(
+                application, deviceSettingRepository, spatialAudioInteractor, cachedDevice)
+                as T
+        }
+    }
+
+    companion object {
+        private const val TAG = "BluetoothDeviceDetailsViewModel"
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
index 420fb97..c67995a 100644
--- a/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
@@ -45,7 +45,6 @@
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.connecteddevice.audiosharing.AudioSharingDialogHandler;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
@@ -180,7 +179,7 @@
         super(context, KEY);
         mBtManager = Utils.getLocalBtManager(mContext);
         mExecutor = Executors.newSingleThreadExecutor();
-        if (AudioSharingUtils.isFeatureEnabled()) {
+        if (BluetoothUtils.isAudioSharingEnabled()) {
             mBroadcast =
                     mBtManager == null
                             ? null
@@ -201,7 +200,7 @@
             Log.d(TAG, "onStart() Bluetooth is not supported on this device");
             return;
         }
-        if (AudioSharingUtils.isFeatureEnabled()) {
+        if (BluetoothUtils.isAudioSharingEnabled()) {
             registerAudioSharingCallbacks();
         }
         mBtManager.getEventManager().registerCallback(this);
@@ -217,7 +216,7 @@
             Log.d(TAG, "onStop() Bluetooth is not supported on this device");
             return;
         }
-        if (AudioSharingUtils.isFeatureEnabled()) {
+        if (BluetoothUtils.isAudioSharingEnabled()) {
             unregisterAudioSharingCallbacks();
         }
         if (mBluetoothDeviceUpdater != null) {
@@ -279,7 +278,7 @@
     public void onDeviceClick(Preference preference) {
         final CachedBluetoothDevice cachedDevice =
                 ((BluetoothDevicePreference) preference).getBluetoothDevice();
-        if (AudioSharingUtils.isFeatureEnabled() && mDialogHandler != null) {
+        if (BluetoothUtils.isAudioSharingEnabled() && mDialogHandler != null) {
             mDialogHandler.handleDeviceConnected(cachedDevice, /* userTriggered= */ true);
             FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                     .action(mContext, SettingsEnums.ACTION_MEDIA_DEVICE_CLICK);
@@ -295,7 +294,7 @@
                         fragment.getContext(),
                         AvailableMediaDeviceGroupController.this,
                         fragment.getMetricsCategory());
-        if (AudioSharingUtils.isFeatureEnabled()) {
+        if (BluetoothUtils.isAudioSharingEnabled()) {
             mDialogHandler = new AudioSharingDialogHandler(mContext, fragment);
         }
     }
@@ -342,8 +341,8 @@
                             if (isAudioModeOngoingCall(mContext)) {
                                 // in phone call
                                 titleResId = R.string.connected_device_call_device_title;
-                            } else if (AudioSharingUtils.isFeatureEnabled()
-                                    && AudioSharingUtils.isBroadcasting(mBtManager)) {
+                            } else if (BluetoothUtils.isAudioSharingEnabled()
+                                    && BluetoothUtils.isBroadcasting(mBtManager)) {
                                 // without phone call, in audio sharing
                                 titleResId = R.string.audio_sharing_media_device_group_title;
                             } else {
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 27001d6..5184176 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -28,13 +28,13 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
 import com.android.settings.connecteddevice.audiosharing.AudioSharingDevicePreferenceController;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settings.core.SettingsUIDeviceConfig;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.overlay.SurveyFeatureProvider;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.slices.SlicePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.HearingAidStatsLogUtils;
 import com.android.settingslib.search.SearchIndexable;
 
@@ -87,7 +87,7 @@
                             + ", action : "
                             + action);
         }
-        if (AudioSharingUtils.isFeatureEnabled()) {
+        if (BluetoothUtils.isAudioSharingEnabled()) {
             use(AudioSharingDevicePreferenceController.class).init(this);
         }
         use(AvailableMediaDeviceGroupController.class).init(this);
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java
index 56a3005..2548b95 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java
@@ -15,6 +15,8 @@
  */
 package com.android.settings.connecteddevice;
 
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.isExternalDisplaySettingsPageEnabled;
+
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.input.InputManager;
@@ -22,6 +24,8 @@
 import android.util.Log;
 import android.view.InputDevice;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceGroup;
@@ -31,12 +35,15 @@
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
 import com.android.settings.bluetooth.ConnectedBluetoothDeviceUpdater;
 import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.display.ExternalDisplayUpdater;
 import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.connecteddevice.stylus.StylusDeviceUpdater;
 import com.android.settings.connecteddevice.usb.ConnectedUsbDeviceUpdater;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.FeatureFlags;
+import com.android.settings.flags.FeatureFlagsImpl;
 import com.android.settings.flags.Flags;
 import com.android.settings.overlay.DockUpdaterFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
@@ -64,6 +71,8 @@
 
     @VisibleForTesting
     PreferenceGroup mPreferenceGroup;
+    @Nullable
+    private ExternalDisplayUpdater mExternalDisplayUpdater;
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
     private ConnectedUsbDeviceUpdater mConnectedUsbDeviceUpdater;
     private DockUpdater mConnectedDockUpdater;
@@ -71,6 +80,8 @@
     private final PackageManager mPackageManager;
     private final InputManager mInputManager;
     private final LocalBluetoothManager mLocalBluetoothManager;
+    @NonNull
+    private final FeatureFlags mFeatureFlags = new FeatureFlagsImpl();
 
     public ConnectedDeviceGroupController(Context context) {
         super(context, KEY);
@@ -81,6 +92,10 @@
 
     @Override
     public void onStart() {
+        if (mExternalDisplayUpdater != null) {
+            mExternalDisplayUpdater.registerCallback();
+        }
+
         if (mBluetoothDeviceUpdater != null) {
             mBluetoothDeviceUpdater.registerCallback();
             mBluetoothDeviceUpdater.refreshPreference();
@@ -101,6 +116,10 @@
 
     @Override
     public void onStop() {
+        if (mExternalDisplayUpdater != null) {
+            mExternalDisplayUpdater.unregisterCallback();
+        }
+
         if (mBluetoothDeviceUpdater != null) {
             mBluetoothDeviceUpdater.unregisterCallback();
         }
@@ -127,6 +146,10 @@
 
         if (isAvailable()) {
             final Context context = screen.getContext();
+            if (mExternalDisplayUpdater != null) {
+                mExternalDisplayUpdater.initPreference(context);
+            }
+
             if (mBluetoothDeviceUpdater != null) {
                 mBluetoothDeviceUpdater.setPrefContext(context);
                 mBluetoothDeviceUpdater.forceUpdate();
@@ -150,7 +173,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return (hasBluetoothFeature()
+        return (hasExternalDisplayFeature()
+                || hasBluetoothFeature()
                 || hasUsbFeature()
                 || hasUsiStylusFeature()
                 || mConnectedDockUpdater != null)
@@ -180,11 +204,13 @@
     }
 
     @VisibleForTesting
-    void init(BluetoothDeviceUpdater bluetoothDeviceUpdater,
+    void init(@Nullable ExternalDisplayUpdater externalDisplayUpdater,
+            BluetoothDeviceUpdater bluetoothDeviceUpdater,
             ConnectedUsbDeviceUpdater connectedUsbDeviceUpdater,
             DockUpdater connectedDockUpdater,
             StylusDeviceUpdater connectedStylusDeviceUpdater) {
 
+        mExternalDisplayUpdater = externalDisplayUpdater;
         mBluetoothDeviceUpdater = bluetoothDeviceUpdater;
         mConnectedUsbDeviceUpdater = connectedUsbDeviceUpdater;
         mConnectedDockUpdater = connectedDockUpdater;
@@ -197,7 +223,10 @@
                 FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider();
         final DockUpdater connectedDockUpdater =
                 dockUpdaterFeatureProvider.getConnectedDockUpdater(context, this);
-        init(hasBluetoothFeature()
+        init(hasExternalDisplayFeature()
+                        ? new ExternalDisplayUpdater(this, fragment.getMetricsCategory())
+                        : null,
+                hasBluetoothFeature()
                         ? new ConnectedBluetoothDeviceUpdater(context, this,
                         fragment.getMetricsCategory())
                         : null,
@@ -210,6 +239,19 @@
                         : null);
     }
 
+    /**
+     * @return trunk stable feature flags.
+     */
+    @VisibleForTesting
+    @NonNull
+    public FeatureFlags getFeatureFlags() {
+        return mFeatureFlags;
+    }
+
+    private boolean hasExternalDisplayFeature() {
+        return isExternalDisplaySettingsPageEnabled(getFeatureFlags());
+    }
+
     private boolean hasBluetoothFeature() {
         return mPackageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
     }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java
index 1ec53f9..08b21a1 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingActivity.java
@@ -19,12 +19,13 @@
 import android.os.Bundle;
 
 import com.android.settings.SettingsActivity;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 
 public class AudioSharingActivity extends SettingsActivity {
     @Override
     protected void onCreate(Bundle savedState) {
         super.onCreate(savedState);
-        if (!AudioSharingUtils.isFeatureEnabled()) {
+        if (!BluetoothUtils.isAudioSharingEnabled()) {
             finish();
         }
     }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
index e933e41..96c5d45 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
@@ -29,6 +29,7 @@
 
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
@@ -54,7 +55,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
index 4d7e699..60a8a13 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.java
@@ -21,6 +21,7 @@
 import android.util.Log;
 
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
@@ -35,7 +36,8 @@
 
     private static final String TAG = "AudioSharingBluetoothDeviceUpdater";
 
-    private static final String PREF_KEY = "audio_sharing_bt";
+    @VisibleForTesting
+    static final String PREF_KEY_PREFIX = "audio_sharing_bt_";
 
     @Nullable private LocalBluetoothManager mLocalBtManager;
 
@@ -53,7 +55,7 @@
         if (isDeviceConnected(cachedDevice) && isDeviceInCachedDevicesList(cachedDevice)) {
             // If device is LE audio device and has a broadcast source,
             // it would show in audio sharing devices group.
-            if (AudioSharingUtils.isFeatureEnabled()
+            if (BluetoothUtils.isAudioSharingEnabled()
                     && cachedDevice.isConnectedLeAudioDevice()
                     && BluetoothUtils.hasConnectedBroadcastSource(cachedDevice, mLocalBtManager)) {
                 isFilterMatched = true;
@@ -76,8 +78,8 @@
     }
 
     @Override
-    protected String getPreferenceKey() {
-        return PREF_KEY;
+    protected String getPreferenceKeyPrefix() {
+        return PREF_KEY_PREFIX;
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java
index 75b4acf..fa9f94d 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragment.java
@@ -19,6 +19,7 @@
 import android.app.Dialog;
 import android.app.settings.SettingsEnums;
 import android.os.Bundle;
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -28,6 +29,7 @@
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 
 import java.util.List;
 
@@ -35,6 +37,7 @@
 public class AudioSharingCallAudioDialogFragment extends InstrumentedDialogFragment {
     private static final String TAG = "CallsAndAlarmsDialog";
     private static final String BUNDLE_KEY_DEVICE_ITEMS = "bundle_key_device_items";
+    private static final String BUNDLE_KEY_CHECKED_ITEM_INDEX = "bundle_key_checked_index";
 
     // The host creates an instance of this dialog fragment must implement this interface to receive
     // event callbacks.
@@ -64,13 +67,21 @@
     public static void show(
             @NonNull Fragment host,
             @NonNull List<AudioSharingDeviceItem> deviceItems,
+            int checkedItemIndex,
             @NonNull DialogEventListener listener) {
-        if (!AudioSharingUtils.isFeatureEnabled()) return;
-        final FragmentManager manager = host.getChildFragmentManager();
+        if (!BluetoothUtils.isAudioSharingEnabled()) return;
+        final FragmentManager manager;
+        try {
+            manager = host.getChildFragmentManager();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to show dialog: " + e.getMessage());
+            return;
+        }
         sListener = listener;
         if (manager.findFragmentByTag(TAG) == null) {
             final Bundle bundle = new Bundle();
             bundle.putParcelableList(BUNDLE_KEY_DEVICE_ITEMS, deviceItems);
+            bundle.putInt(BUNDLE_KEY_CHECKED_ITEM_INDEX, checkedItemIndex);
             final AudioSharingCallAudioDialogFragment dialog =
                     new AudioSharingCallAudioDialogFragment();
             dialog.setArguments(bundle);
@@ -79,30 +90,29 @@
     }
 
     @Override
+    @NonNull
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         Bundle arguments = requireArguments();
         List<AudioSharingDeviceItem> deviceItems =
                 arguments.getParcelable(BUNDLE_KEY_DEVICE_ITEMS, List.class);
-        int checkedItem = -1;
-        for (AudioSharingDeviceItem item : deviceItems) {
-            int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(getContext());
-            if (item.getGroupId() == fallbackActiveGroupId) {
-                checkedItem = deviceItems.indexOf(item);
-            }
+        int checkedItemIndex = arguments.getInt(BUNDLE_KEY_CHECKED_ITEM_INDEX, -1);
+        AlertDialog.Builder builder =
+                new AlertDialog.Builder(getActivity())
+                        .setTitle(R.string.audio_sharing_call_audio_title);
+        if (deviceItems == null) {
+            Log.d(TAG, "Create dialog error: null deviceItems");
+            return builder.create();
         }
         String[] choices =
                 deviceItems.stream().map(AudioSharingDeviceItem::getName).toArray(String[]::new);
-        AlertDialog.Builder builder =
-                new AlertDialog.Builder(getActivity())
-                        .setTitle(R.string.audio_sharing_call_audio_title)
-                        .setSingleChoiceItems(
-                                choices,
-                                checkedItem,
-                                (dialog, which) -> {
-                                    if (sListener != null) {
-                                        sListener.onItemClick(deviceItems.get(which));
-                                    }
-                                });
+        builder.setSingleChoiceItems(
+                choices,
+                checkedItemIndex,
+                (dialog, which) -> {
+                    if (sListener != null) {
+                        sListener.onItemClick(deviceItems.get(which));
+                    }
+                });
         return builder.create();
     }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java
index 6ba7183..168fce5 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceController.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
-
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothCsipSetCoordinator;
@@ -68,7 +66,7 @@
 /** PreferenceController to control the dialog to choose the active device for calls and alarms */
 public class AudioSharingCallAudioPreferenceController extends AudioSharingBasePreferenceController
         implements BluetoothCallback {
-    private static final String TAG = "CallsAndAlarmsPreferenceController";
+    private static final String TAG = "CallAudioPrefController";
     private static final String PREF_KEY = "calls_and_alarms";
 
     @VisibleForTesting
@@ -87,7 +85,7 @@
     private final ContentObserver mSettingsObserver;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     @Nullable private Fragment mFragment;
-    Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+    Map<Integer, List<BluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
     private List<AudioSharingDeviceItem> mDeviceItemsInSharingSession = new ArrayList<>();
     private final AtomicBoolean mCallbacksRegistered = new AtomicBoolean(false);
 
@@ -197,24 +195,27 @@
                         }
                         updateDeviceItemsInSharingSession();
                         if (!mDeviceItemsInSharingSession.isEmpty()) {
+                            int checkedItemIndex = getActiveItemIndex(mDeviceItemsInSharingSession);
                             AudioSharingCallAudioDialogFragment.show(
                                     mFragment,
                                     mDeviceItemsInSharingSession,
+                                    checkedItemIndex,
                                     (AudioSharingDeviceItem item) -> {
                                         int currentGroupId =
-                                                AudioSharingUtils.getFallbackActiveGroupId(
-                                                        mContext);
+                                                BluetoothUtils.getPrimaryGroupIdForBroadcast(
+                                                        mContext.getContentResolver());
                                         if (item.getGroupId() == currentGroupId) {
                                             Log.d(
                                                     TAG,
                                                     "Skip set fallback active device: unchanged");
                                             return;
                                         }
-                                        List<CachedBluetoothDevice> devices =
+                                        List<BluetoothDevice> devices =
                                                 mGroupedConnectedDevices.getOrDefault(
                                                         item.getGroupId(), ImmutableList.of());
                                         CachedBluetoothDevice lead =
-                                                AudioSharingUtils.getLeadDevice(devices);
+                                                AudioSharingUtils.getLeadDevice(
+                                                        mCacheManager, devices);
                                         if (lead != null) {
                                             Log.d(
                                                     TAG,
@@ -300,7 +301,7 @@
             Log.d(TAG, "registerCallbacks()");
             mEventManager.registerCallback(this);
             mContentResolver.registerContentObserver(
-                    Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+                    Settings.Secure.getUriFor(BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
                     false,
                     mSettingsObserver);
             mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
@@ -347,7 +348,8 @@
      */
     private void updateSummary() {
         updateDeviceItemsInSharingSession();
-        int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(mContext);
+        int fallbackActiveGroupId =
+                BluetoothUtils.getPrimaryGroupIdForBroadcast(mContext.getContentResolver());
         if (fallbackActiveGroupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
             for (AudioSharingDeviceItem item : mDeviceItemsInSharingSession) {
                 if (item.getGroupId() == fallbackActiveGroupId) {
@@ -386,6 +388,18 @@
                         mBtManager, mGroupedConnectedDevices, /* filterByInSharing= */ true);
     }
 
+    private int getActiveItemIndex(List<AudioSharingDeviceItem> deviceItems) {
+        int checkedItemIndex = -1;
+        int fallbackActiveGroupId =
+                BluetoothUtils.getPrimaryGroupIdForBroadcast(mContext.getContentResolver());
+        for (AudioSharingDeviceItem item : deviceItems) {
+            if (item.getGroupId() == fallbackActiveGroupId) {
+                return deviceItems.indexOf(item);
+            }
+        }
+        return checkedItemIndex;
+    }
+
     @VisibleForTesting
     void logCallAudioDeviceChange(int currentGroupId, CachedBluetoothDevice target) {
         var unused =
@@ -393,7 +407,7 @@
                         () -> {
                             ChangeCallAudioType type = ChangeCallAudioType.UNKNOWN;
                             if (mCacheManager != null) {
-                                int targetDeviceGroupId = AudioSharingUtils.getGroupId(target);
+                                int targetDeviceGroupId = BluetoothUtils.getGroupId(target);
                                 List<BluetoothDevice> mostRecentDevices =
                                         BluetoothAdapter.getDefaultAdapter()
                                                 .getMostRecentlyConnectedDevices();
@@ -405,7 +419,7 @@
                                             mCacheManager.findDevice(device);
                                     int groupId =
                                             cachedDevice != null
-                                                    ? AudioSharingUtils.getGroupId(cachedDevice)
+                                                    ? BluetoothUtils.getGroupId(cachedDevice)
                                                     : BluetoothCsipSetCoordinator.GROUP_ID_INVALID;
                                     if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
                                         if (groupId == targetDeviceGroupId) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
index 42a9038..52df1d3 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
@@ -34,6 +34,7 @@
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
@@ -154,7 +155,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
@@ -242,7 +243,7 @@
         var unused =
                 ThreadUtils.postOnBackgroundThread(
                         () -> {
-                            boolean isBroadcasting = AudioSharingUtils.isBroadcasting(mBtManager);
+                            boolean isBroadcasting = BluetoothUtils.isBroadcasting(mBtManager);
                             AudioSharingUtils.postOnMainThread(
                                     mContext,
                                     () -> {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java
index e9013d7..3750cf1 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragment.java
@@ -21,6 +21,7 @@
 import android.os.Bundle;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.Fragment;
@@ -28,6 +29,7 @@
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 
 public class AudioSharingConfirmDialogFragment extends InstrumentedDialogFragment {
     private static final String TAG = "AudioSharingConfirmDialog";
@@ -43,8 +45,14 @@
      * @param host The Fragment this dialog will be hosted.
      */
     public static void show(Fragment host) {
-        if (!AudioSharingUtils.isFeatureEnabled()) return;
-        FragmentManager manager = host.getChildFragmentManager();
+        if (!BluetoothUtils.isAudioSharingEnabled()) return;
+        final FragmentManager manager;
+        try {
+            manager = host.getChildFragmentManager();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to show dialog: " + e.getMessage());
+            return;
+        }
         AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG);
         if (dialog != null) {
             Log.d(TAG, "Dialog is showing, return.");
@@ -56,6 +64,7 @@
     }
 
     @Override
+    @NonNull
     public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
         AlertDialog dialog =
                 AudioSharingDialogFactory.newBuilder(getActivity())
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
index b932a7e..d6ad4bc 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
@@ -18,6 +18,7 @@
 
 import static com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast.EXTRA_BLUETOOTH_DEVICE;
 
+import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothLeBroadcastAssistant;
@@ -44,6 +45,7 @@
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.bluetooth.A2dpProfile;
 import com.android.settingslib.bluetooth.BluetoothCallback;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
@@ -56,6 +58,7 @@
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import java.util.Locale;
 import java.util.concurrent.Executor;
@@ -80,6 +83,7 @@
     @Nullable private final LocalBluetoothProfileManager mProfileManager;
     @Nullable private final LocalBluetoothLeBroadcastAssistant mAssistant;
     private final Executor mExecutor;
+    private final MetricsFeatureProvider mMetricsFeatureProvider;
     @Nullable private PreferenceGroup mPreferenceGroup;
     @Nullable private Preference mAudioSharingSettingsPreference;
     @Nullable private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -114,6 +118,10 @@
                         @NonNull BluetoothDevice sink,
                         @NonNull BluetoothLeBroadcastMetadata source,
                         int reason) {
+                    mMetricsFeatureProvider.action(
+                            mContext,
+                            SettingsEnums.ACTION_AUDIO_SHARING_JOIN_FAILED,
+                            SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
                     AudioSharingUtils.toastMessage(
                             mContext,
                             String.format(
@@ -143,6 +151,10 @@
                 @Override
                 public void onSourceRemoveFailed(
                         @NonNull BluetoothDevice sink, int sourceId, int reason) {
+                    mMetricsFeatureProvider.action(
+                            mContext,
+                            SettingsEnums.ACTION_AUDIO_SHARING_LEAVE_FAILED,
+                            SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
                     AudioSharingUtils.toastMessage(
                             mContext,
                             String.format(
@@ -183,6 +195,7 @@
                         ? null
                         : mProfileManager.getLeAudioBroadcastAssistantProfile();
         mExecutor = Executors.newSingleThreadExecutor();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -283,7 +296,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() && mBluetoothDeviceUpdater != null
+        return BluetoothUtils.isAudioSharingEnabled() && mBluetoothDeviceUpdater != null
                 ? AVAILABLE_UNSEARCHABLE
                 : UNSUPPORTED_ON_DEVICE;
     }
@@ -424,7 +437,7 @@
     }
 
     private boolean isMediaDevice(CachedBluetoothDevice cachedDevice) {
-        return cachedDevice.getConnectableProfiles().stream()
+        return cachedDevice.getUiAccessibleProfiles().stream()
                 .anyMatch(
                         profile ->
                                 profile instanceof A2dpProfile
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
index 660229d..548d17c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
@@ -16,15 +16,12 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
-import android.app.settings.SettingsEnums;
-import android.bluetooth.BluetoothCsipSetCoordinator;
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
-import android.media.AudioManager;
 import android.util.Log;
-import android.widget.SeekBar;
 
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
 import com.android.settings.bluetooth.BluetoothDevicePreference;
@@ -39,9 +36,10 @@
 public class AudioSharingDeviceVolumeControlUpdater extends BluetoothDeviceUpdater
         implements Preference.OnPreferenceClickListener {
 
-    private static final String TAG = "AudioSharingDeviceVolumeControlUpdater";
+    private static final String TAG = "AudioSharingVolUpdater";
 
-    private static final String PREF_KEY = "audio_sharing_volume_control";
+    @VisibleForTesting
+    static final String PREF_KEY_PREFIX = "audio_sharing_volume_control_";
 
     @Nullable private final LocalBluetoothManager mBtManager;
     @Nullable private final VolumeControlProfile mVolumeControl;
@@ -65,7 +63,7 @@
             // If device is LE audio device and in a sharing session on current sharing device,
             // it would show in volume control group.
             if (cachedDevice.isConnectedLeAudioDevice()
-                    && AudioSharingUtils.isBroadcasting(mBtManager)
+                    && BluetoothUtils.isBroadcasting(mBtManager)
                     && BluetoothUtils.hasConnectedBroadcastSource(cachedDevice, mBtManager)) {
                 isFilterMatched = true;
             }
@@ -89,37 +87,10 @@
         if (cachedDevice == null) return;
         final BluetoothDevice device = cachedDevice.getDevice();
         if (!mPreferenceMap.containsKey(device)) {
-            SeekBar.OnSeekBarChangeListener listener =
-                    new SeekBar.OnSeekBarChangeListener() {
-                        @Override
-                        public void onProgressChanged(
-                                SeekBar seekBar, int progress, boolean fromUser) {}
-
-                        @Override
-                        public void onStartTrackingTouch(SeekBar seekBar) {}
-
-                        @Override
-                        public void onStopTrackingTouch(SeekBar seekBar) {
-                            int progress = seekBar.getProgress();
-                            int groupId = AudioSharingUtils.getGroupId(cachedDevice);
-                            if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
-                                    && groupId
-                                            == AudioSharingUtils.getFallbackActiveGroupId(
-                                                    mContext)) {
-                                // Set media stream volume for primary buds, audio manager will
-                                // update all buds volume in the audio sharing.
-                                setAudioManagerStreamVolume(progress);
-                            } else {
-                                // Set buds volume for other buds.
-                                setDeviceVolume(cachedDevice, progress);
-                            }
-                        }
-                    };
             AudioSharingDeviceVolumePreference vPreference =
                     new AudioSharingDeviceVolumePreference(mPrefContext, cachedDevice);
             vPreference.initialize();
-            vPreference.setOnSeekBarChangeListener(listener);
-            vPreference.setKey(getPreferenceKey());
+            vPreference.setKey(getPreferenceKeyPrefix() + cachedDevice.hashCode());
             vPreference.setIcon(com.android.settingslib.R.drawable.ic_bt_untethered_earbuds);
             vPreference.setTitle(cachedDevice.getName());
             mPreferenceMap.put(device, vPreference);
@@ -128,8 +99,8 @@
     }
 
     @Override
-    protected String getPreferenceKey() {
-        return PREF_KEY;
+    protected String getPreferenceKeyPrefix() {
+        return PREF_KEY_PREFIX;
     }
 
     @Override
@@ -152,35 +123,4 @@
 
     @Override
     public void refreshPreference() {}
-
-    private void setDeviceVolume(CachedBluetoothDevice cachedDevice, int progress) {
-        if (mVolumeControl != null) {
-            mVolumeControl.setDeviceVolume(
-                    cachedDevice.getDevice(), progress, /* isGroupOp= */ true);
-            mMetricsFeatureProvider.action(
-                    mContext,
-                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
-                    /* isPrimary= */ false);
-        }
-    }
-
-    private void setAudioManagerStreamVolume(int progress) {
-        int seekbarRange =
-                AudioSharingDeviceVolumePreference.MAX_VOLUME
-                        - AudioSharingDeviceVolumePreference.MIN_VOLUME;
-        try {
-            AudioManager audioManager = mContext.getSystemService(AudioManager.class);
-            int streamVolumeRange =
-                    audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
-                            - audioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC);
-            int volume = Math.round((float) progress * streamVolumeRange / seekbarRange);
-            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
-            mMetricsFeatureProvider.action(
-                    mContext,
-                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
-                    /* isPrimary= */ true);
-        } catch (RuntimeException e) {
-            Log.e(TAG, "Fail to setAudioManagerStreamVolumeForFallbackDevice, error = " + e);
-        }
-    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
index ee2ba7b..42de10a 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
-
 import android.annotation.IntRange;
 import android.bluetooth.BluetoothCsipSetCoordinator;
 import android.bluetooth.BluetoothDevice;
@@ -63,7 +61,7 @@
 
 public class AudioSharingDeviceVolumeGroupController extends AudioSharingBasePreferenceController
         implements DevicePreferenceCallback {
-    private static final String TAG = "AudioSharingDeviceVolumeGroupController";
+    private static final String TAG = "AudioSharingVolCtlr";
     private static final String KEY = "audio_sharing_device_volume_group";
 
     @Nullable private final LocalBluetoothManager mBtManager;
@@ -91,11 +89,11 @@
                                     ? null
                                     : mBtManager.getCachedDeviceManager().findDevice(device);
                     if (cachedDevice == null) return;
-                    int groupId = AudioSharingUtils.getGroupId(cachedDevice);
+                    int groupId = BluetoothUtils.getGroupId(cachedDevice);
                     mValueMap.put(groupId, volume);
                     for (AudioSharingDeviceVolumePreference preference : mVolumePreferences) {
                         if (preference.getCachedDevice() != null
-                                && AudioSharingUtils.getGroupId(preference.getCachedDevice())
+                                && BluetoothUtils.getGroupId(preference.getCachedDevice())
                                         == groupId) {
                             // If the callback return invalid volume, try to
                             // get the volume from AudioManager.STREAM_MUSIC
@@ -256,7 +254,7 @@
             volumePref.setOrder(getPreferenceOrderForDevice(cachedDevice));
             mVolumePreferences.add(volumePref);
             if (volumePref.getProgress() > 0) return;
-            int volume = mValueMap.getOrDefault(AudioSharingUtils.getGroupId(cachedDevice), -1);
+            int volume = mValueMap.getOrDefault(BluetoothUtils.getGroupId(cachedDevice), -1);
             // If the volume is invalid, try to get the volume from AudioManager.STREAM_MUSIC
             int finalVolume = getAudioVolumeIfNeeded(volume);
             Log.d(
@@ -369,7 +367,7 @@
             mVolumeControl.registerCallback(mExecutor, mVolumeControlCallback);
             mBluetoothDeviceUpdater.registerCallback();
             mContentResolver.registerContentObserver(
-                    Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+                    Settings.Secure.getUriFor(BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
                     false,
                     mSettingsObserver);
             mCallbacksRegistered.set(true);
@@ -415,10 +413,10 @@
     }
 
     private int getPreferenceOrderForDevice(@NonNull CachedBluetoothDevice cachedDevice) {
-        int groupId = AudioSharingUtils.getGroupId(cachedDevice);
+        int groupId = BluetoothUtils.getGroupId(cachedDevice);
         // The fallback device rank first among the audio sharing device list.
         return (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
-                        && groupId == AudioSharingUtils.getFallbackActiveGroupId(mContext))
+                && groupId == BluetoothUtils.getPrimaryGroupIdForBroadcast(mContentResolver))
                 ? 0
                 : 1;
     }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
index 01afc02..816ec6e 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
@@ -16,27 +16,46 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothCsipSetCoordinator;
+import android.bluetooth.BluetoothDevice;
 import android.content.Context;
+import android.media.AudioManager;
+import android.util.Log;
 import android.widget.SeekBar;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.android.settings.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.SeekBarPreference;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.VolumeControlProfile;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.utils.ThreadUtils;
 
 public class AudioSharingDeviceVolumePreference extends SeekBarPreference {
+    private static final String TAG = "AudioSharingVolPref";
+
     public static final int MIN_VOLUME = 0;
     public static final int MAX_VOLUME = 255;
 
+    private final Context mContext;
     private final CachedBluetoothDevice mCachedDevice;
     @Nullable protected SeekBar mSeekBar;
+    private Boolean mTrackingTouch = false;
+    private MetricsFeatureProvider mMetricsFeatureProvider =
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
     public AudioSharingDeviceVolumePreference(
             Context context, @NonNull CachedBluetoothDevice device) {
         super(context);
         setLayoutResource(R.layout.preference_volume_slider);
+        mContext = context;
         mCachedDevice = device;
     }
 
@@ -54,4 +73,95 @@
         setMax(MAX_VOLUME);
         setMin(MIN_VOLUME);
     }
+
+    @Override
+    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+        super.onProgressChanged(seekBar, progress, fromUser);
+        // When user use talk back swipe up/down or use Switch Access to change the volume bar
+        // progress, there is no onStopTrackingTouch triggered. So we need to check this scenario
+        // and update the device volume here.
+        if (fromUser && !mTrackingTouch) {
+            Log.d(TAG, "onProgressChanged from user and not in touch, handleProgressChange.");
+            handleProgressChange(progress);
+        }
+    }
+
+    @Override
+    public void onStartTrackingTouch(SeekBar seekBar) {
+        mTrackingTouch = true;
+        super.onStartTrackingTouch(seekBar);
+    }
+
+    @Override
+    public void onStopTrackingTouch(SeekBar seekBar) {
+        mTrackingTouch = false;
+        super.onStopTrackingTouch(seekBar);
+        // When user touch the volume bar to change volume, we only update the device volume when
+        // user stop touching the bar.
+        Log.d(TAG, "onStopTrackingTouch, handleProgressChange.");
+        handleProgressChange(seekBar.getProgress());
+    }
+
+    private void handleProgressChange(int progress) {
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            int groupId = BluetoothUtils.getGroupId(mCachedDevice);
+                            if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
+                                    && groupId
+                                            == BluetoothUtils.getPrimaryGroupIdForBroadcast(
+                                                    mContext.getContentResolver())) {
+                                // Set media stream volume for primary buds, audio manager will
+                                // update all buds volume in the audio sharing.
+                                setAudioManagerStreamVolume(progress);
+                            } else {
+                                // Set buds volume for other buds.
+                                setDeviceVolume(mCachedDevice.getDevice(), progress);
+                            }
+                        });
+    }
+
+    private void setDeviceVolume(@Nullable BluetoothDevice device, int progress) {
+        if (device == null) {
+            Log.d(TAG, "Skip set device volume, device is null");
+            return;
+        }
+        LocalBluetoothManager btManager = Utils.getLocalBtManager(mContext);
+        VolumeControlProfile vc =
+                btManager == null ? null : btManager.getProfileManager().getVolumeControlProfile();
+        if (vc != null) {
+            vc.setDeviceVolume(device, progress, /* isGroupOp= */ true);
+            mMetricsFeatureProvider.action(
+                    mContext,
+                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+                    /* isPrimary= */ false);
+            Log.d(
+                    TAG,
+                    "set device volume, device = "
+                            + device.getAnonymizedAddress()
+                            + " volume = "
+                            + progress);
+        }
+    }
+
+    private void setAudioManagerStreamVolume(int progress) {
+        int seekbarRange =
+                AudioSharingDeviceVolumePreference.MAX_VOLUME
+                        - AudioSharingDeviceVolumePreference.MIN_VOLUME;
+        try {
+            AudioManager audioManager = mContext.getSystemService(AudioManager.class);
+            int streamVolumeRange =
+                    audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
+                            - audioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC);
+            int volume = Math.round((float) progress * streamVolumeRange / seekbarRange);
+            audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, volume, 0);
+            mMetricsFeatureProvider.action(
+                    mContext,
+                    SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+                    /* isPrimary= */ true);
+            Log.d(TAG, "set music stream volume, volume = " + progress);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "Fail to setAudioManagerStreamVolumeForFallbackDevice, error = " + e);
+        }
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
index e787be3..1ae541c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
@@ -30,7 +30,11 @@
 import androidx.fragment.app.FragmentManager;
 
 import com.android.settings.R;
+import com.android.settings.bluetooth.BluetoothPairingDetail;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsQrCodeFragment;
+import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 
 import com.google.common.collect.Iterables;
 
@@ -76,8 +80,14 @@
             @NonNull List<AudioSharingDeviceItem> deviceItems,
             @NonNull DialogEventListener listener,
             @NonNull Pair<Integer, Object>[] eventData) {
-        if (!AudioSharingUtils.isFeatureEnabled()) return;
-        final FragmentManager manager = host.getChildFragmentManager();
+        if (!BluetoothUtils.isAudioSharingEnabled()) return;
+        final FragmentManager manager;
+        try {
+            manager = host.getChildFragmentManager();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to show dialog: " + e.getMessage());
+            return;
+        }
         sListener = listener;
         sEventData = eventData;
         AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG);
@@ -123,9 +133,27 @@
             builder.setTitle(R.string.audio_sharing_share_dialog_title)
                     .setCustomImage(R.drawable.audio_sharing_guidance)
                     .setCustomMessage(R.string.audio_sharing_dialog_connect_device_content)
-                    .setNegativeButton(
-                            R.string.audio_sharing_close_button_label,
-                            (dig, which) -> onCancelClick());
+                    .setCustomPositiveButton(
+                            R.string.audio_sharing_pair_button_label,
+                            v -> {
+                                dismiss();
+                                new SubSettingLauncher(getContext())
+                                        .setDestination(BluetoothPairingDetail.class.getName())
+                                        .setSourceMetricsCategory(getMetricsCategory())
+                                        .launch();
+                                logDialogPositiveBtnClick();
+                            })
+                    .setCustomNegativeButton(
+                            R.string.audio_sharing_qrcode_button_label,
+                            v -> {
+                                dismiss();
+                                new SubSettingLauncher(getContext())
+                                        .setTitleRes(R.string.audio_streams_qr_code_page_title)
+                                        .setDestination(AudioStreamsQrCodeFragment.class.getName())
+                                        .setSourceMetricsCategory(getMetricsCategory())
+                                        .launch();
+                                logDialogNegativeBtnClick();
+                            });
         } else if (deviceItems.size() == 1) {
             AudioSharingDeviceItem deviceItem = Iterables.getOnlyElement(deviceItems);
             builder.setTitle(
@@ -138,11 +166,7 @@
                             v -> {
                                 if (sListener != null) {
                                     sListener.onItemClick(deviceItem);
-                                    mMetricsFeatureProvider.action(
-                                            getContext(),
-                                            SettingsEnums
-                                            .ACTION_AUDIO_SHARING_DIALOG_POSITIVE_BTN_CLICKED,
-                                            sEventData);
+                                    logDialogPositiveBtnClick();
                                 }
                                 dismiss();
                             })
@@ -158,6 +182,7 @@
                                     (AudioSharingDeviceItem item) -> {
                                         if (sListener != null) {
                                             sListener.onItemClick(item);
+                                            logDialogPositiveBtnClick();
                                         }
                                         dismiss();
                                     },
@@ -171,11 +196,22 @@
     private void onCancelClick() {
         if (sListener != null) {
             sListener.onCancelClick();
-            mMetricsFeatureProvider.action(
-                    getContext(),
-                    SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED,
-                    sEventData);
+            logDialogNegativeBtnClick();
         }
         dismiss();
     }
+
+    private void logDialogPositiveBtnClick() {
+        mMetricsFeatureProvider.action(
+                getContext(),
+                SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_POSITIVE_BTN_CLICKED,
+                sEventData);
+    }
+
+    private void logDialogNegativeBtnClick() {
+        mMetricsFeatureProvider.action(
+                getContext(),
+                SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED,
+                sEventData);
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java
index 8d69cf6..14c19de 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandler.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
+import static java.util.stream.Collectors.toList;
+
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothCsipSetCoordinator;
 import android.bluetooth.BluetoothDevice;
@@ -38,6 +40,7 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -49,18 +52,20 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.concurrent.Executor;
 
 public class AudioSharingDialogHandler {
-    private static final String TAG = "AudioSharingDialogHandler";
+    private static final String TAG = "AudioSharingDlgHandler";
     private final Context mContext;
     private final Fragment mHostFragment;
     @Nullable private final LocalBluetoothManager mLocalBtManager;
+    @Nullable private final CachedBluetoothDeviceManager mDeviceManager;
     @Nullable private final LocalBluetoothLeBroadcast mBroadcast;
     @Nullable private final LocalBluetoothLeBroadcastAssistant mAssistant;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
-    private List<BluetoothDevice> mTargetSinks = new ArrayList<>();
+    // The target sinks to join broadcast onPlaybackStarted
+    @Nullable private List<BluetoothDevice> mTargetSinks;
+    private boolean mIsStoppingBroadcast = false;
 
     @VisibleForTesting
     final BluetoothLeBroadcast.Callback mBroadcastCallback =
@@ -78,8 +83,15 @@
                 @Override
                 public void onBroadcastStartFailed(int reason) {
                     Log.d(TAG, "onBroadcastStartFailed(), reason = " + reason);
-                    AudioSharingUtils.toastMessage(
-                            mContext, "Fail to start broadcast, reason " + reason);
+                    if (mTargetSinks != null) {
+                        mMetricsFeatureProvider.action(
+                                mContext,
+                                SettingsEnums.ACTION_AUDIO_SHARING_START_FAILED,
+                                SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
+                        AudioSharingUtils.toastMessage(
+                                mContext, "Fail to start broadcast, reason " + reason);
+                        mTargetSinks = null;
+                    }
                 }
 
                 @Override
@@ -101,13 +113,21 @@
                                     + reason
                                     + ", broadcastId = "
                                     + broadcastId);
+                    mIsStoppingBroadcast = false;
                 }
 
                 @Override
                 public void onBroadcastStopFailed(int reason) {
                     Log.d(TAG, "onBroadcastStopFailed(), reason = " + reason);
-                    AudioSharingUtils.toastMessage(
-                            mContext, "Fail to stop broadcast, reason " + reason);
+                    if (mIsStoppingBroadcast) {
+                        mMetricsFeatureProvider.action(
+                                mContext,
+                                SettingsEnums.ACTION_AUDIO_SHARING_STOP_FAILED,
+                                SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
+                        AudioSharingUtils.toastMessage(
+                                mContext, "Fail to stop broadcast, reason " + reason);
+                        mIsStoppingBroadcast = false;
+                    }
                 }
 
                 @Override
@@ -124,7 +144,7 @@
                                     + reason
                                     + ", broadcastId = "
                                     + broadcastId);
-                    if (!mTargetSinks.isEmpty()) {
+                    if (mTargetSinks != null) {
                         AudioSharingUtils.addSourceToTargetSinks(mTargetSinks, mLocalBtManager);
                         new SubSettingLauncher(mContext)
                                 .setDestination(AudioSharingDashboardFragment.class.getName())
@@ -134,7 +154,7 @@
                                                         .getMetricsCategory()
                                                 : SettingsEnums.PAGE_UNKNOWN)
                                 .launch();
-                        mTargetSinks = new ArrayList<>();
+                        mTargetSinks = null;
                     }
                 }
 
@@ -146,6 +166,7 @@
         mContext = context;
         mHostFragment = fragment;
         mLocalBtManager = Utils.getLocalBluetoothManager(context);
+        mDeviceManager = mLocalBtManager != null ? mLocalBtManager.getCachedDeviceManager() : null;
         mBroadcast =
                 mLocalBtManager != null
                         ? mLocalBtManager.getProfileManager().getLeAudioBroadcastProfile()
@@ -195,7 +216,7 @@
         if (isBroadcasting) {
             // Show stop audio sharing dialog when an ineligible (non LE audio) remote device
             // connected during a sharing session.
-            Map<Integer, List<CachedBluetoothDevice>> groupedDevices =
+            Map<Integer, List<BluetoothDevice>> groupedDevices =
                     AudioSharingUtils.fetchConnectedDevicesByGroupId(mLocalBtManager);
             List<AudioSharingDeviceItem> deviceItemsInSharingSession =
                     AudioSharingUtils.buildOrderedConnectedLeadAudioSharingDeviceItem(
@@ -203,6 +224,7 @@
             AudioSharingStopDialogFragment.DialogEventListener listener =
                     () -> {
                         cachedDevice.setActive();
+                        mIsStoppingBroadcast = true;
                         AudioSharingUtils.stopBroadcasting(mLocalBtManager);
                     };
             Pair<Integer, Object>[] eventData =
@@ -238,25 +260,27 @@
             @NonNull CachedBluetoothDevice cachedDevice,
             boolean isBroadcasting,
             boolean userTriggered) {
-        Map<Integer, List<CachedBluetoothDevice>> groupedDevices =
+        Map<Integer, List<BluetoothDevice>> groupedDevices =
                 AudioSharingUtils.fetchConnectedDevicesByGroupId(mLocalBtManager);
+        BluetoothDevice btDevice = cachedDevice.getDevice();
+        String deviceAddress = btDevice == null ? "" : btDevice.getAnonymizedAddress();
+        int groupId = BluetoothUtils.getGroupId(cachedDevice);
         if (isBroadcasting) {
             // If another device within the same is already in the sharing session, add source to
             // the device automatically.
-            int groupId = AudioSharingUtils.getGroupId(cachedDevice);
             if (groupedDevices.containsKey(groupId)
                     && groupedDevices.get(groupId).stream()
                             .anyMatch(
                                     device ->
-                                            BluetoothUtils.hasConnectedBroadcastSource(
+                                            BluetoothUtils.hasConnectedBroadcastSourceForBtDevice(
                                                     device, mLocalBtManager))) {
                 Log.d(
                         TAG,
                         "Automatically add another device within the same group to the sharing: "
-                                + cachedDevice.getDevice().getAnonymizedAddress());
+                                + deviceAddress);
                 if (mAssistant != null && mBroadcast != null) {
                     mAssistant.addSource(
-                            cachedDevice.getDevice(),
+                            btDevice,
                             mBroadcast.getLatestBluetoothLeBroadcastMetadata(),
                             /* isGroupOp= */ false);
                 }
@@ -295,6 +319,7 @@
                                     cachedDevice,
                                     listener,
                                     eventData);
+                            Log.d(TAG, "Show disconnect dialog, device = " + deviceAddress);
                         });
             } else {
                 // Show audio sharing join dialog when the first or second eligible (LE audio)
@@ -325,33 +350,35 @@
                                     cachedDevice,
                                     listener,
                                     eventData);
+                            Log.d(TAG, "Show join dialog, device = " + deviceAddress);
                         });
             }
         } else {
+            // Build a list of AudioSharingDeviceItem for connected devices other than cachedDevice.
             List<AudioSharingDeviceItem> deviceItems = new ArrayList<>();
-            for (List<CachedBluetoothDevice> devices : groupedDevices.values()) {
+            for (Map.Entry<Integer, List<BluetoothDevice>> entry : groupedDevices.entrySet()) {
+                if (entry.getKey() == groupId) continue;
                 // Use random device in the group within the sharing session to represent the group.
-                CachedBluetoothDevice device = devices.get(0);
-                if (AudioSharingUtils.getGroupId(device)
-                        == AudioSharingUtils.getGroupId(cachedDevice)) {
-                    continue;
+                for (BluetoothDevice device : entry.getValue()) {
+                    CachedBluetoothDevice cDevice =
+                            mDeviceManager != null ? mDeviceManager.findDevice(device) : null;
+                    if (cDevice != null) {
+                        deviceItems.add(AudioSharingUtils.buildAudioSharingDeviceItem(cDevice));
+                        break;
+                    }
                 }
-                deviceItems.add(AudioSharingUtils.buildAudioSharingDeviceItem(device));
             }
             // Show audio sharing join dialog when the second eligible (LE audio) remote
             // device connect and no sharing session.
-            if (deviceItems.size() == 1) {
+            if (groupedDevices.size() == 2 && deviceItems.size() == 1) {
                 AudioSharingJoinDialogFragment.DialogEventListener listener =
                         new AudioSharingJoinDialogFragment.DialogEventListener() {
                             @Override
                             public void onShareClick() {
-                                mTargetSinks = new ArrayList<>();
-                                for (List<CachedBluetoothDevice> devices :
-                                        groupedDevices.values()) {
-                                    for (CachedBluetoothDevice device : devices) {
-                                        mTargetSinks.add(device.getDevice());
-                                    }
-                                }
+                                mTargetSinks =
+                                        groupedDevices.values().stream()
+                                                .flatMap(items -> items.stream())
+                                                .collect(toList());
                                 Log.d(TAG, "Start broadcast with sinks = " + mTargetSinks.size());
                                 if (mBroadcast != null) {
                                     mBroadcast.startPrivateBroadcast();
@@ -378,16 +405,26 @@
                             closeOpeningDialogsOtherThan(AudioSharingJoinDialogFragment.tag());
                             AudioSharingJoinDialogFragment.show(
                                     mHostFragment, deviceItems, cachedDevice, listener, eventData);
+                            Log.d(TAG, "Show start dialog, device = " + deviceAddress);
                         });
             } else if (userTriggered) {
                 cachedDevice.setActive();
+                Log.d(TAG, "Set active device = " + deviceAddress);
+            } else {
+                Log.d(TAG, "Fail to handle LE audio device connected, device = " + deviceAddress);
             }
         }
     }
 
     private void closeOpeningDialogsOtherThan(String tag) {
         if (mHostFragment == null) return;
-        List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments();
+        List<Fragment> fragments;
+        try {
+            fragments = mHostFragment.getChildFragmentManager().getFragments();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to closeOpeningDialogsOtherThan " + tag + ": " + e.getMessage());
+            return;
+        }
         for (Fragment fragment : fragments) {
             if (fragment instanceof DialogFragment
                     && fragment.getTag() != null
@@ -402,13 +439,19 @@
     /** Close opening dialogs for le audio device */
     public void closeOpeningDialogsForLeaDevice(@NonNull CachedBluetoothDevice cachedDevice) {
         if (mHostFragment == null) return;
-        int groupId = AudioSharingUtils.getGroupId(cachedDevice);
-        List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments();
+        int groupId = BluetoothUtils.getGroupId(cachedDevice);
+        List<Fragment> fragments;
+        try {
+            fragments = mHostFragment.getChildFragmentManager().getFragments();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to closeOpeningDialogsForLeaDevice: " + e.getMessage());
+            return;
+        }
         for (Fragment fragment : fragments) {
             CachedBluetoothDevice device = getCachedBluetoothDeviceFromDialog(fragment);
             if (device != null
                     && groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID
-                    && AudioSharingUtils.getGroupId(device) == groupId) {
+                    && BluetoothUtils.getGroupId(device) == groupId) {
                 Log.d(TAG, "Remove staled opening dialog for group " + groupId);
                 ((DialogFragment) fragment).dismiss();
                 logDialogDismissEvent(fragment);
@@ -420,7 +463,13 @@
     public void closeOpeningDialogsForNonLeaDevice(@NonNull CachedBluetoothDevice cachedDevice) {
         if (mHostFragment == null) return;
         String address = cachedDevice.getAddress();
-        List<Fragment> fragments = mHostFragment.getChildFragmentManager().getFragments();
+        List<Fragment> fragments;
+        try {
+            fragments = mHostFragment.getChildFragmentManager().getFragments();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to closeOpeningDialogsForNonLeaDevice: " + e.getMessage());
+            return;
+        }
         for (Fragment fragment : fragments) {
             CachedBluetoothDevice device = getCachedBluetoothDeviceFromDialog(fragment);
             if (device != null && address != null && address.equals(device.getAddress())) {
@@ -448,9 +497,9 @@
     }
 
     private void removeSourceForGroup(
-            int groupId, Map<Integer, List<CachedBluetoothDevice>> groupedDevices) {
+            int groupId, Map<Integer, List<BluetoothDevice>> groupedDevices) {
         if (mAssistant == null) {
-            Log.d(TAG, "Fail to add source due to null profiles, group = " + groupId);
+            Log.d(TAG, "Fail to remove source due to null profiles, group = " + groupId);
             return;
         }
         if (!groupedDevices.containsKey(groupId)) {
@@ -458,8 +507,6 @@
             return;
         }
         groupedDevices.getOrDefault(groupId, ImmutableList.of()).stream()
-                .map(CachedBluetoothDevice::getDevice)
-                .filter(Objects::nonNull)
                 .forEach(
                         device -> {
                             for (BluetoothLeBroadcastReceiveState source :
@@ -470,7 +517,7 @@
     }
 
     private void addSourceForGroup(
-            int groupId, Map<Integer, List<CachedBluetoothDevice>> groupedDevices) {
+            int groupId, Map<Integer, List<BluetoothDevice>> groupedDevices) {
         if (mBroadcast == null || mAssistant == null) {
             Log.d(TAG, "Fail to add source due to null profiles, group = " + groupId);
             return;
@@ -480,8 +527,6 @@
             return;
         }
         groupedDevices.getOrDefault(groupId, ImmutableList.of()).stream()
-                .map(CachedBluetoothDevice::getDevice)
-                .filter(Objects::nonNull)
                 .forEach(
                         device ->
                                 mAssistant.addSource(
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHelper.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHelper.java
index 69001aa..010a3ba 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHelper.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHelper.java
@@ -51,12 +51,13 @@
     public static AlertDialog getDialogIfShowing(
             @NonNull FragmentManager manager, @NonNull String tag) {
         Fragment dialog = manager.findFragmentByTag(tag);
-        return dialog != null
-                        && dialog instanceof DialogFragment
-                        && ((DialogFragment) dialog).getDialog() != null
-                        && ((DialogFragment) dialog).getDialog().isShowing()
-                        && ((DialogFragment) dialog).getDialog() instanceof AlertDialog
+        return dialog instanceof DialogFragment
+                && ((DialogFragment) dialog).getDialog() != null
+                && ((DialogFragment) dialog).getDialog().isShowing()
+                && ((DialogFragment) dialog).getDialog() instanceof AlertDialog
                 ? (AlertDialog) ((DialogFragment) dialog).getDialog()
                 : null;
     }
+
+    private AudioSharingDialogHelper() {}
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
index dcd8a3b..7d91644 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
@@ -32,6 +32,7 @@
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.utils.ThreadUtils;
 
@@ -83,12 +84,18 @@
             @NonNull CachedBluetoothDevice newDevice,
             @NonNull DialogEventListener listener,
             @NonNull Pair<Integer, Object>[] eventData) {
-        if (!AudioSharingUtils.isFeatureEnabled()) return;
-        FragmentManager manager = host.getChildFragmentManager();
+        if (!BluetoothUtils.isAudioSharingEnabled()) return;
+        final FragmentManager manager;
+        try {
+            manager = host.getChildFragmentManager();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to show dialog: " + e.getMessage());
+            return;
+        }
         AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG);
         if (dialog != null) {
-            int newGroupId = AudioSharingUtils.getGroupId(newDevice);
-            if (sNewDevice != null && newGroupId == AudioSharingUtils.getGroupId(sNewDevice)) {
+            int newGroupId = BluetoothUtils.getGroupId(newDevice);
+            if (sNewDevice != null && newGroupId == BluetoothUtils.getGroupId(sNewDevice)) {
                 Log.d(
                         TAG,
                         String.format(
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
index ec669bf..9571241 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
@@ -32,6 +32,7 @@
 import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 
 import java.util.List;
@@ -58,7 +59,7 @@
 
     @Override
     public int getMetricsCategory() {
-        return AudioSharingUtils.isBroadcasting(Utils.getLocalBtManager(getContext()))
+        return BluetoothUtils.isBroadcasting(Utils.getLocalBtManager(getContext()))
                 ? SettingsEnums.DIALOG_AUDIO_SHARING_ADD_DEVICE
                 : SettingsEnums.DIALOG_START_AUDIO_SHARING;
     }
@@ -80,8 +81,14 @@
             @NonNull CachedBluetoothDevice newDevice,
             @NonNull DialogEventListener listener,
             @NonNull Pair<Integer, Object>[] eventData) {
-        if (!AudioSharingUtils.isFeatureEnabled()) return;
-        final FragmentManager manager = host.getChildFragmentManager();
+        if (!BluetoothUtils.isAudioSharingEnabled()) return;
+        final FragmentManager manager;
+        try {
+            manager = host.getChildFragmentManager();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to show dialog: " + e.getMessage());
+            return;
+        }
         sListener = listener;
         sNewDevice = newDevice;
         sEventData = eventData;
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
index 0bb6b60..0a90e7b 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.java
@@ -92,17 +92,19 @@
         shareButton.setVisibility(View.VISIBLE);
         shareButton.setImageDrawable(getContext().getDrawable(R.drawable.ic_qrcode_24dp));
         shareButton.setOnClickListener(unused -> launchAudioSharingQrCodeFragment());
+        shareButton.setContentDescription(
+                getContext().getString(R.string.audio_sharing_qrcode_button_label));
     }
 
     private void configureInvisibleStateForQrCodeIcon(ImageButton shareButton, View divider) {
-        divider.setVisibility(View.INVISIBLE);
-        shareButton.setVisibility(View.INVISIBLE);
+        divider.setVisibility(View.GONE);
+        shareButton.setVisibility(View.GONE);
         shareButton.setOnClickListener(null);
     }
 
     private void launchAudioSharingQrCodeFragment() {
         new SubSettingLauncher(getContext())
-                .setTitleText(getContext().getString(R.string.audio_streams_qr_code_page_title))
+                .setTitleRes(R.string.audio_streams_qr_code_page_title)
                 .setDestination(AudioStreamsQrCodeFragment.class.getName())
                 .setSourceMetricsCategory(SettingsEnums.AUDIO_SHARING_SETTINGS)
                 .launch();
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
index 24b8f20..a1a9698 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.isBroadcasting;
+import static com.android.settingslib.bluetooth.BluetoothUtils.isBroadcasting;
 
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothLeBroadcast;
@@ -26,6 +26,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.DefaultLifecycleObserver;
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
@@ -56,7 +57,8 @@
     private static final boolean DEBUG = BluetoothUtils.D;
     private static final String PREF_KEY = "audio_sharing_stream_name";
 
-    private final BluetoothLeBroadcast.Callback mBroadcastCallback =
+    @VisibleForTesting
+    final BluetoothLeBroadcast.Callback mBroadcastCallback =
             new BluetoothLeBroadcast.Callback() {
                 @Override
                 public void onBroadcastMetadataChanged(
@@ -172,7 +174,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
index 258cf3b..9a27a93 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
@@ -16,15 +16,22 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.isBroadcasting;
+import static com.android.settingslib.bluetooth.BluetoothUtils.isBroadcasting;
 
 import android.app.settings.SettingsEnums;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.database.ContentObserver;
+import android.os.Handler;
+import android.os.Looper;
+import android.provider.Settings;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
@@ -32,6 +39,7 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.ValidatedEditTextPreference;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -41,15 +49,19 @@
 
 public class AudioSharingPasswordPreferenceController extends BasePreferenceController
         implements ValidatedEditTextPreference.Validator,
-                AudioSharingPasswordPreference.OnDialogEventListener {
-
+                AudioSharingPasswordPreference.OnDialogEventListener,
+                DefaultLifecycleObserver {
     private static final String TAG = "AudioSharingPasswordPreferenceController";
     private static final String PREF_KEY = "audio_sharing_stream_password";
     private static final String SHARED_PREF_NAME = "audio_sharing_settings";
     private static final String SHARED_PREF_KEY = "default_password";
+    @Nullable private final ContentResolver mContentResolver;
+    @Nullable private final SharedPreferences mSharedPref;
     @Nullable private final LocalBluetoothManager mBtManager;
     @Nullable private final LocalBluetoothLeBroadcast mBroadcast;
     @Nullable private AudioSharingPasswordPreference mPreference;
+    private final ContentObserver mSettingsObserver;
+    private final SharedPreferences.OnSharedPreferenceChangeListener mSharedPrefChangeListener;
     private final AudioSharingPasswordValidator mAudioSharingPasswordValidator;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
 
@@ -61,12 +73,47 @@
                         ? mBtManager.getProfileManager().getLeAudioBroadcastProfile()
                         : null;
         mAudioSharingPasswordValidator = new AudioSharingPasswordValidator();
+        mContentResolver = context.getContentResolver();
+        mSettingsObserver = new PasswordSettingsObserver();
+        mSharedPref = context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
+        mSharedPrefChangeListener = new PasswordSharedPrefChangeListener();
         mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (!isAvailable()) {
+            Log.d(TAG, "Feature is not available.");
+            return;
+        }
+        if (mContentResolver != null) {
+            mContentResolver.registerContentObserver(
+                    Settings.Secure.getUriFor(Settings.Secure.BLUETOOTH_LE_BROADCAST_CODE),
+                    false,
+                    mSettingsObserver);
+        }
+        if (mSharedPref != null) {
+            mSharedPref.registerOnSharedPreferenceChangeListener(mSharedPrefChangeListener);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (!isAvailable()) {
+            Log.d(TAG, "Feature is not available.");
+            return;
+        }
+        if (mContentResolver != null) {
+            mContentResolver.unregisterContentObserver(mSettingsObserver);
+        }
+        if (mSharedPref != null) {
+            mSharedPref.unregisterOnSharedPreferenceChangeListener(mSharedPrefChangeListener);
+        }
+    }
+
+    @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
@@ -125,7 +172,6 @@
                             persistDefaultPassword(mContext, password);
                             mBroadcast.setBroadcastCode(
                                     isPublicBroadcast ? new byte[0] : password.getBytes());
-                            updatePreference();
                             mMetricsFeatureProvider.action(
                                     mContext,
                                     SettingsEnums.ACTION_AUDIO_STREAM_PASSWORD_UPDATED,
@@ -164,32 +210,52 @@
                         });
     }
 
-    private static void persistDefaultPassword(Context context, String defaultPassword) {
+    private class PasswordSettingsObserver extends ContentObserver {
+        PasswordSettingsObserver() {
+            super(new Handler(Looper.getMainLooper()));
+        }
+
+        @Override
+        public void onChange(boolean selfChange) {
+            Log.d(TAG, "onChange, broadcast password has been changed");
+            updatePreference();
+        }
+    }
+
+    private class PasswordSharedPrefChangeListener
+            implements SharedPreferences.OnSharedPreferenceChangeListener {
+        @Override
+        public void onSharedPreferenceChanged(
+                SharedPreferences sharedPreferences, @Nullable String key) {
+            if (!SHARED_PREF_KEY.equals(key)) {
+                return;
+            }
+            Log.d(TAG, "onSharedPreferenceChanged, default password has been changed");
+            updatePreference();
+        }
+    }
+
+    private void persistDefaultPassword(Context context, String defaultPassword) {
         if (getDefaultPassword(context).equals(defaultPassword)) {
             return;
         }
-
-        SharedPreferences sharedPref =
-                context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
-        if (sharedPref == null) {
+        if (mSharedPref == null) {
             Log.w(TAG, "persistDefaultPassword(): sharedPref is empty!");
             return;
         }
 
-        SharedPreferences.Editor editor = sharedPref.edit();
+        SharedPreferences.Editor editor = mSharedPref.edit();
         editor.putString(SHARED_PREF_KEY, defaultPassword);
         editor.apply();
     }
 
-    private static String getDefaultPassword(Context context) {
-        SharedPreferences sharedPref =
-                context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
-        if (sharedPref == null) {
+    private String getDefaultPassword(Context context) {
+        if (mSharedPref == null) {
             Log.w(TAG, "getDefaultPassword(): sharedPref is empty!");
             return "";
         }
 
-        String value = sharedPref.getString(SHARED_PREF_KEY, "");
+        String value = mSharedPref.getString(SHARED_PREF_KEY, "");
         if (value != null && value.isEmpty()) {
             Log.w(TAG, "getDefaultPassword(): default password is empty!");
         }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
index 11b195c..59494db 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
@@ -33,6 +33,7 @@
 
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class AudioSharingPlaySoundPreferenceController
@@ -56,7 +57,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return (mRingtone != null && AudioSharingUtils.isFeatureEnabled())
+        return (mRingtone != null && BluetoothUtils.isAudioSharingEnabled())
                 ? AVAILABLE
                 : UNSUPPORTED_ON_DEVICE;
     }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
index 0244889..3c078ef 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.java
@@ -34,6 +34,7 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.bluetooth.BluetoothCallback;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.utils.ThreadUtils;
@@ -134,12 +135,12 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
     public CharSequence getSummary() {
-        return AudioSharingUtils.isBroadcasting(mBtManager)
+        return BluetoothUtils.isBroadcasting(mBtManager)
                 ? mContext.getString(R.string.audio_sharing_summary_on)
                 : mContext.getString(R.string.audio_sharing_summary_off);
     }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java
index 2b976d2..371613f 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiver.java
@@ -32,6 +32,7 @@
 import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -48,7 +49,7 @@
 
     @Override
     public void onReceive(Context context, Intent intent) {
-        if (!AudioSharingUtils.isFeatureEnabled()) {
+        if (!BluetoothUtils.isAudioSharingEnabled()) {
             Log.w(TAG, "Skip handling received intent, flag is off.");
             return;
         }
@@ -80,9 +81,15 @@
                 break;
             case ACTION_LE_AUDIO_SHARING_STOP:
                 LocalBluetoothManager manager = Utils.getLocalBtManager(context);
-                AudioSharingUtils.stopBroadcasting(manager);
-                metricsFeatureProvider.action(
-                        context, SettingsEnums.ACTION_STOP_AUDIO_SHARING_FROM_NOTIFICATION);
+                if (BluetoothUtils.isBroadcasting(manager)) {
+                    AudioSharingUtils.stopBroadcasting(manager);
+                    metricsFeatureProvider.action(
+                            context, SettingsEnums.ACTION_STOP_AUDIO_SHARING_FROM_NOTIFICATION);
+                } else {
+                    cancelSharingNotification(context);
+                    metricsFeatureProvider.action(
+                            context, SettingsEnums.ACTION_CANCEL_AUDIO_SHARING_NOTIFICATION);
+                }
                 break;
             default:
                 Log.w(TAG, "Received unexpected intent " + intent.getAction());
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
index 59593ba..5b71f51 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.java
@@ -32,6 +32,7 @@
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.utils.ThreadUtils;
 
@@ -80,13 +81,19 @@
             @NonNull CachedBluetoothDevice newDevice,
             @NonNull DialogEventListener listener,
             @NonNull Pair<Integer, Object>[] eventData) {
-        if (!AudioSharingUtils.isFeatureEnabled()) return;
-        final FragmentManager manager = host.getChildFragmentManager();
+        if (!BluetoothUtils.isAudioSharingEnabled()) return;
+        final FragmentManager manager;
+        try {
+            manager = host.getChildFragmentManager();
+        } catch (IllegalStateException e) {
+            Log.d(TAG, "Fail to show dialog: " + e.getMessage());
+            return;
+        }
         AlertDialog dialog = AudioSharingDialogHelper.getDialogIfShowing(manager, TAG);
         if (dialog != null) {
-            int newGroupId = AudioSharingUtils.getGroupId(newDevice);
+            int newGroupId = BluetoothUtils.getGroupId(newDevice);
             if (sCachedDevice != null
-                    && newGroupId == AudioSharingUtils.getGroupId(sCachedDevice)) {
+                    && newGroupId == BluetoothUtils.getGroupId(sCachedDevice)) {
                 Log.d(
                         TAG,
                         String.format(
@@ -140,6 +147,13 @@
         return sCachedDevice;
     }
 
+    /** Test only: get the {@link DialogEventListener} passed to the dialog. */
+    @VisibleForTesting
+    @Nullable
+    DialogEventListener getListener() {
+        return sListener;
+    }
+
     /** Test only: get the event data passed to the dialog. */
     @VisibleForTesting
     @NonNull
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
index 89d2c95..a802132 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
@@ -23,7 +23,6 @@
 import android.bluetooth.BluetoothLeBroadcastAssistant;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
-import android.bluetooth.BluetoothProfile;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -31,6 +30,9 @@
 import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.util.Pair;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
 
@@ -41,11 +43,12 @@
 import androidx.lifecycle.DefaultLifecycleObserver;
 import androidx.lifecycle.LifecycleOwner;
 
+import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.SettingsMainSwitchBar;
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -60,17 +63,15 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Objects;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.Collectors;
 
 public class AudioSharingSwitchBarController extends BasePreferenceController
         implements DefaultLifecycleObserver,
-                OnCheckedChangeListener,
-                LocalBluetoothProfileManager.ServiceListener {
-    private static final String TAG = "AudioSharingSwitchBarCtl";
+        OnCheckedChangeListener,
+        LocalBluetoothProfileManager.ServiceListener {
+    private static final String TAG = "AudioSharingSwitchCtlr";
     private static final String PREF_KEY = "audio_sharing_main_switch";
 
     interface OnAudioSharingStateChangedListener {
@@ -100,7 +101,7 @@
     private final Executor mExecutor;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private final OnAudioSharingStateChangedListener mListener;
-    private Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+    private Map<Integer, List<BluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
     private List<BluetoothDevice> mTargetActiveSinks = new ArrayList<>();
     private List<AudioSharingDeviceItem> mDeviceItemsForSharing = new ArrayList<>();
     @VisibleForTesting IntentFilter mIntentFilter;
@@ -128,14 +129,19 @@
                                     + ", broadcastId = "
                                     + broadcastId);
                     updateSwitch();
+                    AudioSharingUtils.toastMessage(
+                            mContext, mContext.getString(R.string.audio_sharing_sharing_label));
                     mListener.onAudioSharingStateChanged();
                 }
 
                 @Override
                 public void onBroadcastStartFailed(int reason) {
                     Log.d(TAG, "onBroadcastStartFailed(), reason = " + reason);
-                    // TODO: handle broadcast start fail
                     updateSwitch();
+                    mMetricsFeatureProvider.action(
+                            mContext,
+                            SettingsEnums.ACTION_AUDIO_SHARING_START_FAILED,
+                            SettingsEnums.AUDIO_SHARING_SETTINGS);
                 }
 
                 @Override
@@ -158,14 +164,20 @@
                                     + ", broadcastId = "
                                     + broadcastId);
                     updateSwitch();
+                    AudioSharingUtils.toastMessage(
+                            mContext,
+                            mContext.getString(R.string.audio_sharing_sharing_stopped_label));
                     mListener.onAudioSharingStateChanged();
                 }
 
                 @Override
                 public void onBroadcastStopFailed(int reason) {
                     Log.d(TAG, "onBroadcastStopFailed(), reason = " + reason);
-                    // TODO: handle broadcast stop fail
                     updateSwitch();
+                    mMetricsFeatureProvider.action(
+                            mContext,
+                            SettingsEnums.ACTION_AUDIO_SHARING_STOP_FAILED,
+                            SettingsEnums.AUDIO_SHARING_SETTINGS);
                 }
 
                 @Override
@@ -189,7 +201,8 @@
                 public void onPlaybackStopped(int reason, int broadcastId) {}
             };
 
-    private final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
+    @VisibleForTesting
+    final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
             new BluetoothLeBroadcastAssistant.Callback() {
                 @Override
                 public void onSearchStarted(int reason) {}
@@ -207,16 +220,8 @@
                 public void onSourceFound(@NonNull BluetoothLeBroadcastMetadata source) {}
 
                 @Override
-                public void onSourceAdded(@NonNull BluetoothDevice sink, int sourceId, int reason) {
-                    Log.d(
-                            TAG,
-                            "onSourceAdded(), sink = "
-                                    + sink
-                                    + ", sourceId = "
-                                    + sourceId
-                                    + ", reason = "
-                                    + reason);
-                }
+                public void onSourceAdded(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
 
                 @Override
                 public void onSourceAddFailed(
@@ -231,6 +236,10 @@
                                     + source
                                     + ", reason = "
                                     + reason);
+                    mMetricsFeatureProvider.action(
+                            mContext,
+                            SettingsEnums.ACTION_AUDIO_SHARING_JOIN_FAILED,
+                            SettingsEnums.AUDIO_SHARING_SETTINGS);
                     AudioSharingUtils.toastMessage(
                             mContext,
                             String.format(
@@ -281,6 +290,7 @@
                         : mProfileManager.getLeAudioBroadcastAssistantProfile();
         mExecutor = Executors.newSingleThreadExecutor();
         mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        mSwitchBar.getRootView().setAccessibilityDelegate(new MainSwitchAccessibilityDelegate());
     }
 
     @Override
@@ -318,26 +328,25 @@
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         // Filter out unnecessary callbacks when switch is disabled.
         if (!buttonView.isEnabled()) return;
+        if (mBroadcast == null || mAssistant == null) {
+            mSwitchBar.setChecked(false);
+            Log.d(TAG, "Skip onCheckedChanged, profile not support.");
+            return;
+        }
+        mSwitchBar.setEnabled(false);
+        boolean isBroadcasting = BluetoothUtils.isBroadcasting(mBtManager);
         if (isChecked) {
-            mSwitchBar.setEnabled(false);
-            boolean isBroadcasting = AudioSharingUtils.isBroadcasting(mBtManager);
-            if (mAssistant == null || mBroadcast == null || isBroadcasting) {
-                Log.d(TAG, "Skip startAudioSharing, already broadcasting or not support.");
+            if (isBroadcasting) {
+                Log.d(TAG, "Skip startAudioSharing, already broadcasting.");
                 mSwitchBar.setEnabled(true);
-                if (!isBroadcasting) {
-                    mSwitchBar.setChecked(false);
-                }
                 return;
             }
             // FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST is always true in
             // prod. We can turn off the flag for debug purpose.
             if (FeatureFlagUtils.isEnabled(
-                            mContext,
-                            FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST)
-                    && mAssistant
-                            .getDevicesMatchingConnectionStates(
-                                    new int[] {BluetoothProfile.STATE_CONNECTED})
-                            .isEmpty()) {
+                    mContext,
+                    FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST)
+                    && mAssistant.getAllConnectedDevices().isEmpty()) {
                 // Pop up dialog to ask users to connect at least one lea buds before audio sharing.
                 AudioSharingUtils.postOnMainThread(
                         mContext,
@@ -352,13 +361,18 @@
             }
             startAudioSharing();
         } else {
+            if (!isBroadcasting) {
+                Log.d(TAG, "Skip stopAudioSharing, already not broadcasting.");
+                mSwitchBar.setEnabled(true);
+                return;
+            }
             stopAudioSharing();
         }
     }
 
     @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
@@ -443,29 +457,27 @@
         mDeviceItemsForSharing = new ArrayList<>(deviceItems);
         mTargetActiveSinks = new ArrayList<>();
         if (!deviceItems.isEmpty() && deviceItems.get(0).isActive()) {
-            for (CachedBluetoothDevice device :
+            // If active device exists for audio sharing, share to it
+            // automatically once the broadcast is started.
+            mTargetActiveSinks =
                     mGroupedConnectedDevices.getOrDefault(
-                            deviceItems.get(0).getGroupId(), ImmutableList.of())) {
-                // If active device exists for audio sharing, share to it
-                // automatically once the broadcast is started.
-                mTargetActiveSinks.add(device.getDevice());
-            }
+                            deviceItems.get(0).getGroupId(), ImmutableList.of());
             mDeviceItemsForSharing.remove(0);
         }
         if (mBroadcast != null) {
             mBroadcast.startPrivateBroadcast();
+            mMetricsFeatureProvider.action(
+                    mContext,
+                    SettingsEnums.ACTION_AUDIO_SHARING_MAIN_SWITCH_ON,
+                    deviceItems.size());
         }
     }
 
     private void stopAudioSharing() {
-        mSwitchBar.setEnabled(false);
-        if (!AudioSharingUtils.isBroadcasting(mBtManager)) {
-            Log.d(TAG, "Skip stopAudioSharing, already not broadcasting or broadcast not support.");
-            mSwitchBar.setEnabled(true);
-            return;
-        }
         if (mBroadcast != null) {
             mBroadcast.stopBroadcast(mBroadcast.getLatestBroadcastId());
+            mMetricsFeatureProvider.action(
+                    mContext, SettingsEnums.ACTION_AUDIO_SHARING_MAIN_SWITCH_OFF);
         }
     }
 
@@ -473,11 +485,11 @@
         var unused =
                 ThreadUtils.postOnBackgroundThread(
                         () -> {
-                            boolean isBroadcasting = AudioSharingUtils.isBroadcasting(mBtManager);
+                            boolean isBroadcasting = BluetoothUtils.isBroadcasting(mBtManager);
                             boolean isStateReady =
                                     isBluetoothOn()
                                             && AudioSharingUtils.isAudioSharingProfileReady(
-                                                    mProfileManager);
+                                            mProfileManager);
                             AudioSharingUtils.postOnMainThread(
                                     mContext,
                                     () -> {
@@ -530,12 +542,8 @@
                     @Override
                     public void onItemClick(@NonNull AudioSharingDeviceItem item) {
                         AudioSharingUtils.addSourceToTargetSinks(
-                                mGroupedConnectedDevices
-                                        .getOrDefault(item.getGroupId(), ImmutableList.of())
-                                        .stream()
-                                        .map(CachedBluetoothDevice::getDevice)
-                                        .filter(Objects::nonNull)
-                                        .collect(Collectors.toList()),
+                                mGroupedConnectedDevices.getOrDefault(
+                                        item.getGroupId(), ImmutableList.of()),
                                 mBtManager);
                         mGroupedConnectedDevices.clear();
                         mDeviceItemsForSharing.clear();
@@ -557,4 +565,19 @@
                     }
                 });
     }
+
+    private static final class MainSwitchAccessibilityDelegate extends View.AccessibilityDelegate {
+        @Override
+        public boolean onRequestSendAccessibilityEvent(
+                @NonNull ViewGroup host, @NonNull View view, @NonNull AccessibilityEvent event) {
+            if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED
+                    && (event.getContentChangeTypes()
+                    & AccessibilityEvent.CONTENT_CHANGE_TYPE_ENABLED)
+                    != 0) {
+                Log.d(TAG, "Skip accessibility event for CONTENT_CHANGE_TYPE_ENABLED");
+                return false;
+            }
+            return super.onRequestSendAccessibilityEvent(host, view, event);
+        }
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
index 29f605c..0c2dc36 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
@@ -22,14 +22,12 @@
 import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_SOURCE_PAGE_ID;
 import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.MetricKey.METRIC_KEY_USER_TRIGGERED;
 
-import android.bluetooth.BluetoothAdapter;
+import static java.util.stream.Collectors.toList;
+
 import android.bluetooth.BluetoothCsipSetCoordinator;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
-import android.bluetooth.BluetoothProfile;
-import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
-import android.provider.Settings;
 import android.util.Log;
 import android.util.Pair;
 import android.widget.Toast;
@@ -44,20 +42,17 @@
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
-import com.android.settingslib.bluetooth.LocalBluetoothProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 import com.android.settingslib.bluetooth.VolumeControlProfile;
-import com.android.settingslib.flags.Flags;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
+import java.util.Objects;
 
 public class AudioSharingUtils {
-    public static final String SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID =
-            "bluetooth_le_broadcast_fallback_active_group_id";
     private static final String TAG = "AudioSharingUtils";
     private static final boolean DEBUG = BluetoothUtils.D;
 
@@ -70,15 +65,15 @@
     }
 
     /**
-     * Fetch {@link CachedBluetoothDevice}s connected to the broadcast assistant. The devices are
-     * grouped by CSIP group id.
+     * Fetch {@link BluetoothDevice}s connected to the broadcast assistant. The devices are grouped
+     * by CSIP group id.
      *
      * @param localBtManager The BT manager to provide BT functions.
      * @return A map of connected devices grouped by CSIP group id.
      */
-    public static Map<Integer, List<CachedBluetoothDevice>> fetchConnectedDevicesByGroupId(
+    public static Map<Integer, List<BluetoothDevice>> fetchConnectedDevicesByGroupId(
             @Nullable LocalBluetoothManager localBtManager) {
-        Map<Integer, List<CachedBluetoothDevice>> groupedDevices = new HashMap<>();
+        Map<Integer, List<BluetoothDevice>> groupedDevices = new HashMap<>();
         if (localBtManager == null) {
             Log.d(TAG, "Skip fetchConnectedDevicesByGroupId due to bt manager is null");
             return groupedDevices;
@@ -89,9 +84,7 @@
             Log.d(TAG, "Skip fetchConnectedDevicesByGroupId due to assistant profile is null");
             return groupedDevices;
         }
-        List<BluetoothDevice> connectedDevices =
-                assistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED});
+        List<BluetoothDevice> connectedDevices = assistant.getAllConnectedDevices();
         CachedBluetoothDeviceManager cacheManager = localBtManager.getCachedDeviceManager();
         for (BluetoothDevice device : connectedDevices) {
             CachedBluetoothDevice cachedDevice = cacheManager.findDevice(device);
@@ -99,7 +92,7 @@
                 Log.d(TAG, "Skip device due to not being cached: " + device.getAnonymizedAddress());
                 continue;
             }
-            int groupId = getGroupId(cachedDevice);
+            int groupId = BluetoothUtils.getGroupId(cachedDevice);
             if (groupId == BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
                 Log.d(
                         TAG,
@@ -109,7 +102,7 @@
             if (!groupedDevices.containsKey(groupId)) {
                 groupedDevices.put(groupId, new ArrayList<>());
             }
-            groupedDevices.get(groupId).add(cachedDevice);
+            groupedDevices.get(groupId).add(device);
         }
         if (DEBUG) {
             Log.d(TAG, "fetchConnectedDevicesByGroupId: " + groupedDevices);
@@ -132,11 +125,16 @@
      */
     public static List<CachedBluetoothDevice> buildOrderedConnectedLeadDevices(
             @Nullable LocalBluetoothManager localBtManager,
-            Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices,
+            Map<Integer, List<BluetoothDevice>> groupedConnectedDevices,
             boolean filterByInSharing) {
         List<CachedBluetoothDevice> orderedDevices = new ArrayList<>();
-        for (List<CachedBluetoothDevice> devices : groupedConnectedDevices.values()) {
-            CachedBluetoothDevice leadDevice = getLeadDevice(devices);
+        if (localBtManager == null) {
+            Log.d(TAG, "Skip buildOrderedConnectedLeadDevices due to bt manager is null");
+            return orderedDevices;
+        }
+        CachedBluetoothDeviceManager deviceManager = localBtManager.getCachedDeviceManager();
+        for (List<BluetoothDevice> devices : groupedConnectedDevices.values()) {
+            CachedBluetoothDevice leadDevice = getLeadDevice(deviceManager, devices);
             if (leadDevice == null) {
                 Log.d(TAG, "Skip due to no lead device");
                 continue;
@@ -151,52 +149,39 @@
             }
             orderedDevices.add(leadDevice);
         }
-        orderedDevices.sort(
-                (CachedBluetoothDevice d1, CachedBluetoothDevice d2) -> {
-                    // Active above not inactive
-                    int comparison =
-                            (isActiveLeAudioDevice(d2) ? 1 : 0)
-                                    - (isActiveLeAudioDevice(d1) ? 1 : 0);
-                    if (comparison != 0) return comparison;
-                    // Bonded above not bonded
-                    comparison =
-                            (d2.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0)
-                                    - (d1.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0);
-                    if (comparison != 0) return comparison;
-                    // Bond timestamp available above unavailable
-                    comparison =
-                            (d2.getBondTimestamp() != null ? 1 : 0)
-                                    - (d1.getBondTimestamp() != null ? 1 : 0);
-                    if (comparison != 0) return comparison;
-                    // Order by bond timestamp if it is available
-                    // Otherwise order by device name
-                    return d1.getBondTimestamp() != null
-                            ? d1.getBondTimestamp().compareTo(d2.getBondTimestamp())
-                            : d1.getName().compareTo(d2.getName());
-                });
+        orderedDevices.sort(sCachedDeviceComparator);
         return orderedDevices;
     }
 
     /**
      * Get the lead device from a list of devices with same group id.
      *
+     * @param deviceManager CachedBluetoothDeviceManager
      * @param devices A list of devices with same group id.
      * @return The lead device
      */
     @Nullable
     public static CachedBluetoothDevice getLeadDevice(
-            @NonNull List<CachedBluetoothDevice> devices) {
-        if (devices.isEmpty()) return null;
-        for (CachedBluetoothDevice device : devices) {
-            if (!device.getMemberDevice().isEmpty()) {
-                return device;
+            @Nullable CachedBluetoothDeviceManager deviceManager,
+            @NonNull List<BluetoothDevice> devices) {
+        if (deviceManager == null || devices.isEmpty()) return null;
+        List<CachedBluetoothDevice> cachedDevices =
+                devices.stream()
+                        .map(device -> deviceManager.findDevice(device))
+                        .filter(Objects::nonNull)
+                        .collect(toList());
+        for (CachedBluetoothDevice cachedDevice : cachedDevices) {
+            if (!cachedDevice.getMemberDevice().isEmpty()) {
+                return cachedDevice;
             }
         }
-        CachedBluetoothDevice leadDevice = devices.get(0);
+        CachedBluetoothDevice leadDevice = cachedDevices.isEmpty() ? null : cachedDevices.get(0);
         Log.d(
                 TAG,
                 "No lead device in the group, pick arbitrary device as the lead: "
-                        + leadDevice.getDevice().getAnonymizedAddress());
+                        + (leadDevice == null
+                                ? "null"
+                                : leadDevice.getDevice().getAnonymizedAddress()));
         return leadDevice;
     }
 
@@ -216,13 +201,13 @@
     @NonNull
     public static List<AudioSharingDeviceItem> buildOrderedConnectedLeadAudioSharingDeviceItem(
             @Nullable LocalBluetoothManager localBtManager,
-            Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices,
+            Map<Integer, List<BluetoothDevice>> groupedConnectedDevices,
             boolean filterByInSharing) {
         return buildOrderedConnectedLeadDevices(
                         localBtManager, groupedConnectedDevices, filterByInSharing)
                 .stream()
                 .map(AudioSharingUtils::buildAudioSharingDeviceItem)
-                .collect(Collectors.toList());
+                .collect(toList());
     }
 
     /** Build {@link AudioSharingDeviceItem} from {@link CachedBluetoothDevice}. */
@@ -230,7 +215,7 @@
             CachedBluetoothDevice cachedDevice) {
         return new AudioSharingDeviceItem(
                 cachedDevice.getName(),
-                getGroupId(cachedDevice),
+                BluetoothUtils.getGroupId(cachedDevice),
                 isActiveLeAudioDevice(cachedDevice));
     }
 
@@ -250,16 +235,6 @@
                 .execute(() -> Toast.makeText(context, message, Toast.LENGTH_LONG).show());
     }
 
-    /** Returns if the le audio sharing is enabled. */
-    public static boolean isFeatureEnabled() {
-        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
-        return Flags.enableLeAudioSharing()
-                && adapter.isLeAudioBroadcastSourceSupported()
-                        == BluetoothStatusCodes.FEATURE_SUPPORTED
-                && adapter.isLeAudioBroadcastAssistantSupported()
-                        == BluetoothStatusCodes.FEATURE_SUPPORTED;
-    }
-
     /** Add source to target sinks. */
     public static void addSourceToTargetSinks(
             List<BluetoothDevice> sinks, @Nullable LocalBluetoothManager localBtManager) {
@@ -289,9 +264,7 @@
             Log.d(TAG, "skip addSourceToTargetDevices: There is no broadcastMetadata.");
             return;
         }
-        List<BluetoothDevice> connectedDevices =
-                assistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED});
+        List<BluetoothDevice> connectedDevices = assistant.getAllConnectedDevices();
         for (BluetoothDevice sink : sinks) {
             if (connectedDevices.contains(sink)) {
                 Log.d(
@@ -312,14 +285,6 @@
         }
     }
 
-    /** Returns if the broadcast is on-going. */
-    public static boolean isBroadcasting(@Nullable LocalBluetoothManager manager) {
-        if (manager == null) return false;
-        LocalBluetoothLeBroadcast broadcast =
-                manager.getProfileManager().getLeAudioBroadcastProfile();
-        return broadcast != null && broadcast.isEnabled(null);
-    }
-
     /** Stops the latest broadcast. */
     public static void stopBroadcasting(@Nullable LocalBluetoothManager manager) {
         if (manager == null) {
@@ -335,37 +300,6 @@
         }
     }
 
-    /**
-     * Get CSIP group id for {@link CachedBluetoothDevice}.
-     *
-     * <p>If CachedBluetoothDevice#getGroupId is invalid, fetch group id from
-     * LeAudioProfile#getGroupId.
-     */
-    public static int getGroupId(CachedBluetoothDevice cachedDevice) {
-        int groupId = cachedDevice.getGroupId();
-        String anonymizedAddress = cachedDevice.getDevice().getAnonymizedAddress();
-        if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
-            Log.d(TAG, "getGroupId by CSIP profile for device: " + anonymizedAddress);
-            return groupId;
-        }
-        for (LocalBluetoothProfile profile : cachedDevice.getProfiles()) {
-            if (profile instanceof LeAudioProfile) {
-                Log.d(TAG, "getGroupId by LEA profile for device: " + anonymizedAddress);
-                return ((LeAudioProfile) profile).getGroupId(cachedDevice.getDevice());
-            }
-        }
-        Log.d(TAG, "getGroupId return invalid id for device: " + anonymizedAddress);
-        return BluetoothCsipSetCoordinator.GROUP_ID_INVALID;
-    }
-
-    /** Get the fallback active group id from SettingsProvider. */
-    public static int getFallbackActiveGroupId(@NonNull Context context) {
-        return Settings.Secure.getInt(
-                context.getContentResolver(),
-                SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID,
-                BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
-    }
-
     /** Post the runnable to main thread. */
     public static void postOnMainThread(@NonNull Context context, @NonNull Runnable runnable) {
         context.getMainExecutor().execute(runnable);
@@ -422,4 +356,27 @@
             Pair.create(METRIC_KEY_CANDIDATE_DEVICE_COUNT.ordinal(), candidateDeviceCount)
         };
     }
+
+    private static final Comparator<CachedBluetoothDevice> sCachedDeviceComparator =
+            (CachedBluetoothDevice d1, CachedBluetoothDevice d2) -> {
+                // Active above not inactive
+                int comparison =
+                        (isActiveLeAudioDevice(d2) ? 1 : 0) - (isActiveLeAudioDevice(d1) ? 1 : 0);
+                if (comparison != 0) return comparison;
+                // Bonded above not bonded
+                comparison =
+                        (d2.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0)
+                                - (d1.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0);
+                if (comparison != 0) return comparison;
+                // Bond timestamp available above unavailable
+                comparison =
+                        (d2.getBondTimestamp() != null ? 1 : 0)
+                                - (d1.getBondTimestamp() != null ? 1 : 0);
+                if (comparison != 0) return comparison;
+                // Order by bond timestamp if it is available
+                // Otherwise order by device name
+                return d1.getBondTimestamp() != null
+                        ? d1.getBondTimestamp().compareTo(d2.getBondTimestamp())
+                        : d1.getName().compareTo(d2.getName());
+            };
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
index e9953a5..40f86d0 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
@@ -33,6 +33,7 @@
 
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 
@@ -90,7 +91,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return BluetoothUtils.isAudioSharingEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseState.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseState.java
index 24a28dd..7be01a2 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseState.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseState.java
@@ -36,7 +36,8 @@
 
     @Nullable private static AddSourceWaitForResponseState sInstance = null;
 
-    private AddSourceWaitForResponseState() {}
+    @VisibleForTesting
+    AddSourceWaitForResponseState() {}
 
     static AddSourceWaitForResponseState getInstance() {
         if (sInstance == null) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonController.java
index 2661072..939dd5c 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonController.java
@@ -27,6 +27,7 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.DefaultLifecycleObserver;
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.PreferenceScreen;
@@ -48,7 +49,9 @@
     private static final String TAG = "AudioStreamButtonController";
     private static final String KEY = "audio_stream_button";
     private static final int SOURCE_ORIGIN_REPOSITORY = SourceOriginForLogging.REPOSITORY.ordinal();
-    private final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
+
+    @VisibleForTesting
+    final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
             new AudioStreamsBroadcastAssistantCallback() {
                 @Override
                 public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
@@ -97,8 +100,7 @@
                 }
             };
 
-    private final AudioStreamsRepository mAudioStreamsRepository =
-            AudioStreamsRepository.getInstance();
+    private AudioStreamsRepository mAudioStreamsRepository = AudioStreamsRepository.getInstance();
     private final Executor mExecutor;
     private final AudioStreamsHelper mAudioStreamsHelper;
     private final @Nullable LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
@@ -228,4 +230,9 @@
     void init(int broadcastId) {
         mBroadcastId = broadcastId;
     }
+
+    @VisibleForTesting
+    void setAudioStreamsRepositoryForTesting(AudioStreamsRepository repository) {
+        mAudioStreamsRepository = repository;
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
index 6c449a4..958740b 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
@@ -23,7 +23,6 @@
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
-import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
@@ -31,21 +30,25 @@
 import android.util.Log;
 
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 
 public class AudioStreamConfirmDialog extends InstrumentedDialogFragment {
     private static final String TAG = "AudioStreamConfirmDialog";
-    private static final int DEFAULT_DEVICE_NAME = R.string.audio_streams_dialog_default_device;
+
+    @VisibleForTesting
+    static final int DEFAULT_DEVICE_NAME = R.string.audio_streams_dialog_default_device;
+
     private Context mContext;
-    @Nullable private Activity mActivity;
+    @VisibleForTesting @Nullable Activity mActivity;
     @Nullable private BluetoothLeBroadcastMetadata mBroadcastMetadata;
     @Nullable private BluetoothDevice mConnectedDevice;
     private int mAudioStreamConfirmDialogId = SettingsEnums.PAGE_UNKNOWN;
@@ -126,6 +129,10 @@
     private Dialog getUnsupportedDialog() {
         return new AudioStreamsDialogFragment.DialogBuilder(getActivity())
                 .setTitle(getString(R.string.audio_streams_dialog_cannot_listen))
+                .setSubTitle1(
+                        mBroadcastMetadata != null
+                                ? AudioStreamsHelper.getBroadcastName(mBroadcastMetadata)
+                                : "")
                 .setSubTitle2(getString(R.string.audio_streams_dialog_unsupported_device_subtitle))
                 .setRightButtonText(getString(R.string.audio_streams_dialog_close))
                 .setRightButtonOnClickListener(
@@ -207,7 +214,7 @@
     }
 
     private int getDialogId(boolean hasMetadata, boolean hasConnectedDevice) {
-        if (!AudioSharingUtils.isFeatureEnabled()) {
+        if (!BluetoothUtils.isAudioSharingEnabled()) {
             return SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_FEATURE_UNSUPPORTED;
         }
         if (!hasConnectedDevice) {
@@ -229,9 +236,7 @@
         if (assistant == null) {
             return null;
         }
-        var devices =
-                assistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED});
+        var devices = assistant.getAllConnectedDevices();
         return devices.isEmpty() ? null : devices.get(0);
     }
 
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java
index 88e2322..3437524 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivity.java
@@ -25,6 +25,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 
 public class AudioStreamConfirmDialogActivity extends SettingsActivity
@@ -49,7 +50,7 @@
 
     @Override
     protected void createUiFromIntent(@Nullable Bundle savedState, Intent intent) {
-        if (AudioSharingUtils.isFeatureEnabled()
+        if (BluetoothUtils.isAudioSharingEnabled()
                 && !AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
             Log.d(TAG, "createUiFromIntent() : supported but not ready, skip createUiFromIntent");
             mSavedState = savedState;
@@ -66,7 +67,7 @@
 
     @Override
     public void onStart() {
-        if (AudioSharingUtils.isFeatureEnabled()
+        if (BluetoothUtils.isAudioSharingEnabled()
                 && !AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
             Log.d(TAG, "onStart() : supported but not ready, listen to service ready");
             if (mProfileManager != null) {
@@ -86,7 +87,7 @@
 
     @Override
     public void onServiceConnected() {
-        if (AudioSharingUtils.isFeatureEnabled()
+        if (BluetoothUtils.isAudioSharingEnabled()
                 && AudioSharingUtils.isAudioSharingProfileReady(mProfileManager)) {
             if (mProfileManager != null) {
                 mProfileManager.removeServiceListener(this);
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java
index 860e62e..e1a178d 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java
@@ -54,7 +54,9 @@
     private final Executor mExecutor;
     private final AudioStreamsHelper mAudioStreamsHelper;
     @Nullable private final LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
-    private final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
+
+    @VisibleForTesting
+    final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
             new AudioStreamsBroadcastAssistantCallback() {
                 @Override
                 public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java
index 6d297f4..d5be2bb 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaService.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static java.util.Collections.emptyList;
+
 import android.app.Notification;
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
@@ -41,19 +43,23 @@
 
 import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
-import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.VolumeControlProfile;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.utils.ThreadUtils;
 
-import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
 
 public class AudioStreamMediaService extends Service {
     static final String BROADCAST_ID = "audio_stream_media_service_broadcast_id";
@@ -62,102 +68,13 @@
     private static final String TAG = "AudioStreamMediaService";
     private static final int NOTIFICATION_ID = 1;
     private static final int BROADCAST_CONTENT_TEXT = R.string.audio_streams_listening_now;
-    private static final String LEAVE_BROADCAST_ACTION = "leave_broadcast_action";
+    @VisibleForTesting static final String LEAVE_BROADCAST_ACTION = "leave_broadcast_action";
     private static final String LEAVE_BROADCAST_TEXT = "Leave Broadcast";
     private static final String CHANNEL_ID = "bluetooth_notification_channel";
     private static final String DEFAULT_DEVICE_NAME = "";
     private static final int STATIC_PLAYBACK_DURATION = 100;
     private static final int STATIC_PLAYBACK_POSITION = 30;
     private static final int ZERO_PLAYBACK_SPEED = 0;
-    private final AudioStreamsBroadcastAssistantCallback mBroadcastAssistantCallback =
-            new AudioStreamsBroadcastAssistantCallback() {
-                @Override
-                public void onSourceLost(int broadcastId) {
-                    super.onSourceLost(broadcastId);
-                    if (broadcastId == mBroadcastId) {
-                        stopSelf();
-                    }
-                }
-
-                @Override
-                public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
-                    super.onSourceRemoved(sink, sourceId, reason);
-                    if (mAudioStreamsHelper != null
-                            && mAudioStreamsHelper.getAllConnectedSources().stream()
-                                    .map(BluetoothLeBroadcastReceiveState::getBroadcastId)
-                                    .noneMatch(id -> id == mBroadcastId)) {
-                        stopSelf();
-                    }
-                }
-            };
-
-    private final BluetoothCallback mBluetoothCallback =
-            new BluetoothCallback() {
-                @Override
-                public void onBluetoothStateChanged(int bluetoothState) {
-                    if (BluetoothAdapter.STATE_OFF == bluetoothState) {
-                        stopSelf();
-                    }
-                }
-
-                @Override
-                public void onProfileConnectionStateChanged(
-                        @NonNull CachedBluetoothDevice cachedDevice,
-                        @ConnectionState int state,
-                        int bluetoothProfile) {
-                    if (state == BluetoothAdapter.STATE_DISCONNECTED
-                            && bluetoothProfile == BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT
-                            && mDevices != null) {
-                        mDevices.remove(cachedDevice.getDevice());
-                        cachedDevice
-                                .getMemberDevice()
-                                .forEach(
-                                        m -> {
-                                            // Check nullability to pass NullAway check
-                                            if (mDevices != null) {
-                                                mDevices.remove(m.getDevice());
-                                            }
-                                        });
-                    }
-                    if (mDevices == null || mDevices.isEmpty()) {
-                        stopSelf();
-                    }
-                }
-            };
-
-    private final BluetoothVolumeControl.Callback mVolumeControlCallback =
-            new BluetoothVolumeControl.Callback() {
-                @Override
-                public void onDeviceVolumeChanged(
-                        @NonNull BluetoothDevice device,
-                        @IntRange(from = -255, to = 255) int volume) {
-                    if (mDevices == null || mDevices.isEmpty()) {
-                        Log.w(TAG, "active device or device has source is null!");
-                        return;
-                    }
-                    if (mDevices.contains(device)) {
-                        Log.d(
-                                TAG,
-                                "onDeviceVolumeChanged() bluetoothDevice : "
-                                        + device
-                                        + " volume: "
-                                        + volume);
-                        if (volume == 0) {
-                            mIsMuted = true;
-                        } else {
-                            mIsMuted = false;
-                            mLatestPositiveVolume = volume;
-                        }
-                        if (mLocalSession != null) {
-                            mLocalSession.setPlaybackState(getPlaybackState());
-                            if (mNotificationManager != null) {
-                                mNotificationManager.notify(NOTIFICATION_ID, buildNotification());
-                            }
-                        }
-                    }
-                }
-            };
-
     private final PlaybackState.Builder mPlayStatePlayingBuilder =
             new PlaybackState.Builder()
                     .setActions(PlaybackState.ACTION_PAUSE | PlaybackState.ACTION_SEEK_TO)
@@ -184,24 +101,28 @@
     private final MetricsFeatureProvider mMetricsFeatureProvider =
             FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
+    private final AtomicBoolean mIsMuted = new AtomicBoolean(false);
+    // Set 25 as default as the volume range from `VolumeControlProfile` is from 0 to 255.
+    // If the initial volume from `onDeviceVolumeChanged` is larger than zero (not muted), we will
+    // override this value. Otherwise, we raise the volume to 25 when the play button is clicked.
+    private final AtomicInteger mLatestPositiveVolume = new AtomicInteger(25);
+    private final AtomicBoolean mHasStopped = new AtomicBoolean(false);
     private int mBroadcastId;
-    @Nullable private ArrayList<BluetoothDevice> mDevices;
+    @Nullable private List<BluetoothDevice> mDevices;
     @Nullable private LocalBluetoothManager mLocalBtManager;
     @Nullable private AudioStreamsHelper mAudioStreamsHelper;
     @Nullable private LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
     @Nullable private VolumeControlProfile mVolumeControl;
     @Nullable private NotificationManager mNotificationManager;
-
-    // Set 25 as default as the volume range from `VolumeControlProfile` is from 0 to 255.
-    // If the initial volume from `onDeviceVolumeChanged` is larger than zero (not muted), we will
-    // override this value. Otherwise, we raise the volume to 25 when the play button is clicked.
-    private int mLatestPositiveVolume = 25;
-    private boolean mIsMuted = false;
-    @VisibleForTesting @Nullable MediaSession mLocalSession;
+    @Nullable private MediaSession mLocalSession;
+    @VisibleForTesting @Nullable AudioStreamsBroadcastAssistantCallback mBroadcastAssistantCallback;
+    @VisibleForTesting @Nullable BluetoothCallback mBluetoothCallback;
+    @VisibleForTesting @Nullable BluetoothVolumeControl.Callback mVolumeControlCallback;
+    @VisibleForTesting @Nullable MediaSession.Callback mMediaSessionCallback;
 
     @Override
     public void onCreate() {
-        if (!AudioSharingUtils.isFeatureEnabled()) {
+        if (!BluetoothUtils.isAudioSharingEnabled()) {
             return;
         }
 
@@ -234,30 +155,33 @@
             mNotificationManager.createNotificationChannel(notificationChannel);
         }
 
+        mBluetoothCallback = new BtCallback();
         mLocalBtManager.getEventManager().registerCallback(mBluetoothCallback);
 
         mVolumeControl = mLocalBtManager.getProfileManager().getVolumeControlProfile();
         if (mVolumeControl != null) {
+            mVolumeControlCallback = new VolumeControlCallback();
             mVolumeControl.registerCallback(mExecutor, mVolumeControlCallback);
         }
 
+        mBroadcastAssistantCallback = new AssistantCallback();
         mLeBroadcastAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
     }
 
     @Override
     public void onDestroy() {
+        Log.d(TAG, "onDestroy()");
         super.onDestroy();
-
-        if (!AudioSharingUtils.isFeatureEnabled()) {
+        if (!BluetoothUtils.isAudioSharingEnabled()) {
             return;
         }
         if (mLocalBtManager != null) {
             mLocalBtManager.getEventManager().unregisterCallback(mBluetoothCallback);
         }
-        if (mLeBroadcastAssistant != null) {
+        if (mLeBroadcastAssistant != null && mBroadcastAssistantCallback != null) {
             mLeBroadcastAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
         }
-        if (mVolumeControl != null) {
+        if (mVolumeControl != null && mVolumeControlCallback != null) {
             mVolumeControl.unregisterCallback(mVolumeControlCallback);
         }
         if (mLocalSession != null) {
@@ -269,27 +193,31 @@
     @Override
     public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
         Log.d(TAG, "onStartCommand()");
-
-        mBroadcastId = intent != null ? intent.getIntExtra(BROADCAST_ID, -1) : -1;
+        if (intent == null) {
+            Log.w(TAG, "Intent is null. Service will not start.");
+            mHasStopped.set(true);
+            stopSelf();
+            return START_NOT_STICKY;
+        }
+        mBroadcastId = intent.getIntExtra(BROADCAST_ID, -1);
         if (mBroadcastId == -1) {
             Log.w(TAG, "Invalid broadcast ID. Service will not start.");
+            mHasStopped.set(true);
             stopSelf();
             return START_NOT_STICKY;
         }
-
-        if (intent != null) {
-            mDevices = intent.getParcelableArrayListExtra(DEVICES, BluetoothDevice.class);
-        }
-        if (mDevices == null || mDevices.isEmpty()) {
+        var extra = intent.getParcelableArrayListExtra(DEVICES, BluetoothDevice.class);
+        if (extra == null || extra.isEmpty()) {
             Log.w(TAG, "No device. Service will not start.");
+            mHasStopped.set(true);
             stopSelf();
             return START_NOT_STICKY;
         }
-        if (intent != null) {
-            createLocalMediaSession(intent.getStringExtra(BROADCAST_TITLE));
-            startForeground(NOTIFICATION_ID, buildNotification());
-        }
-
+        mDevices = Collections.synchronizedList(extra);
+        createLocalMediaSession(intent.getStringExtra(BROADCAST_TITLE));
+        startForeground(NOTIFICATION_ID, buildNotification());
+        // Reset in case the service is previously stopped but not yet destroyed.
+        mHasStopped.set(false);
         return START_NOT_STICKY;
     }
 
@@ -302,78 +230,12 @@
                         .build());
         mLocalSession.setActive(true);
         mLocalSession.setPlaybackState(getPlaybackState());
-        mLocalSession.setCallback(
-                new MediaSession.Callback() {
-                    public void onSeekTo(long pos) {
-                        Log.d(TAG, "onSeekTo: " + pos);
-                        if (mLocalSession != null) {
-                            mLocalSession.setPlaybackState(getPlaybackState());
-                            if (mNotificationManager != null) {
-                                mNotificationManager.notify(NOTIFICATION_ID, buildNotification());
-                            }
-                        }
-                    }
-
-                    @Override
-                    public void onPause() {
-                        if (mDevices == null || mDevices.isEmpty()) {
-                            Log.w(TAG, "active device or device has source is null!");
-                            return;
-                        }
-                        Log.d(
-                                TAG,
-                                "onPause() setting volume for device : "
-                                        + mDevices.get(0)
-                                        + " volume: "
-                                        + 0);
-                        if (mVolumeControl != null) {
-                            mVolumeControl.setDeviceVolume(mDevices.get(0), 0, true);
-                            mMetricsFeatureProvider.action(
-                                    getApplicationContext(),
-                                    SettingsEnums
-                                            .ACTION_AUDIO_STREAM_NOTIFICATION_MUTE_BUTTON_CLICK,
-                                    1);
-                        }
-                    }
-
-                    @Override
-                    public void onPlay() {
-                        if (mDevices == null || mDevices.isEmpty()) {
-                            Log.w(TAG, "active device or device has source is null!");
-                            return;
-                        }
-                        Log.d(
-                                TAG,
-                                "onPlay() setting volume for device : "
-                                        + mDevices.get(0)
-                                        + " volume: "
-                                        + mLatestPositiveVolume);
-                        if (mVolumeControl != null) {
-                            mVolumeControl.setDeviceVolume(
-                                    mDevices.get(0), mLatestPositiveVolume, true);
-                        }
-                        mMetricsFeatureProvider.action(
-                                getApplicationContext(),
-                                SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_MUTE_BUTTON_CLICK,
-                                0);
-                    }
-
-                    @Override
-                    public void onCustomAction(@NonNull String action, Bundle extras) {
-                        Log.d(TAG, "onCustomAction: " + action);
-                        if (action.equals(LEAVE_BROADCAST_ACTION) && mAudioStreamsHelper != null) {
-                            mAudioStreamsHelper.removeSource(mBroadcastId);
-                            mMetricsFeatureProvider.action(
-                                    getApplicationContext(),
-                                    SettingsEnums
-                                            .ACTION_AUDIO_STREAM_NOTIFICATION_LEAVE_BUTTON_CLICK);
-                        }
-                    }
-                });
+        mMediaSessionCallback = new MediaSessionCallback();
+        mLocalSession.setCallback(mMediaSessionCallback);
     }
 
     private PlaybackState getPlaybackState() {
-        return mIsMuted ? mPlayStatePausingBuilder.build() : mPlayStatePlayingBuilder.build();
+        return mIsMuted.get() ? mPlayStatePausingBuilder.build() : mPlayStatePlayingBuilder.build();
     }
 
     private String getDeviceName() {
@@ -414,4 +276,167 @@
     public IBinder onBind(Intent intent) {
         return null;
     }
+
+    private class AssistantCallback extends AudioStreamsBroadcastAssistantCallback {
+        @Override
+        public void onSourceLost(int broadcastId) {
+            super.onSourceLost(broadcastId);
+            handleRemoveSource();
+        }
+
+        @Override
+        public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
+            super.onSourceRemoved(sink, sourceId, reason);
+            handleRemoveSource();
+        }
+
+        private void handleRemoveSource() {
+            var unused =
+                    ThreadUtils.postOnBackgroundThread(
+                            () -> {
+                                List<BluetoothLeBroadcastReceiveState> connected =
+                                        mAudioStreamsHelper == null
+                                                ? emptyList()
+                                                : mAudioStreamsHelper.getAllConnectedSources();
+                                if (connected.stream()
+                                        .map(BluetoothLeBroadcastReceiveState::getBroadcastId)
+                                        .noneMatch(id -> id == mBroadcastId)) {
+                                    mHasStopped.set(true);
+                                    stopSelf();
+                                }
+                            });
+        }
+    }
+
+    private class VolumeControlCallback implements BluetoothVolumeControl.Callback {
+        @Override
+        public void onDeviceVolumeChanged(
+                @NonNull BluetoothDevice device, @IntRange(from = -255, to = 255) int volume) {
+            if (mDevices == null || mDevices.isEmpty()) {
+                Log.w(TAG, "active device or device has source is null!");
+                return;
+            }
+            Log.d(
+                    TAG,
+                    "onDeviceVolumeChanged() bluetoothDevice : " + device + " volume: " + volume);
+            if (mDevices.contains(device)) {
+                if (volume == 0) {
+                    mIsMuted.set(true);
+                } else {
+                    mIsMuted.set(false);
+                    mLatestPositiveVolume.set(volume);
+                }
+                updateNotification(getPlaybackState());
+            }
+        }
+    }
+
+    private class BtCallback implements BluetoothCallback {
+        @Override
+        public void onBluetoothStateChanged(int bluetoothState) {
+            if (BluetoothAdapter.STATE_OFF == bluetoothState) {
+                Log.d(TAG, "onBluetoothStateChanged() : stopSelf");
+                mHasStopped.set(true);
+                stopSelf();
+            }
+        }
+
+        @Override
+        public void onProfileConnectionStateChanged(
+                @NonNull CachedBluetoothDevice cachedDevice,
+                @ConnectionState int state,
+                int bluetoothProfile) {
+            if (state == BluetoothAdapter.STATE_DISCONNECTED
+                    && bluetoothProfile == BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT
+                    && mDevices != null) {
+                mDevices.remove(cachedDevice.getDevice());
+                cachedDevice
+                        .getMemberDevice()
+                        .forEach(
+                                m -> {
+                                    // Check nullability to pass NullAway check
+                                    if (mDevices != null) {
+                                        mDevices.remove(m.getDevice());
+                                    }
+                                });
+            }
+            if (mDevices == null || mDevices.isEmpty()) {
+                Log.d(TAG, "onProfileConnectionStateChanged() : stopSelf");
+                mHasStopped.set(true);
+                stopSelf();
+            }
+        }
+    }
+
+    private class MediaSessionCallback extends MediaSession.Callback {
+        public void onSeekTo(long pos) {
+            Log.d(TAG, "onSeekTo: " + pos);
+            updateNotification(getPlaybackState());
+        }
+
+        @Override
+        public void onPause() {
+            if (mDevices == null || mDevices.isEmpty()) {
+                Log.w(TAG, "active device or device has source is null!");
+                return;
+            }
+            Log.d(
+                    TAG,
+                    "onPause() setting volume for device : " + mDevices.get(0) + " volume: " + 0);
+            setDeviceVolume(mDevices.get(0), /* volume= */ 0);
+        }
+
+        @Override
+        public void onPlay() {
+            if (mDevices == null || mDevices.isEmpty()) {
+                Log.w(TAG, "active device or device has source is null!");
+                return;
+            }
+            Log.d(
+                    TAG,
+                    "onPlay() setting volume for device : "
+                            + mDevices.get(0)
+                            + " volume: "
+                            + mLatestPositiveVolume.get());
+            setDeviceVolume(mDevices.get(0), mLatestPositiveVolume.get());
+        }
+
+        @Override
+        public void onCustomAction(@NonNull String action, Bundle extras) {
+            Log.d(TAG, "onCustomAction: " + action);
+            if (action.equals(LEAVE_BROADCAST_ACTION) && mAudioStreamsHelper != null) {
+                mAudioStreamsHelper.removeSource(mBroadcastId);
+                mMetricsFeatureProvider.action(
+                        getApplicationContext(),
+                        SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_LEAVE_BUTTON_CLICK);
+            }
+        }
+
+        private void setDeviceVolume(BluetoothDevice device, int volume) {
+            int event = SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_MUTE_BUTTON_CLICK;
+            var unused =
+                    ThreadUtils.postOnBackgroundThread(
+                            () -> {
+                                if (mVolumeControl != null) {
+                                    mVolumeControl.setDeviceVolume(device, volume, true);
+                                    mMetricsFeatureProvider.action(
+                                            getApplicationContext(), event, volume == 0 ? 1 : 0);
+                                }
+                            });
+        }
+    }
+
+    private void updateNotification(PlaybackState playbackState) {
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            if (mLocalSession != null) {
+                                mLocalSession.setPlaybackState(playbackState);
+                                if (mNotificationManager != null && !mHasStopped.get()) {
+                                    mNotificationManager.notify(
+                                            NOTIFICATION_ID, buildNotification());
+                                }
+                            }
+                        });
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
index 071cf57..175e037 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
@@ -43,23 +43,12 @@
      * Update preference UI based on connection status
      *
      * @param isConnected Is this stream connected
-     * @param summary Summary text
-     * @param onPreferenceClickListener Click listener for the preference
      */
-    void setIsConnected(
-            boolean isConnected,
-            String summary,
-            @Nullable OnPreferenceClickListener onPreferenceClickListener) {
-        if (mIsConnected == isConnected
-                && getSummary() == summary
-                && getOnPreferenceClickListener() == onPreferenceClickListener) {
-            // Nothing to update.
-            return;
+    void setIsConnected(boolean isConnected) {
+        if (mIsConnected != isConnected) {
+            mIsConnected = isConnected;
+            notifyChanged();
         }
-        mIsConnected = isConnected;
-        setSummary(summary);
-        setOnPreferenceClickListener(onPreferenceClickListener);
-        notifyChanged();
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java
index b0c5b6b..758984f 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandler.java
@@ -16,8 +16,12 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static android.text.Spanned.SPAN_EXCLUSIVE_INCLUSIVE;
+
 import android.os.Handler;
 import android.os.Looper;
+import android.text.SpannableString;
+import android.text.style.ForegroundColorSpan;
 import android.util.Log;
 
 import androidx.annotation.Nullable;
@@ -26,6 +30,7 @@
 import androidx.preference.Preference;
 
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.Utils;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.utils.ThreadUtils;
@@ -35,10 +40,10 @@
     private static final boolean DEBUG = BluetoothUtils.D;
     @VisibleForTesting static final int EMPTY_STRING_RES = 0;
 
-    final AudioStreamsRepository mAudioStreamsRepository = AudioStreamsRepository.getInstance();
     final Handler mHandler = new Handler(Looper.getMainLooper());
     final MetricsFeatureProvider mMetricsFeatureProvider =
             FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+    AudioStreamsRepository mAudioStreamsRepository = AudioStreamsRepository.getInstance();
 
     AudioStreamStateHandler() {}
 
@@ -68,15 +73,31 @@
 
         // Update UI
         ThreadUtils.postOnMainThread(
-                () ->
-                        preference.setIsConnected(
-                                newState
-                                        == AudioStreamsProgressCategoryController.AudioStreamState
-                                                .SOURCE_ADDED,
-                                getSummary() != EMPTY_STRING_RES
-                                        ? preference.getContext().getString(getSummary())
-                                        : "",
-                                getOnClickListener(controller)));
+                () -> {
+                    String summary =
+                            getSummary() != EMPTY_STRING_RES
+                                    ? preference.getContext().getString(getSummary())
+                                    : "";
+                    if (newState
+                            == AudioStreamsProgressCategoryController.AudioStreamState
+                                    .ADD_SOURCE_BAD_CODE) {
+                        SpannableString summarySpan = new SpannableString(summary);
+                        int colorError = Utils.getColorErrorDefaultColor(preference.getContext());
+                        summarySpan.setSpan(
+                                new ForegroundColorSpan(colorError),
+                                0,
+                                summary.length(),
+                                SPAN_EXCLUSIVE_INCLUSIVE);
+                        preference.setSummary(summarySpan);
+                    } else {
+                        preference.setSummary(summary);
+                    }
+                    preference.setIsConnected(
+                            newState
+                                    == AudioStreamsProgressCategoryController.AudioStreamState
+                                            .SOURCE_ADDED);
+                    preference.setOnPreferenceClickListener(getOnClickListener(controller));
+                });
     }
 
     /**
@@ -112,4 +133,9 @@
     AudioStreamsProgressCategoryController.AudioStreamState getStateEnum() {
         return AudioStreamsProgressCategoryController.AudioStreamState.UNKNOWN;
     }
+
+    @VisibleForTesting
+    void setAudioStreamsRepositoryForTesting(AudioStreamsRepository repository) {
+        mAudioStreamsRepository = repository;
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdater.java
index ab22b07..47ee440 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdater.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdater.java
@@ -16,24 +16,22 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.text.TextUtils;
-import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
 import com.android.settingslib.bluetooth.BluetoothCallback;
-import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.utils.ThreadUtils;
 
 public class AudioStreamsActiveDeviceSummaryUpdater implements BluetoothCallback {
-    private static final String TAG = "AudioStreamsActiveDeviceSummaryUpdater";
-    private static final boolean DEBUG = BluetoothUtils.D;
     private final LocalBluetoothManager mBluetoothManager;
     private Context mContext;
     @Nullable private String mSummary;
@@ -47,17 +45,20 @@
     }
 
     @Override
-    public void onActiveDeviceChanged(
-            @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
-        if (DEBUG) {
-            Log.d(
-                    TAG,
-                    "onActiveDeviceChanged() with activeDevice : "
-                            + (activeDevice == null ? "null" : activeDevice.getAddress())
-                            + " on profile : "
-                            + bluetoothProfile);
+    public void onBluetoothStateChanged(@AdapterState int bluetoothState) {
+        if (bluetoothState == BluetoothAdapter.STATE_OFF) {
+            notifyChangeIfNeeded();
         }
-        if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+    }
+
+    @Override
+    public void onProfileConnectionStateChanged(
+            @NonNull CachedBluetoothDevice cachedDevice,
+            @ConnectionState int state,
+            int bluetoothProfile) {
+        if (bluetoothProfile == BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT
+                && (state == BluetoothAdapter.STATE_CONNECTED
+                        || state == BluetoothAdapter.STATE_DISCONNECTED)) {
             notifyChangeIfNeeded();
         }
     }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
index 3174ace..0107c6e 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.java
@@ -16,12 +16,12 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.lifecycle.LifecycleOwner;
 
 import com.android.settings.bluetooth.Utils;
@@ -44,9 +44,13 @@
     private final BluetoothCallback mBluetoothCallback =
             new BluetoothCallback() {
                 @Override
-                public void onActiveDeviceChanged(
-                        @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
-                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+                public void onProfileConnectionStateChanged(
+                        @NonNull CachedBluetoothDevice cachedDevice,
+                        @ConnectionState int state,
+                        int bluetoothProfile) {
+                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT
+                            && (state == BluetoothAdapter.STATE_CONNECTED
+                                    || state == BluetoothAdapter.STATE_DISCONNECTED)) {
                         updateVisibility();
                     }
                 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
index ce32cdb..ae5cb6e 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.java
@@ -23,7 +23,6 @@
 import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.content.Context;
 import android.content.Intent;
-import android.os.Bundle;
 import android.util.Log;
 
 import androidx.annotation.Nullable;
@@ -64,11 +63,6 @@
     }
 
     @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-    }
-
-    @Override
     public void onAttach(Context context) {
         super.onAttach(context);
         use(AudioStreamsScanQrCodeController.class).setFragment(this);
@@ -92,11 +86,6 @@
     }
 
     @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-    }
-
-    @Override
     public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
         if (DEBUG) {
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
index 775186a..c219e0b 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
@@ -26,13 +26,15 @@
 import android.bluetooth.BluetoothLeAudioContentMetadata;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
-import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Configuration;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.FragmentActivity;
 
+import com.android.settings.R;
 import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -41,6 +43,7 @@
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 import com.android.settingslib.utils.ThreadUtils;
 
+import com.google.android.material.appbar.AppBarLayout;
 import com.google.common.base.Strings;
 
 import java.util.ArrayList;
@@ -71,7 +74,8 @@
      *
      * @param source The LE broadcast metadata representing the audio source.
      */
-    void addSource(BluetoothLeBroadcastMetadata source) {
+    @VisibleForTesting
+    public void addSource(BluetoothLeBroadcastMetadata source) {
         if (mLeBroadcastAssistant == null) {
             Log.w(TAG, "addSource(): LeBroadcastAssistant is null!");
             return;
@@ -97,7 +101,8 @@
     }
 
     /** Removes sources from LE broadcasts associated for all active sinks based on broadcast Id. */
-    void removeSource(int broadcastId) {
+    @VisibleForTesting
+    public void removeSource(int broadcastId) {
         if (mLeBroadcastAssistant == null) {
             Log.w(TAG, "removeSource(): LeBroadcastAssistant is null!");
             return;
@@ -275,9 +280,7 @@
             Log.w(TAG, "getConnectedBluetoothDevices(): LeBroadcastAssistant is null!");
             return emptyList();
         }
-        List<BluetoothDevice> connectedDevices =
-                leBroadcastAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED});
+        List<BluetoothDevice> connectedDevices = leBroadcastAssistant.getAllConnectedDevices();
         Optional<CachedBluetoothDevice> cachedBluetoothDevice =
                 inSharingOnly
                         ? getCachedBluetoothDeviceInSharing(manager)
@@ -347,4 +350,16 @@
         intent.putParcelableArrayListExtra(DEVICES, new ArrayList<>(devices));
         context.startService(intent);
     }
+
+    static void configureAppBarByOrientation(@Nullable FragmentActivity activity) {
+        if (activity != null) {
+            AppBarLayout appBarLayout = activity.findViewById(R.id.app_bar);
+            if (appBarLayout != null) {
+                boolean canAppBarExpand =
+                        activity.getResources().getConfiguration().orientation
+                                == Configuration.ORIENTATION_PORTRAIT;
+                appBarLayout.setExpanded(canAppBarExpand);
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
index cb3a0da..3370d8d 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
@@ -19,7 +19,6 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
-import android.util.Log;
 
 public class AudioStreamsProgressCategoryCallback extends AudioStreamsBroadcastAssistantCallback {
     private static final String TAG = "AudioStreamsProgressCategoryCallback";
@@ -53,10 +52,6 @@
     @Override
     public void onSearchStarted(int reason) {
         super.onSearchStarted(reason);
-        if (mCategoryController == null) {
-            Log.w(TAG, "onSearchStarted() : mCategoryController is null!");
-            return;
-        }
         mCategoryController.setScanning(true);
     }
 
@@ -69,10 +64,6 @@
     @Override
     public void onSearchStopped(int reason) {
         super.onSearchStopped(reason);
-        if (mCategoryController == null) {
-            Log.w(TAG, "onSearchStopped() : mCategoryController is null!");
-            return;
-        }
         mCategoryController.setScanning(false);
     }
 
@@ -86,10 +77,6 @@
     @Override
     public void onSourceFound(BluetoothLeBroadcastMetadata source) {
         super.onSourceFound(source);
-        if (mCategoryController == null) {
-            Log.w(TAG, "onSourceFound() : mCategoryController is null!");
-            return;
-        }
         mCategoryController.handleSourceFound(source);
     }
 
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
index 890879e..9bbf135 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
@@ -20,6 +20,7 @@
 
 import android.app.AlertDialog;
 import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.bluetooth.BluetoothProfile;
@@ -27,10 +28,12 @@
 import android.util.Log;
 
 import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
 import androidx.lifecycle.DefaultLifecycleObserver;
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.PreferenceScreen;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
@@ -55,13 +58,35 @@
         implements DefaultLifecycleObserver {
     private static final String TAG = "AudioStreamsProgressCategoryController";
     private static final boolean DEBUG = BluetoothUtils.D;
-    private static final int UNSET_BROADCAST_ID = -1;
-    private final BluetoothCallback mBluetoothCallback =
+    @VisibleForTesting static final int UNSET_BROADCAST_ID = -1;
+
+    @VisibleForTesting
+    final BluetoothCallback mBluetoothCallback =
             new BluetoothCallback() {
                 @Override
-                public void onActiveDeviceChanged(
-                        @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
-                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+                public void onBluetoothStateChanged(@AdapterState int bluetoothState) {
+                    Log.d(TAG, "onBluetoothStateChanged() with bluetoothState : " + bluetoothState);
+                    if (bluetoothState == BluetoothAdapter.STATE_OFF) {
+                        mExecutor.execute(() -> init());
+                    }
+                }
+
+                @Override
+                public void onProfileConnectionStateChanged(
+                        @NonNull CachedBluetoothDevice cachedDevice,
+                        @ConnectionState int state,
+                        int bluetoothProfile) {
+                    Log.d(
+                            TAG,
+                            "onProfileConnectionStateChanged() with cachedDevice : "
+                                    + cachedDevice.getAddress()
+                                    + " with state : "
+                                    + state
+                                    + " on profile : "
+                                    + bluetoothProfile);
+                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT
+                            && (state == BluetoothAdapter.STATE_CONNECTED
+                                    || state == BluetoothAdapter.STATE_DISCONNECTED)) {
                         mExecutor.execute(() -> init());
                     }
                 }
@@ -92,7 +117,7 @@
         SOURCE_ADDED,
     }
 
-    private final Executor mExecutor;
+    @VisibleForTesting Executor mExecutor;
     private final AudioStreamsProgressCategoryCallback mBroadcastAssistantCallback;
     private final AudioStreamsHelper mAudioStreamsHelper;
     private final MediaControlHelper mMediaControlHelper;
@@ -103,7 +128,7 @@
     private @Nullable BluetoothLeBroadcastMetadata mSourceFromQrCode;
     private SourceOriginForLogging mSourceFromQrCodeOriginForLogging;
     @Nullable private AudioStreamsProgressCategoryPreference mCategoryPreference;
-    @Nullable private AudioStreamsDashboardFragment mFragment;
+    @Nullable private Fragment mFragment;
 
     public AudioStreamsProgressCategoryController(Context context, String preferenceKey) {
         super(context, preferenceKey);
@@ -142,12 +167,12 @@
         mExecutor.execute(this::stopScanning);
     }
 
-    void setFragment(AudioStreamsDashboardFragment fragment) {
+    void setFragment(Fragment fragment) {
         mFragment = fragment;
     }
 
     @Nullable
-    AudioStreamsDashboardFragment getFragment() {
+    Fragment getFragment() {
         return mFragment;
     }
 
@@ -546,7 +571,8 @@
         return preference;
     }
 
-    private void moveToState(AudioStreamPreference preference, AudioStreamState state) {
+    @VisibleForTesting
+    void moveToState(AudioStreamPreference preference, AudioStreamState state) {
         AudioStreamStateHandler stateHandler =
                 switch (state) {
                     case SYNCED -> SyncedState.getInstance();
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
index e4c0794..3c362c0 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.java
@@ -55,12 +55,14 @@
     @Override
     public final View onCreateView(
             LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
-        return inflater.inflate(R.xml.bluetooth_audio_streams_qr_code, container, false);
+        return inflater.inflate(R.layout.bluetooth_audio_streams_qr_code, container, false);
     }
 
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
+        // Collapse or expand the app bar based on orientation for better display the qr code image.
+        AudioStreamsHelper.configureAppBarByOrientation(getActivity());
         var unused = ThreadUtils.postOnBackgroundThread(
                 () -> {
                     BluetoothLeBroadcastMetadata broadcastMetadata = getBroadcastMetadata();
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java
index 8df4317..76854a4 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeScanFragment.java
@@ -116,6 +116,8 @@
     @Override
     public final View onCreateView(
             LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+        // Collapse or expand the app bar based on orientation for better display the qr camera.
+        AudioStreamsHelper.configureAppBarByOrientation(getActivity());
         return inflater.inflate(
                 R.layout.qrcode_scanner_fragment, container, /* attachToRoot */ false);
     }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java
index 5f50be7..d0d82fb 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.util.Log;
@@ -47,9 +48,13 @@
     final BluetoothCallback mBluetoothCallback =
             new BluetoothCallback() {
                 @Override
-                public void onActiveDeviceChanged(
-                        @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
-                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+                public void onProfileConnectionStateChanged(
+                        @NonNull CachedBluetoothDevice cachedDevice,
+                        @ConnectionState int state,
+                        int bluetoothProfile) {
+                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT
+                            && (state == BluetoothAdapter.STATE_CONNECTED
+                                    || state == BluetoothAdapter.STATE_DISCONNECTED)) {
                         updateVisibility();
                     }
                 }
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedState.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedState.java
index ee84429..88393ab 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedState.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedState.java
@@ -25,6 +25,7 @@
 
 import com.android.settings.R;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.DashboardFragment;
 
 class SourceAddedState extends AudioStreamStateHandler {
     @VisibleForTesting
@@ -32,7 +33,8 @@
 
     @Nullable private static SourceAddedState sInstance = null;
 
-    private SourceAddedState() {}
+    @VisibleForTesting
+    SourceAddedState() {}
 
     static SourceAddedState getInstance() {
         if (sInstance == null) {
@@ -80,13 +82,13 @@
                     AudioStreamDetailsFragment.BROADCAST_ID_ARG, p.getAudioStreamBroadcastId());
 
             new SubSettingLauncher(p.getContext())
-                    .setTitleText(
-                            p.getContext().getString(R.string.audio_streams_detail_page_title))
+                    .setTitleRes(R.string.audio_streams_detail_page_title)
                     .setDestination(AudioStreamDetailsFragment.class.getName())
                     .setSourceMetricsCategory(
-                            controller.getFragment() == null
+                            !(controller.getFragment() instanceof DashboardFragment)
                                     ? SettingsEnums.PAGE_UNKNOWN
-                                    : controller.getFragment().getMetricsCategory())
+                                    : ((DashboardFragment) controller.getFragment())
+                                            .getMetricsCategory())
                     .setArguments(broadcast)
                     .launch();
             return true;
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncState.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncState.java
index 55f61fd..9689b26 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncState.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncState.java
@@ -39,7 +39,8 @@
 
     @Nullable private static WaitForSyncState sInstance = null;
 
-    private WaitForSyncState() {}
+    @VisibleForTesting
+    WaitForSyncState() {}
 
     static WaitForSyncState getInstance() {
         if (sInstance == null) {
@@ -114,7 +115,8 @@
                 SettingsEnums.DIALOG_AUDIO_STREAM_MAIN_WAIT_FOR_SYNC_TIMEOUT);
     }
 
-    private void launchQrCodeScanFragment(Context context, Fragment fragment) {
+    @VisibleForTesting
+    void launchQrCodeScanFragment(Context context, Fragment fragment) {
         new SubSettingLauncher(context)
                 .setTitleRes(R.string.audio_streams_main_page_scan_qr_code_title)
                 .setDestination(AudioStreamsQrCodeScanFragment.class.getName())
diff --git a/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragment.java b/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragment.java
new file mode 100644
index 0000000..7b5bef6
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragment.java
@@ -0,0 +1,537 @@
+/*
+ * 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.display;
+
+
+import static android.view.Display.INVALID_DISPLAY;
+
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.EXTERNAL_DISPLAY_HELP_URL;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.DISPLAY_ID_ARG;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.EXTERNAL_DISPLAY_NOT_FOUND_RESOURCE;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.isDisplayAllowed;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.isUseDisplaySettingEnabled;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.isResolutionSettingEnabled;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.isRotationSettingEnabled;
+
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.Display;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragmentBase;
+import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.DisplayListener;
+import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.Injector;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.IllustrationPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.TwoTargetPreference;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * The Settings screen for External Displays configuration and connection management.
+ */
+public class ExternalDisplayPreferenceFragment extends SettingsPreferenceFragmentBase {
+    static final int EXTERNAL_DISPLAY_SETTINGS_RESOURCE = R.xml.external_display_settings;
+    static final String DISPLAYS_LIST_PREFERENCE_KEY = "displays_list_preference";
+    static final String EXTERNAL_DISPLAY_USE_PREFERENCE_KEY = "external_display_use_preference";
+    static final String EXTERNAL_DISPLAY_ROTATION_KEY = "external_display_rotation";
+    static final String EXTERNAL_DISPLAY_RESOLUTION_PREFERENCE_KEY = "external_display_resolution";
+    static final int EXTERNAL_DISPLAY_CHANGE_RESOLUTION_FOOTER_RESOURCE =
+            R.string.external_display_change_resolution_footer_title;
+    static final int EXTERNAL_DISPLAY_LANDSCAPE_DRAWABLE =
+            R.drawable.external_display_mirror_landscape;
+    static final int EXTERNAL_DISPLAY_TITLE_RESOURCE =
+            R.string.external_display_settings_title;
+    static final int EXTERNAL_DISPLAY_USE_TITLE_RESOURCE =
+            R.string.external_display_use_title;
+    static final int EXTERNAL_DISPLAY_NOT_FOUND_FOOTER_RESOURCE =
+            R.string.external_display_not_found_footer_title;
+    static final int EXTERNAL_DISPLAY_PORTRAIT_DRAWABLE =
+            R.drawable.external_display_mirror_portrait;
+    static final int EXTERNAL_DISPLAY_ROTATION_TITLE_RESOURCE =
+            R.string.external_display_rotation;
+    static final int EXTERNAL_DISPLAY_RESOLUTION_TITLE_RESOURCE =
+            R.string.external_display_resolution_settings_title;
+    @VisibleForTesting
+    static final String PREVIOUSLY_SHOWN_LIST_KEY = "mPreviouslyShownListOfDisplays";
+    private boolean mStarted;
+    @Nullable
+    private MainSwitchPreference mUseDisplayPref;
+    @Nullable
+    private IllustrationPreference mImagePreference;
+    @Nullable
+    private Preference mResolutionPreference;
+    @Nullable
+    private ListPreference mRotationPref;
+    @Nullable
+    private FooterPreference mFooterPreference;
+    @Nullable
+    private PreferenceCategory mDisplaysPreference;
+    @Nullable
+    private Injector mInjector;
+    @Nullable
+    private String[] mRotationEntries;
+    @Nullable
+    private String[] mRotationEntriesValues;
+    @NonNull
+    private final Runnable mUpdateRunnable = this::update;
+    private final DisplayListener mListener = new DisplayListener() {
+        @Override
+        public void update(int displayId) {
+            scheduleUpdate();
+        }
+    };
+    private boolean mPreviouslyShownListOfDisplays;
+
+    public ExternalDisplayPreferenceFragment() {}
+
+    @VisibleForTesting
+    ExternalDisplayPreferenceFragment(@NonNull Injector injector) {
+        mInjector = injector;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY;
+    }
+
+    @Override
+    public int getHelpResource() {
+        return EXTERNAL_DISPLAY_HELP_URL;
+    }
+
+    @Override
+    public void onSaveInstanceStateCallback(@NonNull Bundle outState) {
+        outState.putSerializable(PREVIOUSLY_SHOWN_LIST_KEY,
+                (Serializable) mPreviouslyShownListOfDisplays);
+    }
+
+    @Override
+    public void onCreateCallback(@Nullable Bundle icicle) {
+        if (mInjector == null) {
+            mInjector = new Injector(getPrefContext());
+        }
+        addPreferencesFromResource(EXTERNAL_DISPLAY_SETTINGS_RESOURCE);
+    }
+
+    @Override
+    public void onActivityCreatedCallback(@Nullable Bundle savedInstanceState) {
+        restoreState(savedInstanceState);
+        View view = getView();
+        TextView emptyView = null;
+        if (view != null) {
+            emptyView = (TextView) view.findViewById(android.R.id.empty);
+        }
+        if (emptyView != null) {
+            emptyView.setText(EXTERNAL_DISPLAY_NOT_FOUND_RESOURCE);
+            setEmptyView(emptyView);
+        }
+    }
+
+    @Override
+    public void onStartCallback() {
+        mStarted = true;
+        if (mInjector == null) {
+            return;
+        }
+        mInjector.registerDisplayListener(mListener);
+        scheduleUpdate();
+    }
+
+    @Override
+    public void onStopCallback() {
+        mStarted = false;
+        if (mInjector == null) {
+            return;
+        }
+        mInjector.unregisterDisplayListener(mListener);
+        unscheduleUpdate();
+    }
+
+    /**
+     * @return id of the preference.
+     */
+    @Override
+    protected int getPreferenceScreenResId() {
+        return EXTERNAL_DISPLAY_SETTINGS_RESOURCE;
+    }
+
+    @VisibleForTesting
+    protected void launchResolutionSelector(@NonNull final Context context, final int displayId) {
+        final Bundle args = new Bundle();
+        args.putInt(DISPLAY_ID_ARG, displayId);
+        new SubSettingLauncher(context)
+                .setDestination(ResolutionPreferenceFragment.class.getName())
+                .setArguments(args)
+                .setSourceMetricsCategory(getMetricsCategory()).launch();
+    }
+
+    @VisibleForTesting
+    protected void launchDisplaySettings(final int displayId) {
+        final Bundle args = new Bundle();
+        var context = getPrefContext();
+        args.putInt(DISPLAY_ID_ARG, displayId);
+        new SubSettingLauncher(context)
+                .setDestination(this.getClass().getName())
+                .setArguments(args)
+                .setSourceMetricsCategory(getMetricsCategory()).launch();
+    }
+
+    /**
+     * Returns the preference for the footer.
+     */
+    @NonNull
+    @VisibleForTesting
+    FooterPreference getFooterPreference(@NonNull Context context) {
+        if (mFooterPreference == null) {
+            mFooterPreference = new FooterPreference(context);
+            mFooterPreference.setPersistent(false);
+        }
+        return mFooterPreference;
+    }
+
+    @NonNull
+    @VisibleForTesting
+    ListPreference getRotationPreference(@NonNull Context context) {
+        if (mRotationPref == null) {
+            mRotationPref = new ListPreference(context);
+            mRotationPref.setPersistent(false);
+        }
+        return mRotationPref;
+    }
+
+    @NonNull
+    @VisibleForTesting
+    Preference getResolutionPreference(@NonNull Context context) {
+        if (mResolutionPreference == null) {
+            mResolutionPreference = new Preference(context);
+            mResolutionPreference.setPersistent(false);
+        }
+        return mResolutionPreference;
+    }
+
+    @NonNull
+    @VisibleForTesting
+    MainSwitchPreference getUseDisplayPreference(@NonNull Context context) {
+        if (mUseDisplayPref == null) {
+            mUseDisplayPref = new MainSwitchPreference(context);
+            mUseDisplayPref.setPersistent(false);
+        }
+        return mUseDisplayPref;
+    }
+
+    @NonNull
+    @VisibleForTesting
+    IllustrationPreference getIllustrationPreference(@NonNull Context context) {
+        if (mImagePreference == null) {
+            mImagePreference = new IllustrationPreference(context);
+            mImagePreference.setPersistent(false);
+        }
+        return mImagePreference;
+    }
+
+    /**
+     * @return return display id argument of this settings page.
+     */
+    @VisibleForTesting
+    protected int getDisplayIdArg() {
+        var args = getArguments();
+        return args != null ? args.getInt(DISPLAY_ID_ARG, INVALID_DISPLAY) : INVALID_DISPLAY;
+    }
+
+    @NonNull
+    private PreferenceCategory getDisplaysListPreference(@NonNull Context context) {
+        if (mDisplaysPreference == null) {
+            mDisplaysPreference = new PreferenceCategory(context);
+            mDisplaysPreference.setPersistent(false);
+        }
+        return mDisplaysPreference;
+    }
+
+    private void restoreState(@Nullable Bundle savedInstanceState) {
+        if (savedInstanceState == null) {
+            return;
+        }
+        mPreviouslyShownListOfDisplays = Boolean.TRUE.equals(savedInstanceState.getSerializable(
+                PREVIOUSLY_SHOWN_LIST_KEY, Boolean.class));
+    }
+
+    private void update() {
+        final var screen = getPreferenceScreen();
+        if (screen == null || mInjector == null || mInjector.getContext() == null) {
+            return;
+        }
+        screen.removeAll();
+        updateScreenForDisplayId(getDisplayIdArg(), screen, mInjector.getContext());
+    }
+
+    private void updateScreenForDisplayId(final int displayId,
+            @NonNull final PreferenceScreen screen, @NonNull Context context) {
+        final var displaysToShow = getDisplaysToShow(displayId);
+        if (displaysToShow.isEmpty() && displayId == INVALID_DISPLAY) {
+            showTextWhenNoDisplaysToShow(screen, context);
+        } else if (displaysToShow.size() == 1
+                && ((displayId == INVALID_DISPLAY && !mPreviouslyShownListOfDisplays)
+                        || displaysToShow.get(0).getDisplayId() == displayId)) {
+            showDisplaySettings(displaysToShow.get(0), screen, context);
+        } else if (displayId == INVALID_DISPLAY) {
+            // If ever shown a list of displays - keep showing it for consistency after
+            // disconnecting one of the displays, and only one display is left.
+            mPreviouslyShownListOfDisplays = true;
+            showDisplaysList(displaysToShow, screen, context);
+        }
+        updateSettingsTitle(displaysToShow, displayId);
+    }
+
+    private void updateSettingsTitle(@NonNull final List<Display> displaysToShow, int displayId) {
+        final Activity activity = getCurrentActivity();
+        if (activity == null) {
+            return;
+        }
+        if (displaysToShow.size() == 1 && displaysToShow.get(0).getDisplayId() == displayId) {
+            var displayName = displaysToShow.get(0).getName();
+            if (!displayName.isEmpty()) {
+                activity.setTitle(displayName.substring(0, Math.min(displayName.length(), 40)));
+                return;
+            }
+        }
+        activity.setTitle(EXTERNAL_DISPLAY_TITLE_RESOURCE);
+    }
+
+    private void showTextWhenNoDisplaysToShow(@NonNull final PreferenceScreen screen,
+            @NonNull Context context) {
+        if (isUseDisplaySettingEnabled(mInjector)) {
+            screen.addPreference(updateUseDisplayPreferenceNoDisplaysFound(context));
+        }
+        screen.addPreference(updateFooterPreference(context,
+                EXTERNAL_DISPLAY_NOT_FOUND_FOOTER_RESOURCE));
+    }
+
+    private void showDisplaySettings(@NonNull Display display, @NonNull PreferenceScreen screen,
+            @NonNull Context context) {
+        final var isEnabled = mInjector != null && mInjector.isDisplayEnabled(display);
+        if (isUseDisplaySettingEnabled(mInjector)) {
+            screen.addPreference(updateUseDisplayPreference(context, display, isEnabled));
+        }
+        if (!isEnabled) {
+            // Skip all other settings
+            return;
+        }
+        final var displayRotation = getDisplayRotation(display.getDisplayId());
+        screen.addPreference(updateIllustrationImage(context, displayRotation));
+        screen.addPreference(updateResolutionPreference(context, display));
+        screen.addPreference(updateRotationPreference(context, display, displayRotation));
+        if (isResolutionSettingEnabled(mInjector)) {
+            screen.addPreference(updateFooterPreference(context,
+                    EXTERNAL_DISPLAY_CHANGE_RESOLUTION_FOOTER_RESOURCE));
+        }
+    }
+
+    private void showDisplaysList(@NonNull List<Display> displaysToShow,
+            @NonNull PreferenceScreen screen, @NonNull Context context) {
+        var pref = getDisplaysListPreference(context);
+        pref.setKey(DISPLAYS_LIST_PREFERENCE_KEY);
+        pref.removeAll();
+        if (!displaysToShow.isEmpty()) {
+            screen.addPreference(pref);
+        }
+        for (var display : displaysToShow) {
+            pref.addPreference(new DisplayPreference(context, display));
+        }
+    }
+
+    private List<Display> getDisplaysToShow(int displayIdToShow) {
+        if (mInjector == null) {
+            return List.of();
+        }
+        if (displayIdToShow != INVALID_DISPLAY) {
+            var display = mInjector.getDisplay(displayIdToShow);
+            if (display != null && isDisplayAllowed(display, mInjector)) {
+                return List.of(display);
+            }
+        }
+        var displaysToShow = new ArrayList<Display>();
+        for (var display : mInjector.getAllDisplays()) {
+            if (display != null && isDisplayAllowed(display, mInjector)) {
+                displaysToShow.add(display);
+            }
+        }
+        return displaysToShow;
+    }
+
+    private Preference updateUseDisplayPreferenceNoDisplaysFound(@NonNull Context context) {
+        final var pref = getUseDisplayPreference(context);
+        pref.setKey(EXTERNAL_DISPLAY_USE_PREFERENCE_KEY);
+        pref.setTitle(EXTERNAL_DISPLAY_USE_TITLE_RESOURCE);
+        pref.setChecked(false);
+        pref.setEnabled(false);
+        pref.setOnPreferenceChangeListener(null);
+        return pref;
+    }
+
+    private Preference updateUseDisplayPreference(@NonNull final Context context,
+            @NonNull final Display display, boolean isEnabled) {
+        final var pref = getUseDisplayPreference(context);
+        pref.setKey(EXTERNAL_DISPLAY_USE_PREFERENCE_KEY);
+        pref.setTitle(EXTERNAL_DISPLAY_USE_TITLE_RESOURCE);
+        pref.setChecked(isEnabled);
+        pref.setEnabled(true);
+        pref.setOnPreferenceChangeListener((p, newValue) -> {
+            writePreferenceClickMetric(p);
+            final boolean result;
+            if (mInjector == null) {
+                return false;
+            }
+            if ((Boolean) newValue) {
+                result = mInjector.enableConnectedDisplay(display.getDisplayId());
+            } else {
+                result = mInjector.disableConnectedDisplay(display.getDisplayId());
+            }
+            if (result) {
+                pref.setChecked((Boolean) newValue);
+            }
+            return result;
+        });
+        return pref;
+    }
+
+    private Preference updateIllustrationImage(@NonNull final Context context,
+            final int displayRotation) {
+        var pref = getIllustrationPreference(context);
+        if (displayRotation % 2 == 0) {
+            pref.setLottieAnimationResId(EXTERNAL_DISPLAY_PORTRAIT_DRAWABLE);
+        } else {
+            pref.setLottieAnimationResId(EXTERNAL_DISPLAY_LANDSCAPE_DRAWABLE);
+        }
+        return pref;
+    }
+
+    private Preference updateFooterPreference(@NonNull final Context context, final int title) {
+        var pref = getFooterPreference(context);
+        pref.setTitle(title);
+        return pref;
+    }
+
+    private Preference updateRotationPreference(@NonNull final Context context,
+            @NonNull final Display display, final int displayRotation) {
+        var pref = getRotationPreference(context);
+        pref.setKey(EXTERNAL_DISPLAY_ROTATION_KEY);
+        pref.setTitle(EXTERNAL_DISPLAY_ROTATION_TITLE_RESOURCE);
+        if (mRotationEntries == null || mRotationEntriesValues == null) {
+            mRotationEntries = new String[] {
+                    context.getString(R.string.external_display_standard_rotation),
+                    context.getString(R.string.external_display_rotation_90),
+                    context.getString(R.string.external_display_rotation_180),
+                    context.getString(R.string.external_display_rotation_270)};
+            mRotationEntriesValues = new String[] {"0", "1", "2", "3"};
+        }
+        pref.setEntries(mRotationEntries);
+        pref.setEntryValues(mRotationEntriesValues);
+        pref.setValueIndex(displayRotation);
+        pref.setSummary(mRotationEntries[displayRotation]);
+        pref.setOnPreferenceChangeListener((p, newValue) -> {
+            writePreferenceClickMetric(p);
+            var rotation = Integer.parseInt((String) newValue);
+            var displayId = display.getDisplayId();
+            if (mInjector == null || !mInjector.freezeDisplayRotation(displayId, rotation)) {
+                return false;
+            }
+            pref.setValueIndex(rotation);
+            return true;
+        });
+        pref.setEnabled(isRotationSettingEnabled(mInjector));
+        return pref;
+    }
+
+    private Preference updateResolutionPreference(@NonNull final Context context,
+            @NonNull final Display display) {
+        var pref = getResolutionPreference(context);
+        pref.setKey(EXTERNAL_DISPLAY_RESOLUTION_PREFERENCE_KEY);
+        pref.setTitle(EXTERNAL_DISPLAY_RESOLUTION_TITLE_RESOURCE);
+        pref.setSummary(display.getMode().getPhysicalWidth() + " x "
+                + display.getMode().getPhysicalHeight());
+        pref.setOnPreferenceClickListener((Preference p) -> {
+            writePreferenceClickMetric(p);
+            launchResolutionSelector(context, display.getDisplayId());
+            return true;
+        });
+        pref.setEnabled(isResolutionSettingEnabled(mInjector));
+        return pref;
+    }
+
+    private int getDisplayRotation(int displayId) {
+        if (mInjector == null) {
+            return 0;
+        }
+        return Math.min(3, Math.max(0, mInjector.getDisplayUserRotation(displayId)));
+    }
+
+    private void scheduleUpdate() {
+        if (mInjector == null || !mStarted) {
+            return;
+        }
+        unscheduleUpdate();
+        mInjector.getHandler().post(mUpdateRunnable);
+    }
+
+    private void unscheduleUpdate() {
+        if (mInjector == null || !mStarted) {
+            return;
+        }
+        mInjector.getHandler().removeCallbacks(mUpdateRunnable);
+    }
+
+    @VisibleForTesting
+    class DisplayPreference extends TwoTargetPreference
+            implements Preference.OnPreferenceClickListener {
+        private final int mDisplayId;
+
+        DisplayPreference(@NonNull final Context context, @NonNull final Display display) {
+            super(context);
+            mDisplayId = display.getDisplayId();
+            setPersistent(false);
+            setKey("display_id_" + mDisplayId);
+            setTitle(display.getName());
+            setSummary(display.getMode().getPhysicalWidth() + " x "
+                               + display.getMode().getPhysicalHeight());
+            setOnPreferenceClickListener(this);
+        }
+
+        @Override
+        public boolean onPreferenceClick(@NonNull Preference preference) {
+            launchDisplaySettings(mDisplayId);
+            writePreferenceClickMetric(preference);
+            return true;
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java b/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
new file mode 100644
index 0000000..c9ea8ae
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/display/ExternalDisplaySettingsConfiguration.java
@@ -0,0 +1,350 @@
+/*
+ * 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.display;
+
+import static android.content.Context.DISPLAY_SERVICE;
+import static android.hardware.display.DisplayManager.DISPLAY_CATEGORY_ALL_INCLUDING_DISABLED;
+import static android.hardware.display.DisplayManager.EVENT_FLAG_DISPLAY_ADDED;
+import static android.hardware.display.DisplayManager.EVENT_FLAG_DISPLAY_CHANGED;
+import static android.hardware.display.DisplayManager.EVENT_FLAG_DISPLAY_CONNECTION_CHANGED;
+import static android.hardware.display.DisplayManager.EVENT_FLAG_DISPLAY_REMOVED;
+import static android.view.Display.INVALID_DISPLAY;
+
+import static com.android.server.display.feature.flags.Flags.enableModeLimitForExternalDisplay;
+
+import android.content.Context;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManagerGlobal;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+import android.view.Display;
+import android.view.Display.Mode;
+import android.view.IWindowManager;
+import android.view.WindowManagerGlobal;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settings.flags.FeatureFlags;
+import com.android.settings.flags.FeatureFlagsImpl;
+
+public class ExternalDisplaySettingsConfiguration {
+    static final String VIRTUAL_DISPLAY_PACKAGE_NAME_SYSTEM_PROPERTY =
+            "persist.demo.userrotation.package_name";
+    static final String DISPLAY_ID_ARG = "display_id";
+    static final int EXTERNAL_DISPLAY_NOT_FOUND_RESOURCE = R.string.external_display_not_found;
+    static final int EXTERNAL_DISPLAY_HELP_URL = R.string.help_url_external_display;
+
+    public static class SystemServicesProvider {
+        @Nullable
+        private IWindowManager mWindowManager;
+        @Nullable
+        private DisplayManager mDisplayManager;
+        @Nullable
+        protected Context mContext;
+        /**
+         * @param name of a system property.
+         * @return the value of the system property.
+         */
+        @NonNull
+        public String getSystemProperty(@NonNull String name) {
+            return SystemProperties.get(name);
+        }
+
+        /**
+         * @return return public Display manager.
+         */
+        @Nullable
+        public DisplayManager getDisplayManager() {
+            if (mDisplayManager == null && getContext() != null) {
+                mDisplayManager = (DisplayManager) getContext().getSystemService(DISPLAY_SERVICE);
+            }
+            return mDisplayManager;
+        }
+
+        /**
+         * @return internal IWindowManager
+         */
+        @Nullable
+        public IWindowManager getWindowManager() {
+            if (mWindowManager == null) {
+                mWindowManager = WindowManagerGlobal.getWindowManagerService();
+            }
+            return mWindowManager;
+        }
+
+        /**
+         * @return context.
+         */
+        @Nullable
+        public Context getContext() {
+            return mContext;
+        }
+    }
+
+    public static class Injector extends SystemServicesProvider {
+        @NonNull
+        private final FeatureFlags mFlags;
+        @NonNull
+        private final Handler mHandler;
+
+        Injector(@Nullable Context context) {
+            this(context, new FeatureFlagsImpl(), new Handler(Looper.getMainLooper()));
+        }
+
+        Injector(@Nullable Context context, @NonNull FeatureFlags flags, @NonNull Handler handler) {
+            mContext = context;
+            mFlags = flags;
+            mHandler = handler;
+        }
+
+        /**
+         * @return all displays including disabled.
+         */
+        @NonNull
+        public Display[] getAllDisplays() {
+            var dm = getDisplayManager();
+            if (dm == null) {
+                return new Display[0];
+            }
+            return dm.getDisplays(DISPLAY_CATEGORY_ALL_INCLUDING_DISABLED);
+        }
+
+        /**
+         * @return enabled displays only.
+         */
+        @NonNull
+        public Display[] getEnabledDisplays() {
+            var dm = getDisplayManager();
+            if (dm == null) {
+                return new Display[0];
+            }
+            return dm.getDisplays();
+        }
+
+        /**
+         * @return true if the display is enabled
+         */
+        public boolean isDisplayEnabled(@NonNull Display display) {
+            for (var enabledDisplay : getEnabledDisplays()) {
+                if (enabledDisplay.getDisplayId() == display.getDisplayId()) {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        /**
+         * Register display listener.
+         */
+        public void registerDisplayListener(@NonNull DisplayManager.DisplayListener listener) {
+            var dm = getDisplayManager();
+            if (dm == null) {
+                return;
+            }
+            dm.registerDisplayListener(listener, mHandler, EVENT_FLAG_DISPLAY_ADDED
+                    | EVENT_FLAG_DISPLAY_CHANGED | EVENT_FLAG_DISPLAY_REMOVED
+                    | EVENT_FLAG_DISPLAY_CONNECTION_CHANGED);
+        }
+
+        /**
+         * Unregister display listener.
+         */
+        public void unregisterDisplayListener(@NonNull DisplayManager.DisplayListener listener) {
+            var dm = getDisplayManager();
+            if (dm == null) {
+                return;
+            }
+            dm.unregisterDisplayListener(listener);
+        }
+
+        /**
+         * @return feature flags.
+         */
+        @NonNull
+        public FeatureFlags getFlags() {
+            return mFlags;
+        }
+
+        /**
+         * Enable connected display.
+         */
+        public boolean enableConnectedDisplay(int displayId) {
+            var dm = getDisplayManager();
+            if (dm == null) {
+                return false;
+            }
+            dm.enableConnectedDisplay(displayId);
+            return true;
+        }
+
+        /**
+         * Disable connected display.
+         */
+        public boolean disableConnectedDisplay(int displayId) {
+            var dm = getDisplayManager();
+            if (dm == null) {
+                return false;
+            }
+            dm.disableConnectedDisplay(displayId);
+            return true;
+        }
+
+        /**
+         * @param displayId which must be returned
+         * @return display object for the displayId
+         */
+        @Nullable
+        public Display getDisplay(int displayId) {
+            if (displayId == INVALID_DISPLAY) {
+                return null;
+            }
+            var dm = getDisplayManager();
+            if (dm == null) {
+                return null;
+            }
+            return dm.getDisplay(displayId);
+        }
+
+        /**
+         * @return handler
+         */
+        @NonNull
+        public Handler getHandler() {
+            return mHandler;
+        }
+
+        /**
+         * Get display rotation
+         * @param displayId display identifier
+         * @return rotation
+         */
+        public int getDisplayUserRotation(int displayId) {
+            var wm = getWindowManager();
+            if (wm == null) {
+                return 0;
+            }
+            try {
+                return wm.getDisplayUserRotation(displayId);
+            } catch (RemoteException e) {
+                return 0;
+            }
+        }
+
+        /**
+         * Freeze rotation of the display in the specified rotation.
+         * @param displayId display identifier
+         * @param rotation [0, 1, 2, 3]
+         * @return true if successful
+         */
+        public boolean freezeDisplayRotation(int displayId, int rotation) {
+            var wm = getWindowManager();
+            if (wm == null) {
+                return false;
+            }
+            try {
+                wm.freezeDisplayRotation(displayId, rotation,
+                        "ExternalDisplayPreferenceFragment");
+                return true;
+            } catch (RemoteException e) {
+                return false;
+            }
+        }
+
+        /**
+         * Enforce display mode on the given display.
+         */
+        public void setUserPreferredDisplayMode(int displayId, @NonNull Mode mode) {
+            DisplayManagerGlobal.getInstance().setUserPreferredDisplayMode(displayId, mode);
+        }
+
+        /**
+         * @return true if the display mode limit flag enabled.
+         */
+        public boolean isModeLimitForExternalDisplayEnabled() {
+            return enableModeLimitForExternalDisplay();
+        }
+    }
+
+    public abstract static class DisplayListener implements DisplayManager.DisplayListener {
+        @Override
+        public void onDisplayAdded(int displayId) {
+            update(displayId);
+        }
+
+        @Override
+        public void onDisplayRemoved(int displayId) {
+            update(displayId);
+        }
+
+        @Override
+        public void onDisplayChanged(int displayId) {
+            update(displayId);
+        }
+
+        @Override
+        public void onDisplayConnected(int displayId) {
+            update(displayId);
+        }
+
+        @Override
+        public void onDisplayDisconnected(int displayId) {
+            update(displayId);
+        }
+
+        /**
+         * Called from other listener methods to trigger update of the settings page.
+         */
+        public abstract void update(int displayId);
+    }
+
+    /**
+     * @return whether the settings page is enabled or not.
+     */
+    public static boolean isExternalDisplaySettingsPageEnabled(@NonNull FeatureFlags flags) {
+        return flags.rotationConnectedDisplaySetting()
+                || flags.resolutionAndEnableConnectedDisplaySetting();
+    }
+
+    static boolean isDisplayAllowed(@NonNull Display display,
+            @NonNull SystemServicesProvider props) {
+        return display.getType() == Display.TYPE_EXTERNAL
+                || display.getType() == Display.TYPE_OVERLAY
+                || isVirtualDisplayAllowed(display, props);
+    }
+
+    static boolean isVirtualDisplayAllowed(@NonNull Display display,
+            @NonNull SystemServicesProvider properties) {
+        var sysProp = properties.getSystemProperty(VIRTUAL_DISPLAY_PACKAGE_NAME_SYSTEM_PROPERTY);
+        return !sysProp.isEmpty() && display.getType() == Display.TYPE_VIRTUAL
+                       && sysProp.equals(display.getOwnerPackageName());
+    }
+
+    static boolean isUseDisplaySettingEnabled(@Nullable Injector injector) {
+        return injector != null && injector.getFlags().resolutionAndEnableConnectedDisplaySetting();
+    }
+
+    static boolean isResolutionSettingEnabled(@Nullable Injector injector) {
+        return injector != null && injector.getFlags().resolutionAndEnableConnectedDisplaySetting();
+    }
+
+    static boolean isRotationSettingEnabled(@Nullable Injector injector) {
+        return injector != null && injector.getFlags().rotationConnectedDisplaySetting();
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/display/ExternalDisplayUpdater.java b/src/com/android/settings/connecteddevice/display/ExternalDisplayUpdater.java
new file mode 100644
index 0000000..64dd7bb
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/display/ExternalDisplayUpdater.java
@@ -0,0 +1,181 @@
+/*
+ * 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.display;
+
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.isDisplayAllowed;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.UserHandle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.DisplayListener;
+import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.Injector;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+public class ExternalDisplayUpdater {
+
+    private static final String PREF_KEY = "external_display_settings";
+    private final int mMetricsCategory;
+    @NonNull
+    private final MetricsFeatureProvider mMetricsFeatureProvider;
+    @NonNull
+    private final Runnable mUpdateRunnable = this::update;
+    @NonNull
+    private final DevicePreferenceCallback mDevicePreferenceCallback;
+    @Nullable
+    private RestrictedPreference mPreference;
+    @Nullable
+    private Injector mInjector;
+    private final DisplayListener mListener =  new DisplayListener() {
+        @Override
+        public void update(int displayId) {
+            scheduleUpdate();
+        }
+    };
+
+    public ExternalDisplayUpdater(@NonNull DevicePreferenceCallback callback, int metricsCategory) {
+        mDevicePreferenceCallback = callback;
+        mMetricsCategory = metricsCategory;
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+    }
+
+    /**
+     * Set the context to generate the {@link Preference}, so it could get the correct theme.
+     */
+    public void initPreference(@NonNull Context context) {
+        initPreference(context, new Injector(context));
+    }
+
+    @VisibleForTesting
+    void initPreference(@NonNull Context context, Injector injector) {
+        mInjector = injector;
+        mPreference = new RestrictedPreference(context, null /* AttributeSet */);
+        mPreference.setTitle(R.string.external_display_settings_title);
+        mPreference.setSummary(getSummary());
+        mPreference.setIcon(getDrawable(context));
+        mPreference.setKey(PREF_KEY);
+        mPreference.setDisabledByAdmin(checkIfUsbDataSignalingIsDisabled(context));
+        mPreference.setOnPreferenceClickListener((Preference p) -> {
+            mMetricsFeatureProvider.logClickedPreference(p, mMetricsCategory);
+            // New version - uses a separate screen.
+            new SubSettingLauncher(context)
+                    .setDestination(ExternalDisplayPreferenceFragment.class.getName())
+                    .setTitleRes(R.string.external_display_settings_title)
+                    .setSourceMetricsCategory(mMetricsCategory)
+                    .launch();
+            return true;
+        });
+
+        scheduleUpdate();
+    }
+
+    /**
+     * Unregister the display listener.
+     */
+    public void unregisterCallback() {
+        if (mInjector != null) {
+            mInjector.unregisterDisplayListener(mListener);
+        }
+    }
+
+    /**
+     * Register the display listener.
+     */
+    public void registerCallback() {
+        if (mInjector != null) {
+            mInjector.registerDisplayListener(mListener);
+        }
+    }
+
+    @VisibleForTesting
+    @Nullable
+    protected RestrictedLockUtils.EnforcedAdmin checkIfUsbDataSignalingIsDisabled(Context context) {
+        return RestrictedLockUtilsInternal.checkIfUsbDataSignalingIsDisabled(context,
+                    UserHandle.myUserId());
+    }
+
+    @VisibleForTesting
+    @Nullable
+    protected Drawable getDrawable(Context context) {
+        return context.getDrawable(R.drawable.ic_external_display_32dp);
+    }
+
+    @Nullable
+    protected CharSequence getSummary() {
+        if (mInjector == null) {
+            return null;
+        }
+        var context = mInjector.getContext();
+        if (context == null) {
+            return null;
+        }
+
+        for (var display : mInjector.getEnabledDisplays()) {
+            if (display != null && isDisplayAllowed(display, mInjector)) {
+                return context.getString(R.string.external_display_on);
+            }
+        }
+
+        for (var display : mInjector.getAllDisplays()) {
+            if (display != null && isDisplayAllowed(display, mInjector)) {
+                return context.getString(R.string.external_display_off);
+            }
+        }
+
+        return null;
+    }
+
+    private void scheduleUpdate() {
+        if (mInjector == null) {
+            return;
+        }
+        unscheduleUpdate();
+        mInjector.getHandler().post(mUpdateRunnable);
+    }
+
+    private void unscheduleUpdate() {
+        if (mInjector == null) {
+            return;
+        }
+        mInjector.getHandler().removeCallbacks(mUpdateRunnable);
+    }
+
+    private void update() {
+        var summary = getSummary();
+        if (mPreference == null) {
+            return;
+        }
+        mPreference.setSummary(summary);
+        if (summary != null) {
+            mDevicePreferenceCallback.onDeviceAdded(mPreference);
+        } else {
+            mDevicePreferenceCallback.onDeviceRemoved(mPreference);
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/display/OWNERS b/src/com/android/settings/connecteddevice/display/OWNERS
new file mode 100644
index 0000000..78aecb9
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/display/OWNERS
@@ -0,0 +1,7 @@
+# Default reviewers for this and subdirectories.
+santoscordon@google.com
+petsjonkin@google.com
+flc@google.com
+wilczynskip@google.com
+brup@google.com
+olb@google.com
diff --git a/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragment.java b/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragment.java
new file mode 100644
index 0000000..db81be8
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragment.java
@@ -0,0 +1,358 @@
+/*
+ * 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.display;
+
+import static android.view.Display.INVALID_DISPLAY;
+
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.DISPLAY_ID_ARG;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.EXTERNAL_DISPLAY_HELP_URL;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.EXTERNAL_DISPLAY_NOT_FOUND_RESOURCE;
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.isDisplayAllowed;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.util.Log;
+import android.util.Pair;
+import android.view.Display;
+import android.view.Display.Mode;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.util.ToBooleanFunction;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragmentBase;
+import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.DisplayListener;
+import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.Injector;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+
+public class ResolutionPreferenceFragment extends SettingsPreferenceFragmentBase {
+    private static final String TAG = "ResolutionPreference";
+    static final int DEFAULT_LOW_REFRESH_RATE = 60;
+    static final String MORE_OPTIONS_KEY = "more_options";
+    static final String TOP_OPTIONS_KEY = "top_options";
+    static final int MORE_OPTIONS_TITLE_RESOURCE =
+            R.string.external_display_more_options_title;
+    static final int EXTERNAL_DISPLAY_RESOLUTION_SETTINGS_RESOURCE =
+            R.xml.external_display_resolution_settings;
+    static final String DISPLAY_MODE_LIMIT_OVERRIDE_PROP = "persist.sys.com.android.server.display"
+            + ".feature.flags.enable_mode_limit_for_external_display-override";
+    @Nullable
+    private Injector mInjector;
+    @Nullable
+    private PreferenceCategory mTopOptionsPreference;
+    @Nullable
+    private PreferenceCategory mMoreOptionsPreference;
+    private boolean mStarted;
+    private final HashSet<String> mResolutionPreferences = new HashSet<>();
+    private int mExternalDisplayPeakWidth;
+    private int mExternalDisplayPeakHeight;
+    private int mExternalDisplayPeakRefreshRate;
+    private boolean mRefreshRateSynchronizationEnabled;
+    private boolean mMoreOptionsExpanded;
+    private final Runnable mUpdateRunnable = this::update;
+    private final DisplayListener mListener = new DisplayListener() {
+        @Override
+        public void update(int displayId) {
+            scheduleUpdate();
+        }
+    };
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY;
+    }
+
+    @Override
+    public int getHelpResource() {
+        return EXTERNAL_DISPLAY_HELP_URL;
+    }
+
+    @Override
+    public void onCreateCallback(@Nullable Bundle icicle) {
+        if (mInjector == null) {
+            mInjector = new Injector(getPrefContext());
+        }
+        addPreferencesFromResource(EXTERNAL_DISPLAY_RESOLUTION_SETTINGS_RESOURCE);
+        updateDisplayModeLimits(mInjector.getContext());
+    }
+
+    @Override
+    public void onActivityCreatedCallback(@Nullable Bundle savedInstanceState) {
+        View view = getView();
+        TextView emptyView = null;
+        if (view != null) {
+            emptyView = (TextView) view.findViewById(android.R.id.empty);
+        }
+        if (emptyView != null) {
+            emptyView.setText(EXTERNAL_DISPLAY_NOT_FOUND_RESOURCE);
+            setEmptyView(emptyView);
+        }
+    }
+
+    @Override
+    public void onStartCallback() {
+        mStarted = true;
+        if (mInjector == null) {
+            return;
+        }
+        mInjector.registerDisplayListener(mListener);
+        scheduleUpdate();
+    }
+
+    @Override
+    public void onStopCallback() {
+        mStarted = false;
+        if (mInjector == null) {
+            return;
+        }
+        mInjector.unregisterDisplayListener(mListener);
+        unscheduleUpdate();
+    }
+
+    public ResolutionPreferenceFragment() {}
+
+    @VisibleForTesting
+    ResolutionPreferenceFragment(@NonNull Injector injector) {
+        mInjector = injector;
+    }
+
+    @VisibleForTesting
+    protected int getDisplayIdArg() {
+        var args = getArguments();
+        return args != null ? args.getInt(DISPLAY_ID_ARG, INVALID_DISPLAY) : INVALID_DISPLAY;
+    }
+
+    @VisibleForTesting
+    @NonNull
+    protected Resources getResources(@NonNull Context context) {
+        return context.getResources();
+    }
+
+    private void update() {
+        final PreferenceScreen screen = getPreferenceScreen();
+        if (screen == null || mInjector == null) {
+            return;
+        }
+        var context = mInjector.getContext();
+        if (context == null) {
+            return;
+        }
+        var display = mInjector.getDisplay(getDisplayIdArg());
+        if (display == null || !isDisplayAllowed(display, mInjector)) {
+            screen.removeAll();
+            mTopOptionsPreference = null;
+            mMoreOptionsPreference = null;
+            return;
+        }
+        mResolutionPreferences.clear();
+        var remainingModes = addModePreferences(context,
+                getTopPreference(context, screen),
+                display.getSupportedModes(), this::isTopMode, display);
+        addRemainingPreferences(context,
+                getMorePreference(context, screen),
+                display, remainingModes.first, remainingModes.second);
+    }
+
+    private PreferenceCategory getTopPreference(@NonNull Context context,
+            @NonNull PreferenceScreen screen) {
+        if (mTopOptionsPreference == null) {
+            mTopOptionsPreference = new PreferenceCategory(context);
+            mTopOptionsPreference.setPersistent(false);
+            mTopOptionsPreference.setKey(TOP_OPTIONS_KEY);
+            screen.addPreference(mTopOptionsPreference);
+        } else {
+            mTopOptionsPreference.removeAll();
+        }
+        return mTopOptionsPreference;
+    }
+
+    private PreferenceCategory getMorePreference(@NonNull Context context,
+            @NonNull PreferenceScreen screen) {
+        if (mMoreOptionsPreference == null) {
+            mMoreOptionsPreference = new PreferenceCategory(context);
+            mMoreOptionsPreference.setPersistent(false);
+            mMoreOptionsPreference.setTitle(MORE_OPTIONS_TITLE_RESOURCE);
+            mMoreOptionsPreference.setOnExpandButtonClickListener(() -> {
+                mMoreOptionsExpanded = true;
+            });
+            mMoreOptionsPreference.setKey(MORE_OPTIONS_KEY);
+            screen.addPreference(mMoreOptionsPreference);
+        } else {
+            mMoreOptionsPreference.removeAll();
+        }
+        return mMoreOptionsPreference;
+    }
+
+    private void addRemainingPreferences(@NonNull Context context,
+            @NonNull PreferenceCategory group, @NonNull Display display,
+            boolean isSelectedModeFound, @NonNull Mode[] moreModes) {
+        if (moreModes.length == 0) {
+            return;
+        }
+        mMoreOptionsExpanded |= !isSelectedModeFound;
+        group.setInitialExpandedChildrenCount(mMoreOptionsExpanded ? Integer.MAX_VALUE : 0);
+        addModePreferences(context, group, moreModes, /*checkMode=*/ null, display);
+    }
+
+    private Pair<Boolean, Mode[]> addModePreferences(@NonNull Context context,
+            @NonNull PreferenceGroup group,
+            @NonNull Mode[] modes,
+            @Nullable ToBooleanFunction<Mode> checkMode,
+            @NonNull Display display) {
+        Display.Mode curMode = display.getMode();
+        var currentResolution = curMode.getPhysicalWidth() + "x" + curMode.getPhysicalHeight();
+        var rotatedResolution = curMode.getPhysicalHeight() + "x" + curMode.getPhysicalWidth();
+        var skippedModes = new ArrayList<Mode>();
+        var isAnyOfModesSelected = false;
+        for (var mode : modes) {
+            var modeStr = mode.getPhysicalWidth() + "x" + mode.getPhysicalHeight();
+            SelectorWithWidgetPreference pref = group.findPreference(modeStr);
+            if (pref != null) {
+                continue;
+            }
+            if (checkMode != null && !checkMode.apply(mode)) {
+                skippedModes.add(mode);
+                continue;
+            }
+            var isCurrentMode =
+                    currentResolution.equals(modeStr) || rotatedResolution.equals(modeStr);
+            if (!isCurrentMode && !isAllowedMode(mode)) {
+                continue;
+            }
+            if (mResolutionPreferences.contains(modeStr)) {
+                // Added to "Top modes" already.
+                continue;
+            }
+            mResolutionPreferences.add(modeStr);
+            pref = new SelectorWithWidgetPreference(context);
+            pref.setPersistent(false);
+            pref.setKey(modeStr);
+            pref.setTitle(mode.getPhysicalWidth() + " x " + mode.getPhysicalHeight());
+            pref.setSingleLineTitle(true);
+            pref.setOnClickListener(preference -> onDisplayModeClicked(preference, display));
+            pref.setChecked(isCurrentMode);
+            isAnyOfModesSelected |= isCurrentMode;
+            group.addPreference(pref);
+        }
+        return new Pair<>(isAnyOfModesSelected, skippedModes.toArray(Mode.EMPTY_ARRAY));
+    }
+
+    private boolean isTopMode(@NonNull Mode mode) {
+        return mTopOptionsPreference != null
+                && mTopOptionsPreference.getPreferenceCount() < 3;
+    }
+
+    private boolean isAllowedMode(@NonNull Mode mode) {
+        if (mRefreshRateSynchronizationEnabled
+                && (mode.getRefreshRate() < DEFAULT_LOW_REFRESH_RATE - 1
+                        || mode.getRefreshRate() > DEFAULT_LOW_REFRESH_RATE + 1)) {
+            Log.d(TAG, mode + " refresh rate is out of synchronization range");
+            return false;
+        }
+        if (mExternalDisplayPeakHeight > 0
+                && mode.getPhysicalHeight() > mExternalDisplayPeakHeight) {
+            Log.d(TAG, mode + " height is above the allowed limit");
+            return false;
+        }
+        if (mExternalDisplayPeakWidth > 0
+                && mode.getPhysicalWidth() > mExternalDisplayPeakWidth) {
+            Log.d(TAG, mode + " width is above the allowed limit");
+            return false;
+        }
+        if (mExternalDisplayPeakRefreshRate > 0
+                && mode.getRefreshRate() > mExternalDisplayPeakRefreshRate) {
+            Log.d(TAG, mode + " refresh rate is above the allowed limit");
+            return false;
+        }
+        return true;
+    }
+
+    private void scheduleUpdate() {
+        if (mInjector == null || !mStarted) {
+            return;
+        }
+        unscheduleUpdate();
+        mInjector.getHandler().post(mUpdateRunnable);
+    }
+
+    private void unscheduleUpdate() {
+        if (mInjector == null || !mStarted) {
+            return;
+        }
+        mInjector.getHandler().removeCallbacks(mUpdateRunnable);
+    }
+
+    private void onDisplayModeClicked(@NonNull SelectorWithWidgetPreference preference,
+            @NonNull Display display) {
+        if (mInjector == null) {
+            return;
+        }
+        String[] modeResolution = preference.getKey().split("x");
+        int width = Integer.parseInt(modeResolution[0]);
+        int height = Integer.parseInt(modeResolution[1]);
+        for (var mode : display.getSupportedModes()) {
+            if (mode.getPhysicalWidth() == width && mode.getPhysicalHeight() == height
+                        && isAllowedMode(mode)) {
+                mInjector.setUserPreferredDisplayMode(display.getDisplayId(), mode);
+                return;
+            }
+        }
+    }
+
+    private boolean isDisplayResolutionLimitEnabled() {
+        if (mInjector == null) {
+            return false;
+        }
+        var flagOverride = mInjector.getSystemProperty(DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+        var isOverrideEnabled = "true".equals(flagOverride);
+        var isOverrideEnabledOrNotSet = !"false".equals(flagOverride);
+        return (mInjector.isModeLimitForExternalDisplayEnabled() && isOverrideEnabledOrNotSet)
+                || isOverrideEnabled;
+    }
+
+    private void updateDisplayModeLimits(@Nullable Context context) {
+        if (context == null) {
+            return;
+        }
+        mExternalDisplayPeakRefreshRate = getResources(context).getInteger(
+                    com.android.internal.R.integer.config_externalDisplayPeakRefreshRate);
+        if (isDisplayResolutionLimitEnabled()) {
+            mExternalDisplayPeakWidth = getResources(context).getInteger(
+                    com.android.internal.R.integer.config_externalDisplayPeakWidth);
+            mExternalDisplayPeakHeight = getResources(context).getInteger(
+                    com.android.internal.R.integer.config_externalDisplayPeakHeight);
+        }
+        mRefreshRateSynchronizationEnabled = getResources(context).getBoolean(
+                    com.android.internal.R.bool.config_refreshRateSynchronizationEnabled);
+        Log.d(TAG, "mExternalDisplayPeakRefreshRate=" + mExternalDisplayPeakRefreshRate);
+        Log.d(TAG, "mExternalDisplayPeakWidth=" + mExternalDisplayPeakWidth);
+        Log.d(TAG, "mExternalDisplayPeakHeight=" + mExternalDisplayPeakHeight);
+        Log.d(TAG, "mRefreshRateSynchronizationEnabled=" + mRefreshRateSynchronizationEnabled);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
index 04fab7d..ae9dbeb 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
@@ -31,6 +31,7 @@
 
 import com.android.settings.R;
 import com.android.settings.Utils;
+import com.android.settings.flags.Flags;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import java.util.LinkedHashMap;
@@ -130,39 +131,54 @@
 
     @Override
     public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
-        requireAuthAndExecute(() -> {
-            final long function = UsbBackend.usbFunctionsFromString(preference.getKey());
-            final long previousFunction = mUsbBackend.getCurrentFunctions();
-            if (DEBUG) {
-                Log.d(TAG, "onRadioButtonClicked() function : " + function + ", toString() : "
-                        + UsbManager.usbFunctionsToString(function) + ", previousFunction : "
-                        + previousFunction + ", toString() : "
-                        + UsbManager.usbFunctionsToString(previousFunction));
-            }
-            if (function != previousFunction && !Utils.isMonkeyRunning()
-                    && !isClickEventIgnored(function, previousFunction)) {
-                mPreviousFunction = previousFunction;
+        final long function = UsbBackend.usbFunctionsFromString(preference.getKey());
+        if (isAuthRequired(function)) {
+            requireAuthAndExecute(()->handleRadioButtonClicked(preference, function));
+        } else {
+            handleRadioButtonClicked(preference, function);
+        }
+    }
 
-                //Update the UI in advance to make it looks smooth
-                final SelectorWithWidgetPreference prevPref =
-                        (SelectorWithWidgetPreference) mProfilesContainer.findPreference(
-                                UsbBackend.usbFunctionsToString(mPreviousFunction));
-                if (prevPref != null) {
-                    prevPref.setChecked(false);
-                    preference.setChecked(true);
-                }
+    private void handleRadioButtonClicked(SelectorWithWidgetPreference preference, long function) {
+        final long previousFunction = mUsbBackend.getCurrentFunctions();
+        if (DEBUG) {
+            Log.d(TAG, "onRadioButtonClicked() function : " + function + ", toString() : "
+                    + UsbManager.usbFunctionsToString(function) + ", previousFunction : "
+                    + previousFunction + ", toString() : "
+                    + UsbManager.usbFunctionsToString(previousFunction));
+        }
+        if (function != previousFunction && !Utils.isMonkeyRunning()
+                && !isClickEventIgnored(function, previousFunction)) {
+            mPreviousFunction = previousFunction;
 
-                if (function == UsbManager.FUNCTION_RNDIS || function == UsbManager.FUNCTION_NCM) {
-                    // We need to have entitlement check for usb tethering, so use API in
-                    // TetheringManager.
-                    mTetheringManager.startTethering(
-                            TetheringManager.TETHERING_USB, new HandlerExecutor(mHandler),
-                            mOnStartTetheringCallback);
-                } else {
-                    mUsbBackend.setCurrentFunctions(function);
-                }
+            //Update the UI in advance to make it looks smooth
+            final SelectorWithWidgetPreference prevPref =
+                    (SelectorWithWidgetPreference) mProfilesContainer.findPreference(
+                            UsbBackend.usbFunctionsToString(mPreviousFunction));
+            if (prevPref != null) {
+                prevPref.setChecked(false);
+                preference.setChecked(true);
             }
-        });
+
+            if (function == UsbManager.FUNCTION_RNDIS || function == UsbManager.FUNCTION_NCM) {
+                // We need to have entitlement check for usb tethering, so use API in
+                // TetheringManager.
+                mTetheringManager.startTethering(
+                        TetheringManager.TETHERING_USB, new HandlerExecutor(mHandler),
+                        mOnStartTetheringCallback);
+            } else {
+                mUsbBackend.setCurrentFunctions(function);
+            }
+        }
+    }
+
+    private boolean isAuthRequired(long function) {
+        if (!Flags.excludeWebcamAuthChallenge()) {
+            return true;
+        }
+        // Since webcam and MIDI don't transfer any persistent data over USB
+        // don't require authentication.
+        return !(function == UsbManager.FUNCTION_UVC || function == UsbManager.FUNCTION_MIDI);
     }
 
     private boolean isClickEventIgnored(long function, long previousFunction) {
diff --git a/src/com/android/settings/core/BasePreferenceController.java b/src/com/android/settings/core/BasePreferenceController.java
index 5763d3b..3f91fb7 100644
--- a/src/com/android/settings/core/BasePreferenceController.java
+++ b/src/com/android/settings/core/BasePreferenceController.java
@@ -263,6 +263,16 @@
                 || availabilityStatus == DISABLED_DEPENDENT_SETTING);
     }
 
+    private boolean isAvailableForSearch() {
+        if (mIsForWork && mWorkProfileUser == null) {
+            return false;
+        }
+
+        final int availabilityStatus = getAvailabilityStatus();
+        return (availabilityStatus == AVAILABLE
+                || availabilityStatus == DISABLED_DEPENDENT_SETTING);
+    }
+
     /**
      * @return {@code false} if the setting is not applicable to the device. This covers both
      * settings which were only introduced in future versions of android, or settings that have
@@ -303,18 +313,12 @@
      * Called by SearchIndexProvider#getNonIndexableKeys
      */
     public void updateNonIndexableKeys(List<String> keys) {
-        final boolean shouldSuppressFromSearch = !isAvailable()
-                || getAvailabilityStatus() == AVAILABLE_UNSEARCHABLE;
-        if (shouldSuppressFromSearch) {
-            final String key = getPreferenceKey();
-            if (TextUtils.isEmpty(key)) {
-                Log.w(TAG, "Skipping updateNonIndexableKeys due to empty key " + toString());
-                return;
-            }
-            if (keys.contains(key)) {
-                Log.w(TAG, "Skipping updateNonIndexableKeys, key already in list. " + toString());
-                return;
-            }
+        final String key = getPreferenceKey();
+        if (TextUtils.isEmpty(key)) {
+            Log.w(TAG, "Skipping updateNonIndexableKeys due to empty key " + this);
+            return;
+        }
+        if (!keys.contains(key) && !isAvailableForSearch()) {
             keys.add(key);
         }
     }
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 1c14712..734bddc 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -156,12 +156,15 @@
 import com.android.settings.notification.ConfigureNotificationSettings;
 import com.android.settings.notification.NotificationAccessSettings;
 import com.android.settings.notification.NotificationAssistantPicker;
+import com.android.settings.notification.PoliteNotificationsPreferenceFragment;
 import com.android.settings.notification.SoundSettings;
 import com.android.settings.notification.app.AppBubbleNotificationSettings;
 import com.android.settings.notification.app.AppNotificationSettings;
 import com.android.settings.notification.app.ChannelNotificationSettings;
 import com.android.settings.notification.app.ConversationListSettings;
 import com.android.settings.notification.history.NotificationStation;
+import com.android.settings.notification.modes.ZenModeFragment;
+import com.android.settings.notification.modes.ZenModesListFragment;
 import com.android.settings.notification.zen.ZenAccessSettings;
 import com.android.settings.notification.zen.ZenModeAutomationSettings;
 import com.android.settings.notification.zen.ZenModeBlockedEffectsSettings;
@@ -312,6 +315,7 @@
             AppInfoDashboardFragment.class.getName(),
             BatterySaverSettings.class.getName(),
             AppNotificationSettings.class.getName(),
+            PoliteNotificationsPreferenceFragment.class.getName(),
             NotificationAssistantPicker.class.getName(),
             ChannelNotificationSettings.class.getName(),
             SatelliteSetting.class.getName(),
@@ -396,6 +400,8 @@
             CellularSecuritySettingsFragment.class.getName(),
             AccessibilityHearingAidsFragment.class.getName(),
             HearingDevicePairingFragment.class.getName(),
+            ZenModesListFragment.class.getName(),
+            ZenModeFragment.class.getName()
     };
 
     public static final String[] SETTINGS_FOR_RESTRICTED = {
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index ffc97dc..791b629 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -52,6 +52,7 @@
 import android.util.Pair;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
@@ -63,6 +64,7 @@
 import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
 import com.android.settings.activityembedding.ActivityEmbeddingUtils;
 import com.android.settings.dashboard.profileselector.ProfileSelectDialog;
+import com.android.settings.flags.Flags;
 import com.android.settings.homepage.TopLevelHighlightMixin;
 import com.android.settings.homepage.TopLevelSettings;
 import com.android.settings.overlay.FeatureFactory;
@@ -413,13 +415,23 @@
                         METHOD_GET_PROVIDER_ICON);
                 final Pair<String, Integer> iconInfo = TileUtils.getIconFromUri(
                         mContext, packageName, uri, providerMap);
-                if (iconInfo == null) {
+                final Icon icon;
+                if (iconInfo != null) {
+                    icon = Icon.createWithResource(iconInfo.first, iconInfo.second);
+                } else if (Flags.supportRawDynamicIcons()) {
+                    icon = TileUtils.getRawIconFromUri(mContext, uri, providerMap);
+                } else {
+                    icon = null;
+                }
+                if (icon == null) {
                     Log.w(TAG, "Failed to get icon from uri " + uri);
                     return;
                 }
-                final Icon icon = Icon.createWithResource(iconInfo.first, iconInfo.second);
+
+                final String iconPackage = (iconInfo != null) ? iconInfo.first : null;
+
                 ThreadUtils.postOnMainThread(() -> {
-                    setPreferenceIcon(preference, tile, forceRoundedIcon, iconInfo.first, icon);
+                    setPreferenceIcon(preference, tile, forceRoundedIcon, iconPackage, icon);
                 });
             });
             return;
@@ -435,14 +447,21 @@
     }
 
     private void setPreferenceIcon(Preference preference, Tile tile, boolean forceRoundedIcon,
-            String iconPackage, Icon icon) {
+            @Nullable String iconPackage, Icon icon) {
         Drawable iconDrawable = icon.loadDrawable(preference.getContext());
         if (iconDrawable == null) {
             Log.w(TAG, "Set null preference icon for: " + iconPackage);
             preference.setIcon(null);
             return;
         }
+        // Tint homepage icons
         if (TextUtils.equals(tile.getCategory(), CategoryKey.CATEGORY_HOMEPAGE)) {
+            // Skip tinting and Adaptive Icon transformation for homepage account type raw icons
+            if (TextUtils.equals(tile.getGroupKey(), "top_level_account_category")
+                    && iconPackage == null) {
+                preference.setIcon(iconDrawable);
+                return;
+            }
             iconDrawable.setTint(Utils.getHomepageIconColor(preference.getContext()));
         }
 
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 9abc6c2..0808da1 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -649,8 +649,12 @@
             DynamicDataObserver observer) {
         Log.d(TAG, "register observer: @" + Integer.toHexString(observer.hashCode())
                 + ", uri: " + observer.getUri());
-        resolver.registerContentObserver(observer.getUri(), false, observer);
-        mRegisteredObservers.add(observer);
+        try {
+            resolver.registerContentObserver(observer.getUri(), false, observer);
+            mRegisteredObservers.add(observer);
+        } catch (Exception e) {
+            Log.w(TAG, "Cannot register observer: " + observer.getUri(), e);
+        }
     }
 
     private void unregisterDynamicDataObservers(List<DynamicDataObserver> observers) {
@@ -661,8 +665,13 @@
         observers.forEach(observer -> {
             Log.d(TAG, "unregister observer: @" + Integer.toHexString(observer.hashCode())
                     + ", uri: " + observer.getUri());
-            mRegisteredObservers.remove(observer);
-            resolver.unregisterContentObserver(observer);
+            if (mRegisteredObservers.remove(observer)) {
+                try {
+                    resolver.unregisterContentObserver(observer);
+                } catch (Exception e) {
+                    Log.w(TAG, "Cannot unregister observer: " + observer.getUri(), e);
+                }
+            }
         });
     }
 
diff --git a/src/com/android/settings/datausage/DataUsageList.kt b/src/com/android/settings/datausage/DataUsageList.kt
index af115d9..a293277 100644
--- a/src/com/android/settings/datausage/DataUsageList.kt
+++ b/src/com/android/settings/datausage/DataUsageList.kt
@@ -33,13 +33,10 @@
 import com.android.settings.dashboard.DashboardFragment
 import com.android.settings.datausage.lib.BillingCycleRepository
 import com.android.settings.datausage.lib.NetworkUsageData
-import com.android.settings.network.MobileNetworkRepository
 import com.android.settings.network.SubscriptionUtil
-import com.android.settings.network.telephony.requireSubscriptionManager
-import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity
+import com.android.settings.network.telephony.SubscriptionRepository
 import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
 import com.android.settingslib.spaprivileged.framework.common.userManager
-import com.android.settingslib.utils.ThreadUtils
 import kotlin.jvm.optionals.getOrNull
 
 /**
@@ -59,7 +56,6 @@
     private lateinit var billingCycleRepository: BillingCycleRepository
 
     private var usageAmount: Preference? = null
-    private var subscriptionInfoEntity: SubscriptionInfoEntity? = null
     private var dataUsageListAppsController: DataUsageListAppsController? = null
     private var chartDataUsagePreferenceController: ChartDataUsagePreferenceController? = null
     private var dataUsageListHeaderController: DataUsageListHeaderController? = null
@@ -90,7 +86,6 @@
             finish()
             return
         }
-        updateSubscriptionInfoEntity()
         dataUsageListAppsController = use(DataUsageListAppsController::class.java).apply {
             init(template)
         }
@@ -132,6 +127,16 @@
         viewModel.chartDataFlow.collectLatestWithLifecycle(viewLifecycleOwner) { chartData ->
             chartDataUsagePreferenceController?.update(chartData)
         }
+        finishIfSubscriptionDisabled()
+    }
+
+    private fun finishIfSubscriptionDisabled() {
+        if (SubscriptionManager.isUsableSubscriptionId(subId)) {
+            SubscriptionRepository(requireContext()).isSubscriptionEnabledFlow(subId)
+                .collectLatestWithLifecycle(viewLifecycleOwner) { isSubscriptionEnabled ->
+                    if (!isSubscriptionEnabled) finish()
+                }
+        }
     }
 
     override fun getPreferenceScreenResId() = R.xml.data_usage_list
@@ -155,23 +160,12 @@
         }
     }
 
-    private fun updateSubscriptionInfoEntity() {
-        ThreadUtils.postOnBackgroundThread {
-            subscriptionInfoEntity =
-                MobileNetworkRepository.getInstance(context).getSubInfoById(subId.toString())
-        }
-    }
-
     /** Update chart sweeps and cycle list to reflect [NetworkPolicy] for current [template]. */
     private fun updatePolicy(isModifiable: Boolean) {
-        val isBillingCycleModifiable = isModifiable && isActiveSubscription()
-        dataUsageListHeaderController?.setConfigButtonVisible(isBillingCycleModifiable)
-        chartDataUsagePreferenceController?.setBillingCycleModifiable(isBillingCycleModifiable)
+        dataUsageListHeaderController?.setConfigButtonVisible(isModifiable)
+        chartDataUsagePreferenceController?.setBillingCycleModifiable(isModifiable)
     }
 
-    private fun isActiveSubscription(): Boolean =
-            requireContext().requireSubscriptionManager().getActiveSubscriptionInfo(subId) != null
-
     /**
      * Updates the chart and detail data when initial loaded or selected cycle changed.
      */
@@ -187,7 +181,7 @@
     /** Updates applications data usage. */
     private fun updateApps(usageData: NetworkUsageData) {
         dataUsageListAppsController?.update(
-            carrierId = subscriptionInfoEntity?.carrierId,
+            subId = subId,
             startTime = usageData.startTime,
             endTime = usageData.endTime,
         )
diff --git a/src/com/android/settings/datausage/DataUsageListAppsController.kt b/src/com/android/settings/datausage/DataUsageListAppsController.kt
index 93623f4..d8bddde 100644
--- a/src/com/android/settings/datausage/DataUsageListAppsController.kt
+++ b/src/com/android/settings/datausage/DataUsageListAppsController.kt
@@ -20,6 +20,7 @@
 import android.content.Context
 import android.net.NetworkTemplate
 import android.os.Bundle
+import android.telephony.SubscriptionManager
 import androidx.annotation.OpenForTesting
 import androidx.annotation.VisibleForTesting
 import androidx.lifecycle.LifecycleCoroutineScope
@@ -32,6 +33,7 @@
 import com.android.settings.core.SubSettingLauncher
 import com.android.settings.datausage.lib.AppDataUsageRepository
 import com.android.settings.datausage.lib.NetworkUsageData
+import com.android.settings.network.telephony.requireSubscriptionManager
 import com.android.settingslib.AppItem
 import com.android.settingslib.net.UidDetailProvider
 import kotlinx.coroutines.Dispatchers
@@ -74,8 +76,11 @@
         this.cycleData = cycleData
     }
 
-    fun update(carrierId: Int?, startTime: Long, endTime: Long) = lifecycleScope.launch {
+    fun update(subId: Int, startTime: Long, endTime: Long) = lifecycleScope.launch {
         val apps = withContext(Dispatchers.Default) {
+            val carrierId = if (SubscriptionManager.isValidSubscriptionId(subId)) {
+                mContext.requireSubscriptionManager().getActiveSubscriptionInfo(subId)?.carrierId
+            } else null
             repository.getAppPercent(carrierId, startTime, endTime).map { (appItem, percent) ->
                 AppDataUsagePreference(mContext, appItem, percent, uidDetailProvider).apply {
                     setOnPreferenceClickListener {
diff --git a/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt b/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
index 0055463..6ed9f7c 100644
--- a/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
+++ b/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
@@ -28,6 +28,7 @@
 import android.util.SparseBooleanArray
 import androidx.annotation.VisibleForTesting
 import androidx.core.util.keyIterator
+import androidx.core.util.valueIterator
 import com.android.settings.R
 import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
 import com.android.settingslib.AppItem
@@ -49,33 +50,30 @@
 
     @VisibleForTesting
     fun getAppPercent(carrierId: Int?, buckets: List<Bucket>): List<Pair<AppItem, Int>> {
-        val items = ArrayList<AppItem>()
         val knownItems = SparseArray<AppItem>()
         val profiles = context.userManager.userProfiles
         val userManager : UserManager = context.getSystemService(Context.USER_SERVICE) as UserManager
         val userIdToIsHiddenMap = profiles.associate { profile ->
             profile.identifier to shouldSkipProfile(userManager, profile)
         }
-        bindStats(buckets, userIdToIsHiddenMap, knownItems, items)
+        bindStats(buckets, userIdToIsHiddenMap, knownItems)
         val restrictedUids = context.getSystemService(NetworkPolicyManager::class.java)!!
             .getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND)
         for (uid in restrictedUids) {
             // Only splice in restricted state for current user or managed users
-            if (!profiles.contains(UserHandle.getUserHandleForUid(uid))) {
-                continue
-            }
-            var item = knownItems[uid]
-            if (item == null) {
-                item = AppItem(uid)
-                item.total = 0
-                item.addUid(uid)
-                items.add(item)
-                knownItems.put(item.key, item)
-            }
+            if (UserHandle.getUserHandleForUid(uid) !in profiles) continue
+            val item =
+                knownItems[uid]
+                    ?: AppItem(uid).apply {
+                        category = AppItem.CATEGORY_APP
+                        addUid(uid)
+                        knownItems.put(uid, this)
+                    }
             item.restricted = true
         }
 
-        val filteredItems = filterItems(carrierId, items).sorted()
+        val filteredItems =
+            filterItems(carrierId, knownItems.valueIterator().asSequence().toList()).sorted()
         val largest: Long = filteredItems.maxOfOrNull { it.total } ?: 0
         return filteredItems.map { item ->
             val percentTotal = if (largest > 0) (item.total * 100 / largest).toInt() else 0
@@ -106,7 +104,6 @@
         buckets: List<Bucket>,
         userIdToIsHiddenMap: Map<Int, Boolean>,
         knownItems: SparseArray<AppItem>,
-        items: ArrayList<AppItem>,
     ) {
         for (bucket in buckets) {
             // Decide how to collapse items together
@@ -126,7 +123,6 @@
                             knownItems = knownItems,
                             bucket = bucket,
                             itemCategory = AppItem.CATEGORY_USER,
-                            items = items,
                         )
                     }
                     collapseKey = getAppUid(uid)
@@ -157,7 +153,6 @@
                 knownItems = knownItems,
                 bucket = bucket,
                 itemCategory = category,
-                items = items,
             )
         }
     }
@@ -187,15 +182,13 @@
         knownItems: SparseArray<AppItem>,
         bucket: Bucket,
         itemCategory: Int,
-        items: ArrayList<AppItem>,
     ) {
-        var item = knownItems[collapseKey]
-        if (item == null) {
-            item = AppItem(collapseKey)
-            item.category = itemCategory
-            items.add(item)
-            knownItems.put(item.key, item)
-        }
+        val item =
+            knownItems[collapseKey]
+                ?: AppItem(collapseKey).apply {
+                    category = itemCategory
+                    knownItems.put(collapseKey, this)
+                }
         item.addUid(bucket.uid)
         item.total += bucket.bytes
     }
diff --git a/src/com/android/settings/datausage/lib/BillingCycleRepository.kt b/src/com/android/settings/datausage/lib/BillingCycleRepository.kt
index d324c75..59c853d 100644
--- a/src/com/android/settings/datausage/lib/BillingCycleRepository.kt
+++ b/src/com/android/settings/datausage/lib/BillingCycleRepository.kt
@@ -21,7 +21,7 @@
 import android.os.ServiceManager
 import android.util.Log
 import androidx.annotation.OpenForTesting
-import com.android.settings.network.telephony.TelephonyRepository
+import com.android.settings.network.telephony.MobileDataRepository
 import com.android.settingslib.spaprivileged.framework.common.userManager
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.Flow
@@ -36,13 +36,13 @@
         INetworkManagementService.Stub.asInterface(
             ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE)
         ),
-    private val telephonyRepository: TelephonyRepository = TelephonyRepository(context),
+    private val mobileDataRepository: MobileDataRepository = MobileDataRepository(context),
 ) {
     private val userManager = context.userManager
 
     fun isModifiableFlow(subId: Int): Flow<Boolean> =
-        telephonyRepository.isDataEnabledFlow(subId).map { isDataEnabled ->
-            isDataEnabled && isBandwidthControlEnabled() && userManager.isAdminUser
+        mobileDataRepository.isMobileDataEnabledFlow(subId).map { mobileDataEnabled ->
+            mobileDataEnabled && isBandwidthControlEnabled() && userManager.isAdminUser
         }.conflate().flowOn(Dispatchers.Default)
 
     open fun isBandwidthControlEnabled(): Boolean = try {
diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java
index 434eba9..2942acb 100644
--- a/src/com/android/settings/datetime/AutoTimePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java
@@ -39,6 +39,11 @@
     public AutoTimePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mTimeManager = context.getSystemService(TimeManager.class);
+        // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when
+        // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the
+        // controller is instantiated outside of the context of the real Date & Time settings
+        // screen.
+        mCallback  = (c) -> {};
     }
 
     public void setDateAndTimeCallback(UpdateTimeAndDateCallback callback) {
diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
index 011cc97..3a1f995 100644
--- a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
@@ -40,6 +40,11 @@
     public AutoTimeZonePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mTimeManager = context.getSystemService(TimeManager.class);
+        // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when
+        // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the
+        // controller is instantiated outside of the context of the real Date & Time settings
+        // screen.
+        mCallback  = (c) -> {};
     }
 
     /**
diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
index 22f7509..19805ad 100644
--- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
@@ -43,6 +43,11 @@
     public TimeFormatPreferenceController(Context context, String key) {
         super(context, key);
         mDummyDate = Calendar.getInstance();
+        // This is a no-op implementation of UpdateTimeAndDateCallback to avoid a NPE when
+        // setTimeAndDateCallback() isn't called, e.g. for slices and other cases where the
+        // controller is instantiated outside of the context of the real Date & Time settings
+        // screen.
+        mUpdateTimeAndDateCallback  = (c) -> {};
     }
 
     /**
diff --git a/src/com/android/settings/development/DesktopModePreferenceController.java b/src/com/android/settings/development/DesktopModePreferenceController.java
index c6b2397..3f8ddab 100644
--- a/src/com/android/settings/development/DesktopModePreferenceController.java
+++ b/src/com/android/settings/development/DesktopModePreferenceController.java
@@ -16,33 +16,39 @@
 
 package com.android.settings.development;
 
-import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
+import static android.provider.Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES;
+
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.convertToToggleOverrideWithFallback;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_OFF;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_ON;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_UNSET;
 
 import android.content.Context;
-import android.os.Build;
 import android.provider.Settings;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+import com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride;
+import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
 
+/**
+ * Preference controller to control Desktop mode features
+ */
 public class DesktopModePreferenceController extends DeveloperOptionsPreferenceController
         implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin,
         RebootConfirmationDialogHost {
 
-    private static final String FORCE_DESKTOP_MODE_KEY = "force_desktop_mode_on_external_displays";
+    private static final String OVERRIDE_DESKTOP_MODE_FEATURES_KEY =
+            "override_desktop_mode_features";
 
-    @VisibleForTesting
-    static final int SETTING_VALUE_OFF = 0;
-    @VisibleForTesting
-    static final int SETTING_VALUE_ON = 1;
-
-    @Nullable private final DevelopmentSettingsDashboardFragment mFragment;
+    @Nullable
+    private final DevelopmentSettingsDashboardFragment mFragment;
 
     public DesktopModePreferenceController(
             Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) {
@@ -51,40 +57,47 @@
     }
 
     @Override
-    public String getPreferenceKey() {
-        return FORCE_DESKTOP_MODE_KEY;
+    public boolean isAvailable() {
+        return DesktopModeStatus.canShowDesktopModeDevOption(mContext);
     }
 
     @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
+    public String getPreferenceKey() {
+        return OVERRIDE_DESKTOP_MODE_FEATURES_KEY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
         final boolean isEnabled = (Boolean) newValue;
         Settings.Global.putInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
-                isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
-        if (isEnabled) {
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES,
+                isEnabled ? OVERRIDE_ON.getSetting() : OVERRIDE_OFF.getSetting());
+        if (mFragment != null) {
             RebootConfirmationDialogFragment.show(
-                    mFragment, R.string.reboot_dialog_force_desktop_mode, this);
+                    mFragment, R.string.reboot_dialog_override_desktop_mode, this);
         }
         return true;
     }
 
     @Override
     public void updateState(Preference preference) {
-        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
-        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+        // Use overridden state, if not present, then use default state
+        final int overrideInt = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
+        final ToggleOverride toggleOverride = convertToToggleOverrideWithFallback(overrideInt,
+                OVERRIDE_UNSET);
+        final boolean shouldDevOptionBeEnabled = switch (toggleOverride) {
+            case OVERRIDE_OFF -> false;
+            case OVERRIDE_ON -> true;
+            case OVERRIDE_UNSET -> DesktopModeStatus.shouldDevOptionBeEnabledByDefault();
+        };
+        ((TwoStatePreference) mPreference).setChecked(shouldDevOptionBeEnabled);
     }
 
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
         Settings.Global.putInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
-        ((TwoStatePreference) mPreference).setChecked(false);
-    }
-
-    @VisibleForTesting
-    String getBuildType() {
-        return Build.TYPE;
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
     }
 }
diff --git a/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceController.java b/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceController.java
new file mode 100644
index 0000000..2bce9ad
--- /dev/null
+++ b/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceController.java
@@ -0,0 +1,103 @@
+/*
+ * 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.development;
+
+import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
+
+import android.content.Context;
+import android.os.Build;
+import android.provider.Settings;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+/**
+ * Preference controller to control Desktop mode features on secondary display
+ */
+public class DesktopModeSecondaryDisplayPreferenceController extends
+        DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin,
+        RebootConfirmationDialogHost {
+
+    private static final String ENABLE_DESKTOP_MODE_ON_SECONDARY_DISPLAY =
+            "force_desktop_mode_on_external_displays";
+
+    @VisibleForTesting
+    static final int SETTING_VALUE_OFF = 0;
+    @VisibleForTesting
+    static final int SETTING_VALUE_ON = 1;
+
+    @Nullable
+    private final DevelopmentSettingsDashboardFragment mFragment;
+
+    public DesktopModeSecondaryDisplayPreferenceController(
+            Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) {
+        super(context);
+        mFragment = fragment;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return ENABLE_DESKTOP_MODE_ON_SECONDARY_DISPLAY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean isEnabled = (Boolean) newValue;
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+                isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+        // Update freeform window support on device.
+        // DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT setting enables freeform support on device
+        // where it's not present by default.
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT,
+                isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
+        if (isEnabled && mFragment != null) {
+            RebootConfirmationDialogFragment.show(
+                    mFragment, R.string.reboot_dialog_enable_desktop_mode_on_secondary_display,
+                    this);
+        }
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(mode != SETTING_VALUE_OFF);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        super.onDeveloperOptionsSwitchDisabled();
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
+        ((TwoStatePreference) mPreference).setChecked(false);
+    }
+
+    @VisibleForTesting
+    String getBuildType() {
+        return Build.TYPE;
+    }
+}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 38cb6c7..0df822a 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.development;
 
+import static android.app.Activity.RESULT_OK;
 import static android.provider.Settings.Global.DEVELOPMENT_SETTINGS_ENABLED;
 import static android.service.quicksettings.TileService.ACTION_QS_TILE_PREFERENCES;
 import static android.view.flags.Flags.sensitiveContentAppProtectionApi;
@@ -100,11 +101,13 @@
         NfcRebootDialog.OnNfcRebootDialogConfirmedListener, BluetoothSnoopLogHost {
 
     private static final String TAG = "DevSettingsDashboard";
+    @VisibleForTesting static final int REQUEST_BIOMETRIC_PROMPT = 100;
 
     private final BluetoothA2dpConfigStore mBluetoothA2dpConfigStore =
             new BluetoothA2dpConfigStore();
 
     private boolean mIsAvailable = true;
+    private boolean mIsBiometricsAuthenticated;
     private SettingsMainSwitchBar mSwitchBar;
     private DevelopmentSwitchBarController mSwitchBarController;
     private List<AbstractPreferenceController> mPreferenceControllers = new ArrayList<>();
@@ -216,6 +219,7 @@
     public void onStart() {
         super.onStart();
         final ContentResolver cr = getContext().getContentResolver();
+        mIsBiometricsAuthenticated = false;
         cr.registerContentObserver(mDevelopEnabled, false, mDeveloperSettingsObserver);
 
         // Restore UI state based on whether developer options is enabled
@@ -360,7 +364,25 @@
                 DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(getContext());
         if (isChecked != developmentEnabledState) {
             if (isChecked) {
-                EnableDevelopmentSettingWarningDialog.show(this /* host */);
+                final int userId = getContext().getUserId();
+
+                final Utils.BiometricStatus biometricAuthStatus =
+                        Utils.requestBiometricAuthenticationForMandatoryBiometrics(
+                                getContext(),
+                                mIsBiometricsAuthenticated,
+                                userId);
+                if (biometricAuthStatus == Utils.BiometricStatus.OK) {
+                    mSwitchBar.setChecked(false);
+                    Utils.launchBiometricPromptForMandatoryBiometrics(this,
+                            REQUEST_BIOMETRIC_PROMPT,
+                            userId, false /* hideBackground */);
+                } else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
+                    mSwitchBar.setChecked(false);
+                } else {
+                    //Reset biometrics once enable dialog is shown
+                    mIsBiometricsAuthenticated = false;
+                    EnableDevelopmentSettingWarningDialog.show(this /* host */);
+                }
             } else {
                 final BluetoothA2dpHwOffloadPreferenceController a2dpController =
                         getDevelopmentOptionsController(
@@ -534,6 +556,12 @@
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         boolean handledResult = false;
+        if (requestCode == REQUEST_BIOMETRIC_PROMPT) {
+            if (resultCode == RESULT_OK) {
+                mIsBiometricsAuthenticated = true;
+                mSwitchBar.setChecked(true);
+            }
+        }
         for (AbstractPreferenceController controller : mPreferenceControllers) {
             if (controller instanceof OnActivityResultListener) {
                 // We do not break early because it is possible for multiple controllers to
@@ -715,6 +743,7 @@
         controllers.add(new ShowTapsPreferenceController(context));
         controllers.add(new PointerLocationPreferenceController(context));
         controllers.add(new ShowKeyPressesPreferenceController(context));
+        controllers.add(new TouchpadVisualizerPreferenceController(context));
         controllers.add(new ShowSurfaceUpdatesPreferenceController(context));
         controllers.add(new ShowLayoutBoundsPreferenceController(context));
         controllers.add(new ShowHdrSdrRatioPreferenceController(context));
@@ -749,6 +778,7 @@
         controllers.add(new ResizableActivityPreferenceController(context));
         controllers.add(new FreeformWindowsPreferenceController(context, fragment));
         controllers.add(new DesktopModePreferenceController(context, fragment));
+        controllers.add(new DesktopModeSecondaryDisplayPreferenceController(context, fragment));
         controllers.add(new NonResizableMultiWindowPreferenceController(context));
         controllers.add(new ShortcutManagerThrottlingPreferenceController(context));
         controllers.add(new EnableGnssRawMeasFullTrackingPreferenceController(context));
diff --git a/src/com/android/settings/development/FreeformWindowsPreferenceController.java b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
index 7cf7738..c02ffa7 100644
--- a/src/com/android/settings/development/FreeformWindowsPreferenceController.java
+++ b/src/com/android/settings/development/FreeformWindowsPreferenceController.java
@@ -16,8 +16,9 @@
 
 package com.android.settings.development;
 
+import static android.content.pm.PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT;
+
 import android.content.Context;
-import android.os.Build;
 import android.provider.Settings;
 
 import androidx.annotation.Nullable;
@@ -40,7 +41,8 @@
     @VisibleForTesting
     static final int SETTING_VALUE_ON = 1;
 
-    @Nullable private final DevelopmentSettingsDashboardFragment mFragment;
+    @Nullable
+    private final DevelopmentSettingsDashboardFragment mFragment;
 
     public FreeformWindowsPreferenceController(
             Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) {
@@ -49,6 +51,13 @@
     }
 
     @Override
+    public boolean isAvailable() {
+        // When devices have the system feature FEATURE_FREEFORM_WINDOW_MANAGEMENT, freeform
+        // mode is enabled automatically, and this toggle is not needed.
+        return !mContext.getPackageManager().hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT);
+    }
+
+    @Override
     public String getPreferenceKey() {
         return ENABLE_FREEFORM_SUPPORT_KEY;
     }
@@ -80,9 +89,4 @@
                 Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, SETTING_VALUE_OFF);
         ((TwoStatePreference) mPreference).setChecked(false);
     }
-
-    @VisibleForTesting
-    String getBuildType() {
-        return Build.TYPE;
-    }
 }
diff --git a/src/com/android/settings/development/OWNERS b/src/com/android/settings/development/OWNERS
index 081c44f..d780615 100644
--- a/src/com/android/settings/development/OWNERS
+++ b/src/com/android/settings/development/OWNERS
@@ -16,3 +16,6 @@
 # ADB
 per-file Adb*=set noparent
 per-file Adb*=file:platform/packages/modules/adb:/OWNERS
+
+#TouchpadVisualizerPreferenceController
+per-file TouchpadVisualizerPreferenceController.java=file:platform/frameworks/base:/INPUT_OWNERS
diff --git a/src/com/android/settings/development/RebootConfirmationDialogFragment.java b/src/com/android/settings/development/RebootConfirmationDialogFragment.java
index 45c3697..44bef57 100644
--- a/src/com/android/settings/development/RebootConfirmationDialogFragment.java
+++ b/src/com/android/settings/development/RebootConfirmationDialogFragment.java
@@ -21,6 +21,7 @@
 import android.content.DialogInterface;
 import android.os.Bundle;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
@@ -57,7 +58,8 @@
         }
     }
 
-    private RebootConfirmationDialogFragment(
+    @VisibleForTesting
+    RebootConfirmationDialogFragment(
             int messageId, int cancelButtonId, RebootConfirmationDialogHost host) {
         mMessageId = messageId;
         mCancelButtonId = cancelButtonId;
@@ -92,4 +94,11 @@
         super.onDismiss(dialog);
         mHost.onRebootDialogDismissed();
     }
+
+    @Override
+    public void onPause() {
+        dismiss();
+
+        super.onPause();
+    }
 }
diff --git a/src/com/android/settings/development/TouchpadVisualizerPreferenceController.java b/src/com/android/settings/development/TouchpadVisualizerPreferenceController.java
new file mode 100644
index 0000000..04ae92b
--- /dev/null
+++ b/src/com/android/settings/development/TouchpadVisualizerPreferenceController.java
@@ -0,0 +1,73 @@
+/*
+ * 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.hardware.input.InputSettings;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+/** PreferenceController that controls the "Show touchpad input" developer option. */
+public class TouchpadVisualizerPreferenceController extends
+        DeveloperOptionsPreferenceController implements
+        Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+    private static final String TOUCHPAD_VISUALIZER_KEY = "touchpad_visualizer";
+
+    public TouchpadVisualizerPreferenceController(@NonNull Context context) {
+        super(context);
+    }
+
+    @Override
+    public @NonNull String getPreferenceKey() {
+        return TOUCHPAD_VISUALIZER_KEY;
+    }
+
+    @Override
+    public boolean isAvailable(){
+        return InputSettings.isTouchpadVisualizerFeatureFlagEnabled();
+    }
+
+    @Override
+    public boolean onPreferenceChange(@NonNull Preference preference, @Nullable Object newValue) {
+        final boolean isEnabled = newValue != null ? (Boolean) newValue : false;
+        InputSettings.setTouchpadVisualizer(mContext, isEnabled);
+
+        return true;
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        boolean touchpadVisualizerEnabled = InputSettings.useTouchpadVisualizer(mContext);
+        ((SwitchPreference) mPreference).setChecked(touchpadVisualizerEnabled);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        super.onDeveloperOptionsSwitchDisabled();
+        InputSettings.setTouchpadVisualizer(mContext, false);
+
+        ((SwitchPreference) mPreference).setChecked(false);
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java b/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java
index 23d4cc6..9f7512c 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceController.java
@@ -30,85 +30,184 @@
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
+/**
+ * This preference represents the default log level for the Bluetooth stack
+ *
+ * The default log level is captured and held in an Android Log Framework log tag, using "bluetooth"
+ * as the tag name. The Log framework does not provide methods to directly write a log tag value,
+ * but instead leverages special system properties to hold the value of a log tag.
+ *
+ * This preferences aims to keep the selection in sync with the currently set log tag value. It
+ * writes directly to the system properties that hold the level associated with the bluetooth log
+ * tag. It leverages the Log.isLoggable("bluetooth", level) function to discern the current value.
+ * The default level is INFO.
+ *
+ * This value is read once at start of the Bluetooth stack. To use a new value once setting it, be
+ * sure to turn Bluetooth off and back on again.
+ */
 public class BluetoothStackLogPreferenceController extends DeveloperOptionsPreferenceController
         implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+    private static final String TAG = BluetoothStackLogPreferenceController.class.getSimpleName();
+
+    private static final String PREFERENCE_KEY = "bt_stack_log_level";
 
     /* Ensure that the indexes match with bt_stack_log_values and bt_stack_log_entries ordering */
-    private static final String PREFERENCE_KEY = "bt_stack_log_level";
-    @VisibleForTesting static final int BTSTACK_LOG_MODE_VERBOSE_INDEX = 0;
-    @VisibleForTesting static final int BTSTACK_LOG_MODE_DEBUG_INDEX = 1;
-    @VisibleForTesting static final int BTSTACK_LOG_MODE_INFO_INDEX = 2;
-    @VisibleForTesting static final int BTSTACK_LOG_MODE_WARN_INDEX = 3;
-    @VisibleForTesting static final int BTSTACK_LOG_MODE_ERROR_INDEX = 4;
+    private static final int BT_LOG_LEVEL_VERBOSE_INDEX = 0;
+    private static final int BT_LOG_LEVEL_DEBUG_INDEX = 1;
+    private static final int BT_LOG_LEVEL_INFO_INDEX = 2;
+    private static final int BT_LOG_LEVEL_WARN_INDEX = 3;
+    private static final int BT_LOG_LEVEL_ERROR_INDEX = 4;
+    @VisibleForTesting static final int BT_LOG_LEVEL_DEFAULT_INDEX = BT_LOG_LEVEL_INFO_INDEX;
 
-    @VisibleForTesting
-    static final String BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST = "persist.log.tag.bluetooth";
-    static final String BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY = "log.tag.bluetooth";
-    static final String BLUETOOTH_STRING_NAME = "bluetooth";
-    static final int DEFAULT_MODE = BTSTACK_LOG_MODE_INFO_INDEX;
+    private static final String BT_LOG_TAG = "bluetooth";
+    @VisibleForTesting static final String BT_LOG_LEVEL_PROP_PERSIST = "persist.log.tag.bluetooth";
+    @VisibleForTesting static final String BT_LOG_LEVEL_PROP = "log.tag.bluetooth";
 
-    private final String[] mListValues;
-    private final String[] mListEntries;
+    // Values represents the untranslatable log level strings that should be used for writing to
+    // system properties. Entries represents the translatable log level strings that should be used
+    // in the UI to communicate to the user their options for this preference.
+    private String[] mListValues;
+    private String[] mListEntries;
 
-
+    /**
+     * Create a BluetoothStackLogPreferenceController instance
+     */
     public BluetoothStackLogPreferenceController(@NonNull Context context) {
         super(context);
         mListValues = context.getResources().getStringArray(R.array.bt_stack_log_level_values);
         mListEntries = context.getResources().getStringArray(R.array.bt_stack_log_level_entries);
     }
 
-    /** returns default log level index of INFO */
-    public int getDefaultModeIndex() {
-        return DEFAULT_MODE;
-    }
-
+    /**
+     * Returns the preference key associated with this preference
+     *
+     * Note that this key is _usually_ a system property in and of itself, which is expected to hold
+     * the value of the preference. In this case though, this key *does not* hold the preference. It
+     * is only really used to tie this controller to the list preference defined in the XML file.
+     *
+     * @return the preference key associated with this preference
+     */
     @Override
     @Nullable
     public String getPreferenceKey() {
         return PREFERENCE_KEY;
     }
 
+    /**
+     * Update the state of the preference based on what the user has selected
+     *
+     * This function is invoked when the user has selected a new value for this preference. The new
+     * value is the entry value at the index of the list the user has selected. This value will be
+     * one of the values from the array returned in getEntryValues(). Specifically, this array is
+     * set using R.array.bt_stack_log_level_values
+     *
+     * @param preference - the preference object to set the value of
+     * @param newValue - the value the user has selected, as an Object
+     * @return True when updated successfully
+     */
     @Override
     public boolean onPreferenceChange(@NonNull Preference preference, @NonNull Object newValue) {
-        SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST, newValue.toString());
-        SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY, newValue.toString());
-        updateState(mPreference);
+        Log.v(TAG, "onPreferenceChange(pref=" + preference + "value=" + newValue.toString() + ")");
+        setBluetoothLogTag(newValue.toString());
+        setBluetoothLogLevelIndex(getBluetoothLogLevelIndex());
         return true;
     }
 
+    /**
+     * Refresh the state of this preference based on the state stored on the system
+     *
+     * Read the Bluetooth stack log level from the underlying system property/log tag, and map that
+     * level to the proper index in the values and entries array. Use those strings to set the value
+     * and summary of the preference.
+     *
+     * @param preference - the preference object to refresh the state of
+     */
     @Override
     public void updateState(@NonNull Preference preference) {
-        final ListPreference listPreference = (ListPreference) preference;
-        int index = getBluetoothLogLevelIndex();
-        listPreference.setValue(mListValues[index]);
-        listPreference.setSummary(mListEntries[index]);
+        Log.v(TAG, "updateState(pref=" + preference + "): refresh preference state");
+        setBluetoothLogLevelIndex(getBluetoothLogLevelIndex());
     }
 
     /**
-     *  Returns the current log level from Log.isLoggable().
+     * Notify this developer options preference of a change to developer options visibility
+     *
+     * We developer options are closed, we should clear out the value of this developer option
+     * preference and revert it back to the default state of INFO.
      */
-    @VisibleForTesting
-    public int getBluetoothLogLevelIndex() {
-        if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.VERBOSE)) {
-            return BTSTACK_LOG_MODE_VERBOSE_INDEX;
-        } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.DEBUG)) {
-            return BTSTACK_LOG_MODE_DEBUG_INDEX;
-        } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.INFO)) {
-            return BTSTACK_LOG_MODE_INFO_INDEX;
-        } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.WARN)) {
-            return BTSTACK_LOG_MODE_WARN_INDEX;
-        } else if (Log.isLoggable(BLUETOOTH_STRING_NAME, Log.ERROR)) {
-            return BTSTACK_LOG_MODE_ERROR_INDEX;
-        }
-        return BTSTACK_LOG_MODE_INFO_INDEX;
-    }
-
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
-        SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST, null);
-        SystemProperties.set(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY, null);
-        ((ListPreference) mPreference).setValue(mListValues[getDefaultModeIndex()]);
-        ((ListPreference) mPreference).setSummary(mListEntries[getDefaultModeIndex()]);
+        Log.v(TAG, "onDeveloperOptionsSwitchDisabled(): Revert stack log to default");
+        setBluetoothLogTag(null);
+        setBluetoothLogLevelIndex(BT_LOG_LEVEL_DEFAULT_INDEX);
+    }
+
+    /**
+     * Set the system property values used by the Log framework to read the "bluetooth" log tag
+     *
+     * @param logLevel - the log level to set the Bluetooth stack minimum log level to
+     */
+    private void setBluetoothLogTag(@Nullable String logLevel) {
+        Log.i(TAG, "setBluetoothLogTag(logLevel=" + logLevel + "): Set properties for log tag");
+        SystemProperties.set(BT_LOG_LEVEL_PROP_PERSIST, logLevel);
+        SystemProperties.set(BT_LOG_LEVEL_PROP, logLevel);
+    }
+
+    /**
+     * Get the entry and value index corresponding to the current Bluetooth stack log level
+     *
+     * Since this preference uses an actual log tag and not a specific/private system property, we
+     * can read the value using the Log.isLoggable() function with our "bluetooth" log tag that
+     * represents the log level of the Bluetooth stack. This is safer than trying to replacate the
+     * logic used in the Log framework around the various persist, ro, and blank variants of the tag
+     *
+     * If no value is present, INFO is used.
+     *
+     * @return the entry/value index corresponding to the current log level of the tag "bluetooth"
+     */
+    @VisibleForTesting
+    public int getBluetoothLogLevelIndex() {
+        int level = BT_LOG_LEVEL_DEFAULT_INDEX;
+        if (Log.isLoggable(BT_LOG_TAG, Log.VERBOSE)) {
+            level = BT_LOG_LEVEL_VERBOSE_INDEX;
+        } else if (Log.isLoggable(BT_LOG_TAG, Log.DEBUG)) {
+            level = BT_LOG_LEVEL_DEBUG_INDEX;
+        } else if (Log.isLoggable(BT_LOG_TAG, Log.INFO)) {
+            level = BT_LOG_LEVEL_INFO_INDEX;
+        } else if (Log.isLoggable(BT_LOG_TAG, Log.WARN)) {
+            level = BT_LOG_LEVEL_WARN_INDEX;
+        } else if (Log.isLoggable(BT_LOG_TAG, Log.ERROR)) {
+            level = BT_LOG_LEVEL_ERROR_INDEX;
+        }
+        Log.v(TAG, "getBluetoothLogLevelIndex() -> " + level);
+        return level;
+    }
+
+    /**
+     * Set the current Bluetooth stack log level displayed in the list for this preference
+     *
+     * @param index - the index representing the log level choice of this preference
+     */
+    private void setBluetoothLogLevelIndex(int index) {
+        if (index < BT_LOG_LEVEL_VERBOSE_INDEX || index > BT_LOG_LEVEL_ERROR_INDEX) {
+            Log.e(TAG, "setBluetoothLogLevelIndex(index=" + index + "): Log level invalid");
+            return;
+        }
+
+        String value = mListValues[index];
+        String entryValue = mListEntries[index];
+
+        ListPreference preference = ((ListPreference) mPreference);
+        if (preference == null) {
+            Log.e(TAG, "setBluetoothLogLevelIndex(index=" + index + "): mPreference is null");
+            return;
+        }
+
+        preference.setValue(value);
+        preference.setSummary(entryValue);
+
+        Log.i(TAG, "setBluetoothLogLevelIndex(index=" + index
+                + "): Updated Bluetooth stack log level to value='" + value + "', entryValue='"
+                + entryValue + "'");
     }
 }
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index 6fe3ca4..a9f94b4 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -55,6 +55,7 @@
 
     static final int TAPS_TO_BE_A_DEVELOPER = 7;
     static final int REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF = 100;
+    static final int REQUEST_IDENTITY_CHECK_FOR_DEV_PREF = 101;
 
     private Activity mActivity;
     private InstrumentedPreferenceFragment mFragment;
@@ -217,10 +218,26 @@
      * @return if activity result is handled.
      */
     public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
-        if (requestCode != REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF) {
+        if (requestCode != REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF
+                && requestCode != REQUEST_IDENTITY_CHECK_FOR_DEV_PREF) {
             return false;
         }
-        if (resultCode == Activity.RESULT_OK) {
+        if (requestCode == REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF
+                && resultCode == Activity.RESULT_OK) {
+            final int userId = mContext.getUserId();
+            final Utils.BiometricStatus biometricAuthStatus =
+                    Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
+                            false /* biometricsAuthenticationRequested */,
+                            userId);
+            if (biometricAuthStatus == Utils.BiometricStatus.OK) {
+                Utils.launchBiometricPromptForMandatoryBiometrics(mFragment,
+                        REQUEST_IDENTITY_CHECK_FOR_DEV_PREF,
+                        userId, false /* hideBackground */);
+            } else if (biometricAuthStatus == Utils.BiometricStatus.NOT_ACTIVE) {
+                enableDevelopmentSettings();
+            }
+        } else if (requestCode == REQUEST_IDENTITY_CHECK_FOR_DEV_PREF
+                && resultCode == Activity.RESULT_OK) {
             enableDevelopmentSettings();
         }
         mProcessingLastDevHit = false;
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepository.kt b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepository.kt
index 5ed6993..760f8b6 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepository.kt
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepository.kt
@@ -23,10 +23,10 @@
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.repeatOnLifecycle
+import com.android.settings.network.telephony.CarrierConfigRepository
 import com.android.settings.network.telephony.SimSlotRepository
 import com.android.settings.network.telephony.ims.ImsMmTelRepository
 import com.android.settings.network.telephony.ims.ImsMmTelRepositoryImpl
-import com.android.settings.network.telephony.safeGetConfig
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.Flow
@@ -39,7 +39,9 @@
 import kotlinx.coroutines.launch
 
 @OptIn(ExperimentalCoroutinesApi::class)
-class SimStatusDialogRepository @JvmOverloads constructor(
+class SimStatusDialogRepository
+@JvmOverloads
+constructor(
     private val context: Context,
     private val simSlotRepository: SimSlotRepository = SimSlotRepository(context),
     private val signalStrengthRepository: SignalStrengthRepository =
@@ -48,7 +50,7 @@
         ImsMmTelRepositoryImpl(context, subId)
     },
 ) {
-    private val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)!!
+    private val carrierConfigRepository = CarrierConfigRepository(context)
 
     data class SimStatusDialogInfo(
         val signalStrength: String? = null,
@@ -73,7 +75,8 @@
     }
 
     private fun simStatusDialogInfoBySlotFlow(simSlotIndex: Int): Flow<SimStatusDialogInfo> =
-        simSlotRepository.subIdInSimSlotFlow(simSlotIndex)
+        simSlotRepository
+            .subIdInSimSlotFlow(simSlotIndex)
             .flatMapLatest { subId ->
                 if (SubscriptionManager.isValidSubscriptionId(subId)) {
                     simStatusDialogInfoFlow(subId)
@@ -99,22 +102,16 @@
         }
 
     private fun showUpFlow(subId: Int) = flow {
-        val config = carrierConfigManager.safeGetConfig(
-            keys = listOf(
-                CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL,
-                CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL,
-            ),
-            subId = subId,
-        )
-        val visibility = SimStatusDialogVisibility(
-            signalStrengthShowUp = config.getBoolean(
-                CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL,
-                true,  // by default we show the signal strength in sim status
-            ),
-            imsRegisteredShowUp = config.getBoolean(
-                CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL
-            ),
-        )
+        val visibility =
+            carrierConfigRepository.transformConfig(subId) {
+                SimStatusDialogVisibility(
+                    signalStrengthShowUp =
+                        getBoolean(
+                            CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL),
+                    imsRegisteredShowUp =
+                        getBoolean(CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL),
+                )
+            }
         emit(visibility)
     }
 }
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 005c073..e922f70 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -269,20 +269,26 @@
     }
 
     @Override
+    protected boolean shouldSkipForInitialSUW() {
+        return true;
+    }
+
+    @Override
     public void onPause() {
         super.onPause();
 
         final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode();
+        final Context applicationContext = requireContext().getApplicationContext();
         mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode);
         logMetricCategory(currentOptimizeMode);
         mExecutor.execute(
                 () -> {
                     if (currentOptimizeMode != mOptimizationMode) {
                         AppOptModeSharedPreferencesUtils.deleteAppOptimizationModeEventByUid(
-                                getContext(), mBatteryOptimizeUtils.getUid());
+                                applicationContext, mBatteryOptimizeUtils.getUid());
                     }
                     BatteryOptimizeLogUtils.writeLog(
-                            getContext().getApplicationContext(),
+                            applicationContext,
                             Action.LEAVE,
                             BatteryOptimizeLogUtils.getPackageNameWithUserId(
                                     mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
index 7d15858..891a997 100644
--- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -81,7 +81,10 @@
             return mContext.getString(
                     com.android.settingslib.R.string.battery_info_status_not_charging);
         }
-        if (BatteryUtils.isBatteryDefenderOn(info)) {
+        if (BatteryUtils.isBatteryDefenderOn(info)
+                || FeatureFactory.getFeatureFactory()
+                .getPowerUsageFeatureProvider()
+                .isExtraDefend()) {
             return mContext.getString(
                     com.android.settingslib.R.string.battery_info_status_charging_on_hold);
         }
@@ -89,8 +92,7 @@
                 && mBatterySettingsFeatureProvider.isChargingOptimizationMode(mContext)) {
             return info.remainingLabel;
         }
-        if (info.remainingLabel == null
-                || info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
+        if (info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
             return info.statusLabel;
         }
         if (info.pluggedStatus == BatteryManager.BATTERY_PLUGGED_WIRELESS) {
@@ -103,6 +105,9 @@
                 return wirelessChargingLabel;
             }
         }
+        if (info.remainingLabel == null) {
+            return info.statusLabel;
+        }
         if (info.statusLabel != null && !info.discharging) {
             // Charging state
             if (com.android.settingslib.fuelgauge.BatteryUtils.isChargingStringV2Enabled()) {
diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index b54801a..fa30253 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -53,7 +53,8 @@
     public int batteryStatus;
     public int pluggedStatus;
     public boolean discharging = true;
-    public boolean isBatteryDefender;
+    public boolean isBatteryDefender = false;
+    public boolean isLongLife = false;
     public boolean isFastCharging;
     public long remainingTimeUs = 0;
     public long averageTimeToDischarge = EstimateKt.AVERAGE_TIME_TO_DISCHARGE_UNKNOWN;
@@ -306,12 +307,13 @@
         info.pluggedStatus = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0);
         info.mCharging = info.pluggedStatus != 0;
         info.averageTimeToDischarge = estimate.getAverageDischargeTime();
-        info.isBatteryDefender =
-                batteryBroadcast.getIntExtra(
-                                BatteryManager.EXTRA_CHARGING_STATUS,
-                                BatteryManager.CHARGING_POLICY_DEFAULT)
-                        == BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE;
 
+        final int chargingPolicy =
+                batteryBroadcast.getIntExtra(
+                        BatteryManager.EXTRA_CHARGING_STATUS,
+                        BatteryManager.CHARGING_POLICY_DEFAULT);
+
+        info.isLongLife = chargingPolicy == BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE;
         info.statusLabel = Utils.getBatteryStatus(context, batteryBroadcast, isCompactStatus);
         info.batteryStatus =
                 batteryBroadcast.getIntExtra(
@@ -319,13 +321,21 @@
         info.isFastCharging =
                 BatteryStatus.getChargingSpeed(context, batteryBroadcast)
                         == BatteryStatus.CHARGING_FAST;
-        if (info.isBatteryDefender) {
+        if (info.isLongLife) {
             info.isBatteryDefender =
                     FeatureFactory.getFeatureFactory()
                             .getPowerUsageFeatureProvider()
                             .isBatteryDefend(info);
         }
-        if (!info.mCharging) {
+        Log.d(
+                TAG,
+                "chargingPolicy = "
+                        + chargingPolicy
+                        + ", pluggedStatus = "
+                        + info.pluggedStatus
+                        + ", batteryStatus = "
+                        + info.batteryStatus);
+        if (!isPluggedIn(context, info.mCharging, chargingPolicy)) {
             updateBatteryInfoDischarging(context, shortString, estimate, info);
         } else {
             updateBatteryInfoCharging(
@@ -555,6 +565,14 @@
         }
     }
 
+    private static boolean isPluggedIn(Context context, boolean isCharging, int chargingPolicy) {
+        return isCharging
+                || (chargingPolicy == BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE
+                        && FeatureFactory.getFeatureFactory()
+                                .getBatterySettingsFeatureProvider()
+                                .isChargingOptimizationMode(context));
+    }
+
     public interface BatteryDataParser {
         void onParsingStarted(long startTime, long endTime);
 
diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java
index 9e08664..7cb5733 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -600,12 +600,12 @@
                             context.getContentResolver(), SETTINGS_GLOBAL_DOCK_DEFENDER_BYPASS, 0)
                     == 1) {
                 return DockDefenderMode.TEMPORARILY_BYPASSED;
-            } else if (batteryInfo.isBatteryDefender
+            } else if (batteryInfo.isLongLife
                     && FeatureFactory.getFeatureFactory()
                             .getPowerUsageFeatureProvider()
                             .isExtraDefend()) {
                 return DockDefenderMode.ACTIVE;
-            } else if (!batteryInfo.isBatteryDefender) {
+            } else if (!batteryInfo.isLongLife) {
                 return DockDefenderMode.FUTURE_BYPASS;
             }
         }
diff --git a/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java b/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
index 2d2c838..e59cc4ad 100644
--- a/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
@@ -117,17 +117,17 @@
         super.onPause();
 
         final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode();
+        final Context applicationContext = requireContext().getApplicationContext();
         mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode);
         logMetricCategory(currentOptimizeMode);
-
         mExecutor.execute(
                 () -> {
                     if (currentOptimizeMode != mOptimizationMode) {
                         AppOptModeSharedPreferencesUtils.deleteAppOptimizationModeEventByUid(
-                                getContext(), mBatteryOptimizeUtils.getUid());
+                                applicationContext, mBatteryOptimizeUtils.getUid());
                     }
                     BatteryOptimizeLogUtils.writeLog(
-                            getContext().getApplicationContext(),
+                            applicationContext,
                             Action.LEAVE,
                             BatteryOptimizeLogUtils.getPackageNameWithUserId(
                                     mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index 570a863..e441b85 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -44,6 +44,12 @@
     /** Check whether the battery tips card is enabled in the battery usage page */
     boolean isBatteryTipsEnabled();
 
+    /** Check whether overwrite the app optimization mode to restricted mode is enabled */
+    boolean isRestrictedModeOverwriteEnabled();
+
+    /** Check whether force expire the app optimization mode. */
+    boolean isForceExpireAppOptimizationModeEnabled();
+
     /** Check whether to log the optimization mode of app entry in period job */
     boolean isAppOptimizationModeLogged();
 
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 1226267..bdb236a 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -89,6 +89,16 @@
     }
 
     @Override
+    public boolean isRestrictedModeOverwriteEnabled() {
+        return false;
+    }
+
+    @Override
+    public boolean isForceExpireAppOptimizationModeEnabled() {
+        return false;
+    }
+
+    @Override
     public boolean isAppOptimizationModeLogged() {
         return false;
     }
@@ -243,7 +253,7 @@
 
     @Override
     public boolean isBatteryDefend(BatteryInfo info) {
-        return info.isBatteryDefender && !isExtraDefend();
+        return info.isLongLife && !isExtraDefend();
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java b/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java
index 639b3c7..6ff2665 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetector.java
@@ -21,7 +21,6 @@
 import com.android.settings.fuelgauge.BatteryInfo;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryDefenderTip;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
-import com.android.settings.overlay.FeatureFactory;
 
 /** Detect whether the battery is overheated */
 public class BatteryDefenderDetector implements BatteryTipDetector {
@@ -35,12 +34,10 @@
 
     @Override
     public BatteryTip detect() {
-        final boolean isBasicBatteryDefend =
-                FeatureFactory.getFeatureFactory()
-                        .getPowerUsageFeatureProvider()
-                        .isBatteryDefend(mBatteryInfo);
         final int state =
-                isBasicBatteryDefend ? BatteryTip.StateType.NEW : BatteryTip.StateType.INVISIBLE;
+                mBatteryInfo.isBatteryDefender
+                        ? BatteryTip.StateType.NEW
+                        : BatteryTip.StateType.INVISIBLE;
         final boolean isPluggedIn = mBatteryInfo.pluggedStatus != 0;
         return new BatteryDefenderTip(state, isPluggedIn);
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java b/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
index be5de06..c62728b 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/AnomalyEventWrapper.java
@@ -28,10 +28,11 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.widget.TipCardPreference;
 
 import java.util.function.Function;
 
-final class AnomalyEventWrapper {
+class AnomalyEventWrapper {
     private static final String TAG = "AnomalyEventWrapper";
 
     private final Context mContext;
@@ -235,16 +236,16 @@
         return mHighlightSlotPair;
     }
 
-    boolean updateTipsCardPreference(BatteryTipsCardPreference preference) {
+    boolean updateTipsCardPreference(TipCardPreference preference) {
         final String titleString = getTitleString();
         if (TextUtils.isEmpty(titleString)) {
             return false;
         }
         preference.setTitle(titleString);
-        preference.setIconResourceId(getIconResId());
-        preference.setButtonColorResourceId(getColorResId());
-        preference.setMainButtonLabel(getMainBtnString());
-        preference.setDismissButtonLabel(getDismissBtnString());
+        preference.setIconResId(getIconResId());
+        preference.setTintColorResId(getColorResId());
+        preference.setPrimaryButtonText(getDismissBtnString());
+        preference.setSecondaryButtonText(getMainBtnString());
         return true;
     }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt b/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt
index 1111bd4..508c4df 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt
+++ b/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtils.kt
@@ -25,6 +25,7 @@
 import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action
 import com.android.settings.fuelgauge.BatteryOptimizeUtils
 import com.android.settings.fuelgauge.BatteryUtils
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 
 /** A util to store and update app optimization mode expiration event data. */
 object AppOptModeSharedPreferencesUtils {
@@ -74,10 +75,13 @@
     @JvmStatic
     fun resetExpiredAppOptModeBeforeTimestamp(context: Context, queryTimestampMs: Long) =
         synchronized(appOptimizationModeLock) {
+            val forceExpireEnabled =
+                featureFactory.powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled
             val eventsMap = getAppOptModeEventsMap(context)
             val expirationUids = ArrayList<Int>(eventsMap.size)
             for ((uid, event) in eventsMap) {
-                if (event.expirationTime > queryTimestampMs) {
+                // Not reset the mode if forceExpireEnabled is false and not expired.
+                if (!forceExpireEnabled && event.expirationTime > queryTimestampMs) {
                     continue
                 }
                 updateBatteryOptimizationMode(
@@ -108,12 +112,22 @@
         getBatteryOptimizeUtils: (Int, String) -> BatteryOptimizeUtils,
     ) =
         synchronized(appOptimizationModeLock) {
+            val restrictedModeOverwriteEnabled =
+                featureFactory.powerUsageFeatureProvider.isRestrictedModeOverwriteEnabled
             val eventsMap = getAppOptModeEventsMap(context)
             val expirationEvents: MutableMap<Int, AppOptimizationModeEvent> = ArrayMap()
             for (i in uids.indices) {
                 val uid = uids[i]
                 val packageName = packageNames[i]
                 val optimizationMode = optimizationModes[i]
+                if (
+                    !restrictedModeOverwriteEnabled &&
+                        optimizationMode == BatteryOptimizeUtils.MODE_RESTRICTED
+                ) {
+                    // Unable to set restricted mode due to flag protection.
+                    Log.w(TAG, "setOptimizationMode($packageName) into restricted ignored")
+                    continue
+                }
                 val originalOptMode: Int =
                     updateBatteryOptimizationMode(
                         context,
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
index 5b05e34..4d1545a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
@@ -422,7 +422,8 @@
             return;
         }
         final boolean isValidPackage =
-                BatteryUtils.getInstance(mContext).getPackageUid(getPackageName())
+                BatteryUtils.getInstance(mContext)
+                                .getPackageUidAsUser(getPackageName(), (int) mUserId)
                         != BatteryUtils.UID_NULL;
         if (!isValidPackage) {
             mValidForRestriction = false;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
index ddb8ecb..fef3056 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
@@ -22,7 +22,6 @@
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.UserInfo;
 import android.graphics.drawable.Drawable;
 import android.os.BatteryConsumer;
@@ -176,18 +175,7 @@
                 }
             }
             if (mDefaultPackageName != null) {
-                PackageManager pm = context.getPackageManager();
-                try {
-                    ApplicationInfo appInfo =
-                            pm.getApplicationInfo(mDefaultPackageName, 0 /* no flags */);
-                    mName = pm.getApplicationLabel(appInfo).toString();
-                } catch (NameNotFoundException e) {
-                    Log.d(
-                            TAG,
-                            "PackageManager failed to retrieve ApplicationInfo for: "
-                                    + mDefaultPackageName);
-                    mName = mDefaultPackageName;
-                }
+                mName = mDefaultPackageName;
             }
             mTimeInForegroundMs =
                     uidBatteryConsumer.getTimeInProcessStateMs(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
index 6b35fb9..2084b66 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
@@ -17,38 +17,47 @@
 package com.android.settings.fuelgauge.batteryusage;
 
 import android.content.Context;
-import android.util.ArrayMap;
+import android.util.SparseArray;
 
 import androidx.annotation.VisibleForTesting;
+import androidx.core.util.Pair;
 
 import com.android.settings.fuelgauge.BatteryOptimizeUtils;
 import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
 
-import java.util.Map;
-
 /** A cache to log battery optimization mode of an app */
 final class BatteryOptimizationModeCache {
     private static final String TAG = "BatteryOptimizationModeCache";
 
-    @VisibleForTesting final Map<Integer, BatteryOptimizationMode> mBatteryOptimizeModeCacheMap;
+    /* Stores the battery optimization mode and mutable state for each UID. */
+    @VisibleForTesting
+    final SparseArray<Pair<BatteryOptimizationMode, Boolean>> mBatteryOptimizeModeCache;
 
     private final Context mContext;
 
     BatteryOptimizationModeCache(final Context context) {
         mContext = context;
-        mBatteryOptimizeModeCacheMap = new ArrayMap<>();
+        mBatteryOptimizeModeCache = new SparseArray<>();
         PowerAllowlistBackend.getInstance(mContext).refreshList();
     }
 
-    BatteryOptimizationMode getBatteryOptimizeMode(final int uid, final String packageName) {
-        if (!mBatteryOptimizeModeCacheMap.containsKey(uid)) {
+    Pair<BatteryOptimizationMode, Boolean> getBatteryOptimizeModeInfo(
+            final int uid, final String packageName) {
+        if (!mBatteryOptimizeModeCache.contains(uid)) {
             final BatteryOptimizeUtils batteryOptimizeUtils =
                     new BatteryOptimizeUtils(mContext, uid, packageName);
-            mBatteryOptimizeModeCacheMap.put(
+            mBatteryOptimizeModeCache.put(
                     uid,
-                    BatteryOptimizationMode.forNumber(
-                            batteryOptimizeUtils.getAppOptimizationMode(/* refreshList= */ false)));
+                    Pair.create(
+                            BatteryOptimizationMode.forNumber(
+                                    batteryOptimizeUtils.getAppOptimizationMode(
+                                            /* refreshList= */ false)),
+                            batteryOptimizeUtils.isOptimizeModeMutable()));
         }
-        return mBatteryOptimizeModeCacheMap.get(uid);
+        final Pair<BatteryOptimizationMode, Boolean> batteryOptimizeModeInfo =
+                mBatteryOptimizeModeCache.get(uid);
+        return batteryOptimizeModeInfo != null
+                ? batteryOptimizeModeInfo
+                : new Pair<>(BatteryOptimizationMode.MODE_UNKNOWN, false);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
deleted file mode 100644
index bbd1099..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.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.batteryusage;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.settings.R;
-
-import com.google.android.material.button.MaterialButton;
-
-/** A preference for displaying the battery tips card view. */
-public class BatteryTipsCardPreference extends Preference implements View.OnClickListener {
-
-    private static final String TAG = "BatteryTipsCardPreference";
-
-    interface OnConfirmListener {
-        void onConfirm();
-    }
-
-    interface OnRejectListener {
-        void onReject();
-    }
-
-    private OnConfirmListener mOnConfirmListener;
-    private OnRejectListener mOnRejectListener;
-    private int mIconResourceId = 0;
-    private int mButtonColorResourceId = 0;
-
-    @VisibleForTesting CharSequence mMainButtonLabel;
-    @VisibleForTesting CharSequence mDismissButtonLabel;
-
-    public BatteryTipsCardPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        setLayoutResource(R.layout.battery_tips_card);
-        setViewId(R.id.battery_tips_card);
-        setSelectable(false);
-    }
-
-    public void setOnConfirmListener(OnConfirmListener listener) {
-        mOnConfirmListener = listener;
-    }
-
-    public void setOnRejectListener(OnRejectListener listener) {
-        mOnRejectListener = listener;
-    }
-
-    /**
-     * Sets the icon in tips card.
-     */
-    public void setIconResourceId(int resourceId) {
-        if (mIconResourceId != resourceId) {
-            mIconResourceId = resourceId;
-            notifyChanged();
-        }
-    }
-
-    /**
-     * Sets the background color for main button and the text color for dismiss button.
-     */
-    public void setButtonColorResourceId(int resourceId) {
-        if (mButtonColorResourceId != resourceId) {
-            mButtonColorResourceId = resourceId;
-            notifyChanged();
-        }
-    }
-
-    /**
-     * Sets the label of main button in tips card.
-     */
-    public void setMainButtonLabel(CharSequence label) {
-        if (!TextUtils.equals(mMainButtonLabel, label)) {
-            mMainButtonLabel = label;
-            notifyChanged();
-        }
-    }
-
-    /**
-     * Sets the label of dismiss button in tips card.
-     */
-    public void setDismissButtonLabel(CharSequence label) {
-        if (!TextUtils.equals(mDismissButtonLabel, label)) {
-            mDismissButtonLabel = label;
-            notifyChanged();
-        }
-    }
-
-    @Override
-    public void onClick(View view) {
-        final int viewId = view.getId();
-        if (viewId == R.id.main_button || viewId == R.id.battery_tips_card) {
-            if (mOnConfirmListener != null) {
-                mOnConfirmListener.onConfirm();
-            }
-        } else if (viewId == R.id.dismiss_button) {
-            if (mOnRejectListener != null) {
-                mOnRejectListener.onReject();
-            }
-        }
-    }
-
-    @Override
-    public void onBindViewHolder(PreferenceViewHolder view) {
-        super.onBindViewHolder(view);
-
-        ((TextView) view.findViewById(R.id.title)).setText(getTitle());
-
-        final LinearLayout tipsCard = (LinearLayout) view.findViewById(R.id.battery_tips_card);
-        tipsCard.setOnClickListener(this);
-        final MaterialButton mainButton = (MaterialButton) view.findViewById(R.id.main_button);
-        mainButton.setOnClickListener(this);
-        mainButton.setText(mMainButtonLabel);
-        final MaterialButton dismissButton =
-                (MaterialButton) view.findViewById(R.id.dismiss_button);
-        dismissButton.setOnClickListener(this);
-        dismissButton.setText(mDismissButtonLabel);
-        if (mButtonColorResourceId != 0) {
-            final int colorInt = getContext().getColor(mButtonColorResourceId);
-            mainButton.setBackgroundColor(colorInt);
-            dismissButton.setTextColor(colorInt);
-        }
-
-        if (mIconResourceId != 0) {
-            ((ImageView) view.findViewById(R.id.icon)).setImageResource(mIconResourceId);
-        }
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
index 821c868..405b786 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
@@ -25,6 +25,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.TipCardPreference;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 /** Controls the update for battery tips card */
@@ -50,10 +51,9 @@
         void onAnomalyReject();
     }
 
-    private OnAnomalyConfirmListener mOnAnomalyConfirmListener;
-    private OnAnomalyRejectListener mOnAnomalyRejectListener;
-
-    @VisibleForTesting BatteryTipsCardPreference mCardPreference;
+    @VisibleForTesting OnAnomalyConfirmListener mOnAnomalyConfirmListener;
+    @VisibleForTesting OnAnomalyRejectListener mOnAnomalyRejectListener;
+    @VisibleForTesting TipCardPreference mCardPreference;
     @VisibleForTesting AnomalyEventWrapper mAnomalyEventWrapper = null;
     @VisibleForTesting Boolean mIsAcceptable = false;
 
@@ -117,42 +117,20 @@
             return;
         }
 
-        // Set battery tips card listener
-        mCardPreference.setOnConfirmListener(
+        mCardPreference.setPrimaryButtonAction(
                 () -> {
-                    mCardPreference.setVisible(false);
-                    if (mOnAnomalyConfirmListener != null) {
-                        mOnAnomalyConfirmListener.onAnomalyConfirm();
-                    } else if (mAnomalyEventWrapper.updateSystemSettingsIfAvailable()
-                            || mAnomalyEventWrapper.launchSubSetting()) {
-                        mMetricsFeatureProvider.action(
-                                /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                                /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
-                                /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                                /* key= */ ANOMALY_KEY,
-                                /* value= */ anomalyKeyNumber);
-                    }
+                    onBatteryTipsCardDismiss(anomalyKeyNumber);
+                    return null;
                 });
-        mCardPreference.setOnRejectListener(
+        mCardPreference.setSecondaryButtonAction(
                 () -> {
-                    mCardPreference.setVisible(false);
-                    if (mOnAnomalyRejectListener != null) {
-                        mOnAnomalyRejectListener.onAnomalyReject();
-                    }
-                    // For anomaly events with same record key, dismissed until next time full
-                    // charged.
-                    final String dismissRecordKey = mAnomalyEventWrapper.getDismissRecordKey();
-                    if (!TextUtils.isEmpty(dismissRecordKey)) {
-                        DatabaseUtils.setDismissedPowerAnomalyKeys(mContext, dismissRecordKey);
-                    }
-                    mMetricsFeatureProvider.action(
-                            /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                            /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
-                            /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                            /* key= */ ANOMALY_KEY,
-                            /* value= */ anomalyKeyNumber);
+                    onBatteryTipsCardAccept(anomalyKeyNumber);
+                    return null;
                 });
 
+        mCardPreference.setPrimaryButtonVisibility(true);
+        mCardPreference.setSecondaryButtonVisibility(true);
+        mCardPreference.buildContent();
         mCardPreference.setVisible(true);
         mMetricsFeatureProvider.action(
                 /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
@@ -161,4 +139,37 @@
                 /* key= */ ANOMALY_KEY,
                 /* value= */ anomalyKeyNumber);
     }
+
+    private void onBatteryTipsCardDismiss(final int anomalyKeyNumber) {
+        mCardPreference.setVisible(false);
+        if (mOnAnomalyRejectListener != null) {
+            mOnAnomalyRejectListener.onAnomalyReject();
+        }
+        // For anomaly events with same record key, dismissed until next time full charged.
+        final String dismissRecordKey = mAnomalyEventWrapper.getDismissRecordKey();
+        if (!TextUtils.isEmpty(dismissRecordKey)) {
+            DatabaseUtils.setDismissedPowerAnomalyKeys(mContext, dismissRecordKey);
+        }
+        mMetricsFeatureProvider.action(
+                /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
+                /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                /* key= */ ANOMALY_KEY,
+                /* value= */ anomalyKeyNumber);
+    }
+
+    private void onBatteryTipsCardAccept(final int anomalyKeyNumber) {
+        mCardPreference.setVisible(false);
+        if (mOnAnomalyConfirmListener != null) {
+            mOnAnomalyConfirmListener.onAnomalyConfirm();
+        } else if (mAnomalyEventWrapper.updateSystemSettingsIfAvailable()
+                || mAnomalyEventWrapper.launchSubSetting()) {
+            mMetricsFeatureProvider.action(
+                    /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                    /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+                    /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                    /* key= */ ANOMALY_KEY,
+                    /* value= */ anomalyKeyNumber);
+        }
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index f451f0a..09940b3 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.graphics.drawable.Drawable;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
 import android.text.TextUtils;
@@ -46,9 +47,13 @@
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnCreate;
 import com.android.settingslib.core.lifecycle.events.OnDestroy;
 import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.SettingsSpinnerAdapter;
+import com.android.settingslib.widget.SettingsSpinnerPreference;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -58,7 +63,7 @@
 
 /** Controller for battery usage breakdown preference group. */
 public class BatteryUsageBreakdownController extends BasePreferenceController
-        implements LifecycleObserver, OnResume, OnDestroy {
+        implements LifecycleObserver, OnResume, OnDestroy, OnCreate, OnSaveInstanceState {
     private static final String TAG = "BatteryUsageBreakdownController";
     private static final String ROOT_PREFERENCE_KEY = "battery_usage_breakdown";
     private static final String FOOTER_PREFERENCE_KEY = "battery_usage_footer";
@@ -67,6 +72,7 @@
     private static final String PACKAGE_NAME_NONE = "none";
     private static final String SLOT_TIMESTAMP = "slot_timestamp";
     private static final String ANOMALY_KEY = "anomaly_key";
+    private static final String KEY_SPINNER_POSITION = "spinner_position";
     private static final List<BatteryDiffEntry> EMPTY_ENTRY_LIST = new ArrayList<>();
 
     private static int sUiMode = Configuration.UI_MODE_NIGHT_UNDEFINED;
@@ -78,12 +84,12 @@
 
     @VisibleForTesting final Map<String, Preference> mPreferenceCache = new ArrayMap<>();
 
-    private int mSpinnerPosition;
     private String mSlotInformation;
+    private SettingsSpinnerPreference mSpinnerPreference;
+    private SettingsSpinnerAdapter<CharSequence> mSpinnerAdapter;
 
     @VisibleForTesting Context mPrefContext;
     @VisibleForTesting PreferenceCategory mRootPreference;
-    @VisibleForTesting SpinnerPreference mSpinnerPreference;
     @VisibleForTesting PreferenceGroup mAppListPreferenceGroup;
     @VisibleForTesting FooterPreference mFooterPreference;
     @VisibleForTesting BatteryDiffData mBatteryDiffData;
@@ -92,6 +98,7 @@
     @VisibleForTesting String mPercentLessThanThresholdContentDescription;
     @VisibleForTesting boolean mIsHighlightSlot;
     @VisibleForTesting int mAnomalyKeyNumber;
+    @VisibleForTesting int mSpinnerPosition;
     @VisibleForTesting String mAnomalyEntryKey;
     @VisibleForTesting String mAnomalyHintString;
     @VisibleForTesting String mAnomalyHintPrefKey;
@@ -111,6 +118,15 @@
     }
 
     @Override
+    public void onCreate(Bundle savedInstanceState) {
+        if (savedInstanceState == null) {
+            return;
+        }
+        mSpinnerPosition = savedInstanceState.getInt(KEY_SPINNER_POSITION, mSpinnerPosition);
+        Log.d(TAG, "onCreate() spinnerPosition=" + mSpinnerPosition);
+    }
+
+    @Override
     public void onResume() {
         final int currentUiMode =
                 mContext.getResources().getConfiguration().uiMode
@@ -140,6 +156,15 @@
         return false;
     }
 
+    @Override
+    public void onSaveInstanceState(Bundle savedInstanceState) {
+        if (savedInstanceState == null) {
+            return;
+        }
+        savedInstanceState.putInt(KEY_SPINNER_POSITION, mSpinnerPosition);
+        Log.d(TAG, "onSaveInstanceState() spinnerPosition=" + mSpinnerPosition);
+    }
+
     private boolean isAnomalyBatteryDiffEntry(BatteryDiffEntry entry) {
         return mIsHighlightSlot
                 && mAnomalyEntryKey != null
@@ -218,11 +243,14 @@
                         formatPercentage);
 
         mAppListPreferenceGroup.setOrderingAsAdded(false);
-        mSpinnerPreference.initializeSpinner(
+        mSpinnerAdapter = new SettingsSpinnerAdapter<>(mPrefContext);
+        mSpinnerAdapter.addAll(
                 new String[] {
                     mPrefContext.getString(R.string.battery_usage_spinner_view_by_apps),
                     mPrefContext.getString(R.string.battery_usage_spinner_view_by_systems)
-                },
+                });
+        mSpinnerPreference.setAdapter(mSpinnerAdapter);
+        mSpinnerPreference.setOnItemSelectedListener(
                 new AdapterView.OnItemSelectedListener() {
                     @Override
                     public void onItemSelected(
@@ -244,6 +272,7 @@
                     @Override
                     public void onNothingSelected(AdapterView<?> parent) {}
                 });
+        mSpinnerPreference.setSelection(mSpinnerPosition);
     }
 
     /**
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
index bfa501c..f710c71 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
@@ -63,8 +63,8 @@
         }
         final String action = intent.getAction();
         Log.d(TAG, "onReceive:" + action);
-        if (com.android.settingslib.fuelgauge.BatteryUtils.isWorkProfile(context)) {
-            Log.w(TAG, "do nothing for work profile action=" + action);
+        if (com.android.settingslib.fuelgauge.BatteryUtils.isAdditionalProfile(context)) {
+            Log.w(TAG, "do nothing for an additional profile action=" + action);
             return;
         }
         DatabaseUtils.recordDateTime(context, action);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
index 095a65a..52010af 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
@@ -110,8 +110,8 @@
 
     @Override
     public boolean onCreate() {
-        if (BatteryUtils.isWorkProfile(getContext())) {
-            Log.w(TAG, "do not create provider for work profile");
+        if (BatteryUtils.isAdditionalProfile(getContext())) {
+            Log.w(TAG, "do not create provider for an additional profile");
             return false;
         }
         mClock = Clock.systemUTC();
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
index b758df4..45d724f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
@@ -54,8 +54,8 @@
     @Override
     public void onReceive(Context context, Intent intent) {
         final String action = intent == null ? "" : intent.getAction();
-        if (BatteryUtils.isWorkProfile(context)) {
-            Log.w(TAG, "do not start job for work profile action=" + action);
+        if (BatteryUtils.isAdditionalProfile(context)) {
+            Log.w(TAG, "do not start job for an additional profile action=" + action);
             return;
         }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
index 8f4d4dd..391a57a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
@@ -35,6 +35,7 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
+import androidx.core.util.Pair;
 
 import com.android.settings.fuelgauge.BatteryUtils;
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
@@ -542,9 +543,11 @@
         }
         // Log the battery optimization mode of AppEntry while converting to batteryUsageSlot.
         if (optimizationModeCache != null && !batteryDiffEntry.isSystemEntry()) {
-            builder.setAppOptimizationMode(
-                    optimizationModeCache.getBatteryOptimizeMode(
-                            (int) batteryDiffEntry.mUid, batteryDiffEntry.getPackageName()));
+            final Pair<BatteryOptimizationMode, Boolean> batteryOptimizationModeInfo =
+                    optimizationModeCache.getBatteryOptimizeModeInfo(
+                            (int) batteryDiffEntry.mUid, batteryDiffEntry.getPackageName());
+            builder.setAppOptimizationMode(batteryOptimizationModeInfo.first)
+                    .setIsAppOptimizationModeMutable(batteryOptimizationModeInfo.second);
         }
         return builder.build();
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index dcdd060..ad487ef 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -70,6 +70,7 @@
 
     /** 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;
 
@@ -447,12 +448,28 @@
                         database.batteryEventDao().clearAllAfter(startTimestamp);
                         database.batteryStateDao().clearAllAfter(startTimestamp);
                         database.batteryUsageSlotDao().clearAllAfter(startTimestamp);
+                        database.batteryReattributeDao().clearAllAfter(startTimestamp);
                     } catch (RuntimeException e) {
                         Log.e(TAG, "clearAllAfter() failed", e);
                     }
                 });
     }
 
+    /** Clears generated cache data in the battery usage database. */
+    public static void clearEvenHourCacheData(Context context) {
+        AsyncTask.execute(
+                () -> {
+                    try {
+                        final BatteryStateDatabase database =
+                                BatteryStateDatabase.getInstance(context.getApplicationContext());
+                        database.batteryEventDao().clearEvenHourEvent();
+                        database.batteryUsageSlotDao().clearAll();
+                    } catch (RuntimeException e) {
+                        Log.e(TAG, "clearEvenHourCacheData() failed", e);
+                    }
+                });
+    }
+
     /** Clears all out-of-date data in the battery usage database. */
     public static void clearExpiredDataIfNeeded(Context context) {
         AsyncTask.execute(
@@ -526,9 +543,11 @@
         return startCalendar.getTimeInMillis();
     }
 
-    /** Returns the context with profile parent identity when current user is work profile. */
+    /**
+     * Returns the context with profile parent identity when current user is an additional profile.
+     */
     public static Context getParentContext(Context context) {
-        if (com.android.settingslib.fuelgauge.BatteryUtils.isWorkProfile(context)) {
+        if (com.android.settingslib.fuelgauge.BatteryUtils.isAdditionalProfile(context)) {
             try {
                 return context.createPackageContextAsUser(
                         /* packageName= */ context.getPackageName(),
@@ -919,14 +938,12 @@
         final String logInfo =
                 String.format(
                         Locale.ENGLISH,
-                        "clear database for new time zone = %s",
+                        "clear database cache for new time zone = %s",
                         TimeZone.getDefault().toString());
         BatteryUsageLogUtils.writeLog(context, Action.TIMEZONE_UPDATED, logInfo);
         Log.d(TAG, logInfo);
-        DatabaseUtils.clearAll(context);
+        DatabaseUtils.clearEvenHourCacheData(context);
         PeriodicJobManager.getInstance(context).refreshJob(/* fromBoot= */ false);
-        // Take a snapshot of battery usage data immediately
-        BatteryUsageDataLoader.enqueueWork(context, /* isFullChargeStart= */ true);
     }
 
     private static long loadLongFromContentProvider(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
index 5c73adb..982cf40 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
@@ -50,10 +50,10 @@
             Log.w(TAG, "receive unexpected action=" + action);
             return;
         }
-        if (BatteryUtils.isWorkProfile(context)) {
+        if (BatteryUtils.isAdditionalProfile(context)) {
             BatteryUsageLogUtils.writeLog(
-                    context, Action.SCHEDULE_JOB, "do not refresh job for work profile");
-            Log.w(TAG, "do not refresh job for work profile action=" + action);
+                    context, Action.SCHEDULE_JOB, "do not refresh job for an additional profile");
+            Log.w(TAG, "do not refresh job for an additional profile action=" + action);
             return;
         }
         BatteryUsageLogUtils.writeLog(context, Action.EXECUTE_JOB, "");
diff --git a/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreference.java b/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreference.java
deleted file mode 100644
index 886d00d..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreference.java
+++ /dev/null
@@ -1,134 +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.batteryusage;
-
-import android.content.Context;
-import android.os.Parcelable;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.widget.AdapterView;
-import android.widget.Spinner;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.R;
-import com.android.settingslib.widget.SettingsSpinnerAdapter;
-
-/** A preference which contains a spinner. */
-public class SpinnerPreference extends Preference {
-    private static final String TAG = "SpinnerPreference";
-
-    private AdapterView.OnItemSelectedListener mOnItemSelectedListener;
-
-    @VisibleForTesting Spinner mSpinner;
-    @VisibleForTesting String[] mItems;
-    @VisibleForTesting int mSavedSpinnerPosition;
-
-    public SpinnerPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        setLayoutResource(R.layout.preference_spinner);
-    }
-
-    void initializeSpinner(
-            String[] items, AdapterView.OnItemSelectedListener onItemSelectedListener) {
-        mItems = items;
-        mOnItemSelectedListener = onItemSelectedListener;
-    }
-
-    @Override
-    public void onBindViewHolder(PreferenceViewHolder view) {
-        if (mSpinner != null) {
-            return;
-        }
-
-        mSpinner = (Spinner) view.findViewById(R.id.spinner);
-        mSpinner.setAdapter(new SpinnerAdapter(getContext(), mItems));
-        mSpinner.setSelection(mSavedSpinnerPosition);
-        mSpinner.setLongClickable(false);
-        if (mOnItemSelectedListener != null) {
-            mSpinner.setOnItemSelectedListener(mOnItemSelectedListener);
-        }
-    }
-
-    @Override
-    protected Parcelable onSaveInstanceState() {
-        if (mSpinner == null) {
-            return super.onSaveInstanceState();
-        }
-        Log.d(TAG, "onSaveInstanceState() spinnerPosition=" + mSpinner.getSelectedItemPosition());
-        return new SavedState(super.onSaveInstanceState(), mSpinner.getSelectedItemPosition());
-    }
-
-    @Override
-    protected void onRestoreInstanceState(Parcelable state) {
-        if (state == null || state == BaseSavedState.EMPTY_STATE) {
-            super.onRestoreInstanceState(state);
-            return;
-        }
-        if (!(state instanceof SavedState)) {
-            // To avoid the IllegalArgumentException, return the BaseSavedState.EMPTY_STATE.
-            super.onRestoreInstanceState(BaseSavedState.EMPTY_STATE);
-            return;
-        }
-        SavedState savedState = (SavedState) state;
-        super.onRestoreInstanceState(savedState.getSuperState());
-        mSavedSpinnerPosition = savedState.getSpinnerPosition();
-        if (mOnItemSelectedListener != null) {
-            mOnItemSelectedListener.onItemSelected(
-                    /* parent= */ null,
-                    /* view= */ null,
-                    savedState.getSpinnerPosition(),
-                    /* id= */ 0);
-        }
-        Log.d(TAG, "onRestoreInstanceState() spinnerPosition=" + savedState.getSpinnerPosition());
-    }
-
-    @VisibleForTesting
-    static class SavedState extends BaseSavedState {
-        private int mSpinnerPosition;
-
-        SavedState(Parcelable superState, int spinnerPosition) {
-            super(superState);
-            mSpinnerPosition = spinnerPosition;
-        }
-
-        int getSpinnerPosition() {
-            return mSpinnerPosition;
-        }
-    }
-
-    private static class SpinnerAdapter extends SettingsSpinnerAdapter<CharSequence> {
-        private final String[] mItems;
-
-        SpinnerAdapter(Context context, String[] items) {
-            super(context);
-            mItems = items;
-        }
-
-        @Override
-        public int getCount() {
-            return mItems.length;
-        }
-
-        @Override
-        public CharSequence getItem(int position) {
-            return mItems[position];
-        }
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
index 7e759ee..e829a3c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
@@ -49,8 +49,8 @@
             Log.w(TAG, "failed to dump BatteryUsage state: null application context");
             return;
         }
-        if (BatteryUtils.isWorkProfile(context)) {
-            Log.w(TAG, "ignore battery usage states dump in the work profile");
+        if (BatteryUtils.isAdditionalProfile(context)) {
+            Log.w(TAG, "ignore battery usage states dump in the additional profile");
             return;
         }
         writer.println("dump BatteryUsage and AppUsage states:");
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.java
deleted file mode 100644
index 2497801..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage.db;
-
-import android.database.Cursor;
-
-import androidx.room.Dao;
-import androidx.room.Insert;
-import androidx.room.OnConflictStrategy;
-import androidx.room.Query;
-
-import java.util.List;
-
-/** Data access object for accessing {@link AppUsageEventEntity} in the database. */
-@Dao
-public interface AppUsageEventDao {
-
-    /** Inserts a {@link AppUsageEventEntity} data into the database. */
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    void insert(AppUsageEventEntity event);
-
-    /** Inserts {@link AppUsageEventEntity} data into the database. */
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    void insertAll(List<AppUsageEventEntity> events);
-
-    /** Lists all recorded data after a specific timestamp. */
-    @Query("SELECT * FROM AppUsageEventEntity WHERE timestamp > :timestamp ORDER BY timestamp DESC")
-    List<AppUsageEventEntity> getAllAfter(long timestamp);
-
-    /** Gets the {@link Cursor} of all recorded data after a specific timestamp of the users. */
-    @Query(
-            "SELECT * FROM AppUsageEventEntity WHERE timestamp >= :timestamp"
-                    + " AND userId IN (:userIds) ORDER BY timestamp ASC")
-    Cursor getAllForUsersAfter(List<Long> userIds, long timestamp);
-
-    /** Gets the {@link Cursor} of the latest timestamp of the specific user. */
-    @Query("SELECT MAX(timestamp) as timestamp FROM AppUsageEventEntity WHERE userId = :userId")
-    Cursor getLatestTimestampOfUser(long userId);
-
-    /** Deletes all recorded data before a specific timestamp. */
-    @Query("DELETE FROM AppUsageEventEntity WHERE timestamp <= :timestamp")
-    void clearAllBefore(long timestamp);
-
-    /** Deletes all recorded data after a specific timestamp. */
-    @Query("DELETE FROM AppUsageEventEntity WHERE timestamp >= :timestamp")
-    void clearAllAfter(long timestamp);
-
-    /** Clears all recorded data in the database. */
-    @Query("DELETE FROM AppUsageEventEntity")
-    void clearAll();
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.kt b/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.kt
new file mode 100644
index 0000000..fa5fbc7
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/AppUsageEventDao.kt
@@ -0,0 +1,59 @@
+/*
+ * 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.db
+
+import android.database.Cursor
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+
+/** Data access object for accessing [AppUsageEventEntity] in the database. */
+@Dao
+interface AppUsageEventDao {
+    /** Inserts a [AppUsageEventEntity] data into the database. */
+    @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(event: AppUsageEventEntity)
+
+    /** Inserts [AppUsageEventEntity] data into the database. */
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    fun insertAll(events: List<AppUsageEventEntity>)
+
+    /** Lists all recorded data after a specific timestamp. */
+    @Query("SELECT * FROM AppUsageEventEntity WHERE timestamp > :timestamp ORDER BY timestamp DESC")
+    fun getAllAfter(timestamp: Long): List<AppUsageEventEntity>
+
+    /** Gets the [Cursor] of all recorded data after a specific timestamp of the users. */
+    @Query(
+        "SELECT * FROM AppUsageEventEntity WHERE timestamp >= :timestamp" +
+            " AND userId IN (:userIds) ORDER BY timestamp ASC"
+    )
+    fun getAllForUsersAfter(userIds: List<Long>, timestamp: Long): Cursor
+
+    /** Gets the [Cursor] of the latest timestamp of the specific user. */
+    @Query("SELECT MAX(timestamp) as timestamp FROM AppUsageEventEntity WHERE userId = :userId")
+    fun getLatestTimestampOfUser(userId: Long): Cursor
+
+    /** Deletes all recorded data before a specific timestamp. */
+    @Query("DELETE FROM AppUsageEventEntity WHERE timestamp <= :timestamp")
+    fun clearAllBefore(timestamp: Long)
+
+    /** Deletes all recorded data after a specific timestamp. */
+    @Query("DELETE FROM AppUsageEventEntity WHERE timestamp >= :timestamp")
+    fun clearAllAfter(timestamp: Long)
+
+    /** Clears all recorded data in the database. */
+    @Query("DELETE FROM AppUsageEventEntity") fun clearAll()
+}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
deleted file mode 100644
index 19d2043..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
+++ /dev/null
@@ -1,75 +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.batteryusage.db;
-
-import android.database.Cursor;
-
-import androidx.room.Dao;
-import androidx.room.Insert;
-import androidx.room.OnConflictStrategy;
-import androidx.room.Query;
-
-import java.util.List;
-
-/** Data access object for accessing {@link BatteryEventEntity} in the database. */
-@Dao
-public interface BatteryEventDao {
-    /** Inserts a {@link BatteryEventEntity} data into the database. */
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    void insert(BatteryEventEntity event);
-
-    /** Gets all recorded data. */
-    @Query("SELECT * FROM BatteryEventEntity ORDER BY timestamp DESC")
-    List<BatteryEventEntity> getAll();
-
-    /** Gets the {@link Cursor} of the last full charge time . */
-    @Query(
-            "SELECT MAX(timestamp) FROM BatteryEventEntity"
-                    + " WHERE batteryEventType = 3") // BatteryEventType.FULL_CHARGED = 3
-    Cursor getLastFullChargeTimestamp();
-
-    /** Gets the {@link Long} of the last full charge time . */
-    @Query(
-            "SELECT MAX(timestamp) FROM BatteryEventEntity"
-                    + " WHERE batteryEventType = 3") // BatteryEventType.FULL_CHARGED = 3
-    Long getLastFullChargeTimestampForLog();
-
-    /** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
-    @Query(
-            "SELECT * FROM BatteryEventEntity"
-                    + " WHERE timestamp >= :timestamp AND batteryEventType IN (:batteryEventTypes)"
-                    + " ORDER BY timestamp DESC")
-    Cursor getAllAfter(long timestamp, List<Integer> batteryEventTypes);
-
-    /** Gets all recorded data after a specific timestamp for log.*/
-    @Query(
-            "SELECT * FROM BatteryEventEntity "
-                    + "WHERE timestamp >= :timestamp ORDER BY timestamp DESC")
-    List<BatteryEventEntity> getAllAfterForLog(long timestamp);
-
-    /** Deletes all recorded data before a specific timestamp. */
-    @Query("DELETE FROM BatteryEventEntity WHERE timestamp <= :timestamp")
-    void clearAllBefore(long timestamp);
-
-    /** Deletes all recorded data after a specific timestamp. */
-    @Query("DELETE FROM BatteryEventEntity WHERE timestamp >= :timestamp")
-    void clearAllAfter(long timestamp);
-
-    /** Clears all recorded data in the database. */
-    @Query("DELETE FROM BatteryEventEntity")
-    void clearAll();
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.kt b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.kt
new file mode 100644
index 0000000..351b086
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.kt
@@ -0,0 +1,83 @@
+/*
+ * 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.db
+
+import android.database.Cursor
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+import com.android.settings.fuelgauge.batteryusage.BatteryEventType
+
+/** Data access object for accessing [BatteryEventEntity] in the database. */
+@Dao
+interface BatteryEventDao {
+    /** Inserts a [BatteryEventEntity] data into the database. */
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    fun insert(event: BatteryEventEntity)
+
+    /** Gets all recorded data. */
+    @Query("SELECT * FROM BatteryEventEntity ORDER BY timestamp DESC")
+    fun getAll(): List<BatteryEventEntity>
+
+    /** Gets the [Cursor] of the last full charge time. */
+    @Query(
+        "SELECT MAX(timestamp) FROM BatteryEventEntity" +
+            " WHERE batteryEventType = 3" // BatteryEventType.FULL_CHARGED = 3
+    )
+    fun getLastFullChargeTimestamp(): Cursor
+
+    /** Gets the [Long] of the last full charge time. */
+    @Query(
+        "SELECT MAX(timestamp) FROM BatteryEventEntity" +
+            " WHERE batteryEventType = 3" // BatteryEventType.FULL_CHARGED = 3
+    )
+    fun getLastFullChargeTimestampForLog(): Long?
+
+    /** Gets the [Cursor] of all recorded data after a specific timestamp. */
+    @Query(
+        "SELECT * FROM BatteryEventEntity" +
+            " WHERE timestamp >= :timestamp AND batteryEventType IN (:batteryEventTypes)" +
+            " ORDER BY timestamp DESC"
+    )
+    fun getAllAfter(timestamp: Long, batteryEventTypes: List<Int>): Cursor
+
+    /** Gets all recorded data after a specific timestamp for log. */
+    @Query(
+        "SELECT * FROM BatteryEventEntity " +
+            "WHERE timestamp >= :timestamp ORDER BY timestamp DESC"
+    )
+    fun getAllAfterForLog(timestamp: Long): List<BatteryEventEntity>
+
+    /** Deletes all recorded data before a specific timestamp. */
+    @Query("DELETE FROM BatteryEventEntity WHERE timestamp <= :timestamp")
+    fun clearAllBefore(timestamp: Long)
+
+    /** Deletes all recorded data after a specific timestamp. */
+    @Query("DELETE FROM BatteryEventEntity WHERE timestamp >= :timestamp")
+    fun clearAllAfter(timestamp: Long)
+
+    /** Deletes even_hour event data in the database. */
+    @Query(
+        "DELETE FROM BatteryEventEntity " +
+            "WHERE batteryEventType = 4" // BatteryEventType.EVEN_HOUR = 4
+    )
+    fun clearEvenHourEvent()
+
+    /** Clears all recorded data in the database. */
+    @Query("DELETE FROM BatteryEventEntity")
+    fun clearAll()
+}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeDao.kt b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeDao.kt
index 79c9d00..4151a5b 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeDao.kt
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeDao.kt
@@ -21,11 +21,9 @@
 import androidx.room.OnConflictStrategy;
 import androidx.room.Query;
 
-import java.util.List;
-
 /** DAO for accessing {@link BatteryReattributeEntity} in the database. */
 @Dao
-public interface BatteryReattributeDao {
+interface BatteryReattributeDao {
 
     /** Inserts a {@link BatteryReattributeEntity} data into the database. */
     @Insert(onConflict = OnConflictStrategy.REPLACE)
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java
index 1a0c087..0ee2260 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java
@@ -18,14 +18,14 @@
 
 import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTimeForLogging;
 
-import com.android.settings.fuelgauge.batteryusage.BatteryReattribute;
-import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
-
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.room.Entity;
 import androidx.room.PrimaryKey;
 
+import com.android.settings.fuelgauge.batteryusage.BatteryReattribute;
+import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
+
 /** A {@link Entity} for battery usage reattribution data in the database. */
 @Entity
 public class BatteryReattributeEntity {
@@ -38,7 +38,7 @@
     public final long timestampEnd;
 
     /** The battery usage reattribution data for corresponding  uids. */
-    public final String reattributeData;
+    @NonNull public final String reattributeData;
 
     public BatteryReattributeEntity(@NonNull BatteryReattribute batteryReattribute) {
         this(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
deleted file mode 100644
index 049251e..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage.db;
-
-import android.database.Cursor;
-
-import androidx.room.Dao;
-import androidx.room.Insert;
-import androidx.room.OnConflictStrategy;
-import androidx.room.Query;
-
-import java.util.List;
-
-/** Data access object for accessing {@link BatteryState} in the database. */
-@Dao
-public interface BatteryStateDao {
-
-    /** Inserts a {@link BatteryState} data into the database. */
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    void insert(BatteryState state);
-
-    /** Inserts {@link BatteryState} data into the database. */
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    void insertAll(List<BatteryState> states);
-
-    /** Gets the {@link Cursor} of the latest record timestamp no later than the given timestamp. */
-    @Query("SELECT MAX(timestamp) FROM BatteryState WHERE timestamp <= :timestamp")
-    Cursor getLatestTimestampBefore(long timestamp);
-
-    /** Lists all recorded battery states after a specific timestamp. */
-    @Query("SELECT * FROM BatteryState WHERE timestamp >= :timestamp ORDER BY timestamp ASC")
-    Cursor getBatteryStatesAfter(long timestamp);
-
-    /** Lists all recorded data after a specific timestamp. */
-    @Query("SELECT * FROM BatteryState WHERE timestamp > :timestamp ORDER BY timestamp DESC")
-    List<BatteryState> getAllAfter(long timestamp);
-
-    /** Get the count of distinct timestamp after a specific timestamp. */
-    @Query("SELECT COUNT(DISTINCT timestamp) FROM BatteryState WHERE timestamp > :timestamp")
-    int getDistinctTimestampCount(long timestamp);
-
-    /** Lists all distinct timestamps after a specific timestamp. */
-    @Query("SELECT DISTINCT timestamp FROM BatteryState WHERE timestamp > :timestamp")
-    List<Long> getDistinctTimestamps(long timestamp);
-
-    /** Deletes all recorded data before a specific timestamp. */
-    @Query("DELETE FROM BatteryState WHERE timestamp <= :timestamp")
-    void clearAllBefore(long timestamp);
-
-    /** Deletes all recorded data after a specific timestamp. */
-    @Query("DELETE FROM BatteryState WHERE timestamp >= :timestamp")
-    void clearAllAfter(long timestamp);
-
-    /** Clears all recorded data in the database. */
-    @Query("DELETE FROM BatteryState")
-    void clearAll();
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.kt b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.kt
new file mode 100644
index 0000000..6d31e07
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.kt
@@ -0,0 +1,63 @@
+/*
+ * 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.db
+
+import android.database.Cursor
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+
+/** Data access object for accessing [BatteryState] in the database. */
+@Dao
+interface BatteryStateDao {
+    /** Inserts a [BatteryState] data into the database. */
+    @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(state: BatteryState)
+
+    /** Inserts [BatteryState] data into the database. */
+    @Insert(onConflict = OnConflictStrategy.REPLACE) fun insertAll(states: List<BatteryState>)
+
+    /** Gets the [Cursor] of the latest record timestamp no later than the given timestamp. */
+    @Query("SELECT MAX(timestamp) FROM BatteryState WHERE timestamp <= :timestamp")
+    fun getLatestTimestampBefore(timestamp: Long): Cursor
+
+    /** Lists all recorded battery states after a specific timestamp. */
+    @Query("SELECT * FROM BatteryState WHERE timestamp >= :timestamp ORDER BY timestamp ASC")
+    fun getBatteryStatesAfter(timestamp: Long): Cursor
+
+    /** Lists all recorded data after a specific timestamp. */
+    @Query("SELECT * FROM BatteryState WHERE timestamp > :timestamp ORDER BY timestamp DESC")
+    fun getAllAfter(timestamp: Long): List<BatteryState>
+
+    /** Get the count of distinct timestamp after a specific timestamp. */
+    @Query("SELECT COUNT(DISTINCT timestamp) FROM BatteryState WHERE timestamp > :timestamp")
+    fun getDistinctTimestampCount(timestamp: Long): Int
+
+    /** Lists all distinct timestamps after a specific timestamp. */
+    @Query("SELECT DISTINCT timestamp FROM BatteryState WHERE timestamp > :timestamp")
+    fun getDistinctTimestamps(timestamp: Long): List<Long>
+
+    /** Deletes all recorded data before a specific timestamp. */
+    @Query("DELETE FROM BatteryState WHERE timestamp <= :timestamp")
+    fun clearAllBefore(timestamp: Long)
+
+    /** Deletes all recorded data after a specific timestamp. */
+    @Query("DELETE FROM BatteryState WHERE timestamp >= :timestamp")
+    fun clearAllAfter(timestamp: Long)
+
+    /** Clears all recorded data in the database. */
+    @Query("DELETE FROM BatteryState") fun clearAll()
+}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
index 8e3d6e3..c3aea08 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
@@ -33,10 +33,10 @@
             BatteryUsageSlotEntity.class,
             BatteryReattributeEntity.class
         },
-        version = 2)
+        version = 3)
 public abstract class BatteryStateDatabase extends RoomDatabase {
     private static final String TAG = "BatteryStateDatabase";
-    private static final String DB_FILE_NAME = "battery-usage-db-v10";
+    private static final String DB_FILE_NAME = "battery-usage-db-v11";
 
     private static BatteryStateDatabase sBatteryStateDatabase;
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
deleted file mode 100644
index d53b0cf..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
+++ /dev/null
@@ -1,62 +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.batteryusage.db;
-
-import android.database.Cursor;
-
-import androidx.room.Dao;
-import androidx.room.Insert;
-import androidx.room.OnConflictStrategy;
-import androidx.room.Query;
-
-import java.util.List;
-
-/** Data access object for accessing {@link BatteryUsageSlotEntity} in the database. */
-@Dao
-public interface BatteryUsageSlotDao {
-    /** Inserts a {@link BatteryUsageSlotEntity} data into the database. */
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    void insert(BatteryUsageSlotEntity event);
-
-    /** Gets all recorded data. */
-    @Query("SELECT * FROM BatteryUsageSlotEntity ORDER BY timestamp ASC")
-    List<BatteryUsageSlotEntity> getAll();
-
-    /** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
-    @Query(
-            "SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp"
-                    + " ORDER BY timestamp ASC")
-    Cursor getAllAfter(long timestamp);
-
-    /** Gets all recorded data after a specific timestamp for log.*/
-    @Query(
-            "SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp"
-                    + " ORDER BY timestamp DESC")
-    List<BatteryUsageSlotEntity> getAllAfterForLog(long timestamp);
-
-    /** Deletes all recorded data before a specific timestamp. */
-    @Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp <= :timestamp")
-    void clearAllBefore(long timestamp);
-
-    /** Deletes all recorded data after a specific timestamp. */
-    @Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp")
-    void clearAllAfter(long timestamp);
-
-    /** Clears all recorded data in the database. */
-    @Query("DELETE FROM BatteryUsageSlotEntity")
-    void clearAll();
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.kt b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.kt
new file mode 100644
index 0000000..434c61a
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.kt
@@ -0,0 +1,58 @@
+/*
+ * 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.db
+
+import android.database.Cursor
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+
+/** Data access object for accessing [BatteryUsageSlotEntity] in the database. */
+@Dao
+interface BatteryUsageSlotDao {
+    /** Inserts a [BatteryUsageSlotEntity] data into the database. */
+    @Insert(onConflict = OnConflictStrategy.REPLACE) fun insert(event: BatteryUsageSlotEntity)
+
+    /** Gets all recorded data. */
+    @Query("SELECT * FROM BatteryUsageSlotEntity ORDER BY timestamp ASC")
+    fun getAll(): List<BatteryUsageSlotEntity>
+
+    /** Gets the [Cursor] of all recorded data after a specific timestamp. */
+    @Query(
+        "SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp" +
+            " ORDER BY timestamp ASC"
+    )
+    fun getAllAfter(timestamp: Long): Cursor
+
+    /** Gets all recorded data after a specific timestamp for log. */
+    @Query(
+        "SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp" +
+            " ORDER BY timestamp DESC"
+    )
+    fun getAllAfterForLog(timestamp: Long): List<BatteryUsageSlotEntity>
+
+    /** Deletes all recorded data before a specific timestamp. */
+    @Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp <= :timestamp")
+    fun clearAllBefore(timestamp: Long)
+
+    /** Deletes all recorded data after a specific timestamp. */
+    @Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp")
+    fun clearAllAfter(timestamp: Long)
+
+    /** Clears all recorded data in the database. */
+    @Query("DELETE FROM BatteryUsageSlotEntity") fun clearAll()
+}
diff --git a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
index b77d5eb..ecb2a48 100644
--- a/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
+++ b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
@@ -78,6 +78,11 @@
             return;
         }
 
+        if (mNetworkPolicyManager == null) {
+            Log.w(TAG, "syncPolicyIfNeeded: invalid mNetworkPolicyManager");
+            return;
+        }
+
         final SharedPreferences.Editor editor = getManualDenylistPref().edit();
         final int[] existedUids = mNetworkPolicyManager
                 .getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
@@ -91,6 +96,11 @@
 
     /** Set policy flags for specific UID. */
     public void setUidPolicyLocked(int uid, int policy) {
+        if (mNetworkPolicyManager == null) {
+            Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
+            return;
+        }
+
         Log.i(TAG, "setUidPolicyLocked: uid=" + uid + " policy=" + policy);
         synchronized (mLock) {
             mNetworkPolicyManager.setUidPolicy(uid, policy);
@@ -100,7 +110,7 @@
 
     /** Suggest a list of package to set as POLICY_REJECT. */
     public void setDenylist(Set<Integer> denylistTargetUids) {
-        if (denylistTargetUids == null) {
+        if (denylistTargetUids == null || mNetworkPolicyManager == null) {
             return;
         }
         final Set<Integer> manualDenylistUids = getDenylistAllUids(getManualDenylistPref());
@@ -164,6 +174,12 @@
             Log.w(TAG, "resetDenylistIfNeeded: invalid conditions");
             return;
         }
+
+        if (mNetworkPolicyManager == null) {
+            Log.w(TAG, "setUidPolicyLocked: invalid mNetworkPolicyManager");
+            return;
+        }
+
         synchronized (mLock) {
             final int[] uids = mNetworkPolicyManager
                     .getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
diff --git a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
index 4e3e3c4..da2bd4f 100644
--- a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
+++ b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
@@ -40,4 +40,5 @@
   optional int64 screen_on_time = 16;
   optional int64 foreground_service_usage_time = 17;
   optional BatteryOptimizationMode app_optimization_mode = 18;
+  optional bool is_app_optimization_mode_mutable = 19;
 }
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java b/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
index e69a336..6362068 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
@@ -105,7 +105,8 @@
                         + mAppContext.getText(R.string.condition_zen_title))
                 .setTitleText(mAppContext.getText(R.string.condition_zen_title).toString())
                 .setSummaryText(getSummary())
-                .setIconDrawable(mAppContext.getDrawable(R.drawable.ic_do_not_disturb_on_24dp))
+                .setIconDrawable(mAppContext.getDrawable(
+                        com.android.settingslib.R.drawable.ic_do_not_disturb_on_24dp))
                 .setViewType(ConditionContextualCardRenderer.VIEW_TYPE_HALF_WIDTH)
                 .build();
     }
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
index 2bbb567..849ffb4 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
@@ -88,8 +88,14 @@
                 break;
             }
             case ProfileSelectFragment.ProfileType.PERSONAL: {
-                final UserHandle primaryUser = userManager.getPrimaryUser().getUserHandle();
-                newUserId = primaryUser.getIdentifier();
+                // Use the parent user of the current user if the current user is profile.
+                final UserHandle currentUser = UserHandle.of(currentUserId);
+                final UserHandle userProfileParent = userManager.getProfileParent(currentUser);
+                if (userProfileParent != null) {
+                    newUserId = userProfileParent.getIdentifier();
+                } else {
+                    newUserId = currentUserId;
+                }
                 break;
             }
             default:
diff --git a/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java b/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java
index 8f1e5c8..f7a9aca 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java
@@ -66,6 +66,20 @@
         return false;
     }
 
+    static boolean isMouse() {
+        for (int deviceId : InputDevice.getDeviceIds()) {
+            final InputDevice device = InputDevice.getDevice(deviceId);
+            if (device == null) {
+                continue;
+            }
+            if ((device.getSources() & InputDevice.SOURCE_MOUSE)
+                    == InputDevice.SOURCE_MOUSE) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     @SuppressLint("MissingPermission")
     @Nullable
     static String getSelectedKeyboardLayoutLabelForUser(Context context, @UserIdInt int userId,
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 5ba1c84..bafec32 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -70,10 +70,10 @@
 
     private static final String KEYBOARD_OPTIONS_CATEGORY = "keyboard_options_category";
     private static final String KEYBOARD_A11Y_CATEGORY = "keyboard_a11y_category";
-    private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
     private static final String ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_keys";
     private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys";
     private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys";
+    private static final String ACCESSIBILITY_MOUSE_KEYS = "accessibility_mouse_keys";
     private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
     private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
     private static final String EXTRA_AUTO_SELECTION = "auto_selection";
@@ -85,6 +85,8 @@
             Secure.ACCESSIBILITY_SLOW_KEYS);
     private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
             Secure.ACCESSIBILITY_STICKY_KEYS);
+    private static final Uri sAccessibilityMouseKeysUri = Secure.getUriFor(
+            Secure.ACCESSIBILITY_MOUSE_KEYS_ENABLED);
     public static final int BOUNCE_KEYS_THRESHOLD = 500;
     public static final int SLOW_KEYS_THRESHOLD = 500;
 
@@ -100,14 +102,13 @@
     @Nullable
     private PreferenceCategory mKeyboardA11yCategory = null;
     @Nullable
-    private TwoStatePreference mShowVirtualKeyboardSwitch = null;
-    @Nullable
     private TwoStatePreference mAccessibilityBounceKeys = null;
     @Nullable
     private TwoStatePreference mAccessibilitySlowKeys = null;
     @Nullable
     private TwoStatePreference mAccessibilityStickyKeys = null;
-
+    @Nullable
+    private TwoStatePreference mAccessibilityMouseKeys = null;
 
     private Intent mIntentWaitingForResult;
     private boolean mSupportsFirmwareUpdate;
@@ -129,8 +130,6 @@
         mImm = Preconditions.checkNotNull(activity.getSystemService(InputMethodManager.class));
         mKeyboardAssistanceCategory = Preconditions.checkNotNull(
                 findPreference(KEYBOARD_OPTIONS_CATEGORY));
-        mShowVirtualKeyboardSwitch = Objects.requireNonNull(
-                mKeyboardAssistanceCategory.findPreference(SHOW_VIRTUAL_KEYBOARD_SWITCH));
 
         mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY));
         mAccessibilityBounceKeys = Objects.requireNonNull(
@@ -143,6 +142,8 @@
                 getContext().getString(R.string.slow_keys_summary, SLOW_KEYS_THRESHOLD));
         mAccessibilityStickyKeys = Objects.requireNonNull(
                 mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
+        mAccessibilityMouseKeys = Objects.requireNonNull(
+                mKeyboardA11yCategory.findPreference(ACCESSIBILITY_MOUSE_KEYS));
 
         FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
         mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
@@ -165,6 +166,9 @@
         if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
             mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
         }
+        if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
+            mKeyboardA11yCategory.removePreference(mAccessibilityMouseKeys);
+        }
         InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra(
                 KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
                 InputDeviceIdentifier.class);
@@ -207,14 +211,14 @@
         mLastHardKeyboards.clear();
         scheduleUpdateHardKeyboards();
         mIm.registerInputDeviceListener(this, null);
-        Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(
-                mShowVirtualKeyboardSwitchPreferenceChangeListener);
         Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(
                 mAccessibilityBounceKeysSwitchPreferenceChangeListener);
         Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(
                 mAccessibilitySlowKeysSwitchPreferenceChangeListener);
         Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
                 mAccessibilityStickyKeysSwitchPreferenceChangeListener);
+        Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(
+                mAccessibilityMouseKeysSwitchPreferenceChangeListener);
         registerSettingsObserver();
     }
 
@@ -223,10 +227,10 @@
         super.onPause();
         mLastHardKeyboards.clear();
         mIm.unregisterInputDeviceListener(this);
-        Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(null);
         Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
         Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
         Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
+        Objects.requireNonNull(mAccessibilityMouseKeys).setOnPreferenceChangeListener(null);
         unregisterSettingsObserver();
     }
 
@@ -314,16 +318,17 @@
         if (mSupportsFirmwareUpdate) {
             mFeatureProvider.addFirmwareUpdateCategory(getPrefContext(), preferenceScreen);
         }
-        updateShowVirtualKeyboardSwitch();
 
         if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
                 || InputSettings.isAccessibilityStickyKeysFeatureEnabled()
-                || InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
+                || InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()
+                || InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
             Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
             preferenceScreen.addPreference(mKeyboardA11yCategory);
             updateAccessibilityBounceKeysSwitch();
             updateAccessibilitySlowKeysSwitch();
             updateAccessibilityStickyKeysSwitch();
+            updateAccessibilityMouseKeysSwitch();
         }
     }
 
@@ -374,21 +379,23 @@
                     mContentObserver,
                     UserHandle.myUserId());
         }
-        updateShowVirtualKeyboardSwitch();
+        if (InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
+            contentResolver.registerContentObserver(
+                    sAccessibilityMouseKeysUri,
+                    false,
+                    mContentObserver,
+                    UserHandle.myUserId());
+        }
         updateAccessibilityBounceKeysSwitch();
         updateAccessibilitySlowKeysSwitch();
         updateAccessibilityStickyKeysSwitch();
+        updateAccessibilityMouseKeysSwitch();
     }
 
     private void unregisterSettingsObserver() {
         getActivity().getContentResolver().unregisterContentObserver(mContentObserver);
     }
 
-    private void updateShowVirtualKeyboardSwitch() {
-        Objects.requireNonNull(mShowVirtualKeyboardSwitch).setChecked(
-                Secure.getInt(getContentResolver(), Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0);
-    }
-
     private void updateAccessibilityBounceKeysSwitch() {
         if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
             return;
@@ -413,19 +420,18 @@
                 InputSettings.isAccessibilityStickyKeysEnabled(getContext()));
     }
 
+    private void updateAccessibilityMouseKeysSwitch() {
+        if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
+            return;
+        }
+        Objects.requireNonNull(mAccessibilityMouseKeys).setChecked(
+                InputSettings.isAccessibilityMouseKeysEnabled(getContext()));
+    }
+
     private void toggleKeyboardShortcutsMenu() {
         getActivity().requestShowKeyboardShortcuts();
     }
 
-    private final OnPreferenceChangeListener mShowVirtualKeyboardSwitchPreferenceChangeListener =
-            (preference, newValue) -> {
-                final ContentResolver cr = getContentResolver();
-                Secure.putInt(cr, Secure.SHOW_IME_WITH_HARD_KEYBOARD, ((Boolean) newValue) ? 1 : 0);
-                cr.notifyChange(Secure.getUriFor(Secure.SHOW_IME_WITH_HARD_KEYBOARD),
-                        null /* observer */, ContentResolver.NOTIFY_NO_DELAY);
-                return true;
-            };
-
     private final OnPreferenceChangeListener
             mAccessibilityBounceKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
                 InputSettings.setAccessibilityBounceKeysThreshold(getContext(),
@@ -446,17 +452,23 @@
                 return true;
             };
 
+    private final OnPreferenceChangeListener
+            mAccessibilityMouseKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
+                InputSettings.setAccessibilityMouseKeysEnabled(getContext(), (Boolean) newValue);
+                return true;
+            };
+
     private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
         @Override
         public void onChange(boolean selfChange, Uri uri) {
-            if (sVirtualKeyboardSettingsUri.equals(uri)) {
-                updateShowVirtualKeyboardSwitch();
-            } else if (sAccessibilityBounceKeysUri.equals(uri)) {
+            if (sAccessibilityBounceKeysUri.equals(uri)) {
                 updateAccessibilityBounceKeysSwitch();
             } else if (sAccessibilitySlowKeysUri.equals(uri)) {
                 updateAccessibilitySlowKeysSwitch();
             } else if (sAccessibilityStickyKeysUri.equals(uri)) {
                 updateAccessibilityStickyKeysSwitch();
+            } else if (sAccessibilityMouseKeysUri.equals(uri)) {
+                updateAccessibilityMouseKeysSwitch();
             }
         }
     };
diff --git a/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java b/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java
index 5abc383..bd6bbd5 100644
--- a/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java
+++ b/src/com/android/settings/inputmethod/PointerFillStylePreferenceController.java
@@ -16,25 +16,39 @@
 
 package com.android.settings.inputmethod;
 
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_FILL_BLACK;
+
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceDataStore;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
-public class PointerFillStylePreferenceController extends BasePreferenceController {
+public class PointerFillStylePreferenceController extends BasePreferenceController
+    implements LifecycleEventObserver {
+
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     @VisibleForTesting
     static final String KEY_POINTER_FILL_STYLE = "pointer_fill_style";
 
     public PointerFillStylePreferenceController(@NonNull Context context) {
         super(context, KEY_POINTER_FILL_STYLE);
+
+        mMetricsFeatureProvider =
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @AvailabilityStatus
@@ -64,4 +78,17 @@
             }
         });
     }
+
+    @Override
+    public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
+            @NonNull Lifecycle.Event event) {
+        if (event == Lifecycle.Event.ON_PAUSE) {
+            int currentValue =
+                    Settings.System.getIntForUser(mContext.getContentResolver(),
+                            Settings.System.POINTER_FILL_STYLE,
+                            POINTER_ICON_VECTOR_STYLE_FILL_BLACK, UserHandle.USER_CURRENT);
+            mMetricsFeatureProvider.action(mContext,
+                        SettingsEnums.ACTION_POINTER_ICON_FILL_STYLE_CHANGED, currentValue);
+        }
+    }
 }
diff --git a/src/com/android/settings/inputmethod/PointerScaleSeekBarController.java b/src/com/android/settings/inputmethod/PointerScaleSeekBarController.java
new file mode 100644
index 0000000..509cdd6
--- /dev/null
+++ b/src/com/android/settings/inputmethod/PointerScaleSeekBarController.java
@@ -0,0 +1,121 @@
+/*
+ * 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 android.view.PointerIcon.DEFAULT_POINTER_SCALE;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.widget.SeekBar;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.LabeledSeekBarPreference;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+public class PointerScaleSeekBarController extends BasePreferenceController
+    implements LifecycleEventObserver {
+
+    private final int mProgressMin;
+    private final int mProgressMax;
+    private final float mScaleMin;
+    private final float mScaleMax;
+
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
+    public PointerScaleSeekBarController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+
+        Resources res =  context.getResources();
+        mProgressMin = res.getInteger(R.integer.pointer_scale_seek_bar_start);
+        mProgressMax = res.getInteger(R.integer.pointer_scale_seek_bar_end);
+        mScaleMin = res.getFloat(R.dimen.pointer_scale_size_start);
+        mScaleMax = res.getFloat(R.dimen.pointer_scale_size_end);
+
+        mMetricsFeatureProvider =
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+    }
+
+    @AvailabilityStatus
+    public int getAvailabilityStatus() {
+        return android.view.flags.Flags.enableVectorCursorA11ySettings() ? AVAILABLE
+                : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        LabeledSeekBarPreference seekBarPreference = screen.findPreference(getPreferenceKey());
+        seekBarPreference.setMax(mProgressMax);
+        seekBarPreference.setContinuousUpdates(/* continuousUpdates= */ true);
+        seekBarPreference.setProgress(scaleToProgress(
+                Settings.System.getFloatForUser(mContext.getContentResolver(),
+                        Settings.System.POINTER_SCALE, DEFAULT_POINTER_SCALE,
+                        UserHandle.USER_CURRENT)));
+        seekBarPreference.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+            @Override
+            public void onProgressChanged(@NonNull SeekBar seekBar, int progress,
+                    boolean fromUser) {
+                Settings.System.putFloatForUser(mContext.getContentResolver(),
+                        Settings.System.POINTER_SCALE, progressToScale(progress),
+                        UserHandle.USER_CURRENT);
+            }
+
+            @Override
+            public void onStartTrackingTouch(@NonNull SeekBar seekBar) {}
+
+            @Override
+            public void onStopTrackingTouch(@NonNull SeekBar seekBar) {}
+        });
+    }
+
+    private float progressToScale(int progress) {
+        return (((progress - mProgressMin) * (mScaleMax - mScaleMin)) / (mProgressMax
+                - mProgressMin)) + mScaleMin;
+    }
+
+    private int scaleToProgress(float scale) {
+        return (int) (
+                (((scale - mScaleMin) * (mProgressMax - mProgressMin)) / (mScaleMax - mScaleMin))
+                        + mProgressMin);
+    }
+
+    @Override
+    public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
+            @NonNull Lifecycle.Event event) {
+        if (event == Lifecycle.Event.ON_PAUSE) {
+            float currentValue =
+                    Settings.System.getFloatForUser(mContext.getContentResolver(),
+                            Settings.System.POINTER_SCALE, DEFAULT_POINTER_SCALE,
+                            UserHandle.USER_CURRENT);
+            mMetricsFeatureProvider.action(mContext,
+                        SettingsEnums.ACTION_POINTER_ICON_SCALE_CHANGED,
+                        Float.toString(currentValue));
+        }
+    }
+}
diff --git a/src/com/android/settings/inputmethod/PointerStrokeStylePreference.java b/src/com/android/settings/inputmethod/PointerStrokeStylePreference.java
new file mode 100644
index 0000000..1c02332
--- /dev/null
+++ b/src/com/android/settings/inputmethod/PointerStrokeStylePreference.java
@@ -0,0 +1,75 @@
+/*
+ * 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 android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_BLACK;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_NONE;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_WHITE;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.util.AttributeSet;
+import android.view.PointerIcon;
+import android.widget.LinearLayout;
+import android.widget.RadioButton;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+public class PointerStrokeStylePreference extends Preference {
+
+    public PointerStrokeStylePreference(@NonNull Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+        setLayoutResource(R.layout.pointer_icon_stroke_style_layout);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        LinearLayout buttonHolder = (LinearLayout) holder.findViewById(R.id.button_holder);
+        // Intercept hover events so setting row does not highlight when hovering buttons.
+        buttonHolder.setOnHoverListener((v, e) -> true);
+
+        int currentStroke = getPreferenceDataStore().getInt(Settings.System.POINTER_STROKE_STYLE,
+                POINTER_ICON_VECTOR_STYLE_STROKE_WHITE);
+        initRadioButton(holder, R.id.stroke_style_white, POINTER_ICON_VECTOR_STYLE_STROKE_WHITE,
+                currentStroke);
+        initRadioButton(holder, R.id.stroke_style_black, POINTER_ICON_VECTOR_STYLE_STROKE_BLACK,
+                currentStroke);
+        initRadioButton(holder, R.id.stroke_style_none, POINTER_ICON_VECTOR_STYLE_STROKE_NONE,
+                currentStroke);
+    }
+
+    private void initRadioButton(@NonNull PreferenceViewHolder holder, int id, int strokeStyle,
+            int currentStroke) {
+        RadioButton radioButton = (RadioButton) holder.findViewById(id);
+        if (radioButton == null) {
+            return;
+        }
+        radioButton.setOnCheckedChangeListener((v, isChecked) -> {
+            if (isChecked) {
+                getPreferenceDataStore().putInt(Settings.System.POINTER_STROKE_STYLE, strokeStyle);
+            }
+        });
+        radioButton.setChecked(currentStroke == strokeStyle);
+        radioButton.setPointerIcon(PointerIcon.getSystemIcon(getContext(), PointerIcon.TYPE_ARROW));
+    }
+}
diff --git a/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java b/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java
new file mode 100644
index 0000000..714e7b5
--- /dev/null
+++ b/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceController.java
@@ -0,0 +1,94 @@
+/*
+ * 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 android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_WHITE;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceDataStore;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+public class PointerStrokeStylePreferenceController extends BasePreferenceController
+    implements LifecycleEventObserver {
+
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
+    @VisibleForTesting
+    static final String KEY_POINTER_STROKE_STYLE = "pointer_stroke_style";
+
+    public PointerStrokeStylePreferenceController(@NonNull Context context) {
+        super(context, KEY_POINTER_STROKE_STYLE);
+
+        mMetricsFeatureProvider =
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+    }
+
+    @AvailabilityStatus
+    public int getAvailabilityStatus() {
+        return android.view.flags.Flags.enableVectorCursorA11ySettings() ? AVAILABLE
+                : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        Preference pointerStrokeStylePreference = screen.findPreference(KEY_POINTER_STROKE_STYLE);
+        if (pointerStrokeStylePreference == null) {
+            return;
+        }
+        pointerStrokeStylePreference.setPreferenceDataStore(new PreferenceDataStore() {
+            @Override
+            public void putInt(@NonNull String key, int value) {
+                Settings.System.putIntForUser(mContext.getContentResolver(), key, value,
+                        UserHandle.USER_CURRENT);
+            }
+
+            @Override
+            public int getInt(@NonNull String key, int defValue) {
+                return Settings.System.getIntForUser(mContext.getContentResolver(), key, defValue,
+                        UserHandle.USER_CURRENT);
+            }
+        });
+    }
+
+    @Override
+        public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
+                @NonNull Lifecycle.Event event) {
+            if (event == Lifecycle.Event.ON_PAUSE) {
+                int currentValue =
+                        Settings.System.getIntForUser(mContext.getContentResolver(),
+                                Settings.System.POINTER_STROKE_STYLE,
+                                POINTER_ICON_VECTOR_STYLE_STROKE_WHITE, UserHandle.USER_CURRENT);
+                mMetricsFeatureProvider.action(mContext,
+                            SettingsEnums.ACTION_POINTER_ICON_STROKE_STYLE_CHANGED, currentValue);
+            }
+        }
+}
diff --git a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
index 648a3e6..12dc076 100644
--- a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
@@ -16,8 +16,11 @@
 
 package com.android.settings.inputmethod;
 
+import static com.android.systemui.shared.Flags.newTouchpadGesturesTutorial;
+
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.content.Intent;
 import android.util.FeatureFlagUtils;
 
 import androidx.fragment.app.Fragment;
@@ -34,6 +37,7 @@
     private static final int ORDER_BOTTOM = 100;
     private static final String PREFERENCE_KEY = "trackpad_touch_gesture";
     private static final String GESTURE_DIALOG_TAG = "GESTURE_DIALOG_TAG";
+    private static final String TUTORIAL_ACTION = "com.android.systemui.action.TOUCHPAD_TUTORIAL";
 
     private Fragment mParent;
     private MetricsFeatureProvider mMetricsFeatureProvider;
@@ -68,13 +72,21 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad();
+        return isTouchpad ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     private void showTouchpadGestureEducation() {
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LEARN_TOUCHPAD_GESTURE_CLICK);
-        TrackpadGestureDialogFragment fragment = new TrackpadGestureDialogFragment();
-        fragment.setTargetFragment(mParent, 0);
-        fragment.show(mParent.getActivity().getSupportFragmentManager(), GESTURE_DIALOG_TAG);
+        if (newTouchpadGesturesTutorial()) {
+            Intent intent = new Intent(TUTORIAL_ACTION);
+            intent.addCategory(Intent.CATEGORY_DEFAULT);
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            mContext.startActivity(intent);
+        } else {
+            TrackpadGestureDialogFragment fragment = new TrackpadGestureDialogFragment();
+            fragment.setTargetFragment(mParent, 0);
+            fragment.show(mParent.getActivity().getSupportFragmentManager(), GESTURE_DIALOG_TAG);
+        }
     }
 }
diff --git a/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
index d410a1b..a92ebd4 100644
--- a/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
@@ -49,7 +49,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad();
+        return isTouchpad ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
index 042126d..ca086a9 100644
--- a/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
@@ -49,7 +49,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad();
+        return isTouchpad ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/inputmethod/TrackpadSettings.java b/src/com/android/settings/inputmethod/TrackpadSettings.java
index 4955933..dca418a 100644
--- a/src/com/android/settings/inputmethod/TrackpadSettings.java
+++ b/src/com/android/settings/inputmethod/TrackpadSettings.java
@@ -56,7 +56,8 @@
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
                     return FeatureFlagUtils
-                            .isEnabled(context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD);
+                            .isEnabled(context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD)
+                            && NewKeyboardSettingsUtils.isTouchpad();
                 }
             };
 }
diff --git a/src/com/android/settings/inputmethod/TrackpadSettingsController.java b/src/com/android/settings/inputmethod/TrackpadSettingsController.java
index 3de58e4..d88b282 100644
--- a/src/com/android/settings/inputmethod/TrackpadSettingsController.java
+++ b/src/com/android/settings/inputmethod/TrackpadSettingsController.java
@@ -84,6 +84,10 @@
         boolean isFeatureOn = FeatureFlagUtils
                 .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD);
         boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad();
-        return (isFeatureOn && isTouchpad) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+        boolean isPointerCustomizationEnabled =
+                android.view.flags.Flags.enableVectorCursorA11ySettings();
+        boolean isMouse = NewKeyboardSettingsUtils.isMouse();
+        return (isFeatureOn && isTouchpad) || (isPointerCustomizationEnabled && isMouse) ? AVAILABLE
+                : CONDITIONALLY_UNAVAILABLE;
     }
 }
diff --git a/src/com/android/settings/inputmethod/TrackpadTapDraggingPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadTapDraggingPreferenceController.java
index 30253a8..b2bb617 100644
--- a/src/com/android/settings/inputmethod/TrackpadTapDraggingPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadTapDraggingPreferenceController.java
@@ -49,7 +49,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return InputSettings.isTouchpadTapDraggingFeatureFlagEnabled()
+        boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad();
+        return (InputSettings.isTouchpadTapDraggingFeatureFlagEnabled() && isTouchpad)
                 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
diff --git a/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
index f78c81e..c25cc4e 100644
--- a/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
@@ -49,7 +49,8 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE;
+        boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad();
+        return isTouchpad ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
index 9a4b90f..a6af3f6 100644
--- a/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
+++ b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
@@ -58,7 +58,8 @@
                     return FeatureFlagUtils
                             .isEnabled(
                                     context,
-                                    FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD_GESTURE);
+                                    FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD_GESTURE)
+                            && NewKeyboardSettingsUtils.isTouchpad();
                 }
             };
 }
diff --git a/src/com/android/settings/inputmethod/TrackpadTouchGestureSettingsController.java b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettingsController.java
index 8f04aee..7949727 100644
--- a/src/com/android/settings/inputmethod/TrackpadTouchGestureSettingsController.java
+++ b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettingsController.java
@@ -31,6 +31,7 @@
     public int getAvailabilityStatus() {
         boolean isFeatureOn = FeatureFlagUtils
                 .isEnabled(mContext, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_TRACKPAD_GESTURE);
-        return isFeatureOn ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+        boolean isTouchpad = NewKeyboardSettingsUtils.isTouchpad();
+        return (isFeatureOn && isTouchpad) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 }
diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
index b284c8d..2294b9b 100644
--- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java
+++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
@@ -37,6 +37,7 @@
 import android.widget.FrameLayout;
 import android.widget.ListView;
 
+import androidx.annotation.Nullable;
 import androidx.core.app.NotificationCompat;
 import androidx.core.view.ViewCompat;
 
@@ -67,6 +68,7 @@
     private View mAppLocaleDetailContainer;
     private NotificationController mNotificationController;
     private MetricsFeatureProvider mMetricsFeatureProvider;
+    @Nullable private String mParentLocale;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -130,6 +132,11 @@
     }
 
     @Override
+    public void onParentLocaleSelected(LocaleStore.LocaleInfo localeInfo) {
+        mParentLocale = localeInfo.getFullNameNative();
+    }
+
+    @Override
     public boolean onMenuItemActionCollapse(MenuItem item) {
         mAppBarLayout.setExpanded(false /*expanded*/, false /*animate*/);
         ViewCompat.setNestedScrollingEnabled(mAppLocaleDetails.getListView(), true);
@@ -258,6 +265,12 @@
                         super.onFragmentViewCreated(fm, f, v, s);
                         ListView listView = (ListView) v.findViewById(android.R.id.list);
                         if (listView != null) {
+                            if (mParentLocale != null) {
+                                mAppLocaleDetails = AppLocaleDetails.newInstance(mPackageName,
+                                        getUserId());
+                                mAppLocaleDetailContainer = launchAppLocaleDetailsPage();
+                                mAppLocaleDetails.setParentLocale(mParentLocale);
+                            }
                             listView.addHeaderView(mAppLocaleDetailContainer);
                         }
                     }
diff --git a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java
index 6e596e1..05cb6a4 100644
--- a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java
+++ b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java
@@ -39,6 +39,7 @@
         implements LocalePickerWithRegion.LocaleSelectedListener, MenuItem.OnActionExpandListener {
     private static final String TAG = LocalePickerWithRegionActivity.class.getSimpleName();
     private static final String PARENT_FRAGMENT_NAME = "localeListEditor";
+    private static final String CHILD_FRAGMENT_NAME = "LocalePickerWithRegion";
 
     private LocalePickerWithRegion mSelector;
 
@@ -68,12 +69,15 @@
                 explicitLocales,
                 null /* appPackageName */,
                 this);
-        getFragmentManager()
-                .beginTransaction()
-                .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
-                .replace(R.id.content_frame, mSelector)
-                .addToBackStack(PARENT_FRAGMENT_NAME)
-                .commit();
+
+        if (getFragmentManager().findFragmentByTag(CHILD_FRAGMENT_NAME) == null) {
+            getFragmentManager()
+                    .beginTransaction()
+                    .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
+                    .replace(R.id.content_frame, mSelector, CHILD_FRAGMENT_NAME)
+                    .addToBackStack(PARENT_FRAGMENT_NAME)
+                    .commit();
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java
index b1f6e50..d4bd4a3 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -162,7 +162,8 @@
     public void onResume() {
         try {
             mIsSatelliteOn.set(
-                    mSatelliteRepository.requestIsEnabled(Executors.newSingleThreadExecutor())
+                    mSatelliteRepository
+                            .requestIsSessionStarted(Executors.newSingleThreadExecutor())
                             .get(2000, TimeUnit.MILLISECONDS));
         } catch (ExecutionException | TimeoutException | InterruptedException e) {
             Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/network/InternetPreferenceControllerV2.kt b/src/com/android/settings/network/InternetPreferenceControllerV2.kt
index a181abd..3c79342 100644
--- a/src/com/android/settings/network/InternetPreferenceControllerV2.kt
+++ b/src/com/android/settings/network/InternetPreferenceControllerV2.kt
@@ -28,7 +28,7 @@
 class InternetPreferenceControllerV2(context: Context, preferenceKey: String) :
     BasePreferenceController(context, preferenceKey) {
 
-    private val repository = InternetPreferenceRepository(mContext)
+    private val repository by lazy { InternetPreferenceRepository(mContext) }
     private var preference: Preference? = null
 
     override fun getAvailabilityStatus() =
diff --git a/src/com/android/settings/network/MobileDataEnabledFlow.kt b/src/com/android/settings/network/MobileDataEnabledFlow.kt
deleted file mode 100644
index 1f995a9..0000000
--- a/src/com/android/settings/network/MobileDataEnabledFlow.kt
+++ /dev/null
@@ -1,43 +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.network
-
-import android.content.Context
-import android.provider.Settings
-import android.telephony.SubscriptionManager
-import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalChangeFlow
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.merge
-
-/**
- * Flow for mobile data enabled changed event.
- *
- * Note: This flow can only notify enabled status changes, cannot provide the latest status.
- */
-fun Context.mobileDataEnabledFlow(subId: Int, sendInitialValue: Boolean = true): Flow<Unit> {
-    val flow = settingsGlobalChangeFlow(Settings.Global.MOBILE_DATA, sendInitialValue)
-    return when (subId) {
-        SubscriptionManager.INVALID_SUBSCRIPTION_ID -> flow
-        else -> {
-            val subIdFlow = settingsGlobalChangeFlow(
-                name = Settings.Global.MOBILE_DATA + subId,
-                sendInitialValue = false,
-            )
-            merge(flow, subIdFlow)
-        }
-    }
-}
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index 8ee5389..f5763eb 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -29,7 +29,6 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyCallback;
 import android.telephony.TelephonyManager;
-import android.telephony.UiccCardInfo;
 import android.telephony.UiccPortInfo;
 import android.telephony.UiccSlotInfo;
 import android.util.ArrayMap;
@@ -41,7 +40,6 @@
 import androidx.lifecycle.LifecycleOwner;
 
 import com.android.internal.telephony.flags.Flags;
-import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.mobile.dataservice.MobileNetworkDatabase;
@@ -49,7 +47,6 @@
 import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoDao;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-import com.android.settingslib.mobile.dataservice.UiccInfoDao;
 import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
 
 import java.util.ArrayList;
@@ -81,23 +78,13 @@
     private SubscriptionManager mSubscriptionManager;
     private MobileNetworkDatabase mMobileNetworkDatabase;
     private SubscriptionInfoDao mSubscriptionInfoDao;
-    private UiccInfoDao mUiccInfoDao;
     private MobileNetworkInfoDao mMobileNetworkInfoDao;
     private List<SubscriptionInfoEntity> mAvailableSubInfoEntityList = new ArrayList<>();
     private List<SubscriptionInfoEntity> mActiveSubInfoEntityList = new ArrayList<>();
-    private List<UiccInfoEntity> mUiccInfoEntityList = new ArrayList<>();
-    private List<MobileNetworkInfoEntity> mMobileNetworkInfoEntityList = new ArrayList<>();
     private Context mContext;
     private AirplaneModeObserver mAirplaneModeObserver;
-    private DataRoamingObserver mDataRoamingObserver;
     private MetricsFeatureProvider mMetricsFeatureProvider;
     private int mPhysicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
-    private int mLogicalSlotIndex = SubscriptionManager.INVALID_SIM_SLOT_INDEX;
-    private int mCardState = UiccSlotInfo.CARD_STATE_INFO_ABSENT;
-    private int mPortIndex = TelephonyManager.INVALID_PORT_INDEX;
-    private int mCardId = TelephonyManager.UNINITIALIZED_CARD_ID;
-    private boolean mIsEuicc = false;
-    private boolean mIsRemovable = false;
     private boolean mIsActive = false;
     private Map<Integer, SubscriptionInfo> mSubscriptionInfoMap = new ArrayMap<>();
     private Map<Integer, TelephonyManager> mTelephonyManagerMap = new HashMap<>();
@@ -124,10 +111,8 @@
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_MOBILE_NETWORK_DB_CREATED);
         mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
         mSubscriptionInfoDao = mMobileNetworkDatabase.mSubscriptionInfoDao();
-        mUiccInfoDao = mMobileNetworkDatabase.mUiccInfoDao();
         mMobileNetworkInfoDao = mMobileNetworkDatabase.mMobileNetworkInfoDao();
         mAirplaneModeObserver = new AirplaneModeObserver(new Handler(Looper.getMainLooper()));
-        mDataRoamingObserver = new DataRoamingObserver(new Handler(Looper.getMainLooper()));
     }
 
     private class AirplaneModeObserver extends ContentObserver {
@@ -158,47 +143,6 @@
         }
     }
 
-    private class DataRoamingObserver extends ContentObserver {
-        private int mRegSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-        private String mBaseField = Settings.Global.DATA_ROAMING;
-
-        DataRoamingObserver(Handler handler) {
-            super(handler);
-        }
-
-        public void register(Context context, int subId) {
-            mRegSubId = subId;
-            String lastField = mBaseField;
-            createTelephonyManagerBySubId(subId);
-            TelephonyManager tm = mTelephonyManagerMap.get(subId);
-            if (tm.getSimCount() != 1) {
-                lastField += subId;
-            }
-            context.getContentResolver().registerContentObserver(
-                    Settings.Global.getUriFor(lastField), false, this);
-        }
-
-        public void unRegister(Context context) {
-            context.getContentResolver().unregisterContentObserver(this);
-        }
-
-        @Override
-        public void onChange(boolean selfChange, Uri uri) {
-            TelephonyManager tm = mTelephonyManagerMap.get(mRegSubId);
-            if (tm == null) {
-                return;
-            }
-            sExecutor.execute(() -> {
-                Log.d(TAG, "DataRoamingObserver changed");
-                insertMobileNetworkInfo(mContext, mRegSubId, tm);
-            });
-            boolean isDataRoamingEnabled = tm.isDataRoamingEnabled();
-            for (MobileNetworkCallback callback : sCallbacks) {
-                callback.onDataRoamingChanged(mRegSubId, isDataRoamingEnabled);
-            }
-        }
-    }
-
     /**
      * Register all callbacks and listener.
      *
@@ -224,7 +168,6 @@
         observeAllMobileNetworkInfo(lifecycleOwner);
         if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             createTelephonyManagerBySubId(subId);
-            mDataRoamingObserver.register(mContext, subId);
         }
         // When one client registers callback first time, convey the cached results to the client
         // so that the client is aware of the content therein.
@@ -288,7 +231,6 @@
         if (sCallbacks.isEmpty()) {
             mSubscriptionManager.removeOnSubscriptionsChangedListener(this);
             mAirplaneModeObserver.unRegister(mContext);
-            mDataRoamingObserver.unRegister(mContext);
 
             mTelephonyManagerMap.forEach((id, manager) -> {
                 TelephonyCallback callback = mTelephonyCallbackMap.get(id);
@@ -338,22 +280,6 @@
                 lifecycleOwner, this::onAllMobileNetworkInfoChanged);
     }
 
-    public List<SubscriptionInfoEntity> getAvailableSubInfoEntityList() {
-        return mAvailableSubInfoEntityList;
-    }
-
-    public List<SubscriptionInfoEntity> getActiveSubscriptionInfoList() {
-        return mActiveSubInfoEntityList;
-    }
-
-    public List<UiccInfoEntity> getUiccInfoEntityList() {
-        return mUiccInfoEntityList;
-    }
-
-    public List<MobileNetworkInfoEntity> getMobileNetworkInfoEntityList() {
-        return mMobileNetworkInfoEntityList;
-    }
-
     public SubscriptionInfoEntity getSubInfoById(String subId) {
         return mSubscriptionInfoDao.querySubInfoById(subId);
     }
@@ -368,19 +294,13 @@
             UiccSlotInfo curSlotInfo = uiccSlotInfos[i];
             if (curSlotInfo != null && curSlotInfo.getCardStateInfo() == CARD_STATE_INFO_PRESENT) {
                 final int index = i;
-                mIsEuicc = curSlotInfo.getIsEuicc();
-                mCardState = curSlotInfo.getCardStateInfo();
-                mIsRemovable = curSlotInfo.isRemovable();
-                mCardId = subInfo.getCardId();
 
                 Collection<UiccPortInfo> uiccPortInfos = curSlotInfo.getPorts();
                 uiccPortInfos.forEach(portInfo -> {
                     if (portInfo.getPortIndex() == subInfo.getPortIndex()
                             && portInfo.getLogicalSlotIndex() == subInfo.getSimSlotIndex()) {
                         mPhysicalSlotIndex = index;
-                        mLogicalSlotIndex = portInfo.getLogicalSlotIndex();
                         mIsActive = portInfo.isActive();
-                        mPortIndex = portInfo.getPortIndex();
                     } else if (DEBUG) {
                         Log.d(TAG, "Can not get port index and physicalSlotIndex for subId "
                                 + subInfo.getSubscriptionId());
@@ -464,7 +384,6 @@
     }
 
     private void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
-        mUiccInfoEntityList = new ArrayList<>(uiccInfoEntityList);
         for (MobileNetworkCallback callback : sCallbacks) {
             callback.onAllUiccInfoChanged(uiccInfoEntityList);
         }
@@ -474,7 +393,6 @@
 
     private void onAllMobileNetworkInfoChanged(
             List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
-        mMobileNetworkInfoEntityList = new ArrayList<>(mobileNetworkInfoEntityList);
         for (MobileNetworkCallback callback : sCallbacks) {
             callback.onAllMobileNetworkInfoChanged(mobileNetworkInfoEntityList);
         }
@@ -502,8 +420,8 @@
                 mMobileNetworkDatabase.insertSubsInfo(subInfoEntity);
                 mMetricsFeatureProvider.action(mContext,
                         SettingsEnums.ACTION_MOBILE_NETWORK_DB_INSERT_SUB_INFO, subId);
-                insertUiccInfo(subId, telephonyManager);
-                insertMobileNetworkInfo(context, subId, telephonyManager);
+                insertUiccInfo(subId);
+                insertMobileNetworkInfo(subId, telephonyManager);
             }
         } else if (DEBUG) {
             Log.d(TAG, "Can not insert subInfo, the entity is null");
@@ -515,8 +433,6 @@
         mMobileNetworkDatabase.deleteSubInfoBySubId(subId);
         mMobileNetworkDatabase.deleteUiccInfoBySubId(subId);
         mMobileNetworkDatabase.deleteMobileNetworkInfoBySubId(subId);
-        mUiccInfoEntityList.removeIf(info -> info.subId.equals(subId));
-        mMobileNetworkInfoEntityList.removeIf(info -> info.subId.equals(subId));
         int id = Integer.parseInt(subId);
         removerRegisterBySubId(id);
         mSubscriptionInfoMap.remove(id);
@@ -545,36 +461,22 @@
             return null;
         } else {
             getUiccInfoBySubscriptionInfo(uiccSlotInfos, subInfo);
-            SubscriptionInfo firstRemovableSubInfo = SubscriptionUtil.getFirstRemovableSubscription(
-                    context);
             if (DEBUG) {
                 Log.d(TAG, "convert subscriptionInfo to entity for subId = " + subId);
             }
-            return new SubscriptionInfoEntity(String.valueOf(subId),
-                    subInfo.getSimSlotIndex(),
-                    subInfo.getCarrierId(), subInfo.getDisplayName().toString(),
-                    subInfo.getCarrierName() != null ? subInfo.getCarrierName().toString() : "",
-                    subInfo.getDataRoaming(), subInfo.getMccString(), subInfo.getMncString(),
-                    subInfo.getCountryIso(), subInfo.isEmbedded(), mCardId,
-                    subInfo.getPortIndex(), subInfo.isOpportunistic(),
-                    String.valueOf(subInfo.getGroupUuid()),
-                    subInfo.getSubscriptionType(),
+            return new SubscriptionInfoEntity(String.valueOf(subId), subInfo.getSimSlotIndex(),
+                    subInfo.isEmbedded(), subInfo.isOpportunistic(),
                     SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, context).toString(),
                     SubscriptionUtil.isSubscriptionVisible(mSubscriptionManager, context, subInfo),
-                    SubscriptionUtil.getFormattedPhoneNumber(context, subInfo),
-                    firstRemovableSubInfo == null ? false
-                            : firstRemovableSubInfo.getSubscriptionId() == subId,
                     SubscriptionUtil.isDefaultSubscription(context, subId),
                     mSubscriptionManager.isValidSubscriptionId(subId),
-                    mSubscriptionManager.isUsableSubscriptionId(subId),
                     mSubscriptionManager.isActiveSubscriptionId(subId),
-                    true /*availableSubInfo*/,
                     mSubscriptionManager.getActiveDataSubscriptionId() == subId);
         }
     }
 
-    private void insertUiccInfo(int subId, TelephonyManager telephonyManager) {
-        UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity(subId, telephonyManager);
+    private void insertUiccInfo(int subId) {
+        UiccInfoEntity uiccInfoEntity = convertToUiccInfoEntity(subId);
         if (DEBUG) {
             Log.d(TAG, "uiccInfoEntity = " + uiccInfoEntity);
         }
@@ -587,20 +489,13 @@
         }
     }
 
-    private void insertMobileNetworkInfo(Context context, int subId,
-            TelephonyManager telephonyManager) {
-        MobileNetworkInfoEntity mobileNetworkInfoEntity = convertToMobileNetworkInfoEntity(context,
-                subId, telephonyManager);
-
+    private void insertMobileNetworkInfo(int subId, TelephonyManager telephonyManager) {
+        MobileNetworkInfoEntity mobileNetworkInfoEntity =
+                convertToMobileNetworkInfoEntity(subId, telephonyManager);
 
         Log.d(TAG, "insertMobileNetworkInfo, mobileNetworkInfoEntity = "
                 + mobileNetworkInfoEntity);
 
-
-        if (mobileNetworkInfoEntity == null) {
-            return;
-        }
-
         if (!sCacheMobileNetworkInfoEntityMap.containsKey(subId)
                 || !sCacheMobileNetworkInfoEntityMap.get(subId).equals(mobileNetworkInfoEntity)) {
             sCacheMobileNetworkInfoEntityMap.put(subId, mobileNetworkInfoEntity);
@@ -610,53 +505,22 @@
         }
     }
 
-    private MobileNetworkInfoEntity convertToMobileNetworkInfoEntity(Context context, int subId,
+    private MobileNetworkInfoEntity convertToMobileNetworkInfoEntity(int subId,
             TelephonyManager telephonyManager) {
         boolean isDataEnabled = false;
-        boolean isDataRoamingEnabled = false;
         if (telephonyManager != null) {
             isDataEnabled = telephonyManager.isDataEnabled();
-            isDataRoamingEnabled = telephonyManager.isDataRoamingEnabled();
         } else {
             Log.d(TAG, "TelephonyManager is null, subId = " + subId);
         }
 
-        return new MobileNetworkInfoEntity(String.valueOf(subId),
-                MobileNetworkUtils.isContactDiscoveryEnabled(context, subId),
-                MobileNetworkUtils.isContactDiscoveryVisible(context, subId),
-                isDataEnabled,
-                MobileNetworkUtils.isCdmaOptions(context, subId),
-                MobileNetworkUtils.isGsmOptions(context, subId),
-                MobileNetworkUtils.isWorldMode(context, subId),
-                MobileNetworkUtils.shouldDisplayNetworkSelectOptions(context, subId),
-                MobileNetworkUtils.isTdscdmaSupported(context, subId),
-                MobileNetworkUtils.activeNetworkIsCellular(context),
-                SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager),
-                isDataRoamingEnabled
+        return new MobileNetworkInfoEntity(String.valueOf(subId), isDataEnabled,
+                SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)
         );
     }
 
-    private UiccInfoEntity convertToUiccInfoEntity(int subId, TelephonyManager telephonyManager) {
-        return new UiccInfoEntity(String.valueOf(subId), String.valueOf(mPhysicalSlotIndex),
-                mLogicalSlotIndex, mCardId, mIsEuicc,
-                isMultipleEnabledProfilesSupported(telephonyManager), mCardState, mIsRemovable,
-                mIsActive, mPortIndex
-        );
-    }
-
-    private boolean isMultipleEnabledProfilesSupported(TelephonyManager telephonyManager) {
-        if (telephonyManager == null) {
-            Log.d(TAG, "TelephonyManager is null");
-            return false;
-        }
-
-        List<UiccCardInfo> cardInfos = telephonyManager.getUiccCardsInfo();
-        if (cardInfos == null) {
-            Log.d(TAG, "UICC card info list is empty.");
-            return false;
-        }
-        return cardInfos.stream().anyMatch(
-                cardInfo -> cardInfo.isMultipleEnabledProfilesSupported());
+    private UiccInfoEntity convertToUiccInfoEntity(int subId) {
+        return new UiccInfoEntity(String.valueOf(subId), mIsActive);
     }
 
     @Override
@@ -741,7 +605,6 @@
     }
 
     private class PhoneCallStateTelephonyCallback extends TelephonyCallback implements
-            TelephonyCallback.CallStateListener,
             TelephonyCallback.UserMobileDataStateListener {
 
         private int mSubId;
@@ -751,18 +614,10 @@
         }
 
         @Override
-        public void onCallStateChanged(int state) {
-            for (MobileNetworkCallback callback : sCallbacks) {
-                callback.onCallStateChanged(state);
-            }
-        }
-
-        @Override
         public void onUserMobileDataStateChanged(boolean enabled) {
             Log.d(TAG, "onUserMobileDataStateChanged enabled " + enabled + " on SUB " + mSubId);
             sExecutor.execute(() -> {
-                insertMobileNetworkInfo(mContext, mSubId,
-                        getTelephonyManagerBySubId(mContext, mSubId));
+                insertMobileNetworkInfo(mSubId, getTelephonyManagerBySubId(mContext, mSubId));
             });
         }
     }
@@ -787,15 +642,6 @@
 
         default void onAirplaneModeChanged(boolean enabled) {
         }
-
-        /**
-         * Notify clients data roaming changed of subscription.
-         */
-        default void onDataRoamingChanged(int subId, boolean enabled) {
-        }
-
-        default void onCallStateChanged(int state) {
-        }
     }
 
     public void dump(IndentingPrintWriter printwriter) {
@@ -803,8 +649,6 @@
         printwriter.increaseIndent();
         printwriter.println(" availableSubInfoEntityList= " + mAvailableSubInfoEntityList);
         printwriter.println(" activeSubInfoEntityList=" + mActiveSubInfoEntityList);
-        printwriter.println(" mobileNetworkInfoEntityList= " + mMobileNetworkInfoEntityList);
-        printwriter.println(" uiccInfoEntityList= " + mUiccInfoEntityList);
         printwriter.println(" CacheSubscriptionInfoEntityMap= " + sCacheSubscriptionInfoEntityMap);
         printwriter.println(" SubscriptionInfoMap= " + mSubscriptionInfoMap);
         printwriter.flush();
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index a4193f8..e240682 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -36,6 +36,7 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.EventLog;
@@ -370,7 +371,7 @@
         mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
         mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
         mDataUsagePreference.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI)
-                        .build(), 0 /*subId*/);
+                        .build(), SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         mResetInternetPreference = findPreference(PREF_KEY_RESET_INTERNET);
         if (mResetInternetPreference != null) {
             mResetInternetPreference.setVisible(false);
@@ -1067,6 +1068,10 @@
     @VisibleForTesting
     void launchNetworkDetailsFragment(LongPressWifiEntryPreference pref) {
         final WifiEntry wifiEntry = pref.getWifiEntry();
+        if (!wifiEntry.isSaved()) {
+            Log.w(TAG, "launchNetworkDetailsFragment: Don't launch because WifiEntry isn't saved!");
+            return;
+        }
         final Context context = requireContext();
 
         final Bundle bundle = new Bundle();
diff --git a/src/com/android/settings/network/NetworkProviderSimListController.java b/src/com/android/settings/network/NetworkProviderSimListController.java
index 46a66a6..51059a7 100644
--- a/src/com/android/settings/network/NetworkProviderSimListController.java
+++ b/src/com/android/settings/network/NetworkProviderSimListController.java
@@ -113,7 +113,7 @@
                     if (!info.isEmbedded && !isActiveSubscriptionId
                             && !SubscriptionUtil.showToggleForPhysicalSim(mSubscriptionManager)) {
                         SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId,
-                                true);
+                                true, false);
                     } else {
                         MobileNetworkUtils.launchMobileNetworkSettings(mContext, info);
                     }
diff --git a/src/com/android/settings/network/ProviderModelSliceHelper.java b/src/com/android/settings/network/ProviderModelSliceHelper.java
index 686990b..c60594d 100644
--- a/src/com/android/settings/network/ProviderModelSliceHelper.java
+++ b/src/com/android/settings/network/ProviderModelSliceHelper.java
@@ -264,7 +264,8 @@
         }
         String summary = networkTypeDescription;
         if (isDataSimActive()) {
-            summary = mContext.getString(R.string.preference_summary_default_combination,
+            summary = mContext.getString(
+                    com.android.settingslib.R.string.preference_summary_default_combination,
                     mContext.getString(R.string.mobile_data_connection_active),
                     networkTypeDescription);
         }
diff --git a/src/com/android/settings/network/ResetNetworkOperationBuilder.java b/src/com/android/settings/network/ResetNetworkOperationBuilder.java
index 47c06d4..dfcca52 100644
--- a/src/com/android/settings/network/ResetNetworkOperationBuilder.java
+++ b/src/com/android/settings/network/ResetNetworkOperationBuilder.java
@@ -65,6 +65,8 @@
 
     private Context mContext;
     private List<Runnable> mResetSequence = new ArrayList<Runnable>();
+    @Nullable
+    private Consumer<Boolean> mResetEsimResultCallback = null;
 
     /**
      * Constructor of builder.
@@ -129,31 +131,32 @@
     }
 
     /**
-     * Append a step of resetting E-SIM.
-     * @param callerPackage package name of caller
+     * Append a result callback of resetting E-SIM.
+     * @param resultCallback a callback dealing with result of resetting eSIM
      * @return this
      */
-    public ResetNetworkOperationBuilder resetEsim(String callerPackage) {
-        resetEsim(callerPackage, null);
+    public ResetNetworkOperationBuilder resetEsimResultCallback(Consumer<Boolean> resultCallback) {
+        mResetEsimResultCallback = resultCallback;
         return this;
     }
 
     /**
      * Append a step of resetting E-SIM.
      * @param callerPackage package name of caller
-     * @param resultCallback a Consumer<Boolean> dealing with result of resetting eSIM
      * @return this
      */
-    public ResetNetworkOperationBuilder resetEsim(String callerPackage,
-            Consumer<Boolean> resultCallback) {
+    public ResetNetworkOperationBuilder resetEsim(String callerPackage) {
         Runnable runnable = () -> {
             long startTime = SystemClock.elapsedRealtime();
 
-            if (!DRY_RUN) {
-                Boolean wipped = RecoverySystem.wipeEuiccData(mContext, callerPackage);
-                if (resultCallback != null) {
-                    resultCallback.accept(wipped);
-                }
+            boolean wipped;
+            if (DRY_RUN) {
+                wipped = true;
+            } else {
+                wipped = RecoverySystem.wipeEuiccData(mContext, callerPackage);
+            }
+            if (mResetEsimResultCallback != null) {
+                mResetEsimResultCallback.accept(wipped);
             }
 
             long endTime = SystemClock.elapsedRealtime();
diff --git a/src/com/android/settings/network/SatelliteRepository.kt b/src/com/android/settings/network/SatelliteRepository.kt
index 565fbf3..b7c25f4 100644
--- a/src/com/android/settings/network/SatelliteRepository.kt
+++ b/src/com/android/settings/network/SatelliteRepository.kt
@@ -25,6 +25,7 @@
 import androidx.concurrent.futures.CallbackToFutureAdapter
 import com.google.common.util.concurrent.Futures.immediateFuture
 import com.google.common.util.concurrent.ListenableFuture
+import java.util.concurrent.Executor
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.asExecutor
@@ -32,7 +33,6 @@
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.callbackFlow
 import kotlinx.coroutines.flow.flowOf
-import java.util.concurrent.Executor
 import kotlinx.coroutines.flow.flowOn
 
 /**
@@ -58,20 +58,26 @@
         }
 
         return CallbackToFutureAdapter.getFuture { completer ->
-            satelliteManager.requestIsEnabled(executor,
-                object : OutcomeReceiver<Boolean, SatelliteManager.SatelliteException> {
-                    override fun onResult(result: Boolean) {
-                        Log.i(TAG, "Satellite modem enabled status: $result")
-                        completer.set(result)
-                    }
+            try {
+                satelliteManager.requestIsEnabled(executor,
+                    object : OutcomeReceiver<Boolean, SatelliteManager.SatelliteException> {
+                        override fun onResult(result: Boolean) {
+                            Log.i(TAG, "Satellite modem enabled status: $result")
+                            completer.set(result)
+                        }
 
-                    override fun onError(error: SatelliteManager.SatelliteException) {
-                        super.onError(error)
-                        Log.w(TAG, "Can't get satellite modem enabled status", error)
-                        completer.set(false)
-                    }
-                })
-            "requestIsEnabled"
+                        override fun onError(error: SatelliteManager.SatelliteException) {
+                            super.onError(error)
+                            Log.w(TAG, "Can't get satellite modem enabled status", error)
+                            completer.set(false)
+                        }
+                    })
+                "requestIsEnabled"
+            } catch (e: IllegalStateException) {
+                Log.w(TAG, "IllegalStateException $e")
+                completer.set(false)
+            }
+
         }
     }
 
@@ -96,14 +102,21 @@
             val callback = object : SatelliteModemStateCallback {
                 override fun onSatelliteModemStateChanged(state: Int) {
                     val isSessionStarted = isSatelliteSessionStarted(state)
-                    Log.i(TAG, "Satellite modem state changed: state=$state"
-                            + ", isSessionStarted=$isSessionStarted")
+                    Log.i(
+                        TAG, "Satellite modem state changed: state=$state"
+                            + ", isSessionStarted=$isSessionStarted"
+                    )
                     completer.set(isSessionStarted)
                     satelliteManager.unregisterForModemStateChanged(this)
                 }
             }
 
-            val registerResult = satelliteManager.registerForModemStateChanged(executor, callback)
+            var registerResult = SatelliteManager.SATELLITE_MODEM_STATE_UNKNOWN
+            try {
+                registerResult = satelliteManager.registerForModemStateChanged(executor, callback)
+            } catch (e: IllegalStateException) {
+                Log.w(TAG, "IllegalStateException $e")
+            }
             if (registerResult != SatelliteManager.SATELLITE_RESULT_SUCCESS) {
                 Log.w(TAG, "Failed to register for satellite modem state change: $registerResult")
                 completer.set(false)
@@ -132,15 +145,21 @@
         return callbackFlow {
             val callback = SatelliteModemStateCallback { state ->
                 val isSessionStarted = isSatelliteSessionStarted(state)
-                Log.i(TAG, "Satellite modem state changed: state=$state"
-                    + ", isSessionStarted=$isSessionStarted")
+                Log.i(
+                    TAG, "Satellite modem state changed: state=$state"
+                        + ", isSessionStarted=$isSessionStarted"
+                )
                 trySend(isSessionStarted)
             }
-
-            val registerResult = satelliteManager.registerForModemStateChanged(
-                defaultDispatcher.asExecutor(),
-                callback
-            )
+            var registerResult: Int = SatelliteManager.SATELLITE_RESULT_ERROR
+            try {
+                registerResult = satelliteManager.registerForModemStateChanged(
+                    defaultDispatcher.asExecutor(),
+                    callback
+                )
+            } catch (e: IllegalStateException) {
+                Log.w(TAG, "IllegalStateException $e")
+            }
 
             if (registerResult != SatelliteManager.SATELLITE_RESULT_SUCCESS) {
                 // If the registration failed (e.g., device doesn't support satellite),
@@ -150,7 +169,13 @@
                 trySend(false)
             }
 
-            awaitClose { satelliteManager.unregisterForModemStateChanged(callback) }
+            awaitClose {
+                try {
+                    satelliteManager.unregisterForModemStateChanged(callback)
+                } catch (e: IllegalStateException) {
+                    Log.w(TAG, "IllegalStateException $e")
+                }
+            }
         }.flowOn(Dispatchers.Default)
     }
 
diff --git a/src/com/android/settings/network/SimOnboardingActivity.kt b/src/com/android/settings/network/SimOnboardingActivity.kt
index bef10cd..e39966a 100644
--- a/src/com/android/settings/network/SimOnboardingActivity.kt
+++ b/src/com/android/settings/network/SimOnboardingActivity.kt
@@ -588,11 +588,14 @@
         fun startSimOnboardingActivity(
             context: Context,
             subId: Int,
+            isNewTask: Boolean = false,
         ) {
             val intent = Intent(context, SimOnboardingActivity::class.java).apply {
                 putExtra(SUB_ID, subId)
+                if(isNewTask) {
+                    setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+                }
             }
-            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
             context.startActivity(intent)
         }
 
diff --git a/src/com/android/settings/network/SimOnboardingService.kt b/src/com/android/settings/network/SimOnboardingService.kt
index f6c6065..e4f17e2 100644
--- a/src/com/android/settings/network/SimOnboardingService.kt
+++ b/src/com/android/settings/network/SimOnboardingService.kt
@@ -24,12 +24,11 @@
 import android.telephony.SubscriptionManager
 import android.telephony.TelephonyManager
 import android.telephony.UiccCardInfo
-import android.telephony.UiccSlotInfo
 import android.util.Log
 import com.android.settings.network.SimOnboardingActivity.Companion.CallbackType
-import com.android.settings.network.telephony.TelephonyRepository
+import com.android.settings.network.telephony.MobileDataRepository
+import com.android.settings.network.telephony.UiccSlotRepository
 import com.android.settings.sim.SimActivationNotifier
-import com.android.settings.spa.network.setAutomaticData
 import com.android.settings.spa.network.setDefaultData
 import com.android.settings.spa.network.setDefaultSms
 import com.android.settings.spa.network.setDefaultVoice
@@ -47,7 +46,6 @@
     var targetSubInfo: SubscriptionInfo? = null
     var availableSubInfoList: List<SubscriptionInfo> = listOf()
     var activeSubInfoList: List<SubscriptionInfo> = listOf()
-    var slotInfoList: List<UiccSlotInfo> = listOf()
     var uiccCardInfoList: List<UiccCardInfo> = listOf()
     var targetPrimarySimCalls: Int = INVALID_SUBSCRIPTION_ID
     var targetPrimarySimTexts: Int = INVALID_SUBSCRIPTION_ID
@@ -74,14 +72,6 @@
             }
             return  uiccCardInfoList.any { it.isMultipleEnabledProfilesSupported }
         }
-    var isRemovablePsimProfileEnabled: Boolean = false
-        get() {
-            if(slotInfoList.isEmpty()) {
-                Log.w(TAG, "UICC Slot info list is empty.")
-                return false
-            }
-            return UiccSlotUtil.isRemovableSimEnabled(slotInfoList)
-        }
     var isEsimProfileEnabled: Boolean = false
         get() {
             activeSubInfoList.stream().anyMatch { it.isEmbedded }
@@ -138,19 +128,11 @@
             return telephonyManager?.doesSwitchMultiSimConfigTriggerReboot() ?: false
         }
 
-    fun isValid(): Boolean {
-        return targetSubId != INVALID_SUBSCRIPTION_ID
-            && targetSubInfo != null
-            && activeSubInfoList.isNotEmpty()
-            && slotInfoList.isNotEmpty()
-    }
-
     fun clear() {
         targetSubId = -1
         targetSubInfo = null
         availableSubInfoList = listOf()
         activeSubInfoList = listOf()
-        slotInfoList = listOf()
         uiccCardInfoList = listOf()
         targetPrimarySimCalls = -1
         targetPrimarySimTexts = -1
@@ -182,8 +164,6 @@
                 availableSubInfoList.find { subInfo -> subInfo.subscriptionId == targetSubId }
             targetSubInfo?.let { userSelectedSubInfoList.add(it) }
             Log.d(TAG, "targetSubId: $targetSubId , targetSubInfo: $targetSubInfo")
-            slotInfoList = telephonyManager?.uiccSlotsInfo?.toList() ?: listOf()
-            Log.d(TAG, "slotInfoList: $slotInfoList.")
             uiccCardInfoList = telephonyManager?.uiccCardsInfo!!
             Log.d(TAG, "uiccCardInfoList: $uiccCardInfoList")
 
@@ -193,7 +173,6 @@
 
             Log.d(
                 TAG,"doesTargetSimHaveEsimOperation: $doesTargetSimHaveEsimOperation" +
-                    ", isRemovableSimEnabled: $isRemovablePsimProfileEnabled" +
                     ", isMultipleEnabledProfilesSupported: $isMultipleEnabledProfilesSupported" +
                     ", targetPrimarySimCalls: $targetPrimarySimCalls" +
                     ", targetPrimarySimTexts: $targetPrimarySimTexts" +
@@ -238,6 +217,7 @@
 
     fun addItemForRenaming(subInfo: SubscriptionInfo, newName: String) {
         if (subInfo.displayName == newName) {
+            renameMutableMap.remove(subInfo.subscriptionId)
             return
         }
         renameMutableMap[subInfo.subscriptionId] = newName
@@ -317,14 +297,15 @@
             return true
         }
 
-        if (doesTargetSimHaveEsimOperation && isRemovablePsimProfileEnabled) {
-            Log.d(TAG,
-                "eSIM operation and removable PSIM is enabled. DSDS condition satisfied."
-            )
-            return true
-        }
-
-        if (!doesTargetSimHaveEsimOperation && isEsimProfileEnabled) {
+        if (doesTargetSimHaveEsimOperation) {
+            if (UiccSlotRepository(telephonyManager).anyRemovablePhysicalSimEnabled()) {
+                Log.d(
+                    TAG,
+                    "eSIM operation and removable PSIM is enabled. DSDS condition satisfied."
+                )
+                return true
+            }
+        } else if (isEsimProfileEnabled) {
             Log.d(TAG,
                 "Removable SIM operation and eSIM profile is enabled. DSDS condition"
                         + " satisfied."
@@ -366,7 +347,7 @@
                     wifiPickerTrackerHelper,
                     targetPrimarySimMobileData
                 )
-                TelephonyRepository(context).setAutomaticData(
+                MobileDataRepository(context).setAutoDataSwitch(
                     targetNonDds,
                     targetPrimarySimAutoDataSwitch.value
                 )
diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java
index 74a10e9..fcf1599 100644
--- a/src/com/android/settings/network/SubscriptionUtil.java
+++ b/src/com/android/settings/network/SubscriptionUtil.java
@@ -24,6 +24,7 @@
 import static com.android.internal.util.CollectionUtils.emptyIfNull;
 
 import android.content.Context;
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.net.ConnectivityManager;
 import android.net.NetworkCapabilities;
@@ -515,18 +516,23 @@
      * @param context {@code Context}
      * @param subId The id of subscription need to be enabled or disabled.
      * @param enable Whether the subscription with {@code subId} should be enabled or disabled.
+     * @param isNewTask Whether the start activity add the new task or not
      */
     public static void startToggleSubscriptionDialogActivity(
-            Context context, int subId, boolean enable) {
+            Context context, int subId, boolean enable, boolean isNewTask) {
         if (!SubscriptionManager.isUsableSubscriptionId(subId)) {
             Log.i(TAG, "Unable to toggle subscription due to invalid subscription ID.");
             return;
         }
         if (enable && Flags.isDualSimOnboardingEnabled()) {
-            SimOnboardingActivity.startSimOnboardingActivity(context, subId);
+            SimOnboardingActivity.startSimOnboardingActivity(context, subId, isNewTask);
             return;
         }
-        context.startActivity(ToggleSubscriptionDialogActivity.getIntent(context, subId, enable));
+        Intent intent = ToggleSubscriptionDialogActivity.getIntent(context, subId, enable);
+        if (isNewTask) {
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        }
+        context.startActivity(intent);
     }
 
     /**
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index d9a6464..cdbf456 100644
--- a/src/com/android/settings/network/SubscriptionsPreferenceController.java
+++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java
@@ -241,6 +241,8 @@
         if (mSubsGearPref == null) {
             mPreferenceGroup.removeAll();
             mSubsGearPref = new MutableGearPreference(mContext, null);
+            mSubsGearPref
+                    .checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
             mSubsGearPref.setOnPreferenceClickListener(preference -> {
                 connectCarrierNetwork();
                 return true;
@@ -301,7 +303,8 @@
                 return connectionState;
             } else {
                 result = mContext.getString(
-                        R.string.preference_summary_default_combination, connectionState, result);
+                        com.android.settingslib.R.string.preference_summary_default_combination,
+                        connectionState, result);
             }
         } else if (!isDataInService) {
             return mContext.getString(R.string.mobile_data_no_connection);
diff --git a/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
index a26aa8a..8f6c32a 100644
--- a/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
+++ b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
@@ -30,8 +30,6 @@
 import com.android.settings.SidecarFragment;
 import com.android.settings.network.telephony.EuiccOperationSidecar;
 
-import com.google.common.collect.ImmutableList;
-
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
@@ -205,10 +203,10 @@
     }
 
     private int getLogicalSlotIndex(int physicalSlotIndex, int portIndex) {
-        ImmutableList<UiccSlotInfo> slotInfos = UiccSlotUtil.getSlotInfos(mTelephonyManager);
-        if (slotInfos != null && physicalSlotIndex >= 0 && physicalSlotIndex < slotInfos.size()
-                && slotInfos.get(physicalSlotIndex) != null) {
-            for (UiccPortInfo portInfo : slotInfos.get(physicalSlotIndex).getPorts()) {
+        UiccSlotInfo[] slotInfos = mTelephonyManager.getUiccSlotsInfo();
+        if (slotInfos != null && physicalSlotIndex >= 0 && physicalSlotIndex < slotInfos.length
+                && slotInfos[physicalSlotIndex] != null) {
+            for (UiccPortInfo portInfo : slotInfos[physicalSlotIndex].getPorts()) {
                 if (portInfo.getPortIndex() == portIndex) {
                     return portInfo.getLogicalSlotIndex();
                 }
diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java
index 5ae0a36..8a5a22c 100644
--- a/src/com/android/settings/network/UiccSlotUtil.java
+++ b/src/com/android/settings/network/UiccSlotUtil.java
@@ -33,8 +33,6 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settingslib.utils.ThreadUtils;
 
-import com.google.common.collect.ImmutableList;
-
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
@@ -106,18 +104,6 @@
     }
 
     /**
-     * Returns an immutable list of all UICC slots. If TelephonyManager#getUiccSlotsInfo returns, it
-     * returns an empty list instead.
-     */
-    public static ImmutableList<UiccSlotInfo> getSlotInfos(TelephonyManager telMgr) {
-        UiccSlotInfo[] slotInfos = telMgr.getUiccSlotsInfo();
-        if (slotInfos == null) {
-            return ImmutableList.of();
-        }
-        return ImmutableList.copyOf(slotInfos);
-    }
-
-    /**
      * Switches to the removable slot. It waits for SIM_STATE_LOADED after switch. If slotId is
      * INVALID_PHYSICAL_SLOT_ID, the method will use the first detected inactive removable slot.
      *
@@ -219,14 +205,13 @@
      */
     public static int getEsimSlotId(Context context, int subId) {
         TelephonyManager telMgr = context.getSystemService(TelephonyManager.class);
-        List<UiccCardInfo> uiccCardInfos = telMgr.getUiccCardsInfo();
-        ImmutableList<UiccSlotInfo> slotInfos = UiccSlotUtil.getSlotInfos(telMgr);
         SubscriptionManager subscriptionManager = context.getSystemService(
                 SubscriptionManager.class).createForAllUserProfiles();
         SubscriptionInfo subInfo = SubscriptionUtil.getSubById(subscriptionManager, subId);
 
         // checking whether this is the removable esim. If it is, then return the removable slot id.
         if (subInfo != null && subInfo.isEmbedded()) {
+            List<UiccCardInfo> uiccCardInfos = telMgr.getUiccCardsInfo();
             for (UiccCardInfo uiccCardInfo : uiccCardInfos) {
                 if (uiccCardInfo.getCardId() == subInfo.getCardId()
                         && uiccCardInfo.getCardId() > TelephonyManager.UNSUPPORTED_CARD_ID
@@ -238,10 +223,12 @@
             }
         }
 
-        int firstEsimSlot = IntStream.range(0, slotInfos.size())
+        UiccSlotInfo[] slotInfos = telMgr.getUiccSlotsInfo();
+        if (slotInfos == null) return -1;
+        int firstEsimSlot = IntStream.range(0, slotInfos.length)
                 .filter(
                         index -> {
-                            UiccSlotInfo slotInfo = slotInfos.get(index);
+                            UiccSlotInfo slotInfo = slotInfos[index];
                             if (slotInfo == null) {
                                 return false;
                             }
@@ -421,41 +408,6 @@
                 .orElse(INVALID_LOGICAL_SLOT_ID);
     }
 
-    /**
-     * Return whether the removable psim is enabled.
-     *
-     * @param telMgr is a TelephonyManager.
-     * @return whether the removable psim is enabled.
-     */
-    public static boolean isRemovableSimEnabled(TelephonyManager telMgr) {
-        if (telMgr == null) {
-            return false;
-        }
-        List<UiccSlotInfo> slotInfos = UiccSlotUtil.getSlotInfos(telMgr);
-        return isRemovableSimEnabled(slotInfos);
-    }
-
-    /**
-     * Return whether the removable psim is enabled.
-     *
-     * @param slotInfos is a List of UiccSlotInfo.
-     * @return whether the removable psim is enabled.
-     */
-    public static boolean isRemovableSimEnabled(List<UiccSlotInfo> slotInfos) {
-        boolean isRemovableSimEnabled =
-                slotInfos.stream()
-                        .anyMatch(
-                                slot -> slot != null
-                                        && slot.isRemovable()
-                                        && !slot.getIsEuicc()
-                                        && slot.getPorts().stream()
-                                                .anyMatch(port -> port.isActive())
-                                        && slot.getCardStateInfo()
-                                        == UiccSlotInfo.CARD_STATE_INFO_PRESENT);
-        Log.i(TAG, "isRemovableSimEnabled: " + isRemovableSimEnabled);
-        return isRemovableSimEnabled;
-    }
-
     private static boolean isMultipleEnabledProfilesSupported(TelephonyManager telMgr) {
         List<UiccCardInfo> cardInfos = telMgr.getUiccCardsInfo();
         if (cardInfos == null) {
diff --git a/src/com/android/settings/network/apn/ApnEditCarrierEnabled.kt b/src/com/android/settings/network/apn/ApnEditCarrierEnabled.kt
new file mode 100644
index 0000000..bd58da8
--- /dev/null
+++ b/src/com/android/settings/network/apn/ApnEditCarrierEnabled.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.network.apn
+
+import android.provider.Telephony
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.res.booleanResource
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+import com.android.settingslib.spa.widget.preference.SwitchPreference
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+
+@Composable
+fun ApnEditCarrierEnabled(apnData: ApnData, onCarrierEnabledChanged: (Boolean) -> Unit) {
+    SwitchPreference(
+        object : SwitchPreferenceModel {
+            override val title = stringResource(R.string.carrier_enabled)
+            val allowEdit = booleanResource(R.bool.config_allow_edit_carrier_enabled)
+            override val changeable = {
+                allowEdit && apnData.isFieldEnabled(Telephony.Carriers.CARRIER_ENABLED)
+            }
+            override val checked = { apnData.carrierEnabled }
+            override val onCheckedChange = onCarrierEnabledChanged
+        }
+    )
+}
diff --git a/src/com/android/settings/network/apn/ApnEditPageProvider.kt b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
index 099e2fa..5442082 100644
--- a/src/com/android/settings/network/apn/ApnEditPageProvider.kt
+++ b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
@@ -235,19 +235,7 @@
                 enabled = apnData.isFieldEnabled(Telephony.Carriers.ROAMING_PROTOCOL),
             ) { apnData = apnData.copy(apnRoaming = it) }
             ApnNetworkTypeCheckBox(apnData) { apnData = apnData.copy(networkType = it) }
-            SwitchPreference(
-                object : SwitchPreferenceModel {
-                    override val title = stringResource(R.string.carrier_enabled)
-                    override val changeable = {
-                        apnData.apnEnableEnabled &&
-                            apnData.isFieldEnabled(Telephony.Carriers.CARRIER_ENABLED)
-                    }
-                    override val checked = { apnData.apnEnable }
-                    override val onCheckedChange = { newChecked: Boolean ->
-                        apnData = apnData.copy(apnEnable = newChecked)
-                    }
-                }
-            )
+            ApnEditCarrierEnabled(apnData) { apnData = apnData.copy(carrierEnabled = it) }
         }
     }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/network/apn/ApnPreference.java b/src/com/android/settings/network/apn/ApnPreference.java
index 879fcb6..55258c1 100644
--- a/src/com/android/settings/network/apn/ApnPreference.java
+++ b/src/com/android/settings/network/apn/ApnPreference.java
@@ -85,10 +85,11 @@
         final RelativeLayout textArea = (RelativeLayout) view.findViewById(R.id.text_layout);
         textArea.setOnClickListener(this);
 
+        final View radioButtonFrame = view.itemView.requireViewById(R.id.apn_radio_button_frame);
         final RadioButton rb = view.itemView.requireViewById(R.id.apn_radiobutton);
         mRadioButton = rb;
         if (mDefaultSelectable) {
-            view.itemView.requireViewById(R.id.apn_radio_button_frame).setOnClickListener((v) -> {
+            radioButtonFrame.setOnClickListener((v) -> {
                 rb.performClick();
             });
             rb.setOnCheckedChangeListener(this);
@@ -96,9 +97,9 @@
             mProtectFromCheckedChange = true;
             rb.setChecked(mIsChecked);
             mProtectFromCheckedChange = false;
-            rb.setVisibility(View.VISIBLE);
+            radioButtonFrame.setVisibility(View.VISIBLE);
         } else {
-            rb.setVisibility(View.GONE);
+            radioButtonFrame.setVisibility(View.GONE);
         }
     }
 
diff --git a/src/com/android/settings/network/apn/ApnRepository.kt b/src/com/android/settings/network/apn/ApnRepository.kt
index 2d41976..8433715 100644
--- a/src/com/android/settings/network/apn/ApnRepository.kt
+++ b/src/com/android/settings/network/apn/ApnRepository.kt
@@ -90,7 +90,7 @@
                 apnRoaming = context.convertProtocol2Options(
                     cursor.getString(Telephony.Carriers.ROAMING_PROTOCOL)
                 ),
-                apnEnable = cursor.getInt(Telephony.Carriers.CARRIER_ENABLED) == 1,
+                carrierEnabled = cursor.getInt(Telephony.Carriers.CARRIER_ENABLED) == 1,
                 networkType = cursor.getLong(Telephony.Carriers.NETWORK_TYPE_BITMASK),
                 edited = cursor.getInt(Telephony.Carriers.EDITED_STATUS),
                 userEditable = cursor.getInt(Telephony.Carriers.USER_EDITABLE),
diff --git a/src/com/android/settings/network/apn/ApnStatus.kt b/src/com/android/settings/network/apn/ApnStatus.kt
index dc50452..6492d39 100644
--- a/src/com/android/settings/network/apn/ApnStatus.kt
+++ b/src/com/android/settings/network/apn/ApnStatus.kt
@@ -44,11 +44,10 @@
     val apnType: String = "",
     val apnProtocol: Int = -1,
     val apnRoaming: Int = -1,
-    val apnEnable: Boolean = true,
+    val carrierEnabled: Boolean = true,
     val networkType: Long = 0,
     val edited: Int = Telephony.Carriers.USER_EDITED,
     val userEditable: Int = 1,
-    val apnEnableEnabled: Boolean = true,
     val newApn: Boolean = false,
     val subId: Int = -1,
     val validEnabled: Boolean = false,
@@ -72,7 +71,7 @@
         Telephony.Carriers.NETWORK_TYPE_BITMASK to networkType,
         // Copy network type into lingering network type.
         Telephony.Carriers.LINGERING_NETWORK_TYPE_BITMASK to networkType,
-        Telephony.Carriers.CARRIER_ENABLED to apnEnable,
+        Telephony.Carriers.CARRIER_ENABLED to carrierEnabled,
         Telephony.Carriers.EDITED_STATUS to Telephony.Carriers.USER_EDITED,
     )
 
@@ -134,10 +133,6 @@
         )
     }
 
-    apnDataInit = apnDataInit.copy(
-        apnEnableEnabled =
-        context.resources.getBoolean(R.bool.config_allow_edit_carrier_enabled)
-    )
     // TODO: mIsCarrierIdApn
     return disableInit(apnDataInit)
 }
diff --git a/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java b/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java
index 44c4519..a43fda0 100644
--- a/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java
+++ b/src/com/android/settings/network/ims/ImsQueryProvisioningStat.java
@@ -56,7 +56,7 @@
             final ProvisioningManager privisionManager =
                     ProvisioningManager.createForSubscriptionId(mSubId);
             return privisionManager.getProvisioningStatusForCapability(mCapability, mTech);
-        } catch (IllegalArgumentException exception) {
+        } catch (UnsupportedOperationException exception) {
             Log.w(LOG_TAG, "fail to get Provisioning stat. subId=" + mSubId, exception);
         }
         return false;
diff --git a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
index fcbfdef..6d6e41f 100644
--- a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
+++ b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
@@ -38,7 +38,6 @@
 import com.android.settings.flags.Flags;
 import com.android.settings.network.MobileDataContentObserver;
 import com.android.settings.network.SubscriptionsChangeListener;
-import com.android.settings.network.telephony.wificalling.CrossSimCallingViewModel;
 
 /**
  * Controls whether switch mobile data to the non-default SIM if the non-default SIM has better
@@ -63,8 +62,6 @@
     @Nullable
     private MobileDataContentObserver mMobileDataContentObserver;
     @Nullable
-    private CrossSimCallingViewModel mCrossSimCallingViewModel;
-    @Nullable
     private PreferenceScreen mScreen;
 
     public AutoDataSwitchPreferenceController(
@@ -72,10 +69,9 @@
         super(context, preferenceKey);
     }
 
-    void init(int subId, @Nullable CrossSimCallingViewModel crossSimCallingViewModel) {
+    void init(int subId) {
         this.mSubId = subId;
         mManager = mContext.getSystemService(TelephonyManager.class).createForSubscriptionId(subId);
-        mCrossSimCallingViewModel = crossSimCallingViewModel;
     }
 
     @OnLifecycleEvent(ON_RESUME)
@@ -122,9 +118,6 @@
                     TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
                     isChecked);
         }
-        if (mCrossSimCallingViewModel != null) {
-            mCrossSimCallingViewModel.updateCrossSimCalling();
-        }
         return true;
     }
 
diff --git a/src/com/android/settings/network/telephony/CallStateRepository.kt b/src/com/android/settings/network/telephony/CallStateRepository.kt
index 4b6cdc8..e5a21bf 100644
--- a/src/com/android/settings/network/telephony/CallStateRepository.kt
+++ b/src/com/android/settings/network/telephony/CallStateRepository.kt
@@ -25,14 +25,17 @@
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.flowOn
 import kotlinx.coroutines.flow.onEach
 
 @OptIn(ExperimentalCoroutinesApi::class)
-class CallStateRepository(private val context: Context) {
-    private val subscriptionManager = context.requireSubscriptionManager()
+class CallStateRepository(
+    private val context: Context,
+    private val subscriptionRepository: SubscriptionRepository = SubscriptionRepository(context),
+) {
 
     /** Flow for call state of given [subId]. */
     fun callStateFlow(subId: Int): Flow<Int> = context.telephonyCallbackFlow(subId) {
@@ -48,9 +51,8 @@
      *
      * @return true if any active subscription's call state is not idle.
      */
-    fun isInCallFlow(): Flow<Boolean> = context.subscriptionsChangedFlow()
-        .flatMapLatest {
-            val subIds = subscriptionManager.activeSubscriptionIdList
+    fun isInCallFlow(): Flow<Boolean> = subscriptionRepository.activeSubscriptionIdListFlow()
+        .flatMapLatest { subIds ->
             if (subIds.isEmpty()) {
                 flowOf(false)
             } else {
@@ -59,9 +61,10 @@
                 }
             }
         }
+        .distinctUntilChanged()
         .conflate()
-        .flowOn(Dispatchers.Default)
         .onEach { Log.d(TAG, "isInCallFlow: $it") }
+        .flowOn(Dispatchers.Default)
 
     private companion object {
         private const val TAG = "CallStateRepository"
diff --git a/src/com/android/settings/network/telephony/CarrierConfigManagerExt.kt b/src/com/android/settings/network/telephony/CarrierConfigManagerExt.kt
index 05b4c07..5408ab0 100644
--- a/src/com/android/settings/network/telephony/CarrierConfigManagerExt.kt
+++ b/src/com/android/settings/network/telephony/CarrierConfigManagerExt.kt
@@ -24,6 +24,7 @@
 /**
  * Gets the configuration values of the specified config keys applied.
  */
+@Deprecated("Use CarrierConfigRepository instead")
 fun CarrierConfigManager.safeGetConfig(
     keys: List<String>,
     subId: Int = SubscriptionManager.getDefaultSubscriptionId(),
diff --git a/src/com/android/settings/network/telephony/CarrierConfigRepository.kt b/src/com/android/settings/network/telephony/CarrierConfigRepository.kt
new file mode 100644
index 0000000..3f5c06e
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CarrierConfigRepository.kt
@@ -0,0 +1,217 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.os.PersistableBundle
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
+import android.util.Log
+import androidx.annotation.VisibleForTesting
+import java.util.concurrent.ConcurrentHashMap
+import kotlinx.atomicfu.atomic
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.asExecutor
+
+class CarrierConfigRepository(private val context: Context) {
+
+    private val carrierConfigManager: CarrierConfigManager? =
+        context.getSystemService(CarrierConfigManager::class.java)
+
+    private enum class KeyType {
+        BOOLEAN,
+        INT,
+        STRING
+    }
+
+    interface CarrierConfigAccessor {
+        fun getBoolean(key: String): Boolean
+
+        fun getInt(key: String): Int
+
+        fun getString(key: String): String?
+    }
+
+    private class Accessor(private val cache: ConfigCache) : CarrierConfigAccessor {
+        private val keysToRetrieve = mutableMapOf<String, KeyType>()
+
+        override fun getBoolean(key: String): Boolean {
+            check(key.endsWith("_bool")) { "Boolean key should ends with _bool" }
+            val value = cache[key]
+            return if (value == null) {
+                keysToRetrieve += key to KeyType.BOOLEAN
+                DefaultConfig.getBoolean(key)
+            } else {
+                check(value is BooleanConfigValue) { "Boolean value type wrong" }
+                value.value
+            }
+        }
+
+        override fun getInt(key: String): Int {
+            check(key.endsWith("_int")) { "Int key should ends with _int" }
+            val value = cache[key]
+            return if (value == null) {
+                keysToRetrieve += key to KeyType.INT
+                DefaultConfig.getInt(key)
+            } else {
+                check(value is IntConfigValue) { "Int value type wrong" }
+                value.value
+            }
+        }
+
+        override fun getString(key: String): String? {
+            check(key.endsWith("_string")) { "String key should ends with _string" }
+            val value = cache[key]
+            return if (value == null) {
+                keysToRetrieve += key to KeyType.STRING
+                DefaultConfig.getString(key)
+            } else {
+                check(value is StringConfigValue) { "String value type wrong" }
+                value.value
+            }
+        }
+
+        fun getKeysToRetrieve(): Map<String, KeyType> = keysToRetrieve
+    }
+
+    /**
+     * Gets the configuration values for the given [subId].
+     *
+     * Configuration values could be accessed in [block]. Note: [block] could be called multiple
+     * times, so it should be pure function without side effort.
+     */
+    fun <T> transformConfig(subId: Int, block: CarrierConfigAccessor.() -> T): T {
+        val perSubCache = getPerSubCache(subId)
+        val accessor = Accessor(perSubCache)
+        val result = accessor.block()
+        val keysToRetrieve = accessor.getKeysToRetrieve()
+        // If all keys found in the first pass, no need to collect again
+        if (keysToRetrieve.isEmpty()) return result
+
+        perSubCache.update(subId, keysToRetrieve)
+
+        return accessor.block()
+    }
+
+    /** Gets the configuration boolean for the given [subId] and [key]. */
+    fun getBoolean(subId: Int, key: String): Boolean = transformConfig(subId) { getBoolean(key) }
+
+    /** Gets the configuration int for the given [subId] and [key]. */
+    fun getInt(subId: Int, key: String): Int = transformConfig(subId) { getInt(key) }
+
+    /** Gets the configuration string for the given [subId] and [key]. */
+    fun getString(subId: Int, key: String): String? = transformConfig(subId) { getString(key) }
+
+    private fun ConfigCache.update(subId: Int, keysToRetrieve: Map<String, KeyType>) {
+        val config = safeGetConfig(subId, keysToRetrieve.keys) ?: return
+        for ((key, type) in keysToRetrieve) {
+            when (type) {
+                KeyType.BOOLEAN -> this[key] = BooleanConfigValue(config.getBoolean(key))
+                KeyType.INT -> this[key] = IntConfigValue(config.getInt(key))
+                KeyType.STRING -> this[key] = StringConfigValue(config.getString(key))
+            }
+        }
+    }
+
+    /** Gets the configuration values of the specified config keys applied. */
+    private fun safeGetConfig(subId: Int, keys: Collection<String>): PersistableBundle? {
+        if (carrierConfigManager == null || !SubscriptionManager.isValidSubscriptionId(subId)) {
+            return null
+        }
+        tryRegisterListener(context)
+        return try {
+            carrierConfigManager.getConfigForSubId(subId, *keys.toTypedArray())
+        } catch (e: Exception) {
+            Log.e(TAG, "safeGetConfig: exception", e)
+            // The CarrierConfigLoader (the service implemented the CarrierConfigManager) hasn't
+            // been initialized yet. This may occurs during very early phase of phone booting up
+            // or when Phone process has been restarted.
+            // Settings should not assume Carrier config loader (and any other system services
+            // as well) are always available. If not available, use default value instead.
+            null
+        }
+    }
+
+    companion object {
+        private const val TAG = "CarrierConfigRepository"
+
+        private val DefaultConfig = CarrierConfigManager.getDefaultConfig()
+
+        /** Cache of config values for each subscription. */
+        private val Cache = ConcurrentHashMap<Int, ConfigCache>()
+
+        private fun getPerSubCache(subId: Int) =
+            Cache.computeIfAbsent(subId) { ConcurrentHashMap() }
+
+        /** To make sure the registerCarrierConfigChangeListener is only called once. */
+        private val ListenerRegistered = atomic(false)
+
+        private fun tryRegisterListener(context: Context) {
+            if (ListenerRegistered.compareAndSet(expect = false, update = true)) {
+                val carrierConfigManager =
+                    context.applicationContext.getSystemService(CarrierConfigManager::class.java)
+                if (carrierConfigManager != null) {
+                    carrierConfigManager.registerCarrierConfigChangeListener()
+                } else {
+                    ListenerRegistered.getAndSet(false)
+                }
+            }
+        }
+
+        private fun CarrierConfigManager.registerCarrierConfigChangeListener() {
+            val executor = Dispatchers.Default.asExecutor()
+            registerCarrierConfigChangeListener(executor) { _, subId, _, _ ->
+                Log.d(TAG, "[$subId] onCarrierConfigChanged")
+                Cache.remove(subId)
+            }
+        }
+
+        @VisibleForTesting
+        fun resetForTest() {
+            Cache.clear()
+            ListenerRegistered.getAndSet(false)
+        }
+
+        @VisibleForTesting
+        fun setBooleanForTest(subId: Int, key: String, value: Boolean) {
+            check(key.endsWith("_bool")) { "Boolean key should ends with _bool" }
+            getPerSubCache(subId)[key] = BooleanConfigValue(value)
+        }
+
+        @VisibleForTesting
+        fun setIntForTest(subId: Int, key: String, value: Int) {
+            check(key.endsWith("_int")) { "Int key should ends with _int" }
+            getPerSubCache(subId)[key] = IntConfigValue(value)
+        }
+
+        @VisibleForTesting
+        fun setStringForTest(subId: Int, key: String, value: String?) {
+            check(key.endsWith("_string")) { "String key should ends with _string" }
+            getPerSubCache(subId)[key] = StringConfigValue(value)
+        }
+    }
+}
+
+private sealed interface ConfigValue
+
+private data class BooleanConfigValue(val value: Boolean) : ConfigValue
+
+private data class IntConfigValue(val value: Int) : ConfigValue
+
+private data class StringConfigValue(val value: String?) : ConfigValue
+
+private typealias ConfigCache = ConcurrentHashMap<String, ConfigValue>
diff --git a/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.java b/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.java
deleted file mode 100644
index 575d19c..0000000
--- a/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.text.TextUtils;
-
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.network.CarrierConfigCache;
-
-public class CarrierSettingsVersionPreferenceController extends BasePreferenceController {
-
-    private int mSubscriptionId;
-    private CarrierConfigCache mCarrierConfigCache;
-
-    public CarrierSettingsVersionPreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-        mCarrierConfigCache = CarrierConfigCache.getInstance(context);
-        mSubscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    }
-
-    public void init(int subscriptionId) {
-        mSubscriptionId = subscriptionId;
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        final PersistableBundle config = mCarrierConfigCache.getConfigForSubId(mSubscriptionId);
-        if (config == null) {
-            return null;
-        }
-        return config.getString(CarrierConfigManager.KEY_CARRIER_CONFIG_VERSION_STRING);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return TextUtils.isEmpty(getSummary()) ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
-    }
-}
diff --git a/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.kt b/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.kt
new file mode 100644
index 0000000..f949ab8
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceController.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.network.telephony
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
+import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+
+class CarrierSettingsVersionPreferenceController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+
+    private var subId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+    private val searchItem = CarrierSettingsVersionSearchItem(context)
+
+    fun init(subId: Int) {
+        this.subId = subId
+    }
+
+    override fun getSummary() = searchItem.getSummary(subId)
+
+    override fun getAvailabilityStatus() =
+        if (searchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+
+    companion object {
+        class CarrierSettingsVersionSearchItem(private val context: Context) :
+            MobileNetworkSettingsSearchItem {
+            private val carrierConfigRepository = CarrierConfigRepository(context)
+
+            fun getSummary(subId: Int): String? =
+                carrierConfigRepository.getString(
+                    subId, CarrierConfigManager.KEY_CARRIER_CONFIG_VERSION_STRING)
+
+            fun isAvailable(subId: Int): Boolean = !getSummary(subId).isNullOrEmpty()
+
+            override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+                if (!isAvailable(subId)) return null
+                return MobileNetworkSettingsSearchResult(
+                    key = "carrier_settings_version_key",
+                    title = context.getString(R.string.carrier_settings_version),
+                )
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt b/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
index 99f639b..829c4c0 100644
--- a/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
+++ b/src/com/android/settings/network/telephony/DataSubscriptionRepository.kt
@@ -33,6 +33,7 @@
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.flowOn
 import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.flow.onStart
 
 class DataSubscriptionRepository(
@@ -51,46 +52,42 @@
             )
             .map { it.getIntExtra(SUBSCRIPTION_KEY, SubscriptionManager.INVALID_SUBSCRIPTION_ID) }
             .onStart { emit(SubscriptionManager.getDefaultDataSubscriptionId()) }
+            .distinctUntilChanged()
             .conflate()
+            .onEach { Log.d(TAG, "defaultDataSubscriptionIdFlow: $it") }
             .flowOn(Dispatchers.Default)
 
     fun activeDataSubscriptionIdFlow(): Flow<Int> =
-        telephonyManager.telephonyCallbackFlow {
-            object : TelephonyCallback(), TelephonyCallback.ActiveDataSubscriptionIdListener {
-                override fun onActiveDataSubscriptionIdChanged(subId: Int) {
-                    trySend(subId)
-                    Log.d(TAG, "activeDataSubscriptionIdFlow: $subId")
+        telephonyManager
+            .telephonyCallbackFlow {
+                object : TelephonyCallback(), TelephonyCallback.ActiveDataSubscriptionIdListener {
+                    override fun onActiveDataSubscriptionIdChanged(subId: Int) {
+                        trySend(subId)
+                        Log.d(TAG, "activeDataSubscriptionIdFlow: $subId")
+                    }
                 }
             }
-        }
+            .distinctUntilChanged()
 
     fun dataSummaryFlow(): Flow<String> =
         combine(defaultDataSubscriptionIdFlow(), activeDataSubscriptionIdFlow()) {
-                defaultSubId,
-                activeSubId ->
-                DataSubscriptionIds(defaultSubId, activeSubId)
+                defaultDataSubId,
+                activeDataSubId ->
+                getDataSummary(defaultDataSubId, activeDataSubId)
             }
-            .distinctUntilChanged()
-            .map { it.getDataSummary() }
             .conflate()
             .flowOn(Dispatchers.Default)
 
-    private data class DataSubscriptionIds(
-        val defaultSubId: Int,
-        val activeSubId: Int,
-    )
-
-    private fun DataSubscriptionIds.getDataSummary(): String {
-        val activeSubInfo = subscriptionManager.getActiveSubscriptionInfo(activeSubId) ?: return ""
+    private fun getDataSummary(defaultDataSubId: Int, activeDataSubId: Int): String {
+        if (defaultDataSubId == activeDataSubId) return getDisplayName(defaultDataSubId)
+        val activeSubInfo =
+            subscriptionManager.getActiveSubscriptionInfo(activeDataSubId)
+                ?: return getDisplayName(defaultDataSubId)
         if (!SubscriptionUtil.isSubscriptionVisible(subscriptionManager, context, activeSubInfo)) {
-            return getDisplayName(defaultSubId)
+            return getDisplayName(defaultDataSubId)
         }
-        val uniqueName = getDisplayName(activeSubId)
-        return if (activeSubId == defaultSubId) {
-            uniqueName
-        } else {
-            context.getString(R.string.mobile_data_temp_using, uniqueName)
-        }
+        // non-DDS is active
+        return context.getString(R.string.mobile_data_temp_using, getDisplayName(activeDataSubId))
     }
 
     companion object {
diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
index d47a246..aa113b6 100644
--- a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
+++ b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
@@ -29,35 +29,32 @@
 import androidx.preference.Preference
 import androidx.preference.PreferenceScreen
 import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
 import com.android.settings.datausage.DataUsageUtils
 import com.android.settings.datausage.lib.DataUsageFormatter.FormattedDataUsage
 import com.android.settings.datausage.lib.DataUsageLib
 import com.android.settings.datausage.lib.NetworkCycleDataRepository
 import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.AllTimeRange
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
 import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 
-/**
- * Preference controller for "Data usage"
- */
+/** Preference controller for "Data usage" */
 class DataUsagePreferenceController(context: Context, key: String) :
-    TelephonyBasePreferenceController(context, key) {
+    BasePreferenceController(context, key) {
 
+    private var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
     private lateinit var preference: Preference
     private var networkTemplate: NetworkTemplate? = null
 
     fun init(subId: Int) {
-        mSubId = subId
+        this.subId = subId
     }
 
-    override fun getAvailabilityStatus(subId: Int): Int = when {
-        SubscriptionManager.isValidSubscriptionId(subId) &&
-            DataUsageUtils.hasMobileData(mContext) -> AVAILABLE
-
-        else -> AVAILABLE_UNSEARCHABLE
-    }
+    override fun getAvailabilityStatus() = AVAILABLE
 
     override fun displayPreference(screen: PreferenceScreen) {
         super.displayPreference(screen)
@@ -75,11 +72,12 @@
 
     override fun handlePreferenceTreeClick(preference: Preference): Boolean {
         if (preference.key != preferenceKey || networkTemplate == null) return false
-        val intent = Intent(Settings.ACTION_MOBILE_DATA_USAGE).apply {
-            setPackage(mContext.packageName)
-            putExtra(Settings.EXTRA_NETWORK_TEMPLATE, networkTemplate)
-            putExtra(Settings.EXTRA_SUB_ID, mSubId)
-        }
+        val intent =
+            Intent(Settings.ACTION_MOBILE_DATA_USAGE).apply {
+                setPackage(mContext.packageName)
+                putExtra(Settings.EXTRA_NETWORK_TEMPLATE, networkTemplate)
+                putExtra(Settings.EXTRA_SUB_ID, subId)
+            }
         mContext.startActivity(intent)
         return true
     }
@@ -93,13 +91,10 @@
         preference.summary = summary?.displayText
     }
 
-    private fun getNetworkTemplate(): NetworkTemplate? = when {
-        SubscriptionManager.isValidSubscriptionId(mSubId) -> {
-            DataUsageLib.getMobileTemplate(mContext, mSubId)
-        }
-
-        else -> null
-    }
+    private fun getNetworkTemplate(): NetworkTemplate? =
+        if (SubscriptionManager.isValidSubscriptionId(subId)) {
+            DataUsageLib.getMobileTemplate(mContext, subId)
+        } else null
 
     @VisibleForTesting
     fun createNetworkCycleDataRepository(): NetworkCycleDataRepository? =
@@ -118,4 +113,16 @@
         val allTimeUsage = repository.queryUsage(AllTimeRange)
         return allTimeUsage.getDataUsedString(mContext) to (allTimeUsage.usage > 0)
     }
+
+    companion object {
+        class DataUsageSearchItem(private val context: Context) : MobileNetworkSettingsSearchItem {
+            override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+                if (!DataUsageUtils.hasMobileData(context)) return null
+                return MobileNetworkSettingsSearchResult(
+                    key = "data_usage_summary",
+                    title = context.getString(R.string.app_cellular_data_usage),
+                )
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index e92d999..7d5230d 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -19,9 +19,11 @@
 import static androidx.lifecycle.Lifecycle.Event.ON_START;
 import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
 
+import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.getNetworkModePreferenceType;
 import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.setAllowedNetworkTypes;
 
 import android.content.Context;
+import android.content.res.Resources;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionInfo;
@@ -44,6 +46,7 @@
 
 import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
 import com.android.settings.network.AllowedNetworkTypesListener;
 import com.android.settings.network.CarrierConfigCache;
 import com.android.settings.network.SubscriptionsChangeListener;
@@ -61,16 +64,17 @@
  * Preference controller for "Enabled network mode"
  */
 public class EnabledNetworkModePreferenceController extends
-        TelephonyBasePreferenceController implements
+        BasePreferenceController implements
         ListPreference.OnPreferenceChangeListener, LifecycleObserver,
         SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
 
     private static final String LOG_TAG = "EnabledNetworkMode";
+
+    private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
     private Preference mPreference;
     private PreferenceScreen mPreferenceScreen;
     private TelephonyManager mTelephonyManager;
-    private CarrierConfigCache mCarrierConfigCache;
     private PreferenceEntriesBuilder mBuilder;
     private SubscriptionsChangeListener mSubscriptionsListener;
     private int mCallState = TelephonyManager.CALL_STATE_IDLE;
@@ -81,36 +85,16 @@
     public EnabledNetworkModePreferenceController(Context context, String key) {
         super(context, key);
         mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
-        mCarrierConfigCache = CarrierConfigCache.getInstance(context);
         if (mTelephonyCallback == null) {
             mTelephonyCallback = new PhoneCallStateTelephonyCallback();
         }
     }
 
     @Override
-    public int getAvailabilityStatus(int subId) {
-        boolean visible;
-
-        final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
-        if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            visible = false;
-        } else if (carrierConfig == null
-                || !CarrierConfigManager.isConfigForIdentifiedCarrier(carrierConfig)) {
-            visible = false;
-        } else if (carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)
-                || carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)) {
-            visible = false;
-        } else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
-            visible = false;
-        } else if (!isCallStateIdle()) {
-            return AVAILABLE_UNSEARCHABLE;
-        } else {
-            visible = true;
-        }
-
-        return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    public int getAvailabilityStatus() {
+        return getNetworkModePreferenceType(mContext, mSubId)
+                == NetworkModePreferenceType.EnabledNetworkMode
+                ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     protected boolean isCallStateIdle() {
@@ -953,9 +937,14 @@
         }
     }
 
+    /**
+     * Returns the resources associated with Subscription.
+     *
+     * @return Resources associated with Subscription.
+     */
     @VisibleForTesting
-    PhoneCallStateTelephonyCallback getTelephonyCallback() {
-        return mTelephonyCallback;
+    Resources getResourcesForSubId() {
+        return SubscriptionManager.getResourcesForSubId(mContext, mSubId);
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
index eab5d74..d297e1c 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
@@ -16,9 +16,15 @@
 
 package com.android.settings.network.telephony
 
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
 import android.telephony.TelephonyManager
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
+import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 
@@ -33,3 +39,62 @@
         )
     }
 }
+
+enum class NetworkModePreferenceType {
+    EnabledNetworkMode,
+    PreferredNetworkMode,
+    None,
+}
+
+fun getNetworkModePreferenceType(context: Context, subId: Int): NetworkModePreferenceType {
+    if (!SubscriptionManager.isValidSubscriptionId(subId)) return NetworkModePreferenceType.None
+    data class Config(
+        val carrierConfigApplied: Boolean,
+        val hideCarrierNetworkSettings: Boolean,
+        val hidePreferredNetworkType: Boolean,
+        val worldPhone: Boolean,
+    )
+
+    val config =
+        CarrierConfigRepository(context).transformConfig(subId) {
+            Config(
+                carrierConfigApplied =
+                    getBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL),
+                hideCarrierNetworkSettings =
+                    getBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL),
+                hidePreferredNetworkType =
+                    getBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL),
+                worldPhone = getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL),
+            )
+        }
+
+    return when {
+        !config.carrierConfigApplied ||
+            config.hideCarrierNetworkSettings ||
+            config.hidePreferredNetworkType -> NetworkModePreferenceType.None
+        config.worldPhone -> NetworkModePreferenceType.PreferredNetworkMode
+        else -> NetworkModePreferenceType.EnabledNetworkMode
+    }
+}
+
+class PreferredNetworkModeSearchItem(private val context: Context) :
+    MobileNetworkSettingsSearchItem {
+    private val title: String = context.getString(R.string.preferred_network_mode_title)
+
+    override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? =
+        when (getNetworkModePreferenceType(context, subId)) {
+            NetworkModePreferenceType.PreferredNetworkMode ->
+                MobileNetworkSettingsSearchResult(
+                    key = "preferred_network_mode_key",
+                    title = title,
+                )
+
+            NetworkModePreferenceType.EnabledNetworkMode ->
+                MobileNetworkSettingsSearchResult(
+                    key = "enabled_networks_key",
+                    title = title,
+                )
+
+            else -> null
+        }
+}
diff --git a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
index e14d5f8..220218c 100644
--- a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
+++ b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
@@ -20,49 +20,42 @@
 import android.telephony.SubscriptionManager
 import android.telephony.TelephonyManager
 import android.telephony.data.ApnSetting
+import androidx.annotation.VisibleForTesting
 import androidx.lifecycle.LifecycleOwner
 import androidx.preference.PreferenceScreen
-import com.android.settings.network.mobileDataEnabledFlow
+import com.android.settings.R
+import com.android.settings.Settings.MobileNetworkActivity.EXTRA_MMS_MESSAGE
+import com.android.settings.core.TogglePreferenceController
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
 import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
 import kotlinx.coroutines.flow.combine
 
-/**
- * Preference controller for "MMS messages"
- */
-class MmsMessagePreferenceController @JvmOverloads constructor(
+/** Preference controller for "MMS messages" */
+class MmsMessagePreferenceController
+@JvmOverloads
+constructor(
     context: Context,
     key: String,
     private val getDefaultDataSubId: () -> Int = {
         SubscriptionManager.getDefaultDataSubscriptionId()
     },
-) : TelephonyTogglePreferenceController(context, key) {
+) : TogglePreferenceController(context, key) {
 
-    private lateinit var telephonyManager: TelephonyManager
+    private var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+    private var telephonyManager: TelephonyManager =
+        context.getSystemService(TelephonyManager::class.java)!!
 
     private var preferenceScreen: PreferenceScreen? = null
 
     fun init(subId: Int) {
-        mSubId = subId
-        telephonyManager = mContext.getSystemService(TelephonyManager::class.java)!!
-            .createForSubscriptionId(subId)
+        this.subId = subId
+        telephonyManager = telephonyManager.createForSubscriptionId(subId)
     }
 
-    override fun getAvailabilityStatus(subId: Int) =
-        if (subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID &&
-            this::telephonyManager.isInitialized &&
-            !telephonyManager.isDataEnabled &&
-            telephonyManager.isApnMetered(ApnSetting.TYPE_MMS) &&
-            !isFallbackDataEnabled()
-        ) AVAILABLE else CONDITIONALLY_UNAVAILABLE
-
-    private fun isFallbackDataEnabled(): Boolean {
-        val defaultDataSubId = getDefaultDataSubId()
-        return defaultDataSubId != mSubId &&
-            telephonyManager.createForSubscriptionId(defaultDataSubId).isDataEnabled &&
-            telephonyManager.isMobileDataPolicyEnabled(
-                TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH
-            )
-    }
+    override fun getAvailabilityStatus() =
+        if (getAvailabilityStatus(telephonyManager, subId, getDefaultDataSubId)) AVAILABLE
+        else CONDITIONALLY_UNAVAILABLE
 
     override fun displayPreference(screen: PreferenceScreen) {
         super.displayPreference(screen)
@@ -71,16 +64,20 @@
 
     override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
         combine(
-            mContext.mobileDataEnabledFlow(mSubId),
-            mContext.subscriptionsChangedFlow(), // Capture isMobileDataPolicyEnabled() changes
-        ) { _, _ -> }.collectLatestWithLifecycle(viewLifecycleOwner) {
-            preferenceScreen?.let { super.displayPreference(it) }
-        }
+                MobileDataRepository(mContext).mobileDataEnabledChangedFlow(subId),
+                mContext.subscriptionsChangedFlow(), // Capture isMobileDataPolicyEnabled() changes
+            ) { _, _ ->
+            }
+            .collectLatestWithLifecycle(viewLifecycleOwner) {
+                preferenceScreen?.let { super.displayPreference(it) }
+            }
     }
 
-    override fun isChecked(): Boolean = telephonyManager.isMobileDataPolicyEnabled(
-        TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED
-    )
+    override fun getSliceHighlightMenuRes() = NO_RES
+
+    override fun isChecked(): Boolean =
+        telephonyManager.isMobileDataPolicyEnabled(
+            TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
 
     override fun setChecked(isChecked: Boolean): Boolean {
         telephonyManager.setMobileDataPolicyEnabled(
@@ -89,4 +86,51 @@
         )
         return true
     }
+
+    companion object {
+        private fun getAvailabilityStatus(
+            telephonyManager: TelephonyManager,
+            subId: Int,
+            getDefaultDataSubId: () -> Int,
+        ): Boolean {
+            return SubscriptionManager.isValidSubscriptionId(subId) &&
+                !telephonyManager.isDataEnabled &&
+                telephonyManager.isApnMetered(ApnSetting.TYPE_MMS) &&
+                !isFallbackDataEnabled(telephonyManager, subId, getDefaultDataSubId())
+        }
+
+        private fun isFallbackDataEnabled(
+            telephonyManager: TelephonyManager,
+            subId: Int,
+            defaultDataSubId: Int,
+        ): Boolean {
+            return defaultDataSubId != subId &&
+                telephonyManager.createForSubscriptionId(defaultDataSubId).isDataEnabled &&
+                telephonyManager.isMobileDataPolicyEnabled(
+                    TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+        }
+
+        class MmsMessageSearchItem(
+            private val context: Context,
+            private val getDefaultDataSubId: () -> Int = {
+                SubscriptionManager.getDefaultDataSubscriptionId()
+            },
+        ) : MobileNetworkSettingsSearchItem {
+            private var telephonyManager: TelephonyManager =
+                context.getSystemService(TelephonyManager::class.java)!!
+
+            @VisibleForTesting
+            fun isAvailable(subId: Int): Boolean =
+                getAvailabilityStatus(
+                    telephonyManager.createForSubscriptionId(subId), subId, getDefaultDataSubId)
+
+            override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+                if (!isAvailable(subId)) return null
+                return MobileNetworkSettingsSearchResult(
+                    key = EXTRA_MMS_MESSAGE,
+                    title = context.getString(R.string.mms_message_title),
+                )
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/network/telephony/MobileDataRepository.kt b/src/com/android/settings/network/telephony/MobileDataRepository.kt
new file mode 100644
index 0000000..5a0dff7
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileDataRepository.kt
@@ -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.network.telephony
+
+import android.content.Context
+import android.provider.Settings
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.telephony.TelephonyManager.MobileDataPolicy
+import android.util.Log
+import com.android.settings.wifi.WifiPickerTrackerHelper
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalChangeFlow
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.catch
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.merge
+import kotlinx.coroutines.flow.onEach
+
+class MobileDataRepository(
+    private val context: Context,
+    private val subscriptionsChangedFlow: Flow<Unit> = context.subscriptionsChangedFlow(),
+) {
+    fun isMobileDataPolicyEnabledFlow(subId: Int, @MobileDataPolicy policy: Int): Flow<Boolean> {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
+        val telephonyManager = context.telephonyManager(subId)
+        return subscriptionsChangedFlow
+            .map { telephonyManager.isMobileDataPolicyEnabled(policy) }
+            .distinctUntilChanged()
+            .conflate()
+            .onEach { Log.d(TAG, "[$subId] isMobileDataPolicyEnabled($policy): $it") }
+            .flowOn(Dispatchers.Default)
+    }
+
+    fun setMobileDataPolicyEnabled(subId: Int, @MobileDataPolicy policy: Int, enabled: Boolean) {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return
+        Log.d(TAG, "[$subId] setMobileDataPolicyEnabled($policy): $enabled")
+        context.telephonyManager(subId).setMobileDataPolicyEnabled(policy, enabled)
+    }
+
+    fun setAutoDataSwitch(subId: Int, newEnabled: Boolean) {
+        setMobileDataPolicyEnabled(
+            subId = subId,
+            policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
+            enabled = newEnabled,
+        )
+    }
+
+    /**
+     * Flow for mobile data enabled changed event.
+     *
+     * Note: This flow can only notify enabled status changes, cannot provide the latest status.
+     */
+    fun mobileDataEnabledChangedFlow(subId: Int, sendInitialValue: Boolean = true): Flow<Unit> =
+        mobileSettingsGlobalChangedFlow(Settings.Global.MOBILE_DATA, subId, sendInitialValue)
+
+    private fun mobileSettingsGlobalChangedFlow(
+        name: String,
+        subId: Int,
+        sendInitialValue: Boolean = true,
+    ): Flow<Unit> {
+        val flow = context.settingsGlobalChangeFlow(name, sendInitialValue)
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return flow
+        val subIdFlow =
+            context.settingsGlobalChangeFlow(name = name + subId, sendInitialValue = false)
+        return merge(flow, subIdFlow)
+    }
+
+    fun isMobileDataEnabledFlow(subId: Int): Flow<Boolean> {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
+        val telephonyManager = context.telephonyManager(subId)
+        return mobileDataEnabledChangedFlow(subId)
+            .map {
+                telephonyManager.isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
+            }
+            .catch { e ->
+                Log.w(TAG, "[$subId] isMobileDataEnabledFlow: exception", e)
+                emit(false)
+            }
+            .distinctUntilChanged()
+            .conflate()
+            .onEach { Log.d(TAG, "[$subId] isMobileDataEnabledFlow: $it") }
+            .flowOn(Dispatchers.Default)
+    }
+
+    fun setMobileDataEnabled(
+        subId: Int,
+        enabled: Boolean,
+        wifiPickerTrackerHelper: WifiPickerTrackerHelper? = null,
+    ) {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return
+
+        Log.d(TAG, "setMobileDataEnabled: $enabled")
+        MobileNetworkUtils.setMobileDataEnabled(
+            context, subId, enabled, /* disableOtherSubscriptions= */ true)
+
+        if (wifiPickerTrackerHelper != null &&
+            !wifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(subId)) {
+            wifiPickerTrackerHelper.setCarrierNetworkEnabled(enabled)
+        }
+    }
+
+    /** Creates an instance of a cold Flow for whether data roaming is enabled of given [subId]. */
+    fun isDataRoamingEnabledFlow(subId: Int): Flow<Boolean> {
+        if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
+        val telephonyManager = context.telephonyManager(subId)
+        return mobileSettingsGlobalChangedFlow(Settings.Global.DATA_ROAMING, subId)
+            .map { telephonyManager.isDataRoamingEnabled }
+            .distinctUntilChanged()
+            .conflate()
+            .onEach { Log.d(TAG, "[$subId] isDataRoamingEnabledFlow: $it") }
+            .flowOn(Dispatchers.Default)
+    }
+
+    private companion object {
+        private const val TAG = "MobileDataRepository"
+    }
+}
diff --git a/src/com/android/settings/network/telephony/MobileDataSlice.java b/src/com/android/settings/network/telephony/MobileDataSlice.java
index fd65e85..f5e734d 100644
--- a/src/com/android/settings/network/telephony/MobileDataSlice.java
+++ b/src/com/android/settings/network/telephony/MobileDataSlice.java
@@ -29,6 +29,7 @@
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.UserManager;
 import android.provider.Settings;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
@@ -79,19 +80,24 @@
 
     @Override
     public Slice getSlice() {
+        ListBuilder listBuilder = createListBuilder();
+        if (!isConfigMobileNetworksAllowed()) {
+            return listBuilder.build();
+        }
+
         final IconCompat icon = IconCompat.createWithResource(mContext,
                 R.drawable.ic_network_cell);
         final String title = mContext.getText(R.string.mobile_data_settings_title).toString();
         @ColorInt final int color = Utils.getColorAccentDefaultColor(mContext);
 
-        // Return null until we can show a disabled-action Slice, blaming Airplane mode.
+        // Return empty slice until we can show a disabled-action Slice, blaming Airplane mode.
         if (isAirplaneModeEnabled()) {
-            return null;
+            return listBuilder.build();
         }
 
-        // Return null until we can show a disabled-action Slice.
+        // Return empty slice until we can show a disabled-action Slice.
         if (!isMobileDataAvailable()) {
-            return null;
+            return listBuilder.build();
         }
 
         final CharSequence summary = getSummary();
@@ -109,11 +115,15 @@
             rowBuilder.setSubtitle(summary);
         }
 
-        final ListBuilder listBuilder = new ListBuilder(mContext, getUri(),
-                ListBuilder.INFINITY)
+        return listBuilder
                 .setAccentColor(color)
-                .addRow(rowBuilder);
-        return listBuilder.build();
+                .addRow(rowBuilder)
+                .build();
+    }
+
+    @VisibleForTesting
+    ListBuilder createListBuilder() {
+        return new ListBuilder(mContext, getUri(), ListBuilder.INFINITY);
     }
 
     @Override
@@ -211,6 +221,19 @@
         return mTelephonyManager.isDataEnabled();
     }
 
+    @VisibleForTesting
+    boolean isConfigMobileNetworksAllowed() {
+        if (mContext == null) return true;
+        UserManager userManager = mContext.getSystemService(UserManager.class);
+        if (userManager == null) return true;
+        boolean isAllowed = userManager.isAdminUser() && !userManager.hasUserRestriction(
+                UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
+        if (!isAllowed) {
+            Log.w(TAG, "The user is not allowed to configure Mobile Networks.");
+        }
+        return isAllowed;
+    }
+
     /**
      * Listener for mobile data state changes.
      *
diff --git a/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceController.kt
index 1e635a5..621465e 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceController.kt
@@ -91,7 +91,6 @@
             )
             return
         }
-        preference.isVisible = false
 
         val viewModel by lazyViewModel
         coroutineScope = viewLifecycleOwner.lifecycleScope
@@ -127,7 +126,6 @@
         preference.title = title
         preference.dialogTitle = title
         preference.summary = eid
-        preference.isVisible = eid.isNotEmpty()
     }
 
     override fun handlePreferenceTreeClick(preference: Preference): Boolean {
diff --git a/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt
index a6fb7ba..6b3f903 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt
@@ -113,7 +113,6 @@
     private fun refreshUi(){
         preference.title = title
         preference.summary = imei
-        preference.isVisible = true
     }
 
     override fun handlePreferenceTreeClick(preference: Preference): Boolean {
diff --git a/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
index 10a8b53..db16acd 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
@@ -17,49 +17,37 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
-import android.telephony.SubscriptionInfo
 import android.telephony.SubscriptionManager
-import android.util.Log
-import androidx.annotation.VisibleForTesting
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.viewModels
 import androidx.lifecycle.LifecycleOwner
-import androidx.lifecycle.lifecycleScope
 import androidx.preference.Preference
 import androidx.preference.PreferenceScreen
 import com.android.settings.R
 import com.android.settings.flags.Flags
-import com.android.settings.network.SubscriptionInfoListViewModel
 import com.android.settings.network.SubscriptionUtil
 import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.flowOn
-import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
 
-/**
- * Preference controller for "Phone number"
- */
-class MobileNetworkPhoneNumberPreferenceController(context: Context, key: String) :
-    TelephonyBasePreferenceController(context, key) {
+/** Preference controller for "Phone number" */
+class MobileNetworkPhoneNumberPreferenceController
+@JvmOverloads
+constructor(
+    context: Context,
+    key: String,
+    private val subscriptionRepository: SubscriptionRepository = SubscriptionRepository(context),
+) : TelephonyBasePreferenceController(context, key) {
 
-    private lateinit var lazyViewModel: Lazy<SubscriptionInfoListViewModel>
     private lateinit var preference: Preference
 
-    private var phoneNumber = String()
-
-    fun init(fragment: Fragment, subId: Int) {
-        lazyViewModel = fragment.viewModels()
+    fun init(subId: Int) {
         mSubId = subId
     }
 
-    override fun getAvailabilityStatus(subId: Int): Int = when {
-        !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
-        SubscriptionManager.isValidSubscriptionId(subId)
-                && SubscriptionUtil.isSimHardwareVisible(mContext) -> AVAILABLE
-        else -> CONDITIONALLY_UNAVAILABLE
-    }
+    override fun getAvailabilityStatus(subId: Int): Int =
+        when {
+            !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
+            SubscriptionManager.isValidSubscriptionId(subId) &&
+                SubscriptionUtil.isSimHardwareVisible(mContext) -> AVAILABLE
+            else -> CONDITIONALLY_UNAVAILABLE
+        }
 
     override fun displayPreference(screen: PreferenceScreen) {
         super.displayPreference(screen)
@@ -67,51 +55,10 @@
     }
 
     override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
-        if (!this::lazyViewModel.isInitialized) {
-            Log.e(
-                this.javaClass.simpleName,
-                "lateinit property lazyViewModel has not been initialized"
-            )
-            return
-        }
-        val viewModel by lazyViewModel
-        val coroutineScope = viewLifecycleOwner.lifecycleScope
-
-        viewModel.subscriptionInfoListFlow
-            .map { subscriptionInfoList ->
-                subscriptionInfoList
-                    .firstOrNull { subInfo -> subInfo.subscriptionId == mSubId }
+        subscriptionRepository.phoneNumberFlow(mSubId).collectLatestWithLifecycle(
+            viewLifecycleOwner) { phoneNumber ->
+                preference.summary = phoneNumber ?: getStringUnknown()
             }
-            .flowOn(Dispatchers.Default)
-            .collectLatestWithLifecycle(viewLifecycleOwner) {
-                it?.let {
-                    coroutineScope.launch {
-                        refreshData(it)
-                    }
-                }
-            }
-    }
-
-    @VisibleForTesting
-    suspend fun refreshData(subscriptionInfo: SubscriptionInfo){
-        withContext(Dispatchers.Default) {
-            phoneNumber = getFormattedPhoneNumber(subscriptionInfo)
-        }
-        refreshUi()
-    }
-
-    private fun refreshUi(){
-        preference.summary = phoneNumber
-    }
-
-    private fun getFormattedPhoneNumber(subscriptionInfo: SubscriptionInfo?): String {
-        val phoneNumber = SubscriptionUtil.getBidiFormattedPhoneNumber(
-            mContext,
-            subscriptionInfo
-        )
-        return phoneNumber
-            ?.let { return it.ifEmpty { getStringUnknown() } }
-            ?: getStringUnknown()
     }
 
     private fun getStringUnknown(): String {
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 8b927a9..a5cdb95 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -20,11 +20,14 @@
 
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
+import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.os.Bundle;
 import android.os.UserManager;
 import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -79,7 +82,6 @@
     @VisibleForTesting
     static final String KEY_CLICKED_PREF = "key_clicked_pref";
 
-    private static final String KEY_ROAMING_PREF = "button_roaming_key";
     private static final String KEY_CALLS_PREF = "calls_preference";
     private static final String KEY_SMS_PREF = "sms_preference";
     private static final String KEY_MOBILE_DATA_PREF = "mobile_data_enable";
@@ -107,6 +109,15 @@
     private SubscriptionInfoEntity mSubscriptionInfoEntity;
     private MobileNetworkInfoEntity mMobileNetworkInfoEntity;
 
+    private BroadcastReceiver mBrocastReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            if (intent.getAction().equals(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)) {
+                redrawPreferenceControllers();
+            }
+        }
+    };
+
     public MobileNetworkSettings() {
         super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
     }
@@ -178,8 +189,6 @@
 
         return Arrays.asList(
                 new DataUsageSummaryPreferenceController(context, mSubId),
-                new RoamingPreferenceController(context, KEY_ROAMING_PREF, getSettingsLifecycle(),
-                        this, mSubId),
                 new CallsDefaultSubscriptionController(context, KEY_CALLS_PREF,
                         getSettingsLifecycle(), this),
                 new SmsDefaultSubscriptionController(context, KEY_SMS_PREF, getSettingsLifecycle(),
@@ -193,7 +202,6 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-
         if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             Log.d(LOG_TAG, "Invalid subId, get the default subscription to show.");
             SubscriptionInfo info = SubscriptionUtil.getSubscriptionOrDefault(context, mSubId);
@@ -238,16 +246,17 @@
         use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
         use(BillingCyclePreferenceController.class).init(mSubId);
         use(MmsMessagePreferenceController.class).init(mSubId);
-        final var crossSimCallingViewModel =
-                new ViewModelProvider(this).get(CrossSimCallingViewModel.class);
-        use(AutoDataSwitchPreferenceController.class).init(mSubId, crossSimCallingViewModel);
+        // CrossSimCallingViewModel is responsible for maintaining the correct cross sim calling
+        // settings (backup calling).
+        new ViewModelProvider(this).get(CrossSimCallingViewModel.class);
+        use(AutoDataSwitchPreferenceController.class).init(mSubId);
         use(DisabledSubscriptionController.class).init(mSubId);
         use(DeleteSimProfilePreferenceController.class).init(mSubId);
         use(DisableSimFooterPreferenceController.class).init(mSubId);
         use(NrDisabledInDsdsFooterPreferenceController.class).init(mSubId);
 
         use(MobileNetworkSpnPreferenceController.class).init(this, mSubId);
-        use(MobileNetworkPhoneNumberPreferenceController.class).init(this, mSubId);
+        use(MobileNetworkPhoneNumberPreferenceController.class).init(mSubId);
         use(MobileNetworkImeiPreferenceController.class).init(this, mSubId);
 
         final MobileDataPreferenceController mobileDataPreferenceController =
@@ -263,8 +272,7 @@
         final RoamingPreferenceController roamingPreferenceController =
                 use(RoamingPreferenceController.class);
         if (roamingPreferenceController != null) {
-            roamingPreferenceController.init(getFragmentManager(), mSubId,
-                    mMobileNetworkInfoEntity);
+            roamingPreferenceController.init(getParentFragmentManager(), mSubId);
         }
         final SatelliteSettingPreferenceController satelliteSettingPreferenceController = use(
                 SatelliteSettingPreferenceController.class);
@@ -332,6 +340,11 @@
                 setTelephonyAvailabilityStatus(getPreferenceControllersAsList());
 
         super.onCreate(icicle);
+        if (isUiRestricted()) {
+            Log.d(LOG_TAG, "Mobile network page is disallowed.");
+            finish();
+            return;
+        }
         final Context context = getContext();
         mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
         mTelephonyManager = context.getSystemService(TelephonyManager.class)
@@ -355,6 +368,10 @@
         mMobileNetworkRepository.updateEntity();
         // TODO: remove log after fixing b/182326102
         Log.d(LOG_TAG, "onResume() subId=" + mSubId);
+
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
+        getContext().registerReceiver(mBrocastReceiver, intentFilter, Context.RECEIVER_EXPORTED);
     }
 
     private void onSubscriptionDetailChanged() {
@@ -374,6 +391,7 @@
     @Override
     public void onPause() {
         mMobileNetworkRepository.removeRegister(this);
+        getContext().unregisterReceiver(mBrocastReceiver);
         super.onPause();
     }
 
@@ -453,14 +471,10 @@
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.mobile_network_settings) {
-
-                /** suppress full page if user is not admin */
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
-                    boolean isAirplaneOff = Settings.Global.getInt(context.getContentResolver(),
-                            Settings.Global.AIRPLANE_MODE_ON, 0) == 0;
-                    return isAirplaneOff && SubscriptionUtil.isSimHardwareVisible(context)
-                            && context.getSystemService(UserManager.class).isAdminUser();
+                    return MobileNetworkSettingsSearchIndex
+                            .isMobileNetworkSettingsSearchable(context);
                 }
             };
 
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
new file mode 100644
index 0000000..c63e7d2
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndex.kt
@@ -0,0 +1,128 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.provider.Settings
+import android.telephony.SubscriptionInfo
+import com.android.settings.R
+import com.android.settings.network.SubscriptionUtil
+import com.android.settings.network.telephony.CarrierSettingsVersionPreferenceController.Companion.CarrierSettingsVersionSearchItem
+import com.android.settings.network.telephony.DataUsagePreferenceController.Companion.DataUsageSearchItem
+import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
+import com.android.settings.network.telephony.NrAdvancedCallingPreferenceController.Companion.NrAdvancedCallingSearchItem
+import com.android.settings.network.telephony.RoamingPreferenceController.Companion.RoamingSearchItem
+import com.android.settings.network.telephony.WifiCallingPreferenceController.Companion.WifiCallingSearchItem
+import com.android.settings.spa.SpaSearchLanding.BundleValue
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.search.SpaSearchRepository.Companion.createSearchIndexableRaw
+import com.android.settings.spa.search.SpaSearchRepository.Companion.searchIndexProviderOf
+import com.android.settingslib.search.SearchIndexableData
+import com.android.settingslib.search.SearchIndexableRaw
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean
+
+class MobileNetworkSettingsSearchIndex(
+    private val searchItemsFactory: (context: Context) -> List<MobileNetworkSettingsSearchItem> =
+        ::createSearchItems,
+) {
+    data class MobileNetworkSettingsSearchResult(
+        val key: String,
+        val title: String,
+        val keywords: String? = null,
+    )
+
+    interface MobileNetworkSettingsSearchItem {
+        fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult?
+    }
+
+    fun createSearchIndexableData(): SearchIndexableData {
+        val searchIndexProvider = searchIndexProviderOf { context ->
+            if (!isMobileNetworkSettingsSearchable(context)) {
+                return@searchIndexProviderOf emptyList()
+            }
+            val subInfos = context.requireSubscriptionManager().activeSubscriptionInfoList
+            if (subInfos.isNullOrEmpty()) {
+                return@searchIndexProviderOf emptyList()
+            }
+            searchItemsFactory(context).flatMap { searchItem ->
+                searchIndexableRawList(context, searchItem, subInfos)
+            }
+        }
+        return SearchIndexableData(MobileNetworkSettings::class.java, searchIndexProvider)
+    }
+
+    private fun searchIndexableRawList(
+        context: Context,
+        searchItem: MobileNetworkSettingsSearchItem,
+        subInfos: List<SubscriptionInfo>
+    ): List<SearchIndexableRaw> =
+        subInfos.mapNotNull { subInfo ->
+            searchItem.getSearchResult(subInfo.subscriptionId)?.let { searchResult ->
+                searchIndexableRaw(context, searchResult, subInfo)
+            }
+        }
+
+    private fun searchIndexableRaw(
+        context: Context,
+        searchResult: MobileNetworkSettingsSearchResult,
+        subInfo: SubscriptionInfo,
+    ): SearchIndexableRaw {
+        val key =
+            SpaSearchLandingKey.newBuilder()
+                .setFragment(
+                    SpaSearchLandingFragment.newBuilder()
+                        .setFragmentName(MobileNetworkSettings::class.java.name)
+                        .setPreferenceKey(searchResult.key)
+                        .putArguments(
+                            Settings.EXTRA_SUB_ID,
+                            BundleValue.newBuilder().setIntValue(subInfo.subscriptionId).build()))
+                .build()
+        val simsTitle = context.getString(R.string.provider_network_settings_title)
+        return createSearchIndexableRaw(
+            context = context,
+            spaSearchLandingKey = key,
+            itemTitle = searchResult.title,
+            keywords = searchResult.keywords,
+            indexableClass = MobileNetworkSettings::class.java,
+            pageTitle = "$simsTitle > ${subInfo.displayName}",
+        )
+    }
+
+    companion object {
+        /** suppress full page if user is not admin */
+        @JvmStatic
+        fun isMobileNetworkSettingsSearchable(context: Context): Boolean {
+            val isAirplaneMode by context.settingsGlobalBoolean(Settings.Global.AIRPLANE_MODE_ON)
+            return SubscriptionUtil.isSimHardwareVisible(context) &&
+                !isAirplaneMode &&
+                context.userManager.isAdminUser
+        }
+
+        fun createSearchItems(context: Context): List<MobileNetworkSettingsSearchItem> =
+            listOf(
+                CarrierSettingsVersionSearchItem(context),
+                DataUsageSearchItem(context),
+                MmsMessageSearchItem(context),
+                NrAdvancedCallingSearchItem(context),
+                PreferredNetworkModeSearchItem(context),
+                RoamingSearchItem(context),
+                WifiCallingSearchItem(context),
+            )
+    }
+}
diff --git a/src/com/android/settings/network/telephony/NetworkSelectRepository.kt b/src/com/android/settings/network/telephony/NetworkSelectRepository.kt
index 1f5fbc2..d95c90e 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectRepository.kt
+++ b/src/com/android/settings/network/telephony/NetworkSelectRepository.kt
@@ -18,8 +18,10 @@
 
 import android.content.Context
 import android.telephony.AccessNetworkConstants
+import android.telephony.CarrierConfigManager
 import android.telephony.NetworkRegistrationInfo
 import android.telephony.TelephonyManager
+import android.telephony.satellite.SatelliteManager
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleOwner
 import androidx.lifecycle.lifecycleScope
@@ -28,9 +30,11 @@
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 
-class NetworkSelectRepository(context: Context, subId: Int) {
+class NetworkSelectRepository(context: Context, private val subId: Int) {
     private val telephonyManager =
         context.getSystemService(TelephonyManager::class.java)!!.createForSubscriptionId(subId)
+    private val satelliteManager = context.getSystemService(SatelliteManager::class.java)
+    private val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)
 
     data class NetworkRegistrationAndForbiddenInfo(
         val networkList: List<NetworkRegistrationInfo>,
@@ -55,10 +59,21 @@
         if (telephonyManager.dataState != TelephonyManager.DATA_CONNECTED) return null
         // Try to get the network registration states
         val serviceState = telephonyManager.serviceState ?: return null
-        val networkList = serviceState.getNetworkRegistrationInfoListForTransportType(
+        var networkList = serviceState.getNetworkRegistrationInfoListForTransportType(
             AccessNetworkConstants.TRANSPORT_TYPE_WWAN
         )
         if (networkList.isEmpty()) return null
+
+        val satellitePlmn = getSatellitePlmns()
+        // If connected network is Satellite, filter out
+        if (satellitePlmn.isNotEmpty()) {
+            val filteredNetworkList = networkList.filter {
+                val cellIdentity = it.cellIdentity
+                val plmn = cellIdentity?.plmn
+                plmn != null && !satellitePlmn.contains(plmn)
+            }
+            networkList = filteredNetworkList
+        }
         // Due to the aggregation of cell between carriers, it's possible to get CellIdentity
         // containing forbidden PLMN.
         // Getting current network from ServiceState is no longer a good idea.
@@ -72,4 +87,24 @@
     private fun getForbiddenPlmns(): List<String> {
         return telephonyManager.forbiddenPlmns?.toList() ?: emptyList()
     }
+
+    /**
+     * Update satellite PLMNs from the satellite framework.
+     */
+    private fun getSatellitePlmns(): List<String> {
+        val config = carrierConfigManager.getConfigForSubId(
+            subId,
+            CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL
+        )
+
+        val shouldFilter = config.getBoolean(
+            CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL,
+            true)
+
+        return if (shouldFilter) {
+            satelliteManager.getSatellitePlmnsForCarrier(subId)
+        } else {
+            emptyList();
+        }
+    }
 }
diff --git a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
index cf47c1f..0d8766e 100644
--- a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.kt
@@ -25,6 +25,8 @@
 import androidx.compose.ui.res.stringResource
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
 import com.android.settings.spa.preference.ComposePreferenceController
 import com.android.settingslib.spa.widget.preference.SwitchPreference
 import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
@@ -41,6 +43,7 @@
 ) : ComposePreferenceController(context, key) {
     private var subId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
     private var repository: VoNrRepository? = null
+    private val searchItem = NrAdvancedCallingSearchItem(context)
 
     /** Initial this PreferenceController. */
     @JvmOverloads
@@ -50,7 +53,7 @@
     }
 
     override fun getAvailabilityStatus() =
-        if (repository?.isVoNrAvailable() == true) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+        if (searchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
 
     @Composable
     override fun Content() {
@@ -73,4 +76,21 @@
             }
         })
     }
+
+    companion object {
+        class NrAdvancedCallingSearchItem(private val context: Context) :
+            MobileNetworkSettingsSearchItem {
+
+            fun isAvailable(subId: Int): Boolean = VoNrRepository(context, subId).isVoNrAvailable()
+
+            override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+                if (!isAvailable(subId)) return null
+                return MobileNetworkSettingsSearchResult(
+                    key = "nr_advanced_calling",
+                    title = context.getString(R.string.nr_advanced_calling_title),
+                    keywords = context.getString(R.string.keywords_nr_advanced_calling),
+                )
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
index bdfeace..210cd87 100644
--- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.network.telephony;
 
+import static com.android.settings.network.telephony.EnabledNetworkModePreferenceControllerHelperKt.getNetworkModePreferenceType;
+
 import android.content.Context;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
@@ -27,16 +29,18 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
 import com.android.settings.network.CarrierConfigCache;
 import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
 
 /**
  * Preference controller for "Preferred network mode"
  */
-public class PreferredNetworkModePreferenceController extends TelephonyBasePreferenceController
+public class PreferredNetworkModePreferenceController extends BasePreferenceController
         implements ListPreference.OnPreferenceChangeListener {
     private static final String TAG = "PrefNetworkModeCtrl";
 
+    private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private CarrierConfigCache mCarrierConfigCache;
     private TelephonyManager mTelephonyManager;
     private boolean mIsGlobalCdma;
@@ -47,25 +51,10 @@
     }
 
     @Override
-    public int getAvailabilityStatus(int subId) {
-        final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
-        boolean visible;
-        if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            visible = false;
-        } else if (carrierConfig == null) {
-            visible = false;
-        } else if (carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)
-                || carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)) {
-            visible = false;
-        } else if (carrierConfig.getBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL)) {
-            visible = true;
-        } else {
-            visible = false;
-        }
-
-        return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    public int getAvailabilityStatus() {
+        return getNetworkModePreferenceType(mContext, mSubId)
+                == NetworkModePreferenceType.PreferredNetworkMode
+                ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/RoamingPreferenceController.java b/src/com/android/settings/network/telephony/RoamingPreferenceController.java
deleted file mode 100644
index bf02308..0000000
--- a/src/com/android/settings/network/telephony/RoamingPreferenceController.java
+++ /dev/null
@@ -1,215 +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.telephony;
-
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.fragment.app.FragmentManager;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.network.MobileNetworkRepository;
-import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Preference controller for "Roaming"
- */
-public class RoamingPreferenceController extends TelephonyTogglePreferenceController implements
-        LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback {
-    private static final String TAG = "RoamingController";
-    private static final String DIALOG_TAG = "MobileDataDialog";
-
-    private RestrictedSwitchPreference mSwitchPreference;
-    private TelephonyManager mTelephonyManager;
-    private CarrierConfigManager mCarrierConfigManager;
-    protected MobileNetworkRepository mMobileNetworkRepository;
-    protected LifecycleOwner mLifecycleOwner;
-    private List<MobileNetworkInfoEntity> mMobileNetworkInfoEntityList = new ArrayList<>();
-
-    @VisibleForTesting
-    FragmentManager mFragmentManager;
-    MobileNetworkInfoEntity mMobileNetworkInfoEntity;
-
-    public RoamingPreferenceController(Context context, String key, Lifecycle lifecycle,
-            LifecycleOwner lifecycleOwner, int subId) {
-        this(context, key);
-        mSubId = subId;
-        mLifecycleOwner = lifecycleOwner;
-        if (lifecycle != null) {
-            lifecycle.addObserver(this);
-        }
-    }
-
-    public RoamingPreferenceController(Context context, String key) {
-        super(context, key);
-        mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
-        mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
-        if (carrierConfig != null && carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)) {
-            return CONDITIONALLY_UNAVAILABLE;
-        }
-        return AVAILABLE;
-    }
-
-    @OnLifecycleEvent(ON_START)
-    public void onStart() {
-        mMobileNetworkRepository.addRegister(mLifecycleOwner, this, mSubId);
-        mMobileNetworkRepository.updateEntity();
-    }
-
-    @OnLifecycleEvent(ON_STOP)
-    public void onStop() {
-        mMobileNetworkRepository.removeRegister(this);
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mSwitchPreference = screen.findPreference(getPreferenceKey());
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
-                ? AVAILABLE
-                : AVAILABLE_UNSEARCHABLE;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        if (isDialogNeeded()) {
-            showDialog();
-        } else {
-            // Update data directly if we don't need dialog
-            mTelephonyManager.setDataRoamingEnabled(isChecked);
-            return true;
-        }
-
-        return false;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        mSwitchPreference = (RestrictedSwitchPreference) preference;
-        update();
-    }
-
-    private void update() {
-        if (mSwitchPreference == null) {
-            return;
-        }
-        if (!mSwitchPreference.isDisabledByAdmin()) {
-            mSwitchPreference.setEnabled(mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-            mSwitchPreference.setChecked(isChecked());
-        }
-    }
-
-    @VisibleForTesting
-    boolean isDialogNeeded() {
-        final boolean isRoamingEnabled = mMobileNetworkInfoEntity == null ? false
-                : mMobileNetworkInfoEntity.isDataRoamingEnabled;
-        final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
-                mSubId);
-        // Need dialog if we need to turn on roaming and the roaming charge indication is allowed
-        if (!isRoamingEnabled && (carrierConfig == null || !carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL))) {
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return mMobileNetworkInfoEntity == null ? false
-                : mMobileNetworkInfoEntity.isDataRoamingEnabled;
-    }
-
-    public void init(FragmentManager fragmentManager, int subId, MobileNetworkInfoEntity entity) {
-        mFragmentManager = fragmentManager;
-        mSubId = subId;
-        mMobileNetworkInfoEntity = entity;
-        mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
-        if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            return;
-        }
-        final TelephonyManager telephonyManager = mTelephonyManager
-                .createForSubscriptionId(mSubId);
-        if (telephonyManager == null) {
-            Log.w(TAG, "fail to init in sub" + mSubId);
-            mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-            return;
-        }
-        mTelephonyManager = telephonyManager;
-    }
-
-    private void showDialog() {
-        final RoamingDialogFragment dialogFragment = RoamingDialogFragment.newInstance(mSubId);
-
-        dialogFragment.show(mFragmentManager, DIALOG_TAG);
-    }
-
-    @VisibleForTesting
-    public void setMobileNetworkInfoEntity(MobileNetworkInfoEntity mobileNetworkInfoEntity) {
-        mMobileNetworkInfoEntity = mobileNetworkInfoEntity;
-    }
-
-    @Override
-    public void onAllMobileNetworkInfoChanged(
-            List<MobileNetworkInfoEntity> mobileNetworkInfoEntityList) {
-        mMobileNetworkInfoEntityList = mobileNetworkInfoEntityList;
-        mMobileNetworkInfoEntityList.forEach(entity -> {
-            if (Integer.parseInt(entity.subId) == mSubId) {
-                mMobileNetworkInfoEntity = entity;
-                update();
-                refreshSummary(mSwitchPreference);
-                return;
-            }
-        });
-    }
-
-    @Override
-    public void onDataRoamingChanged(int subId, boolean enabled) {
-        if (subId != mSubId) {
-            Log.d(TAG, "onDataRoamingChanged - wrong subId : " + subId + " / " + enabled);
-            return;
-        }
-        update();
-    }
-}
diff --git a/src/com/android/settings/network/telephony/RoamingPreferenceController.kt b/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
new file mode 100644
index 0000000..a5ac7d6
--- /dev/null
+++ b/src/com/android/settings/network/telephony/RoamingPreferenceController.kt
@@ -0,0 +1,119 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.os.UserManager
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import androidx.annotation.VisibleForTesting
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.ui.res.stringResource
+import androidx.fragment.app.FragmentManager
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
+import com.android.settings.spa.preference.ComposePreferenceController
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+import com.android.settingslib.spaprivileged.model.enterprise.Restrictions
+import com.android.settingslib.spaprivileged.template.preference.RestrictedSwitchPreference
+
+/** Preference controller for "Roaming" */
+class RoamingPreferenceController
+@JvmOverloads
+constructor(
+    context: Context,
+    key: String,
+    private val mobileDataRepository: MobileDataRepository = MobileDataRepository(context),
+) : ComposePreferenceController(context, key) {
+    @VisibleForTesting var fragmentManager: FragmentManager? = null
+    private var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+
+    private var telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
+    private val carrierConfigRepository = CarrierConfigRepository(context)
+    private val roamingSearchItem = RoamingSearchItem(context)
+
+    fun init(fragmentManager: FragmentManager, subId: Int) {
+        this.fragmentManager = fragmentManager
+        this.subId = subId
+        telephonyManager = telephonyManager.createForSubscriptionId(subId)
+    }
+
+    override fun getAvailabilityStatus() =
+        if (roamingSearchItem.isAvailable(subId)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+
+    @Composable
+    override fun Content() {
+        val summary = stringResource(R.string.roaming_enable)
+        val isDataRoamingEnabled by
+            remember { mobileDataRepository.isDataRoamingEnabledFlow(subId) }
+                .collectAsStateWithLifecycle(null)
+        RestrictedSwitchPreference(
+            model =
+                object : SwitchPreferenceModel {
+                    override val title = stringResource(R.string.roaming)
+                    override val summary = { summary }
+                    override val checked = { isDataRoamingEnabled }
+                    override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
+                        if (newChecked && isDialogNeeded()) {
+                            showDialog()
+                        } else {
+                            // Update data directly if we don't need dialog
+                            telephonyManager.isDataRoamingEnabled = newChecked
+                        }
+                    }
+                },
+            restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_DATA_ROAMING)),
+        )
+    }
+
+    @VisibleForTesting
+    fun isDialogNeeded(): Boolean {
+        // Need dialog if we need to turn on roaming and the roaming charge indication is allowed
+        return !carrierConfigRepository.getBoolean(
+            subId, CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL)
+    }
+
+    private fun showDialog() {
+        fragmentManager?.let { RoamingDialogFragment.newInstance(subId).show(it, DIALOG_TAG) }
+    }
+
+    companion object {
+        private const val DIALOG_TAG = "MobileDataDialog"
+
+        class RoamingSearchItem(private val context: Context) : MobileNetworkSettingsSearchItem {
+            private val carrierConfigRepository = CarrierConfigRepository(context)
+
+            fun isAvailable(subId: Int): Boolean =
+                SubscriptionManager.isValidSubscriptionId(subId) &&
+                    !carrierConfigRepository.getBoolean(
+                        subId, CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL)
+
+            override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+                if (!isAvailable(subId)) return null
+                return MobileNetworkSettingsSearchResult(
+                    key = "button_roaming_key",
+                    title = context.getString(R.string.roaming),
+                )
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/network/telephony/SatelliteSetting.java b/src/com/android/settings/network/telephony/SatelliteSetting.java
index 314fb3a..df58048 100644
--- a/src/com/android/settings/network/telephony/SatelliteSetting.java
+++ b/src/com/android/settings/network/telephony/SatelliteSetting.java
@@ -92,6 +92,14 @@
         }
 
         mActivity = getActivity();
+
+        mSatelliteManager = mActivity.getSystemService(SatelliteManager.class);
+        if (mSatelliteManager == null) {
+            Log.d(TAG, "SatelliteManager is null, do nothing.");
+            finish();
+            return;
+        }
+
         mSubId = mActivity.getIntent().getIntExtra(SUB_ID,
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
 
@@ -104,7 +112,6 @@
         }
 
         mTelephonymanager = mActivity.getSystemService(TelephonyManager.class);
-        mSatelliteManager = mActivity.getSystemService(SatelliteManager.class);
     }
 
     @Override
@@ -143,7 +150,7 @@
             /* In case satellite is allowed by carrier's entitlement server, the page will show
                the check icon with guidance that satellite is included in user's mobile plan */
             preference.setTitle(R.string.title_have_satellite_plan);
-            icon = getResources().getDrawable(R.drawable.ic_check_circle_24px);
+            icon = getContext().getDrawable(R.drawable.ic_check_circle_24px);
         } else {
             /* Or, it will show the blocked icon with the guidance that satellite is not included
                in user's mobile plan */
diff --git a/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java b/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java
index 153698c..9ca0294 100644
--- a/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java
@@ -64,6 +64,10 @@
             return UNSUPPORTED_ON_DEVICE;
         }
 
+        if (mSatelliteManager == null) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+
         final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
         final boolean isSatelliteAttachSupported = carrierConfig.getBoolean(
                 CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL);
diff --git a/src/com/android/settings/network/telephony/SubscriptionRepository.kt b/src/com/android/settings/network/telephony/SubscriptionRepository.kt
index 3ee8548..cc8c8b4 100644
--- a/src/com/android/settings/network/telephony/SubscriptionRepository.kt
+++ b/src/com/android/settings/network/telephony/SubscriptionRepository.kt
@@ -24,12 +24,14 @@
 import com.android.settings.network.SubscriptionUtil
 import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
 import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.asExecutor
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.callbackFlow
 import kotlinx.coroutines.flow.conflate
-import kotlinx.coroutines.flow.filterNot
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.flowOn
 import kotlinx.coroutines.flow.map
@@ -51,7 +53,7 @@
     /** Flow of whether the subscription enabled for the given [subId]. */
     fun isSubscriptionEnabledFlow(subId: Int): Flow<Boolean> {
         if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
-        return context.subscriptionsChangedFlow()
+        return subscriptionsChangedFlow()
             .map { subscriptionManager.isSubscriptionEnabled(subId) }
             .conflate()
             .onEach { Log.d(TAG, "[$subId] isSubscriptionEnabledFlow: $it") }
@@ -68,6 +70,48 @@
     }
 
     fun canDisablePhysicalSubscription() = subscriptionManager.canDisablePhysicalSubscription()
+
+    /** Flow for subscriptions changes. */
+    fun subscriptionsChangedFlow() = callbackFlow {
+        val listener = object : SubscriptionManager.OnSubscriptionsChangedListener() {
+            override fun onSubscriptionsChanged() {
+                trySend(Unit)
+            }
+        }
+
+        subscriptionManager.addOnSubscriptionsChangedListener(
+            Dispatchers.Default.asExecutor(),
+            listener,
+        )
+
+        awaitClose { subscriptionManager.removeOnSubscriptionsChangedListener(listener) }
+    }.conflate().onEach { Log.d(TAG, "subscriptions changed") }.flowOn(Dispatchers.Default)
+
+    /** Flow of active subscription ids. */
+    fun activeSubscriptionIdListFlow(): Flow<List<Int>> =
+        subscriptionsChangedFlow()
+            .map { subscriptionManager.activeSubscriptionIdList.sorted() }
+            .distinctUntilChanged()
+            .conflate()
+            .onEach { Log.d(TAG, "activeSubscriptionIdList: $it") }
+            .flowOn(Dispatchers.Default)
+
+    fun activeSubscriptionInfoFlow(subId: Int): Flow<SubscriptionInfo?> =
+        subscriptionsChangedFlow()
+            .map { subscriptionManager.getActiveSubscriptionInfo(subId) }
+            .distinctUntilChanged()
+            .conflate()
+            .flowOn(Dispatchers.Default)
+
+    @OptIn(ExperimentalCoroutinesApi::class)
+    fun phoneNumberFlow(subId: Int): Flow<String?> =
+        activeSubscriptionInfoFlow(subId).flatMapLatest { subInfo ->
+            if (subInfo != null) {
+                context.phoneNumberFlow(subInfo)
+            } else {
+                flowOf(null)
+            }
+        }
 }
 
 val Context.subscriptionManager: SubscriptionManager?
@@ -75,26 +119,15 @@
 
 fun Context.requireSubscriptionManager(): SubscriptionManager = subscriptionManager!!
 
-fun Context.phoneNumberFlow(subscriptionInfo: SubscriptionInfo) = subscriptionsChangedFlow().map {
-    SubscriptionUtil.getBidiFormattedPhoneNumber(this, subscriptionInfo)
-}.filterNot { it.isNullOrEmpty() }.flowOn(Dispatchers.Default)
+fun Context.phoneNumberFlow(subscriptionInfo: SubscriptionInfo): Flow<String?> =
+    subscriptionsChangedFlow()
+        .map { SubscriptionUtil.getBidiFormattedPhoneNumber(this, subscriptionInfo) }
+        .distinctUntilChanged()
+        .conflate()
+        .flowOn(Dispatchers.Default)
 
-fun Context.subscriptionsChangedFlow() = callbackFlow {
-    val subscriptionManager = requireSubscriptionManager()
-
-    val listener = object : SubscriptionManager.OnSubscriptionsChangedListener() {
-        override fun onSubscriptionsChanged() {
-            trySend(Unit)
-        }
-    }
-
-    subscriptionManager.addOnSubscriptionsChangedListener(
-        Dispatchers.Default.asExecutor(),
-        listener,
-    )
-
-    awaitClose { subscriptionManager.removeOnSubscriptionsChangedListener(listener) }
-}.conflate().onEach { Log.d(TAG, "subscriptions changed") }.flowOn(Dispatchers.Default)
+fun Context.subscriptionsChangedFlow(): Flow<Unit> =
+    SubscriptionRepository(this).subscriptionsChangedFlow()
 
 /**
  * Return a list of subscriptions that are available and visible to the user.
diff --git a/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java b/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
index 3972f39..ee15520 100644
--- a/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/TelephonyBasePreferenceController.java
@@ -17,9 +17,6 @@
 package com.android.settings.network.telephony;
 
 import android.content.Context;
-import android.content.res.Resources;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
 import android.telephony.SubscriptionManager;
 
 import com.android.settings.core.BasePreferenceController;
@@ -59,29 +56,4 @@
     public void unsetAvailabilityStatus() {
         mSetSessionCount.getAndDecrement();
     }
-
-    /**
-     * Get carrier config based on specific subscription id.
-     *
-     * @param subId is the subscription id
-     * @return {@link PersistableBundle} of carrier config, or {@code null} when carrier config
-     * is not available.
-     */
-    public PersistableBundle getCarrierConfigForSubId(int subId) {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
-            return null;
-        }
-        final CarrierConfigManager carrierConfigMgr =
-                mContext.getSystemService(CarrierConfigManager.class);
-        return carrierConfigMgr.getConfigForSubId(subId);
-    }
-
-    /**
-     * Returns the resources associated with Subscription.
-     *
-     * @return Resources associated with Subscription.
-     */
-    public Resources getResourcesForSubId() {
-        return SubscriptionManager.getResourcesForSubId(mContext, mSubId);
-    }
 }
diff --git a/src/com/android/settings/network/telephony/TelephonyRepository.kt b/src/com/android/settings/network/telephony/TelephonyRepository.kt
index 7c334ee..3317c71 100644
--- a/src/com/android/settings/network/telephony/TelephonyRepository.kt
+++ b/src/com/android/settings/network/telephony/TelephonyRepository.kt
@@ -17,98 +17,16 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
-import android.telephony.SubscriptionManager
 import android.telephony.TelephonyCallback
 import android.telephony.TelephonyManager
-import android.util.Log
-import com.android.settings.network.mobileDataEnabledFlow
-import com.android.settings.wifi.WifiPickerTrackerHelper
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.asExecutor
 import kotlinx.coroutines.channels.ProducerScope
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.callbackFlow
-import kotlinx.coroutines.flow.catch
 import kotlinx.coroutines.flow.conflate
-import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.flowOn
-import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.onEach
-
-class TelephonyRepository(
-    private val context: Context,
-    private val subscriptionsChangedFlow: Flow<Unit> = context.subscriptionsChangedFlow(),
-) {
-    fun isMobileDataPolicyEnabledFlow(
-        subId: Int,
-        @TelephonyManager.MobileDataPolicy policy: Int,
-    ): Flow<Boolean> {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
-
-        val telephonyManager = context.telephonyManager(subId)
-
-        return subscriptionsChangedFlow.map {
-            telephonyManager.isMobileDataPolicyEnabled(policy)
-                .also { Log.d(TAG, "[$subId] isMobileDataPolicyEnabled($policy): $it") }
-        }.conflate().flowOn(Dispatchers.Default)
-    }
-
-    fun setMobileDataPolicyEnabled(
-        subId: Int,
-        @TelephonyManager.MobileDataPolicy policy: Int,
-        enabled: Boolean,
-    ) {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) return
-
-        val telephonyManager = context.telephonyManager(subId)
-        Log.d(TAG, "[$subId] setMobileDataPolicyEnabled($policy): $enabled")
-        telephonyManager.setMobileDataPolicyEnabled(policy, enabled)
-    }
-
-    fun isDataEnabledFlow(subId: Int): Flow<Boolean> {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
-
-        return context.mobileDataEnabledFlow(subId)
-            .map {
-                val telephonyManager = context.telephonyManager(subId)
-                telephonyManager.isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
-            }
-            .catch {
-                Log.w(TAG, "[$subId] isDataEnabledFlow: exception", it)
-                emit(false)
-            }
-            .onEach { Log.d(TAG, "[$subId] isDataEnabledFlow: isDataEnabled() = $it") }
-            .conflate()
-            .flowOn(Dispatchers.Default)
-    }
-
-    fun setMobileData(
-        subId: Int,
-        enabled: Boolean,
-        wifiPickerTrackerHelper: WifiPickerTrackerHelper? = null
-    ) {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) return
-
-        Log.d(TAG, "setMobileData: $enabled")
-        MobileNetworkUtils.setMobileDataEnabled(
-            context,
-            subId,
-            enabled /* enabled */,
-            true /* disableOtherSubscriptions */
-        )
-
-        if (wifiPickerTrackerHelper != null
-            && !wifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(subId)
-        ) {
-            wifiPickerTrackerHelper.setCarrierNetworkEnabled(enabled)
-        }
-    }
-
-    private companion object {
-        private const val TAG = "TelephonyRepository"
-    }
-}
 
 /** Creates an instance of a cold Flow for Telephony callback of given [subId]. */
 fun <T> Context.telephonyCallbackFlow(
diff --git a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
index 78eb832..981e5bb 100644
--- a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
+++ b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
@@ -76,7 +76,6 @@
         Intent intent = new Intent(context, ToggleSubscriptionDialogActivity.class);
         intent.putExtra(ARG_SUB_ID, subId);
         intent.putExtra(ARG_enable, enable);
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         return intent;
     }
 
@@ -584,7 +583,7 @@
     }
 
     private boolean isRemovableSimEnabled() {
-        return UiccSlotUtil.isRemovableSimEnabled(mTelMgr);
+        return new UiccSlotRepository(mTelMgr).anyRemovablePhysicalSimEnabled();
     }
 
     private boolean isMultipleEnabledProfilesSupported() {
diff --git a/src/com/android/settings/network/telephony/UiccSlotRepository.kt b/src/com/android/settings/network/telephony/UiccSlotRepository.kt
new file mode 100644
index 0000000..3a83805
--- /dev/null
+++ b/src/com/android/settings/network/telephony/UiccSlotRepository.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.telephony
+
+import android.telephony.TelephonyManager
+import android.telephony.UiccSlotInfo
+import android.util.Log
+
+class UiccSlotRepository(private val telephonyManager: TelephonyManager?) {
+
+    /** Returns whether any removable physical sim is enabled. */
+    fun anyRemovablePhysicalSimEnabled(): Boolean {
+        val result =
+            telephonyManager?.uiccSlotsInfo?.any { uiccSlotInfo: UiccSlotInfo? ->
+                uiccSlotInfo.isRemovablePhysicalSimEnabled()
+            } ?: false
+        Log.i(TAG, "anyRemovablePhysicalSimEnabled: $result")
+        return result
+    }
+
+    private fun UiccSlotInfo?.isRemovablePhysicalSimEnabled(): Boolean {
+        return this != null &&
+            isRemovable &&
+            !isEuicc &&
+            ports.any { port -> port.isActive } &&
+            cardStateInfo == UiccSlotInfo.CARD_STATE_INFO_PRESENT
+    }
+
+    companion object {
+        private const val TAG = "UiccRepository"
+    }
+}
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
index 3bb2679..e04763a 100644
--- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
+++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
@@ -22,14 +22,18 @@
 import android.telephony.SubscriptionManager
 import android.telephony.TelephonyManager
 import android.telephony.ims.ImsMmTelManager
-import android.util.Log
 import androidx.lifecycle.LifecycleOwner
 import androidx.preference.Preference
 import androidx.preference.PreferenceScreen
 import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem
 import com.android.settings.network.telephony.wificalling.WifiCallingRepository
 import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
 import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.runBlocking
 import kotlinx.coroutines.withContext
 
 /**
@@ -44,20 +48,21 @@
     private val wifiCallingRepositoryFactory: (subId: Int) -> WifiCallingRepository = { subId ->
         WifiCallingRepository(context, subId)
     },
-) : TelephonyBasePreferenceController(context, key) {
+) : BasePreferenceController(context, key) {
 
+    private var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
     private lateinit var preference: Preference
     private lateinit var callingPreferenceCategoryController: CallingPreferenceCategoryController
 
     private val resourcesForSub by lazy {
-        SubscriptionManager.getResourcesForSubId(mContext, mSubId)
+        SubscriptionManager.getResourcesForSubId(mContext, subId)
     }
 
     fun init(
         subId: Int,
         callingPreferenceCategoryController: CallingPreferenceCategoryController,
     ): WifiCallingPreferenceController {
-        mSubId = subId
+        this.subId = subId
         this.callingPreferenceCategoryController = callingPreferenceCategoryController
         return this
     }
@@ -65,39 +70,32 @@
     /**
      * Note: Visibility also controlled by [onViewCreated].
      */
-    override fun getAvailabilityStatus(subId: Int) =
+    override fun getAvailabilityStatus() =
         if (SubscriptionManager.isValidSubscriptionId(subId)) AVAILABLE
         else CONDITIONALLY_UNAVAILABLE
 
     override fun displayPreference(screen: PreferenceScreen) {
         // Not call super here, to avoid preference.isVisible changed unexpectedly
         preference = screen.findPreference(preferenceKey)!!
-        preference.intent?.putExtra(Settings.EXTRA_SUB_ID, mSubId)
+        preference.intent?.putExtra(Settings.EXTRA_SUB_ID, subId)
     }
 
     override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
-        if(mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID){
-            Log.e(
-                this.javaClass.simpleName,
-                "mSubId is INVALID_SUBSCRIPTION_ID"
-            )
-            return
-        }
-        wifiCallingRepositoryFactory(mSubId).wifiCallingReadyFlow()
+        wifiCallingRepositoryFactory(subId).wifiCallingReadyFlow()
             .collectLatestWithLifecycle(viewLifecycleOwner) { isReady ->
                 preference.isVisible = isReady
                 callingPreferenceCategoryController.updateChildVisible(preferenceKey, isReady)
                 if (isReady) update()
             }
 
-        callStateRepository.callStateFlow(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) {
+        callStateRepository.callStateFlow(subId).collectLatestWithLifecycle(viewLifecycleOwner) {
             preference.isEnabled = (it == TelephonyManager.CALL_STATE_IDLE)
         }
     }
 
     private suspend fun update() {
         val simCallManager = mContext.getSystemService(TelecomManager::class.java)
-            ?.getSimCallManagerForSubscription(mSubId)
+            ?.getSimCallManagerForSubscription(subId)
         if (simCallManager != null) {
             val intent = withContext(Dispatchers.Default) {
                 MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext, simCallManager)
@@ -116,7 +114,7 @@
     }
 
     private fun getSummaryForWfcMode(): String {
-        val resId = when (wifiCallingRepositoryFactory(mSubId).getWiFiCallingMode()) {
+        val resId = when (wifiCallingRepositoryFactory(subId).getWiFiCallingMode()) {
             ImsMmTelManager.WIFI_MODE_WIFI_ONLY ->
                 com.android.internal.R.string.wfc_mode_wifi_only_summary
 
@@ -130,4 +128,22 @@
         }
         return resourcesForSub.getString(resId)
     }
+
+    companion object {
+        class WifiCallingSearchItem(
+            private val context: Context,
+        ) : MobileNetworkSettingsSearchItem {
+            private fun isAvailable(subId: Int): Boolean = runBlocking {
+                WifiCallingRepository(context, subId).wifiCallingReadyFlow().first()
+            }
+
+            override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
+                if (!isAvailable(subId)) return null
+                return MobileNetworkSettingsSearchResult(
+                    key = "wifi_calling",
+                    title = context.getString(R.string.wifi_calling_settings_title),
+                )
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/network/telephony/ims/ImsFeatureProvisionedFlow.kt b/src/com/android/settings/network/telephony/ims/ImsFeatureProvisionedFlow.kt
deleted file mode 100644
index 6769498..0000000
--- a/src/com/android/settings/network/telephony/ims/ImsFeatureProvisionedFlow.kt
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.telephony.ims
-
-import android.telephony.ims.ProvisioningManager
-import android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback
-import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability
-import android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech
-import android.util.Log
-import androidx.annotation.VisibleForTesting
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.asExecutor
-import kotlinx.coroutines.channels.awaitClose
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.callbackFlow
-import kotlinx.coroutines.flow.catch
-import kotlinx.coroutines.flow.conflate
-import kotlinx.coroutines.flow.flowOn
-import kotlinx.coroutines.flow.onEach
-
-private const val TAG = "ImsFeatureProvisioned"
-
-fun imsFeatureProvisionedFlow(
-    subId: Int,
-    @MmTelCapability capability: Int,
-    @ImsRegistrationTech tech: Int,
-): Flow<Boolean> = imsFeatureProvisionedFlow(
-    subId = subId,
-    capability = capability,
-    tech = tech,
-    provisioningManager = ProvisioningManager.createForSubscriptionId(subId),
-)
-
-@VisibleForTesting
-fun imsFeatureProvisionedFlow(
-    subId: Int,
-    @MmTelCapability capability: Int,
-    @ImsRegistrationTech tech: Int,
-    provisioningManager : ProvisioningManager,
-): Flow<Boolean> = callbackFlow {
-    val callback = object : FeatureProvisioningCallback() {
-        override fun onFeatureProvisioningChanged(
-            receivedCapability: Int,
-            receivedTech: Int,
-            isProvisioned: Boolean,
-        ) {
-            if (capability == receivedCapability && tech == receivedTech) trySend(isProvisioned)
-        }
-
-        override fun onRcsFeatureProvisioningChanged(
-            capability: Int,
-            tech: Int,
-            isProvisioned: Boolean,
-        ) {
-        }
-    }
-
-    provisioningManager.registerFeatureProvisioningChangedCallback(
-        Dispatchers.Default.asExecutor(),
-        callback,
-    )
-    trySend(provisioningManager.getProvisioningStatusForCapability(capability, tech))
-
-    awaitClose { provisioningManager.unregisterFeatureProvisioningChangedCallback(callback) }
-}.catch { e ->
-    Log.w(TAG, "[$subId] error while imsFeatureProvisionedFlow", e)
-}.conflate().onEach {
-    Log.d(TAG, "[$subId] changed: capability=$capability tech=$tech isProvisioned=$it")
-}.flowOn(Dispatchers.Default)
diff --git a/src/com/android/settings/network/telephony/ims/ImsFeatureRepository.kt b/src/com/android/settings/network/telephony/ims/ImsFeatureRepository.kt
new file mode 100644
index 0000000..ba33257
--- /dev/null
+++ b/src/com/android/settings/network/telephony/ims/ImsFeatureRepository.kt
@@ -0,0 +1,61 @@
+/*
+ * 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.telephony.ims
+
+import android.content.Context
+import android.telephony.AccessNetworkConstants.TransportType
+import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability
+import android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech
+import com.android.settings.network.telephony.subscriptionsChangedFlow
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.flatMapLatest
+
+/**
+ * A repository for the IMS feature.
+ *
+ * @throws IllegalArgumentException if the [subId] is invalid.
+ */
+@OptIn(ExperimentalCoroutinesApi::class)
+class ImsFeatureRepository(
+    private val context: Context,
+    private val subId: Int,
+    private val provisioningRepository: ProvisioningRepository = ProvisioningRepository(context),
+    private val imsMmTelRepository: ImsMmTelRepository = ImsMmTelRepositoryImpl(context, subId)
+) {
+    /**
+     * A cold flow that determines the provisioning status for the specified IMS MmTel capability,
+     * and whether or not the requested MmTel capability is supported by the carrier on the
+     * specified network transport.
+     *
+     * @return true if the feature is provisioned and supported, false otherwise.
+     */
+    fun isReadyFlow(
+        @MmTelCapability capability: Int,
+        @ImsRegistrationTech tech: Int,
+        @TransportType transportType: Int,
+    ): Flow<Boolean> =
+        context.subscriptionsChangedFlow().flatMapLatest {
+            combine(
+                provisioningRepository.imsFeatureProvisionedFlow(subId, capability, tech),
+                imsMmTelRepository.isSupportedFlow(capability, transportType),
+            ) { imsFeatureProvisioned, isSupported ->
+                imsFeatureProvisioned && isSupported
+            }
+        }
+}
diff --git a/src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt b/src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt
index 9bc10e5..c5d1200 100644
--- a/src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt
+++ b/src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt
@@ -36,6 +36,7 @@
 import kotlinx.coroutines.flow.catch
 import kotlinx.coroutines.flow.conflate
 import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.suspendCancellableCoroutine
 import kotlinx.coroutines.withContext
 
@@ -47,6 +48,11 @@
 
     fun imsReadyFlow(): Flow<Boolean>
 
+    fun isSupportedFlow(
+        @MmTelFeature.MmTelCapabilities.MmTelCapability capability: Int,
+        @AccessNetworkConstants.TransportType transportType: Int,
+    ): Flow<Boolean>
+
     suspend fun isSupported(
         @MmTelFeature.MmTelCapabilities.MmTelCapability capability: Int,
         @AccessNetworkConstants.TransportType transportType: Int,
@@ -55,6 +61,11 @@
     suspend fun setCrossSimCallingEnabled(enabled: Boolean)
 }
 
+/**
+ * A repository for the IMS MMTel.
+ *
+ * @throws IllegalArgumentException if the [subId] is invalid.
+ */
 class ImsMmTelRepositoryImpl(
     context: Context,
     private val subId: Int,
@@ -126,8 +137,12 @@
         awaitClose { imsMmTelManager.unregisterImsStateCallback(callback) }
     }.catch { e ->
         Log.w(TAG, "[$subId] error while imsReadyFlow", e)
+        emit(false)
     }.conflate().flowOn(Dispatchers.Default)
 
+    override fun isSupportedFlow(capability: Int, transportType: Int): Flow<Boolean> =
+        imsReadyFlow().map { imsReady -> imsReady && isSupported(capability, transportType) }
+
     override suspend fun isSupported(
         @MmTelFeature.MmTelCapabilities.MmTelCapability capability: Int,
         @AccessNetworkConstants.TransportType transportType: Int,
diff --git a/src/com/android/settings/network/telephony/ims/ProvisioningRepository.kt b/src/com/android/settings/network/telephony/ims/ProvisioningRepository.kt
new file mode 100644
index 0000000..521b364
--- /dev/null
+++ b/src/com/android/settings/network/telephony/ims/ProvisioningRepository.kt
@@ -0,0 +1,99 @@
+/*
+ * 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.telephony.ims
+
+import android.content.Context
+import android.content.pm.PackageManager
+import android.telephony.SubscriptionManager
+import android.telephony.ims.ProvisioningManager
+import android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback
+import android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability
+import android.telephony.ims.stub.ImsRegistrationImplBase.ImsRegistrationTech
+import android.util.Log
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.catch
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.onEach
+
+class ProvisioningRepository(
+    private val context: Context,
+    private val provisioningManagerFactory: (Int) -> ProvisioningManager =
+        ProvisioningManager::createForSubscriptionId,
+) {
+
+    fun imsFeatureProvisionedFlow(
+        subId: Int,
+        @MmTelCapability capability: Int,
+        @ImsRegistrationTech tech: Int,
+    ): Flow<Boolean> {
+        if (!SubscriptionManager.isValidSubscriptionId(subId) ||
+            !context.packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS)) {
+            return flowOf(false)
+        }
+        val provisioningManager = provisioningManagerFactory(subId)
+        return callbackFlow {
+                val callback =
+                    object : FeatureProvisioningCallback() {
+                        override fun onFeatureProvisioningChanged(
+                            receivedCapability: Int,
+                            receivedTech: Int,
+                            isProvisioned: Boolean,
+                        ) {
+                            if (capability == receivedCapability && tech == receivedTech)
+                                trySend(isProvisioned)
+                        }
+
+                        override fun onRcsFeatureProvisioningChanged(
+                            capability: Int,
+                            tech: Int,
+                            isProvisioned: Boolean,
+                        ) {}
+                    }
+
+                provisioningManager.registerFeatureProvisioningChangedCallback(
+                    Dispatchers.Default.asExecutor(),
+                    callback,
+                )
+                trySend(provisioningManager.getProvisioningStatusForCapability(capability, tech))
+
+                awaitClose {
+                    provisioningManager.unregisterFeatureProvisioningChangedCallback(callback)
+                }
+            }
+            .catch { e ->
+                Log.w(TAG, "[$subId] error while imsFeatureProvisionedFlow", e)
+                emit(false)
+            }
+            .distinctUntilChanged()
+            .conflate()
+            .onEach {
+                Log.d(TAG, "[$subId] changed: capability=$capability tech=$tech isProvisioned=$it")
+            }
+            .flowOn(Dispatchers.Default)
+    }
+
+    companion object {
+        private const val TAG = "ProvisioningRepository"
+    }
+}
diff --git a/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt b/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt
index 0e15033..caf8549 100644
--- a/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt
+++ b/src/com/android/settings/network/telephony/scan/NetworkScanRepository.kt
@@ -30,8 +30,8 @@
 import com.android.settings.network.telephony.CellInfoUtil.getNetworkTitle
 import com.android.settings.network.telephony.telephonyManager
 import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import java.util.concurrent.Executors
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.asExecutor
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.callbackFlow
@@ -96,7 +96,9 @@
 
         val networkScan = telephonyManager.requestNetworkScan(
             createNetworkScan(),
-            Dispatchers.Default.asExecutor(),
+            // requestNetworkScan() could call callbacks concurrently, so we use a single thread
+            // to avoid racing conditions.
+            Executors.newSingleThreadExecutor(),
             callback,
         )
 
diff --git a/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt b/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt
index 5dcac1e..dda147b 100644
--- a/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt
+++ b/src/com/android/settings/network/telephony/wificalling/CrossSimCallingViewModel.kt
@@ -24,23 +24,22 @@
 import androidx.lifecycle.AndroidViewModel
 import androidx.lifecycle.viewModelScope
 import com.android.settings.R
-import com.android.settings.network.mobileDataEnabledFlow
+import com.android.settings.network.telephony.CarrierConfigRepository
+import com.android.settings.network.telephony.DataSubscriptionRepository
+import com.android.settings.network.telephony.MobileDataRepository
+import com.android.settings.network.telephony.SubscriptionRepository
 import com.android.settings.network.telephony.ims.ImsMmTelRepositoryImpl
-import com.android.settings.network.telephony.requireSubscriptionManager
-import com.android.settings.network.telephony.safeGetConfig
-import com.android.settings.network.telephony.subscriptionsChangedFlow
-import com.android.settings.network.telephony.telephonyManager
 import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.channels.Channel
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.distinctUntilChanged
 import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.map
-import kotlinx.coroutines.flow.merge
 import kotlinx.coroutines.flow.onEach
-import kotlinx.coroutines.flow.receiveAsFlow
 import kotlinx.coroutines.plus
 
 @OptIn(ExperimentalCoroutinesApi::class)
@@ -48,25 +47,24 @@
     private val application: Application,
 ) : AndroidViewModel(application) {
 
-    private val subscriptionManager = application.requireSubscriptionManager()
-    private val carrierConfigManager =
-        application.getSystemService(CarrierConfigManager::class.java)!!
+    private val subscriptionRepository = SubscriptionRepository(application)
+    private val dataSubscriptionRepository = DataSubscriptionRepository(application)
+    private val mobileDataRepository = MobileDataRepository(application)
+    private val carrierConfigRepository = CarrierConfigRepository(application)
     private val scope = viewModelScope + Dispatchers.Default
     private val metricsFeatureProvider = featureFactory.metricsFeatureProvider
-    private val updateChannel = Channel<Unit>()
 
     init {
         val resources = application.resources
         if (resources.getBoolean(R.bool.config_auto_data_switch_enables_cross_sim_calling)) {
-            application.subscriptionsChangedFlow()
-                .flatMapLatest {
-                    val activeSubIds = subscriptionManager.activeSubscriptionIdList.toList()
-                    merge(
-                        activeSubIds.anyMobileDataEnableChangedFlow(),
-                        updateChannel.receiveAsFlow(),
-                    ).map {
-                        activeSubIds to crossSimCallNewEnabled(activeSubIds)
-                    }
+            combine(
+                    subscriptionRepository.activeSubscriptionIdListFlow(),
+                    dataSubscriptionRepository.defaultDataSubscriptionIdFlow(),
+                ) { activeSubIds, defaultDataSubId ->
+                    activeSubIds to crossSimCallNewEnabled(activeSubIds, defaultDataSubId)
+                }
+                .flatMapLatest { (activeSubIds, newEnabledFlow) ->
+                    newEnabledFlow.map { newEnabled -> activeSubIds to newEnabled }
                 }
                 .distinctUntilChanged()
                 .onEach { (activeSubIds, newEnabled) ->
@@ -76,44 +74,36 @@
         }
     }
 
-    fun updateCrossSimCalling() {
-        updateChannel.trySend(Unit)
-    }
-
-    private fun List<Int>.anyMobileDataEnableChangedFlow() = map { subId ->
-        application.mobileDataEnabledFlow(subId = subId, sendInitialValue = false)
-    }.merge()
-
     private suspend fun updateCrossSimCalling(activeSubIds: List<Int>, newEnabled: Boolean) {
         metricsFeatureProvider.action(
             application,
             SettingsEnums.ACTION_UPDATE_CROSS_SIM_CALLING_ON_AUTO_DATA_SWITCH_EVENT,
             newEnabled,
         )
-        activeSubIds.filter { crossSimAvailable(it) }.forEach { subId ->
-            ImsMmTelRepositoryImpl(application, subId)
-                .setCrossSimCallingEnabled(newEnabled)
-        }
+        activeSubIds
+            .filter { subId -> crossSimAvailable(subId) }
+            .forEach { subId ->
+                ImsMmTelRepositoryImpl(application, subId).setCrossSimCallingEnabled(newEnabled)
+            }
     }
 
     private suspend fun crossSimAvailable(subId: Int): Boolean =
         WifiCallingRepository(application, subId).isWifiCallingSupported() &&
-            crossSimImsAvailable(subId)
+            carrierConfigRepository.getBoolean(
+                subId, CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL)
 
-    private fun crossSimImsAvailable(subId: Int): Boolean =
-        carrierConfigManager.safeGetConfig(
-            keys = listOf(CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL),
-            subId = subId,
-        ).getBoolean(CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL, false)
-
-    private fun crossSimCallNewEnabled(activeSubscriptionIdList: List<Int>): Boolean {
-        val defaultDataSubId = SubscriptionManager.getDefaultDataSubscriptionId()
-        return SubscriptionManager.isValidSubscriptionId(defaultDataSubId) &&
-            activeSubscriptionIdList.any { subId ->
-                subId != defaultDataSubId &&
-                    application.telephonyManager(subId).isMobileDataPolicyEnabled(
-                        TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH
-                    )
-            }
+    private fun crossSimCallNewEnabled(
+        activeSubscriptionIdList: List<Int>,
+        defaultDataSubId: Int,
+    ): Flow<Boolean> {
+        if (!SubscriptionManager.isValidSubscriptionId(defaultDataSubId)) return flowOf(false)
+        val isMobileDataPolicyEnabledFlows =
+            activeSubscriptionIdList
+                .filter { subId -> subId != defaultDataSubId }
+                .map { subId ->
+                    mobileDataRepository.isMobileDataPolicyEnabledFlow(
+                        subId, TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+                }
+        return combine(isMobileDataPolicyEnabledFlows) { true in it }
     }
 }
diff --git a/src/com/android/settings/network/telephony/wificalling/WifiCallingRepository.kt b/src/com/android/settings/network/telephony/wificalling/WifiCallingRepository.kt
index a5d4ba8..6af0559 100644
--- a/src/com/android/settings/network/telephony/wificalling/WifiCallingRepository.kt
+++ b/src/com/android/settings/network/telephony/wificalling/WifiCallingRepository.kt
@@ -20,31 +20,33 @@
 import android.telephony.AccessNetworkConstants
 import android.telephony.CarrierConfigManager
 import android.telephony.CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL
-import android.telephony.SubscriptionManager
-import android.telephony.TelephonyManager
 import android.telephony.ims.ImsMmTelManager.WiFiCallingMode
 import android.telephony.ims.feature.MmTelFeature
 import android.telephony.ims.stub.ImsRegistrationImplBase
+import androidx.lifecycle.LifecycleOwner
+import com.android.settings.network.telephony.ims.ImsFeatureRepository
 import com.android.settings.network.telephony.ims.ImsMmTelRepository
 import com.android.settings.network.telephony.ims.ImsMmTelRepositoryImpl
-import com.android.settings.network.telephony.ims.imsFeatureProvisionedFlow
-import com.android.settings.network.telephony.subscriptionsChangedFlow
+import com.android.settings.network.telephony.telephonyManager
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.flatMapLatest
-import kotlinx.coroutines.flow.flowOf
-import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.withContext
 
-class WifiCallingRepository(
+interface IWifiCallingRepository {
+    /** TODO: Move this to UI layer, when UI layer migrated to Kotlin. */
+    fun collectIsWifiCallingReadyFlow(lifecycleOwner: LifecycleOwner, action: (Boolean) -> Unit)
+}
+
+class WifiCallingRepository
+@JvmOverloads
+constructor(
     private val context: Context,
     private val subId: Int,
-    private val imsMmTelRepository: ImsMmTelRepository = ImsMmTelRepositoryImpl(context, subId)
-) {
-    private val telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
-        .createForSubscriptionId(subId)
+    private val imsFeatureRepository: ImsFeatureRepository = ImsFeatureRepository(context, subId),
+    private val imsMmTelRepository: ImsMmTelRepository = ImsMmTelRepositoryImpl(context, subId),
+) : IWifiCallingRepository {
+    private val telephonyManager = context.telephonyManager(subId)
 
     private val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)!!
 
@@ -59,28 +61,20 @@
             .getConfigForSubId(subId, KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL)
             .getBoolean(KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL)
 
-    @OptIn(ExperimentalCoroutinesApi::class)
-    fun wifiCallingReadyFlow(): Flow<Boolean> {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) return flowOf(false)
-        return context.subscriptionsChangedFlow().flatMapLatest {
-            combine(
-                imsFeatureProvisionedFlow(
-                    subId = subId,
-                    capability = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
-                    tech = ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,
-                ),
-                isWifiCallingSupportedFlow(),
-            ) { imsFeatureProvisioned, isWifiCallingSupported ->
-                imsFeatureProvisioned && isWifiCallingSupported
-            }
-        }
+    /** TODO: Move this to UI layer, when UI layer migrated to Kotlin. */
+    override fun collectIsWifiCallingReadyFlow(
+        lifecycleOwner: LifecycleOwner,
+        action: (Boolean) -> Unit,
+    ) {
+        wifiCallingReadyFlow().collectLatestWithLifecycle(lifecycleOwner, action = action)
     }
 
-    private fun isWifiCallingSupportedFlow(): Flow<Boolean> {
-        return imsMmTelRepository.imsReadyFlow().map { imsReady ->
-            imsReady && isWifiCallingSupported()
-        }
-    }
+    fun wifiCallingReadyFlow(): Flow<Boolean> =
+        imsFeatureRepository.isReadyFlow(
+            capability = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE,
+            tech = ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN,
+            transportType = AccessNetworkConstants.TRANSPORT_TYPE_WLAN,
+        )
 
     suspend fun isWifiCallingSupported(): Boolean = withContext(Dispatchers.Default) {
         imsMmTelRepository.isSupported(
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 0661de7..d6f810c 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -21,6 +21,8 @@
 import static android.content.pm.LauncherApps.ShortcutQuery.FLAG_MATCH_DYNAMIC;
 import static android.content.pm.LauncherApps.ShortcutQuery.FLAG_MATCH_PINNED_BY_ANY_LAUNCHER;
 
+import static com.android.server.notification.Flags.notificationHideUnusedChannels;
+
 import android.app.INotificationManager;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
@@ -78,6 +80,9 @@
 
     public AppRow loadAppRow(Context context, PackageManager pm, ApplicationInfo app) {
         final AppRow row = new AppRow();
+        if (notificationHideUnusedChannels()) {
+            row.showAllChannels = false;
+        }
         row.pkg = app.packageName;
         row.uid = app.uid;
         try {
@@ -357,19 +362,6 @@
         }
     }
 
-    /**
-     * Returns all of a user's packages that have at least one channel that will bypass DND
-     */
-    public List<String> getPackagesBypassingDnd(int userId,
-            boolean includeConversationChannels) {
-        try {
-            return sINM.getPackagesBypassingDnd(userId, includeConversationChannels);
-        } catch (Exception e) {
-            Log.w(TAG, "Error calling NoMan", e);
-            return new ArrayList<>();
-        }
-    }
-
     public void updateChannel(String pkg, int uid, NotificationChannel channel) {
         try {
             sINM.updateNotificationChannelForPackage(pkg, uid, channel);
@@ -699,5 +691,6 @@
         public int channelCount;
         public Map<String, NotificationsSentState> sentByChannel;
         public NotificationsSentState sentByApp;
+        public boolean showAllChannels = true;
     }
 }
diff --git a/src/com/android/settings/notification/SettingsEnableZenModeDialog.java b/src/com/android/settings/notification/SettingsEnableZenModeDialog.java
index 880db35..d851caf 100644
--- a/src/com/android/settings/notification/SettingsEnableZenModeDialog.java
+++ b/src/com/android/settings/notification/SettingsEnableZenModeDialog.java
@@ -21,13 +21,13 @@
 import android.os.Bundle;
 
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.notification.modes.EnableZenModeDialog;
 
 public class SettingsEnableZenModeDialog extends InstrumentedDialogFragment {
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-         return new com.android.settingslib.notification.EnableZenModeDialog(
-                 getContext()).createDialog();
+         return new EnableZenModeDialog(getContext()).createDialog();
     }
 
     @Override
diff --git a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
index 200a47b..778c788 100644
--- a/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
+++ b/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceController.java
@@ -226,7 +226,10 @@
                         .setArguments(channelArgs)
                         .setUserHandle(UserHandle.of(mAppRow.userId))
                         .setTitleRes(com.android.settings.R.string.notification_channel_title)
-                        .setSourceMetricsCategory(SettingsEnums.DND_APPS_BYPASSING)
+                        .setSourceMetricsCategory(
+                                android.app.Flags.modesUi()
+                                    ? SettingsEnums.NOTIFICATION_ZEN_MODE_OVERRIDING_APP_CHANNELS
+                                        : SettingsEnums.DND_APPS_BYPASSING)
                         .launch();
                 return true;
             });
diff --git a/src/com/android/settings/notification/app/AppChannelsBypassingDndSettings.java b/src/com/android/settings/notification/app/AppChannelsBypassingDndSettings.java
index 4fab7e2..b5e2b13 100644
--- a/src/com/android/settings/notification/app/AppChannelsBypassingDndSettings.java
+++ b/src/com/android/settings/notification/app/AppChannelsBypassingDndSettings.java
@@ -40,7 +40,9 @@
 
     @Override
     public int getMetricsCategory() {
-        return SettingsEnums.DND_APPS_BYPASSING;
+        return android.app.Flags.modesUi()
+                ? SettingsEnums.NOTIFICATION_ZEN_MODE_OVERRIDING_APP_CHANNELS
+                : SettingsEnums.DND_APPS_BYPASSING;
     }
 
     @Override
diff --git a/src/com/android/settings/notification/app/AppNotificationSettings.java b/src/com/android/settings/notification/app/AppNotificationSettings.java
index 89756b7..046f0ce 100644
--- a/src/com/android/settings/notification/app/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/app/AppNotificationSettings.java
@@ -16,16 +16,10 @@
 
 package com.android.settings.notification.app;
 
-import static com.android.server.notification.Flags.notificationHideUnusedChannels;
-
-
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.text.TextUtils;
 import android.util.Log;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
@@ -107,38 +101,9 @@
         mControllers.add(new BubbleSummaryPreferenceController(context, mBackend));
         mControllers.add(new NotificationsOffPreferenceController(context));
         mControllers.add(new DeletedChannelsPreferenceController(context, mBackend));
+        mControllers.add(new ShowMorePreferenceController(
+                context, mDependentFieldListener, mBackend));
+        mControllers.add(new BundleListPreferenceController(context, mBackend));
         return new ArrayList<>(mControllers);
     }
-
-    private final int SHOW_ALL_CHANNELS = 1;
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        if (notificationHideUnusedChannels()) {
-            menu.add(Menu.NONE, SHOW_ALL_CHANNELS, Menu.NONE,
-                    mShowAll ? R.string.hide_unused_channels : R.string.show_unused_channels);
-        }
-        super.onCreateOptionsMenu(menu, inflater);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (!notificationHideUnusedChannels()) {
-            return super.onOptionsItemSelected(item);
-        }
-        switch (item.getItemId()) {
-            case SHOW_ALL_CHANNELS:
-                mShowAll = !mShowAll;
-                item.setTitle(mShowAll
-                        ? R.string.hide_unused_channels
-                        : R.string.show_unused_channels);
-                ChannelListPreferenceController list =
-                        use(ChannelListPreferenceController.class);
-                list.setShowAll(mShowAll);
-                list.updateState(findPreference(list.getPreferenceKey()));
-                return true;
-            default:
-                return super.onOptionsItemSelected(item);
-        }
-    }
 }
diff --git a/src/com/android/settings/notification/app/BundleListPreferenceController.java b/src/com/android/settings/notification/app/BundleListPreferenceController.java
new file mode 100644
index 0000000..82e910c
--- /dev/null
+++ b/src/com/android/settings/notification/app/BundleListPreferenceController.java
@@ -0,0 +1,171 @@
+/*
+ * 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.app;
+
+import static android.app.NotificationChannel.NEWS_ID;
+import static android.app.NotificationChannel.PROMOTIONS_ID;
+import static android.app.NotificationChannel.RECS_ID;
+import static android.app.NotificationChannel.SOCIAL_MEDIA_ID;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+
+import static com.android.server.notification.Flags.notificationHideUnusedChannels;
+
+import android.app.NotificationChannel;
+import android.app.NotificationChannelGroup;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.service.notification.Flags;
+import android.text.TextUtils;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.applications.AppInfoBase;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.notification.NotificationBackend;
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.RestrictedSwitchPreference;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class BundleListPreferenceController extends NotificationPreferenceController {
+
+    private static final String KEY = "bundles";
+
+    public BundleListPreferenceController(Context context, NotificationBackend backend) {
+        super(context, backend);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!Flags.notificationClassification()) {
+            return false;
+        }
+        if (mAppRow == null) {
+            return false;
+        }
+        if (mAppRow.banned || mAppRow.lockedImportance || mAppRow.systemApp) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    boolean isIncludedInFilter() {
+        return false;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        PreferenceCategory category = (PreferenceCategory) preference;
+
+        createOrUpdatePrefForChannel(category,
+                mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID));
+        createOrUpdatePrefForChannel(category,
+                mBackend.getChannel(mAppRow.pkg, mAppRow.uid, RECS_ID));
+        createOrUpdatePrefForChannel(category,
+                mBackend.getChannel(mAppRow.pkg, mAppRow.uid, SOCIAL_MEDIA_ID));
+        createOrUpdatePrefForChannel(category,
+                mBackend.getChannel(mAppRow.pkg, mAppRow.uid, NEWS_ID));
+    }
+
+    @NonNull
+    private void createOrUpdatePrefForChannel(
+            @NonNull PreferenceGroup groupPrefGroup, NotificationChannel channel) {
+        int preferenceCount = groupPrefGroup.getPreferenceCount();
+        for (int i = 0; i < preferenceCount; i++) {
+            Preference preference = groupPrefGroup.getPreference(i);
+            if (channel.getId().equals(preference.getKey())) {
+                updateSingleChannelPrefs((PrimarySwitchPreference) preference, channel);
+                return;
+            }
+        }
+        PrimarySwitchPreference channelPref = new PrimarySwitchPreference(mContext);
+        channelPref.setKey(channel.getId());
+        updateSingleChannelPrefs(channelPref, channel);
+        groupPrefGroup.addPreference(channelPref);
+    }
+
+    /** Update the properties of the channel preference with the values from the channel object. */
+    private void updateSingleChannelPrefs(@NonNull final PrimarySwitchPreference channelPref,
+            @NonNull final NotificationChannel channel) {
+        channelPref.setSwitchEnabled(mAdmin == null);
+        if (channel.getImportance() > IMPORTANCE_LOW) {
+            channelPref.setIcon(getAlertingIcon());
+        } else {
+            channelPref.setIcon(mContext.getDrawable(R.drawable.empty_icon));
+        }
+        channelPref.setIconSize(PrimarySwitchPreference.ICON_SIZE_SMALL);
+        channelPref.setTitle(channel.getName());
+        channelPref.setSummary(NotificationBackend.getSentSummary(
+                mContext, mAppRow.sentByChannel.get(channel.getId()), false));
+        channelPref.setChecked(channel.getImportance() != IMPORTANCE_NONE);
+        Bundle channelArgs = new Bundle();
+        channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mAppRow.uid);
+        channelArgs.putString(AppInfoBase.ARG_PACKAGE_NAME, mAppRow.pkg);
+        channelArgs.putString(Settings.EXTRA_CHANNEL_ID, channel.getId());
+        channelPref.setIntent(new SubSettingLauncher(mContext)
+                .setDestination(ChannelNotificationSettings.class.getName())
+                .setArguments(channelArgs)
+                .setTitleRes(R.string.notification_channel_title)
+                .setSourceMetricsCategory(SettingsEnums.NOTIFICATION_APP_NOTIFICATION)
+                .toIntent());
+
+        channelPref.setOnPreferenceChangeListener(
+                (preference, o) -> {
+                    boolean value = (Boolean) o;
+                    int importance = value
+                            ? Math.max(channel.getOriginalImportance(), IMPORTANCE_LOW)
+                            : IMPORTANCE_NONE;
+                    channel.setImportance(importance);
+                    channel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
+                    PrimarySwitchPreference channelPref1 = (PrimarySwitchPreference) preference;
+                    channelPref1.setIcon(R.drawable.empty_icon);
+                    if (channel.getImportance() > IMPORTANCE_LOW) {
+                        channelPref1.setIcon(getAlertingIcon());
+                    }
+                    mBackend.updateChannel(mAppRow.pkg, mAppRow.uid, channel);
+
+                    return true;
+                });
+    }
+
+    private Drawable getAlertingIcon() {
+        Drawable icon = mContext.getDrawable(R.drawable.ic_notifications_alert);
+        icon.setTintList(Utils.getColorAccent(mContext));
+        return icon;
+    }
+
+}
diff --git a/src/com/android/settings/notification/app/ChannelListPreferenceController.java b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
index 7077592..b8dfb6a 100644
--- a/src/com/android/settings/notification/app/ChannelListPreferenceController.java
+++ b/src/com/android/settings/notification/app/ChannelListPreferenceController.java
@@ -59,8 +59,6 @@
     private List<NotificationChannelGroup> mChannelGroupList;
     private PreferenceCategory mPreference;
 
-    private boolean mShowAll;
-
     public ChannelListPreferenceController(Context context, NotificationBackend backend) {
         super(context, backend);
     }
@@ -100,7 +98,7 @@
             @Override
             protected Void doInBackground(Void... unused) {
                 if (notificationHideUnusedChannels()) {
-                    if (mShowAll) {
+                    if (mAppRow.showAllChannels) {
                         mChannelGroupList = mBackend.getGroups(mAppRow.pkg, mAppRow.uid).getList();
                     } else {
                         mChannelGroupList = mBackend.getGroupsWithRecentBlockedFilter(mAppRow.pkg,
@@ -123,10 +121,6 @@
         }.execute();
     }
 
-    protected void setShowAll(boolean showAll) {
-        mShowAll = showAll;
-    }
-
     /**
      * Update the preferences group to match the
      * @param groupPrefsList
diff --git a/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java b/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java
index 6a1d4cb..07b7fda 100644
--- a/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java
+++ b/src/com/android/settings/notification/app/DeletedChannelsPreferenceController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.notification.app;
 
+import static com.android.server.notification.Flags.notificationHideUnusedChannels;
+
 import android.content.Context;
 
 import androidx.preference.Preference;
@@ -44,6 +46,9 @@
         if (!super.isAvailable()) {
             return false;
         }
+        if (notificationHideUnusedChannels()) {
+            return false;
+        }
         // only visible on app screen
         if (mChannel != null || hasValidGroup()) {
             return false;
diff --git a/src/com/android/settings/notification/app/ShowMorePreferenceController.java b/src/com/android/settings/notification/app/ShowMorePreferenceController.java
new file mode 100644
index 0000000..dbc279a
--- /dev/null
+++ b/src/com/android/settings/notification/app/ShowMorePreferenceController.java
@@ -0,0 +1,75 @@
+/*
+ * 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.app;
+
+import static com.android.server.notification.Flags.notificationHideUnusedChannels;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.notification.NotificationBackend;
+
+import org.jetbrains.annotations.NotNull;
+
+public class ShowMorePreferenceController extends NotificationPreferenceController {
+
+    private static final String KEY = "more";
+    private NotificationSettings.DependentFieldListener mDependentFieldListener;
+
+    public ShowMorePreferenceController(Context context,
+            NotificationSettings.DependentFieldListener dependentFieldListener,
+            NotificationBackend backend) {
+        super(context, backend);
+        mDependentFieldListener = dependentFieldListener;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        if (!notificationHideUnusedChannels()) {
+            return false;
+        }
+        if (mAppRow == null) {
+            return false;
+        }
+        if (mAppRow.banned || mAppRow.showAllChannels) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    boolean isIncludedInFilter() {
+        return false;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        preference.setOnPreferenceClickListener(preference1 -> {
+            mAppRow.showAllChannels = true;
+            mDependentFieldListener.onFieldValueChanged();
+            return true;
+        });
+    }
+}
diff --git a/src/com/android/settings/notification/modes/AbstractZenModeHeaderController.java b/src/com/android/settings/notification/modes/AbstractZenModeHeaderController.java
new file mode 100644
index 0000000..7cc67cc
--- /dev/null
+++ b/src/com/android/settings/notification/modes/AbstractZenModeHeaderController.java
@@ -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.notification.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import android.app.Flags;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.notification.modes.ZenIconLoader;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import com.google.common.base.Objects;
+
+import java.util.function.Function;
+
+abstract class AbstractZenModeHeaderController extends AbstractZenModePreferenceController {
+
+    private final DashboardFragment mFragment;
+    private EntityHeaderController mHeaderController;
+    private String mCurrentIconKey;
+
+    AbstractZenModeHeaderController(
+            @NonNull Context context,
+            @NonNull String key,
+            @NonNull DashboardFragment fragment) {
+        super(context, key);
+        mFragment = fragment;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return Flags.modesApi() && Flags.modesUi();
+    }
+
+    protected void setUpHeader(PreferenceScreen screen, int iconSizePx) {
+        LayoutPreference preference = checkNotNull(screen.findPreference(getPreferenceKey()));
+        preference.setSelectable(false);
+
+        ImageView iconView = checkNotNull(preference.findViewById(R.id.entity_header_icon));
+        ViewGroup.LayoutParams layoutParams = iconView.getLayoutParams();
+        if (layoutParams.width != iconSizePx || layoutParams.height != iconSizePx) {
+            layoutParams.width = iconSizePx;
+            layoutParams.height = iconSizePx;
+            iconView.setLayoutParams(layoutParams);
+        }
+
+        if (mHeaderController == null) {
+            mHeaderController = EntityHeaderController.newInstance(
+                    mFragment.getActivity(),
+                    mFragment,
+                    preference.findViewById(R.id.entity_header));
+            mHeaderController.done(false); // Make the space for the (unused) name go away.
+        }
+    }
+
+    protected void updateIcon(Preference preference, @NonNull ZenMode zenMode,
+            Function<Drawable, Drawable> iconStylist, boolean isSelected) {
+
+        ImageView iconView = checkNotNull(
+                ((LayoutPreference) preference).findViewById(R.id.entity_header_icon));
+        iconView.setSelected(isSelected);
+
+        if (!Objects.equal(mCurrentIconKey, zenMode.getIconKey())) {
+            mCurrentIconKey = zenMode.getIconKey();
+            FutureUtil.whenDone(
+                    zenMode.getIcon(mContext, ZenIconLoader.getInstance()),
+                    icon -> {
+                        checkNotNull(mHeaderController)
+                                .setIcon(iconStylist.apply(icon))
+                                .done(/* rebindActions= */ false);
+                        iconView.jumpDrawablesToCurrentState(); // Skip animation on first load.
+                    },
+                    mContext.getMainExecutor());
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java b/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
index aebc4eb..c473456 100644
--- a/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
+++ b/src/com/android/settings/notification/modes/AbstractZenModePreferenceController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.notification.modes;
 
+import static com.google.common.base.Preconditions.checkState;
+
 import android.app.Flags;
 import android.content.Context;
 import android.service.notification.ZenPolicy;
@@ -23,11 +25,12 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
 import com.android.settingslib.core.AbstractPreferenceController;
-
-import com.google.common.base.Preconditions;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 
 import java.util.function.Function;
 
@@ -38,8 +41,8 @@
 
     private static final String TAG = "AbstractZenModePreferenceController";
 
-    @Nullable
-    protected ZenModesBackend mBackend;
+    @Nullable protected final ZenModesBackend mBackend;
+
 
     @Nullable  // only until setZenMode() is called
     private ZenMode mZenMode;
@@ -47,14 +50,27 @@
     @NonNull
     private final String mKey;
 
-    // ZenModesBackend should only be passed in if the preference controller may set the user's
-    // policy for this zen mode. Otherwise, if the preference controller is essentially read-only
-    // and leads to a further Settings screen, backend should be null.
-    AbstractZenModePreferenceController(@NonNull Context context, @NonNull String key,
-            @Nullable ZenModesBackend backend) {
+    /**
+     * Constructor suitable for "read-only" controllers (e.g. link to a different sub-screen.
+     * Controllers that call this constructor to initialize themselves <em>cannot</em> call
+     * {@link #saveMode} or {@link #savePolicy} later.
+     */
+    AbstractZenModePreferenceController(@NonNull Context context, @NonNull String key) {
         super(context);
-        mBackend = backend;
         mKey = key;
+        mBackend = null;
+    }
+
+    /**
+     * Constructor suitable for controllers that will update the associated {@link ZenMode}.
+     * Controllers that call this constructor to initialize themselves may call {@link #saveMode} or
+     * {@link #savePolicy} later.
+     */
+    AbstractZenModePreferenceController(@NonNull Context context, @NonNull String key,
+            @NonNull ZenModesBackend backend) {
+        super(context);
+        mKey = key;
+        mBackend = backend;
     }
 
     @Override
@@ -76,19 +92,14 @@
         return true;
     }
 
-    // Called by parent Fragment onAttach, for any methods (such as isAvailable()) that need
-    // zen mode info before onStart. Most callers should use updateZenMode instead, which will
-    // do any further necessary propagation.
-    protected final void setZenMode(@NonNull ZenMode zenMode) {
+    /**
+     * Assigns the {@link ZenMode} of this controller, so that it can be used later from
+     * {@link #isAvailable()} and {@link #updateState(Preference)}.
+     */
+    final void setZenMode(@NonNull ZenMode zenMode) {
         mZenMode = zenMode;
     }
 
-    // Called by the parent Fragment onStart, which means it will happen before resume.
-    public void updateZenMode(@NonNull Preference preference, @NonNull ZenMode zenMode) {
-        mZenMode = zenMode;
-        updateState(preference);
-    }
-
     @Override
     public final void updateState(Preference preference) {
         super.updateState(preference);
@@ -122,7 +133,7 @@
      *                instance is ok.
      */
     protected final boolean saveMode(Function<ZenMode, ZenMode> updater) {
-        Preconditions.checkState(mBackend != null);
+        checkState(mBackend != null);
         ZenMode mode = mZenMode;
         if (mode == null) {
             Log.wtf(TAG, "Cannot save mode, it hasn't been loaded (" + getClass() + ")");
@@ -141,4 +152,20 @@
             return mode;
         });
     }
+
+    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+    @Nullable
+    ZenMode getZenMode() {
+        return mZenMode;
+    }
+
+    /**
+     * Convenience method for tests. Assigns the {@link ZenMode} of this controller, and calls
+     * {@link #updateState(Preference)} immediately.
+     */
+    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+    final void updateZenMode(@NonNull Preference preference, @NonNull ZenMode zenMode) {
+        mZenMode = zenMode;
+        updateState(preference);
+    }
 }
diff --git a/src/com/android/settings/notification/modes/CircularIconSet.java b/src/com/android/settings/notification/modes/CircularIconSet.java
new file mode 100644
index 0000000..eb7289a
--- /dev/null
+++ b/src/com/android/settings/notification/modes/CircularIconSet.java
@@ -0,0 +1,128 @@
+/*
+ * 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.modes;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+
+import com.google.common.base.Equivalence;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.function.Function;
+
+/**
+ * A set of icons to be displayed in a {@link CircularIconsPreference}
+ *
+ * @param <T> The type of the items in the set. Can be an arbitrary type, the only requirement
+ *           being that the {@code drawableLoader} supplied to the constructor is able to produce
+ *           a {@link Drawable} from it (for example a resource id, a Content Uri, etc).
+ */
+class CircularIconSet<T> {
+
+    @VisibleForTesting // Can be set by tests, before creating instances.
+    static ExecutorService sExecutorService = Executors.newCachedThreadPool();
+
+    static final CircularIconSet<?> EMPTY = new CircularIconSet<>(ImmutableList.of(),
+            unused -> new ColorDrawable(Color.BLACK));
+
+    private final ImmutableList<T> mItems;
+    private final Function<T, Drawable> mDrawableLoader;
+    private final ListeningExecutorService mBackgroundExecutor;
+
+    private final ConcurrentHashMap<T, Drawable> mCachedIcons;
+
+    CircularIconSet(List<T> items, Function<T, Drawable> drawableLoader) {
+        mItems = ImmutableList.copyOf(items);
+        mDrawableLoader = drawableLoader;
+        mBackgroundExecutor = MoreExecutors.listeningDecorator(sExecutorService);
+        mCachedIcons = new ConcurrentHashMap<>();
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(this).add("items", mItems).toString();
+    }
+
+    @SuppressWarnings("unchecked")
+    <OtherT> boolean hasSameItemsAs(CircularIconSet<OtherT> other,
+            @Nullable Equivalence<OtherT> equivalence) {
+        if (other == null) {
+            return false;
+        }
+        if (other == this) {
+            return true;
+        }
+        if (equivalence == null) {
+            return mItems.equals(other.mItems);
+        }
+        // Check that types match before applying equivalence (statically unsafe). :(
+        Optional<Class<?>> thisItemClass = this.mItems.stream().findFirst().map(T::getClass);
+        Optional<Class<?>> otherItemClass = other.mItems.stream().findFirst().map(OtherT::getClass);
+        if (!thisItemClass.equals(otherItemClass)) {
+            return false;
+        }
+        return equivalence.pairwise().equivalent((Iterable<OtherT>) this.mItems, other.mItems);
+    }
+
+    int size() {
+        return mItems.size();
+    }
+
+    /**
+     * Loads all icons from the set, using the supplied {@code drawableLoader}, in a background
+     * thread.
+     */
+    List<ListenableFuture<Drawable>> getIcons() {
+        return getIcons(Integer.MAX_VALUE);
+    }
+
+    /**
+     * Loads up to {@code maxSize} icons from the set, using the supplied {@code drawableLoader}, in
+     * a background thread.
+     */
+    List<ListenableFuture<Drawable>> getIcons(int maxNumber) {
+        return mItems.stream().limit(maxNumber)
+                .map(this::loadIcon)
+                .toList();
+    }
+
+    private ListenableFuture<Drawable> loadIcon(T item) {
+        return mBackgroundExecutor.submit(() -> {
+            if (mCachedIcons.containsKey(item)) {
+                return mCachedIcons.get(item);
+            }
+            Drawable drawable = mDrawableLoader.apply(item);
+            if (drawable != null) {
+                mCachedIcons.put(item, drawable);
+            }
+            return drawable;
+        });
+    }
+}
diff --git a/src/com/android/settings/notification/modes/CircularIconsPreference.java b/src/com/android/settings/notification/modes/CircularIconsPreference.java
new file mode 100644
index 0000000..5a89352
--- /dev/null
+++ b/src/com/android/settings/notification/modes/CircularIconsPreference.java
@@ -0,0 +1,87 @@
+/*
+ * 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.modes;
+
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settingslib.RestrictedPreference;
+
+import com.google.common.base.Equivalence;
+
+public class CircularIconsPreference extends RestrictedPreference {
+
+    private CircularIconSet<?> mIconSet = CircularIconSet.EMPTY;
+
+    public CircularIconsPreference(Context context) {
+        super(context);
+        init();
+    }
+
+    public CircularIconsPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public CircularIconsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    public CircularIconsPreference(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        init();
+    }
+
+    private void init() {
+        setLayoutResource(R.layout.preference_circular_icons);
+    }
+
+    <T> void setIcons(CircularIconSet<T> iconSet) {
+        setIcons(iconSet, null);
+    }
+
+    <T> void setIcons(CircularIconSet<T> iconSet, @Nullable Equivalence<T> itemEquivalence) {
+        if (mIconSet.hasSameItemsAs(iconSet, itemEquivalence)) {
+            return;
+        }
+
+        mIconSet = iconSet;
+        notifyChanged();
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        CircularIconsView iconContainer = checkNotNull(
+                (CircularIconsView) holder.findViewById(R.id.circles_container));
+
+        iconContainer.setVisibility(mIconSet != null && mIconSet.size() == 0 ? GONE : VISIBLE);
+        iconContainer.setEnabled(isEnabled());
+        iconContainer.setIcons(mIconSet);
+    }
+}
diff --git a/src/com/android/settings/notification/modes/CircularIconsView.java b/src/com/android/settings/notification/modes/CircularIconsView.java
new file mode 100644
index 0000000..b0e4280
--- /dev/null
+++ b/src/com/android/settings/notification/modes/CircularIconsView.java
@@ -0,0 +1,232 @@
+/*
+ * 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.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
+import java.util.List;
+import java.util.concurrent.Executor;
+
+public class CircularIconsView extends LinearLayout {
+
+    private static final float DISABLED_ITEM_ALPHA = 0.3f;
+
+    record Icons(ImmutableList<Drawable> icons, int extraItems) { }
+
+    private Executor mUiExecutor;
+    private int mNumberOfCirclesThatFit;
+
+    // Chronologically, fields will be set top-to-bottom.
+    @Nullable private CircularIconSet<?> mIconSet;
+    @Nullable private ListenableFuture<List<Drawable>> mPendingLoadIconsFuture;
+    @Nullable private Icons mDisplayedIcons;
+
+    public CircularIconsView(Context context) {
+        super(context);
+        setUiExecutor(context.getMainExecutor());
+    }
+
+    public CircularIconsView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setUiExecutor(context.getMainExecutor());
+    }
+
+    public CircularIconsView(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        setUiExecutor(context.getMainExecutor());
+    }
+
+    public CircularIconsView(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        setUiExecutor(context.getMainExecutor());
+    }
+
+    @VisibleForTesting
+    void setUiExecutor(Executor uiExecutor) {
+        mUiExecutor = uiExecutor;
+    }
+
+    <T> void setIcons(CircularIconSet<T> iconSet) {
+        if (mIconSet != null && mIconSet.equals(iconSet)) {
+            return;
+        }
+
+        mIconSet = checkNotNull(iconSet);
+        cancelPendingTasks();
+        if (getMeasuredWidth() != 0) {
+            startLoadingIcons(iconSet);
+        }
+    }
+
+    private void cancelPendingTasks() {
+        mDisplayedIcons = null;
+        if (mPendingLoadIconsFuture != null) {
+            mPendingLoadIconsFuture.cancel(true);
+            mPendingLoadIconsFuture = null;
+        }
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+        super.onLayout(changed, left, top, right, bottom);
+
+        int numFitting = getNumberOfCirclesThatFit();
+        if (mNumberOfCirclesThatFit != numFitting) {
+            // View has been measured for the first time OR its dimensions have changed since then.
+            // Keep track, because we want to reload stuff if more (or less) items fit.
+            mNumberOfCirclesThatFit = numFitting;
+
+            if (mIconSet != null) {
+                cancelPendingTasks();
+                startLoadingIcons(mIconSet);
+            }
+        }
+    }
+
+    private int getNumberOfCirclesThatFit() {
+        Resources res = getContext().getResources();
+        int availableSpace = getMeasuredWidth();
+        int iconHorizontalSpace = res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter)
+                + res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_margin_between);
+        return availableSpace / iconHorizontalSpace;
+    }
+
+    private void startLoadingIcons(CircularIconSet<?> iconSet) {
+        int numCirclesThatFit = getNumberOfCirclesThatFit();
+
+        List<ListenableFuture<Drawable>> iconFutures;
+        int extraItems;
+        if (iconSet.size() > numCirclesThatFit) {
+            // Reserve one space for the (+xx) textview.
+            int numIconsToShow = numCirclesThatFit - 1;
+            if (numIconsToShow < 0) {
+                numIconsToShow = 0;
+            }
+            iconFutures = iconSet.getIcons(numIconsToShow);
+            extraItems = iconSet.size() - numIconsToShow;
+        } else {
+            // Fit exactly or with remaining space.
+            iconFutures = iconSet.getIcons();
+            extraItems = 0;
+        }
+
+        // Display icons when all are ready (more consistent than randomly loading).
+        mPendingLoadIconsFuture = Futures.allAsList(iconFutures);
+        FutureUtil.whenDone(
+                mPendingLoadIconsFuture,
+                icons -> setDrawables(new Icons(ImmutableList.copyOf(icons), extraItems)),
+                mUiExecutor);
+    }
+
+    private void setDrawables(Icons icons) {
+        mDisplayedIcons = icons;
+
+        // Rearrange child views until we have <numImages> ImageViews...
+        LayoutInflater inflater = LayoutInflater.from(getContext());
+        int numImages = icons.icons.size();
+        int numImageViews = getChildCount(ImageView.class);
+        if (numImages > numImageViews) {
+            for (int i = 0; i < numImages - numImageViews; i++) {
+                ImageView imageView = (ImageView) inflater.inflate(
+                        R.layout.preference_circular_icons_item, this, false);
+                addView(imageView, 0);
+            }
+        } else if (numImageViews > numImages) {
+            for (int i = 0; i < numImageViews - numImages; i++) {
+                removeViewAt(0);
+            }
+        }
+        // ... plus 0/1 TextViews at the end.
+        if (icons.extraItems > 0 && !(getLastChild() instanceof TextView)) {
+            TextView plusView = (TextView) inflater.inflate(
+                    R.layout.preference_circular_icons_plus_item, this, false);
+            this.addView(plusView);
+        } else if (icons.extraItems == 0 && (getLastChild() instanceof TextView)) {
+            removeViewAt(getChildCount() - 1);
+        }
+
+        // Show images (and +n if needed).
+        for (int i = 0; i < numImages; i++) {
+            ImageView imageView = (ImageView) getChildAt(i);
+            imageView.setImageDrawable(icons.icons.get(i));
+        }
+        if (icons.extraItems > 0) {
+            TextView textView = (TextView) checkNotNull(getLastChild());
+            textView.setText(getContext().getString(R.string.zen_mode_plus_n_items,
+                    icons.extraItems));
+        }
+
+        applyEnabledDisabledAppearance(isEnabled());
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        applyEnabledDisabledAppearance(isEnabled());
+    }
+
+    private void applyEnabledDisabledAppearance(boolean enabled) {
+        for (int i = 0; i < getChildCount(); i++) {
+            View child = getChildAt(i);
+            child.setAlpha(enabled ? 1.0f : DISABLED_ITEM_ALPHA);
+        }
+    }
+
+    private int getChildCount(Class<? extends View> childClass) {
+        int count = 0;
+        for (int i = 0; i < getChildCount(); i++) {
+            if (childClass.isInstance(getChildAt(i))) {
+                count++;
+            }
+        }
+        return count;
+    }
+
+    @Nullable
+    private View getLastChild() {
+        if (getChildCount() == 0) {
+            return null;
+        }
+        return getChildAt(getChildCount() - 1);
+    }
+
+    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+    @Nullable
+    Icons getDisplayedIcons() {
+        return mDisplayedIcons;
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ConfigurationActivityHelper.java b/src/com/android/settings/notification/modes/ConfigurationActivityHelper.java
new file mode 100644
index 0000000..d001651
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ConfigurationActivityHelper.java
@@ -0,0 +1,143 @@
+/*
+ * 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.modes;
+
+import static android.app.NotificationManager.EXTRA_AUTOMATIC_RULE_ID;
+
+import android.content.ComponentName;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ComponentInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.service.notification.ConditionProviderService;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.android.settingslib.notification.modes.ZenMode;
+
+import java.util.List;
+import java.util.function.Function;
+
+class ConfigurationActivityHelper {
+
+    private static final String TAG = "ConfigurationActivityHelper";
+
+    private final PackageManager mPm;
+
+    ConfigurationActivityHelper(PackageManager pm) {
+        mPm = pm;
+    }
+
+    @Nullable
+    Intent getConfigurationActivityIntentForMode(ZenMode zenMode,
+            Function<ComponentName, ComponentInfo> approvedServiceFinder) {
+
+        String owner = zenMode.getRule().getPackageName();
+        ComponentName configActivity = null;
+        if (zenMode.getRule().getConfigurationActivity() != null) {
+            // If a configuration activity is present, use that directly in the intent
+            configActivity = zenMode.getRule().getConfigurationActivity();
+        } else {
+            // Otherwise, look for a condition provider service for the rule's package
+            ComponentInfo ci = approvedServiceFinder.apply(zenMode.getRule().getOwner());
+            if (ci != null) {
+                configActivity = extractConfigurationActivityFromComponent(ci);
+            }
+        }
+
+        if (configActivity != null
+                && (owner == null || isSameOwnerPackage(owner, configActivity))
+                && isResolvableActivity(configActivity)) {
+            return new Intent()
+                    .setComponent(configActivity)
+                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+                    .putExtra(ConditionProviderService.EXTRA_RULE_ID, zenMode.getId())
+                    .putExtra(EXTRA_AUTOMATIC_RULE_ID, zenMode.getId());
+        } else {
+            return null;
+        }
+    }
+
+    @Nullable
+    ComponentName getConfigurationActivityFromApprovedComponent(ComponentInfo ci) {
+        ComponentName configActivity = extractConfigurationActivityFromComponent(ci);
+        if (configActivity != null
+                && isSameOwnerPackage(ci.packageName, configActivity)
+                && isResolvableActivity(configActivity)) {
+            return configActivity;
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Extract the {@link ComponentName} corresponding to the mode configuration <em>activity</em>
+     * from the component declaring the rule (which may be the Activity itself, or a CPS that points
+     * to the activity in question in its metadata).
+     *
+     * <p>This method doesn't perform any validation, so the activity may or may not exist.
+     */
+    @Nullable
+    private ComponentName extractConfigurationActivityFromComponent(ComponentInfo ci) {
+        if (ci instanceof ActivityInfo) {
+            // New (activity-backed) rule.
+            return new ComponentName(ci.packageName, ci.name);
+        } else if (ci.metaData != null) {
+            // Old (service-backed) rule.
+            final String configurationActivity = ci.metaData.getString(
+                    ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY);
+            if (configurationActivity != null) {
+                return ComponentName.unflattenFromString(configurationActivity);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Verifies that the activity is the same package as the rule owner.
+     */
+    private boolean isSameOwnerPackage(String ownerPkg, ComponentName activityName) {
+        try {
+            int ownerUid = mPm.getPackageUid(ownerPkg, 0);
+            int configActivityOwnerUid = mPm.getPackageUid(activityName.getPackageName(), 0);
+            if (ownerUid == configActivityOwnerUid) {
+                return true;
+            } else {
+                Log.w(TAG, String.format("Config activity (%s) not in owner package (%s)",
+                        activityName, ownerPkg));
+                return false;
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(TAG, "Failed to find config activity " + activityName);
+            return false;
+        }
+    }
+
+    /** Verifies that the activity exists and hasn't been disabled. */
+    private boolean isResolvableActivity(ComponentName activityName) {
+        Intent intent = new Intent().setComponent(activityName);
+        List<ResolveInfo> results = mPm.queryIntentActivities(intent, /* flags= */ 0);
+
+        if (intent.resolveActivity(mPm) == null || results.isEmpty()) {
+            Log.w(TAG, "Cannot resolve: " + activityName);
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/src/com/android/settings/notification/modes/FutureUtil.java b/src/com/android/settings/notification/modes/FutureUtil.java
index e7bf8b9..b9a4300 100644
--- a/src/com/android/settings/notification/modes/FutureUtil.java
+++ b/src/com/android/settings/notification/modes/FutureUtil.java
@@ -18,10 +18,13 @@
 
 import android.util.Log;
 
+import androidx.annotation.NonNull;
+
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 
+import java.util.concurrent.CancellationException;
 import java.util.concurrent.Executor;
 import java.util.function.Consumer;
 
@@ -42,8 +45,10 @@
             }
 
             @Override
-            public void onFailure(Throwable throwable) {
-                Log.e(TAG, String.format(errorLogMessage, errorLogMessageArgs), throwable);
+            public void onFailure(@NonNull Throwable throwable) {
+                if (!(throwable instanceof CancellationException)) {
+                    Log.e(TAG, String.format(errorLogMessage, errorLogMessageArgs), throwable);
+                }
             }
         }, executor);
     }
diff --git a/src/com/android/settings/notification/modes/IconLoader.java b/src/com/android/settings/notification/modes/IconLoader.java
deleted file mode 100644
index c590285..0000000
--- a/src/com/android/settings/notification/modes/IconLoader.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * 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.modes;
-
-import static com.google.common.util.concurrent.Futures.immediateFuture;
-
-import static java.util.Objects.requireNonNull;
-
-import android.annotation.Nullable;
-import android.app.AutomaticZenRule;
-import android.content.Context;
-import android.graphics.drawable.AdaptiveIconDrawable;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.InsetDrawable;
-import android.service.notification.SystemZenRules;
-import android.text.TextUtils;
-import android.util.Log;
-import android.util.LruCache;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.appcompat.content.res.AppCompatResources;
-
-import com.google.common.util.concurrent.FluentFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-class IconLoader {
-
-    private static final String TAG = "ZenIconLoader";
-
-    private static final Drawable MISSING = new ColorDrawable();
-
-    @Nullable // Until first usage
-    private static IconLoader sInstance;
-
-    private final LruCache<String, Drawable> mCache;
-    private final ListeningExecutorService mBackgroundExecutor;
-
-    static IconLoader getInstance() {
-        if (sInstance == null) {
-            sInstance = new IconLoader();
-        }
-        return sInstance;
-    }
-
-    private IconLoader() {
-        this(Executors.newFixedThreadPool(4));
-    }
-
-    @VisibleForTesting
-    IconLoader(ExecutorService backgroundExecutor) {
-        mCache = new LruCache<>(50);
-        mBackgroundExecutor =
-                MoreExecutors.listeningDecorator(backgroundExecutor);
-    }
-
-    @NonNull
-    ListenableFuture<Drawable> getIcon(Context context, @NonNull AutomaticZenRule rule) {
-        if (rule.getIconResId() == 0) {
-            return Futures.immediateFuture(getFallbackIcon(context, rule.getType()));
-        }
-
-        return FluentFuture.from(loadIcon(context, rule.getPackageName(), rule.getIconResId()))
-                .transform(icon ->
-                        icon != null ? icon : getFallbackIcon(context, rule.getType()),
-                        MoreExecutors.directExecutor());
-    }
-
-    @NonNull
-    private ListenableFuture</* @Nullable */ Drawable> loadIcon(Context context, String pkg,
-            int iconResId) {
-        String cacheKey = pkg + ":" + iconResId;
-        synchronized (mCache) {
-            Drawable cachedValue = mCache.get(cacheKey);
-            if (cachedValue != null) {
-                return immediateFuture(cachedValue != MISSING ? cachedValue : null);
-            }
-        }
-
-        return FluentFuture.from(mBackgroundExecutor.submit(() -> {
-            if (TextUtils.isEmpty(pkg) || SystemZenRules.PACKAGE_ANDROID.equals(pkg)) {
-                return context.getDrawable(iconResId);
-            } else {
-                Context appContext = context.createPackageContext(pkg, 0);
-                Drawable appDrawable = AppCompatResources.getDrawable(appContext, iconResId);
-                return getMonochromeIconIfPresent(appDrawable);
-            }
-        })).catching(Exception.class, ex -> {
-            // If we cannot resolve the icon, then store MISSING in the cache below, so
-            // we don't try again.
-            Log.e(TAG, "Error while loading icon " + cacheKey, ex);
-            return null;
-        }, MoreExecutors.directExecutor()).transform(drawable -> {
-            synchronized (mCache) {
-                mCache.put(cacheKey, drawable != null ? drawable : MISSING);
-            }
-            return drawable;
-        }, MoreExecutors.directExecutor());
-    }
-
-    private static Drawable getFallbackIcon(Context context, int ruleType) {
-        int iconResIdFromType = switch (ruleType) {
-            case AutomaticZenRule.TYPE_UNKNOWN ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_unknown;
-            case AutomaticZenRule.TYPE_OTHER ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_other;
-            case AutomaticZenRule.TYPE_SCHEDULE_TIME ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_schedule_time;
-            case AutomaticZenRule.TYPE_SCHEDULE_CALENDAR ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_schedule_calendar;
-            case AutomaticZenRule.TYPE_BEDTIME ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_bedtime;
-            case AutomaticZenRule.TYPE_DRIVING ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_driving;
-            case AutomaticZenRule.TYPE_IMMERSIVE ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_immersive;
-            case AutomaticZenRule.TYPE_THEATER ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_theater;
-            case AutomaticZenRule.TYPE_MANAGED ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_managed;
-            default ->
-                    com.android.internal.R.drawable.ic_zen_mode_type_unknown;
-        };
-        return requireNonNull(context.getDrawable(iconResIdFromType));
-    }
-
-    private static Drawable getMonochromeIconIfPresent(Drawable icon) {
-        // For created rules, the app should've provided a monochrome Drawable. However, implicit
-        // rules have the app's icon, which is not -- but might have a monochrome layer. Thus
-        // we choose it, if present.
-        if (icon instanceof AdaptiveIconDrawable adaptiveIcon) {
-            if (adaptiveIcon.getMonochrome() != null) {
-                // Wrap with negative inset => scale icon (inspired from BaseIconFactory)
-                return new InsetDrawable(adaptiveIcon.getMonochrome(),
-                        -2.0f * AdaptiveIconDrawable.getExtraInsetFraction());
-            }
-        }
-        return icon;
-    }
-}
diff --git a/src/com/android/settings/notification/modes/IconUtil.java b/src/com/android/settings/notification/modes/IconUtil.java
index c6ecaa0..33d0d96 100644
--- a/src/com/android/settings/notification/modes/IconUtil.java
+++ b/src/com/android/settings/notification/modes/IconUtil.java
@@ -19,51 +19,217 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.Typeface;
+import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.LayerDrawable;
 import android.graphics.drawable.ShapeDrawable;
+import android.graphics.drawable.StateListDrawable;
 import android.graphics.drawable.shapes.OvalShape;
+import android.util.StateSet;
+import android.view.Gravity;
 
+import androidx.annotation.AttrRes;
 import androidx.annotation.DrawableRes;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.Px;
 
 import com.android.settings.R;
 import com.android.settingslib.Utils;
 
+import com.google.common.base.Strings;
+
+import java.util.Locale;
+
 class IconUtil {
 
-    static Drawable applyTint(@NonNull Context context, @NonNull Drawable icon) {
+    static Drawable applyNormalTint(@NonNull Context context, @NonNull Drawable icon) {
+        return applyTint(context, icon, android.R.attr.colorControlNormal);
+    }
+
+    static Drawable applyAccentTint(@NonNull Context context, @NonNull Drawable icon) {
+        return applyTint(context, icon, android.R.attr.colorAccent);
+    }
+
+    private static Drawable applyTint(@NonNull Context context, @NonNull Drawable icon,
+            @AttrRes int colorAttr) {
         icon = icon.mutate();
-        icon.setTintList(
-                Utils.getColorAttr(context, android.R.attr.colorControlNormal));
+        icon.setTintList(Utils.getColorAttr(context, colorAttr));
         return icon;
     }
 
     /**
-     * Returns a variant of the supplied {@code icon} to be used in the icon picker. The inner icon
-     * is 36x36dp and it's contained into a circle of diameter 54dp.
+     * Returns a variant of the supplied mode icon to be used as the header in the mode page. The
+     * mode icon is contained in a 12-sided-cookie. The color combination is "material secondary"
+     * when unselected and "material primary" when selected; the switch between these two color sets
+     * is animated with a cross-fade. The selected colors should be used when the mode is currently
+     * active.
      */
-    static Drawable makeIconCircle(@NonNull Context context, @NonNull Drawable icon) {
-        ShapeDrawable background = new ShapeDrawable(new OvalShape());
-        background.getPaint().setColor(Utils.getColorAttrDefaultColor(context,
-                com.android.internal.R.attr.materialColorSecondaryContainer));
-        icon.setTint(Utils.getColorAttrDefaultColor(context,
-                com.android.internal.R.attr.materialColorOnSecondaryContainer));
+    static Drawable makeModeHeader(@NonNull Context context, Drawable modeIcon) {
+        Resources res = context.getResources();
+        Drawable background = checkNotNull(context.getDrawable(R.drawable.ic_zen_mode_icon_cookie));
+        @Px int outerSizePx = res.getDimensionPixelSize(R.dimen.zen_mode_header_size);
+        @Px int innerSizePx = res.getDimensionPixelSize(R.dimen.zen_mode_header_inner_icon_size);
 
-        LayerDrawable layerDrawable = new LayerDrawable(new Drawable[] { background, icon });
+        Drawable base = composeIcons(
+                context.getResources(),
+                background,
+                Utils.getColorAttr(context,
+                        com.android.internal.R.attr.materialColorSecondaryContainer),
+                outerSizePx,
+                modeIcon,
+                Utils.getColorAttr(context,
+                        com.android.internal.R.attr.materialColorOnSecondaryContainer),
+                innerSizePx);
 
-        int circleDiameter = context.getResources().getDimensionPixelSize(
-                R.dimen.zen_mode_icon_list_circle_diameter);
-        int iconSize = context.getResources().getDimensionPixelSize(
-                R.dimen.zen_mode_icon_list_icon_size);
-        int iconPadding = (circleDiameter - iconSize) / 2;
-        layerDrawable.setBounds(0, 0, circleDiameter, circleDiameter);
-        layerDrawable.setLayerInset(1, iconPadding, iconPadding, iconPadding, iconPadding);
+        Drawable selected = composeIcons(
+                context.getResources(),
+                background,
+                Utils.getColorAttr(context, com.android.internal.R.attr.materialColorPrimary),
+                outerSizePx,
+                modeIcon,
+                Utils.getColorAttr(context, com.android.internal.R.attr.materialColorOnPrimary),
+                innerSizePx);
 
-        return layerDrawable;
+        StateListDrawable result = new StateListDrawable();
+        result.setEnterFadeDuration(res.getInteger(android.R.integer.config_mediumAnimTime));
+        result.setExitFadeDuration(res.getInteger(android.R.integer.config_mediumAnimTime));
+        result.addState(new int[] { android.R.attr.state_selected }, selected);
+        result.addState(StateSet.WILD_CARD, base);
+        result.setBounds(0, 0, outerSizePx, outerSizePx);
+        return result;
     }
 
-    static Drawable makeIconCircle(@NonNull Context context, @DrawableRes int iconResId) {
-        return makeIconCircle(context, checkNotNull(context.getDrawable(iconResId)));
+    /**
+     * Returns a variant of the supplied {@code icon} to be used as the header in the icon picker
+     * (large icon within large circle, with the "material secondary" color combination).
+     */
+    static Drawable makeIconPickerHeader(@NonNull Context context, Drawable icon) {
+        return composeIconCircle(
+                context.getResources(),
+                Utils.getColorAttr(context,
+                        com.android.internal.R.attr.materialColorSecondaryContainer),
+                context.getResources().getDimensionPixelSize(
+                        R.dimen.zen_mode_icon_list_header_circle_diameter),
+                icon,
+                Utils.getColorAttr(context,
+                        com.android.internal.R.attr.materialColorOnSecondaryContainer),
+                context.getResources().getDimensionPixelSize(
+                        R.dimen.zen_mode_icon_list_header_icon_size));
+    }
+
+    /**
+     * Returns a variant of the supplied {@code icon} to be used as an option in the icon picker
+     * (small icon in small circle, with "material secondary" colors for the normal state and
+     * "material primary" colors for the selected state).
+     */
+    static Drawable makeIconPickerItem(@NonNull Context context, @DrawableRes int iconResId) {
+        return composeIconCircle(
+                context.getResources(),
+                context.getColorStateList(R.color.modes_icon_selectable_background),
+                context.getResources().getDimensionPixelSize(
+                        R.dimen.zen_mode_icon_list_item_circle_diameter),
+                checkNotNull(context.getDrawable(iconResId)),
+                context.getColorStateList(R.color.modes_icon_selectable_icon),
+                context.getResources().getDimensionPixelSize(
+                        R.dimen.zen_mode_icon_list_item_icon_size));
+    }
+
+    /**
+     * Returns a variant of the supplied icon to be used in a {@link CircularIconsPreference}. The
+     * inner icon is 20x20 dp and it's contained in a circle of diameter 32dp, and is tinted
+     * with the "material secondary" color combination.
+     */
+    static Drawable makeCircularIconPreferenceItem(@NonNull Context context,
+            @DrawableRes int iconResId) {
+        return composeIconCircle(
+                context.getResources(),
+                Utils.getColorAttr(context,
+                        com.android.internal.R.attr.materialColorSecondaryContainer),
+                context.getResources().getDimensionPixelSize(
+                        R.dimen.zen_mode_circular_icon_diameter),
+                checkNotNull(context.getDrawable(iconResId)),
+                Utils.getColorAttr(context,
+                        com.android.internal.R.attr.materialColorOnSecondaryContainer),
+                context.getResources().getDimensionPixelSize(
+                        R.dimen.zen_mode_circular_icon_inner_icon_size));
+    }
+
+    /**
+     * Returns an icon representing a contact that doesn't have an associated photo, to be used in
+     * a {@link CircularIconsPreference}, tinted with the "material tertiary". If the contact's
+     * display name is not empty, it's the contact's monogram, otherwise it's a generic icon.
+     */
+    static Drawable makeContactMonogram(@NonNull Context context, @Nullable String displayName) {
+        Resources res = context.getResources();
+        if (Strings.isNullOrEmpty(displayName)) {
+            return composeIconCircle(
+                    context.getResources(),
+                    Utils.getColorAttr(context,
+                            com.android.internal.R.attr.materialColorTertiaryContainer),
+                    res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter),
+                    checkNotNull(context.getDrawable(R.drawable.ic_zen_mode_generic_contact)),
+                    Utils.getColorAttr(context,
+                            com.android.internal.R.attr.materialColorOnTertiaryContainer),
+                    res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_inner_icon_size));
+        }
+
+        float diameter = res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter);
+        Bitmap bitmap = Bitmap.createBitmap((int) diameter, (int) diameter,
+                Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+
+        Paint circlePaint = new Paint();
+        circlePaint.setColor(Utils.getColorAttrDefaultColor(context,
+                com.android.internal.R.attr.materialColorTertiaryContainer));
+        circlePaint.setFlags(Paint.ANTI_ALIAS_FLAG);
+        canvas.drawCircle(diameter / 2f, diameter / 2f, diameter / 2f, circlePaint);
+
+        Paint textPaint = new Paint();
+        textPaint.setColor(Utils.getColorAttrDefaultColor(context,
+                com.android.internal.R.attr.materialColorOnTertiaryContainer));
+        textPaint.setTypeface(Typeface.create("sans-serif", Typeface.NORMAL));
+        textPaint.setTextAlign(Paint.Align.LEFT);
+        textPaint.setTextSize(res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_text_size));
+
+        String text = displayName.substring(0, 1).toUpperCase(Locale.getDefault());
+        Rect textRect = new Rect();
+        textPaint.getTextBounds(text, 0, text.length(), textRect);
+
+        float textX = diameter / 2f - textRect.width() / 2f - textRect.left;
+        float textY = diameter / 2f + textRect.height() / 2f - textRect.bottom;
+        canvas.drawText(text, textX, textY, textPaint);
+
+        return new BitmapDrawable(context.getResources(), bitmap);
+    }
+
+    private static Drawable composeIconCircle(Resources res, ColorStateList circleColor,
+            @Px int circleDiameterPx, Drawable icon, ColorStateList iconColor, @Px int iconSizePx) {
+        return composeIcons(res, new ShapeDrawable(new OvalShape()), circleColor, circleDiameterPx,
+                icon, iconColor, iconSizePx);
+    }
+
+    private static Drawable composeIcons(Resources res, Drawable outer, ColorStateList outerColor,
+            @Px int outerSizePx, Drawable icon, ColorStateList iconColor, @Px int iconSizePx) {
+        Drawable background = checkNotNull(outer.getConstantState()).newDrawable(res).mutate();
+        background.setTintList(outerColor);
+        Drawable foreground = checkNotNull(icon.getConstantState()).newDrawable(res).mutate();
+        foreground.setTintList(iconColor);
+
+        LayerDrawable layerDrawable = new LayerDrawable(new Drawable[] { background, foreground });
+
+        layerDrawable.setLayerSize(0, outerSizePx, outerSizePx);
+        layerDrawable.setLayerGravity(1, Gravity.CENTER);
+        layerDrawable.setLayerSize(1, iconSizePx, iconSizePx);
+
+        layerDrawable.setBounds(0, 0, outerSizePx, outerSizePx);
+        return layerDrawable;
     }
 }
diff --git a/src/com/android/settings/notification/modes/InterruptionFilterPreferenceController.java b/src/com/android/settings/notification/modes/InterruptionFilterPreferenceController.java
new file mode 100644
index 0000000..d69b317
--- /dev/null
+++ b/src/com/android/settings/notification/modes/InterruptionFilterPreferenceController.java
@@ -0,0 +1,66 @@
+/*
+ * 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.modes;
+
+import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+class InterruptionFilterPreferenceController extends AbstractZenModePreferenceController
+        implements Preference.OnPreferenceChangeListener {
+
+    public InterruptionFilterPreferenceController(Context context, String key,
+            ZenModesBackend backend) {
+        super(context, key, backend);
+    }
+
+    @Override
+    public boolean isAvailable(ZenMode zenMode) {
+        return !zenMode.isManualDnd();
+    }
+
+    @Override
+    public void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        preference.setEnabled(zenMode.isEnabled());
+        boolean allowingAll = zenMode.getRule().getInterruptionFilter() == INTERRUPTION_FILTER_ALL;
+
+        ((TwoStatePreference) preference).setChecked(allowingAll);
+        preference.setSummary(allowingAll
+                ? mContext.getString(R.string.zen_mode_all_notifications_allowed)
+                : "");
+    }
+
+    @Override
+    public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
+        final boolean allowAll = ((Boolean) newValue);
+        return saveMode(zenMode -> {
+            zenMode.getRule().setInterruptionFilter(allowAll
+                    ? INTERRUPTION_FILTER_ALL
+                    : INTERRUPTION_FILTER_PRIORITY);
+            return zenMode;
+        });
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ManualDurationHelper.java b/src/com/android/settings/notification/modes/ManualDurationHelper.java
new file mode 100644
index 0000000..da9f420
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ManualDurationHelper.java
@@ -0,0 +1,123 @@
+/*
+ * 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.modes;
+
+import android.annotation.Nullable;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.icu.text.MessageFormat;
+import android.net.Uri;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Class to contain shared utilities for reading and observing the Settings ZEN_DURATION value.
+ */
+class ManualDurationHelper {
+    private Context mContext;
+
+    ManualDurationHelper(@NonNull Context context) {
+        mContext = context;
+    }
+
+    int getZenDuration() {
+        return Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.ZEN_DURATION,
+                0);
+    }
+
+    /**
+     * Generates a summary of the duration that manual DND will be on when turned on from
+     * quick settings, for example "Until you turn off" or "[number] hours", based on the given
+     * setting value.
+     */
+    public String getSummary() {
+        int zenDuration = getZenDuration();
+        String summary;
+        if (zenDuration < 0) {
+            summary = mContext.getString(R.string.zen_mode_duration_summary_always_prompt);
+        } else if (zenDuration == 0) {
+            summary = mContext.getString(R.string.zen_mode_duration_summary_forever);
+        } else {
+            if (zenDuration >= 60) {
+                MessageFormat msgFormat = new MessageFormat(
+                        mContext.getString(R.string.zen_mode_duration_summary_time_hours),
+                        Locale.getDefault());
+                Map<String, Object> msgArgs = new HashMap<>();
+                msgArgs.put("count", zenDuration / 60);
+                summary = msgFormat.format(msgArgs);
+            } else {
+                MessageFormat msgFormat = new MessageFormat(
+                        mContext.getString(R.string.zen_mode_duration_summary_time_minutes),
+                        Locale.getDefault());
+                Map<String, Object> msgArgs = new HashMap<>();
+                msgArgs.put("count", zenDuration);
+                summary = msgFormat.format(msgArgs);
+            }
+        }
+        return summary;
+    }
+
+    SettingsObserver makeSettingsObserver(@NonNull AbstractZenModePreferenceController controller) {
+        return new SettingsObserver(controller);
+    }
+
+    final class SettingsObserver extends ContentObserver {
+        private static final Uri ZEN_MODE_DURATION_URI = Settings.Secure.getUriFor(
+                Settings.Secure.ZEN_DURATION);
+
+        private final AbstractZenModePreferenceController mPrefController;
+        private Preference mPreference;
+
+        /**
+         * Create a settings observer attached to the provided PreferenceController, whose
+         * updateState method should be called onChange.
+         */
+        SettingsObserver(@NonNull AbstractZenModePreferenceController prefController) {
+            super(mContext.getMainExecutor(), 0);
+            mPrefController = prefController;
+        }
+
+        void setPreference(Preference preference) {
+            mPreference = preference;
+        }
+
+        public void register() {
+            mContext.getContentResolver().registerContentObserver(ZEN_MODE_DURATION_URI, false,
+                    this);
+        }
+
+        public void unregister() {
+            mContext.getContentResolver().unregisterContentObserver(this);
+        }
+
+        @Override
+        public void onChange(boolean selfChange, @Nullable Uri uri) {
+            super.onChange(selfChange, uri);
+            if (ZEN_MODE_DURATION_URI.equals(uri) && mPreference != null) {
+                mPrefController.updateState(mPreference);
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ManualDurationPreferenceController.java b/src/com/android/settings/notification/modes/ManualDurationPreferenceController.java
new file mode 100644
index 0000000..28aac63
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ManualDurationPreferenceController.java
@@ -0,0 +1,87 @@
+/*
+ * 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.modes;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.notification.zen.SettingsZenDurationDialog;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+public class ManualDurationPreferenceController extends AbstractZenModePreferenceController {
+    private static final String TAG = "QsDurationPrefController";
+
+    private final Fragment mParent;
+    private final ManualDurationHelper mDurationHelper;
+    private final ManualDurationHelper.SettingsObserver mSettingsObserver;
+
+    ManualDurationPreferenceController(Context context, String key, Fragment parent,
+            ZenModesBackend backend) {
+        super(context, key, backend);
+        mParent = parent;
+        mDurationHelper = new ManualDurationHelper(context);
+        mSettingsObserver = mDurationHelper.makeSettingsObserver(this);
+    }
+
+    @Override
+    public boolean isAvailable(ZenMode zenMode) {
+        if (!super.isAvailable(zenMode)) {
+            return false;
+        }
+        return zenMode.isManualDnd();
+    }
+
+    // Called by parent fragment onStart().
+    void registerSettingsObserver() {
+        mSettingsObserver.register();
+    }
+
+    // Called by parent fragment onStop().
+    void unregisterSettingsObserver() {
+        mSettingsObserver.unregister();
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        Preference pref = screen.findPreference(getPreferenceKey());
+        if (pref != null) {
+            mSettingsObserver.setPreference(pref);
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference, @NonNull ZenMode unusedZenMode) {
+        // This controller is a link between a Settings value (ZEN_DURATION) and the manual DND
+        // mode. The status of the zen mode object itself doesn't affect the preference
+        // value, as that comes from settings; that value from settings will determine the
+        // condition that is attached to the mode on manual activation. Thus we ignore the actual
+        // zen mode value provided here.
+        preference.setSummary(mDurationHelper.getSummary());
+        preference.setOnPreferenceClickListener(pref -> {
+            // The new setting value is set by the dialog, so we don't need to do it here.
+            final SettingsZenDurationDialog durationDialog = new SettingsZenDurationDialog();
+            durationDialog.show(mParent.getParentFragmentManager(), TAG);
+            return true;
+        });
+    }
+}
diff --git a/src/com/android/settings/notification/modes/SetupInterstitialActivity.java b/src/com/android/settings/notification/modes/SetupInterstitialActivity.java
new file mode 100644
index 0000000..8408624
--- /dev/null
+++ b/src/com/android/settings/notification/modes/SetupInterstitialActivity.java
@@ -0,0 +1,228 @@
+/*
+ * 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.modes;
+
+import static android.app.AutomaticZenRule.TYPE_BEDTIME;
+import static android.app.AutomaticZenRule.TYPE_DRIVING;
+import static android.app.AutomaticZenRule.TYPE_IMMERSIVE;
+import static android.app.AutomaticZenRule.TYPE_MANAGED;
+import static android.app.AutomaticZenRule.TYPE_OTHER;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.app.AutomaticZenRule.TYPE_THEATER;
+import static android.app.AutomaticZenRule.TYPE_UNKNOWN;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import android.annotation.SuppressLint;
+import android.app.ActionBar;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+import android.widget.Toolbar;
+
+import androidx.activity.EdgeToEdge;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+/**
+ * Interstitial page for modes that are disabled, but not disabled by the user. This page
+ * provides a button to enable the mode, and then goes to the mode setup page.
+ */
+public class SetupInterstitialActivity extends FragmentActivity {
+    private static final String TAG = "ModeSetupInterstitial";
+    private ZenModesBackend mBackend;
+
+    /**
+     * Returns an intent leading to this page for the given mode and context.
+     */
+    public static @NonNull Intent getIntent(@NonNull Context context, @NonNull ZenMode mode) {
+        return new Intent(Intent.ACTION_MAIN)
+                .setClass(context, SetupInterstitialActivity.class)
+                .setPackage(context.getPackageName())
+                .setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
+                .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, mode.getId());
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        EdgeToEdge.enable(this);
+        Utils.setupEdgeToEdge(this);
+        super.onCreate(savedInstanceState);
+        mBackend = ZenModesBackend.getInstance(this);
+        setContentView(R.layout.mode_interstitial_layout);
+
+        // Set up toolbar to only have a back button & no title
+        Toolbar toolbar = findViewById(R.id.action_bar);
+        setActionBar(toolbar);
+        ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(true);
+            actionBar.setHomeButtonEnabled(true);
+            actionBar.setDisplayShowTitleEnabled(false);
+        }
+    }
+
+    @Override
+    public boolean onNavigateUp() {
+        // have the home button on the action bar go back
+        getOnBackPressedDispatcher().onBackPressed();
+        return true;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        // See if we have mode data
+        final Intent intent = getIntent();
+        if (intent == null) {
+            Log.w(TAG, "no intent found for modes interstitial");
+            finish();
+            return;
+        }
+
+        String modeId = intent.getStringExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID);
+        if (modeId == null) {
+            Log.w(TAG, "no mode id included in intent: " + intent);
+            finish();
+            return;
+        }
+
+        ZenMode mode = mBackend.getMode(modeId);
+        if (mode == null) {
+            Log.w(TAG, "mode not found for mode id: " + modeId);
+            finish();
+            return;
+        }
+        setTitle(mode.getName());
+
+        TextView title = findViewById(R.id.mode_name_title);
+        if (title != null) {
+            title.setText(mode.getName());
+        }
+
+        TextView subtitle = findViewById(R.id.mode_name_subtitle);
+        if (subtitle != null) {
+            subtitle.setText(getSubtitle(mode));
+        }
+
+        ImageView img = findViewById(R.id.image);
+        if (img != null) {
+            setImage(img, mode);
+        }
+
+        Button button = findViewById(R.id.enable_mode_button);
+        if (button != null) {
+            setupButton(button, mode);
+        }
+    }
+
+    @StringRes
+    @SuppressLint("SwitchIntDef")
+    private static int getSubtitle(ZenMode mode) {
+        if (mode.isSystemOwned()) {
+            return switch (mode.getType()) {
+                case TYPE_SCHEDULE_TIME -> R.string.zen_mode_inspiration_schedule_time;
+                case TYPE_SCHEDULE_CALENDAR -> R.string.zen_mode_inspiration_schedule_calendar;
+                default -> R.string.zen_mode_inspiration_generic; // Custom Manual
+            };
+        } else {
+            return switch (mode.getType()) {
+                case TYPE_BEDTIME -> R.string.zen_mode_inspiration_bedtime;
+                case TYPE_DRIVING -> R.string.zen_mode_inspiration_driving;
+                case TYPE_IMMERSIVE -> R.string.zen_mode_inspiration_immersive;
+                case TYPE_THEATER -> R.string.zen_mode_inspiration_theater;
+                case TYPE_MANAGED -> R.string.zen_mode_inspiration_managed;
+                default -> R.string.zen_mode_inspiration_generic; // Including OTHER, UNKNOWN.
+            };
+        }
+    }
+
+    private void setImage(@NonNull ImageView img, @NonNull ZenMode mode) {
+        int drawableRes = switch (mode.getType()) {
+            case TYPE_BEDTIME -> R.drawable.modes_interstitial_bedtime;
+            case TYPE_DRIVING -> R.drawable.modes_interstitial_driving;
+            case TYPE_IMMERSIVE -> R.drawable.modes_interstitial_immersive;
+            case TYPE_THEATER -> R.drawable.modes_interstitial_theater;
+            case TYPE_MANAGED -> R.drawable.modes_interstitial_managed;
+            case TYPE_OTHER, TYPE_SCHEDULE_CALENDAR, TYPE_SCHEDULE_TIME ->
+                    R.drawable.modes_interstitial_other;
+            case TYPE_UNKNOWN -> R.drawable.modes_interstitial_unknown;
+            default -> R.drawable.modes_interstitial_unknown;
+        };
+
+        img.setImageResource(drawableRes);
+    }
+
+    private void setupButton(Button button, @NonNull ZenMode mode) {
+        button.setText(getString(R.string.zen_mode_setup_button_label, mode.getName()));
+        button.setOnClickListener(enableButtonListener(mode.getId()));
+    }
+
+    @VisibleForTesting
+    View.OnClickListener enableButtonListener(String modeId) {
+        return unused -> {
+            // When clicked, we first reload mode info in case it has changed in the interim,
+            // then enable the mode and then send the user to the mode's configuration page.
+            boolean updated = enableMode(modeId);
+
+            // Don't come back to this activity after sending the user to the modes page, if
+            // they happen to go back. Forward the activity result in case we got here (indirectly)
+            // from some app that is waiting for the result.
+            if (updated) {
+                ZenSubSettingLauncher.forModeFragment(this, ZenModeFragment.class, modeId,
+                                SettingsEnums.ZEN_MODE_INTERSTITIAL)
+                        .addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT).launch();
+            }
+            finish();
+        };
+    }
+
+    // Enables the given mode after first refreshing its data from the backend. Returns true if
+    // the update went through, and false if for some reason the mode wasn't found.
+    private boolean enableMode(@NonNull String modeId) {
+        if (mBackend == null) {
+            return false;
+        }
+
+        ZenMode modeToUpdate = mBackend.getMode(modeId);
+        if (modeToUpdate == null) {
+            // tell the user the mode isn't found, for some reason
+            Toast.makeText(this, R.string.zen_mode_rule_not_found_text, Toast.LENGTH_SHORT)
+                    .show();
+            return false;
+        }
+
+        modeToUpdate.getRule().setEnabled(true);
+        mBackend.updateMode(modeToUpdate);
+        return true;
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenHelperBackend.java b/src/com/android/settings/notification/modes/ZenHelperBackend.java
new file mode 100644
index 0000000..bf91678
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenHelperBackend.java
@@ -0,0 +1,188 @@
+/*
+ * 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.modes;
+
+import android.annotation.Nullable;
+import android.app.INotificationManager;
+import android.content.Context;
+import android.content.pm.ParceledListSlice;
+import android.database.Cursor;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.ServiceManager;
+import android.provider.ContactsContract;
+import android.service.notification.ConversationChannelWrapper;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.core.graphics.drawable.RoundedBitmapDrawable;
+import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Class used for Settings-system_server interactions that are not <em>directly</em> related to
+ * Mode management, but still used in the UI of its Settings pages (such as listing priority
+ * conversations, contacts, etc).
+ */
+class ZenHelperBackend {
+
+    private static final String TAG = "ZenHelperBackend";
+
+    @Nullable // Until first usage
+    private static ZenHelperBackend sInstance;
+
+    private final Context mContext;
+    private final INotificationManager mInm;
+
+    static ZenHelperBackend getInstance(Context context) {
+        if (sInstance == null) {
+            sInstance = new ZenHelperBackend(context.getApplicationContext());
+        }
+        return sInstance;
+    }
+
+    ZenHelperBackend(Context context) {
+        mContext = context;
+        mInm = INotificationManager.Stub.asInterface(
+                ServiceManager.getService(Context.NOTIFICATION_SERVICE));
+    }
+
+    /**
+     * Returns all of a user's packages that have at least one channel that will bypass DND
+     */
+    List<String> getPackagesBypassingDnd(int userId,
+            boolean includeConversationChannels) {
+        try {
+            return mInm.getPackagesBypassingDnd(userId, includeConversationChannels);
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return new ArrayList<>();
+        }
+    }
+
+    ImmutableList<ConversationChannelWrapper> getAllConversations() {
+        return getConversations(false);
+    }
+
+    ImmutableList<ConversationChannelWrapper> getImportantConversations() {
+        return getConversations(true);
+    }
+
+    @SuppressWarnings("unchecked")
+    private ImmutableList<ConversationChannelWrapper> getConversations(boolean onlyImportant) {
+        try {
+            ImmutableList.Builder<ConversationChannelWrapper> list = new ImmutableList.Builder<>();
+            ParceledListSlice<ConversationChannelWrapper> parceledList = mInm.getConversations(
+                    onlyImportant);
+            if (parceledList != null) {
+                for (ConversationChannelWrapper conversation : parceledList.getList()) {
+                    if (!conversation.getNotificationChannel().isDemoted()) {
+                        list.add(conversation);
+                    }
+                }
+            }
+            return list.build();
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return ImmutableList.of();
+        }
+    }
+
+    record Contact(long id, @Nullable String displayName, @Nullable Uri photoUri) { }
+
+    ImmutableList<Contact> getAllContacts() {
+        try (Cursor cursor = queryAllContactsData()) {
+            return getContactsFromCursor(cursor);
+        }
+    }
+
+    ImmutableList<Contact> getStarredContacts() {
+        try (Cursor cursor = queryStarredContactsData()) {
+            return getContactsFromCursor(cursor);
+        }
+    }
+
+    private ImmutableList<Contact> getContactsFromCursor(Cursor cursor) {
+        ImmutableList.Builder<Contact> list = new ImmutableList.Builder<>();
+        if (cursor != null && cursor.moveToFirst()) {
+            do {
+                long id = cursor.getLong(0);
+                String name = Strings.emptyToNull(cursor.getString(1));
+                String photoUriStr = cursor.getString(2);
+                Uri photoUri = !Strings.isNullOrEmpty(photoUriStr) ? Uri.parse(photoUriStr) : null;
+                list.add(new Contact(id, name, photoUri));
+            } while (cursor.moveToNext());
+        }
+        return list.build();
+    }
+
+    int getAllContactsCount() {
+        try (Cursor cursor = queryAllContactsData()) {
+            return cursor != null ? cursor.getCount() : 0;
+        }
+    }
+
+    private static final String[] CONTACTS_PROJECTION = new String[] {
+            ContactsContract.Contacts._ID,
+            ContactsContract.Contacts.DISPLAY_NAME_PRIMARY,
+            ContactsContract.Contacts.PHOTO_THUMBNAIL_URI
+    };
+
+    private Cursor queryStarredContactsData() {
+        return mContext.getContentResolver().query(
+                ContactsContract.Contacts.CONTENT_URI,
+                CONTACTS_PROJECTION,
+                /* selection= */ ContactsContract.Data.STARRED + "=1", /* selectionArgs= */ null,
+                /* sortOrder= */ ContactsContract.Contacts.DISPLAY_NAME_PRIMARY);
+    }
+
+    private Cursor queryAllContactsData() {
+        return mContext.getContentResolver().query(
+                ContactsContract.Contacts.CONTENT_URI,
+                CONTACTS_PROJECTION,
+                /* selection= */ null, /* selectionArgs= */ null,
+                /* sortOrder= */ ContactsContract.Contacts.DISPLAY_NAME_PRIMARY);
+    }
+
+    @NonNull
+    Drawable getContactPhoto(Contact contact) {
+        if (contact.photoUri != null) {
+            try (InputStream is = mContext.getContentResolver().openInputStream(contact.photoUri)) {
+                if (is != null) {
+                    RoundedBitmapDrawable rbd = RoundedBitmapDrawableFactory.create(
+                            mContext.getResources(), is);
+                    if (rbd != null && rbd.getBitmap() != null) {
+                        rbd.setCircular(true);
+                        return rbd;
+                    }
+                }
+            } catch (IOException e) {
+                Log.w(TAG, "Couldn't load photo for " + contact, e);
+            }
+        }
+
+        // Fall back to a monogram if no picture.
+        return IconUtil.makeContactMonogram(mContext, contact.displayName);
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenMode.java b/src/com/android/settings/notification/modes/ZenMode.java
deleted file mode 100644
index cbe915b..0000000
--- a/src/com/android/settings/notification/modes/ZenMode.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * 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.modes;
-
-import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
-import static java.util.Objects.requireNonNull;
-
-import android.annotation.SuppressLint;
-import android.app.AutomaticZenRule;
-import android.app.NotificationManager;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.service.notification.ZenDeviceEffects;
-import android.service.notification.ZenPolicy;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-
-import java.util.Objects;
-
-/**
- * Represents either an {@link AutomaticZenRule} or the manual DND rule in a unified way.
- *
- * <p>It also adapts other rule features that we don't want to expose in the UI, such as
- * interruption filters other than {@code PRIORITY}, rules without specific icons, etc.
- */
-class ZenMode {
-
-    private static final String TAG = "ZenMode";
-
-    /**
-     * Additional value for the {@code @ZenPolicy.ChannelType} enumeration that indicates that all
-     * channels can bypass DND when this policy is active.
-     *
-     * <p>This value shouldn't be used on "real" ZenPolicy objects sent to or returned from
-     * {@link android.app.NotificationManager}; it's a way of representing rules with interruption
-     * filter = {@link NotificationManager#INTERRUPTION_FILTER_ALL} in the UI.
-     */
-    public static final int CHANNEL_POLICY_ALL = -1;
-
-    static final String MANUAL_DND_MODE_ID = "manual_dnd";
-
-    @SuppressLint("WrongConstant")
-    private static final ZenPolicy POLICY_INTERRUPTION_FILTER_ALL =
-            new ZenPolicy.Builder()
-                    .allowChannels(CHANNEL_POLICY_ALL)
-                    .allowAllSounds()
-                    .showAllVisualEffects()
-                    .build();
-
-    // Must match com.android.server.notification.ZenModeHelper#applyCustomPolicy.
-    private static final ZenPolicy POLICY_INTERRUPTION_FILTER_ALARMS =
-            new ZenPolicy.Builder()
-                    .disallowAllSounds()
-                    .allowAlarms(true)
-                    .allowMedia(true)
-                    .allowPriorityChannels(false)
-                    .build();
-
-    // Must match com.android.server.notification.ZenModeHelper#applyCustomPolicy.
-    private static final ZenPolicy POLICY_INTERRUPTION_FILTER_NONE =
-            new ZenPolicy.Builder()
-                    .disallowAllSounds()
-                    .hideAllVisualEffects()
-                    .allowPriorityChannels(false)
-                    .build();
-
-    private final String mId;
-    private AutomaticZenRule mRule;
-    private final boolean mIsActive;
-    private final boolean mIsManualDnd;
-
-    ZenMode(String id, AutomaticZenRule rule, boolean isActive) {
-        this(id, rule, isActive, false);
-    }
-
-    private ZenMode(String id, AutomaticZenRule rule, boolean isActive, boolean isManualDnd) {
-        mId = id;
-        mRule = rule;
-        mIsActive = isActive;
-        mIsManualDnd = isManualDnd;
-    }
-
-    static ZenMode manualDndMode(AutomaticZenRule manualRule, boolean isActive) {
-        return new ZenMode(MANUAL_DND_MODE_ID, manualRule, isActive, true);
-    }
-
-    @NonNull
-    public String getId() {
-        return mId;
-    }
-
-    @NonNull
-    public AutomaticZenRule getRule() {
-        return mRule;
-    }
-
-    @NonNull
-    public ListenableFuture<Drawable> getIcon(@NonNull Context context,
-            @NonNull IconLoader iconLoader) {
-        if (mIsManualDnd) {
-            return Futures.immediateFuture(requireNonNull(
-                    context.getDrawable(R.drawable.ic_do_not_disturb_on_24dp)));
-        }
-
-        return iconLoader.getIcon(context, mRule);
-    }
-
-    @NonNull
-    public ZenPolicy getPolicy() {
-        switch (mRule.getInterruptionFilter()) {
-            case INTERRUPTION_FILTER_PRIORITY:
-                return requireNonNull(mRule.getZenPolicy());
-
-            case NotificationManager.INTERRUPTION_FILTER_ALL:
-                return POLICY_INTERRUPTION_FILTER_ALL;
-
-            case NotificationManager.INTERRUPTION_FILTER_ALARMS:
-                return POLICY_INTERRUPTION_FILTER_ALARMS;
-
-            case NotificationManager.INTERRUPTION_FILTER_NONE:
-                return POLICY_INTERRUPTION_FILTER_NONE;
-
-            case NotificationManager.INTERRUPTION_FILTER_UNKNOWN:
-            default:
-                Log.wtf(TAG, "Rule " + mId + " with unexpected interruptionFilter "
-                        + mRule.getInterruptionFilter());
-                return requireNonNull(mRule.getZenPolicy());
-        }
-    }
-
-    /**
-     * Updates the {@link ZenPolicy} of the associated {@link AutomaticZenRule} based on the
-     * supplied policy. In some cases this involves conversions, so that the following call
-     * to {@link #getPolicy} might return a different policy from the one supplied here.
-     */
-    @SuppressLint("WrongConstant")
-    public void setPolicy(@NonNull ZenPolicy policy) {
-        ZenPolicy currentPolicy = getPolicy();
-        if (currentPolicy.equals(policy)) {
-            return;
-        }
-
-        // A policy with CHANNEL_POLICY_ALL is only a UI representation of the
-        // INTERRUPTION_FILTER_ALL filter. Thus, switching to or away to this value only updates
-        // the filter, discarding the rest of the supplied policy.
-        if (policy.getAllowedChannels() == CHANNEL_POLICY_ALL
-                && currentPolicy.getAllowedChannels() != CHANNEL_POLICY_ALL) {
-            if (mIsManualDnd) {
-                throw new IllegalArgumentException("Manual DND cannot have CHANNEL_POLICY_ALL");
-            }
-            mRule.setInterruptionFilter(INTERRUPTION_FILTER_ALL);
-            // Preserve the existing policy, e.g. if the user goes PRIORITY -> ALL -> PRIORITY that
-            // shouldn't discard all other policy customizations. The existing policy will be a
-            // synthetic one if the rule originally had filter NONE or ALARMS_ONLY and that's fine.
-            if (mRule.getZenPolicy() == null) {
-                mRule.setZenPolicy(currentPolicy);
-            }
-            return;
-        } else if (policy.getAllowedChannels() != CHANNEL_POLICY_ALL
-                && currentPolicy.getAllowedChannels() == CHANNEL_POLICY_ALL) {
-            mRule.setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY);
-            // Go back to whatever policy the rule had before, unless the rule never had one, in
-            // which case we use the supplied policy (which we know has a valid allowedChannels).
-            if (mRule.getZenPolicy() == null) {
-                mRule.setZenPolicy(policy);
-            }
-            return;
-        }
-
-        // If policy is customized from any of the "special" ones, make the rule PRIORITY.
-        if (mRule.getInterruptionFilter() != INTERRUPTION_FILTER_PRIORITY) {
-            mRule.setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY);
-        }
-        mRule.setZenPolicy(policy);
-    }
-
-    @NonNull
-    public ZenDeviceEffects getDeviceEffects() {
-        return mRule.getDeviceEffects() != null
-                ? mRule.getDeviceEffects()
-                : new ZenDeviceEffects.Builder().build();
-    }
-
-    public boolean canEditName() {
-        return !isManualDnd();
-    }
-
-    public boolean canEditIcon() {
-        return !isManualDnd();
-    }
-
-    public boolean canBeDeleted() {
-        return !mIsManualDnd;
-    }
-
-    public boolean isManualDnd() {
-        return mIsManualDnd;
-    }
-
-    public boolean isActive() {
-        return mIsActive;
-    }
-
-    @Override
-    public boolean equals(@Nullable Object obj) {
-        return obj instanceof ZenMode other
-                && mId.equals(other.mId)
-                && mRule.equals(other.mRule)
-                && mIsActive == other.mIsActive;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(mId, mRule, mIsActive);
-    }
-
-    @Override
-    public String toString() {
-        return mId + "(" + (mIsActive ? "active" : "inactive") + ") -> " + mRule;
-    }
-}
diff --git a/src/com/android/settings/notification/modes/ZenModeActionsPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeActionsPreferenceController.java
deleted file mode 100644
index 8585234..0000000
--- a/src/com/android/settings/notification/modes/ZenModeActionsPreferenceController.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.modes;
-
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
-
-import android.content.Context;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settingslib.widget.ActionButtonsPreference;
-
-class ZenModeActionsPreferenceController extends AbstractZenModePreferenceController {
-
-    ZenModeActionsPreferenceController(@NonNull Context context, @NonNull String key,
-            @Nullable ZenModesBackend backend) {
-        super(context, key, backend);
-    }
-
-    @Override
-    void updateState(Preference preference, @NonNull ZenMode zenMode) {
-        ActionButtonsPreference buttonsPreference = (ActionButtonsPreference) preference;
-
-        // TODO: b/346278854 - Add rename action (with setButton1Enabled(zenMode.canEditName())
-        buttonsPreference.setButton1Text(R.string.zen_mode_action_change_name);
-        buttonsPreference.setButton1Icon(R.drawable.ic_mode_edit);
-        buttonsPreference.setButton1Enabled(false);
-
-        buttonsPreference.setButton2Text(R.string.zen_mode_action_change_icon);
-        buttonsPreference.setButton2Icon(R.drawable.ic_zen_mode_action_change_icon);
-        buttonsPreference.setButton2Enabled(zenMode.canEditIcon());
-        buttonsPreference.setButton2OnClickListener(v -> {
-            Bundle bundle = new Bundle();
-            bundle.putString(MODE_ID, zenMode.getId());
-            new SubSettingLauncher(mContext)
-                    .setDestination(ZenModeIconPickerFragment.class.getName())
-                    // TODO: b/332937635 - Update metrics category
-                    .setSourceMetricsCategory(0)
-                    .setArguments(bundle)
-                    .launch();
-        });
-    }
-}
diff --git a/src/com/android/settings/notification/modes/ZenModeAppsFragment.java b/src/com/android/settings/notification/modes/ZenModeAppsFragment.java
index 73329a2..ec72c83 100644
--- a/src/com/android/settings/notification/modes/ZenModeAppsFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeAppsFragment.java
@@ -37,10 +37,6 @@
                 context, ZenModeAppsPreferenceController.KEY_PRIORITY, mBackend));
         controllers.add(new ZenModeAppsPreferenceController(
                 context, ZenModeAppsPreferenceController.KEY_NONE, mBackend));
-        // TODO: b/308819928 - The manual DND mode cannot have the ALL type;
-        // unify the controllers into one and only create a preference if isManualDnd is false.
-        controllers.add(new ZenModeAppsPreferenceController(
-                context, ZenModeAppsPreferenceController.KEY_ALL, mBackend));
         return controllers;
     }
 
@@ -51,7 +47,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
-        return SettingsEnums.NOTIFICATION_ZEN_MODE_PRIORITY;
+        return SettingsEnums.NOTIFICATION_ZEN_MODE_OVERRIDING_APPS;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
index 581fff5..7b17f0c 100644
--- a/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceController.java
@@ -16,27 +16,42 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
 
+import android.app.Application;
+import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.util.ArraySet;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.service.notification.ZenPolicy;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
-import androidx.core.text.BidiFormatter;
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.notification.NotificationBackend;
+import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.base.Equivalence;
+import com.google.common.collect.HashMultimap;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Multimap;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.Comparator;
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.Objects;
+import java.util.function.Function;
 
 /**
  * Preference with a link and summary about what apps can break through the mode
@@ -46,36 +61,73 @@
     private static final String TAG = "ZenModeAppsLinkPreferenceController";
 
     private final ZenModeSummaryHelper mSummaryHelper;
+    private final ApplicationsState mApplicationsState;
+    private final UserManager mUserManager;
     private ApplicationsState.Session mAppSession;
-    private NotificationBackend mNotificationBackend = new NotificationBackend();
+    private final ZenHelperBackend mHelperBackend;
     private ZenMode mZenMode;
-    private Preference mPreference;
+    private CircularIconsPreference mPreference;
+    private final Fragment mHost;
+    private final Function<ApplicationInfo, Drawable> mAppIconRetriever;
 
     ZenModeAppsLinkPreferenceController(Context context, String key, Fragment host,
-            ApplicationsState applicationsState, ZenModesBackend backend) {
+            ZenModesBackend backend, ZenHelperBackend helperBackend) {
+        this(context, key, host,
+                ApplicationsState.getInstance((Application) context.getApplicationContext()),
+                backend, helperBackend, appInfo -> Utils.getBadgedIcon(context, appInfo));
+    }
+
+    @VisibleForTesting
+    ZenModeAppsLinkPreferenceController(Context context, String key, Fragment host,
+            ApplicationsState applicationsState, ZenModesBackend backend,
+            ZenHelperBackend helperBackend, Function<ApplicationInfo, Drawable> appIconRetriever) {
         super(context, key, backend);
-        mSummaryHelper = new ZenModeSummaryHelper(mContext, mBackend);
-        if (applicationsState != null && host != null) {
-            mAppSession = applicationsState.newSession(mAppSessionCallbacks, host.getLifecycle());
-        }
+        mSummaryHelper = new ZenModeSummaryHelper(mContext, helperBackend);
+        mHelperBackend = helperBackend;
+        mApplicationsState = applicationsState;
+        mUserManager = context.getSystemService(UserManager.class);
+        mHost = host;
+        mAppIconRetriever = appIconRetriever;
+    }
+
+    @Override
+    public boolean isAvailable(ZenMode zenMode) {
+        return zenMode.getRule().getInterruptionFilter() != INTERRUPTION_FILTER_ALL;
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
         Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-        // TODO(b/332937635): Update metrics category
-        preference.setIntent(new SubSettingLauncher(mContext)
-                .setDestination(ZenModeAppsFragment.class.getName())
-                .setSourceMetricsCategory(0)
-                .setArguments(bundle)
-                .toIntent());
+        bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
+        preference.setIntent(
+                ZenSubSettingLauncher.forModeFragment(mContext, ZenModeAppsFragment.class,
+                        zenMode.getId(), SettingsEnums.ZEN_PRIORITY_MODE).toIntent());
+        preference.setEnabled(zenMode.isEnabled());
+
         mZenMode = zenMode;
-        mPreference = preference;
-        triggerUpdateAppsBypassingDndSummaryText();
+        mPreference = (CircularIconsPreference) preference;
+
+        if (zenMode.getPolicy().getAllowedChannels() == ZenPolicy.CHANNEL_POLICY_NONE) {
+            mPreference.setSummary(R.string.zen_mode_apps_none_apps);
+            mPreference.setIcons(CircularIconSet.EMPTY);
+            if (mAppSession != null) {
+                mAppSession.deactivateSession();
+            }
+        } else {
+            if (TextUtils.isEmpty(mPreference.getSummary())) {
+                mPreference.setSummary(R.string.zen_mode_apps_calculating);
+            }
+            if (mAppSession == null) {
+                mAppSession = mApplicationsState.newSession(mAppSessionCallbacks,
+                        mHost.getLifecycle());
+            } else {
+                mAppSession.activateSession();
+            }
+            triggerUpdateAppsBypassingDnd();
+        }
     }
 
-    private void triggerUpdateAppsBypassingDndSummaryText() {
+    private void triggerUpdateAppsBypassingDnd() {
         if (mAppSession == null) {
             return;
         }
@@ -90,64 +142,88 @@
         mAppSession.rebuild(filter, ApplicationsState.ALPHA_COMPARATOR, false);
     }
 
-    private void updateAppsBypassingDndSummaryText(List<ApplicationsState.AppEntry> apps) {
-        Set<String> appNames = getAppsBypassingDnd(apps);
-        mPreference.setSummary(mSummaryHelper.getAppsSummary(mZenMode, appNames));
+    private void displayAppsBypassingDnd(List<AppEntry> allApps) {
+        if (mZenMode.getPolicy().getAllowedChannels() == ZenPolicy.CHANNEL_POLICY_NONE) {
+            // Can get this callback when resuming, if we had CHANNEL_POLICY_PRIORITY and just
+            // switched to CHANNEL_POLICY_NONE.
+            return;
+        }
+
+        ImmutableList<AppEntry> apps = getAppsBypassingDndSortedByName(allApps);
+        mPreference.setSummary(mSummaryHelper.getAppsSummary(mZenMode, apps));
+        mPreference.setIcons(new CircularIconSet<>(apps,
+                app -> mAppIconRetriever.apply(app.info)),
+                APP_ENTRY_EQUIVALENCE);
     }
 
     @VisibleForTesting
-    ArraySet<String> getAppsBypassingDnd(@NonNull List<ApplicationsState.AppEntry> apps) {
-        ArraySet<String> appsBypassingDnd = new ArraySet<>();
+    ImmutableList<AppEntry> getAppsBypassingDndSortedByName(@NonNull List<AppEntry> allApps) {
+        Multimap<Integer, String> packagesBypassingDnd = HashMultimap.create();
+        for (UserHandle userHandle : mUserManager.getUserProfiles()) {
+            packagesBypassingDnd.putAll(userHandle.getIdentifier(),
+                    mHelperBackend.getPackagesBypassingDnd(userHandle.getIdentifier(),
+                            /* includeConversationChannels= */ false));
+        }
 
-        Map<String, String> pkgLabelMap = new HashMap<String, String>();
-        for (ApplicationsState.AppEntry entry : apps) {
-            if (entry.info != null) {
-                pkgLabelMap.put(entry.info.packageName, entry.label);
-            }
-        }
-        for (String pkg : mNotificationBackend.getPackagesBypassingDnd(mContext.getUserId(),
-                /* includeConversationChannels= */ false)) {
-            // Settings may hide some packages from the user, so if they're not present here
-            // we skip displaying them, even if they bypass dnd.
-            if (pkgLabelMap.get(pkg) == null) {
-                continue;
-            }
-            appsBypassingDnd.add(BidiFormatter.getInstance().unicodeWrap(pkgLabelMap.get(pkg)));
-        }
-        return appsBypassingDnd;
+        return ImmutableList.copyOf(
+                allApps.stream()
+                        .filter(app -> packagesBypassingDnd.containsEntry(
+                                UserHandle.getUserId(app.info.uid), app.info.packageName))
+                        .sorted(Comparator.comparing((AppEntry app) -> app.label)
+                                .thenComparing(app -> UserHandle.getUserId(app.info.uid)))
+                        .toList());
     }
 
-    @VisibleForTesting final ApplicationsState.Callbacks mAppSessionCallbacks =
+    private static final Equivalence<AppEntry> APP_ENTRY_EQUIVALENCE = new Equivalence<>() {
+        @Override
+        protected boolean doEquivalent(@NonNull AppEntry a, @NonNull AppEntry b) {
+            return a.info.uid == b.info.uid
+                    && Objects.equals(a.info.packageName, b.info.packageName);
+        }
+
+        @Override
+        protected int doHash(@NonNull AppEntry entry) {
+            return Objects.hash(entry.info.uid, entry.info.packageName);
+        }
+    };
+
+    @VisibleForTesting
+    final ApplicationsState.Callbacks mAppSessionCallbacks =
             new ApplicationsState.Callbacks() {
 
                 @Override
-                public void onRunningStateChanged(boolean running) { }
+                public void onRunningStateChanged(boolean running) {
+                }
 
                 @Override
                 public void onPackageListChanged() {
-                    triggerUpdateAppsBypassingDndSummaryText();
+                    triggerUpdateAppsBypassingDnd();
                 }
 
                 @Override
                 public void onRebuildComplete(ArrayList<ApplicationsState.AppEntry> apps) {
-                    updateAppsBypassingDndSummaryText(apps);
+                    displayAppsBypassingDnd(apps);
                 }
 
                 @Override
-                public void onPackageIconChanged() { }
+                public void onPackageIconChanged() {
+                }
 
                 @Override
-                public void onPackageSizeChanged(String packageName) { }
+                public void onPackageSizeChanged(String packageName) {
+                }
 
                 @Override
-                public void onAllSizesComputed() { }
+                public void onAllSizesComputed() {
+                }
 
                 @Override
-                public void onLauncherInfoChanged() { }
+                public void onLauncherInfoChanged() {
+                }
 
                 @Override
                 public void onLoadEntriesCompleted() {
-                    triggerUpdateAppsBypassingDndSummaryText();
+                    triggerUpdateAppsBypassingDnd();
                 }
             };
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeAppsPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeAppsPreferenceController.java
index 704bce0..c44661a 100644
--- a/src/com/android/settings/notification/modes/ZenModeAppsPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeAppsPreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -24,13 +24,14 @@
 import android.service.notification.ZenPolicy;
 
 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.core.SubSettingLauncher;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 public class ZenModeAppsPreferenceController extends
@@ -38,13 +39,11 @@
 
     static final String KEY_PRIORITY = "zen_mode_apps_priority";
     static final String KEY_NONE = "zen_mode_apps_none";
-    static final String KEY_ALL = "zen_mode_apps_all";
 
     String mModeId;
 
-
     public ZenModeAppsPreferenceController(@NonNull Context context,
-            @NonNull String key, @Nullable ZenModesBackend backend) {
+            @NonNull String key, @NonNull ZenModesBackend backend) {
         super(context, key, backend);
     }
 
@@ -79,13 +78,6 @@
                         == ZenPolicy.CHANNEL_POLICY_NONE;
                 pref.setChecked(policy_none);
                 break;
-            case KEY_ALL:
-                // A UI-only setting; the underlying policy never actually has this value,
-                // but ZenMode acts as though it does for the sake of UI consistency.
-                boolean policy_all = zenMode.getPolicy().getAllowedChannels()
-                        == ZenMode.CHANNEL_POLICY_ALL;
-                pref.setChecked(policy_all);
-                break;
         }
     }
 
@@ -96,8 +88,6 @@
                 return savePolicy(p -> p.allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY));
             case KEY_NONE:
                 return savePolicy(p -> p.allowChannels(ZenPolicy.CHANNEL_POLICY_NONE));
-            case KEY_ALL:
-                return savePolicy(p -> p.allowChannels(ZenMode.CHANNEL_POLICY_ALL));
         }
         return true;
     }
@@ -114,12 +104,11 @@
     private void launchPrioritySettings() {
         Bundle bundle = new Bundle();
         if (mModeId != null) {
-            bundle.putString(MODE_ID, mModeId);
+            bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, mModeId);
         }
-        // TODO(b/332937635): Update metrics category
         new SubSettingLauncher(mContext)
                 .setDestination(ZenModeSelectBypassingAppsFragment.class.getName())
-                .setSourceMetricsCategory(SettingsEnums.SETTINGS_ZEN_NOTIFICATIONS)
+                .setSourceMetricsCategory(SettingsEnums.NOTIFICATION_ZEN_MODE_OVERRIDING_APPS)
                 .setArguments(bundle)
                 .launch();
     }
diff --git a/src/com/android/settings/notification/modes/ZenModeBlurbPreference.java b/src/com/android/settings/notification/modes/ZenModeBlurbPreference.java
new file mode 100644
index 0000000..5850ae6
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeBlurbPreference.java
@@ -0,0 +1,60 @@
+/*
+ * 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.modes;
+
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settingslib.widget.TopIntroPreference;
+
+public class ZenModeBlurbPreference extends TopIntroPreference {
+
+    public ZenModeBlurbPreference(Context context) {
+        super(context);
+    }
+
+    public ZenModeBlurbPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        if (holder.findViewById(android.R.id.title) instanceof TextView textView) {
+            textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+                    getContext().getResources().getDimensionPixelSize(
+                            R.dimen.zen_mode_blurb_text_size));
+
+            textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
+
+            ViewGroup.LayoutParams layoutParams = textView.getLayoutParams();
+            if (layoutParams.width != MATCH_PARENT) {
+                layoutParams.width = MATCH_PARENT;
+                textView.setLayoutParams(layoutParams);
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeBlurbPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeBlurbPreferenceController.java
new file mode 100644
index 0000000..097b40d
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeBlurbPreferenceController.java
@@ -0,0 +1,68 @@
+/*
+ * 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.modes;
+
+import static android.app.AutomaticZenRule.TYPE_BEDTIME;
+import static android.app.AutomaticZenRule.TYPE_DRIVING;
+import static android.app.AutomaticZenRule.TYPE_IMMERSIVE;
+import static android.app.AutomaticZenRule.TYPE_MANAGED;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.app.AutomaticZenRule.TYPE_THEATER;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+
+class ZenModeBlurbPreferenceController extends AbstractZenModePreferenceController {
+
+    ZenModeBlurbPreferenceController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+    }
+
+    @Override
+    void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        preference.setTitle(getModeBlurb(zenMode));
+    }
+
+    @StringRes
+    @SuppressLint("SwitchIntDef")
+    private static int getModeBlurb(ZenMode mode) {
+        if (mode.isSystemOwned()) {
+            return switch (mode.getType()) {
+                case TYPE_SCHEDULE_TIME -> R.string.zen_mode_blurb_schedule_time;
+                case TYPE_SCHEDULE_CALENDAR -> R.string.zen_mode_blurb_schedule_calendar;
+                default -> R.string.zen_mode_blurb_generic; // Custom Manual
+            };
+        } else {
+            return switch (mode.getType()) {
+                case TYPE_BEDTIME -> R.string.zen_mode_blurb_bedtime;
+                case TYPE_DRIVING -> R.string.zen_mode_blurb_driving;
+                case TYPE_IMMERSIVE -> R.string.zen_mode_blurb_immersive;
+                case TYPE_THEATER -> R.string.zen_mode_blurb_theater;
+                case TYPE_MANAGED -> R.string.zen_mode_blurb_managed;
+                default -> R.string.zen_mode_blurb_generic; // Including OTHER, UNKNOWN.
+            };
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
index 1846dfc..bb9d23c 100644
--- a/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeButtonPreferenceController.java
@@ -16,26 +16,42 @@
 
 package com.android.settings.notification.modes;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 import android.annotation.NonNull;
 import android.content.Context;
+import android.provider.Settings;
 import android.widget.Button;
 
+import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
+import com.android.settings.notification.SettingsEnableZenModeDialog;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.widget.LayoutPreference;
 
-public class ZenModeButtonPreferenceController extends AbstractZenModePreferenceController {
+import java.time.Duration;
+
+class ZenModeButtonPreferenceController extends AbstractZenModePreferenceController {
+    private static final String TAG = "ZenModeButtonPrefController";
 
     private Button mZenButton;
+    private final Fragment mParent;
+    private final ManualDurationHelper mDurationHelper;
 
-    public ZenModeButtonPreferenceController(Context context, String key, ZenModesBackend backend) {
+    ZenModeButtonPreferenceController(Context context, String key, Fragment parent,
+            ZenModesBackend backend) {
         super(context, key, backend);
+        mParent = parent;
+        mDurationHelper = new ManualDurationHelper(context);
     }
 
     @Override
     public boolean isAvailable(ZenMode zenMode) {
-        return zenMode.getRule().isManualInvocationAllowed() && zenMode.getRule().isEnabled();
+        return zenMode.isEnabled()
+                && (zenMode.isActive() || zenMode.getRule().isManualInvocationAllowed());
     }
 
     @Override
@@ -44,16 +60,33 @@
             mZenButton = ((LayoutPreference) preference).findViewById(R.id.activate_mode);
         }
         mZenButton.setOnClickListener(v -> {
+            checkNotNull(mBackend, "Backend not available!");
             if (zenMode.isActive()) {
                 mBackend.deactivateMode(zenMode);
             } else {
-                mBackend.activateMode(zenMode, null);
+                if (zenMode.isManualDnd()) {
+                    // if manual DND, potentially ask for or use desired duration
+                    int zenDuration = mDurationHelper.getZenDuration();
+                    switch (zenDuration) {
+                        case Settings.Secure.ZEN_DURATION_PROMPT:
+                            new SettingsEnableZenModeDialog().show(
+                                    mParent.getParentFragmentManager(), TAG);
+                            break;
+                        case Settings.Secure.ZEN_DURATION_FOREVER:
+                            mBackend.activateMode(zenMode, null);
+                            break;
+                        default:
+                            mBackend.activateMode(zenMode, Duration.ofMinutes(zenDuration));
+                    }
+                } else {
+                    mBackend.activateMode(zenMode, null);
+                }
             }
         });
         if (zenMode.isActive()) {
-            mZenButton.setText(R.string.zen_mode_button_turn_off);
+            mZenButton.setText(R.string.zen_mode_action_deactivate);
         } else {
-            mZenButton.setText(R.string.zen_mode_button_turn_on);
+            mZenButton.setText(R.string.zen_mode_action_activate);
         }
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeCallsFragment.java b/src/com/android/settings/notification/modes/ZenModeCallsFragment.java
index 4c85bf5..ac05328 100644
--- a/src/com/android/settings/notification/modes/ZenModeCallsFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeCallsFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+
 import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -34,7 +35,7 @@
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new ZenModePrioritySendersPreferenceController(context,
-                "zen_mode_settings_category_calls", false, mBackend));
+                "zen_mode_settings_category_calls", false, mBackend, mHelperBackend));
         controllers.add(new ZenModeRepeatCallersPreferenceController(context,
                 "zen_mode_repeat_callers", mBackend,
                 context.getResources().getInteger(com.android.internal.R.integer
@@ -49,7 +50,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
         return SettingsEnums.DND_CALLS;
     }
 
diff --git a/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceController.java
index 746af44..efddcf9 100644
--- a/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceController.java
@@ -16,8 +16,9 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
 
@@ -25,25 +26,25 @@
 import androidx.preference.Preference;
 
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.notification.modes.ZenMode;
 
 class ZenModeCallsLinkPreferenceController extends AbstractZenModePreferenceController  {
 
     private final ZenModeSummaryHelper mSummaryHelper;
 
     public ZenModeCallsLinkPreferenceController(Context context, String key,
-            ZenModesBackend backend) {
-        super(context, key, backend);
-        mSummaryHelper = new ZenModeSummaryHelper(context, backend);
+            ZenHelperBackend helperBackend) {
+        super(context, key);
+        mSummaryHelper = new ZenModeSummaryHelper(context, helperBackend);
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
         Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-        // TODO(b/332937635): Update metrics category
+        bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
         preference.setIntent(new SubSettingLauncher(mContext)
                 .setDestination(ZenModeCallsFragment.class.getName())
-                .setSourceMetricsCategory(0)
+                .setSourceMetricsCategory(SettingsEnums.DND_PEOPLE)
                 .setArguments(bundle)
                 .toIntent());
         preference.setSummary(mSummaryHelper.getCallsSettingSummary(zenMode));
diff --git a/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java
index bca7b55..b0d3952 100644
--- a/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceController.java
@@ -23,7 +23,10 @@
 import androidx.preference.Preference;
 import androidx.preference.TwoStatePreference;
 
-public class ZenModeDisplayEffectPreferenceController extends AbstractZenModePreferenceController
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+class ZenModeDisplayEffectPreferenceController extends AbstractZenModePreferenceController
         implements Preference.OnPreferenceChangeListener {
 
     public ZenModeDisplayEffectPreferenceController(Context context, String key,
@@ -34,24 +37,20 @@
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
         TwoStatePreference pref = (TwoStatePreference) preference;
-        ZenDeviceEffects effects =  zenMode.getRule().getDeviceEffects();
-        if (effects == null) {
-            pref.setChecked(false);
-        } else {
-            switch (getPreferenceKey()) {
-                case "effect_greyscale":
-                    pref.setChecked(effects.shouldDisplayGrayscale());
-                    break;
-                case "effect_aod":
-                    pref.setChecked(effects.shouldSuppressAmbientDisplay());
-                    break;
-                case "effect_wallpaper":
-                    pref.setChecked(effects.shouldDimWallpaper());
-                    break;
-                case "effect_dark_theme":
-                    pref.setChecked(effects.shouldUseNightMode());
-                    break;
-            }
+        ZenDeviceEffects effects =  zenMode.getDeviceEffects();
+        switch (getPreferenceKey()) {
+            case "effect_greyscale":
+                pref.setChecked(effects.shouldDisplayGrayscale());
+                break;
+            case "effect_aod":
+                pref.setChecked(effects.shouldSuppressAmbientDisplay());
+                break;
+            case "effect_wallpaper":
+                pref.setChecked(effects.shouldDimWallpaper());
+                break;
+            case "effect_dark_theme":
+                pref.setChecked(effects.shouldUseNightMode());
+                break;
         }
     }
 
diff --git a/src/com/android/settings/notification/modes/ZenModeDisplayFragment.java b/src/com/android/settings/notification/modes/ZenModeDisplayFragment.java
index 0972049..74ed38f 100644
--- a/src/com/android/settings/notification/modes/ZenModeDisplayFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeDisplayFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+
 import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -34,7 +35,7 @@
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         List<AbstractPreferenceController> prefControllers = new ArrayList<>();
         prefControllers.add(new ZenModeNotifVisLinkPreferenceController(
-                context, "notification_visibility", mBackend));
+                context, "notification_visibility", mHelperBackend));
         prefControllers.add(new ZenModeDisplayEffectPreferenceController(
                 context, "effect_greyscale", mBackend));
         prefControllers.add(new ZenModeDisplayEffectPreferenceController(
@@ -53,7 +54,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
-        return SettingsEnums.DND_PEOPLE;
+        return SettingsEnums.ZEN_MODE_DISPLAY_SETTINGS;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java
index 8720a4b..57dce89 100644
--- a/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceController.java
@@ -16,36 +16,36 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
 
 import androidx.annotation.NonNull;
 import androidx.preference.Preference;
 
-import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 
 class ZenModeDisplayLinkPreferenceController extends AbstractZenModePreferenceController  {
 
     private final ZenModeSummaryHelper mSummaryHelper;
 
     public ZenModeDisplayLinkPreferenceController(Context context, String key,
-            ZenModesBackend backend) {
+            ZenModesBackend backend, ZenHelperBackend helperBackend) {
         super(context, key, backend);
-        mSummaryHelper = new ZenModeSummaryHelper(context, backend);
+        mSummaryHelper = new ZenModeSummaryHelper(context, helperBackend);
     }
 
     @Override
     void updateState(Preference preference, @NonNull ZenMode zenMode) {
         Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-        // TODO(b/332937635): Update metrics category
-        preference.setIntent(new SubSettingLauncher(mContext)
-                .setDestination(ZenModeDisplayFragment.class.getName())
-                .setSourceMetricsCategory(0)
-                .setArguments(bundle)
-                .toIntent());
+        bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
+        preference.setIntent(
+                ZenSubSettingLauncher.forModeFragment(mContext, ZenModeDisplayFragment.class,
+                        zenMode.getId(), SettingsEnums.ZEN_PRIORITY_MODE).toIntent());
+        preference.setEnabled(zenMode.isEnabled());
     }
 
     @Override
diff --git a/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceController.java
new file mode 100644
index 0000000..de1adc7
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceController.java
@@ -0,0 +1,60 @@
+/*
+ * 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.modes;
+
+import android.content.Context;
+import android.widget.Button;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+class ZenModeEditDonePreferenceController extends AbstractZenModePreferenceController {
+
+    private final Runnable mConfirmSave;
+    @Nullable private Button mButton;
+
+    ZenModeEditDonePreferenceController(@NonNull Context context, @NonNull String key,
+            Runnable confirmSave) {
+        super(context, key);
+        mConfirmSave = confirmSave;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        LayoutPreference pref = screen.findPreference(getPreferenceKey());
+        if (pref != null) {
+            mButton = pref.findViewById(R.id.done);
+            if (mButton != null) {
+                mButton.setOnClickListener(v -> mConfirmSave.run());
+            }
+        }
+    }
+
+    @Override
+    void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        if (mButton != null) {
+            mButton.setEnabled(!zenMode.getName().isBlank());
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeEditNameIconFragment.java b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragment.java
new file mode 100644
index 0000000..60f7316
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragment.java
@@ -0,0 +1,82 @@
+/*
+ * 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.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+
+public class ZenModeEditNameIconFragment extends ZenModeEditNameIconFragmentBase {
+
+    @Nullable
+    @Override
+    protected ZenMode onCreateInstantiateZenMode() {
+        String modeId = getModeIdFromArguments();
+        return modeId != null ? requireBackend().getMode(modeId) : null;
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        requireActivity().setTitle(R.string.zen_mode_rename_title);
+    }
+
+    @Override
+    void saveMode(ZenMode mode) {
+        String modeId = getModeIdFromArguments();
+        ZenMode modeToUpdate = modeId != null ? requireBackend().getMode(modeId) : null;
+        if (modeToUpdate == null) {
+            // Huh, maybe it was deleted while we were choosing the icon? Unusual...
+            Log.w(getLogTag(), "Couldn't fetch mode with id " + modeId
+                    + " from the backend for saving. Discarding changes!");
+            finish();
+            return;
+        }
+
+        modeToUpdate.getRule().setName(mode.getRule().getName());
+        modeToUpdate.getRule().setIconResId(mode.getRule().getIconResId());
+        requireBackend().updateMode(modeToUpdate);
+        finish();
+    }
+
+    @Nullable
+    private String getModeIdFromArguments() {
+        Bundle bundle = getArguments();
+        if (bundle != null && bundle.containsKey(EXTRA_AUTOMATIC_ZEN_RULE_ID)) {
+            return bundle.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID);
+        } else {
+            return null;
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.ZEN_MODE_EDIT_NAME_ICON;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return "ZenModeEditNameIconFragment";
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java
new file mode 100644
index 0000000..96cbf91
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentBase.java
@@ -0,0 +1,165 @@
+/*
+ * 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.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+/**
+ * Base class for the "add a mode" and "edit mode name and icon" fragments. In both cases we are
+ * editing a {@link ZenMode}, but the mode shouldn't be saved immediately after each atomic change
+ * -- instead, it will be saved to the backend upon user confirmation.
+ *
+ * <p>As a result, instead of using {@link ZenModesBackend} to apply each change, we instead modify
+ * an in-memory {@link ZenMode}, that is preserved/restored in extras. This also means we don't
+ * listen to changes -- whatever the user sees should be applied.
+ */
+public abstract class ZenModeEditNameIconFragmentBase extends DashboardFragment {
+
+    private static final String MODE_KEY = "ZenMode";
+
+    @Nullable private ZenMode mZenMode;
+
+    private ZenModesBackend mBackend;
+
+    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+    void setBackend(ZenModesBackend backend) {
+        mBackend = backend;
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        if (mBackend == null) {
+            mBackend = ZenModesBackend.getInstance(context);
+        }
+    }
+
+    @Override
+    public final void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        mZenMode = icicle != null
+                ? icicle.getParcelable(MODE_KEY, ZenMode.class)
+                : onCreateInstantiateZenMode();
+
+        if (mZenMode != null) {
+            for (var controller : getZenPreferenceControllers()) {
+                controller.setZenMode(mZenMode);
+            }
+        } else {
+            finish();
+        }
+    }
+
+    /**
+     * Provides the mode that will be edited. Called in {@link #onCreate}, the first time (the
+     * value returned here is persisted on Fragment recreation).
+     *
+     * <p>If {@code null} is returned, the fragment will {@link #finish()}.
+     */
+    @Nullable
+    protected abstract ZenMode onCreateInstantiateZenMode();
+
+    @Override
+    protected final int getPreferenceScreenResId() {
+        return R.xml.modes_edit_name_icon;
+    }
+
+    @Override
+    protected final List<AbstractPreferenceController> createPreferenceControllers(
+            Context context) {
+        return ImmutableList.of(
+                new ZenModeIconPickerIconPreferenceController(context, "chosen_icon", this),
+                new ZenModeEditNamePreferenceController(context, "name", this::setModeName),
+                new ZenModeIconPickerListPreferenceController(context, "icon_list",
+                        this::setModeIcon),
+                new ZenModeEditDonePreferenceController(context, "done", this::saveMode)
+        );
+    }
+
+    private Iterable<AbstractZenModePreferenceController> getZenPreferenceControllers() {
+        return getPreferenceControllers().stream()
+                .flatMap(List::stream)
+                .filter(AbstractZenModePreferenceController.class::isInstance)
+                .map(AbstractZenModePreferenceController.class::cast)
+                .toList();
+    }
+
+    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+    @Nullable
+    ZenMode getZenMode() {
+        return mZenMode;
+    }
+
+    @VisibleForTesting
+    final void setModeName(String name) {
+        checkNotNull(mZenMode).getRule().setName(Strings.nullToEmpty(name));
+        forceUpdatePreferences(); // Updates confirmation button.
+    }
+
+    @VisibleForTesting
+    final void setModeIcon(@DrawableRes int iconResId) {
+        checkNotNull(mZenMode).getRule().setIconResId(iconResId);
+        forceUpdatePreferences();  // Updates icon at the top.
+    }
+
+
+    @VisibleForTesting
+    final void saveMode() {
+        saveMode(checkNotNull(mZenMode));
+    }
+
+    /**
+     * Called to actually save the mode, after the user confirms. This method is also responsible
+     * for calling {@link #finish()}, if appropriate.
+     *
+     * <p>Note that {@code mode} is the <em>in-memory</em> mode and, as such, may have obsolete
+     * data. If the concrete fragment is editing an existing mode, it should first fetch it from
+     * the backend, and copy the new name and icon before saving. */
+    abstract void saveMode(ZenMode mode);
+
+    @NonNull
+    protected ZenModesBackend requireBackend() {
+        checkState(mBackend != null);
+        return mBackend;
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putParcelable(MODE_KEY, mZenMode);
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceController.java
new file mode 100644
index 0000000..78cbfe0
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceController.java
@@ -0,0 +1,87 @@
+/*
+ * 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.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import android.content.Context;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.widget.EditText;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import java.util.function.Consumer;
+
+class ZenModeEditNamePreferenceController extends AbstractZenModePreferenceController {
+
+    private final Consumer<String> mModeNameSetter;
+    @Nullable private EditText mEditText;
+    private boolean mIsSettingText;
+
+    ZenModeEditNamePreferenceController(@NonNull Context context, @NonNull String key,
+            @NonNull Consumer<String> modeNameSetter) {
+        super(context, key);
+        mModeNameSetter = modeNameSetter;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        if (mEditText == null) {
+            LayoutPreference pref = checkNotNull(screen.findPreference(getPreferenceKey()));
+            mEditText = pref.findViewById(android.R.id.edit);
+
+            mEditText.addTextChangedListener(new TextWatcher() {
+                @Override
+                public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
+
+                @Override
+                public void onTextChanged(CharSequence s, int start, int before, int count) { }
+
+                @Override
+                public void afterTextChanged(Editable s) {
+                    if (!mIsSettingText) {
+                        mModeNameSetter.accept(s.toString());
+                    }
+                }
+            });
+        }
+    }
+
+    @Override
+    void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        if (mEditText != null) {
+            mIsSettingText = true;
+            try {
+                String currentText = mEditText.getText().toString();
+                String modeName = zenMode.getName();
+                if (!modeName.equals(currentText)) {
+                    mEditText.setText(modeName);
+                }
+            } finally {
+                mIsSettingText = false;
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceController.java
index 8517af1..326bc97 100644
--- a/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceController.java
@@ -23,6 +23,9 @@
 import androidx.preference.Preference;
 import androidx.preference.TwoStatePreference;
 
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 /**
  * Preference controller controlling whether a time schedule-based mode ends at the next alarm.
  */
diff --git a/src/com/android/settings/notification/modes/ZenModeFragment.java b/src/com/android/settings/notification/modes/ZenModeFragment.java
index e4d81fe..6889cac 100644
--- a/src/com/android/settings/notification/modes/ZenModeFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeFragment.java
@@ -16,20 +16,36 @@
 
 package com.android.settings.notification.modes;
 
-import android.app.Application;
-import android.app.AutomaticZenRule;
+import static com.android.settingslib.notification.modes.ZenMode.Status.DISABLED_BY_OTHER;
+
+import android.app.AlertDialog;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+
+import androidx.activity.ComponentActivity;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.view.MenuProvider;
 
 import com.android.settings.R;
-import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.notification.modes.ZenMode;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class ZenModeFragment extends ZenModeFragmentBase {
 
+    // for mode context menu
+    private static final int RENAME_MODE = 1;
+    private static final int DELETE_MODE = 2;
+
+    private ModeMenuProvider mModeMenuProvider;
+    private boolean mSettingsObserverRegistered = false; // for ManualDurationPreferenceController
+
     @Override
     protected int getPreferenceScreenResId() {
         return R.xml.modes_rule_settings;
@@ -38,40 +54,135 @@
     @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         List<AbstractPreferenceController> prefControllers = new ArrayList<>();
-        prefControllers.add(new ZenModeHeaderController(context, "header", this, mBackend));
-        prefControllers.add(new ZenModeButtonPreferenceController(context, "activate", mBackend));
-        prefControllers.add(new ZenModeActionsPreferenceController(context, "actions", mBackend));
+        prefControllers.add(new ZenModeHeaderController(context, "header", this));
+        prefControllers.add(new ZenModeBlurbPreferenceController(context, "mode_blurb"));
+        prefControllers.add(
+                new ZenModeButtonPreferenceController(context, "activate", this, mBackend));
+        prefControllers.add(new ZenModePreferenceCategoryController(context, "modes_filters"));
         prefControllers.add(new ZenModePeopleLinkPreferenceController(
-                context, "zen_mode_people", mBackend));
+                context, "zen_mode_people", mHelperBackend));
         prefControllers.add(new ZenModeAppsLinkPreferenceController(
-                context, "zen_mode_apps", this,
-                ApplicationsState.getInstance((Application) context.getApplicationContext()),
-                mBackend));
+                context, "zen_mode_apps", this, mBackend, mHelperBackend));
         prefControllers.add(new ZenModeOtherLinkPreferenceController(
-                context, "zen_other_settings", mBackend));
+                context, "zen_other_settings", mHelperBackend));
+        prefControllers.add(
+                new ZenModePreferenceCategoryController(context, "modes_additional_actions"));
         prefControllers.add(new ZenModeDisplayLinkPreferenceController(
-                context, "mode_display_settings", mBackend));
-        prefControllers.add(new ZenModeSetTriggerLinkPreferenceController(context,
-                "zen_automatic_trigger_category", mBackend));
+                context, "mode_display_settings", mBackend, mHelperBackend));
+        prefControllers.add(new ZenModeTriggerCategoryPreferenceController(context,
+                "zen_automatic_trigger_category"));
+        prefControllers.add(new ZenModeTriggerUpdatePreferenceController(context,
+                "zen_automatic_trigger_settings", mBackend));
+        prefControllers.add(
+                new ZenModeTriggerAddPreferenceController(context, "zen_add_automatic_trigger",
+                        this, mBackend));
+        prefControllers.add(new InterruptionFilterPreferenceController(
+                context, "allow_all", mBackend));
+        prefControllers.add(new ManualDurationPreferenceController(
+                context, "mode_manual_duration", this, mBackend));
         return prefControllers;
     }
 
     @Override
     public void onStart() {
         super.onStart();
-
-        // Set title for the entire screen
         ZenMode mode = getMode();
-        AutomaticZenRule azr = getAZR();
-        if (mode == null || azr == null) {
+
+        // Consider redirecting to the interstitial if the mode is disabled (but not by the user).
+        if (maybeRedirectToInterstitial(mode)) {
             return;
         }
-        getActivity().setTitle(azr.getName());
+
+        // Set title for the entire screen
+        ComponentActivity activity = getActivity();
+        if (mode != null && activity != null) {
+            activity.setTitle(mode.getName());
+            mModeMenuProvider = new ModeMenuProvider(mode);
+            activity.addMenuProvider(mModeMenuProvider);
+        }
+
+        // allow duration preference controller to listen for settings changes
+        use(ManualDurationPreferenceController.class).registerSettingsObserver();
+        mSettingsObserverRegistered = true;
+    }
+
+    private boolean maybeRedirectToInterstitial(@Nullable ZenMode mode) {
+        if (mode == null || mode.getStatus() != DISABLED_BY_OTHER) {
+            return false;
+        }
+
+        mContext.startActivity(SetupInterstitialActivity.getIntent(mContext, mode));
+        // don't come back here from the interstitial
+        finish();
+        return true;
+    }
+
+    @Override
+    public void onStop() {
+        if (getActivity() != null && mModeMenuProvider != null) {
+            getActivity().removeMenuProvider(mModeMenuProvider);
+        }
+        if (mSettingsObserverRegistered) {
+            use(ManualDurationPreferenceController.class).unregisterSettingsObserver();
+        }
+        super.onStop();
     }
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
-        return SettingsEnums.NOTIFICATION_ZEN_MODE_AUTOMATION;
+        return SettingsEnums.ZEN_PRIORITY_MODE;
+    }
+
+    @Override
+    protected void onUpdatedZenModeState() {
+        // Because this fragment may be asked to finish by the delete menu but not be done doing
+        // so yet, ignore any attempts to update info in that case.
+        if (getActivity() != null && getActivity().isFinishing()) {
+            return;
+        }
+        super.onUpdatedZenModeState();
+    }
+
+    private class ModeMenuProvider implements MenuProvider {
+        @NonNull private final ZenMode mZenMode;
+
+        ModeMenuProvider(@NonNull ZenMode mode) {
+            mZenMode = mode;
+        }
+
+        @Override
+        public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) {
+            if (mZenMode.canEditNameAndIcon()) {
+                menu.add(Menu.NONE, RENAME_MODE, Menu.NONE, R.string.zen_mode_menu_rename_mode);
+            }
+            if (mZenMode.canBeDeleted()) {
+                // Only deleteable modes should get a delete menu option.
+                menu.add(Menu.NONE, DELETE_MODE, Menu.NONE, R.string.zen_mode_menu_delete_mode);
+            }
+        }
+
+        @Override
+        public boolean onMenuItemSelected(@NonNull MenuItem menuItem) {
+            if (menuItem.getItemId() == RENAME_MODE) {
+                ZenSubSettingLauncher.forModeFragment(mContext, ZenModeEditNameIconFragment.class,
+                        mZenMode.getId(), getMetricsCategory()).launch();
+            } else if (menuItem.getItemId() == DELETE_MODE) {
+                new AlertDialog.Builder(mContext)
+                        .setTitle(mContext.getString(R.string.zen_mode_delete_mode_confirmation,
+                                mZenMode.getRule().getName()))
+                        .setPositiveButton(R.string.zen_mode_schedule_delete,
+                                (dialog, which) -> {
+                                    // start finishing before calling removeMode() so that we
+                                    // don't try to update this activity with a nonexistent mode
+                                    // when the zen mode config is updated
+                                    finish();
+                                    mBackend.removeMode(mZenMode);
+                                })
+                        .setNegativeButton(R.string.cancel, null)
+                        .show();
+                return true;
+            }
+            return false;
+        }
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeFragmentBase.java b/src/com/android/settings/notification/modes/ZenModeFragmentBase.java
index e086524..ed3a71c 100644
--- a/src/com/android/settings/notification/modes/ZenModeFragmentBase.java
+++ b/src/com/android/settings/notification/modes/ZenModeFragmentBase.java
@@ -16,19 +16,18 @@
 
 package com.android.settings.notification.modes;
 
-import android.app.AutomaticZenRule;
-import android.content.Context;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
 import android.os.Bundle;
 import android.util.Log;
 import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
+import androidx.lifecycle.Lifecycle;
 
 import com.android.settings.R;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.notification.modes.ZenMode;
 
 import java.util.List;
 
@@ -37,116 +36,102 @@
  */
 abstract class ZenModeFragmentBase extends ZenModesFragmentBase {
     static final String TAG = "ZenModeSettings";
-    static final String MODE_ID = "MODE_ID";
 
-    @Nullable  // only until reloadMode() is called
-    private ZenMode mZenMode;
+    @Nullable private ZenMode mZenMode;
+    @Nullable private ZenMode mModeOnLastControllerUpdate;
 
     @Override
-    public void onAttach(@NonNull Context context) {
-        super.onAttach(context);
-
-        // TODO: b/322373473 - Update if modes page ends up using a different method of passing id
-        Bundle bundle = getArguments();
-        if (bundle != null && bundle.containsKey(MODE_ID)) {
-            String id = bundle.getString(MODE_ID);
-            if (!reloadMode(id)) {
-                Log.e(TAG, "Mode id " + id + " not found");
-                toastAndFinish();
-                return;
+    public void onCreate(Bundle icicle) {
+        mZenMode = loadModeFromArguments();
+        if (mZenMode != null) {
+            // Propagate mode info through to controllers. Must be done before super.onCreate(),
+            // because that one calls AbstractPreferenceController.isAvailable().
+            for (var controller : getZenPreferenceControllers()) {
+                controller.setZenMode(mZenMode);
             }
         } else {
-            Log.e(TAG, "Mode id required to set mode config settings");
             toastAndFinish();
-            return;
         }
-        if (mZenMode != null) {
-            // Propagate mode info through to controllers.
-            for (List<AbstractPreferenceController> list : getPreferenceControllers()) {
-                try {
-                    for (AbstractPreferenceController controller : list) {
-                        // mZenMode guaranteed non-null from reloadMode() above
-                        ((AbstractZenModePreferenceController) controller).setZenMode(mZenMode);
-                    }
-                } catch (ClassCastException e) {
-                    // ignore controllers that aren't AbstractZenModePreferenceController
-                }
-            }
-        }
+
+        super.onCreate(icicle);
     }
 
-    /**
-     * Refresh stored ZenMode data.
-     * @param id the mode ID
-     * @return whether we successfully got mode data from the backend.
-     */
-    private boolean reloadMode(String id) {
-        mZenMode = mBackend.getMode(id);
-        if (mZenMode == null) {
-            return false;
+    @Nullable
+    private ZenMode loadModeFromArguments() {
+        String id = null;
+        if (getActivity() != null && getActivity().getIntent() != null) {
+            id = getActivity().getIntent().getStringExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID);
         }
-        return true;
+        Bundle bundle = getArguments();
+        if (id == null && bundle != null && bundle.containsKey(EXTRA_AUTOMATIC_ZEN_RULE_ID)) {
+            id = bundle.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID);
+        }
+        if (id == null) {
+            Log.d(TAG, "No id provided");
+            return null;
+        }
+
+        ZenMode mode = mBackend.getMode(id);
+        if (mode == null) {
+            Log.d(TAG, "Mode with id " + id + " not found");
+            return null;
+        }
+        return mode;
     }
 
-    /**
-     * Refresh ZenMode data any time the system's zen mode state changes (either the zen mode value
-     * itself, or the config), and also (once updated) update the info for all controllers.
-     */
+    private Iterable<AbstractZenModePreferenceController> getZenPreferenceControllers() {
+        return getPreferenceControllers().stream()
+                .flatMap(List::stream)
+                .filter(AbstractZenModePreferenceController.class::isInstance)
+                .map(AbstractZenModePreferenceController.class::cast)
+                .toList();
+    }
+
     @Override
-    protected void updateZenModeState() {
+    protected void onUpdatedZenModeState() {
         if (mZenMode == null) {
-            // This shouldn't happen, but guard against it in case
+            Log.wtf(TAG, "mZenMode is null in onUpdatedZenModeState");
             toastAndFinish();
             return;
         }
+
         String id = mZenMode.getId();
-        if (!reloadMode(id)) {
+        ZenMode mode = mBackend.getMode(id);
+        if (mode == null) {
             Log.d(TAG, "Mode id=" + id + " not found");
             toastAndFinish();
             return;
         }
-        updateControllers();
+
+        mZenMode = mode;
+        maybeUpdateControllersState(mode);
     }
 
-    private void updateControllers() {
-        if (getPreferenceControllers() == null || mZenMode == null) {
-            return;
+    /**
+     * Updates all {@link AbstractZenModePreferenceController} based on the loaded mode info.
+     * For each controller, {@link AbstractZenModePreferenceController#setZenMode} will be called.
+     * Then, {@link AbstractZenModePreferenceController#updateState} will be called as well, unless
+     * we determine it's not necessary (for example, if we know that {@code DashboardFragment} will
+     * do it soon).
+     */
+    private void maybeUpdateControllersState(@NonNull ZenMode zenMode) {
+        boolean needsFullUpdate =
+                getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)
+                && (mModeOnLastControllerUpdate == null
+                        || !mModeOnLastControllerUpdate.equals(zenMode));
+        mModeOnLastControllerUpdate = zenMode.copy();
+
+        for (var controller : getZenPreferenceControllers()) {
+            controller.setZenMode(zenMode);
         }
 
-        final PreferenceScreen screen = getPreferenceScreen();
-        if (screen == null) {
-            Log.d(TAG, "PreferenceScreen not found");
-            return;
-        }
-        for (List<AbstractPreferenceController> list : getPreferenceControllers()) {
-            for (AbstractPreferenceController controller : list) {
-                if (!controller.isAvailable()) {
-                    continue;
-                }
-
-                try {
-                    // Find preference associated with controller
-                    final String key = controller.getPreferenceKey();
-                    final Preference preference = screen.findPreference(key);
-                    if (preference != null) {
-                        AbstractZenModePreferenceController zenController =
-                                (AbstractZenModePreferenceController) controller;
-                        zenController.updateZenMode(preference, mZenMode);
-                    } else {
-                        Log.d(TAG,
-                                String.format("Cannot find preference with key %s in Controller %s",
-                                        key, controller.getClass().getSimpleName()));
-                    }
-                } catch (ClassCastException e) {
-                    // Skip any controllers that aren't AbstractZenModePreferenceController.
-                    Log.d(TAG, "Could not cast: " + controller.getClass().getSimpleName());
-                }
-            }
+        if (needsFullUpdate) {
+            forceUpdatePreferences();
         }
     }
 
     private void toastAndFinish() {
-        Toast.makeText(mContext, R.string.zen_mode_rule_not_found_text, Toast.LENGTH_SHORT)
+        Toast.makeText(mContext, R.string.zen_mode_not_found_text, Toast.LENGTH_SHORT)
                 .show();
         this.finish();
     }
@@ -158,15 +143,4 @@
     public ZenMode getMode() {
         return mZenMode;
     }
-
-    /**
-     * Get AutomaticZenRule associated with current mode data, or null if it doesn't exist.
-     */
-    @Nullable
-    public AutomaticZenRule getAZR() {
-        if (mZenMode == null) {
-            return null;
-        }
-        return mZenMode.getRule();
-    }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeHeaderController.java b/src/com/android/settings/notification/modes/ZenModeHeaderController.java
index d8f0a67..ae6eacc 100644
--- a/src/com/android/settings/notification/modes/ZenModeHeaderController.java
+++ b/src/com/android/settings/notification/modes/ZenModeHeaderController.java
@@ -15,56 +15,36 @@
  */
 package com.android.settings.notification.modes;
 
-import android.app.Flags;
 import android.content.Context;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.notification.modes.ZenMode;
 
-class ZenModeHeaderController extends AbstractZenModePreferenceController {
-
-    private final DashboardFragment mFragment;
-    private EntityHeaderController mHeaderController;
+class ZenModeHeaderController extends AbstractZenModeHeaderController {
 
     ZenModeHeaderController(
             @NonNull  Context context,
             @NonNull String key,
-            @NonNull DashboardFragment fragment,
-            @Nullable ZenModesBackend backend) {
-        super(context, key, backend);
-        mFragment = fragment;
+            @NonNull DashboardFragment fragment) {
+        super(context, key, fragment);
     }
 
     @Override
-    public boolean isAvailable() {
-        return Flags.modesApi();
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        setUpHeader(screen,
+                mContext.getResources().getDimensionPixelSize(R.dimen.zen_mode_header_size));
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
-        if (mFragment == null) {
-            return;
-        }
-        preference.setSelectable(false);
-
-        if (mHeaderController == null) {
-            final LayoutPreference pref = (LayoutPreference) preference;
-            mHeaderController = EntityHeaderController.newInstance(
-                    mFragment.getActivity(),
-                    mFragment,
-                    pref.findViewById(R.id.entity_header));
-        }
-
-        FutureUtil.whenDone(
-                zenMode.getIcon(mContext, IconLoader.getInstance()),
-                icon -> mHeaderController.setIcon(IconUtil.applyTint(mContext, icon))
-                        .done(/* rebindActions= */ false),
-                mContext.getMainExecutor());
+        updateIcon(preference, zenMode,
+                icon -> IconUtil.makeModeHeader(mContext, icon),
+                /* isSelected= */ zenMode.isActive());
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeIconPickerFragment.java b/src/com/android/settings/notification/modes/ZenModeIconPickerFragment.java
deleted file mode 100644
index 760b183..0000000
--- a/src/com/android/settings/notification/modes/ZenModeIconPickerFragment.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.modes;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settingslib.core.AbstractPreferenceController;
-
-import com.google.common.collect.ImmutableList;
-
-import java.util.List;
-
-public class ZenModeIconPickerFragment extends ZenModeFragmentBase {
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.modes_icon_picker;
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
-        return SettingsEnums.NOTIFICATION_ZEN_MODE_AUTOMATION;
-    }
-
-    @Override
-    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        return ImmutableList.of(
-                new ZenModeIconPickerIconPreferenceController(context, "current_icon", this,
-                        mBackend),
-                new ZenModeIconPickerListPreferenceController(context, "icon_list", this,
-                        new IconOptionsProviderImpl(mContext), mBackend));
-    }
-}
diff --git a/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
index 9eaaa97..6c8d41f 100644
--- a/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeIconPickerIconPreferenceController.java
@@ -19,41 +19,32 @@
 import android.content.Context;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
 import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.notification.modes.ZenMode;
 
-class ZenModeIconPickerIconPreferenceController extends AbstractZenModePreferenceController {
-
-    private final DashboardFragment mFragment;
-    private EntityHeaderController mHeaderController;
+/** Controller used for displaying the currently-chosen icon at the top of the icon picker. */
+class ZenModeIconPickerIconPreferenceController extends AbstractZenModeHeaderController {
 
     ZenModeIconPickerIconPreferenceController(@NonNull Context context, @NonNull String key,
-            @NonNull DashboardFragment fragment, @Nullable ZenModesBackend backend) {
-        super(context, key, backend);
-        mFragment = fragment;
+            @NonNull DashboardFragment fragment) {
+        super(context, key, fragment);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        setUpHeader(screen, mContext.getResources().getDimensionPixelSize(
+                R.dimen.zen_mode_icon_list_header_circle_diameter));
     }
 
     @Override
     void updateState(Preference preference, @NonNull ZenMode zenMode) {
-        preference.setSelectable(false);
-
-        if (mHeaderController == null) {
-            final LayoutPreference pref = (LayoutPreference) preference;
-            mHeaderController = EntityHeaderController.newInstance(
-                            mFragment.getActivity(),
-                            mFragment,
-                            pref.findViewById(R.id.entity_header));
-        }
-
-        FutureUtil.whenDone(
-                zenMode.getIcon(mContext, IconLoader.getInstance()),
-                icon -> mHeaderController.setIcon(IconUtil.applyTint(mContext, icon))
-                        .done(/* rebindActions= */ false),
-                mContext.getMainExecutor());
+        updateIcon(preference, zenMode,
+                icon -> IconUtil.makeIconPickerHeader(mContext, icon),
+                /* isSelected= */ false);
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java
index fc991dc..93df38b 100644
--- a/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceController.java
@@ -17,6 +17,7 @@
 package com.android.settings.notification.modes;
 
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,24 +31,37 @@
 import androidx.preference.PreferenceScreen;
 import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.SimpleItemAnimator;
 
 import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.ZenIconLoader;
+import com.android.settingslib.notification.modes.ZenMode;
 import com.android.settingslib.widget.LayoutPreference;
 
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+
+import java.util.HashMap;
+import java.util.Map;
 
 class ZenModeIconPickerListPreferenceController extends AbstractZenModePreferenceController {
 
-    private final DashboardFragment mFragment;
     private final IconOptionsProvider mIconOptionsProvider;
+    private final IconPickerListener mListener;
     @Nullable private IconAdapter mAdapter;
+    private @DrawableRes int mCurrentIconResId;
 
     ZenModeIconPickerListPreferenceController(@NonNull Context context, @NonNull String key,
-            @NonNull DashboardFragment fragment, @NonNull IconOptionsProvider iconOptionsProvider,
-            @Nullable ZenModesBackend backend) {
-        super(context, key, backend);
-        mFragment = fragment;
+            @NonNull IconPickerListener listener) {
+        this(context, key, listener, new IconOptionsProviderImpl(context));
+    }
+
+    @VisibleForTesting
+    ZenModeIconPickerListPreferenceController(@NonNull Context context, @NonNull String key,
+            @NonNull IconPickerListener listener,
+            @NonNull IconOptionsProvider iconOptionsProvider) {
+        super(context, key);
+        mListener = listener;
         mIconOptionsProvider = iconOptionsProvider;
     }
 
@@ -66,20 +80,38 @@
         recyclerView.setLayoutManager(new AutoFitGridLayoutManager(mContext));
         recyclerView.setAdapter(mAdapter);
         recyclerView.setHasFixedSize(true);
-    }
-
-    @VisibleForTesting
-    void onIconSelected(@DrawableRes int resId) {
-        saveMode(mode -> {
-            mode.getRule().setIconResId(resId);
-            return mode;
-        });
-        mFragment.finish();
+        if (recyclerView.getItemAnimator() instanceof SimpleItemAnimator animator) {
+            animator.setSupportsChangeAnimations(true);
+        }
     }
 
     @Override
     void updateState(Preference preference, @NonNull ZenMode zenMode) {
-        // Nothing to do, the current icon is shown in a different preference.
+        @DrawableRes int iconResId = zenMode.getRule().getIconResId();
+        if (iconResId == 0) {
+            iconResId = ZenIconLoader.getIconResourceIdFromType(zenMode.getType());
+        }
+        updateIconSelection(iconResId);
+    }
+
+    private void updateIconSelection(@DrawableRes int iconResId) {
+        if (iconResId != mCurrentIconResId) {
+            int oldIconResId = mCurrentIconResId;
+            mCurrentIconResId = iconResId;
+            if (mAdapter != null) {
+                mAdapter.notifyIconChanged(oldIconResId);
+                mAdapter.notifyIconChanged(mCurrentIconResId);
+            }
+        }
+    }
+
+    private void onIconSelected(@DrawableRes int iconResId) {
+        updateIconSelection(iconResId);
+        mListener.onIconSelected(iconResId);
+    }
+
+    interface IconPickerListener {
+        void onIconSelected(@DrawableRes int iconResId);
     }
 
     private class IconHolder extends RecyclerView.ViewHolder {
@@ -91,20 +123,25 @@
             mImageView = itemView.findViewById(R.id.icon_image_view);
         }
 
-        void bindIcon(IconOptionsProvider.IconInfo icon) {
-            mImageView.setImageDrawable(
-                    IconUtil.makeIconCircle(itemView.getContext(), icon.resId()));
+        void bindIcon(IconOptionsProvider.IconInfo icon, Drawable iconDrawable) {
+            mImageView.setImageDrawable(iconDrawable);
             itemView.setContentDescription(icon.description());
-            itemView.setOnClickListener(v -> onIconSelected(icon.resId()));
+            itemView.setOnClickListener(v -> {
+                itemView.setSelected(true); // Immediately, to avoid flicker until we rebind.
+                onIconSelected(icon.resId());
+            });
+            itemView.setSelected(icon.resId() == mCurrentIconResId);
         }
     }
 
     private class IconAdapter extends RecyclerView.Adapter<IconHolder> {
 
         private final ImmutableList<IconOptionsProvider.IconInfo> mIconResources;
+        private final Map<IconOptionsProvider.IconInfo, Drawable> mIconCache;
 
         private IconAdapter(IconOptionsProvider iconOptionsProvider) {
             mIconResources = iconOptionsProvider.getIcons();
+            mIconCache = new HashMap<>();
         }
 
         @NonNull
@@ -117,13 +154,24 @@
 
         @Override
         public void onBindViewHolder(@NonNull IconHolder holder, int position) {
-            holder.bindIcon(mIconResources.get(position));
+            IconOptionsProvider.IconInfo iconInfo = mIconResources.get(position);
+            Drawable iconDrawable = mIconCache.computeIfAbsent(iconInfo,
+                    info -> IconUtil.makeIconPickerItem(mContext, info.resId()));
+            holder.bindIcon(iconInfo, iconDrawable);
         }
 
         @Override
         public int getItemCount() {
             return mIconResources.size();
         }
+
+        private void notifyIconChanged(@DrawableRes int iconResId) {
+            int position = Iterables.indexOf(mIconResources,
+                    iconInfo -> iconInfo.resId() == iconResId);
+            if (position != -1) {
+                notifyItemChanged(position);
+            }
+        }
     }
 
     private static class AutoFitGridLayoutManager extends GridLayoutManager {
diff --git a/src/com/android/settings/notification/modes/ZenModeMessagesFragment.java b/src/com/android/settings/notification/modes/ZenModeMessagesFragment.java
index c86f8dd..709e5da 100644
--- a/src/com/android/settings/notification/modes/ZenModeMessagesFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeMessagesFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+
 import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -34,7 +35,7 @@
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new ZenModePrioritySendersPreferenceController(context,
-                "zen_mode_settings_category_messages", true, mBackend));
+                "zen_mode_settings_category_messages", true, mBackend, mHelperBackend));
         return controllers;
     }
 
@@ -45,7 +46,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
         return SettingsEnums.DND_MESSAGES;
     }
 
diff --git a/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceController.java
index 300ebbc..50d7958 100644
--- a/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceController.java
@@ -16,8 +16,9 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
 
@@ -25,24 +26,24 @@
 import androidx.preference.Preference;
 
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.notification.modes.ZenMode;
 
 class ZenModeMessagesLinkPreferenceController extends AbstractZenModePreferenceController {
     private final ZenModeSummaryHelper mSummaryHelper;
 
     public ZenModeMessagesLinkPreferenceController(Context context, String key,
-            ZenModesBackend backend) {
-        super(context, key, backend);
-        mSummaryHelper = new ZenModeSummaryHelper(context, backend);
+            ZenHelperBackend helperBackend) {
+        super(context, key);
+        mSummaryHelper = new ZenModeSummaryHelper(context, helperBackend);
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
         Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-        // TODO(b/332937635): Update metrics category
+        bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
         preference.setIntent(new SubSettingLauncher(mContext)
                 .setDestination(ZenModeMessagesFragment.class.getName())
-                .setSourceMetricsCategory(0)
+                .setSourceMetricsCategory(SettingsEnums.DND_PEOPLE)
                 .setArguments(bundle)
                 .toIntent());
 
diff --git a/src/com/android/settings/notification/modes/ZenModeNewCustomFragment.java b/src/com/android/settings/notification/modes/ZenModeNewCustomFragment.java
new file mode 100644
index 0000000..d7dbaaf
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeNewCustomFragment.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.notification.modes;
+
+import android.app.settings.SettingsEnums;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.base.Strings;
+
+public class ZenModeNewCustomFragment extends ZenModeEditNameIconFragmentBase {
+
+    @Nullable
+    @Override
+    protected ZenMode onCreateInstantiateZenMode() {
+        return ZenMode.newCustomManual(
+                requireContext().getString(R.string.zen_mode_new_custom_default_name),
+                /* iconResId= */ 0);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        requireActivity().setTitle(R.string.zen_mode_new_custom_title);
+    }
+
+    @Override
+    void saveMode(ZenMode mode) {
+        String modeName = Strings.isNullOrEmpty(mode.getName())
+                ? requireContext().getString(R.string.zen_mode_new_custom_default_name)
+                : mode.getName();
+
+        ZenMode created = requireBackend().addCustomManualMode(modeName,
+                mode.getRule().getIconResId());
+        if (created != null) {
+            // Open the mode view fragment and close the "add mode" fragment, so exiting the mode
+            // view goes back to previous screen (which should be the modes list).
+            ZenSubSettingLauncher.forModeFragment(requireContext(), ZenModeFragment.class,
+                    created.getId(), getMetricsCategory()).launch();
+            finish();
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.ZEN_MODE_ADD_NEW;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return "ZenModeNewCustomFragment";
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeNotifVisFragment.java b/src/com/android/settings/notification/modes/ZenModeNotifVisFragment.java
index 3fdfec6..d1bd493 100644
--- a/src/com/android/settings/notification/modes/ZenModeNotifVisFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeNotifVisFragment.java
@@ -19,6 +19,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.service.notification.ZenPolicy;
+
 import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -57,7 +58,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
-        return SettingsEnums.DND_PEOPLE;
+        return SettingsEnums.ZEN_CUSTOM_RULE_VIS_EFFECTS;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceController.java
index da3b3be..cd1e8c7 100644
--- a/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceController.java
@@ -16,8 +16,10 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
 
@@ -25,25 +27,30 @@
 import androidx.preference.Preference;
 
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.notification.modes.ZenMode;
 
 class ZenModeNotifVisLinkPreferenceController extends AbstractZenModePreferenceController  {
 
     private final ZenModeSummaryHelper mSummaryBuilder;
 
     public ZenModeNotifVisLinkPreferenceController(Context context, String key,
-            ZenModesBackend backend) {
-        super(context, key, backend);
-        mSummaryBuilder = new ZenModeSummaryHelper(context, backend);
+            ZenHelperBackend helperBackend) {
+        super(context, key);
+        mSummaryBuilder = new ZenModeSummaryHelper(context, helperBackend);
+    }
+
+    @Override
+    public boolean isAvailable(ZenMode zenMode) {
+        return zenMode.getRule().getInterruptionFilter() != INTERRUPTION_FILTER_ALL;
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
         Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-        // TODO(b/332937635): Update metrics category
+        bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, zenMode.getId());
         preference.setIntent(new SubSettingLauncher(mContext)
                 .setDestination(ZenModeNotifVisFragment.class.getName())
-                .setSourceMetricsCategory(0)
+                .setSourceMetricsCategory(SettingsEnums.ZEN_MODE_DISPLAY_SETTINGS)
                 .setArguments(bundle)
                 .toIntent());
     }
diff --git a/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceController.java
index f918b25..3d9f713 100644
--- a/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceController.java
@@ -21,19 +21,21 @@
 
 import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
-import androidx.preference.CheckBoxPreference;
 import androidx.preference.Preference;
 import androidx.preference.TwoStatePreference;
 
-import com.android.settings.widget.DisabledCheckBoxPreference;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 
 public class ZenModeNotifVisPreferenceController extends AbstractZenModePreferenceController
         implements Preference.OnPreferenceChangeListener {
 
-    @VisibleForTesting protected @ZenPolicy.VisualEffect int mEffect;
+    @VisibleForTesting
+    protected @ZenPolicy.VisualEffect int mEffect;
 
     // if any of these effects are suppressed, this effect must be too
-    @VisibleForTesting protected @ZenPolicy.VisualEffect int[] mParentSuppressedEffects;
+    @VisibleForTesting
+    protected @ZenPolicy.VisualEffect int[] mParentSuppressedEffects;
 
     public ZenModeNotifVisPreferenceController(Context context, String key,
             @ZenPolicy.VisualEffect int visualEffect,
diff --git a/src/com/android/settings/notification/modes/ZenModeOtherFragment.java b/src/com/android/settings/notification/modes/ZenModeOtherFragment.java
index 1149cd1..28b2e54 100644
--- a/src/com/android/settings/notification/modes/ZenModeOtherFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeOtherFragment.java
@@ -16,14 +16,9 @@
 
 package com.android.settings.notification.modes;
 
-import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_ALARMS;
-import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_EVENTS;
-import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_MEDIA;
-import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_REMINDERS;
-import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_SYSTEM;
-
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+
 import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -58,7 +53,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
         return SettingsEnums.NOTIFICATION_ZEN_MODE_PRIORITY;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java
index 1a00207..9613d98 100644
--- a/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceController.java
@@ -16,38 +16,73 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_ALARMS;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_EVENTS;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_MEDIA;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_REMINDERS;
+import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_SYSTEM;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.os.Bundle;
+import android.service.notification.ZenPolicy;
 
 import androidx.annotation.NonNull;
 import androidx.preference.Preference;
 
-import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+import java.util.Map;
 
 /**
  * Preference with a link and summary about what other sounds can break through the mode
  */
 class ZenModeOtherLinkPreferenceController extends AbstractZenModePreferenceController {
 
+    private static final ImmutableMap</* @PriorityCategory */ Integer, /* @DrawableRes */ Integer>
+            PRIORITIES_TO_ICONS = ImmutableMap.of(
+                    PRIORITY_CATEGORY_ALARMS, R.drawable.ic_zen_mode_sound_alarms,
+                    PRIORITY_CATEGORY_MEDIA, R.drawable.ic_zen_mode_sound_media,
+                    PRIORITY_CATEGORY_SYSTEM, R.drawable.ic_zen_mode_sound_system,
+                    PRIORITY_CATEGORY_REMINDERS, R.drawable.ic_zen_mode_sound_reminders,
+                    PRIORITY_CATEGORY_EVENTS, R.drawable.ic_zen_mode_sound_events);
+
     private final ZenModeSummaryHelper mSummaryHelper;
 
     public ZenModeOtherLinkPreferenceController(Context context, String key,
-            ZenModesBackend backend) {
-        super(context, key, backend);
-        mSummaryHelper = new ZenModeSummaryHelper(mContext, mBackend);
+            ZenHelperBackend helperBackend) {
+        super(context, key);
+        mSummaryHelper = new ZenModeSummaryHelper(mContext, helperBackend);
+    }
+
+    @Override
+    public boolean isAvailable(ZenMode zenMode) {
+        return zenMode.getRule().getInterruptionFilter() != INTERRUPTION_FILTER_ALL;
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
-        Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-        preference.setIntent(new SubSettingLauncher(mContext)
-                .setDestination(ZenModeOtherFragment.class.getName())
-                .setSourceMetricsCategory(0)
-                .setArguments(bundle)
-                .toIntent());
+        preference.setIntent(
+                ZenSubSettingLauncher.forModeFragment(mContext, ZenModeOtherFragment.class,
+                        zenMode.getId(), SettingsEnums.ZEN_PRIORITY_MODE).toIntent());
+
+        preference.setEnabled(zenMode.isEnabled());
         preference.setSummary(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode));
+        ((CircularIconsPreference) preference).setIcons(getSoundIcons(zenMode.getPolicy()));
+    }
+
+    private CircularIconSet<Integer> getSoundIcons(ZenPolicy policy) {
+        ImmutableList.Builder<Integer> icons = new ImmutableList.Builder<>();
+        for (Map.Entry<Integer, Integer> entry : PRIORITIES_TO_ICONS.entrySet()) {
+            if (policy.isCategoryAllowed(entry.getKey(), false)) {
+                icons.add(entry.getValue());
+            }
+        }
+        return new CircularIconSet<>(icons.build(),
+                iconResId -> IconUtil.makeCircularIconPreferenceItem(mContext, iconResId));
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeOtherPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeOtherPreferenceController.java
index a770164e..ad5fa6a 100644
--- a/src/com/android/settings/notification/modes/ZenModeOtherPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeOtherPreferenceController.java
@@ -28,6 +28,9 @@
 import androidx.preference.Preference;
 import androidx.preference.TwoStatePreference;
 
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 class ZenModeOtherPreferenceController extends AbstractZenModePreferenceController
         implements Preference.OnPreferenceChangeListener {
 
diff --git a/src/com/android/settings/notification/modes/ZenModePeopleFragment.java b/src/com/android/settings/notification/modes/ZenModePeopleFragment.java
index e1f753c..11e4453 100644
--- a/src/com/android/settings/notification/modes/ZenModePeopleFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModePeopleFragment.java
@@ -18,6 +18,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+
 import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -34,9 +35,9 @@
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         List<AbstractPreferenceController> prefControllers = new ArrayList<>();
         prefControllers.add(new ZenModeCallsLinkPreferenceController(
-                context, "zen_mode_people_calls", mBackend));
+                context, "zen_mode_people_calls", mHelperBackend));
         prefControllers.add(new ZenModeMessagesLinkPreferenceController(
-                context, "zen_mode_people_messages", mBackend));
+                context, "zen_mode_people_messages", mHelperBackend));
         return prefControllers;
     }
 
@@ -47,7 +48,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
         return SettingsEnums.DND_PEOPLE;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java
index 55a83d6..bf55471 100644
--- a/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceController.java
@@ -16,39 +16,216 @@
 
 package com.android.settings.notification.modes;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
+import static android.service.notification.ZenPolicy.STATE_ALLOW;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.os.Bundle;
+import android.content.pm.LauncherApps;
+import android.graphics.drawable.Drawable;
+import android.service.notification.ConversationChannelWrapper;
+import android.service.notification.ZenPolicy;
+import android.service.notification.ZenPolicy.ConversationSenders;
+import android.service.notification.ZenPolicy.PeopleType;
+import android.util.IconDrawableFactory;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.annotation.WorkerThread;
 import androidx.preference.Preference;
 
-import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.R;
+import com.android.settings.notification.modes.ZenHelperBackend.Contact;
+import com.android.settingslib.notification.ConversationIconFactory;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.base.Equivalence;
+import com.google.common.collect.ImmutableList;
+
+import java.util.Objects;
 
 /**
- * Preference with a link and summary about what calls and messages can break through the mode
+ * Preference with a link and summary about what calls and messages can break through the mode,
+ * and icons representing those people.
  */
 class ZenModePeopleLinkPreferenceController extends AbstractZenModePreferenceController {
 
     private final ZenModeSummaryHelper mSummaryHelper;
+    private final ZenHelperBackend mHelperBackend;
+    private final ConversationIconFactory mConversationIconFactory;
 
-    public ZenModePeopleLinkPreferenceController(Context context, String key,
-            ZenModesBackend backend) {
-        super(context, key, backend);
-        mSummaryHelper = new ZenModeSummaryHelper(mContext, mBackend);
+    ZenModePeopleLinkPreferenceController(Context context, String key,
+            ZenHelperBackend helperBackend) {
+        this(context, key, helperBackend,
+                new ConversationIconFactory(context,
+                        context.getSystemService(LauncherApps.class),
+                        context.getPackageManager(),
+                        IconDrawableFactory.newInstance(context, false),
+                        context.getResources().getDimensionPixelSize(
+                                R.dimen.zen_mode_circular_icon_diameter)));
+    }
+
+    @VisibleForTesting
+    ZenModePeopleLinkPreferenceController(Context context, String key,
+            ZenHelperBackend helperBackend, ConversationIconFactory conversationIconFactory) {
+        super(context, key);
+        mSummaryHelper = new ZenModeSummaryHelper(mContext, helperBackend);
+        mHelperBackend = helperBackend;
+        mConversationIconFactory = conversationIconFactory;
+    }
+
+    @Override
+    public boolean isAvailable(ZenMode zenMode) {
+        return zenMode.getRule().getInterruptionFilter() != INTERRUPTION_FILTER_ALL;
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
-        Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-        // TODO(b/332937635): Update metrics category
-        preference.setIntent(new SubSettingLauncher(mContext)
-                .setDestination(ZenModePeopleFragment.class.getName())
-                .setSourceMetricsCategory(0)
-                .setArguments(bundle)
-                .toIntent());
-        preference.setSummary(mSummaryHelper.getPeopleSummary(zenMode));
+        // Passes in source ZenModeFragment metric category.
+        preference.setIntent(
+                ZenSubSettingLauncher.forModeFragment(mContext, ZenModePeopleFragment.class,
+                        zenMode.getId(), SettingsEnums.ZEN_PRIORITY_MODE).toIntent());
+
+        preference.setEnabled(zenMode.isEnabled());
+        preference.setSummary(mSummaryHelper.getPeopleSummary(zenMode.getPolicy()));
+        ((CircularIconsPreference) preference).setIcons(getPeopleIcons(zenMode.getPolicy()),
+                PEOPLE_ITEM_EQUIVALENCE);
+    }
+
+    // Represents "Either<All, Contact, ConversationChannelWrapper>".
+    private record PeopleItem(boolean all,
+                              @Nullable Contact contact,
+                              @Nullable ConversationChannelWrapper conversation) {
+
+        private static final PeopleItem ALL = new PeopleItem(true, null, null);
+
+        PeopleItem(@NonNull Contact contact) {
+            this(false, contact, null);
+        }
+
+        PeopleItem(@NonNull ConversationChannelWrapper conversation) {
+            this(false, null, conversation);
+        }
+    }
+
+    private static final Equivalence<PeopleItem> PEOPLE_ITEM_EQUIVALENCE = new Equivalence<>() {
+        @Override
+        protected boolean doEquivalent(@NonNull PeopleItem a, @NonNull PeopleItem b) {
+            if (a.all && b.all) {
+                return true;
+            } else if (a.contact != null && b.contact != null) {
+                return a.contact.equals(b.contact);
+            } else if (a.conversation != null && b.conversation != null) {
+                ConversationChannelWrapper c1 = a.conversation;
+                ConversationChannelWrapper c2 = b.conversation;
+                // Skip comparing ShortcutInfo which doesn't implement equals(). We assume same
+                // conversation channel means same icon (which is not 100% correct but unlikely to
+                // change while on this screen).
+                return Objects.equals(c1.getNotificationChannel(), c2.getNotificationChannel())
+                        && Objects.equals(c1.getGroupLabel(), c2.getGroupLabel())
+                        && Objects.equals(c1.getParentChannelLabel(), c2.getParentChannelLabel())
+                        && Objects.equals(c1.getPkg(), c2.getPkg())
+                        && Objects.equals(c1.getUid(), c2.getUid());
+            } else {
+                return false;
+            }
+        }
+
+        @Override
+        protected int doHash(@NonNull PeopleItem item) {
+            return Objects.hash(item.all, item.contact, item.conversation);
+        }
+    };
+
+    private CircularIconSet<PeopleItem> getPeopleIcons(ZenPolicy policy) {
+        if (getCallersOrMessagesAllowed(policy) == PEOPLE_TYPE_ANYONE) {
+            return new CircularIconSet<>(
+                    ImmutableList.of(PeopleItem.ALL),
+                    this::loadPeopleIcon);
+        }
+
+        ImmutableList.Builder<PeopleItem> peopleItems = ImmutableList.builder();
+        fetchContactsAllowed(policy, peopleItems);
+        fetchConversationsAllowed(policy, peopleItems);
+        return new CircularIconSet<>(peopleItems.build(), this::loadPeopleIcon);
+    }
+
+    /**
+     * Adds {@link PeopleItem} entries corresponding to the set of people (contacts) who can
+     * break through via either call OR message.
+     */
+    private void fetchContactsAllowed(ZenPolicy policy,
+            ImmutableList.Builder<PeopleItem> peopleItems) {
+        @PeopleType int peopleAllowed = getCallersOrMessagesAllowed(policy);
+
+        ImmutableList<Contact> contactsAllowed = ImmutableList.of();
+        if (peopleAllowed == PEOPLE_TYPE_CONTACTS) {
+            contactsAllowed = mHelperBackend.getAllContacts();
+        } else if (peopleAllowed == PEOPLE_TYPE_STARRED) {
+            contactsAllowed = mHelperBackend.getStarredContacts();
+        }
+
+        for (Contact contact : contactsAllowed) {
+            peopleItems.add(new PeopleItem(contact));
+        }
+    }
+
+    /**
+     * Adds {@link PeopleItem} entries corresponding to the set of conversation channels that can
+     * break through.
+     */
+    private void fetchConversationsAllowed(ZenPolicy policy,
+            ImmutableList.Builder<PeopleItem> peopleItems) {
+        @ConversationSenders int conversationSendersAllowed =
+                policy.getPriorityCategoryConversations() == STATE_ALLOW
+                        ? policy.getPriorityConversationSenders()
+                        : CONVERSATION_SENDERS_NONE;
+        ImmutableList<ConversationChannelWrapper> conversationsAllowed = ImmutableList.of();
+        if (conversationSendersAllowed == CONVERSATION_SENDERS_ANYONE) {
+            conversationsAllowed = mHelperBackend.getAllConversations();
+        } else if (conversationSendersAllowed == CONVERSATION_SENDERS_IMPORTANT) {
+            conversationsAllowed = mHelperBackend.getImportantConversations();
+        }
+
+        for (ConversationChannelWrapper conversation : conversationsAllowed) {
+            peopleItems.add(new PeopleItem(conversation));
+        }
+    }
+
+    /** Returns the broadest set of people who can call OR message. */
+    private @PeopleType int getCallersOrMessagesAllowed(ZenPolicy policy) {
+        @PeopleType int callersAllowed = policy.getPriorityCategoryCalls() == STATE_ALLOW
+                ? policy.getPriorityCallSenders() : PEOPLE_TYPE_NONE;
+        @PeopleType int messagesAllowed = policy.getPriorityCategoryMessages() == STATE_ALLOW
+                ? policy.getPriorityMessageSenders() : PEOPLE_TYPE_NONE;
+
+        // Order is ANYONE -> CONTACTS -> STARRED -> NONE, so just taking the minimum works.
+        return Math.min(callersAllowed, messagesAllowed);
+    }
+
+    @WorkerThread
+    private Drawable loadPeopleIcon(PeopleItem peopleItem) {
+        if (peopleItem.all) {
+            return IconUtil.makeCircularIconPreferenceItem(mContext,
+                    R.drawable.ic_zen_mode_people_all);
+        } else if (peopleItem.contact != null) {
+            return mHelperBackend.getContactPhoto(peopleItem.contact);
+        } else if (peopleItem.conversation != null) {
+            return mConversationIconFactory.getConversationDrawable(
+                    peopleItem.conversation.getShortcutInfo(),
+                    peopleItem.conversation.getPkg(),
+                    peopleItem.conversation.getUid(),
+                    peopleItem.conversation.getNotificationChannel().isImportantConversation());
+        } else {
+            throw new IllegalArgumentException("Neither all nor contact nor conversation!");
+        }
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModePreferenceCategoryController.java b/src/com/android/settings/notification/modes/ZenModePreferenceCategoryController.java
new file mode 100644
index 0000000..6ebcb1f
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModePreferenceCategoryController.java
@@ -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.notification.modes;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.ZenMode;
+
+/**
+ * Simple {@link AbstractZenModePreferenceController} used for all {@code PreferenceCategory}
+ * entries in {@link ZenModeFragment} that should be disabled when the mode is disabled.
+ */
+class ZenModePreferenceCategoryController extends AbstractZenModePreferenceController {
+    ZenModePreferenceCategoryController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+    }
+
+    @Override
+    void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        preference.setEnabled(zenMode.isEnabled());
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java b/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java
index 43f4d7f..11b65bd 100644
--- a/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceController.java
@@ -26,19 +26,18 @@
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_UNSET;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.content.pm.ParceledListSlice;
 import android.icu.text.MessageFormat;
 import android.provider.Contacts;
-import android.service.notification.ConversationChannelWrapper;
 import android.service.notification.ZenPolicy;
 import android.view.View;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
@@ -46,13 +45,17 @@
 import com.android.settings.R;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.notification.app.ConversationListSettings;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
-import java.util.ArrayList;
+import com.google.common.collect.ImmutableSet;
+
 import java.util.HashMap;
-import java.util.List;
+import java.util.LinkedHashMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * Common preference controller functionality for zen mode priority senders preferences for both
@@ -69,9 +72,11 @@
     static final String KEY_ANY = "senders_anyone";
     static final String KEY_CONTACTS = "senders_contacts";
     static final String KEY_STARRED = "senders_starred_contacts";
-    static final String KEY_IMPORTANT = "conversations_important";
+    static final String KEY_IMPORTANT_CONVERSATIONS = "conversations_important";
+    static final String KEY_ANY_CONVERSATIONS = "conversations_any";
     static final String KEY_NONE = "senders_none";
 
+    private int mNumAllConversations = 0;
     private int mNumImportantConversations = 0;
 
     private static final Intent ALL_CONTACTS_INTENT =
@@ -83,16 +88,19 @@
     private static final Intent FALLBACK_INTENT = new Intent(Intent.ACTION_MAIN)
             .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
 
+    private final ZenHelperBackend mHelperBackend;
     private final PackageManager mPackageManager;
     private PreferenceCategory mPreferenceCategory;
-    private List<SelectorWithWidgetPreference> mSelectorPreferences = new ArrayList<>();
+    private final LinkedHashMap<String, SelectorWithWidgetPreference> mOptions =
+            new LinkedHashMap<>();
 
     private final ZenModeSummaryHelper mZenModeSummaryHelper;
 
     public ZenModePrioritySendersPreferenceController(Context context, String key,
-            boolean isMessages, ZenModesBackend backend) {
+            boolean isMessages, ZenModesBackend backend, ZenHelperBackend helperBackend) {
         super(context, key, backend);
         mIsMessages = isMessages;
+        mHelperBackend = helperBackend;
 
         String contactsPackage = context.getString(R.string.config_contacts_package_name);
         ALL_CONTACTS_INTENT.setPackage(contactsPackage);
@@ -103,58 +111,97 @@
         if (!FALLBACK_INTENT.hasCategory(Intent.CATEGORY_APP_CONTACTS)) {
             FALLBACK_INTENT.addCategory(Intent.CATEGORY_APP_CONTACTS);
         }
-        mZenModeSummaryHelper = new ZenModeSummaryHelper(mContext, mBackend);
+        mZenModeSummaryHelper = new ZenModeSummaryHelper(mContext, mHelperBackend);
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
-        mPreferenceCategory = screen.findPreference(getPreferenceKey());
+        mPreferenceCategory = checkNotNull(screen.findPreference(getPreferenceKey()));
         if (mPreferenceCategory.getPreferenceCount() == 0) {
             makeSelectorPreference(KEY_STARRED,
-                    com.android.settings.R.string.zen_mode_from_starred, mIsMessages);
+                    com.android.settings.R.string.zen_mode_from_starred, mIsMessages, true);
             makeSelectorPreference(KEY_CONTACTS,
-                    com.android.settings.R.string.zen_mode_from_contacts, mIsMessages);
+                    com.android.settings.R.string.zen_mode_from_contacts, mIsMessages, true);
             if (mIsMessages) {
-                makeSelectorPreference(KEY_IMPORTANT,
-                        com.android.settings.R.string.zen_mode_from_important_conversations, true);
+                // "Any conversations" will only be available as option if it is the current value.
+                // Because it's confusing and we don't want users setting it up that way, but apps
+                // could create such ZenPolicies and we must show that.
+                makeSelectorPreference(KEY_ANY_CONVERSATIONS,
+                        com.android.settings.R.string.zen_mode_from_all_conversations, true,
+                        /* isVisibleByDefault= */ false);
+                makeSelectorPreference(KEY_IMPORTANT_CONVERSATIONS,
+                        com.android.settings.R.string.zen_mode_from_important_conversations, true,
+                        true);
             }
             makeSelectorPreference(KEY_ANY,
-                    com.android.settings.R.string.zen_mode_from_anyone, mIsMessages);
+                    com.android.settings.R.string.zen_mode_from_anyone, mIsMessages, true);
             makeSelectorPreference(KEY_NONE,
-                    com.android.settings.R.string.zen_mode_none_messages, mIsMessages);
+                    com.android.settings.R.string.zen_mode_none_messages, mIsMessages, true);
         }
         super.displayPreference(screen);
     }
 
     @Override
     public void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        final int contacts = getPrioritySenders(zenMode.getPolicy());
+        final int conversations = getPriorityConversationSenders(zenMode.getPolicy());
+
         if (mIsMessages) {
             updateChannelCounts();
-        }
-        final int currContactsSetting = getPrioritySenders(zenMode.getPolicy());
-        final int currConversationsSetting = getPriorityConversationSenders(zenMode.getPolicy());
-        for (SelectorWithWidgetPreference pref : mSelectorPreferences) {
-            // for each preference, check whether the current state matches what this state
-            // would look like if the button were checked.
-            final int[] checkedState = keyToSettingEndState(pref.getKey(), true);
-            final int checkedContactsSetting = checkedState[0];
-            final int checkedConversationsSetting = checkedState[1];
 
-            boolean match = checkedContactsSetting == currContactsSetting;
-            if (mIsMessages && checkedConversationsSetting != CONVERSATION_SENDERS_UNSET) {
-                // "CONVERSATION_SENDERS_UNSET" in checkedContactsSetting means this preference
-                // doesn't govern the priority senders setting, so the full match happens when
-                // either the priority senders setting matches or if it's CONVERSATION_SENDERS_UNSET
-                // so only the conversation setting needs to match.
-                match = (match || checkedContactsSetting == PEOPLE_TYPE_UNSET)
-                        && (checkedConversationsSetting == currConversationsSetting);
+            if (contacts == PEOPLE_TYPE_ANYONE) {
+                setSelectedOption(KEY_ANY);
+            } else if (contacts == PEOPLE_TYPE_NONE && conversations == CONVERSATION_SENDERS_NONE) {
+                setSelectedOption(KEY_NONE);
+            } else {
+                ImmutableSet.Builder<String> selectedOptions = new ImmutableSet.Builder<>();
+                if (contacts == PEOPLE_TYPE_STARRED) {
+                    selectedOptions.add(KEY_STARRED);
+                } else if (contacts == PEOPLE_TYPE_CONTACTS) {
+                    selectedOptions.add(KEY_CONTACTS);
+                }
+                if (conversations == CONVERSATION_SENDERS_IMPORTANT) {
+                    selectedOptions.add(KEY_IMPORTANT_CONVERSATIONS);
+                } else if (conversations == CONVERSATION_SENDERS_ANYONE) {
+                    selectedOptions.add(KEY_ANY_CONVERSATIONS);
+                }
+                setSelectedOptions(selectedOptions.build());
             }
-
-            pref.setChecked(match);
+        } else {
+            // Calls is easy!
+            switch (contacts) {
+                case PEOPLE_TYPE_ANYONE -> setSelectedOption(KEY_ANY);
+                case PEOPLE_TYPE_CONTACTS -> setSelectedOption(KEY_CONTACTS);
+                case PEOPLE_TYPE_STARRED -> setSelectedOption(KEY_STARRED);
+                case PEOPLE_TYPE_NONE -> setSelectedOption(KEY_NONE);
+                default -> throw new IllegalArgumentException("Unexpected PeopleType: " + contacts);
+            }
         }
+
         updateSummaries();
     }
 
+    private void setSelectedOption(String key) {
+        setSelectedOptions(ImmutableSet.of(key));
+    }
+
+    private void setSelectedOptions(Set<String> keys) {
+        if (keys.isEmpty()) {
+            throw new IllegalArgumentException("At least one option should be selected!");
+        }
+
+        for (SelectorWithWidgetPreference optionPreference : mOptions.values()) {
+            optionPreference.setChecked(keys.contains(optionPreference.getKey()));
+            if (optionPreference.isChecked()) {
+                // Ensure selected options are visible. This is to support "Any conversations"
+                // which is only shown if the policy has Conversations=Anyone (and doesn't have
+                // messages=Anyone), and then remains visible until the user exits the page
+                // (so that toggling back and forth is possible without the option disappearing).
+                optionPreference.setVisible(true);
+            }
+        }
+    }
+
     public void onResume() {
         if (mIsMessages) {
             updateChannelCounts();
@@ -163,17 +210,8 @@
     }
 
     private void updateChannelCounts() {
-        ParceledListSlice<ConversationChannelWrapper> impConversations =
-                mBackend.getConversations(true);
-        int numImportantConversations = 0;
-        if (impConversations != null) {
-            for (ConversationChannelWrapper conversation : impConversations.getList()) {
-                if (!conversation.getNotificationChannel().isDemoted()) {
-                    numImportantConversations++;
-                }
-            }
-        }
-        mNumImportantConversations = numImportantConversations;
+        mNumAllConversations = mHelperBackend.getAllConversations().size();
+        mNumImportantConversations = mHelperBackend.getImportantConversations().size();
     }
 
     private int getPrioritySenders(ZenPolicy policy) {
@@ -191,13 +229,14 @@
         return CONVERSATION_SENDERS_UNSET;
     }
 
-    private SelectorWithWidgetPreference makeSelectorPreference(String key, int titleId,
-            boolean isCheckbox) {
+    private void makeSelectorPreference(String key, int titleId,
+            boolean isCheckbox, boolean isVisibleByDefault) {
         final SelectorWithWidgetPreference pref =
                 new SelectorWithWidgetPreference(mPreferenceCategory.getContext(), isCheckbox);
         pref.setKey(key);
         pref.setTitle(titleId);
         pref.setOnClickListener(mSelectorClickListener);
+        pref.setVisible(isVisibleByDefault);
 
         View.OnClickListener widgetClickListener = getWidgetClickListener(key);
         if (widgetClickListener != null) {
@@ -205,12 +244,12 @@
         }
 
         mPreferenceCategory.addPreference(pref);
-        mSelectorPreferences.add(pref);
-        return pref;
+        mOptions.put(key, pref);
     }
 
     private View.OnClickListener getWidgetClickListener(String key) {
-        if (!KEY_CONTACTS.equals(key) && !KEY_STARRED.equals(key) && !KEY_IMPORTANT.equals(key)) {
+        if (!KEY_CONTACTS.equals(key) && !KEY_STARRED.equals(key)
+                && !KEY_ANY_CONVERSATIONS.equals(key) && !KEY_IMPORTANT_CONVERSATIONS.equals(key)) {
             return null;
         }
 
@@ -229,11 +268,11 @@
             } else if (KEY_CONTACTS.equals(key)
                     && ALL_CONTACTS_INTENT.resolveActivity(mPackageManager) != null) {
                 mContext.startActivity(ALL_CONTACTS_INTENT);
-            } else if (KEY_IMPORTANT.equals(key)) {
-                // TODO: b/332937635 - set correct metrics category
+            } else if (KEY_ANY_CONVERSATIONS.equals(key)
+                    || KEY_IMPORTANT_CONVERSATIONS.equals(key)) {
                 new SubSettingLauncher(mContext)
                         .setDestination(ConversationListSettings.class.getName())
-                        .setSourceMetricsCategory(SettingsEnums.DND_CONVERSATIONS)
+                        .setSourceMetricsCategory(SettingsEnums.DND_MESSAGES)
                         .launch();
             } else {
                 mContext.startActivity(FALLBACK_INTENT);
@@ -252,7 +291,7 @@
     }
 
     void updateSummaries() {
-        for (SelectorWithWidgetPreference pref : mSelectorPreferences) {
+        for (SelectorWithWidgetPreference pref : mOptions.values()) {
             pref.setSummary(getSummary(pref.getKey()));
         }
     }
@@ -263,7 +302,7 @@
     // Returns an integer array with 2 entries. The first entry is the setting for priority senders
     // and the second entry is for priority conversation senders; if isMessages is false, then
     // no changes will ever be prescribed for conversation senders.
-    int[] keyToSettingEndState(String key, boolean checked) {
+    private int[] keyToSettingEndState(String key, boolean checked) {
         int[] endState = new int[]{ PEOPLE_TYPE_UNSET, CONVERSATION_SENDERS_UNSET };
         if (!checked) {
             // Unchecking any priority-senders-based state should reset the state to NONE.
@@ -276,11 +315,12 @@
                     endState[0] = PEOPLE_TYPE_NONE;
             }
 
-            // For messages, unchecking "priority conversations" and "any" should reset conversation
-            // state to "NONE" as well.
+            // For messages, unchecking "priority/any conversations" and "any" should reset
+            // conversation state to "NONE" as well.
             if (mIsMessages) {
                 switch (key) {
-                    case KEY_IMPORTANT:
+                    case KEY_IMPORTANT_CONVERSATIONS:
+                    case KEY_ANY_CONVERSATIONS:
                     case KEY_ANY:
                     case KEY_NONE:
                         endState[1] = CONVERSATION_SENDERS_NONE;
@@ -305,9 +345,10 @@
             // In the messages case *only*, also handle changing of conversation settings.
             if (mIsMessages) {
                 switch (key) {
-                    case KEY_IMPORTANT:
+                    case KEY_IMPORTANT_CONVERSATIONS:
                         endState[1] = CONVERSATION_SENDERS_IMPORTANT;
                         break;
+                    case KEY_ANY_CONVERSATIONS:
                     case KEY_ANY:
                         endState[1] = CONVERSATION_SENDERS_ANYONE;
                         break;
@@ -343,7 +384,7 @@
     //     the contacts setting is additionally reset to "none".
     //   - if "anyone" is previously selected, and the user clicks one of the contacts values,
     //     then the conversations setting is additionally reset to "none".
-    int[] settingsToSaveOnClick(String key, boolean checked,
+    private int[] settingsToSaveOnClick(String key, boolean checked,
             int currSendersSetting, int currConvosSetting) {
         int[] savedSettings = new int[]{ PEOPLE_TYPE_UNSET, CONVERSATION_SENDERS_UNSET };
 
@@ -368,15 +409,18 @@
             // Special-case handling for the "priority conversations" checkbox:
             // If a specific selection exists for priority senders (starred, contacts), we leave
             // it untouched. Otherwise (when the senders is set to "any"), set it to NONE.
-            if (key.equals(KEY_IMPORTANT)
+            if ((key.equals(KEY_IMPORTANT_CONVERSATIONS) || key.equals(KEY_ANY_CONVERSATIONS))
                     && currSendersSetting == PEOPLE_TYPE_ANYONE) {
                 savedSettings[0] = PEOPLE_TYPE_NONE;
             }
 
-            // Flip-side special case for clicking either "contacts" option: if a specific selection
-            // exists for priority conversations, leave it untouched; otherwise, set to none.
+            // The flip-side case for the "contacts" option is slightly different -- we only
+            // reset conversations if leaving PEOPLE_ANY by selecting a contact option, but not
+            // if switching contact options. That's because starting from Anyone, checking Contacts,
+            // and then "important conversations" also shown checked because it was there (albeit
+            // subsumed into PEOPLE_ANY) would be weird.
             if ((key.equals(KEY_STARRED) || key.equals(KEY_CONTACTS))
-                    && currConvosSetting == CONVERSATION_SENDERS_ANYONE) {
+                    && currSendersSetting == PEOPLE_TYPE_ANYONE) {
                 savedSettings[1] = CONVERSATION_SENDERS_NONE;
             }
         }
@@ -390,8 +434,10 @@
                 return mZenModeSummaryHelper.getStarredContactsSummary();
             case KEY_CONTACTS:
                 return mZenModeSummaryHelper.getContactsNumberSummary();
-            case KEY_IMPORTANT:
-                return getConversationSummary();
+            case KEY_ANY_CONVERSATIONS:
+                return getConversationSummary(mNumAllConversations);
+            case KEY_IMPORTANT_CONVERSATIONS:
+                return getConversationSummary(mNumImportantConversations);
             case KEY_ANY:
                 return mContext.getResources().getString(mIsMessages
                         ? R.string.zen_mode_all_messages_summary
@@ -402,9 +448,7 @@
         }
     }
 
-    private String getConversationSummary() {
-        final int numConversations = mNumImportantConversations;
-
+    private String getConversationSummary(int numConversations) {
         if (numConversations == CONVERSATION_SENDERS_UNSET) {
             return null;
         } else {
@@ -417,8 +461,7 @@
         }
     }
 
-    @VisibleForTesting
-    SelectorWithWidgetPreference.OnClickListener mSelectorClickListener =
+    private final SelectorWithWidgetPreference.OnClickListener mSelectorClickListener =
             new SelectorWithWidgetPreference.OnClickListener() {
                 @Override
                 public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
diff --git a/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceController.java
index 7569051..ae62e35 100644
--- a/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceController.java
@@ -26,6 +26,8 @@
 import androidx.preference.TwoStatePreference;
 
 import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 
 class ZenModeRepeatCallersPreferenceController extends AbstractZenModePreferenceController
         implements Preference.OnPreferenceChangeListener {
diff --git a/src/com/android/settings/notification/modes/ZenModeScheduleChooserDialog.java b/src/com/android/settings/notification/modes/ZenModeScheduleChooserDialog.java
new file mode 100644
index 0000000..d129aad
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeScheduleChooserDialog.java
@@ -0,0 +1,155 @@
+/*
+ * 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.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.service.notification.ZenModeConfig;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.dashboard.DashboardFragment;
+
+import com.google.common.collect.ImmutableList;
+
+public class ZenModeScheduleChooserDialog extends InstrumentedDialogFragment {
+
+    private static final String TAG = "ZenModeScheduleChooserDialog";
+
+    static final int OPTION_TIME = 0;
+    static final int OPTION_CALENDAR = 1;
+
+    private record ScheduleOption(@StringRes int nameResId,
+                                  @Nullable @StringRes Integer exampleResId,
+                                  @DrawableRes int iconResId) { }
+
+    private static final ImmutableList<ScheduleOption> SCHEDULE_OPTIONS = ImmutableList.of(
+            new ScheduleOption(R.string.zen_mode_select_schedule_time,
+                    R.string.zen_mode_select_schedule_time_example,
+                    com.android.internal.R.drawable.ic_zen_mode_type_schedule_time),
+            new ScheduleOption(R.string.zen_mode_select_schedule_calendar,
+                    null,
+                    com.android.internal.R.drawable.ic_zen_mode_type_schedule_calendar));
+
+    private OnScheduleOptionListener mOptionListener;
+
+    interface OnScheduleOptionListener {
+        void onScheduleSelected(Uri conditionId);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.ZEN_SCHEDULE_CHOOSER_DIALOG;
+    }
+
+    static void show(DashboardFragment parent, OnScheduleOptionListener optionListener) {
+        ZenModeScheduleChooserDialog dialog = new ZenModeScheduleChooserDialog();
+        dialog.mOptionListener = optionListener;
+        dialog.setTargetFragment(parent, 0);
+        dialog.show(parent.getParentFragmentManager(), TAG);
+    }
+
+    @NonNull
+    @Override
+    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+        checkState(getContext() != null);
+        return new AlertDialog.Builder(getContext())
+                .setTitle(R.string.zen_mode_select_schedule_title)
+                .setAdapter(new OptionsAdapter(getContext()),
+                        (dialog, which) -> onScheduleTypeSelected(which))
+                .setNegativeButton(R.string.cancel, null)
+                .create();
+    }
+
+    private static class OptionsAdapter extends ArrayAdapter<ScheduleOption> {
+
+        private final LayoutInflater mInflater;
+
+        OptionsAdapter(@NonNull Context context) {
+            super(context, R.layout.zen_mode_type_item, SCHEDULE_OPTIONS);
+            mInflater = LayoutInflater.from(context);
+        }
+
+        @NonNull
+        @Override
+        public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
+            if (convertView == null) {
+                convertView = mInflater.inflate(R.layout.zen_mode_type_item, parent, false);
+            }
+            // No need for holder pattern since we have only 2 items.
+            ImageView imageView = checkNotNull(convertView.findViewById(R.id.icon));
+            TextView title = checkNotNull(convertView.findViewById(R.id.title));
+            TextView subtitle = checkNotNull(convertView.findViewById(R.id.subtitle));
+
+            ScheduleOption option = checkNotNull(getItem(position));
+            imageView.setImageResource(option.iconResId());
+            title.setText(option.nameResId());
+            if (option.exampleResId() != null) {
+                subtitle.setVisibility(View.VISIBLE);
+                subtitle.setText(option.exampleResId());
+            } else {
+                subtitle.setVisibility(View.GONE);
+            }
+
+            return convertView;
+        }
+    }
+
+    private void onScheduleTypeSelected(int whichOption) {
+        Uri conditionId = switch (whichOption) {
+            case OPTION_TIME -> getDefaultScheduleTimeCondition();
+            case OPTION_CALENDAR -> getDefaultScheduleCalendarCondition();
+            default -> ZenModeConfig.toCustomManualConditionId();
+        };
+
+        mOptionListener.onScheduleSelected(conditionId);
+    }
+
+    private static Uri getDefaultScheduleTimeCondition() {
+        ZenModeConfig.ScheduleInfo schedule = new ZenModeConfig.ScheduleInfo();
+        schedule.days = ZenModeConfig.ALL_DAYS;
+        schedule.startHour = 9;
+        schedule.startMinute = 30;
+        schedule.endHour = 17;
+        return ZenModeConfig.toScheduleConditionId(schedule);
+    }
+
+    private static Uri getDefaultScheduleCalendarCondition() {
+        ZenModeConfig.EventInfo eventInfo = new ZenModeConfig.EventInfo();
+        eventInfo.calendarId = null; // All calendars of the current user.
+        eventInfo.reply = ZenModeConfig.EventInfo.REPLY_ANY_EXCEPT_NO;
+        return ZenModeConfig.toEventConditionId(eventInfo);
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeSelectBypassingAppsFragment.java b/src/com/android/settings/notification/modes/ZenModeSelectBypassingAppsFragment.java
index 8b682b9..1f5438d 100644
--- a/src/com/android/settings/notification/modes/ZenModeSelectBypassingAppsFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeSelectBypassingAppsFragment.java
@@ -74,8 +74,7 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO(b/332937635): Update metrics category
-        return SettingsEnums.NOTIFICATION_ZEN_MODE_OVERRIDING_APPS;
+        return SettingsEnums.NOTIFICATION_ZEN_MODE_OVERRIDING_APP;
     }
 
     /**
diff --git a/src/com/android/settings/notification/modes/ZenModeSetCalendarFragment.java b/src/com/android/settings/notification/modes/ZenModeSetCalendarFragment.java
index f0206ef..a266c8b 100644
--- a/src/com/android/settings/notification/modes/ZenModeSetCalendarFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeSetCalendarFragment.java
@@ -46,7 +46,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
         return SettingsEnums.NOTIFICATION_ZEN_MODE_EVENT_RULE;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceController.java
index 2841309..4f45c5c8 100644
--- a/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceController.java
@@ -16,14 +16,12 @@
 
 package com.android.settings.notification.modes;
 
-import android.app.Flags;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.CalendarContract;
-import android.service.notification.SystemZenRules;
 import android.service.notification.ZenModeConfig;
 
 import androidx.annotation.NonNull;
@@ -33,6 +31,8 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -42,7 +42,7 @@
 import java.util.Objects;
 import java.util.function.Function;
 
-public class ZenModeSetCalendarPreferenceController extends AbstractZenModePreferenceController {
+class ZenModeSetCalendarPreferenceController extends AbstractZenModePreferenceController {
     @VisibleForTesting
     protected static final String KEY_CALENDAR = "calendar";
     @VisibleForTesting
@@ -122,11 +122,7 @@
     @VisibleForTesting
     protected Function<ZenMode, ZenMode> updateEventMode(ZenModeConfig.EventInfo event) {
         return (zenMode) -> {
-            zenMode.getRule().setConditionId(ZenModeConfig.toEventConditionId(event));
-            if (Flags.modesApi() && Flags.modesUi()) {
-                zenMode.getRule().setTriggerDescription(
-                        SystemZenRules.getTriggerDescriptionForScheduleEvent(mContext, event));
-            }
+            zenMode.setCustomModeConditionId(mContext, ZenModeConfig.toEventConditionId(event));
             return zenMode;
         };
     }
diff --git a/src/com/android/settings/notification/modes/ZenModeSetScheduleFragment.java b/src/com/android/settings/notification/modes/ZenModeSetScheduleFragment.java
index 4d58097..9119784 100644
--- a/src/com/android/settings/notification/modes/ZenModeSetScheduleFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeSetScheduleFragment.java
@@ -48,7 +48,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - make this the correct metrics category
         return SettingsEnums.NOTIFICATION_ZEN_MODE_SCHEDULE_RULE;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java
index a6008cc..e4c3f32 100644
--- a/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceController.java
@@ -16,9 +16,7 @@
 
 package com.android.settings.notification.modes;
 
-import android.app.Flags;
 import android.content.Context;
-import android.service.notification.SystemZenRules;
 import android.service.notification.ZenModeConfig;
 import android.text.format.DateFormat;
 import android.util.ArraySet;
@@ -33,6 +31,8 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.widget.LayoutPreference;
 
 import java.text.SimpleDateFormat;
@@ -67,12 +67,18 @@
         LayoutPreference layoutPref = (LayoutPreference) preference;
 
         TextView start = layoutPref.findViewById(R.id.start_time);
-        start.setText(timeString(mSchedule.startHour, mSchedule.startMinute));
+        String startTimeString = timeString(mSchedule.startHour, mSchedule.startMinute);
+        start.setText(startTimeString);
+        start.setContentDescription(
+                mContext.getString(R.string.zen_mode_start_time) + "\n" + startTimeString);
         start.setOnClickListener(
                 timePickerLauncher(mSchedule.startHour, mSchedule.startMinute, mStartSetter));
 
         TextView end = layoutPref.findViewById(R.id.end_time);
-        end.setText(timeString(mSchedule.endHour, mSchedule.endMinute));
+        String endTimeString = timeString(mSchedule.endHour, mSchedule.endMinute);
+        end.setText(endTimeString);
+        end.setContentDescription(
+                mContext.getString(R.string.zen_mode_end_time) + "\n" + endTimeString);
         end.setOnClickListener(
                 timePickerLauncher(mSchedule.endHour, mSchedule.endMinute, mEndSetter));
 
@@ -116,16 +122,13 @@
     @VisibleForTesting
     protected Function<ZenMode, ZenMode> updateScheduleMode(ZenModeConfig.ScheduleInfo schedule) {
         return (zenMode) -> {
-            zenMode.getRule().setConditionId(ZenModeConfig.toScheduleConditionId(schedule));
-            if (Flags.modesApi() && Flags.modesUi()) {
-                zenMode.getRule().setTriggerDescription(
-                        SystemZenRules.getTriggerDescriptionForScheduleTime(mContext, schedule));
-            }
+            zenMode.setCustomModeConditionId(mContext,
+                    ZenModeConfig.toScheduleConditionId(schedule));
             return zenMode;
         };
     }
 
-    private ZenModeTimePickerFragment.TimeSetter mStartSetter = (hour, minute) -> {
+    private final ZenModeTimePickerFragment.TimeSetter mStartSetter = (hour, minute) -> {
         if (!isValidTime(hour, minute)) {
             return;
         }
@@ -137,7 +140,7 @@
         saveMode(updateScheduleMode(mSchedule));
     };
 
-    private ZenModeTimePickerFragment.TimeSetter mEndSetter = (hour, minute) -> {
+    private final ZenModeTimePickerFragment.TimeSetter mEndSetter = (hour, minute) -> {
         if (!isValidTime(hour, minute)) {
             return;
         }
@@ -201,7 +204,10 @@
             // day label.
             dayToggle.setTextOn(mShortDayFormat.format(c.getTime()));
             dayToggle.setTextOff(mShortDayFormat.format(c.getTime()));
-            dayToggle.setContentDescription(mLongDayFormat.format(c.getTime()));
+            String state = dayEnabled
+                    ? mContext.getString(com.android.internal.R.string.capital_on)
+                    : mContext.getString(com.android.internal.R.string.capital_off);
+            dayToggle.setStateDescription(mLongDayFormat.format(c.getTime()) + ", " + state);
 
             dayToggle.setChecked(dayEnabled);
             dayToggle.setOnCheckedChangeListener((buttonView, isChecked) -> {
diff --git a/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceController.java
deleted file mode 100644
index 14d5d59..0000000
--- a/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceController.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * 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.modes;
-
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
-
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
-
-import android.content.Context;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-
-import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settingslib.PrimarySwitchPreference;
-
-/**
- * Preference controller for the link to an individual mode's configuration page.
- */
-class ZenModeSetTriggerLinkPreferenceController extends AbstractZenModePreferenceController {
-    @VisibleForTesting
-    protected static final String AUTOMATIC_TRIGGER_PREF_KEY = "zen_automatic_trigger_settings";
-
-    ZenModeSetTriggerLinkPreferenceController(Context context, String key,
-            ZenModesBackend backend) {
-        super(context, key, backend);
-    }
-
-    @Override
-    public boolean isAvailable(@NonNull ZenMode zenMode) {
-        return !zenMode.isManualDnd();
-    }
-
-    @Override
-    public void updateState(Preference preference, @NonNull ZenMode zenMode) {
-        // This controller is expected to govern a preference category so that it controls the
-        // availability of the entire preference category if the mode doesn't have a way to
-        // automatically trigger (such as manual DND).
-        Preference switchPref = ((PreferenceCategory) preference).findPreference(
-                AUTOMATIC_TRIGGER_PREF_KEY);
-        if (switchPref == null) {
-            return;
-        }
-        ((PrimarySwitchPreference) switchPref).setChecked(zenMode.getRule().isEnabled());
-        switchPref.setOnPreferenceChangeListener(mSwitchChangeListener);
-
-        Bundle bundle = new Bundle();
-        bundle.putString(MODE_ID, zenMode.getId());
-
-        // TODO: b/341961712 - direct preference to app-owned intent if available
-        switch (zenMode.getRule().getType()) {
-            case TYPE_SCHEDULE_TIME:
-                switchPref.setTitle(R.string.zen_mode_set_schedule_link);
-                switchPref.setSummary(zenMode.getRule().getTriggerDescription());
-                switchPref.setIntent(new SubSettingLauncher(mContext)
-                        .setDestination(ZenModeSetScheduleFragment.class.getName())
-                        // TODO: b/332937635 - set correct metrics category
-                        .setSourceMetricsCategory(0)
-                        .setArguments(bundle)
-                        .toIntent());
-                break;
-            case TYPE_SCHEDULE_CALENDAR:
-                switchPref.setTitle(R.string.zen_mode_set_calendar_link);
-                switchPref.setSummary(zenMode.getRule().getTriggerDescription());
-                switchPref.setIntent(new SubSettingLauncher(mContext)
-                        .setDestination(ZenModeSetCalendarFragment.class.getName())
-                        // TODO: b/332937635 - set correct metrics category
-                        .setSourceMetricsCategory(0)
-                        .setArguments(bundle)
-                        .toIntent());
-                break;
-            default:
-                // TODO: b/342156843 - change this to allow adding a trigger condition for system
-                //                     rules that don't yet have a type selected
-                switchPref.setTitle("not implemented");
-        }
-    }
-
-    @VisibleForTesting
-    protected Preference.OnPreferenceChangeListener mSwitchChangeListener = (p, newValue) -> {
-        final boolean newEnabled = (Boolean) newValue;
-        return saveMode((zenMode) -> {
-            if (newEnabled != zenMode.getRule().isEnabled()) {
-                zenMode.getRule().setEnabled(newEnabled);
-            }
-            return zenMode;
-        });
-    };
-}
diff --git a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
index 77f364c..c5300da 100644
--- a/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
+++ b/src/com/android/settings/notification/modes/ZenModeSummaryHelper.java
@@ -15,6 +15,7 @@
  */
 package com.android.settings.notification.modes;
 
+import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
 import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
 import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
 import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_NONE;
@@ -30,6 +31,7 @@
 import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_REMINDERS;
 import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_REPEAT_CALLERS;
 import static android.service.notification.ZenPolicy.PRIORITY_CATEGORY_SYSTEM;
+import static android.service.notification.ZenPolicy.STATE_ALLOW;
 import static android.service.notification.ZenPolicy.VISUAL_EFFECT_AMBIENT;
 import static android.service.notification.ZenPolicy.VISUAL_EFFECT_BADGE;
 import static android.service.notification.ZenPolicy.VISUAL_EFFECT_FULL_SCREEN_INTENT;
@@ -42,27 +44,34 @@
 import android.icu.text.MessageFormat;
 import android.service.notification.ZenDeviceEffects;
 import android.service.notification.ZenPolicy;
+import android.service.notification.ZenPolicy.ConversationSenders;
+import android.service.notification.ZenPolicy.PeopleType;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.core.text.BidiFormatter;
 
 import com.android.settings.R;
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.Set;
 import java.util.function.Predicate;
 
 class ZenModeSummaryHelper {
 
     private final Context mContext;
-    private final ZenModesBackend mBackend;
+    private final ZenHelperBackend mBackend;
 
-    public ZenModeSummaryHelper(Context context, ZenModesBackend backend) {
+    ZenModeSummaryHelper(Context context, ZenHelperBackend backend) {
         mContext = context;
         mBackend = backend;
     }
@@ -79,14 +88,18 @@
             PRIORITY_CATEGORY_REPEAT_CALLERS,
     };
 
+    static final ImmutableList</* @PriorityCategory */ Integer> OTHER_SOUND_CATEGORIES =
+            ImmutableList.of(
+                PRIORITY_CATEGORY_ALARMS,
+                PRIORITY_CATEGORY_MEDIA,
+                PRIORITY_CATEGORY_SYSTEM,
+                PRIORITY_CATEGORY_REMINDERS,
+                PRIORITY_CATEGORY_EVENTS);
+
     String getOtherSoundCategoriesSummary(ZenMode zenMode) {
         List<String> enabledCategories = getEnabledCategories(
                 zenMode.getPolicy(),
-                category -> PRIORITY_CATEGORY_ALARMS == category
-                        || PRIORITY_CATEGORY_MEDIA == category
-                        || PRIORITY_CATEGORY_SYSTEM == category
-                        || PRIORITY_CATEGORY_REMINDERS == category
-                        || PRIORITY_CATEGORY_EVENTS == category,
+                OTHER_SOUND_CATEGORIES::contains,
                 true);
         int numCategories = enabledCategories.size();
         MessageFormat msgFormat = new MessageFormat(
@@ -124,6 +137,14 @@
     }
 
     String getMessagesSettingSummary(ZenPolicy policy) {
+        if (policy.getPriorityCategoryMessages() == STATE_ALLOW
+                && policy.getPriorityMessageSenders() == PEOPLE_TYPE_ANYONE) {
+            // Messages=anyone means anyone. Even if conversation senders is specially configured,
+            // saying "Anyone and priority conversations" 1) makes no sense and 2) is incorrect
+            // because conversations WILL get through by virtue of also being messages.
+            return mContext.getString(R.string.zen_mode_from_anyone);
+        }
+
         List<String> enabledCategories = getEnabledCategories(policy,
                 category -> PRIORITY_CATEGORY_MESSAGES == category
                         || PRIORITY_CATEGORY_CONVERSATIONS == category, true);
@@ -187,11 +208,12 @@
     String getDisplayEffectsSummary(ZenMode zenMode) {
         boolean isFirst = true;
         List<String> enabledEffects = new ArrayList<>();
-        if (!zenMode.getPolicy().shouldShowAllVisualEffects()) {
+        if (!zenMode.getPolicy().shouldShowAllVisualEffects()
+                && zenMode.getRule().getInterruptionFilter() != INTERRUPTION_FILTER_ALL) {
             enabledEffects.add(getBlockedEffectsSummary(zenMode));
             isFirst = false;
         }
-        ZenDeviceEffects currEffects =  zenMode.getRule().getDeviceEffects();
+        ZenDeviceEffects currEffects = zenMode.getRule().getDeviceEffects();
         if (currEffects != null) {
             if (currEffects.shouldDisplayGrayscale()) {
                 if (isFirst) {
@@ -261,10 +283,11 @@
                     continue;
                 }
 
-                // For conversations, only the "priority conversations" setting is relevant; any
-                // other setting is subsumed by the messages-specific messaging.
+                // For conversations, only the "all/priority conversations" settings are relevant;
+                // any other setting is subsumed by the messages-specific messaging.
                 if (category == PRIORITY_CATEGORY_CONVERSATIONS
                         && policy.isCategoryAllowed(PRIORITY_CATEGORY_CONVERSATIONS, false)
+                        && policy.getPriorityConversationSenders() != CONVERSATION_SENDERS_ANYONE
                         && policy.getPriorityConversationSenders()
                         != CONVERSATION_SENDERS_IMPORTANT) {
                     continue;
@@ -303,13 +326,20 @@
             } else {
                 return mContext.getString(R.string.zen_mode_from_starred);
             }
-        } else if (category == PRIORITY_CATEGORY_CONVERSATIONS
-                && policy.getPriorityConversationSenders() == CONVERSATION_SENDERS_IMPORTANT) {
-            if (isFirst) {
-                return mContext.getString(R.string.zen_mode_from_important_conversations);
-            } else {
-                return mContext.getString(
-                        R.string.zen_mode_from_important_conversations_second);
+        } else if (category == PRIORITY_CATEGORY_CONVERSATIONS) {
+            if (policy.getPriorityConversationSenders() == CONVERSATION_SENDERS_IMPORTANT) {
+                if (isFirst) {
+                    return mContext.getString(R.string.zen_mode_from_important_conversations);
+                } else {
+                    return mContext.getString(
+                            R.string.zen_mode_from_important_conversations_second);
+                }
+            } else if (policy.getPriorityConversationSenders() == CONVERSATION_SENDERS_ANYONE) {
+                if (isFirst) {
+                    return mContext.getString(R.string.zen_mode_from_all_conversations);
+                } else {
+                    return mContext.getString(R.string.zen_mode_from_all_conversations_second);
+                }
             }
         } else if (category == PRIORITY_CATEGORY_EVENTS) {
             if (isFirst) {
@@ -352,7 +382,12 @@
     }
 
     public String getStarredContactsSummary() {
-        List<String> starredContacts = mBackend.getStarredContacts();
+        List<String> starredContacts = mBackend.getStarredContacts().stream()
+                .map(ZenHelperBackend.Contact::displayName)
+                .map(name -> Strings.isNullOrEmpty(name)
+                        ? mContext.getString(R.string.zen_mode_starred_contacts_empty_name)
+                        : name)
+                .toList();
         int numStarredContacts = starredContacts.size();
         MessageFormat msgFormat = new MessageFormat(
                 mContext.getString(R.string.zen_mode_starred_contacts_summary_contacts),
@@ -376,26 +411,32 @@
                 mContext.getString(R.string.zen_mode_contacts_count),
                 Locale.getDefault());
         Map<String, Object> args = new HashMap<>();
-        args.put("count", mBackend.queryAllContactsData().getCount());
+        args.put("count", mBackend.getAllContactsCount());
         return msgFormat.format(args);
     }
 
-    public String getPeopleSummary(ZenMode zenMode) {
-        final int callersAllowed = zenMode.getPolicy().getPriorityCallSenders();
-        final int messagesAllowed = zenMode.getPolicy().getPriorityMessageSenders();
-        final int conversationsAllowed = zenMode.getPolicy().getPriorityConversationSenders();
+    public String getPeopleSummary(ZenPolicy policy) {
+        @PeopleType int callersAllowed = policy.getPriorityCategoryCalls() == STATE_ALLOW
+                ? policy.getPriorityCallSenders() : PEOPLE_TYPE_NONE;
+        @PeopleType int messagesAllowed = policy.getPriorityCategoryMessages() == STATE_ALLOW
+                ? policy.getPriorityMessageSenders() : PEOPLE_TYPE_NONE;
+        @ConversationSenders int conversationsAllowed =
+                policy.getPriorityCategoryConversations() == STATE_ALLOW
+                        ? policy.getPriorityConversationSenders()
+                        : CONVERSATION_SENDERS_NONE;
         final boolean areRepeatCallersAllowed =
-                zenMode.getPolicy().isCategoryAllowed(PRIORITY_CATEGORY_REPEAT_CALLERS, false);
+                policy.isCategoryAllowed(PRIORITY_CATEGORY_REPEAT_CALLERS, false);
 
         if (callersAllowed == PEOPLE_TYPE_ANYONE
                 && messagesAllowed == PEOPLE_TYPE_ANYONE
                 && conversationsAllowed == CONVERSATION_SENDERS_ANYONE) {
-            return mContext.getResources().getString(R.string.zen_mode_people_all);
+            return mContext.getString(R.string.zen_mode_people_all);
         } else if (callersAllowed == PEOPLE_TYPE_NONE
                 && messagesAllowed == PEOPLE_TYPE_NONE
-                && conversationsAllowed == CONVERSATION_SENDERS_NONE
-                && !areRepeatCallersAllowed) {
-            return mContext.getResources().getString(R.string.zen_mode_people_none);
+                && conversationsAllowed == CONVERSATION_SENDERS_NONE) {
+            return mContext.getString(
+                    areRepeatCallersAllowed ? R.string.zen_mode_people_repeat_callers
+                            : R.string.zen_mode_people_none);
         } else {
             return mContext.getResources().getString(R.string.zen_mode_people_some);
         }
@@ -406,13 +447,11 @@
      * on the given mode and provided set of apps.
      */
     public @NonNull String getAppsSummary(@NonNull ZenMode zenMode,
-            @Nullable Set<String> appsBypassing) {
+            @Nullable List<AppEntry> appsBypassing) {
         if (zenMode.getPolicy().getAllowedChannels() == ZenPolicy.CHANNEL_POLICY_PRIORITY) {
             return formatAppsList(appsBypassing);
         } else if (zenMode.getPolicy().getAllowedChannels() == ZenPolicy.CHANNEL_POLICY_NONE) {
             return mContext.getResources().getString(R.string.zen_mode_apps_none_apps);
-        } else if (zenMode.getPolicy().getAllowedChannels() == ZenMode.CHANNEL_POLICY_ALL) {
-            return mContext.getResources().getString(R.string.zen_mode_apps_all_apps);
         }
         return "";
     }
@@ -420,31 +459,70 @@
     /**
      * Generates a formatted string declaring which apps can interrupt in the style of
      * "App, App2, and 4 more can interrupt."
-     * Apps selected for explicit mention are selected in order from the provided set sorted
-     * alphabetically.
+     * Apps selected for explicit mention are picked in order from the provided list.
      */
-    public @NonNull String formatAppsList(@Nullable Set<String> appsBypassingDnd) {
+    @VisibleForTesting
+    public @NonNull String formatAppsList(@Nullable List<AppEntry> appsBypassingDnd) {
         if (appsBypassingDnd == null) {
             return mContext.getResources().getString(R.string.zen_mode_apps_priority_apps);
         }
-        final int numAppsBypassingDnd = appsBypassingDnd.size();
-        String[] appsBypassingDndArr = appsBypassingDnd.toArray(new String[numAppsBypassingDnd]);
-        // Sorts the provided apps alphabetically.
-        Arrays.sort(appsBypassingDndArr);
+        List<String> appNames = appsBypassingDnd.stream().limit(3)
+                .map(app -> {
+                    String appName = BidiFormatter.getInstance().unicodeWrap(app.label);
+                    if (app.isManagedProfile()) {
+                        appName = mContext.getString(R.string.zen_mode_apps_work_app, appName);
+                    }
+                    return appName;
+                })
+                .toList();
+
         MessageFormat msgFormat = new MessageFormat(
                 mContext.getString(R.string.zen_mode_apps_subtext),
                 Locale.getDefault());
         Map<String, Object> args = new HashMap<>();
-        args.put("count", numAppsBypassingDnd);
-        if (numAppsBypassingDnd >= 1) {
-            args.put("app_1", appsBypassingDndArr[0]);
-            if (numAppsBypassingDnd >= 2) {
-                args.put("app_2", appsBypassingDndArr[1]);
-                if (numAppsBypassingDnd == 3) {
-                    args.put("app_3", appsBypassingDndArr[2]);
+        args.put("count", appsBypassingDnd.size());
+        if (appNames.size() >= 1) {
+            args.put("app_1", appNames.get(0));
+            if (appNames.size() >= 2) {
+                args.put("app_2", appNames.get(1));
+                if (appNames.size() == 3) {
+                    args.put("app_3", appNames.get(2));
                 }
             }
         }
         return msgFormat.format(args);
     }
+
+    String getModesSummary(List<ZenMode> modes) {
+        List<ZenMode> activeModes = modes.stream().filter(ZenMode::isActive).toList();
+
+        if (!activeModes.isEmpty()) {
+            MessageFormat msgFormat = new MessageFormat(
+                    mContext.getString(R.string.zen_modes_summary_some_active),
+                    Locale.getDefault());
+
+            Map<String, Object> args = new HashMap<>();
+            args.put("count", activeModes.size());
+            args.put("mode_1", activeModes.get(0).getName());
+            if (activeModes.size() >= 2) {
+                args.put("mode_2", activeModes.get(1).getName());
+                if (activeModes.size() == 3) {
+                    args.put("mode_3", activeModes.get(2).getName());
+                }
+            }
+
+            return msgFormat.format(args);
+        } else {
+            int automaticModeCount = (int) modes.stream()
+                    .filter(m -> m.isEnabled() && !m.isManualDnd() && !m.isCustomManual())
+                    .count();
+
+            MessageFormat msgFormat = new MessageFormat(
+                    mContext.getString(R.string.zen_modes_summary_none_active),
+                    Locale.getDefault());
+            Map<String, Object> msgArgs = Map.of("count", automaticModeCount);
+            return msgFormat.format(msgArgs);
+        }
+    }
+
 }
diff --git a/src/com/android/settings/notification/modes/ZenModeTimePickerFragment.java b/src/com/android/settings/notification/modes/ZenModeTimePickerFragment.java
index d8e1b38..3fa5394 100644
--- a/src/com/android/settings/notification/modes/ZenModeTimePickerFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModeTimePickerFragment.java
@@ -62,7 +62,6 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - set correct metrics category (or decide to keep this one?)
         return SettingsEnums.DIALOG_ZEN_TIMEPICKER;
     }
 
diff --git a/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceController.java
new file mode 100644
index 0000000..68cc167
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceController.java
@@ -0,0 +1,63 @@
+/*
+ * 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.modes;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+class ZenModeTriggerAddPreferenceController extends AbstractZenModePreferenceController {
+
+    private final DashboardFragment mFragment;
+
+    ZenModeTriggerAddPreferenceController(@NonNull Context context,
+            @NonNull String key, DashboardFragment fragment, ZenModesBackend backend) {
+        super(context, key, backend);
+        mFragment = fragment;
+    }
+
+    @Override
+    public boolean isAvailable(@NonNull ZenMode zenMode) {
+        return zenMode.isCustomManual();
+    }
+
+    @Override
+    void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        if (!isAvailable(zenMode)) {
+            return;
+        }
+
+        preference.setOnPreferenceClickListener(unused -> {
+            ZenModeScheduleChooserDialog.show(mFragment, mOnScheduleOptionListener);
+            return true;
+        });
+    }
+
+    @VisibleForTesting
+    final ZenModeScheduleChooserDialog.OnScheduleOptionListener mOnScheduleOptionListener =
+            conditionId -> saveMode(mode -> {
+                mode.setCustomModeConditionId(mContext, conditionId);
+                return mode;
+                // TODO: b/342156843 - Maybe jump to the corresponding schedule editing screen?
+            });
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceController.java b/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceController.java
new file mode 100644
index 0000000..5fc3fda
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceController.java
@@ -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.notification.modes;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.ZenMode;
+
+/**
+ * Preference controller for the "Turn on automatically" category
+ */
+class ZenModeTriggerCategoryPreferenceController extends AbstractZenModePreferenceController {
+
+    ZenModeTriggerCategoryPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public boolean isAvailable(@NonNull ZenMode zenMode) {
+        return !zenMode.isManualDnd();
+    }
+
+    @Override
+    public void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        // Nothing to update here (except visibility via isAvailable()).
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java b/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java
new file mode 100644
index 0000000..1add488
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceController.java
@@ -0,0 +1,227 @@
+/*
+ * 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.modes;
+
+import static android.app.AutomaticZenRule.TYPE_BEDTIME;
+import static android.app.AutomaticZenRule.TYPE_DRIVING;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.service.notification.ZenModeConfig.tryParseScheduleConditionId;
+
+import android.annotation.SuppressLint;
+import android.app.AlertDialog;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+import android.util.Log;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.base.Strings;
+
+class ZenModeTriggerUpdatePreferenceController extends AbstractZenModePreferenceController {
+
+    private static final String TAG = "ZenModeTriggerUpdate";
+
+    private final PackageManager mPackageManager;
+    private final ConfigurationActivityHelper mConfigurationActivityHelper;
+    private final ZenServiceListing mServiceListing;
+
+    private String mModeName;
+
+    ZenModeTriggerUpdatePreferenceController(Context context, String key,
+            ZenModesBackend backend) {
+        this(context, key, backend, context.getPackageManager(),
+                new ConfigurationActivityHelper(context.getPackageManager()),
+                new ZenServiceListing(context));
+    }
+
+    @VisibleForTesting
+    ZenModeTriggerUpdatePreferenceController(Context context, String key,
+            ZenModesBackend backend, PackageManager packageManager,
+            ConfigurationActivityHelper configurationActivityHelper,
+            ZenServiceListing serviceListing) {
+        super(context, key, backend);
+        mPackageManager = packageManager;
+        mConfigurationActivityHelper = configurationActivityHelper;
+        mServiceListing = serviceListing;
+    }
+
+    @Override
+    public boolean isAvailable(@NonNull ZenMode zenMode) {
+        return !zenMode.isCustomManual() && !zenMode.isManualDnd();
+    }
+
+    @Override
+    void updateState(Preference preference, @NonNull ZenMode zenMode) {
+        if (!isAvailable(zenMode)) {
+            return;
+        }
+
+        mModeName = zenMode.getName();
+        PrimarySwitchPreference triggerPref = (PrimarySwitchPreference) preference;
+        triggerPref.setChecked(zenMode.getRule().isEnabled());
+        triggerPref.setOnPreferenceChangeListener(mSwitchChangeListener);
+        if (zenMode.isSystemOwned()) {
+            setUpForSystemOwnedTrigger(triggerPref, zenMode);
+        } else {
+            setUpForAppTrigger(triggerPref, zenMode);
+        }
+    }
+
+    private void setUpForSystemOwnedTrigger(Preference preference, ZenMode mode) {
+        if (mode.getType() == TYPE_SCHEDULE_TIME) {
+            preference.setIntent(ZenSubSettingLauncher.forModeFragment(mContext,
+                    ZenModeSetScheduleFragment.class, mode.getId(),
+                    SettingsEnums.ZEN_PRIORITY_MODE).toIntent());
+
+            // [Clock Icon] 9:00 - 17:00 / Sun-Mon
+            preference.setIcon(com.android.internal.R.drawable.ic_zen_mode_type_schedule_time);
+            ZenModeConfig.ScheduleInfo schedule =
+                    tryParseScheduleConditionId(mode.getRule().getConditionId());
+            if (schedule != null) {
+                preference.setTitle(SystemZenRules.getTimeSummary(mContext, schedule));
+                preference.setSummary(SystemZenRules.getShortDaysSummary(mContext, schedule));
+            } else {
+                // Fallback, but shouldn't happen.
+                Log.wtf(TAG, "SCHEDULE_TIME mode without schedule: " + mode);
+                preference.setTitle(R.string.zen_mode_set_schedule_link);
+                preference.setSummary(null);
+            }
+        } else if (mode.getType() == TYPE_SCHEDULE_CALENDAR) {
+            preference.setIntent(ZenSubSettingLauncher.forModeFragment(mContext,
+                    ZenModeSetCalendarFragment.class, mode.getId(),
+                    SettingsEnums.ZEN_PRIORITY_MODE).toIntent());
+
+            // [Event Icon] Calendar Events / <Calendar name>
+            preference.setIcon(
+                    com.android.internal.R.drawable.ic_zen_mode_type_schedule_calendar);
+            preference.setTitle(R.string.zen_mode_trigger_title_schedule_calendar);
+            preference.setSummary(mode.getTriggerDescription());
+        } else {
+            Log.wtf(TAG, "Unexpected type for system-owned mode: " + mode);
+        }
+    }
+
+    @SuppressLint("SwitchIntDef")
+    private void setUpForAppTrigger(Preference preference, ZenMode mode) {
+        // App-owned mode may have triggerDescription, configurationActivity, or both/neither.
+        mServiceListing.loadApprovedComponents(mode.getRule().getPackageName());
+        Intent configurationIntent =
+                mConfigurationActivityHelper.getConfigurationActivityIntentForMode(
+                        mode, mServiceListing::findService);
+
+        @StringRes int title = switch (mode.getType()) {
+            case TYPE_BEDTIME -> R.string.zen_mode_trigger_title_bedtime;
+            case TYPE_DRIVING -> R.string.zen_mode_trigger_title_driving;
+            default -> R.string.zen_mode_trigger_title_generic;
+        };
+
+        String summary;
+        if (!Strings.isNullOrEmpty(mode.getTriggerDescription())) {
+            summary = mode.getTriggerDescription();
+        } else if (!Strings.isNullOrEmpty(mode.getRule().getPackageName())) {
+            String appName = null;
+            try {
+                ApplicationInfo appInfo = mPackageManager.getApplicationInfo(
+                        mode.getRule().getPackageName(), 0);
+                appName = appInfo.loadLabel(mPackageManager).toString();
+            } catch (PackageManager.NameNotFoundException e) {
+                Log.e(TAG, "Couldn't resolve owner for mode: " + mode);
+            }
+
+            if (appName != null) {
+                summary = mContext.getString(
+                        configurationIntent != null
+                                ? R.string.zen_mode_trigger_summary_settings_in_app
+                                : R.string.zen_mode_trigger_summary_managed_by_app,
+                        appName);
+            } else {
+                summary = null;
+            }
+        } else {
+            Log.e(TAG, "Mode without package! " + mode);
+            summary = null;
+        }
+
+        @DrawableRes int icon;
+        if (mode.getType() == TYPE_BEDTIME) {
+            icon = com.android.internal.R.drawable.ic_zen_mode_type_schedule_time; // Clock
+        } else if (mode.getType() == TYPE_DRIVING) {
+            icon = com.android.internal.R.drawable.ic_zen_mode_type_driving; // Car
+        } else {
+            icon = configurationIntent != null ? R.drawable.ic_zen_mode_trigger_with_activity
+                    : R.drawable.ic_zen_mode_trigger_without_activity;
+        }
+
+        preference.setTitle(title);
+        preference.setSummary(summary);
+        preference.setIcon(icon);
+        preference.setIntent(configurationIntent);
+    }
+
+    private final Preference.OnPreferenceChangeListener mSwitchChangeListener = (p, newValue) -> {
+        confirmChangeEnabled(p, (boolean) newValue);
+        return true;
+    };
+
+    private void confirmChangeEnabled(Preference preference, boolean enabled) {
+        @StringRes int titleFormat = enabled ? R.string.zen_mode_confirm_enable_mode_title
+                : R.string.zen_mode_confirm_disable_mode_title;
+        @StringRes int message = enabled ? R.string.zen_mode_confirm_enable_message
+                : R.string.zen_mode_confirm_disable_message;
+        @StringRes int confirmButton = enabled ? R.string.zen_mode_action_enable
+                : R.string.zen_mode_action_disable;
+
+        new AlertDialog.Builder(mContext)
+                .setTitle(mContext.getString(titleFormat, mModeName))
+                .setMessage(message)
+                .setPositiveButton(confirmButton,
+                        (dialog, which) -> setModeEnabled(enabled))
+                .setNegativeButton(R.string.cancel,
+                        (dialog, which) -> undoToggleSwitch(preference, enabled))
+                .setOnCancelListener(dialog -> undoToggleSwitch(preference, enabled))
+                .show();
+    }
+
+    private void setModeEnabled(boolean enabled) {
+        saveMode((zenMode) -> {
+            if (enabled != zenMode.getRule().isEnabled()) {
+                zenMode.getRule().setEnabled(enabled);
+            }
+            return zenMode;
+        });
+    }
+
+    private void undoToggleSwitch(Preference preference, boolean wasSwitchedTo) {
+        PrimarySwitchPreference switchPreference = (PrimarySwitchPreference) preference;
+        switchPreference.setChecked(!wasSwitchedTo);
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModesBackend.java b/src/com/android/settings/notification/modes/ZenModesBackend.java
deleted file mode 100644
index ad36fc1..0000000
--- a/src/com/android/settings/notification/modes/ZenModesBackend.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * 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.modes;
-
-import android.annotation.Nullable;
-import android.app.ActivityManager;
-import android.app.AutomaticZenRule;
-import android.app.INotificationManager;
-import android.app.NotificationManager;
-import android.content.Context;
-import android.content.pm.ParceledListSlice;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.ServiceManager;
-import android.provider.ContactsContract;
-import android.provider.Settings;
-import android.service.notification.Condition;
-import android.service.notification.ConversationChannelWrapper;
-import android.service.notification.SystemZenRules;
-import android.service.notification.ZenAdapters;
-import android.service.notification.ZenModeConfig;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.R;
-
-import java.time.Duration;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Class used for Settings-NMS interactions related to Mode management.
- *
- * <p>This class converts {@link AutomaticZenRule} instances, as well as the manual zen mode,
- * into the unified {@link ZenMode} format.
- */
-class ZenModesBackend {
-
-    private static final String TAG = "ZenModeBackend";
-
-    @Nullable // Until first usage
-    private static ZenModesBackend sInstance;
-
-    private final NotificationManager mNotificationManager;
-    static INotificationManager sINM = INotificationManager.Stub.asInterface(
-            ServiceManager.getService(Context.NOTIFICATION_SERVICE));
-
-    private final Context mContext;
-
-    static ZenModesBackend getInstance(Context context) {
-        if (sInstance == null) {
-            sInstance = new ZenModesBackend(context.getApplicationContext());
-        }
-        return sInstance;
-    }
-
-    ZenModesBackend(Context context) {
-        mContext = context;
-        mNotificationManager = context.getSystemService(NotificationManager.class);
-    }
-
-    List<ZenMode> getModes() {
-        ArrayList<ZenMode> modes = new ArrayList<>();
-        ZenModeConfig currentConfig = mNotificationManager.getZenModeConfig();
-        modes.add(getManualDndMode(currentConfig));
-
-        Map<String, AutomaticZenRule> zenRules = mNotificationManager.getAutomaticZenRules();
-        for (Map.Entry<String, AutomaticZenRule> zenRuleEntry : zenRules.entrySet()) {
-            String ruleId = zenRuleEntry.getKey();
-            modes.add(new ZenMode(ruleId, zenRuleEntry.getValue(),
-                    isRuleActive(ruleId, currentConfig)));
-        }
-
-        modes.sort((l, r) -> {
-            if (l.isManualDnd()) {
-                return -1;
-            } else if (r.isManualDnd()) {
-                return 1;
-            }
-            return l.getRule().getName().compareTo(r.getRule().getName());
-        });
-
-        return modes;
-    }
-
-    @Nullable
-    ZenMode getMode(String id) {
-        ZenModeConfig currentConfig = mNotificationManager.getZenModeConfig();
-        if (ZenMode.MANUAL_DND_MODE_ID.equals(id)) {
-            return getManualDndMode(currentConfig);
-        } else {
-            AutomaticZenRule rule = mNotificationManager.getAutomaticZenRule(id);
-            if (rule == null) {
-                return null;
-            }
-            return new ZenMode(id, rule, isRuleActive(id, currentConfig));
-        }
-    }
-
-    public ParceledListSlice<ConversationChannelWrapper> getConversations(boolean onlyImportant) {
-        try {
-            return sINM.getConversations(onlyImportant);
-        } catch (Exception e) {
-            Log.w(TAG, "Error calling NoMan", e);
-            return ParceledListSlice.emptyList();
-        }
-    }
-
-    public List<String> getStarredContacts() {
-        Cursor cursor = null;
-        try {
-            cursor = queryStarredContactsData();
-            return getStarredContacts(cursor);
-        } finally {
-            if (cursor != null) {
-                cursor.close();
-            }
-        }
-    }
-
-    @VisibleForTesting
-    List<String> getStarredContacts(Cursor cursor) {
-        List<String> starredContacts = new ArrayList<>();
-        if (cursor != null && cursor.moveToFirst()) {
-            do {
-                String contact = cursor.getString(0);
-                starredContacts.add(contact != null ? contact :
-                        mContext.getString(R.string.zen_mode_starred_contacts_empty_name));
-
-            } while (cursor.moveToNext());
-        }
-        return starredContacts;
-    }
-
-    private Cursor queryStarredContactsData() {
-        return mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
-                new String[]{ContactsContract.Contacts.DISPLAY_NAME_PRIMARY},
-                ContactsContract.Data.STARRED + "=1", null,
-                ContactsContract.Data.TIMES_CONTACTED);
-    }
-
-    Cursor queryAllContactsData() {
-        return mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
-                new String[]{ContactsContract.Contacts.DISPLAY_NAME_PRIMARY},
-                null, null, null);
-    }
-
-    private ZenMode getManualDndMode(ZenModeConfig config) {
-        ZenModeConfig.ZenRule manualRule = config.manualRule;
-        // TODO: b/333682392 - Replace with final strings for name & trigger description
-        AutomaticZenRule manualDndRule = new AutomaticZenRule.Builder(
-                mContext.getString(R.string.zen_mode_settings_title), manualRule.conditionId)
-                .setType(manualRule.type)
-                .setZenPolicy(manualRule.zenPolicy)
-                .setDeviceEffects(manualRule.zenDeviceEffects)
-                .setManualInvocationAllowed(manualRule.allowManualInvocation)
-                .setConfigurationActivity(null) // No further settings
-                .setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY)
-                .build();
-
-        return ZenMode.manualDndMode(manualDndRule, config != null && config.isManualActive());
-    }
-
-    private static boolean isRuleActive(String id, ZenModeConfig config) {
-        if (config == null) {
-            // shouldn't happen if the config is coming from NM, but be safe
-            return false;
-        }
-        ZenModeConfig.ZenRule configRule = config.automaticRules.get(id);
-        return configRule != null && configRule.isAutomaticActive();
-    }
-
-    void updateMode(ZenMode mode) {
-        if (mode.isManualDnd()) {
-            try {
-                NotificationManager.Policy dndPolicy =
-                        new ZenModeConfig().toNotificationPolicy(mode.getPolicy());
-                mNotificationManager.setNotificationPolicy(dndPolicy, /* fromUser= */ true);
-
-                mNotificationManager.setManualZenRuleDeviceEffects(
-                        mode.getRule().getDeviceEffects());
-            } catch (Exception e) {
-                Log.w(TAG, "Error updating manual mode", e);
-            }
-        } else {
-            mNotificationManager.updateAutomaticZenRule(mode.getId(), mode.getRule(),
-                    /* fromUser= */ true);
-        }
-    }
-
-    void activateMode(ZenMode mode, @Nullable Duration forDuration) {
-        if (mode.isManualDnd()) {
-            Uri durationConditionId = null;
-            if (forDuration != null) {
-                durationConditionId = ZenModeConfig.toTimeCondition(mContext,
-                        (int) forDuration.toMinutes(), ActivityManager.getCurrentUser(), true).id;
-            }
-            mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS,
-                    durationConditionId, TAG, /* fromUser= */ true);
-
-        } else {
-            if (forDuration != null) {
-                throw new IllegalArgumentException(
-                        "Only the manual DND mode can be activated for a specific duration");
-            }
-            mNotificationManager.setAutomaticZenRuleState(mode.getId(),
-                    new Condition(mode.getRule().getConditionId(), "", Condition.STATE_TRUE,
-                            Condition.SOURCE_USER_ACTION));
-        }
-    }
-
-    void deactivateMode(ZenMode mode) {
-        if (mode.isManualDnd()) {
-            // When calling with fromUser=true this will not snooze other modes.
-            mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_OFF, null, TAG,
-                    /* fromUser= */ true);
-        } else {
-            // TODO: b/333527800 - This should (potentially) snooze the rule if it was active.
-            mNotificationManager.setAutomaticZenRuleState(mode.getId(),
-                    new Condition(mode.getRule().getConditionId(), "", Condition.STATE_FALSE,
-                            Condition.SOURCE_USER_ACTION));
-        }
-    }
-
-    void removeMode(ZenMode mode) {
-        if (!mode.canBeDeleted()) {
-            throw new IllegalArgumentException("Mode " + mode + " cannot be deleted!");
-        }
-        mNotificationManager.removeAutomaticZenRule(mode.getId(), /* fromUser= */ true);
-    }
-
-    /**
-     * Creates a new custom mode with the provided {@code name}. The mode will be "manual" (i.e.
-     * not have a schedule), this can be later updated by the user in the mode settings page.
-     *
-     * @return the created mode. Only {@code null} if creation failed due to an internal error
-     */
-    @Nullable
-    ZenMode addCustomMode(String name) {
-        ZenModeConfig.ScheduleInfo schedule = new ZenModeConfig.ScheduleInfo();
-        schedule.days = ZenModeConfig.ALL_DAYS;
-        schedule.startHour = 22;
-        schedule.endHour = 7;
-
-        // TODO: b/326442408 - Create as "manual" (i.e. no trigger) instead of schedule-time.
-        AutomaticZenRule rule = new AutomaticZenRule.Builder(name,
-                ZenModeConfig.toScheduleConditionId(schedule))
-                .setPackage(ZenModeConfig.getScheduleConditionProvider().getPackageName())
-                .setType(AutomaticZenRule.TYPE_SCHEDULE_CALENDAR)
-                .setOwner(ZenModeConfig.getScheduleConditionProvider())
-                .setTriggerDescription(SystemZenRules.getTriggerDescriptionForScheduleTime(
-                        mContext, schedule))
-                .setManualInvocationAllowed(true)
-                .build();
-
-        String ruleId = mNotificationManager.addAutomaticZenRule(rule);
-        return getMode(ruleId);
-    }
-}
diff --git a/src/com/android/settings/notification/modes/ZenModesFragmentBase.java b/src/com/android/settings/notification/modes/ZenModesFragmentBase.java
index 3f33b02..652415b 100644
--- a/src/com/android/settings/notification/modes/ZenModesFragmentBase.java
+++ b/src/com/android/settings/notification/modes/ZenModesFragmentBase.java
@@ -16,17 +16,17 @@
 
 package com.android.settings.notification.modes;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.content.Context;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
 import android.os.UserManager;
-import android.provider.Settings.Global;
 import android.util.Log;
 
+import androidx.annotation.VisibleForTesting;
+
 import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 
 /**
  * Base class for all Settings pages controlling Modes behavior.
@@ -35,16 +35,10 @@
     protected static final String TAG = "ZenModesSettings";
     protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
-    private final Handler mHandler = new Handler();
-    private final SettingsObserver mSettingsObserver = new SettingsObserver();
-
     protected Context mContext;
-
     protected ZenModesBackend mBackend;
-
-    // Individual pages must implement this method based on what they should do when
-    // the device's zen mode state changes.
-    protected abstract void updateZenModeState();
+    protected ZenHelperBackend mHelperBackend;
+    private ZenSettingsObserver mSettingsObserver;
 
     ZenModesFragmentBase() {
         super(UserManager.DISALLOW_ADJUST_VOLUME);
@@ -55,12 +49,18 @@
         return TAG;
     }
 
+    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+    void setBackend(ZenModesBackend backend) {
+        mBackend = backend;
+    }
+
     @Override
     public void onAttach(@NonNull Context context) {
         mContext = context;
         mBackend = ZenModesBackend.getInstance(context);
+        mHelperBackend = ZenHelperBackend.getInstance(context);
+        mSettingsObserver = new ZenSettingsObserver(context, this::onUpdatedZenModeState);
         super.onAttach(context);
-        mSettingsObserver.register();
     }
 
     @Override
@@ -73,45 +73,20 @@
                 finish();
             }
         }
+
+        onUpdatedZenModeState(); // Maybe, while we weren't observing.
+        checkNotNull(mSettingsObserver).register();
     }
 
+    /**
+     * Called by this fragment when we know or suspect that Zen Modes data or state has changed.
+     * Individual pages must implement this method to refresh whatever they're displaying.
+     */
+    protected abstract void onUpdatedZenModeState();
+
     @Override
-    public void onResume() {
-        super.onResume();
-        updateZenModeState();
-    }
-
-    @Override
-    public void onDetach() {
-        super.onDetach();
-        mSettingsObserver.unregister();
-    }
-
-    private final class SettingsObserver extends ContentObserver {
-        private static final Uri ZEN_MODE_URI = Global.getUriFor(Global.ZEN_MODE);
-        private static final Uri ZEN_MODE_CONFIG_ETAG_URI = Global.getUriFor(
-                Global.ZEN_MODE_CONFIG_ETAG);
-
-        private SettingsObserver() {
-            super(mHandler);
-        }
-
-        public void register() {
-            getContentResolver().registerContentObserver(ZEN_MODE_URI, false, this);
-            getContentResolver().registerContentObserver(ZEN_MODE_CONFIG_ETAG_URI, false, this);
-        }
-
-        public void unregister() {
-            getContentResolver().unregisterContentObserver(this);
-        }
-
-        @Override
-        public void onChange(boolean selfChange, @Nullable Uri uri) {
-            super.onChange(selfChange, uri);
-            // Shouldn't have any other URIs trigger this method, but check just in case.
-            if (ZEN_MODE_URI.equals(uri) || ZEN_MODE_CONFIG_ETAG_URI.equals(uri)) {
-                updateZenModeState();
-            }
-        }
+    public void onStop() {
+        checkNotNull(mSettingsObserver).unregister();
+        super.onStop();
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java b/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java
new file mode 100644
index 0000000..aba82c8
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModesLinkPreferenceController.java
@@ -0,0 +1,83 @@
+/*
+ * 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.modes;
+
+import android.app.Flags;
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+public class ZenModesLinkPreferenceController extends BasePreferenceController
+        implements LifecycleObserver, OnStart, OnStop {
+
+    private final ZenModesBackend mBackend;
+    private final ZenSettingsObserver mSettingObserver;
+    private final ZenModeSummaryHelper mSummaryBuilder;
+
+    private Preference mPreference;
+
+    public ZenModesLinkPreferenceController(Context context, String key) {
+        super(context, key);
+        mBackend = ZenModesBackend.getInstance(context);
+        mSummaryBuilder = new ZenModeSummaryHelper(context, ZenHelperBackend.getInstance(context));
+        mSettingObserver = new ZenSettingsObserver(context, this::onZenSettingsChanged);
+    }
+
+    @Override
+    @AvailabilityStatus
+    public int getAvailabilityStatus() {
+        return Flags.modesUi() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void onStart() {
+        if (mSettingObserver != null) {
+            mSettingObserver.register();
+        }
+    }
+
+    private void onZenSettingsChanged() {
+        if (mPreference != null) {
+            updateState(mPreference);
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        preference.setSummary(mSummaryBuilder.getModesSummary(mBackend.getModes()));
+    }
+
+    @Override
+    public void onStop() {
+        if (mSettingObserver != null) {
+            mSettingObserver.unregister();
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java b/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java
index c229fb1..b4657a3 100644
--- a/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceController.java
@@ -16,25 +16,82 @@
 
 package com.android.settings.notification.modes;
 
+import android.app.NotificationManager;
+import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.ComponentInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ServiceInfo;
+import android.graphics.drawable.Drawable;
+import android.service.notification.ConditionProviderService;
 
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.annotation.WorkerThread;
 import androidx.preference.Preference;
 
-import com.android.settings.utils.ZenServiceListing;
+import com.android.settings.R;
+import com.android.settingslib.Utils;
 import com.android.settingslib.core.AbstractPreferenceController;
 
-import java.util.Random;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.function.Function;
 
 class ZenModesListAddModePreferenceController extends AbstractPreferenceController {
 
-    private final ZenModesBackend mBackend;
     private final ZenServiceListing mServiceListing;
+    private final OnAddModeListener mOnAddModeListener;
 
-    ZenModesListAddModePreferenceController(Context context, ZenModesBackend backend,
-            ZenServiceListing serviceListing) {
+    private final ConfigurationActivityHelper mConfigurationActivityHelper;
+    private final NotificationManager mNotificationManager;
+    private final PackageManager mPackageManager;
+    private final Function<ApplicationInfo, Drawable> mAppIconRetriever;
+    private final ListeningExecutorService mBackgroundExecutor;
+    private final Executor mUiThreadExecutor;
+
+    record ModeType(String name, Drawable icon, @Nullable String summary,
+                    @Nullable Intent creationActivityIntent) { }
+
+    interface OnAddModeListener {
+        void onAvailableModeTypesForAdd(List<ModeType> types);
+    }
+
+    ZenModesListAddModePreferenceController(Context context, OnAddModeListener onAddModeListener) {
+        this(context, onAddModeListener, new ZenServiceListing(context),
+                new ConfigurationActivityHelper(context.getPackageManager()),
+                context.getSystemService(NotificationManager.class), context.getPackageManager(),
+                applicationInfo -> Utils.getBadgedIcon(context, applicationInfo),
+                Executors.newCachedThreadPool(), context.getMainExecutor());
+    }
+
+    @VisibleForTesting
+    ZenModesListAddModePreferenceController(Context context,
+            OnAddModeListener onAddModeListener, ZenServiceListing serviceListing,
+            ConfigurationActivityHelper configurationActivityHelper,
+            NotificationManager notificationManager, PackageManager packageManager,
+            Function<ApplicationInfo, Drawable> appIconRetriever,
+            ExecutorService backgroundExecutor, Executor uiThreadExecutor) {
         super(context);
-        mBackend = backend;
+        mOnAddModeListener = onAddModeListener;
         mServiceListing = serviceListing;
+        mConfigurationActivityHelper = configurationActivityHelper;
+        mNotificationManager = notificationManager;
+        mPackageManager = packageManager;
+        mAppIconRetriever = appIconRetriever;
+        mBackgroundExecutor = MoreExecutors.listeningDecorator(backgroundExecutor);
+        mUiThreadExecutor = uiThreadExecutor;
     }
 
     @Override
@@ -50,12 +107,79 @@
     @Override
     public void updateState(Preference preference) {
         preference.setOnPreferenceClickListener(pref -> {
-            // TODO: b/326442408 - Launch the proper mode creation flow (using mServiceListing).
-            ZenMode mode = mBackend.addCustomMode("New mode #" + new Random().nextInt(1000));
-            if (mode != null) {
-                ZenSubSettingLauncher.forMode(mContext, mode.getId()).launch();
-            }
+            onClickAddMode();
             return true;
         });
     }
+
+    @VisibleForTesting
+    void onClickAddMode() {
+        FutureUtil.whenDone(
+                mBackgroundExecutor.submit(this::getModeProviders),
+                mOnAddModeListener::onAvailableModeTypesForAdd,
+                mUiThreadExecutor);
+    }
+
+    @WorkerThread
+    private ImmutableList<ModeType> getModeProviders() {
+        ImmutableSet<ComponentInfo> approvedComponents = mServiceListing.loadApprovedComponents();
+
+        ArrayList<ModeType> appProvidedModes = new ArrayList<>();
+        for (ComponentInfo ci: approvedComponents) {
+            ModeType modeType = getValidNewModeTypeFromComponent(ci);
+            if (modeType != null) {
+                appProvidedModes.add(modeType);
+            }
+        }
+
+        return ImmutableList.<ModeType>builder()
+                .add(new ModeType(
+                        mContext.getString(R.string.zen_mode_new_option_custom),
+                        mContext.getDrawable(R.drawable.ic_zen_mode_new_option_custom),
+                        null, null))
+                .addAll(appProvidedModes.stream()
+                        .sorted(Comparator.comparing(ModeType::name))
+                        .toList())
+                .build();
+    }
+
+    /**
+     * Returns a {@link ModeType} object corresponding to the approved {@link ComponentInfo} that
+     * specifies a creatable rule, if such a mode can actually be created (has an associated and
+     * enabled configuration activity, has not exceeded the rule instance limit, etc). Otherwise,
+     * returns {@code null}.
+     */
+    @WorkerThread
+    @Nullable
+    private ModeType getValidNewModeTypeFromComponent(ComponentInfo ci) {
+        if (ci.metaData == null) {
+            return null;
+        }
+
+        String ruleType = (ci instanceof ServiceInfo)
+                ? ci.metaData.getString(ConditionProviderService.META_DATA_RULE_TYPE)
+                : ci.metaData.getString(NotificationManager.META_DATA_AUTOMATIC_RULE_TYPE);
+        if (ruleType == null || ruleType.trim().isEmpty()) {
+            return null;
+        }
+
+        int ruleInstanceLimit = (ci instanceof ServiceInfo)
+                ? ci.metaData.getInt(ConditionProviderService.META_DATA_RULE_INSTANCE_LIMIT, -1)
+                : ci.metaData.getInt(NotificationManager.META_DATA_RULE_INSTANCE_LIMIT, -1);
+        if (ruleInstanceLimit > 0 && mNotificationManager.getRuleInstanceCount(
+                ci.getComponentName()) >= ruleInstanceLimit) {
+            return null; // Would exceed instance limit.
+        }
+
+        ComponentName configurationActivity =
+                mConfigurationActivityHelper.getConfigurationActivityFromApprovedComponent(ci);
+        if (configurationActivity == null) {
+            return null;
+        }
+
+        String appName = ci.applicationInfo.loadLabel(mPackageManager).toString();
+        Drawable appIcon = mAppIconRetriever.apply(ci.applicationInfo);
+        Intent configActivityIntent = new Intent().setComponent(configurationActivity);
+        return new ModeType(ruleType, appIcon, appName, configActivityIntent);
+    }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModesListAddModeTypeChooserDialog.java b/src/com/android/settings/notification/modes/ZenModesListAddModeTypeChooserDialog.java
new file mode 100644
index 0000000..e7905a8
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenModesListAddModeTypeChooserDialog.java
@@ -0,0 +1,116 @@
+/*
+ * 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.modes;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.ImmutableList;
+
+import java.util.List;
+
+public class ZenModesListAddModeTypeChooserDialog extends InstrumentedDialogFragment {
+
+    private static final String TAG = "ZenModesListAddModeTypeChooserDialog";
+
+    private OnChooseModeTypeListener mChooseModeTypeListener;
+    private ImmutableList<ModeType> mOptions;
+
+    interface OnChooseModeTypeListener {
+        void onTypeSelected(ModeType type);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.ZEN_MODE_NEW_TYPE_CHOOSER_DIALOG;
+    }
+
+    static void show(DashboardFragment parent,
+            OnChooseModeTypeListener onChooseModeTypeListener,
+            List<ModeType> options) {
+        ZenModesListAddModeTypeChooserDialog dialog = new ZenModesListAddModeTypeChooserDialog();
+        dialog.mChooseModeTypeListener = onChooseModeTypeListener;
+        dialog.mOptions = ImmutableList.copyOf(options);
+        dialog.setTargetFragment(parent, 0);
+        dialog.show(parent.getParentFragmentManager(), TAG);
+    }
+
+    @NonNull
+    @Override
+    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+        checkState(getContext() != null);
+        return new AlertDialog.Builder(getContext())
+                .setTitle(R.string.zen_mode_new_title)
+                .setAdapter(new OptionsAdapter(getContext(), mOptions),
+                        (dialog, which) -> mChooseModeTypeListener.onTypeSelected(
+                                mOptions.get(which)))
+                .setNegativeButton(R.string.cancel, null)
+                .create();
+    }
+
+    private static class OptionsAdapter extends ArrayAdapter<ModeType> {
+
+        private final LayoutInflater mInflater;
+
+        private OptionsAdapter(Context context,
+                ImmutableList<ModeType> availableModeProviders) {
+            super(context, R.layout.zen_mode_type_item, availableModeProviders);
+            mInflater = LayoutInflater.from(context);
+        }
+
+        @NonNull
+        @Override
+        public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
+            if (convertView == null) {
+                convertView = mInflater.inflate(R.layout.zen_mode_type_item, parent, false);
+            }
+            ImageView imageView = checkNotNull(convertView.findViewById(R.id.icon));
+            TextView title = checkNotNull(convertView.findViewById(R.id.title));
+            TextView subtitle = checkNotNull(convertView.findViewById(R.id.subtitle));
+
+            ModeType option = checkNotNull(getItem(position));
+            imageView.setImageDrawable(option.icon());
+            title.setText(option.name());
+            subtitle.setText(option.summary());
+            subtitle.setVisibility(
+                    Strings.isNullOrEmpty(option.summary()) ? View.GONE : View.VISIBLE);
+
+            return convertView;
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenModesListFragment.java b/src/com/android/settings/notification/modes/ZenModesListFragment.java
index 80678f6..2b58f8e 100644
--- a/src/com/android/settings/notification/modes/ZenModesListFragment.java
+++ b/src/com/android/settings/notification/modes/ZenModesListFragment.java
@@ -16,51 +16,52 @@
 
 package com.android.settings.notification.modes;
 
-import android.app.NotificationManager;
 import android.app.settings.SettingsEnums;
+import android.content.ComponentName;
 import android.content.Context;
-import android.service.notification.ConditionProviderService;
+import android.content.Intent;
 
 import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
+import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
+import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.OnAddModeListener;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.utils.ManagedServiceSettings;
-import com.android.settings.utils.ZenServiceListing;
 import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.search.SearchIndexable;
 
 import com.google.common.collect.ImmutableList;
 
 import java.util.List;
+import java.util.Optional;
 
 @SearchIndexable
 public class ZenModesListFragment extends ZenModesFragmentBase {
 
-    private static final ManagedServiceSettings.Config CONFIG = getConditionProviderConfig();
+    static final int REQUEST_NEW_MODE = 101;
+
+    @Nullable private ComponentName mActivityInvokedForAddNew;
+    @Nullable private ImmutableList<String> mZenModeIdsBeforeAddNew;
 
     @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        ZenServiceListing serviceListing = new ZenServiceListing(getContext(), CONFIG);
-        serviceListing.reloadApprovedServices();
-        return buildPreferenceControllers(context, this, serviceListing);
+        return buildPreferenceControllers(context, mBackend, this::onAvailableModeTypesForAdd);
     }
 
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
-            @Nullable Fragment parent, @Nullable ZenServiceListing serviceListing) {
-        // We need to redefine ZenModesBackend here even though mBackend exists so that this method
-        // can be static; it must be static to be able to be used in SEARCH_INDEX_DATA_PROVIDER.
-        ZenModesBackend backend = ZenModesBackend.getInstance(context);
-
+            ZenModesBackend backend, OnAddModeListener onAddModeListener) {
         return ImmutableList.of(
-                new ZenModesListPreferenceController(context, parent, backend),
-                new ZenModesListAddModePreferenceController(context, backend, serviceListing)
+                new ZenModesListPreferenceController(context, backend),
+                new ZenModesListAddModePreferenceController(context, onAddModeListener)
         );
     }
 
     @Override
-    protected void updateZenModeState() {
+    protected void onUpdatedZenModeState() {
         // TODO: b/322373473 -- update any overall description of modes state here if necessary.
         // Note the preferences linking to individual rules do not need to be updated, as
         // updateState() is called on all preference controllers whenever the page is resumed.
@@ -73,18 +74,58 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO: b/332937635 - add new & set metrics categories correctly
-        return SettingsEnums.NOTIFICATION_ZEN_MODE_AUTOMATION;
+        return SettingsEnums.ZEN_PRIORITY_MODES_LIST;
     }
 
-    private static ManagedServiceSettings.Config getConditionProviderConfig() {
-        return new ManagedServiceSettings.Config.Builder()
-                .setTag(TAG)
-                .setIntentAction(ConditionProviderService.SERVICE_INTERFACE)
-                .setConfigurationIntentAction(NotificationManager.ACTION_AUTOMATIC_ZEN_RULE)
-                .setPermission(android.Manifest.permission.BIND_CONDITION_PROVIDER_SERVICE)
-                .setNoun("condition provider")
-                .build();
+    private void onAvailableModeTypesForAdd(List<ModeType> types) {
+        if (types.size() > 1) {
+            // Show dialog to choose the mode to be created. Continue once the user chooses.
+            ZenModesListAddModeTypeChooserDialog.show(this, this::onChosenModeTypeForAdd, types);
+        } else {
+            // Will be custom_manual.
+            onChosenModeTypeForAdd(types.get(0));
+        }
+    }
+
+    @VisibleForTesting
+    void onChosenModeTypeForAdd(ModeType type) {
+        if (type.creationActivityIntent() != null) {
+            mActivityInvokedForAddNew = type.creationActivityIntent().getComponent();
+            mZenModeIdsBeforeAddNew = ImmutableList.copyOf(
+                    mBackend.getModes().stream().map(ZenMode::getId).toList());
+            startActivityForResult(type.creationActivityIntent(), REQUEST_NEW_MODE);
+        } else {
+            // Custom-manual mode -> "add a mode" screen.
+            new SubSettingLauncher(requireContext())
+                    .setDestination(ZenModeNewCustomFragment.class.getName())
+                    .setSourceMetricsCategory(SettingsEnums.ZEN_PRIORITY_MODES_LIST)
+                    .launch();
+        }
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        // If coming back after starting a 3rd-party configuration activity to create a new mode,
+        // try to identify the created mode. Ideally this would be part of the resultCode/data, but
+        // the existing API doesn't work that way...
+        ComponentName activityInvoked = mActivityInvokedForAddNew;
+        ImmutableList<String> previousIds = mZenModeIdsBeforeAddNew;
+        mActivityInvokedForAddNew = null;
+        mZenModeIdsBeforeAddNew = null;
+        if (requestCode != REQUEST_NEW_MODE || previousIds == null || activityInvoked == null) {
+            return;
+        }
+
+        // If we find a new mode owned by the same package, presumably that's it. Open its page.
+        Optional<ZenMode> createdZenMode = mBackend.getModes().stream()
+                .filter(m -> !previousIds.contains(m.getId()))
+                .filter(m -> m.getRule().getPackageName().equals(activityInvoked.getPackageName()))
+                .findFirst();
+        createdZenMode.ifPresent(
+                mode ->
+                        ZenSubSettingLauncher.forModeFragment(mContext, ZenModeFragment.class,
+                                mode.getId(), getMetricsCategory()).launch());
     }
 
     /**
@@ -105,7 +146,10 @@
                 @Override
                 public List<AbstractPreferenceController> createPreferenceControllers(
                         Context context) {
-                    return buildPreferenceControllers(context, null, null);
+                    // We need to redefine ZenModesBackend here even though mBackend exists so that
+                    // SEARCH_INDEX_DATA_PROVIDER can be static.
+                    return buildPreferenceControllers(context, ZenModesBackend.getInstance(context),
+                            ignoredType -> {});
                 }
             };
 }
diff --git a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
index 7ecfb3a..0c96148 100644
--- a/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
+++ b/src/com/android/settings/notification/modes/ZenModesListItemPreference.java
@@ -15,17 +15,33 @@
  */
 package com.android.settings.notification.modes;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
 import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.Utils;
+import com.android.settingslib.notification.modes.ZenIconLoader;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.base.Strings;
 
 /**
  * Preference representing a single mode item on the modes aggregator page. Clicking on this
  * preference leads to an individual mode's configuration page.
  */
 class ZenModesListItemPreference extends RestrictedPreference {
-    final Context mContext;
-    ZenMode mZenMode;
+
+    private final Context mContext;
+    private ZenMode mZenMode;
+
+    private TextView mTitleView;
+    private TextView mSummaryView;
 
     ZenModesListItemPreference(Context context, ZenMode zenMode) {
         super(context);
@@ -35,19 +51,72 @@
     }
 
     @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        if (holder.findViewById(android.R.id.title) instanceof TextView titleView) {
+            mTitleView = titleView;
+        }
+        if (holder.findViewById(android.R.id.summary) instanceof TextView summaryView) {
+            mSummaryView = summaryView;
+        }
+        updateTextColor(mZenMode);
+    }
+
+    @Override
     public void onClick() {
-        ZenSubSettingLauncher.forMode(mContext, mZenMode.getId()).launch();
+        ZenSubSettingLauncher.forModeFragment(mContext, ZenModeFragment.class, mZenMode.getId(),
+                SettingsEnums.ZEN_PRIORITY_MODES_LIST).launch();
     }
 
     public void setZenMode(ZenMode zenMode) {
+        ZenMode previous = mZenMode;
         mZenMode = zenMode;
-        setTitle(mZenMode.getRule().getName());
-        setSummary(mZenMode.getRule().getTriggerDescription());
-        setIconSize(ICON_SIZE_SMALL);
+        if (zenMode.equals(previous)) {
+            return;
+        }
 
+        setTitle(mZenMode.getName());
+        String dynamicDescription = zenMode.getDynamicDescription(mContext);
+        CharSequence statusText = switch (mZenMode.getStatus()) {
+            case ENABLED_AND_ACTIVE ->
+                    Strings.isNullOrEmpty(dynamicDescription)
+                            ? mContext.getString(R.string.zen_mode_active_text)
+                            : mContext.getString(
+                                    R.string.zen_mode_format_status_and_trigger,
+                                    mContext.getString(R.string.zen_mode_active_text),
+                                    dynamicDescription);
+            case ENABLED -> dynamicDescription;
+            case DISABLED_BY_USER -> mContext.getString(R.string.zen_mode_disabled_by_user);
+            case DISABLED_BY_OTHER -> mContext.getString(R.string.zen_mode_disabled_needs_setup);
+        };
+        setSummary(statusText);
+
+        setIconSize(ICON_SIZE_SMALL);
         FutureUtil.whenDone(
-                mZenMode.getIcon(mContext, IconLoader.getInstance()),
-                icon -> setIcon(IconUtil.applyTint(mContext, icon)),
+                mZenMode.getIcon(mContext, ZenIconLoader.getInstance()),
+                icon -> setIcon(
+                        zenMode.isActive()
+                                ? IconUtil.applyAccentTint(mContext, icon)
+                                : IconUtil.applyNormalTint(mContext, icon)),
                 mContext.getMainExecutor());
+
+        updateTextColor(zenMode);
+    }
+
+    private void updateTextColor(@Nullable ZenMode zenMode) {
+        boolean isActive = zenMode != null && zenMode.isActive();
+        if (mTitleView != null) {
+            mTitleView.setTextColor(Utils.getColorAttr(mContext,
+                    isActive ? android.R.attr.colorAccent : android.R.attr.textColorPrimary));
+        }
+        if (mSummaryView != null) {
+            mSummaryView.setTextColor(Utils.getColorAttr(mContext,
+                    isActive ? android.R.attr.colorAccent : android.R.attr.textColorSecondary));
+        }
+    }
+
+    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+    ZenMode getZenMode() {
+        return mZenMode;
     }
 }
diff --git a/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java b/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java
index 5dcd9eb..12b7278 100644
--- a/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java
+++ b/src/com/android/settings/notification/modes/ZenModesListPreferenceController.java
@@ -20,13 +20,13 @@
 import android.content.res.Resources;
 
 import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import java.util.HashMap;
@@ -38,26 +38,18 @@
  * containing links to each individual mode. This is a central controller that populates and updates
  * all the preferences that then lead to a mode configuration page.
  */
-class ZenModesListPreferenceController extends BasePreferenceController {
+class ZenModesListPreferenceController extends BasePreferenceController
+        implements BasePreferenceController.UiBlocker {
     protected static final String KEY = "zen_modes_list";
 
-    @Nullable
-    protected Fragment mParent;
     protected ZenModesBackend mBackend;
 
-    public ZenModesListPreferenceController(Context context, @Nullable Fragment parent,
-            @NonNull ZenModesBackend backend) {
+    ZenModesListPreferenceController(Context context, @NonNull ZenModesBackend backend) {
         super(context, KEY);
-        mParent = parent;
         mBackend = backend;
     }
 
     @Override
-    public String getPreferenceKey() {
-        return KEY;
-    }
-
-    @Override
     @AvailabilityStatus
     public int getAvailabilityStatus() {
         return Flags.modesUi() ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
@@ -101,6 +93,8 @@
         for (String key : originalPreferences.keySet()) {
             category.removePreferenceRecursively(key);
         }
+
+        setUiBlockerFinished(true);
     }
 
     // Provide search data for the modes, which will allow users to reach the modes page if they
diff --git a/src/com/android/settings/notification/modes/ZenServiceListing.java b/src/com/android/settings/notification/modes/ZenServiceListing.java
new file mode 100644
index 0000000..ccecec5
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenServiceListing.java
@@ -0,0 +1,170 @@
+/*
+ * 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.modes;
+
+import android.app.ActivityManager;
+import android.app.NotificationManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ComponentInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.service.notification.ConditionProviderService;
+import android.util.ArraySet;
+import android.util.Slog;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.WorkerThread;
+
+import com.android.settings.utils.ManagedServiceSettings;
+
+import com.google.common.collect.ImmutableSet;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+class ZenServiceListing {
+
+    static final ManagedServiceSettings.Config CONFIGURATION =
+            new ManagedServiceSettings.Config.Builder()
+                    .setTag("ZenServiceListing")
+                    .setIntentAction(ConditionProviderService.SERVICE_INTERFACE)
+                    .setConfigurationIntentAction(NotificationManager.ACTION_AUTOMATIC_ZEN_RULE)
+                    .setPermission(android.Manifest.permission.BIND_CONDITION_PROVIDER_SERVICE)
+                    .setNoun("condition provider")
+                    .build();
+
+    private final Context mContext;
+    private final Set<ComponentInfo> mApprovedComponents = new ArraySet<>();
+    private final List<Callback> mZenCallbacks = new ArrayList<>();
+    private final NotificationManager mNm;
+
+    ZenServiceListing(Context context) {
+        mContext = context;
+        mNm = context.getSystemService(NotificationManager.class);
+    }
+
+    public ComponentInfo findService(final ComponentName cn) {
+        if (cn == null) {
+            return null;
+        }
+        for (ComponentInfo component : mApprovedComponents) {
+            final ComponentName ci = new ComponentName(component.packageName, component.name);
+            if (ci.equals(cn)) {
+                return component;
+            }
+        }
+        return null;
+    }
+
+    public void addZenCallback(Callback callback) {
+        mZenCallbacks.add(callback);
+    }
+
+    public void removeZenCallback(Callback callback) {
+        mZenCallbacks.remove(callback);
+    }
+
+    @WorkerThread
+    public ImmutableSet<ComponentInfo> loadApprovedComponents() {
+        return loadApprovedComponents(null);
+    }
+
+    @WorkerThread
+    public ImmutableSet<ComponentInfo> loadApprovedComponents(@Nullable String restrictToPkg) {
+        mApprovedComponents.clear();
+
+        List<String> enabledNotificationListenerPkgs = mNm.getEnabledNotificationListenerPackages();
+        List<ComponentInfo> components = new ArrayList<>();
+        getServices(CONFIGURATION, components, mContext.getPackageManager(), restrictToPkg);
+        getActivities(CONFIGURATION, components, mContext.getPackageManager(), restrictToPkg);
+        for (ComponentInfo componentInfo : components) {
+            final String pkg = componentInfo.getComponentName().getPackageName();
+            if (mNm.isNotificationPolicyAccessGrantedForPackage(pkg)
+                    || enabledNotificationListenerPkgs.contains(pkg)) {
+                mApprovedComponents.add(componentInfo);
+            }
+        }
+
+        if (!mApprovedComponents.isEmpty()) {
+            for (Callback callback : mZenCallbacks) {
+                callback.onComponentsReloaded(mApprovedComponents);
+            }
+        }
+
+        return ImmutableSet.copyOf(mApprovedComponents);
+    }
+
+    private static void getServices(ManagedServiceSettings.Config c, List<ComponentInfo> list,
+            PackageManager pm, @Nullable String restrictToPkg) {
+        final int user = ActivityManager.getCurrentUser();
+
+        Intent queryIntent = new Intent(c.intentAction);
+        if (restrictToPkg != null) {
+            queryIntent.setPackage(restrictToPkg);
+        }
+        List<ResolveInfo> installedServices = pm.queryIntentServicesAsUser(
+                queryIntent,
+                PackageManager.GET_SERVICES | PackageManager.GET_META_DATA,
+                user);
+
+        for (int i = 0, count = installedServices.size(); i < count; i++) {
+            ResolveInfo resolveInfo = installedServices.get(i);
+            ServiceInfo info = resolveInfo.serviceInfo;
+
+            if (!c.permission.equals(info.permission)) {
+                Slog.w(c.tag, "Skipping " + c.noun + " service "
+                        + info.packageName + "/" + info.name
+                        + ": it does not require the permission "
+                        + c.permission);
+                continue;
+            }
+            if (list != null) {
+                list.add(info);
+            }
+        }
+    }
+
+    private static void getActivities(ManagedServiceSettings.Config c, List<ComponentInfo> list,
+            PackageManager pm, @Nullable String restrictToPkg) {
+        final int user = ActivityManager.getCurrentUser();
+
+        Intent queryIntent = new Intent(c.configIntentAction);
+        if (restrictToPkg != null) {
+            queryIntent.setPackage(restrictToPkg);
+        }
+        List<ResolveInfo> resolveInfos = pm.queryIntentActivitiesAsUser(
+                queryIntent,
+                PackageManager.GET_ACTIVITIES | PackageManager.GET_META_DATA,
+                user);
+
+        for (int i = 0, count = resolveInfos.size(); i < count; i++) {
+            ResolveInfo resolveInfo = resolveInfos.get(i);
+            ActivityInfo info = resolveInfo.activityInfo;
+            if (list != null) {
+                list.add(info);
+            }
+        }
+    }
+
+    public interface Callback {
+        void onComponentsReloaded(Set<ComponentInfo> components);
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenSettingsObserver.java b/src/com/android/settings/notification/modes/ZenSettingsObserver.java
new file mode 100644
index 0000000..a853646
--- /dev/null
+++ b/src/com/android/settings/notification/modes/ZenSettingsObserver.java
@@ -0,0 +1,68 @@
+/*
+ * 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.modes;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.provider.Settings;
+
+import androidx.annotation.Nullable;
+
+class ZenSettingsObserver extends ContentObserver {
+    private static final Uri ZEN_MODE_URI = Settings.Global.getUriFor(Settings.Global.ZEN_MODE);
+    private static final Uri ZEN_MODE_CONFIG_ETAG_URI = Settings.Global.getUriFor(
+            Settings.Global.ZEN_MODE_CONFIG_ETAG);
+
+    private final Context mContext;
+    @Nullable private Runnable mCallback;
+
+    ZenSettingsObserver(Context context) {
+        this(context, null);
+    }
+
+    ZenSettingsObserver(Context context, @Nullable Runnable callback) {
+        super(context.getMainExecutor(), 0);
+        mContext = context;
+        setOnChangeListener(callback);
+    }
+
+    void register() {
+        mContext.getContentResolver().registerContentObserver(ZEN_MODE_URI, false, this);
+        mContext.getContentResolver().registerContentObserver(ZEN_MODE_CONFIG_ETAG_URI, false,
+                this);
+    }
+
+    void unregister() {
+        mContext.getContentResolver().unregisterContentObserver(this);
+    }
+
+    void setOnChangeListener(@Nullable Runnable callback) {
+        mCallback = callback;
+    }
+
+    @Override
+    public void onChange(boolean selfChange, @Nullable Uri uri) {
+        super.onChange(selfChange, uri);
+        // Shouldn't have any other URIs trigger this method, but check just in case.
+        if (ZEN_MODE_URI.equals(uri) || ZEN_MODE_CONFIG_ETAG_URI.equals(uri)) {
+            if (mCallback != null) {
+                mCallback.run();
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java b/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java
index 11f3492..c02a9d9 100644
--- a/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java
+++ b/src/com/android/settings/notification/modes/ZenSubSettingLauncher.java
@@ -16,24 +16,20 @@
 
 package com.android.settings.notification.modes;
 
-import android.app.settings.SettingsEnums;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
 import android.content.Context;
 import android.os.Bundle;
 
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.DashboardFragment;
 
 class ZenSubSettingLauncher {
-
-    static SubSettingLauncher forMode(Context context, String modeId) {
-        return forModeFragment(context, ZenModeFragment.class, modeId,
-                SettingsEnums.NOTIFICATION_ZEN_MODE_AUTOMATION);
-    }
-
-    private static SubSettingLauncher forModeFragment(Context context,
-            Class<? extends ZenModeFragmentBase> fragmentClass, String modeId,
+    static SubSettingLauncher forModeFragment(Context context,
+            Class<? extends DashboardFragment> fragmentClass, String modeId,
             int sourceMetricsCategory) {
         Bundle bundle = new Bundle();
-        bundle.putString(ZenModeFragmentBase.MODE_ID, modeId);
+        bundle.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
 
         return new SubSettingLauncher(context)
                 .setDestination(fragmentClass.getName())
diff --git a/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java b/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java
index c8d6eb9..bb83a73 100644
--- a/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java
+++ b/src/com/android/settings/notification/zen/SettingsZenDurationDialog.java
@@ -21,13 +21,13 @@
 import android.os.Bundle;
 
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.notification.modes.ZenDurationDialog;
 
 public class SettingsZenDurationDialog extends InstrumentedDialogFragment {
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        return new com.android.settingslib.notification.ZenDurationDialog(
-                getContext()).createDialog();
+        return new ZenDurationDialog(getContext()).createDialog();
     }
 
     @Override
diff --git a/src/com/android/settings/notification/zen/ZenAccessSettings.java b/src/com/android/settings/notification/zen/ZenAccessSettings.java
index f765d6d..4b598db 100644
--- a/src/com/android/settings/notification/zen/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/zen/ZenAccessSettings.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.notification.zen;
 
+import android.app.Flags;
 import android.app.NotificationManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -68,6 +69,9 @@
         mContext = getActivity();
         mPkgMan = mContext.getPackageManager();
         mNoMan = mContext.getSystemService(NotificationManager.class);
+        requireActivity().setTitle(Flags.modesApi() && Flags.modesUi()
+                ? R.string.manage_zen_modes_access_title
+                : R.string.manage_zen_access_title);
         getSettingsLifecycle().addObserver(
                 new ZenAccessSettingObserverMixin(getContext(), this /* listener */));
     }
@@ -75,7 +79,9 @@
     @Override
     public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
-        setEmptyText(R.string.zen_access_empty_text);
+        setEmptyText(Flags.modesApi() && Flags.modesUi()
+                ? R.string.zen_modes_access_empty_text
+                : R.string.zen_access_empty_text);
     }
 
     @Override
@@ -139,7 +145,9 @@
             pref.setOnPreferenceClickListener(preference -> {
                 AppInfoBase.startAppInfoFragment(
                         ZenAccessDetails.class  /* fragment */,
-                        getString(R.string.manage_zen_access_title) /* titleRes */,
+                        getString(Flags.modesApi() && Flags.modesUi()
+                                ? R.string.manage_zen_modes_access_title
+                                : R.string.manage_zen_access_title),
                         pkg,
                         app.uid,
                         this /* source */,
@@ -154,7 +162,7 @@
 
     /**
      * @return the summary for the current state of whether the app associated with the given
-     * {@param packageName} is allowed to enter picture-in-picture.
+     * {@param packageName} is allowed to manage DND / Priority Modes.
      */
     private int getPreferenceSummary(String packageName) {
         final boolean enabled = ZenAccessController.hasAccess(getContext(), packageName);
diff --git a/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java b/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java
index 11def66..f243a51 100644
--- a/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java
+++ b/src/com/android/settings/notification/zen/ZenDurationDialogPreference.java
@@ -23,7 +23,7 @@
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.settingslib.CustomDialogPreferenceCompat;
-import com.android.settingslib.notification.ZenDurationDialog;
+import com.android.settingslib.notification.modes.ZenDurationDialog;
 
 public class ZenDurationDialogPreference extends CustomDialogPreferenceCompat {
 
diff --git a/src/com/android/settings/notification/zen/ZenModeBackend.java b/src/com/android/settings/notification/zen/ZenModeBackend.java
index 426f52d..de641c5 100644
--- a/src/com/android/settings/notification/zen/ZenModeBackend.java
+++ b/src/com/android/settings/notification/zen/ZenModeBackend.java
@@ -116,7 +116,7 @@
                 ActivityManager.getCurrentUser(), true).id;
         if (android.app.Flags.modesApi()) {
             mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS,
-                        conditionId, TAG, /* fromUser= */ true);
+                    conditionId, TAG, /* fromUser= */ true);
         } else {
             mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS,
                     conditionId, TAG);
@@ -241,12 +241,14 @@
         }
 
         savePolicy(getNewDefaultPriorityCategories(allowSenders, category),
-            priorityCallSenders, priorityMessagesSenders, mPolicy.suppressedVisualEffects,
+                priorityCallSenders, priorityMessagesSenders, mPolicy.suppressedVisualEffects,
                 mPolicy.priorityConversationSenders);
 
-        if (ZenModeSettingsBase.DEBUG) Log.d(TAG, "onPrefChange allow" +
-                stringCategory + "=" + allowSenders + " allow" + stringCategory + "From="
-                + ZenModeConfig.sourceToString(allowSendersFrom));
+        if (ZenModeSettingsBase.DEBUG) {
+            Log.d(TAG, "onPrefChange allow"
+                    + stringCategory + "=" + allowSenders + " allow" + stringCategory + "From="
+                    + ZenModeConfig.sourceToString(allowSendersFrom));
+        }
     }
 
     protected void saveConversationSenders(int val) {
@@ -280,7 +282,7 @@
         switch (contactType) {
             case ZenPolicy.PEOPLE_TYPE_ANYONE:
                 return ZEN_MODE_FROM_ANYONE;
-            case  ZenPolicy.PEOPLE_TYPE_CONTACTS:
+            case ZenPolicy.PEOPLE_TYPE_CONTACTS:
                 return ZEN_MODE_FROM_CONTACTS;
             case ZenPolicy.PEOPLE_TYPE_STARRED:
                 return ZEN_MODE_FROM_STARRED;
@@ -308,7 +310,7 @@
         switch (setting) {
             case ZenPolicy.PEOPLE_TYPE_ANYONE:
                 return NotificationManager.Policy.PRIORITY_SENDERS_ANY;
-            case  ZenPolicy.PEOPLE_TYPE_CONTACTS:
+            case ZenPolicy.PEOPLE_TYPE_CONTACTS:
                 return NotificationManager.Policy.PRIORITY_SENDERS_CONTACTS;
             case ZenPolicy.PEOPLE_TYPE_STARRED:
                 return NotificationManager.Policy.PRIORITY_SENDERS_STARRED;
@@ -321,7 +323,7 @@
     protected int getAlarmsTotalSilencePeopleSummary(int category) {
         if (category == NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES) {
             return R.string.zen_mode_none_messages;
-        } else if (category == NotificationManager.Policy.PRIORITY_CATEGORY_CALLS){
+        } else if (category == NotificationManager.Policy.PRIORITY_CATEGORY_CALLS) {
             return R.string.zen_mode_none_calls;
         } else if (category == NotificationManager.Policy.PRIORITY_CATEGORY_CONVERSATIONS) {
             return R.string.zen_mode_from_no_conversations;
@@ -470,8 +472,8 @@
         if (cursor != null && cursor.moveToFirst()) {
             do {
                 String contact = cursor.getString(0);
-                starredContacts.add(contact != null ? contact :
-                        mContext.getString(R.string.zen_mode_starred_contacts_empty_name));
+                int emptyNameId = R.string.zen_mode_starred_contacts_empty_name;
+                starredContacts.add(contact != null ? contact : mContext.getString(emptyNameId));
 
             } while (cursor.moveToNext());
         }
diff --git a/src/com/android/settings/notification/zen/ZenModePreferenceController.java b/src/com/android/settings/notification/zen/ZenModePreferenceController.java
index 7c36d80..c21bc3b 100644
--- a/src/com/android/settings/notification/zen/ZenModePreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModePreferenceController.java
@@ -28,9 +28,7 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.notification.modes.ZenModesListFragment;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnPause;
 import com.android.settingslib.core.lifecycle.events.OnResume;
@@ -51,7 +49,6 @@
         super.displayPreference(screen);
         Preference preference = screen.findPreference(getPreferenceKey());
         mSettingObserver = new SettingObserver(preference);
-        maybeSetTitleAndDestination(preference);
     }
 
     @Override
@@ -70,28 +67,17 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return AVAILABLE_UNSEARCHABLE;
+        return Flags.modesUi() ? UNSUPPORTED_ON_DEVICE : AVAILABLE_UNSEARCHABLE;
     }
 
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
-        maybeSetTitleAndDestination(preference);
         if (preference.isEnabled()) {
             preference.setSummary(mSummaryBuilder.getSoundSummary());
         }
     }
 
-    // Only when modes_ui is active: change title & target fragment.
-    private void maybeSetTitleAndDestination(Preference preference) {
-        if (!Flags.modesUi()) {
-            return;
-        }
-
-        preference.setTitle(R.string.zen_modes_list_title);
-        preference.setFragment(ZenModesListFragment.class.getCanonicalName());
-    }
-
     class SettingObserver extends ContentObserver {
         private final Uri ZEN_MODE_URI = Settings.Global.getUriFor(Settings.Global.ZEN_MODE);
         private final Uri ZEN_MODE_CONFIG_ETAG_URI = Settings.Global.getUriFor(
diff --git a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
index 4f6f058..d16b1e4 100644
--- a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
+++ b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
@@ -132,8 +132,8 @@
         final Uri contentUri = new Uri.Builder().appendPath(ZEN_MODE_SLICE_KEY).build();
         final String screenTitle = context.getText(R.string.zen_mode_settings_title).toString();
         return SliceBuilderUtils.buildSearchResultPageIntent(context,
-                ZenModeSettings.class.getName(), ZEN_MODE_SLICE_KEY, screenTitle,
-                SettingsEnums.NOTIFICATION_ZEN_MODE, R.string.menu_key_notifications)
+                        ZenModeSettings.class.getName(), ZEN_MODE_SLICE_KEY, screenTitle,
+                        SettingsEnums.NOTIFICATION_ZEN_MODE, R.string.menu_key_notifications)
                 .setClassName(context.getPackageName(), SubSettings.class.getName())
                 .setData(contentUri);
     }
diff --git a/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt b/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt
index f76e29a..58afb25 100644
--- a/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt
+++ b/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt
@@ -39,4 +39,12 @@
      * @param logger To log B&R stats.
      */
     fun getSoundBackupHelper(context: Context, logger: BackupRestoreEventLogger): BackupHelper
+
+    /**
+     * Return a BackupHelper for backup accessibility appearance related settings.
+     *
+     * @param context App context
+     * @param logger To log B&R stats.
+     */
+    fun getAccessibilityAppearanceBackupHelper(context: Context, logger: BackupRestoreEventLogger): BackupHelper
 }
\ No newline at end of file
diff --git a/src/com/android/settings/overlay/FeatureFactory.kt b/src/com/android/settings/overlay/FeatureFactory.kt
index 675d789..84b82cb 100644
--- a/src/com/android/settings/overlay/FeatureFactory.kt
+++ b/src/com/android/settings/overlay/FeatureFactory.kt
@@ -22,7 +22,6 @@
 import com.android.settings.applications.ApplicationFeatureProvider
 import com.android.settings.biometrics.face.FaceFeatureProvider
 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider
 import com.android.settings.bluetooth.BluetoothFeatureProvider
 import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider
 import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
@@ -119,11 +118,6 @@
     abstract val fingerprintFeatureProvider: FingerprintFeatureProvider
 
     /**
-     * Gets implementation for Biometrics repository provider.
-     */
-    abstract val biometricsRepositoryProvider: BiometricsRepositoryProvider
-
-    /**
      * Gets implementation for the WifiTrackerLib.
      */
     abstract val wifiTrackerLibProvider: WifiTrackerLibProvider
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.kt b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
index 2142ea5..a21d7e3 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.kt
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
@@ -31,7 +31,6 @@
 import com.android.settings.biometrics.face.FaceFeatureProviderImpl
 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProviderImpl
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProviderImpl
 import com.android.settings.bluetooth.BluetoothFeatureProvider
 import com.android.settings.bluetooth.BluetoothFeatureProviderImpl
 import com.android.settings.connecteddevice.dock.DockUpdaterFeatureProviderImpl
@@ -152,8 +151,6 @@
         FingerprintFeatureProviderImpl()
     }
 
-    override val biometricsRepositoryProvider by lazy { BiometricsRepositoryProviderImpl() }
-
     override val wifiTrackerLibProvider: WifiTrackerLibProvider by lazy {
         WifiTrackerLibProviderImpl()
     }
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
index 02f5b86..5030b6a 100644
--- a/src/com/android/settings/password/BiometricFragment.java
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -16,8 +16,10 @@
 
 package com.android.settings.password;
 
+import static android.hardware.biometrics.BiometricConstants.BIOMETRIC_ERROR_USER_CANCELED;
+
 import android.app.settings.SettingsEnums;
-import android.content.ComponentName;
+import android.hardware.biometrics.BiometricManager;
 import android.hardware.biometrics.BiometricPrompt;
 import android.hardware.biometrics.BiometricPrompt.AuthenticationCallback;
 import android.hardware.biometrics.BiometricPrompt.AuthenticationResult;
@@ -41,7 +43,6 @@
     private static final String TAG = "ConfirmDeviceCredential/BiometricFragment";
 
     private static final String KEY_PROMPT_INFO = "prompt_info";
-    private static final String KEY_CALLING_ACTIVITY = "calling_activity";
 
     // Re-set by the application. Should be done upon orientation changes, etc
     private Executor mClientExecutor;
@@ -91,13 +92,10 @@
      * @param promptInfo
      * @return
      */
-    public static BiometricFragment newInstance(PromptInfo promptInfo,
-            ComponentName callingActivity) {
+    public static BiometricFragment newInstance(PromptInfo promptInfo) {
         BiometricFragment biometricFragment = new BiometricFragment();
         final Bundle bundle = new Bundle();
         bundle.putParcelable(KEY_PROMPT_INFO, promptInfo);
-
-        bundle.putParcelable(KEY_CALLING_ACTIVITY, callingActivity);
         biometricFragment.setArguments(bundle);
         return biometricFragment;
     }
@@ -132,12 +130,10 @@
 
         final Bundle bundle = getArguments();
         final PromptInfo promptInfo = bundle.getParcelable(KEY_PROMPT_INFO);
-        final ComponentName callingActivity = bundle.getParcelable(KEY_CALLING_ACTIVITY);
-
         BiometricPrompt.Builder promptBuilder = new BiometricPrompt.Builder(getContext())
                 .setTitle(promptInfo.getTitle())
                 .setUseDefaultTitle() // use default title if title is null/empty
-                .setDeviceCredentialAllowed(true)
+                .setAllowedAuthenticators(promptInfo.getAuthenticators())
                 .setSubtitle(promptInfo.getSubtitle())
                 .setDescription(promptInfo.getDescription())
                 .setTextForDeviceCredential(
@@ -149,7 +145,8 @@
                         promptInfo.isDisallowBiometricsIfPolicyExists())
                 .setShowEmergencyCallButton(promptInfo.isShowEmergencyCallButton())
                 .setReceiveSystemEvents(true)
-                .setComponentNameForConfirmDeviceCredentialActivity(callingActivity);
+                .setRealCallerForConfirmDeviceCredentialActivity(
+                        promptInfo.getRealCallerForConfirmDeviceCredentialActivity());
         if (promptInfo.getLogoRes() != 0){
             promptBuilder.setLogoRes(promptInfo.getLogoRes());
         }
@@ -170,6 +167,15 @@
         if (promptInfo.isUseDefaultSubtitle()) {
             promptBuilder.setUseDefaultSubtitle();
         }
+
+        if ((promptInfo.getAuthenticators()
+                & BiometricManager.Authenticators.DEVICE_CREDENTIAL) == 0) {
+            promptBuilder.setNegativeButton(promptInfo.getNegativeButtonText(),
+                    getContext().getMainExecutor(),
+                    (dialog, which) -> mAuthenticationCallback.onAuthenticationError(
+                            BIOMETRIC_ERROR_USER_CANCELED,
+                            null /* errString */));
+        }
         mBiometricPrompt = promptBuilder.build();
     }
 
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index ce9a566..0909110 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -160,11 +160,14 @@
         static final int CHOOSE_LOCK_BEFORE_BIOMETRIC_REQUEST = 103;
         @VisibleForTesting
         static final int SKIP_FINGERPRINT_REQUEST = 104;
+        @VisibleForTesting
+        static final int BIOMETRIC_AUTH_REQUEST = 105;
 
         private LockPatternUtils mLockPatternUtils;
         private DevicePolicyManager mDpm;
         private boolean mRequestGatekeeperPasswordHandle = false;
         private boolean mPasswordConfirmed = false;
+        private boolean mBiometricsAuthSuccessful = false;
         private boolean mWaitingForConfirmation = false;
         private boolean mWaitingForActivityResult = false;
         private LockscreenCredential mUserPassword;
@@ -488,6 +491,23 @@
                     ? data.getParcelableExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD)
                     : null;
                 updatePreferencesOrFinish(false /* isRecreatingActivity */);
+                final Utils.BiometricStatus biometricAuthStatus =
+                        Utils.requestBiometricAuthenticationForMandatoryBiometrics(getActivity(),
+                                false /* biometricsAuthenticationRequested */,
+                                mUserId);
+                if (biometricAuthStatus == Utils.BiometricStatus.OK) {
+                    Utils.launchBiometricPromptForMandatoryBiometrics(this,
+                            BIOMETRIC_AUTH_REQUEST,
+                            mUserId, true /* hideBackground */);
+                } else if (biometricAuthStatus != Utils.BiometricStatus.NOT_ACTIVE) {
+                    finish();
+                }
+            } else if (requestCode == BIOMETRIC_AUTH_REQUEST) {
+                if (resultCode == Activity.RESULT_OK) {
+                    mBiometricsAuthSuccessful = true;
+                } else {
+                    finish();
+                }
             } else if (requestCode == CHOOSE_LOCK_REQUEST) {
                 if (resultCode != RESULT_CANCELED) {
                     getActivity().setResult(resultCode, data);
@@ -763,6 +783,9 @@
                         entries.removePreference(pref);
                     } else if (!enabled) {
                         pref.setEnabled(false);
+                        pref.setSummary(
+                                com.android.settingslib.widget
+                                        .restricted.R.string.disabled_by_admin);
                     }
                 }
             }
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index a645300..bcf1795 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -271,6 +271,8 @@
 
         private static final int CONFIRM_EXISTING_REQUEST = 58;
         static final int RESULT_FINISHED = RESULT_FIRST_USER;
+        private boolean mIsErrorTooShort = true;
+
         /** Used to store the profile type for which pin/password is being set */
         protected enum ProfileType {
             None,
@@ -672,6 +674,11 @@
             view.addView(mPasswordRestrictionView);
         }
 
+        @VisibleForTesting
+        View getPasswordRequirementsView() {
+            return mPasswordRestrictionView;
+        }
+
         private void createHintMessageView(ViewGroup view) {
             if (mPasswordRestrictionView != null) {
                 return;
@@ -855,6 +862,7 @@
          */
         String[] convertErrorCodeToMessages() {
             List<String> messages = new ArrayList<>();
+            mIsErrorTooShort = false;
             for (PasswordValidationError error : mValidationErrors) {
                 switch (error.errorCode) {
                     case CONTAINS_INVALID_CHARACTERS:
@@ -889,6 +897,7 @@
                                 R.string.lockpassword_password_requires_nonnumerical));
                         break;
                     case TOO_SHORT:
+                        mIsErrorTooShort = true;
                         String message = StringUtil.getIcuPluralsString(getContext(),
                                 error.requirement,
                                 mIsAlphaMode
@@ -951,12 +960,13 @@
                     ? LockscreenCredential.createPassword(mPasswordEntry.getText())
                     : LockscreenCredential.createPin(mPasswordEntry.getText());
             final int length = password.size();
+
             if (mUiStage == Stage.Introduction) {
                 mPasswordRestrictionView.setVisibility(View.VISIBLE);
                 final boolean passwordCompliant = validatePassword(password);
                 String[] messages = convertErrorCodeToMessages();
                 // Update the fulfillment of requirements.
-                mPasswordRequirementAdapter.setRequirements(messages);
+                mPasswordRequirementAdapter.setRequirements(messages, mIsErrorTooShort);
                 // set the visibility of pin_auto_confirm option accordingly
                 setAutoPinConfirmOption(passwordCompliant, length);
                 // Enable/Disable the next button accordingly.
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index 7f362c3..d7d1531 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -17,10 +17,10 @@
 
 package com.android.settings.password;
 
+import static android.Manifest.permission.SET_BIOMETRIC_DIALOG_ADVANCED;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.CONFIRM_WORK_PROFILE_PASSWORD_HEADER;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.CONFIRM_WORK_PROFILE_PATTERN_HEADER;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.CONFIRM_WORK_PROFILE_PIN_HEADER;
-import static android.Manifest.permission.SET_BIOMETRIC_DIALOG_ADVANCED;
 import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS;
 
 import static com.android.systemui.biometrics.Utils.toBitmap;
@@ -40,6 +40,7 @@
 import android.graphics.Bitmap;
 import android.graphics.Color;
 import android.hardware.biometrics.BiometricConstants;
+import android.hardware.biometrics.BiometricManager;
 import android.hardware.biometrics.BiometricPrompt;
 import android.hardware.biometrics.BiometricPrompt.AuthenticationCallback;
 import android.hardware.biometrics.PromptInfo;
@@ -76,6 +77,11 @@
     /** Use this extra value to provide a custom logo description for the biometric prompt. **/
     public static final String CUSTOM_BIOMETRIC_PROMPT_LOGO_DESCRIPTION_KEY =
             "custom_logo_description";
+    public static final String BIOMETRIC_PROMPT_AUTHENTICATORS = "biometric_prompt_authenticators";
+    public static final String BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT =
+            "biometric_prompt_negative_button_text";
+    public static final String BIOMETRIC_PROMPT_HIDE_BACKGROUND =
+            "biometric_prompt_hide_background";
 
     public static class InternalActivity extends ConfirmDeviceCredentialActivity {
     }
@@ -98,6 +104,7 @@
     private boolean mForceVerifyPath = false;
     private boolean mGoingToBackground;
     private boolean mWaitingForBiometricCallback;
+    private int mBiometricsAuthenticators;
 
     private Executor mExecutor = (runnable -> {
         mHandler.post(runnable);
@@ -116,8 +123,14 @@
                     Log.i(TAG, "Finishing, user no longer valid: " + mUserId);
                     finish();
                 } else {
-                    // All other errors go to some version of CC
-                    showConfirmCredentials();
+                    if ((mBiometricsAuthenticators
+                            & BiometricManager.Authenticators.DEVICE_CREDENTIAL) != 0) {
+                        // All other errors go to some version of CC
+                        showConfirmCredentials();
+                    } else {
+                        Log.i(TAG, "Finishing, device credential not requested");
+                        finish();
+                    }
                 }
             } else if (mWaitingForBiometricCallback) { // mGoingToBackground is true
                 mWaitingForBiometricCallback = false;
@@ -161,15 +174,20 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
-        getWindow().setStatusBarColor(Color.TRANSPARENT);
+        final Intent intent = getIntent();
+        if (intent.getBooleanExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, false)) {
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+            getWindow().setDimAmount(1);
+            intent.removeExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND);
+        } else {
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+            getWindow().setStatusBarColor(Color.TRANSPARENT);
+        }
 
         mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
         mUserManager = UserManager.get(this);
         mTrustManager = getSystemService(TrustManager.class);
         mLockPatternUtils = new LockPatternUtils(this);
-
-        Intent intent = getIntent();
         mContext = this;
         mCheckDevicePolicyManager = intent
                 .getBooleanExtra(KeyguardManager.EXTRA_DISALLOW_BIOMETRICS_IF_POLICY_EXISTS, false);
@@ -177,6 +195,11 @@
         mDetails = intent.getCharSequenceExtra(KeyguardManager.EXTRA_DESCRIPTION);
         String alternateButton = intent.getStringExtra(
                 KeyguardManager.EXTRA_ALTERNATE_BUTTON_LABEL);
+        mBiometricsAuthenticators = intent.getIntExtra(BIOMETRIC_PROMPT_AUTHENTICATORS,
+                BiometricManager.Authenticators.DEVICE_CREDENTIAL
+                        | BiometricManager.Authenticators.BIOMETRIC_WEAK);
+        final String negativeButtonText = intent.getStringExtra(
+                BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT);
         final boolean frp =
                 KeyguardManager.ACTION_CONFIRM_FRP_CREDENTIAL.equals(intent.getAction());
         final boolean repairMode =
@@ -213,6 +236,9 @@
         promptInfo.setTitle(mTitle);
         promptInfo.setDescription(mDetails);
         promptInfo.setDisallowBiometricsIfPolicyExists(mCheckDevicePolicyManager);
+        promptInfo.setAuthenticators(mBiometricsAuthenticators);
+        promptInfo.setNegativeButtonText(negativeButtonText);
+        promptInfo.setRealCallerForConfirmDeviceCredentialActivity(getCallingActivity());
 
         if (android.multiuser.Flags.enablePrivateSpaceFeatures()
                 && android.multiuser.Flags.usePrivateSpaceIconInBiometricPrompt()
@@ -478,8 +504,7 @@
         boolean newFragment = false;
 
         if (mBiometricFragment == null) {
-            mBiometricFragment = BiometricFragment.newInstance(promptInfo,
-                    getCallingActivity());
+            mBiometricFragment = BiometricFragment.newInstance(promptInfo);
             newFragment = true;
         }
         mBiometricFragment.setCallbacks(mExecutor, mAuthenticationCallback);
diff --git a/src/com/android/settings/password/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
index b9b1810..ead79d7 100644
--- a/src/com/android/settings/password/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -64,6 +64,7 @@
 import com.android.internal.widget.LockscreenCredential;
 import com.android.internal.widget.TextViewInputDisabler;
 import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
 import com.android.settingslib.animation.AppearAnimationUtils;
 import com.android.settingslib.animation.DisappearAnimationUtils;
 
@@ -723,6 +724,7 @@
             Intent result = new Intent();
             if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
                 result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
+                SetupRedactionInterstitial.setEnabled(getContext(), true);
             }
             mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
                     /* timeoutMs= */ 0, mEffectiveUserId);
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index 3415478..28d790e 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -54,6 +54,7 @@
 import com.android.internal.widget.LockPatternView.Cell;
 import com.android.internal.widget.LockscreenCredential;
 import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
 import com.android.settingslib.animation.AppearAnimationCreator;
 import com.android.settingslib.animation.AppearAnimationUtils;
 import com.android.settingslib.animation.DisappearAnimationUtils;
@@ -751,6 +752,7 @@
             Intent result = new Intent();
             if (mRemoteValidation && containsGatekeeperPasswordHandle(resultData)) {
                 result.putExtra(EXTRA_KEY_GK_PW_HANDLE, getGatekeeperPasswordHandle(resultData));
+                SetupRedactionInterstitial.setEnabled(getContext(), true);
             }
             mCredentialCheckResultTracker.setResult(/* matched= */ true, result,
                     /* timeoutMs= */ 0, mEffectiveUserId);
diff --git a/src/com/android/settings/password/PasswordRequirementAdapter.java b/src/com/android/settings/password/PasswordRequirementAdapter.java
index 7cf6a00..b17f864 100644
--- a/src/com/android/settings/password/PasswordRequirementAdapter.java
+++ b/src/com/android/settings/password/PasswordRequirementAdapter.java
@@ -36,6 +36,7 @@
 
     private String[] mRequirements;
     private Context mContext;
+    private boolean mIsTooShortError = true;
 
     public PasswordRequirementAdapter(Context context) {
         mContext = context;
@@ -54,8 +55,9 @@
         return  mRequirements.length;
     }
 
-    public void setRequirements(String[] requirements) {
+    public void setRequirements(String[] requirements, boolean isPasswordShort) {
         mRequirements = requirements;
+        mIsTooShortError = isPasswordShort;
         notifyDataSetChanged();
     }
 
@@ -74,7 +76,12 @@
         final int fontSize = mContext.getResources().getDimensionPixelSize(
                 R.dimen.password_requirement_font_size);
         holder.mDescriptionText.setText(mRequirements[position]);
-        holder.mDescriptionText.setTextAppearance(R.style.ScreenLockPasswordHintTextFontStyle);
+        if (mIsTooShortError) {
+            holder.mDescriptionText.setTextAppearance(R.style.ScreenLockPasswordHintTextFontStyle);
+        } else {
+            holder.mDescriptionText.
+                    setTextAppearance(R.style.ScreenLockPasswordHintTextFontStyleError);
+        }
         holder.mDescriptionText.setTextSize(fontSize / mContext.getResources()
                 .getDisplayMetrics().scaledDensity);
     }
diff --git a/src/com/android/settings/password/PasswordUtils.java b/src/com/android/settings/password/PasswordUtils.java
index a54df94..8c8afc2 100644
--- a/src/com/android/settings/password/PasswordUtils.java
+++ b/src/com/android/settings/password/PasswordUtils.java
@@ -116,7 +116,7 @@
             final ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams(
                     ViewGroup.LayoutParams.WRAP_CONTENT,
                     ViewGroup.LayoutParams.WRAP_CONTENT);
-            lp.leftMargin = layoutTitleParams.leftMargin;
+            lp.setMarginStart(layoutTitleParams.leftMargin);
             lp.topMargin = (int) context.getResources().getDimensionPixelSize(
                     R.dimen.screen_lock_options_button_margin_top);
             optButton.setPadding(0, 0, 0, 0);
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index 0ba52ea..36756f9 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -124,9 +124,7 @@
 
     @Override
     public void launchChooseLock(Bundle chooseLockFingerprintExtras) {
-        final boolean isInSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
-        Intent intent = isInSetupWizard ? new Intent(this, SetupChooseLockGeneric.class)
-                : new Intent(this, ChooseLockGeneric.class);
+        final Intent intent = new Intent(this, SetupChooseLockGeneric.class);
         intent.setAction(mNewPasswordAction);
         intent.putExtras(chooseLockFingerprintExtras);
         intent.putExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index cfd12f0..1b771a2 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -243,6 +243,7 @@
         @Override
         protected void onCreate(Bundle savedState) {
             setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+            setTheme(R.style.SettingsPreferenceTheme_SetupWizard);
             ThemeHelper.trySetDynamicColor(this);
             super.onCreate(savedState);
         }
diff --git a/src/com/android/settings/print/PrintSettingsPageProvider.kt b/src/com/android/settings/print/PrintSettingsPageProvider.kt
index aac0a5d..f28f0bc 100644
--- a/src/com/android/settings/print/PrintSettingsPageProvider.kt
+++ b/src/com/android/settings/print/PrintSettingsPageProvider.kt
@@ -17,16 +17,32 @@
 package com.android.settings.print
 
 import android.app.settings.SettingsEnums
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
 import android.os.Bundle
+import android.provider.Settings
 import androidx.annotation.VisibleForTesting
 import androidx.compose.foundation.Image
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.Add
+import androidx.compose.material.icons.outlined.Print
+import androidx.compose.material3.Icon
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
 import androidx.compose.runtime.remember
+import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.alpha
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.dp
 import androidx.core.os.bundleOf
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
@@ -36,13 +52,18 @@
 import com.android.settings.print.PrintSettingsFragment.EXTRA_SERVICE_COMPONENT_NAME
 import com.android.settings.print.PrintSettingsFragment.EXTRA_TITLE
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.compose.rememberContext
 import com.android.settingslib.spa.framework.compose.rememberDrawablePainter
 import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.framework.theme.SettingsOpacity
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
 import com.android.settingslib.spa.widget.ui.Category
+import com.android.settingslib.spa.widget.ui.SettingsIcon
+import com.android.settingslib.spaprivileged.settingsprovider.settingsSecureStringFlow
 import com.android.settingslib.spaprivileged.template.common.UserProfilePager
+import kotlinx.coroutines.flow.Flow
 
 object PrintSettingsPageProvider : SettingsPageProvider {
     override val name = "PrintSettings"
@@ -52,51 +73,101 @@
         RegularScaffold(title = stringResource(R.string.print_settings)) {
             val context = LocalContext.current
             val printRepository = remember(context) { PrintRepository(context) }
-            UserProfilePager {
-                PrintServices(printRepository)
-            }
+            UserProfilePager { PrintServices(printRepository) }
         }
     }
 
     @Composable
     private fun PrintServices(printRepository: PrintRepository) {
-        val printServiceDisplayInfos by remember {
-            printRepository.printServiceDisplayInfosFlow()
-        }.collectAsStateWithLifecycle(initialValue = emptyList())
-        Category(title = stringResource(R.string.print_settings_title)) {
-            for (printServiceDisplayInfo in printServiceDisplayInfos) {
-                PrintService(printServiceDisplayInfo)
+        val printServiceDisplayInfos by
+            remember { printRepository.printServiceDisplayInfosFlow() }
+                .collectAsStateWithLifecycle(initialValue = emptyList())
+        if (printServiceDisplayInfos.isEmpty()) {
+            NoServicesInstalled()
+        } else {
+            Category(title = stringResource(R.string.print_settings_title)) {
+                for (printServiceDisplayInfo in printServiceDisplayInfos) {
+                    PrintService(printServiceDisplayInfo)
+                }
             }
         }
+        AddPrintService()
+    }
+
+    @Composable
+    private fun NoServicesInstalled() {
+        Column(
+            modifier = Modifier.fillMaxSize().padding(SettingsDimension.itemPaddingAround),
+            horizontalAlignment = Alignment.CenterHorizontally,
+        ) {
+            Icon(
+                imageVector = Icons.Outlined.Print,
+                contentDescription = null,
+                modifier =
+                    Modifier.size(110.dp)
+                        .padding(SettingsDimension.itemPaddingAround)
+                        .alpha(SettingsOpacity.SurfaceTone),
+            )
+            Text(
+                text = stringResource(R.string.print_no_services_installed),
+                style = MaterialTheme.typography.titleLarge,
+            )
+        }
     }
 
     @VisibleForTesting
     @Composable
     fun PrintService(displayInfo: PrintServiceDisplayInfo) {
         val context = LocalContext.current
-        Preference(model = object : PreferenceModel {
-            override val title = displayInfo.title
-            override val summary = { displayInfo.summary }
-            override val icon: @Composable () -> Unit = {
-                Image(
-                    painter = rememberDrawablePainter(displayInfo.icon),
-                    contentDescription = null,
-                    modifier = Modifier.size(SettingsDimension.appIconItemSize),
-                )
-            }
-            override val onClick = {
-                SubSettingLauncher(context).apply {
-                    setDestination(PrintServiceSettingsFragment::class.qualifiedName)
-                    setArguments(
-                        bundleOf(
-                            EXTRA_CHECKED to displayInfo.isEnabled,
-                            EXTRA_TITLE to displayInfo.title,
-                            EXTRA_SERVICE_COMPONENT_NAME to displayInfo.componentName
-                        )
+        Preference(
+            object : PreferenceModel {
+                override val title = displayInfo.title
+                override val summary = { displayInfo.summary }
+                override val icon: @Composable () -> Unit = {
+                    Image(
+                        painter = rememberDrawablePainter(displayInfo.icon),
+                        contentDescription = null,
+                        modifier = Modifier.size(SettingsDimension.appIconItemSize),
                     )
-                    setSourceMetricsCategory(SettingsEnums.PRINT_SETTINGS)
-                }.launch()
+                }
+                override val onClick = { launchPrintServiceSettings(context, displayInfo) }
             }
-        })
+        )
+    }
+
+    private fun launchPrintServiceSettings(context: Context, displayInfo: PrintServiceDisplayInfo) {
+        SubSettingLauncher(context)
+            .apply {
+                setDestination(PrintServiceSettingsFragment::class.qualifiedName)
+                setArguments(
+                    bundleOf(
+                        EXTRA_CHECKED to displayInfo.isEnabled,
+                        EXTRA_TITLE to displayInfo.title,
+                        EXTRA_SERVICE_COMPONENT_NAME to displayInfo.componentName
+                    )
+                )
+                setSourceMetricsCategory(SettingsEnums.PRINT_SETTINGS)
+            }
+            .launch()
+    }
+
+    @Composable
+    fun AddPrintService(
+        searchUriFlow: Flow<String> = rememberContext { context ->
+            context.settingsSecureStringFlow(Settings.Secure.PRINT_SERVICE_SEARCH_URI)
+        },
+    ) {
+        val context = LocalContext.current
+        val searchUri by searchUriFlow.collectAsStateWithLifecycle("")
+        if (searchUri.isEmpty()) return
+        Preference(
+            object : PreferenceModel {
+                override val title = stringResource(R.string.print_menu_item_add_service)
+                override val icon = @Composable { SettingsIcon(imageVector = Icons.Outlined.Add) }
+                override val onClick = {
+                    context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(searchUri)))
+                }
+            }
+        )
     }
 }
diff --git a/src/com/android/settings/privacy/PrivacyHubPreferenceController.java b/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
index 20e5290..4c59f80 100644
--- a/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
+++ b/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.provider.DeviceConfig;
 
 import androidx.annotation.NonNull;
 import androidx.preference.Preference;
@@ -30,7 +29,6 @@
  * The preference controller for privacy hub top level preference.
  */
 public final class PrivacyHubPreferenceController extends BasePreferenceController {
-    public static final String PROPERTY_PRIVACY_HUB_ENABLED = "privacy_hub_enabled";
 
     public PrivacyHubPreferenceController(@NonNull Context context, @NonNull String key) {
         super(context, key);
@@ -38,8 +36,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
-                PROPERTY_PRIVACY_HUB_ENABLED, true) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        return AVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java b/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java
new file mode 100644
index 0000000..d754b20
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceCategoryController.java
@@ -0,0 +1,43 @@
+/*
+ * 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.privatespace;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.widget.PreferenceCategoryController;
+
+public class HidePrivateSpaceCategoryController extends PreferenceCategoryController {
+    public HidePrivateSpaceCategoryController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (android.multiuser.Flags.privateSpaceSearchIllustrationConfig()) {
+            boolean configValue =
+                    Resources.getSystem()
+                            .getBoolean(
+                                    com.android.internal.R.bool
+                                            .config_enableSearchTileHideIllustrationInPrivateSpace);
+            return configValue ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        }
+        return AVAILABLE;
+    }
+}
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java b/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java
new file mode 100644
index 0000000..1606498
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceIllustrationController.java
@@ -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.privatespace;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class HidePrivateSpaceIllustrationController extends BasePreferenceController {
+
+    public HidePrivateSpaceIllustrationController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (android.multiuser.Flags.privateSpaceSearchIllustrationConfig()) {
+            boolean configValue =
+                    Resources.getSystem()
+                            .getBoolean(
+                                    com.android.internal.R.bool
+                                            .config_enableSearchTileHideIllustrationInPrivateSpace);
+            return configValue ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+        }
+        return AVAILABLE;
+    }
+}
diff --git a/src/com/android/settings/privatespace/OWNERS b/src/com/android/settings/privatespace/OWNERS
new file mode 100644
index 0000000..158c26a
--- /dev/null
+++ b/src/com/android/settings/privatespace/OWNERS
@@ -0,0 +1,11 @@
+# Bug component: 1376399
+
+# Default reviewers for this and subdirectories.
+
+azhura@google.com
+corinac@google.com
+himanshuz@google.com
+jigarthakkar@google.com
+josephpv@google.com
+onshimiye@google.com
+saumyap@google.com
diff --git a/src/com/android/settings/privatespace/PrivateProfileCreationRestrictedError.java b/src/com/android/settings/privatespace/PrivateProfileCreationRestrictedError.java
new file mode 100644
index 0000000..d2bdb8c
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateProfileCreationRestrictedError.java
@@ -0,0 +1,99 @@
+/*
+ * 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.privatespace;
+
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.text.util.Linkify;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+import java.util.regex.Pattern;
+
+public class PrivateProfileCreationRestrictedError extends InstrumentedFragment {
+    private static final String TAG = "PrivateSpaceCreationErr";
+
+    @NonNull
+    @Override
+    public View onCreateView(
+            @NonNull LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        GlifLayout rootView =
+                (GlifLayout)
+                        inflater.inflate(R.layout.privatespace_creation_error, container, false);
+        final FooterBarMixin mixin = rootView.getMixin(FooterBarMixin.class);
+        mixin.setPrimaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.private_space_exit_label)
+                        .setListener(onExit())
+                        .setButtonType(FooterButton.ButtonType.NEXT)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .build());
+        OnBackPressedCallback callback =
+                new OnBackPressedCallback(true /* enabled by default */) {
+                    @Override
+                    public void handleOnBackPressed() {
+                        // Handle the back button event. We intentionally don't want to allow back
+                        // button to work in this screen during the setup flow.
+                    }
+                };
+        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
+        rootView.setDescriptionText(R.string.private_space_error_description);
+        TextView textView = rootView.getDescriptionTextView();
+        Pattern pattern = Pattern.compile(getString(R.string.private_space_error_causes_text));
+        Linkify.addLinks(
+                textView,
+                pattern,
+                getString(R.string.private_space_learn_more_url));
+
+        return rootView;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION_ERROR;
+    }
+
+    private View.OnClickListener onExit() {
+        return v -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                mMetricsFeatureProvider.action(
+                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL_CREATE_SPACE);
+                Log.i(TAG, "private space setup exited");
+                activity.finish();
+            }
+        };
+    }
+}
+
diff --git a/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java b/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java
index ce85d72..0bfedbd 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceCreationFragment.java
@@ -29,6 +29,7 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.UserManager;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -49,6 +50,7 @@
     private static final String TAG = "PrivateSpaceCreateFrag";
     private static final int PRIVATE_SPACE_CREATE_POST_DELAY_MS = 1000;
     private static final int PRIVATE_SPACE_ACCOUNT_LOGIN_POST_DELAY_MS = 5000;
+    private static final int PRIVATE_SPACE_SETUP_NO_ERROR = 0;
     private static final Handler sHandler = new Handler(Looper.getMainLooper());
     private Runnable mRunnable =
             () -> {
@@ -122,6 +124,11 @@
             Log.i(TAG, "Private Space created");
             mMetricsFeatureProvider.action(
                     getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED, true);
+            if (android.multiuser.Flags.showDifferentCreationErrorForUnsupportedDevices()) {
+                mMetricsFeatureProvider.action(
+                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_ERRORS,
+                        PRIVATE_SPACE_SETUP_NO_ERROR);
+            }
             if (isConnectedToInternet()) {
                 registerReceiver();
                 sHandler.postDelayed(
@@ -132,8 +139,18 @@
             }
         } else {
             mMetricsFeatureProvider.action(
-                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED, false);
-            showPrivateSpaceErrorScreen();
+                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
+                    false);
+            if (android.multiuser.Flags.showDifferentCreationErrorForUnsupportedDevices()) {
+                int errorCode = PrivateSpaceMaintainer.getInstance(
+                        getActivity()).getPrivateSpaceCreateError();
+                mMetricsFeatureProvider.action(
+                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_ERRORS,
+                        errorCode);
+                showPrivateSpaceErrorScreen(errorCode);
+            } else {
+                showPrivateSpaceErrorScreen();
+            }
         }
     }
 
@@ -147,6 +164,16 @@
                 .navigate(R.id.action_create_profile_error);
     }
 
+    private void showPrivateSpaceErrorScreen(int errorCode) {
+        if (errorCode == UserManager.USER_OPERATION_ERROR_USER_RESTRICTED
+                || errorCode == UserManager.USER_OPERATION_ERROR_PRIVATE_PROFILE) {
+            NavHostFragment.findNavController(PrivateSpaceCreationFragment.this)
+                    .navigate(R.id.action_create_profile_error_restrict);
+        } else {
+            showPrivateSpaceErrorScreen();
+        }
+    }
+
     /** Returns true if device has an active internet connection, false otherwise. */
     private boolean isConnectedToInternet() {
         ConnectivityManager cm =
diff --git a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
index 6b9252a..dd6a4bb 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
@@ -60,6 +60,7 @@
     private final Context mContext;
     private final UserManager mUserManager;
     private final ActivityManager mActivityManager;
+    private  int mErrorCode;
     @GuardedBy("this")
     private UserHandle mUserHandle;
     private final KeyguardManager mKeyguardManager;
@@ -111,6 +112,9 @@
                         userName, USER_TYPE_PROFILE_PRIVATE, new ArraySet<>());
             } catch (Exception e) {
                 Log.e(TAG, "Error creating private space", e);
+                if (android.multiuser.Flags.showDifferentCreationErrorForUnsupportedDevices()) {
+                    mErrorCode = ((UserManager.UserOperationException) e).getUserOperationResult();
+                }
                 return false;
             }
 
@@ -205,7 +209,6 @@
             return mKeyguardManager.createConfirmDeviceCredentialIntent(
                     /* title= */ null,  /* description= */null, mUserHandle.getIdentifier());
         }
-        // TODO(b/304796434) Need to try changing this intent to use BiometricPrompt
         return mKeyguardManager.createConfirmDeviceCredentialIntent(
                 /* title= */ null, /* description= */ null);
     }
@@ -313,6 +316,11 @@
         return mUserManager.canAddPrivateProfile() || doesPrivateSpaceExist();
     }
 
+    /** Returns the error code for private space creation failure*/
+    public int getPrivateSpaceCreateError() {
+        return mErrorCode;
+    }
+
     /** Returns true if private space exists and is running, otherwise returns false */
     @VisibleForTesting
     synchronized boolean isPrivateProfileRunning() {
diff --git a/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java b/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
index dfac100..1e503ec 100644
--- a/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
+++ b/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.privatespace.onelock;
 
+import static com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
 import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
 import static com.android.settings.privatespace.PrivateSpaceSetupActivity.SET_LOCK_ACTION;
 import static com.android.settings.privatespace.onelock.UseOneLockSettingsFragment.UNIFY_PRIVATE_LOCK_WITH_DEVICE_REQUEST;
@@ -197,12 +199,7 @@
                   .setPositiveButton(
                             R.string.private_space_set_lock_label,
                             (dialog, which) -> {
-                                Intent intent = new Intent(mContext,
-                                          PrivateProfileContextHelperActivity.class);
-                                intent.putExtra(EXTRA_ACTION_TYPE, SET_LOCK_ACTION);
-                                ((Activity) mContext).startActivityForResultAsUser(intent,
-                                          UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST,
-                                          /*Options*/ null, mUserHandle);
+                                startSeparateLockSetup();
                             })
                   .setNegativeButton(R.string.private_space_cancel_label,
                             (DialogInterface dialog, int which) -> {
@@ -216,4 +213,26 @@
                             })
                   .show();
     }
+
+    private void startSeparateLockSetup() {
+        if (android.multiuser.Flags.modifyPrivateSpaceSecondaryUnlockSetupFlow()) {
+            final Bundle extras = new Bundle();
+            extras.putInt(Intent.EXTRA_USER_ID, mProfileUserId);
+            extras.putBoolean(HIDE_INSECURE_OPTIONS, true);
+            extras.putInt(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
+                    R.string.private_space_lock_setup_title);
+            new SubSettingLauncher(mContext).setDestination(ChooseLockGeneric
+                            .ChooseLockGenericFragment.class.getName())
+                    .setSourceMetricsCategory(mHost.getMetricsCategory())
+                    .setArguments(extras)
+                    .setExtras(extras)
+                    .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
+                    .launch();
+        } else {
+            Intent intent = new Intent(mContext, PrivateProfileContextHelperActivity.class);
+            intent.putExtra(EXTRA_ACTION_TYPE, SET_LOCK_ACTION);
+            ((Activity) mContext).startActivityForResultAsUser(intent,
+                    UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST, /*Options*/ null, mUserHandle);
+        }
+    }
 }
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index cc05270..b6a9167 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -21,9 +21,11 @@
 import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag.FLAG_INCLUDE_PREF_SCREEN;
 import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_KEY;
 import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_SEARCHABLE;
+import static com.android.settings.search.SettingsSearchIndexablesProvider.SYSPROP_CRASH_ON_ERROR;
 
 import android.annotation.XmlRes;
 import android.content.Context;
+import android.os.Build;
 import android.os.Bundle;
 import android.provider.SearchIndexableResource;
 import android.util.Log;
@@ -131,24 +133,48 @@
             return nonIndexableKeys;
         }
         nonIndexableKeys.addAll(getNonIndexableKeysFromXml(context, false /* suppressAllPage */));
+        updateNonIndexableKeysFromControllers(context, nonIndexableKeys);
+        return nonIndexableKeys;
+    }
+
+    private void updateNonIndexableKeysFromControllers(
+            Context context, List<String> nonIndexableKeys) {
         final List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
-        if (controllers != null && !controllers.isEmpty()) {
+        if (controllers != null) {
             for (AbstractPreferenceController controller : controllers) {
-                if (controller instanceof PreferenceControllerMixin) {
-                    ((PreferenceControllerMixin) controller)
-                            .updateNonIndexableKeys(nonIndexableKeys);
-                } else if (controller instanceof BasePreferenceController) {
-                    ((BasePreferenceController) controller).updateNonIndexableKeys(
-                            nonIndexableKeys);
-                } else {
-                    Log.e(TAG, controller.getClass().getName()
-                            + " must implement " + PreferenceControllerMixin.class.getName()
-                            + " treating the key non-indexable");
-                    nonIndexableKeys.add(controller.getPreferenceKey());
-                }
+                updateNonIndexableKeysFromController(nonIndexableKeys, controller);
             }
         }
-        return nonIndexableKeys;
+    }
+
+    private static void updateNonIndexableKeysFromController(
+            List<String> nonIndexableKeys, AbstractPreferenceController controller) {
+        try {
+            if (controller instanceof PreferenceControllerMixin controllerMixin) {
+                controllerMixin.updateNonIndexableKeys(nonIndexableKeys);
+            } else if (controller instanceof BasePreferenceController basePreferenceController) {
+                basePreferenceController.updateNonIndexableKeys(nonIndexableKeys);
+            } else {
+                Log.e(TAG, controller.getClass().getName()
+                        + " must implement " + PreferenceControllerMixin.class.getName()
+                        + " treating the key non-indexable");
+                nonIndexableKeys.add(controller.getPreferenceKey());
+            }
+        } catch (Exception e) {
+            String msg = "Error trying to get non-indexable keys from: " + controller;
+            // Catch a generic crash. In the absence of the catch, the background thread will
+            // silently fail anyway, so we aren't losing information by catching the exception.
+            // We crash on debuggable build or when the system property exists, so that we can test
+            // if crashes need to be fixed.
+            // The gain is that if there is a crash in a specific controller, we don't lose all
+            // non-indexable keys, but we can still find specific crashes in development.
+            if (Build.IS_DEBUGGABLE || System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
+                throw new RuntimeException(msg, e);
+            }
+            Log.e(TAG, msg, e);
+            // When there is an error, treat the key as non-indexable.
+            nonIndexableKeys.add(controller.getPreferenceKey());
+        }
     }
 
     public List<AbstractPreferenceController> getPreferenceControllers(Context context) {
diff --git a/src/com/android/settings/search/SearchFeatureProviderImpl.java b/src/com/android/settings/search/SearchFeatureProviderImpl.java
deleted file mode 100644
index 3a62ddf..0000000
--- a/src/com/android/settings/search/SearchFeatureProviderImpl.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package com.android.settings.search;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import androidx.annotation.NonNull;
-
-import com.android.settingslib.search.SearchIndexableResources;
-import com.android.settingslib.search.SearchIndexableResourcesMobile;
-
-/**
- * FeatureProvider for the refactored search code.
- */
-public class SearchFeatureProviderImpl implements SearchFeatureProvider {
-
-    private SearchIndexableResources mSearchIndexableResources;
-
-    @Override
-    public void verifyLaunchSearchResultPageCaller(@NonNull Context context,
-            @NonNull String callerPackage) {
-        if (TextUtils.isEmpty(callerPackage)) {
-            throw new IllegalArgumentException("ExternalSettingsTrampoline intents "
-                    + "must be called with startActivityForResult");
-        }
-        final boolean isSettingsPackage = TextUtils.equals(callerPackage, context.getPackageName())
-                || TextUtils.equals(getSettingsIntelligencePkgName(context), callerPackage);
-        final boolean isAllowlistedPackage = isSignatureAllowlisted(context, callerPackage);
-        if (isSettingsPackage || isAllowlistedPackage) {
-            return;
-        }
-        throw new SecurityException("Search result intents must be called with from an "
-                + "allowlisted package.");
-    }
-
-    @Override
-    public SearchIndexableResources getSearchIndexableResources() {
-        if (mSearchIndexableResources == null) {
-            mSearchIndexableResources = new SearchIndexableResourcesMobile();
-        }
-        return mSearchIndexableResources;
-    }
-
-    @Override
-    public Intent buildSearchIntent(Context context, int pageId) {
-        return new Intent(Settings.ACTION_APP_SEARCH_SETTINGS)
-                .setPackage(getSettingsIntelligencePkgName(context))
-                .putExtra(Intent.EXTRA_REFERRER, buildReferrer(context, pageId));
-    }
-
-    protected boolean isSignatureAllowlisted(Context context, String callerPackage) {
-        return false;
-    }
-
-    private static Uri buildReferrer(Context context, int pageId) {
-        return new Uri.Builder()
-                .scheme("android-app")
-                .authority(context.getPackageName())
-                .path(String.valueOf(pageId))
-                .build();
-    }
-}
diff --git a/src/com/android/settings/search/SearchFeatureProviderImpl.kt b/src/com/android/settings/search/SearchFeatureProviderImpl.kt
new file mode 100644
index 0000000..b1378ab
--- /dev/null
+++ b/src/com/android/settings/search/SearchFeatureProviderImpl.kt
@@ -0,0 +1,71 @@
+/*
+ * 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.search
+
+import android.content.Context
+import android.content.Intent
+import android.net.Uri
+import android.provider.Settings
+import com.android.settings.search.SearchIndexableResourcesFactory.createSearchIndexableResources
+import com.android.settings.spa.search.SpaSearchRepository
+import com.android.settingslib.search.SearchIndexableResources
+
+/** FeatureProvider for the refactored search code. */
+open class SearchFeatureProviderImpl : SearchFeatureProvider {
+    private val lazySearchIndexableResources by lazy {
+        createSearchIndexableResources().apply {
+            for (searchIndexableData in SpaSearchRepository().getSearchIndexableDataList()) {
+                addIndex(searchIndexableData)
+            }
+        }
+    }
+
+    override fun verifyLaunchSearchResultPageCaller(context: Context, callerPackage: String) {
+        require(callerPackage.isNotEmpty()) {
+            "ExternalSettingsTrampoline intents must be called with startActivityForResult"
+        }
+        val isSettingsPackage = callerPackage == context.packageName
+        if (isSettingsPackage ||
+            callerPackage == getSettingsIntelligencePkgName(context) ||
+            isSignatureAllowlisted(context, callerPackage)) {
+            return
+        }
+        throw SecurityException(
+            "Search result intents must be called with from an allowlisted package.")
+    }
+
+    override fun getSearchIndexableResources(): SearchIndexableResources =
+        lazySearchIndexableResources
+
+    override fun buildSearchIntent(context: Context, pageId: Int): Intent =
+        Intent(Settings.ACTION_APP_SEARCH_SETTINGS)
+            .setPackage(getSettingsIntelligencePkgName(context))
+            .putExtra(Intent.EXTRA_REFERRER, buildReferrer(context, pageId))
+
+    protected open fun isSignatureAllowlisted(context: Context, callerPackage: String): Boolean =
+        false
+
+    companion object {
+        private fun buildReferrer(context: Context, pageId: Int): Uri =
+            Uri.Builder()
+                .scheme("android-app")
+                .authority(context.packageName)
+                .path(pageId.toString())
+                .build()
+    }
+}
diff --git a/src/com/android/settings/search/SearchIndexableResourcesFactory.java b/src/com/android/settings/search/SearchIndexableResourcesFactory.java
new file mode 100644
index 0000000..25f34ed
--- /dev/null
+++ b/src/com/android/settings/search/SearchIndexableResourcesFactory.java
@@ -0,0 +1,34 @@
+/*
+ * 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.search;
+
+import androidx.annotation.NonNull;
+
+import com.android.settingslib.search.SearchIndexableResources;
+import com.android.settingslib.search.SearchIndexableResourcesMobile;
+
+/**
+ * Creates the {@link SearchIndexableResourcesMobile}.
+ * <p>
+ * Since this class is generated by annotation processor, so it can only be created in Java now.
+ */
+class SearchIndexableResourcesFactory {
+    @NonNull
+    static SearchIndexableResources createSearchIndexableResources() {
+        return new SearchIndexableResourcesMobile();
+    }
+}
diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
index 3b04186..cdcb323 100644
--- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
+++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
@@ -50,6 +50,7 @@
 import android.database.Cursor;
 import android.database.MatrixCursor;
 import android.net.Uri;
+import android.os.Build;
 import android.provider.SearchIndexableResource;
 import android.provider.SearchIndexablesContract;
 import android.provider.SearchIndexablesProvider;
@@ -283,17 +284,16 @@
             try {
                 providerNonIndexableKeys = provider.getNonIndexableKeys(context);
             } catch (Exception e) {
+                String msg = "Error trying to get non-indexable keys from: "
+                        + bundle.getTargetClass().getName();
                 // Catch a generic crash. In the absence of the catch, the background thread will
                 // silently fail anyway, so we aren't losing information by catching the exception.
-                // We crash when the system property exists so that we can test if crashes need to
-                // be fixed.
-                // The gain is that if there is a crash in a specific controller, we don't lose all
-                // non-indexable keys, but we can still find specific crashes in development.
-                if (System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
-                    throw new RuntimeException(e);
+                // We crash on debuggable build or when the system property exists, so that we can
+                // test if crashes need to be fixed.
+                if (Build.IS_DEBUGGABLE || System.getProperty(SYSPROP_CRASH_ON_ERROR) != null) {
+                    throw new RuntimeException(msg, e);
                 }
-                Log.e(TAG, "Error trying to get non-indexable keys from: "
-                        + bundle.getTargetClass().getName(), e);
+                Log.e(TAG, msg, e);
                 continue;
             }
 
diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java
index 6d987f3..797d3ec 100644
--- a/src/com/android/settings/security/SecuritySettings.java
+++ b/src/com/android/settings/security/SecuritySettings.java
@@ -15,10 +15,15 @@
  */
 package com.android.settings.security;
 
+import static com.android.settings.biometrics.face.FaceSettings.isFaceHardwareDetected;
+import static com.android.settings.biometrics.fingerprint.FingerprintSettings.isFingerprintHardwareDetected;
+
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 
+import androidx.annotation.VisibleForTesting;
+
 import com.android.settings.R;
 import com.android.settings.biometrics.combination.CombinedBiometricStatusPreferenceController;
 import com.android.settings.biometrics.face.FaceStatusPreferenceController;
@@ -45,6 +50,10 @@
     public static final int CHANGE_TRUST_AGENT_SETTINGS = 126;
     public static final int UNIFY_LOCK_CONFIRM_PROFILE_REQUEST = 129;
     public static final int UNUNIFY_LOCK_CONFIRM_DEVICE_REQUEST = 130;
+    @VisibleForTesting
+    static final String KEY_FINGERPRINT_SETTINGS = "fingerprint_settings";
+    @VisibleForTesting
+    static final String KEY_FACE_SETTINGS = "face_settings";
 
     @Override
     public int getMetricsCategory() {
@@ -131,6 +140,18 @@
                             .hasAlternativeSecuritySettingsFragment()
                             && !SafetyCenterManagerWrapper.get().isEnabled(context);
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    final List<String> keys = super.getNonIndexableKeys(context);
+                    if (!isFingerprintHardwareDetected(context)) {
+                        keys.add(KEY_FINGERPRINT_SETTINGS);
+                    }
+                    if (!isFaceHardwareDetected(context)) {
+                       keys.add(KEY_FACE_SETTINGS);
+                    }
+                    return keys;
+                }
             };
 
     @Override
diff --git a/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java b/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java
index 8f934d7..6e28a0d 100644
--- a/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java
+++ b/src/com/android/settings/sim/receivers/SimSlotChangeHandler.java
@@ -28,6 +28,7 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.telephony.UiccCardInfo;
+import android.telephony.UiccPortInfo;
 import android.telephony.UiccSlotInfo;
 import android.util.Log;
 
@@ -91,10 +92,10 @@
             Log.e(TAG, "Unable to find the removable slot. Do nothing.");
             return;
         }
-
+        Log.i(TAG, "The removableSlotInfo: " + removableSlotInfo);
         int lastRemovableSlotState = getLastRemovableSimSlotState(mContext);
         int currentRemovableSlotState = removableSlotInfo.getCardStateInfo();
-        Log.i(TAG,
+        Log.d(TAG,
                 "lastRemovableSlotState: " + lastRemovableSlotState + ",currentRemovableSlotState: "
                         + currentRemovableSlotState);
         boolean isRemovableSimInserted =
@@ -115,8 +116,12 @@
 
             if (Flags.isDualSimOnboardingEnabled()) {
                 // ForNewUi, when the user inserts the psim, showing the sim onboarding for the user
-                // to setup the sim switching or the default data subscription.
-                handleRemovableSimInsertWhenDsds();
+                // to setup the sim switching or the default data subscription in DSDS.
+                // Will show dialog for below case.
+                // 1. the psim slot is not active.
+                // 2. there are one or more active sim.
+                handleRemovableSimInsertWhenDsds(removableSlotInfo);
+                return;
             } else if (!isMultipleEnabledProfilesSupported()) {
                 Log.d(TAG, "The device is already in DSDS mode and no MEP. Do nothing.");
                 return;
@@ -124,8 +129,6 @@
                 handleRemovableSimInsertUnderDsdsMep(removableSlotInfo);
                 return;
             }
-            Log.d(TAG, "the device is already in DSDS mode and have the DDS. Do nothing.");
-            return;
         }
 
         if (isRemovableSimInserted) {
@@ -258,15 +261,29 @@
         startChooseSimActivity(false);
     }
 
-    private void handleRemovableSimInsertWhenDsds() {
+    private boolean hasOtherActiveSubInfo(int psimSubId) {
+        List<SubscriptionInfo> activeSubs = SubscriptionUtil.getActiveSubscriptions(mSubMgr);
+        return activeSubs.stream()
+                .anyMatch(subscriptionInfo -> subscriptionInfo.getSubscriptionId() != psimSubId);
+    }
+
+    private boolean hasAnyPortActiveInSlot(UiccSlotInfo removableSlotInfo) {
+        return removableSlotInfo.getPorts().stream().anyMatch(UiccPortInfo::isActive);
+    }
+
+    private void handleRemovableSimInsertWhenDsds(UiccSlotInfo removableSlotInfo) {
+        Log.i(TAG, "ForNewUi: Handle Removable SIM inserted");
         List<SubscriptionInfo> subscriptionInfos = getAvailableRemovableSubscription();
         if (subscriptionInfos.isEmpty()) {
             Log.e(TAG, "Unable to find the removable subscriptionInfo. Do nothing.");
             return;
         }
-        Log.d(TAG, "ForNewUi and getAvailableRemovableSubscription:"
-                + subscriptionInfos);
-        startSimConfirmDialogActivity(subscriptionInfos.get(0).getSubscriptionId());
+        Log.d(TAG, "getAvailableRemovableSubscription:" + subscriptionInfos);
+        int psimSubId = subscriptionInfos.get(0).getSubscriptionId();
+        if (!hasAnyPortActiveInSlot(removableSlotInfo) || hasOtherActiveSubInfo(psimSubId)) {
+            Log.d(TAG, "ForNewUi Start Setup flow");
+            startSimConfirmDialogActivity(psimSubId);
+        }
     }
 
     private void handleRemovableSimInsertUnderDsdsMep(UiccSlotInfo removableSlotInfo) {
@@ -393,7 +410,7 @@
             return;
         }
         Log.d(TAG, "Start ToggleSubscriptionDialogActivity with " + subId + " under DSDS+Mep.");
-        SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId, true);
+        SubscriptionUtil.startToggleSubscriptionDialogActivity(mContext, subId, true, true);
     }
 
     private boolean isMultipleEnabledProfilesSupported() {
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index ec60f44..8720160 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -120,6 +120,16 @@
      * permission can use them.
      */
     private static final List<Uri> PUBLICLY_SUPPORTED_CUSTOM_SLICE_URIS =
+            android.app.Flags.modesUi()
+                    ?
+                    Arrays.asList(
+                            CustomSliceRegistry.BLUETOOTH_URI,
+                            CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
+                            CustomSliceRegistry.LOCATION_SLICE_URI,
+                            CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
+                            CustomSliceRegistry.WIFI_CALLING_URI,
+                            CustomSliceRegistry.WIFI_SLICE_URI
+                    ) :
             Arrays.asList(
                     CustomSliceRegistry.BLUETOOTH_URI,
                     CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
@@ -184,7 +194,9 @@
         }
 
         if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
-            registerIntentToUri(ZenModeSliceBuilder.INTENT_FILTER, sliceUri);
+            if (!android.app.Flags.modesUi()) {
+                registerIntentToUri(ZenModeSliceBuilder.INTENT_FILTER, sliceUri);
+            }
             return;
         } else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
             registerIntentToUri(BluetoothSliceBuilder.INTENT_FILTER, sliceUri);
@@ -256,7 +268,8 @@
                         .getSlicesFeatureProvider()
                         .getNewWifiCallingSliceHelper(getContext())
                         .createWifiCallingSlice(sliceUri);
-            } else if (CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
+            } else if (!android.app.Flags.modesUi()
+                    && CustomSliceRegistry.ZEN_MODE_SLICE_URI.equals(sliceUri)) {
                 return ZenModeSliceBuilder.getSlice(getContext());
             } else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
                 return BluetoothSliceBuilder.getSlice(getContext());
diff --git a/src/com/android/settings/slices/SlicePreferenceController.java b/src/com/android/settings/slices/SlicePreferenceController.java
index 5e8fb26..2e835a0 100644
--- a/src/com/android/settings/slices/SlicePreferenceController.java
+++ b/src/com/android/settings/slices/SlicePreferenceController.java
@@ -20,6 +20,7 @@
 import android.net.Uri;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.Observer;
@@ -61,7 +62,8 @@
         return mUri != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
-    public void setSliceUri(Uri uri) {
+    /** Sets Slice uri for the preference. */
+    public void setSliceUri(@Nullable Uri uri) {
         mUri = uri;
         mLiveData = SliceLiveData.fromUri(mContext, mUri, (int type, Throwable source) -> {
             Log.w(TAG, "Slice may be null. uri = " + uri + ", error = " + type);
diff --git a/src/com/android/settings/spa/SpaBridgeActivity.kt b/src/com/android/settings/spa/SpaBridgeActivity.kt
index 61d8f51..d579fdf 100644
--- a/src/com/android/settings/spa/SpaBridgeActivity.kt
+++ b/src/com/android/settings/spa/SpaBridgeActivity.kt
@@ -17,20 +17,18 @@
 package com.android.settings.spa
 
 import android.app.Activity
-import android.content.Intent
+import android.content.pm.PackageManager.ComponentInfoFlags
+import android.content.pm.PackageManager.GET_META_DATA
 import android.os.Bundle
-import com.android.settings.activityembedding.ActivityEmbeddingUtils
-import com.android.settings.activityembedding.EmbeddedDeepLinkUtils.tryStartMultiPaneDeepLink
-import com.android.settings.spa.SpaDestination.Companion.getDestination
-import com.android.settingslib.spa.framework.util.SESSION_EXTERNAL
-import com.android.settingslib.spa.framework.util.appendSpaParams
+import androidx.annotation.VisibleForTesting
+import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
 
 /**
  * Activity used as a bridge to [SpaActivity].
  *
  * Since [SpaActivity] is not exported, [SpaActivity] could not be the target activity of
- * <activity-alias>, otherwise all its pages will be exported.
- * So need this bridge activity to sit in the middle of <activity-alias> and [SpaActivity].
+ * <activity-alias>, otherwise all its pages will be exported. So need this bridge activity to sit
+ * in the middle of <activity-alias> and [SpaActivity].
  */
 class SpaBridgeActivity : Activity() {
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -41,17 +39,28 @@
 
     companion object {
         fun Activity.startSpaActivityFromBridge(destinationFactory: (String) -> String? = { it }) {
-            val (destination, highlightMenuKey) = getDestination(destinationFactory) ?: return
-            val intent = Intent(this, SpaActivity::class.java)
-                .appendSpaParams(
-                    destination = destination,
-                    sessionName = SESSION_EXTERNAL,
-                )
-            if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this) ||
-                !tryStartMultiPaneDeepLink(intent, highlightMenuKey)
-            ) {
-                startActivity(intent)
-            }
+            getDestination(destinationFactory)?.startFromExportedActivity(this)
         }
+
+        @VisibleForTesting
+        fun Activity.getDestination(
+            destinationFactory: (String) -> String? = { it },
+        ): SpaDestination? {
+            val metaData =
+                packageManager
+                    .getActivityInfo(componentName, ComponentInfoFlags.of(GET_META_DATA.toLong()))
+                    .metaData
+            val destination = metaData.getString(META_DATA_KEY_DESTINATION)
+            if (destination.isNullOrBlank()) return null
+            val finalDestination = destinationFactory(destination)
+            if (finalDestination.isNullOrBlank()) return null
+            return SpaDestination(
+                destination = finalDestination,
+                highlightMenuKey = metaData.getString(META_DATA_KEY_HIGHLIGHT_MENU_KEY),
+            )
+        }
+
+        @VisibleForTesting
+        const val META_DATA_KEY_DESTINATION = "com.android.settings.spa.DESTINATION"
     }
 }
diff --git a/src/com/android/settings/spa/SpaDestination.kt b/src/com/android/settings/spa/SpaDestination.kt
index bdec1d8..158028a 100644
--- a/src/com/android/settings/spa/SpaDestination.kt
+++ b/src/com/android/settings/spa/SpaDestination.kt
@@ -16,34 +16,27 @@
 
 package com.android.settings.spa
 
-import android.app.Activity
-import android.content.pm.PackageManager
-import androidx.annotation.VisibleForTesting
-import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
+import android.content.Context
+import android.content.Intent
+import com.android.settings.activityembedding.ActivityEmbeddingUtils
+import com.android.settings.activityembedding.EmbeddedDeepLinkUtils.tryStartMultiPaneDeepLink
+import com.android.settingslib.spa.framework.util.SESSION_EXTERNAL
+import com.android.settingslib.spa.framework.util.appendSpaParams
 
 data class SpaDestination(
     val destination: String,
     val highlightMenuKey: String?,
 ) {
-    companion object {
-        fun Activity.getDestination(
-            destinationFactory: (String) -> String? = { it },
-        ): SpaDestination? {
-            val metaData = packageManager.getActivityInfo(
-                componentName,
-                PackageManager.ComponentInfoFlags.of(PackageManager.GET_META_DATA.toLong())
-            ).metaData
-            val destination = metaData.getString(META_DATA_KEY_DESTINATION)
-            if (destination.isNullOrBlank()) return null
-            val finalDestination = destinationFactory(destination)
-            if (finalDestination.isNullOrBlank()) return null
-            return SpaDestination(
-                destination = finalDestination,
-                highlightMenuKey = metaData.getString(META_DATA_KEY_HIGHLIGHT_MENU_KEY),
+    fun startFromExportedActivity(context: Context) {
+        val intent = Intent(context, SpaActivity::class.java)
+            .appendSpaParams(
+                destination = destination,
+                sessionName = SESSION_EXTERNAL,
             )
+        if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(context) ||
+            !context.tryStartMultiPaneDeepLink(intent, highlightMenuKey)
+        ) {
+            context.startActivity(intent)
         }
-
-        @VisibleForTesting
-        const val META_DATA_KEY_DESTINATION = "com.android.settings.spa.DESTINATION"
     }
 }
diff --git a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
index 8659bf5..4377ccc 100644
--- a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
+++ b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
@@ -28,7 +28,6 @@
 import com.android.settingslib.spa.framework.util.SESSION_BROWSE
 import com.android.settingslib.spa.framework.util.SESSION_EXTERNAL
 import com.android.settingslib.spa.framework.util.SESSION_SEARCH
-import com.android.settingslib.spa.framework.util.SESSION_SLICE
 import com.android.settingslib.spa.framework.util.SESSION_UNKNOWN
 
 /**
@@ -74,7 +73,6 @@
         return when(sessionSource) {
             SESSION_BROWSE -> SettingsEnums.SESSION_BROWSE
             SESSION_SEARCH -> SettingsEnums.SESSION_SEARCH
-            SESSION_SLICE -> SettingsEnums.SESSION_SLICE_TYPE
             SESSION_EXTERNAL -> SettingsEnums.SESSION_EXTERNAL
             else -> SettingsEnums.SESSION_UNKNOWN
         }
diff --git a/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt b/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt
index e79be4a..5fbd7dc 100644
--- a/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt
+++ b/src/com/android/settings/spa/network/AutomaticDataSwitchingPreference.kt
@@ -16,13 +16,11 @@
 
 package com.android.settings.spa.network
 
-import android.telephony.TelephonyManager
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.res.stringResource
 import androidx.lifecycle.viewmodel.compose.viewModel
 import com.android.settings.R
-import com.android.settings.network.telephony.TelephonyRepository
 import com.android.settings.network.telephony.wificalling.CrossSimCallingViewModel
 import com.android.settingslib.spa.widget.preference.SwitchPreference
 import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
@@ -36,7 +34,9 @@
 ) {
     val autoDataSummary = stringResource(id = R.string.primary_sim_automatic_data_msg)
     val coroutineScope = rememberCoroutineScope()
-    val crossSimCallingViewModel = viewModel<CrossSimCallingViewModel>() // handles backup calling
+    // CrossSimCallingViewModel is responsible for maintaining the correct cross sim calling
+    // settings (backup calling).
+    viewModel<CrossSimCallingViewModel>()
     SwitchPreference(
         object : SwitchPreferenceModel {
             override val title = stringResource(id = R.string.primary_sim_automatic_data_title)
@@ -45,17 +45,8 @@
             override val onCheckedChange: (Boolean) -> Unit = { newEnabled ->
                 coroutineScope.launch(Dispatchers.Default) {
                     setAutoDataEnabled(newEnabled)
-                    crossSimCallingViewModel.updateCrossSimCalling()
                 }
             }
         }
     )
 }
-
-fun TelephonyRepository.setAutomaticData(subId: Int, newEnabled: Boolean) {
-    setMobileDataPolicyEnabled(
-        subId = subId,
-        policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
-        enabled = newEnabled,
-    )
-}
diff --git a/src/com/android/settings/spa/network/MobileDataSwitchingPreference.kt b/src/com/android/settings/spa/network/MobileDataSwitchingPreference.kt
index 0d40bca..4b95d44 100644
--- a/src/com/android/settings/spa/network/MobileDataSwitchingPreference.kt
+++ b/src/com/android/settings/spa/network/MobileDataSwitchingPreference.kt
@@ -16,12 +16,10 @@
 
 package com.android.settings.spa.network
 
-import android.telephony.TelephonyManager
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.res.stringResource
 import com.android.settings.R
-import com.android.settings.network.telephony.TelephonyRepository
 import com.android.settingslib.spa.widget.preference.SwitchPreference
 import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
 import kotlinx.coroutines.Dispatchers
diff --git a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
index 4b9fcf4..f76bba4 100644
--- a/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
+++ b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
@@ -46,21 +46,27 @@
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import androidx.lifecycle.viewmodel.compose.viewModel
 import com.android.settings.R
+import com.android.settings.flags.Flags
 import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
 import com.android.settings.network.telephony.DataSubscriptionRepository
-import com.android.settings.network.telephony.TelephonyRepository
+import com.android.settings.network.telephony.MobileDataRepository
+import com.android.settings.network.telephony.requireSubscriptionManager
 import com.android.settings.spa.network.PrimarySimRepository.PrimarySimInfo
+import com.android.settings.spa.search.SearchablePage
 import com.android.settings.wifi.WifiPickerTrackerHelper
 import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
 import com.android.settingslib.spa.framework.common.createSettingsPage
 import com.android.settingslib.spa.framework.compose.navigator
+import com.android.settingslib.spa.framework.compose.rememberContext
 import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
 import com.android.settingslib.spa.widget.ui.Category
 import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
+import com.android.settingslib.spaprivileged.framework.common.userManager
 import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
@@ -77,7 +83,7 @@
 /**
  * Showing the sim onboarding which is the process flow of sim switching on.
  */
-open class NetworkCellularGroupProvider : SettingsPageProvider {
+open class NetworkCellularGroupProvider : SettingsPageProvider, SearchablePage {
     override val name = fileName
     override val metricsCategory = SettingsEnums.MOBILE_NETWORK_LIST
     private val owner = createSettingsPage()
@@ -190,8 +196,27 @@
     open fun OtherSection(){
         // Do nothing
     }
+
+    override fun getPageTitleForSearch(context: Context): String =
+        context.getString(R.string.provider_network_settings_title)
+
+    override fun getSearchableTitles(context: Context): List<String> {
+        if (!isPageSearchable(context)) return emptyList()
+        return buildList {
+            if (context.requireSubscriptionManager().activeSubscriptionInfoCount > 0) {
+                add(context.getString(R.string.mobile_data_settings_title))
+            }
+        }
+    }
+
     companion object {
         const val fileName = "NetworkCellularGroupProvider"
+
+        private fun isPageSearchable(context: Context) =
+            Flags.isDualSimOnboardingEnabled() &&
+            SubscriptionUtil.isSimHardwareVisible(context) &&
+                !com.android.settingslib.Utils.isWifiOnly(context) &&
+                context.userManager.isAdminUser
     }
 }
 
@@ -202,21 +227,18 @@
 ) {
     val context = LocalContext.current
     val localLifecycleOwner = LocalLifecycleOwner.current
-    val wifiPickerTrackerHelper = getWifiPickerTrackerHelper(context, localLifecycleOwner)
-
-    val subscriptionManager: SubscriptionManager? =
-            context.getSystemService(SubscriptionManager::class.java)
+    val mobileDataRepository = rememberContext(::MobileDataRepository)
 
     Category(title = stringResource(id = R.string.mobile_data_settings_title)) {
         val isAutoDataEnabled by remember(nonDds.intValue) {
-            TelephonyRepository(context).isMobileDataPolicyEnabledFlow(
+            mobileDataRepository.isMobileDataPolicyEnabledFlow(
                 subId = nonDds.intValue,
                 policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH
             )
         }.collectAsStateWithLifecycle(initialValue = null)
 
         val mobileDataStateChanged by remember(mobileDataSelectedId.intValue) {
-            TelephonyRepository(context).isDataEnabledFlow(mobileDataSelectedId.intValue)
+            mobileDataRepository.isMobileDataEnabledFlow(mobileDataSelectedId.intValue)
         }.collectAsStateWithLifecycle(initialValue = false)
         val coroutineScope = rememberCoroutineScope()
 
@@ -226,8 +248,8 @@
                 coroutineScope.launch {
                     setMobileData(
                         context,
-                        subscriptionManager,
-                        wifiPickerTrackerHelper,
+                        context.getSystemService(SubscriptionManager::class.java),
+                        getWifiPickerTrackerHelper(context, localLifecycleOwner),
                         mobileDataSelectedId.intValue,
                         newEnabled
                     )
@@ -238,7 +260,7 @@
             AutomaticDataSwitchingPreference(
                 isAutoDataEnabled = { isAutoDataEnabled },
                 setAutoDataEnabled = { newEnabled ->
-                    TelephonyRepository(context).setAutomaticData(nonDds.intValue, newEnabled)
+                    mobileDataRepository.setAutoDataSwitch(nonDds.intValue, newEnabled)
                 },
             )
         }
@@ -281,14 +303,14 @@
 ) {
     CreatePrimarySimListPreference(
         stringResource(id = R.string.primary_sim_calls_title),
-        primarySimInfo.callsAndSmsList,
+        primarySimInfo.callsList,
         callsSelectedId,
         ImageVector.vectorResource(R.drawable.ic_phone),
         actionSetCalls
     )
     CreatePrimarySimListPreference(
         stringResource(id = R.string.primary_sim_texts_title),
-        primarySimInfo.callsAndSmsList,
+        primarySimInfo.smsList,
         textsSelectedId,
         Icons.AutoMirrored.Outlined.Message,
         actionSetTexts
@@ -426,6 +448,6 @@
             Log.d(NetworkCellularGroupProvider.fileName, "setDefaultData: [$targetSubId]")
             subscriptionManager?.setDefaultDataSubId(targetSubId)
         }
-        TelephonyRepository(context)
-            .setMobileData(targetSubId, enabled, wifiPickerTrackerHelper)
+        MobileDataRepository(context)
+            .setMobileDataEnabled(targetSubId, enabled, wifiPickerTrackerHelper)
     }
\ No newline at end of file
diff --git a/src/com/android/settings/spa/network/PrimarySimRepository.kt b/src/com/android/settings/spa/network/PrimarySimRepository.kt
index e34a29e..420f870 100644
--- a/src/com/android/settings/spa/network/PrimarySimRepository.kt
+++ b/src/com/android/settings/spa/network/PrimarySimRepository.kt
@@ -22,12 +22,14 @@
 import android.util.Log
 import com.android.settings.R
 import com.android.settings.network.SubscriptionUtil
+import com.android.settings.network.telephony.CarrierConfigRepository
 import com.android.settingslib.spa.widget.preference.ListPreferenceOption
 
 class PrimarySimRepository(private val context: Context) {
 
     data class PrimarySimInfo(
-        val callsAndSmsList: List<ListPreferenceOption>,
+        val callsList: List<ListPreferenceOption>,
+        val smsList: List<ListPreferenceOption>,
         val dataList: List<ListPreferenceOption>,
     )
 
@@ -37,7 +39,8 @@
             return null
         }
 
-        val callsAndSmsList = mutableListOf<ListPreferenceOption>()
+        val callsList = mutableListOf<ListPreferenceOption>()
+        val smsList = mutableListOf<ListPreferenceOption>()
         val dataList = mutableListOf<ListPreferenceOption>()
         for (info in selectableSubscriptionInfoList) {
             val item = ListPreferenceOption(
@@ -45,15 +48,22 @@
                 text = "${info.displayName}",
                 summary = SubscriptionUtil.getBidiFormattedPhoneNumber(context, info) ?: "",
             )
-            callsAndSmsList += item
+            callsList += item
+            smsList += item
             dataList += item
         }
-        callsAndSmsList += ListPreferenceOption(
+
+        val askEveryTime = ListPreferenceOption(
             id = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
             text = context.getString(R.string.sim_calls_ask_first_prefs_title),
         )
+        callsList += askEveryTime
+        if (context.resources
+                .getBoolean(com.android.internal.R.bool.config_sms_ask_every_time_support)) {
+            smsList += askEveryTime
+        }
 
-        return PrimarySimInfo(callsAndSmsList, dataList)
+        return PrimarySimInfo(callsList, smsList, dataList)
     }
 
     private companion object {
diff --git a/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt b/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt
index 6466731..f78808f 100644
--- a/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt
+++ b/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt
@@ -81,24 +81,28 @@
     onboardingService: SimOnboardingService,
     subInfo: SubscriptionInfo,
 ) {
-    val originalSimCarrierName = subInfo.displayName.toString()
-    var titleSimName by remember {
-        mutableStateOf(onboardingService.getSubscriptionInfoDisplayName(subInfo))
+    val currentSimName = onboardingService.getSubscriptionInfoDisplayName(subInfo)
+    var prefTitle by remember {
+        mutableStateOf(currentSimName)
+    }
+    var dialogInputContent by remember {
+        mutableStateOf(currentSimName)
     }
     val phoneNumber = phoneNumber(subInfo)
     val alertDialogPresenter = rememberAlertDialogPresenter(
         confirmButton = AlertDialogButton(
             stringResource(R.string.mobile_network_sim_name_rename),
-            titleSimName.isNotBlank()
+            dialogInputContent.isNotBlank()
         ) {
             onboardingService.addItemForRenaming(
-                subInfo, if (titleSimName.isEmpty()) originalSimCarrierName else titleSimName
+                subInfo, dialogInputContent
             )
+            prefTitle = dialogInputContent
         },
         dismissButton = AlertDialogButton(
             stringResource(R.string.cancel),
         ) {
-            titleSimName = onboardingService.getSubscriptionInfoDisplayName(subInfo)
+            // Do nothing
         },
         title = stringResource(R.string.sim_onboarding_label_sim_dialog_title),
         text = {
@@ -107,17 +111,19 @@
                 modifier = Modifier.padding(bottom = SettingsDimension.itemPaddingVertical)
             )
             SettingsOutlinedTextField(
-                value = titleSimName,
+                value = dialogInputContent,
                 label = stringResource(R.string.sim_onboarding_label_sim_dialog_label),
-                placeholder = {Text(text = originalSimCarrierName)},
-                modifier = Modifier.fillMaxWidth().testTag("contentInput")
+                placeholder = {Text(text = subInfo.displayName.toString())},
+                modifier = Modifier
+                    .fillMaxWidth()
+                    .testTag("contentInput")
             ) {
-                titleSimName = it
+                dialogInputContent = it
             }
         },
     )
     Preference(object : PreferenceModel {
-        override val title = titleSimName
+        override val title = prefTitle
         override val summary = { phoneNumber.value ?: "" }
         override val onClick = alertDialogPresenter::open
     })
diff --git a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
index 9f949c4..8a534c8 100644
--- a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
+++ b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
@@ -105,7 +105,7 @@
 
     override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> {
         val options = mutableListOf(SpinnerItem.AllApps, SpinnerItem.TurnedOff)
-        if (repository.isUserUnlocked(recordList[0].app.userId)) {
+        if (recordList.isNotEmpty() && repository.isUserUnlocked(recordList[0].app.userId)) {
             options.add(0, SpinnerItem.MostRecent)
             options.add(1, SpinnerItem.MostFrequent)
         }
diff --git a/src/com/android/settings/spa/search/SearchablePage.kt b/src/com/android/settings/spa/search/SearchablePage.kt
new file mode 100644
index 0000000..f4a8795
--- /dev/null
+++ b/src/com/android/settings/spa/search/SearchablePage.kt
@@ -0,0 +1,28 @@
+/*
+ * 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.spa.search
+
+import android.content.Context
+
+interface SearchablePage {
+
+    /** Gets the title of the page. */
+    fun getPageTitleForSearch(context: Context): String = ""
+
+    /** Gets the titles of the searchable items at the current moment. */
+    fun getSearchableTitles(context: Context): List<String>
+}
diff --git a/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
new file mode 100644
index 0000000..2c0955b
--- /dev/null
+++ b/src/com/android/settings/spa/search/SpaSearchLandingActivity.kt
@@ -0,0 +1,76 @@
+/*
+ * 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.spa.search
+
+import android.app.Activity
+import android.app.settings.SettingsEnums
+import android.content.Context
+import android.os.Bundle
+import android.util.Log
+import androidx.annotation.VisibleForTesting
+import com.android.settings.SettingsActivity.EXTRA_FRAGMENT_ARG_KEY
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settings.password.PasswordUtils
+import com.android.settings.spa.SpaDestination
+
+class SpaSearchLandingActivity : Activity() {
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        val keyString = intent.getStringExtra(EXTRA_FRAGMENT_ARG_KEY)
+        if (!keyString.isNullOrEmpty() && isValidCall()) {
+            tryLaunch(this, keyString)
+        }
+        finish()
+    }
+
+    private fun isValidCall() =
+        PasswordUtils.getCallingAppPackageName(activityToken) ==
+            featureFactory.searchFeatureProvider.getSettingsIntelligencePkgName(this)
+
+    companion object {
+        @VisibleForTesting
+        fun tryLaunch(context: Context, keyString: String) {
+            val key = decodeToSpaSearchLandingKey(keyString) ?: return
+            if (key.hasSpaPage()) {
+                val destination = key.spaPage.destination
+                if (destination.isNotEmpty()) {
+                    Log.d(TAG, "Launch SPA search result: ${key.spaPage}")
+                    SpaDestination(destination = destination, highlightMenuKey = null)
+                        .startFromExportedActivity(context)
+                }
+            }
+            if (key.hasFragment()) {
+                Log.d(TAG, "Launch fragment search result: ${key.fragment}")
+                val arguments =
+                    Bundle().apply {
+                        key.fragment.argumentsMap.forEach { (k, v) ->
+                            if (v.hasIntValue()) putInt(k, v.intValue)
+                        }
+                        putString(EXTRA_FRAGMENT_ARG_KEY, key.fragment.preferenceKey)
+                    }
+                SubSettingLauncher(context)
+                    .setDestination(key.fragment.fragmentName)
+                    .setArguments(arguments)
+                    .setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN)
+                    .launch()
+            }
+        }
+
+        private const val TAG = "SpaSearchLandingActivity"
+    }
+}
diff --git a/src/com/android/settings/spa/search/SpaSearchLandingKeyExt.kt b/src/com/android/settings/spa/search/SpaSearchLandingKeyExt.kt
new file mode 100644
index 0000000..9540d9b
--- /dev/null
+++ b/src/com/android/settings/spa/search/SpaSearchLandingKeyExt.kt
@@ -0,0 +1,34 @@
+/*
+ * 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.spa.search
+
+import android.util.Base64
+import android.util.Log
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+
+private const val TAG = "SpaSearchLandingKeyExt"
+
+fun SpaSearchLandingKey.encodeToString(): String =
+    Base64.encodeToString(toByteArray(), Base64.DEFAULT)
+
+fun decodeToSpaSearchLandingKey(input: String): SpaSearchLandingKey? =
+    try {
+        SpaSearchLandingKey.parseFrom(Base64.decode(input, Base64.DEFAULT))
+    } catch (e: Exception) {
+        Log.w(TAG, "SpaSearchLandingKey ($input) invalid", e)
+        null
+    }
diff --git a/src/com/android/settings/spa/search/SpaSearchRepository.kt b/src/com/android/settings/spa/search/SpaSearchRepository.kt
new file mode 100644
index 0000000..b1003ae
--- /dev/null
+++ b/src/com/android/settings/spa/search/SpaSearchRepository.kt
@@ -0,0 +1,111 @@
+/*
+ * 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.spa.search
+
+import android.content.Context
+import android.provider.SearchIndexableResource
+import android.util.Log
+import androidx.annotation.VisibleForTesting
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingSpaPage
+import com.android.settingslib.search.Indexable
+import com.android.settingslib.search.SearchIndexableData
+import com.android.settingslib.search.SearchIndexableRaw
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.common.SpaEnvironment
+import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory
+
+class SpaSearchRepository(
+    private val spaEnvironment: SpaEnvironment = SpaEnvironmentFactory.instance,
+) {
+    fun getSearchIndexableDataList(): List<SearchIndexableData> {
+        Log.d(TAG, "getSearchIndexableDataList")
+        return spaEnvironment.pageProviderRepository.value.getAllProviders().mapNotNull { page ->
+            if (page is SearchablePage) {
+                page.createSearchIndexableData(
+                    page::getPageTitleForSearch, page::getSearchableTitles)
+            } else null
+        } + MobileNetworkSettingsSearchIndex().createSearchIndexableData()
+    }
+
+    companion object {
+        private const val TAG = "SpaSearchRepository"
+
+        @VisibleForTesting
+        fun SettingsPageProvider.createSearchIndexableData(
+            getPageTitleForSearch: (context: Context) -> String,
+            titlesProvider: (context: Context) -> List<String>,
+        ): SearchIndexableData {
+            val key =
+                SpaSearchLandingKey.newBuilder()
+                    .setSpaPage(SpaSearchLandingSpaPage.newBuilder().setDestination(name))
+                    .build()
+            val indexableClass = this::class.java
+            val searchIndexProvider = searchIndexProviderOf { context ->
+                val pageTitle = getPageTitleForSearch(context)
+                titlesProvider(context).map { itemTitle ->
+                    createSearchIndexableRaw(context, key, itemTitle, indexableClass, pageTitle)
+                }
+            }
+            return SearchIndexableData(indexableClass, searchIndexProvider)
+        }
+
+        fun searchIndexProviderOf(
+            getDynamicRawDataToIndex: (context: Context) -> List<SearchIndexableRaw>,
+        ) =
+            object : Indexable.SearchIndexProvider {
+                override fun getXmlResourcesToIndex(
+                    context: Context,
+                    enabled: Boolean,
+                ): List<SearchIndexableResource> = emptyList()
+
+                override fun getRawDataToIndex(
+                    context: Context,
+                    enabled: Boolean,
+                ): List<SearchIndexableRaw> = emptyList()
+
+                override fun getDynamicRawDataToIndex(
+                    context: Context,
+                    enabled: Boolean,
+                ): List<SearchIndexableRaw> = getDynamicRawDataToIndex(context)
+
+                override fun getNonIndexableKeys(context: Context): List<String> = emptyList()
+            }
+
+        fun createSearchIndexableRaw(
+            context: Context,
+            spaSearchLandingKey: SpaSearchLandingKey,
+            itemTitle: String,
+            indexableClass: Class<*>,
+            pageTitle: String,
+            keywords: String? = null,
+        ) =
+            SearchIndexableRaw(context).apply {
+                key = spaSearchLandingKey.encodeToString()
+                title = itemTitle
+                this.keywords = keywords
+                intentAction = SEARCH_LANDING_ACTION
+                intentTargetClass = SpaSearchLandingActivity::class.qualifiedName
+                packageName = context.packageName
+                className = indexableClass.name
+                screenTitle = pageTitle
+            }
+
+        private const val SEARCH_LANDING_ACTION = "android.settings.SPA_SEARCH_LANDING"
+    }
+}
diff --git a/src/com/android/settings/system/FactoryResetPreferenceController.java b/src/com/android/settings/system/FactoryResetPreferenceController.java
index df7cc3d..54c97a3 100644
--- a/src/com/android/settings/system/FactoryResetPreferenceController.java
+++ b/src/com/android/settings/system/FactoryResetPreferenceController.java
@@ -16,6 +16,7 @@
 package com.android.settings.system;
 
 import android.Manifest;
+import android.annotation.RequiresPermission;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageInfo;
@@ -37,8 +38,8 @@
 
     private static final String TAG = "FactoryResetPreference";
 
-    @VisibleForTesting
-    static final String ACTION_PREPARE_FACTORY_RESET =
+    @RequiresPermission(Manifest.permission.PREPARE_FACTORY_RESET)
+    public static final String ACTION_PREPARE_FACTORY_RESET =
             "com.android.settings.ACTION_PREPARE_FACTORY_RESET";
 
     private final UserManager mUm;
diff --git a/src/com/android/settings/system/reset/ResetNetworkConfirm.kt b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
new file mode 100644
index 0000000..e040356
--- /dev/null
+++ b/src/com/android/settings/system/reset/ResetNetworkConfirm.kt
@@ -0,0 +1,235 @@
+/*
+ * 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.system.reset
+
+import android.app.ProgressDialog
+import android.app.settings.SettingsEnums
+import android.content.DialogInterface
+import android.os.Bundle
+import android.os.Looper
+import android.telephony.SubscriptionManager
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import android.widget.Toast
+import androidx.annotation.VisibleForTesting
+import androidx.appcompat.app.AlertDialog
+import androidx.lifecycle.lifecycleScope
+import com.android.settings.R
+import com.android.settings.ResetNetworkRequest
+import com.android.settings.Utils
+import com.android.settings.core.InstrumentedFragment
+import com.android.settings.network.ResetNetworkRestrictionViewBuilder
+import com.android.settings.network.telephony.SubscriptionRepository
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.emptyFlow
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.mapNotNull
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * Confirm and execute a reset of the network settings to a clean "just out of the box" state.
+ * Multiple confirmations are required: first, a general "are you sure you want to do this?" prompt,
+ * followed by a keyguard pattern trace if the user has defined one, followed by a final
+ * strongly-worded "THIS WILL RESET EVERYTHING" prompt. If at any time the phone is allowed to go to
+ * sleep, is locked, et cetera, then the confirmation sequence is abandoned.
+ *
+ * This is the confirmation screen.
+ */
+class ResetNetworkConfirm : InstrumentedFragment() {
+    @VisibleForTesting
+    lateinit var resetNetworkRequest: ResetNetworkRequest
+    private var progressDialog: ProgressDialog? = null
+    private var alertDialog: AlertDialog? = null
+    private var resetStarted = false
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+        Log.d(TAG, "onCreate: $arguments")
+        resetNetworkRequest = ResetNetworkRequest(arguments)
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        val view = ResetNetworkRestrictionViewBuilder(requireActivity()).build()
+        if (view != null) {
+            Log.w(TAG, "Access deny.")
+            return view
+        }
+        return inflater.inflate(R.layout.reset_network_confirm, null).apply {
+            establishFinalConfirmationState()
+            setSubtitle()
+        }
+    }
+
+    /** Configure the UI for the final confirmation interaction */
+    private fun View.establishFinalConfirmationState() {
+        requireViewById<View>(R.id.execute_reset_network).setOnClickListener {
+            showResetInternetDialog();
+        }
+    }
+
+    private fun View.setSubtitle() {
+        if (resetNetworkRequest.resetEsimPackageName != null) {
+            requireViewById<TextView>(R.id.reset_network_confirm)
+                .setText(R.string.reset_network_final_desc_esim)
+        }
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        invalidSubIdFlow().collectLatestWithLifecycle(viewLifecycleOwner) { invalidSubId ->
+            // Reset process could triage this callback, so if reset has started, ignore the event.
+            if (!resetStarted) {
+                Log.w(TAG, "subId $invalidSubId no longer active.")
+                requireActivity().finish()
+            }
+        }
+    }
+
+    /**
+     * Monitor the sub ids in the request, if any sub id becomes inactive, the request is abandoned.
+     */
+    private fun invalidSubIdFlow(): Flow<Int> {
+        val subIdsInRequest =
+            listOf(
+                resetNetworkRequest.resetTelephonyAndNetworkPolicyManager,
+                resetNetworkRequest.resetApnSubId,
+                resetNetworkRequest.resetImsSubId,
+            )
+                .distinct()
+                .filter(SubscriptionManager::isUsableSubscriptionId)
+
+        if (subIdsInRequest.isEmpty()) return emptyFlow()
+
+        return SubscriptionRepository(requireContext())
+            .activeSubscriptionIdListFlow()
+            .mapNotNull { activeSubIds -> subIdsInRequest.firstOrNull { it !in activeSubIds } }
+            .conflate()
+            .flowOn(Dispatchers.Default)
+    }
+
+    /**
+     * The user has gone through the multiple confirmation, so now we go ahead and reset the network
+     * settings to its factory-default state.
+     */
+    @VisibleForTesting
+    suspend fun onResetClicked() {
+        showProgressDialog()
+        resetNetwork()
+    }
+
+    private fun showProgressDialog() {
+        progressDialog =
+            ProgressDialog(requireContext()).apply {
+                isIndeterminate = true
+                setCancelable(false)
+                setMessage(requireContext().getString(R.string.main_clear_progress_text))
+                show()
+            }
+    }
+
+    private fun dismissProgressDialog() {
+        progressDialog?.let { progressDialog ->
+            if (progressDialog.isShowing) {
+                progressDialog.dismiss()
+            }
+        }
+    }
+
+    private fun showResetInternetDialog() {
+        val builder = AlertDialog.Builder(requireContext())
+        val resetInternetClickListener =
+            DialogInterface.OnClickListener { dialog, which ->
+                if (!Utils.isMonkeyRunning() && !resetStarted) {
+                    resetStarted = true
+                    viewLifecycleOwner.lifecycleScope.launch { onResetClicked() }
+                }
+            }
+
+        builder.setTitle(R.string.reset_your_internet_title)
+            .setMessage(R.string.reset_internet_text)
+            .setPositiveButton(R.string.tts_reset, resetInternetClickListener)
+            .setNegativeButton(android.R.string.cancel, null)
+            .create()
+            .show()
+    }
+
+    /**
+     * Do all reset task.
+     *
+     * If error happens during erasing eSIM profiles or timeout, an error msg is shown.
+     */
+    private suspend fun resetNetwork() {
+        var resetEsimSuccess = true
+
+        withContext(Dispatchers.Default) {
+            val builder =
+                resetNetworkRequest.toResetNetworkOperationBuilder(
+                    requireContext(), Looper.getMainLooper()
+                )
+            resetNetworkRequest.resetEsimPackageName?.let { resetEsimPackageName ->
+                builder.resetEsim(resetEsimPackageName)
+                builder.resetEsimResultCallback { resetEsimSuccess = it }
+            }
+            builder.build().run()
+        }
+
+        Log.d(TAG, "network factoryReset complete. succeeded: $resetEsimSuccess")
+        onResetFinished(resetEsimSuccess)
+    }
+
+    private fun onResetFinished(resetEsimSuccess: Boolean) {
+        dismissProgressDialog()
+        val activity = requireActivity()
+
+        if (!resetEsimSuccess) {
+            alertDialog =
+                AlertDialog.Builder(activity)
+                    .setTitle(R.string.reset_esim_error_title)
+                    .setMessage(R.string.reset_esim_error_msg)
+                    .setPositiveButton(android.R.string.ok, /* listener= */ null)
+                    .show()
+        } else {
+            Toast.makeText(activity, R.string.reset_network_complete_toast, Toast.LENGTH_SHORT)
+                .show()
+            activity.finish()
+        }
+    }
+
+    override fun onDestroy() {
+        progressDialog?.dismiss()
+        alertDialog?.dismiss()
+        super.onDestroy()
+    }
+
+    override fun getMetricsCategory() = SettingsEnums.RESET_NETWORK_CONFIRM
+
+    private companion object {
+        const val TAG = "ResetNetworkConfirm"
+    }
+}
diff --git a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
index ce5533e..fe90a2a 100644
--- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
@@ -42,9 +42,18 @@
         if (!isAvailable()) {
             restrictedSwitchPreference.setVisible(false);
         } else {
-            restrictedSwitchPreference.setDisabledByAdmin(
-                    mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
-            restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+            if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+                restrictedSwitchPreference.setVisible(true);
+                if (mUserCaps.mDisallowAddUserSetByAdmin) {
+                    restrictedSwitchPreference.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
+                } else if (mUserCaps.mDisallowAddUser) {
+                    restrictedSwitchPreference.setVisible(false);
+                }
+            } else {
+                restrictedSwitchPreference.setDisabledByAdmin(
+                        mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
+                restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+            }
         }
     }
 
@@ -52,6 +61,8 @@
     public int getAvailabilityStatus() {
         if (!mUserCaps.isAdmin()) {
             return DISABLED_FOR_USER;
+        } else if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+            return AVAILABLE;
         } else if (mUserCaps.disallowAddUser() || mUserCaps.disallowAddUserSetByAdmin()) {
             return DISABLED_FOR_USER;
         } else {
diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java
index 1532448..c42e2f5 100644
--- a/src/com/android/settings/users/AppRestrictionsFragment.java
+++ b/src/com/android/settings/users/AppRestrictionsFragment.java
@@ -651,7 +651,7 @@
                     int requestCode = generateCustomActivityRequestCode(
                             RestrictionsResultReceiver.this.preference);
                     AppRestrictionsFragment.this.startActivityForResult(
-                            restrictionsIntent, requestCode);
+                            new Intent(restrictionsIntent), requestCode);
                 }
             }
         }
diff --git a/src/com/android/settings/users/GuestTelephonyPreferenceController.java b/src/com/android/settings/users/GuestTelephonyPreferenceController.java
index 4fbd449..e730cbf 100644
--- a/src/com/android/settings/users/GuestTelephonyPreferenceController.java
+++ b/src/com/android/settings/users/GuestTelephonyPreferenceController.java
@@ -19,12 +19,16 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.os.UserManager;
 
 import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedSwitchPreference;
 
 /**
  * Controls the preference on the user settings screen which determines whether the guest user
@@ -43,10 +47,21 @@
 
     @Override
     public int getAvailabilityStatus() {
-        if (!mUserCaps.isAdmin() || !mUserCaps.mCanAddGuest) {
+        if (!mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
+                || UserManager.isHeadlessSystemUserMode()) {
             return DISABLED_FOR_USER;
+        }
+        if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+            if (!mUserCaps.isAdmin()) {
+                return DISABLED_FOR_USER;
+            }
+            return AVAILABLE;
         } else {
-            return mUserCaps.mUserSwitcherEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+            if (!mUserCaps.isAdmin() || !mUserCaps.mCanAddGuest) {
+                return DISABLED_FOR_USER;
+            } else {
+                return mUserCaps.mUserSwitcherEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+            }
         }
     }
 
@@ -74,8 +89,31 @@
     public void updateState(Preference preference) {
         super.updateState(preference);
         mUserCaps.updateAddUserCapabilities(mContext);
-        preference.setVisible(isAvailable() && mUserCaps.mUserSwitcherEnabled
-                && mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY)
-                && !UserManager.isHeadlessSystemUserMode());
+        final RestrictedSwitchPreference restrictedSwitchPreference =
+                (RestrictedSwitchPreference) preference;
+        restrictedSwitchPreference.setChecked(isChecked());
+        if (!isAvailable()) {
+            restrictedSwitchPreference.setVisible(false);
+        } else {
+            if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+                restrictedSwitchPreference.setVisible(true);
+                final RestrictedLockUtils.EnforcedAdmin disallowRemoveUserAdmin =
+                        RestrictedLockUtilsInternal.checkIfRestrictionEnforced(mContext,
+                                UserManager.DISALLOW_REMOVE_USER, UserHandle.myUserId());
+                if (disallowRemoveUserAdmin != null) {
+                    restrictedSwitchPreference.setDisabledByAdmin(disallowRemoveUserAdmin);
+                } else if (mUserCaps.mDisallowAddUserSetByAdmin) {
+                    restrictedSwitchPreference.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
+                } else if (mUserCaps.mDisallowAddUser) {
+                    // Adding user is restricted by system
+                    restrictedSwitchPreference.setVisible(false);
+                }
+            } else {
+                restrictedSwitchPreference.setDisabledByAdmin(
+                        mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
+                restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled
+                        && isAvailable());
+            }
+        }
     }
 }
diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java
index f57b795..07c03d7 100644
--- a/src/com/android/settings/users/MultiUserSwitchBarController.java
+++ b/src/com/android/settings/users/MultiUserSwitchBarController.java
@@ -17,6 +17,7 @@
 package com.android.settings.users;
 
 import android.content.Context;
+import android.multiuser.Flags;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -25,6 +26,7 @@
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.widget.SwitchWidgetController;
+import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -53,17 +55,24 @@
         mUserCapabilities = UserCapabilities.create(context);
         mSwitchBar.setChecked(mUserCapabilities.mUserSwitcherEnabled);
 
-        if (mUserCapabilities.mDisallowSwitchUser) {
-            mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
+        if (Flags.fixDisablingOfMuToggleWhenRestrictionApplied()) {
+            RestrictedLockUtils.EnforcedAdmin enforcedAdmin = RestrictedLockUtilsInternal
                     .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
-                            UserHandle.myUserId()));
-
-        } else if (mUserCapabilities.mDisallowAddUser) {
-            mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
-                    .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_ADD_USER,
-                            UserHandle.myUserId()));
+                            UserHandle.myUserId());
+            if (enforcedAdmin != null) {
+                mSwitchBar.setDisabledByAdmin(enforcedAdmin);
+            } else {
+                mSwitchBar.setEnabled(mUserCapabilities.mIsMain
+                        && !mUserCapabilities.mDisallowSwitchUser);
+            }
         } else {
-            mSwitchBar.setEnabled(mUserCapabilities.mIsMain);
+            if (mUserCapabilities.mDisallowSwitchUser) {
+                mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
+                        .checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
+                                UserHandle.myUserId()));
+            } else {
+                mSwitchBar.setEnabled(mUserCapabilities.mIsMain);
+            }
         }
         mSwitchBar.setListener(this);
     }
diff --git a/src/com/android/settings/users/RemoveGuestOnExitPreferenceController.java b/src/com/android/settings/users/RemoveGuestOnExitPreferenceController.java
index 01df5fd..345b506 100644
--- a/src/com/android/settings/users/RemoveGuestOnExitPreferenceController.java
+++ b/src/com/android/settings/users/RemoveGuestOnExitPreferenceController.java
@@ -22,6 +22,7 @@
 import android.content.pm.UserInfo;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
 import android.util.Log;
@@ -33,6 +34,8 @@
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.RestrictedSwitchPreference;
 
 /**
@@ -70,9 +73,24 @@
         if (!isAvailable()) {
             restrictedSwitchPreference.setVisible(false);
         } else {
-            restrictedSwitchPreference.setDisabledByAdmin(
-                    mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
-            restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+            if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+                restrictedSwitchPreference.setVisible(true);
+                final RestrictedLockUtils.EnforcedAdmin disallowRemoveUserAdmin =
+                        RestrictedLockUtilsInternal.checkIfRestrictionEnforced(mContext,
+                                UserManager.DISALLOW_REMOVE_USER, UserHandle.myUserId());
+                if (disallowRemoveUserAdmin != null) {
+                    restrictedSwitchPreference.setDisabledByAdmin(disallowRemoveUserAdmin);
+                } else if (mUserCaps.mDisallowAddUserSetByAdmin) {
+                    restrictedSwitchPreference.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
+                } else if (mUserCaps.mDisallowAddUser) {
+                    // Adding user is restricted by system
+                    restrictedSwitchPreference.setVisible(false);
+                }
+            } else {
+                restrictedSwitchPreference.setDisabledByAdmin(
+                        mUserCaps.disallowAddUser() ? mUserCaps.getEnforcedAdmin() : null);
+                restrictedSwitchPreference.setVisible(mUserCaps.mUserSwitcherEnabled);
+            }
         }
     }
 
@@ -82,14 +100,24 @@
         // then disable this controller
         // also disable this controller for non-admin users
         // also disable when config_guestUserAllowEphemeralStateChange is false
-        if (mUserManager.isGuestUserAlwaysEphemeral()
-                || !UserManager.isGuestUserAllowEphemeralStateChange()
-                || !mUserCaps.isAdmin()
-                || mUserCaps.disallowAddUser()
-                || mUserCaps.disallowAddUserSetByAdmin()) {
-            return DISABLED_FOR_USER;
+        if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+            if (mUserManager.isGuestUserAlwaysEphemeral()
+                    || !UserManager.isGuestUserAllowEphemeralStateChange()
+                    || !mUserCaps.isAdmin()) {
+                return DISABLED_FOR_USER;
+            } else {
+                return AVAILABLE;
+            }
         } else {
-            return mUserCaps.mUserSwitcherEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+            if (mUserManager.isGuestUserAlwaysEphemeral()
+                    || !UserManager.isGuestUserAllowEphemeralStateChange()
+                    || !mUserCaps.isAdmin()
+                    || mUserCaps.disallowAddUser()
+                    || mUserCaps.disallowAddUserSetByAdmin()) {
+                return DISABLED_FOR_USER;
+            } else {
+                return mUserCaps.mUserSwitcherEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+            }
         }
     }
 
diff --git a/src/com/android/settings/users/UserCapabilities.java b/src/com/android/settings/users/UserCapabilities.java
index 590cb0c..60e92a8 100644
--- a/src/com/android/settings/users/UserCapabilities.java
+++ b/src/com/android/settings/users/UserCapabilities.java
@@ -76,6 +76,9 @@
     public void updateAddUserCapabilities(Context context) {
         final UserManager userManager =
                 (UserManager) context.getSystemService(Context.USER_SERVICE);
+        final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
+        mIsAdmin = myUserInfo.isAdmin();
+
         mEnforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(context,
                 UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
         final boolean hasBaseUserRestriction = RestrictedLockUtilsInternal.hasBaseUserRestriction(
diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java
index b48c717..8afab96 100644
--- a/src/com/android/settings/users/UserDetailsSettings.java
+++ b/src/com/android/settings/users/UserDetailsSettings.java
@@ -126,7 +126,11 @@
     @Override
     public void onResume() {
         super.onResume();
-        mSwitchUserPref.setEnabled(canSwitchUserNow());
+        if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+            mSwitchUserPref.setEnabled(canSwitchUserNow() && mUserCaps.mUserSwitcherEnabled);
+        } else {
+            mSwitchUserPref.setEnabled(canSwitchUserNow());
+        }
         if (mUserInfo.isGuest() && mGuestUserAutoCreated) {
             mRemoveUserPref.setEnabled((mUserInfo.flags & UserInfo.FLAG_INITIALIZED) != 0);
         }
@@ -358,18 +362,29 @@
             mSwitchUserPref.setDisabledByAdmin(RestrictedLockUtilsInternal.getDeviceOwner(context));
         } else {
             mSwitchUserPref.setDisabledByAdmin(null);
-            mSwitchUserPref.setSelectable(true);
+            if (android.multiuser.Flags.newMultiuserSettingsUx()) {
+                mSwitchUserPref.setEnabled(mUserCaps.mUserSwitcherEnabled);
+                mSwitchUserPref.setSelectable(mUserCaps.mUserSwitcherEnabled);
+            } else {
+                mSwitchUserPref.setSelectable(true);
+            }
             mSwitchUserPref.setOnPreferenceClickListener(this);
         }
-        if (mUserInfo.isMain() || mUserInfo.isGuest() || !UserManager.isMultipleAdminEnabled()
-                || mUserManager.hasUserRestrictionForUser(UserManager.DISALLOW_GRANT_ADMIN,
-                mUserInfo.getUserHandle())) {
-            removePreference(KEY_GRANT_ADMIN);
+        if (android.multiuser.Flags.unicornModeRefactoringForHsumReadOnly()) {
+            if (isChangingAdminStatusRestricted()) {
+                removePreference(KEY_GRANT_ADMIN);
+            }
+        } else {
+            if (mUserInfo.isMain() || mUserInfo.isGuest() || !UserManager.isMultipleAdminEnabled()
+                    || mUserManager.hasUserRestrictionForUser(UserManager.DISALLOW_GRANT_ADMIN,
+                    mUserInfo.getUserHandle()) || !mUserManager.isAdminUser()) {
+                removePreference(KEY_GRANT_ADMIN);
+            }
         }
+
         if (!mUserManager.isAdminUser()) { // non admin users can't remove users and allow calls
             removePreference(KEY_ENABLE_TELEPHONY);
             removePreference(KEY_REMOVE_USER);
-            removePreference(KEY_GRANT_ADMIN);
             removePreference(KEY_APP_AND_CONTENT_ACCESS);
             removePreference(KEY_APP_COPYING);
         } else {
@@ -544,4 +559,35 @@
         //  return true so there will be no setup prompt dialog shown to the user anymore.
         return isSecondaryUser(mUserInfo) && !mUserInfo.isInitialized();
     }
+
+    /**
+     * Determines if changing admin status is restricted.
+     *
+     * <p>Admin status change is restricted under the following conditions of current & target user.
+     *
+     * <ul>
+     *   <li>The <b>current</b> user is NOT an admin user.</li>
+     *   <li>OR multiple admin support is NOT enabled.</li>
+     *   <li>OR the <b>current</b> user has DISALLOW_GRANT_ADMIN restriction applied</li>
+     *
+     *   <li>OR the <b>target</b> user ('mUserInfo') is a main user</li>
+     *   <li>OR the <b>target</b> user ('mUserInfo') is not of type
+     *   {@link UserManager#USER_TYPE_FULL_SECONDARY}</li>
+     *   <li>OR the <b>target</b> user ('mUserInfo') has DISALLOW_GRANT_ADMIN restriction.</li>
+     * </ul>
+     *
+     * @return true if changing admin status is restricted, false otherwise
+     */
+    private boolean isChangingAdminStatusRestricted() {
+        boolean currentUserRestricted = !mUserManager.isAdminUser()
+                || !UserManager.isMultipleAdminEnabled()
+                || mUserManager.hasUserRestriction(UserManager.DISALLOW_GRANT_ADMIN);
+
+        boolean targetUserRestricted = mUserInfo.isMain()
+                || !(UserManager.USER_TYPE_FULL_SECONDARY.equals(mUserInfo.userType))
+                || mUserManager.hasUserRestrictionForUser(UserManager.DISALLOW_GRANT_ADMIN,
+                mUserInfo.getUserHandle());
+
+        return currentUserRestricted || targetUserRestricted;
+    }
 }
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index bf21c9b..c387d9e 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -463,7 +463,8 @@
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         int pos = 0;
-        if (!isCurrentUserAdmin() && canSwitchUserNow() && !isCurrentUserGuest()) {
+        if (!isCurrentUserAdmin() && (canSwitchUserNow() || Flags.newMultiuserSettingsUx())
+                && !isCurrentUserGuest()) {
             String nickname = mUserManager.getUserName();
             MenuItem removeThisUser = menu.add(0, MENU_REMOVE_USER, pos++,
                     getResources().getString(R.string.user_remove_user_menu, nickname));
@@ -918,7 +919,7 @@
             d = mCreateUserDialogController.createDialog(
                     getActivity(),
                     this::startActivityForResult,
-                    UserManager.isMultipleAdminEnabled(),
+                    canCreateAdminUser(),
                     (userName, userIcon, isAdmin) -> {
                         mPendingUserIcon = userIcon;
                         mPendingUserName = userName;
@@ -936,6 +937,19 @@
         return d;
     }
 
+    /**
+     * Checks if the creation of a new admin user is allowed.
+     * @return {@code true} if creating a new admin is allowed, {@code false} otherwise.
+     */
+    private boolean canCreateAdminUser() {
+        if (Flags.unicornModeRefactoringForHsumReadOnly()) {
+            return UserManager.isMultipleAdminEnabled()
+                    && !mUserManager.hasUserRestriction(UserManager.DISALLOW_GRANT_ADMIN);
+        } else {
+            return UserManager.isMultipleAdminEnabled();
+        }
+    }
+
     @Override
     public int getDialogMetricsCategory(int dialogId) {
         switch (dialogId) {
@@ -1198,15 +1212,23 @@
         }
 
         List<UserInfo> users;
-        if (mUserCaps.mUserSwitcherEnabled) {
+        if (Flags.newMultiuserSettingsUx()) {
             // Only users that can be switched to should show up here.
             // e.g. Managed profiles appear under Accounts Settings instead
             users = mUserManager.getAliveUsers().stream()
                     .filter(UserInfo::supportsSwitchToByUser)
                     .collect(Collectors.toList());
         } else {
-            // Only current user will be displayed in case of multi-user switch is disabled
-            users = List.of(mUserManager.getUserInfo(context.getUserId()));
+            if (mUserCaps.mUserSwitcherEnabled) {
+                // Only users that can be switched to should show up here.
+                // e.g. Managed profiles appear under Accounts Settings instead
+                users = mUserManager.getAliveUsers().stream()
+                        .filter(UserInfo::supportsSwitchToByUser)
+                        .collect(Collectors.toList());
+            } else {
+                // Only current user will be displayed in case of multi-user switch is disabled
+                users = List.of(mUserManager.getUserInfo(context.getUserId()));
+            }
         }
 
         final ArrayList<Integer> missingIcons = new ArrayList<>();
@@ -1257,7 +1279,10 @@
                     pref.setSummary(R.string.user_summary_not_set_up);
                     // Disallow setting up user which results in user switching when the
                     // restriction is set.
-                    pref.setEnabled(!mUserCaps.mDisallowSwitchUser && canSwitchUserNow());
+                    // If newMultiuserSettingsUx flag is enabled, allow opening user details page
+                    // since switch to user will be disabled
+                    pref.setEnabled((!mUserCaps.mDisallowSwitchUser && canSwitchUserNow())
+                            || Flags.newMultiuserSettingsUx());
                 }
             } else if (user.isRestricted()) {
                 pref.setSummary(R.string.user_summary_restricted_profile);
@@ -1417,16 +1442,22 @@
                             getContext().getResources(), icon)));
             pref.setKey(KEY_USER_GUEST);
             pref.setOrder(Preference.DEFAULT_ORDER);
-            if (mUserCaps.mDisallowSwitchUser) {
+            if (mUserCaps.mDisallowSwitchUser && !Flags.newMultiuserSettingsUx()) {
                 pref.setDisabledByAdmin(
                         RestrictedLockUtilsInternal.getDeviceOwner(context));
             } else {
                 pref.setDisabledByAdmin(null);
             }
-            if (mUserCaps.mUserSwitcherEnabled) {
+            if (Flags.newMultiuserSettingsUx()) {
                 mGuestUserCategory.addPreference(pref);
                 // guest user preference is shown hence also make guest category visible
                 mGuestUserCategory.setVisible(true);
+            } else {
+                if (mUserCaps.mUserSwitcherEnabled) {
+                    mGuestUserCategory.addPreference(pref);
+                    // guest user preference is shown hence also make guest category visible
+                    mGuestUserCategory.setVisible(true);
+                }
             }
             isGuestAlreadyCreated = true;
         }
@@ -1450,10 +1481,11 @@
 
     private boolean updateAddGuestPreference(Context context, boolean isGuestAlreadyCreated) {
         boolean isVisible = false;
-        if (!isGuestAlreadyCreated && mUserCaps.mCanAddGuest
+        if (!isGuestAlreadyCreated && (mUserCaps.mCanAddGuest
+                || (Flags.newMultiuserSettingsUx() && mUserCaps.mDisallowAddUser))
                 && mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_GUEST)
                 && WizardManagerHelper.isDeviceProvisioned(context)
-                && mUserCaps.mUserSwitcherEnabled) {
+                && (mUserCaps.mUserSwitcherEnabled || Flags.newMultiuserSettingsUx())) {
             Drawable icon = context.getDrawable(
                     com.android.settingslib.R.drawable.ic_account_circle);
             mAddGuest.setIcon(centerAndTint(icon));
@@ -1466,7 +1498,25 @@
                 mAddGuest.setEnabled(false);
             } else {
                 mAddGuest.setTitle(com.android.settingslib.R.string.guest_new_guest);
-                mAddGuest.setEnabled(canSwitchUserNow());
+                if (Flags.newMultiuserSettingsUx()
+                        && mUserCaps.mDisallowAddUserSetByAdmin) {
+                    mAddGuest.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
+                } else if (Flags.newMultiuserSettingsUx() && mUserCaps.mDisallowAddUser) {
+                    final List<UserManager.EnforcingUser> enforcingUsers =
+                            mUserManager.getUserRestrictionSources(UserManager.DISALLOW_ADD_USER,
+                                    UserHandle.of(UserHandle.myUserId()));
+                    if (!enforcingUsers.isEmpty()) {
+                        final UserManager.EnforcingUser enforcingUser = enforcingUsers.get(0);
+                        final int restrictionSource = enforcingUser.getUserRestrictionSource();
+                        if (restrictionSource == UserManager.RESTRICTION_SOURCE_SYSTEM) {
+                            mAddGuest.setEnabled(false);
+                        } else {
+                            mAddGuest.setVisible(false);
+                        }
+                    }
+                } else {
+                    mAddGuest.setEnabled(canSwitchUserNow() || Flags.newMultiuserSettingsUx());
+                }
             }
         } else {
             mAddGuest.setVisible(false);
@@ -1494,16 +1544,18 @@
 
     private void updateAddUserCommon(Context context, RestrictedPreference addUser,
             boolean canAddRestrictedProfile) {
-        if ((mUserCaps.mCanAddUser && !mUserCaps.mDisallowAddUserSetByAdmin)
+        if ((mUserCaps.mCanAddUser
+                && !(mUserCaps.mDisallowAddUserSetByAdmin && Flags.newMultiuserSettingsUx()))
                 && WizardManagerHelper.isDeviceProvisioned(context)
-                && mUserCaps.mUserSwitcherEnabled) {
+                && (mUserCaps.mUserSwitcherEnabled || Flags.newMultiuserSettingsUx())) {
             addUser.setVisible(true);
             addUser.setSelectable(true);
             final boolean canAddMoreUsers =
                     mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_SECONDARY)
                             || (canAddRestrictedProfile
                             && mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_RESTRICTED));
-            addUser.setEnabled(canAddMoreUsers && !mAddingUser && canSwitchUserNow());
+            addUser.setEnabled(canAddMoreUsers && !mAddingUser
+                    && (canSwitchUserNow() || Flags.newMultiuserSettingsUx()));
 
             if (!canAddMoreUsers) {
                 addUser.setSummary(getString(R.string.user_add_max_count));
@@ -1514,6 +1566,23 @@
                 addUser.setDisabledByAdmin(
                         mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
             }
+        } else if (Flags.newMultiuserSettingsUx() && mUserCaps.mDisallowAddUserSetByAdmin) {
+            addUser.setVisible(true);
+            addUser.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
+        } else if (Flags.newMultiuserSettingsUx() && mUserCaps.mDisallowAddUser) {
+            final List<UserManager.EnforcingUser> enforcingUsers =
+                    mUserManager.getUserRestrictionSources(UserManager.DISALLOW_ADD_USER,
+                            UserHandle.of(UserHandle.myUserId()));
+            if (!enforcingUsers.isEmpty()) {
+                final UserManager.EnforcingUser enforcingUser = enforcingUsers.get(0);
+                final int restrictionSource = enforcingUser.getUserRestrictionSource();
+                if (restrictionSource == UserManager.RESTRICTION_SOURCE_SYSTEM) {
+                    addUser.setVisible(true);
+                    addUser.setEnabled(false);
+                } else {
+                    addUser.setVisible(false);
+                }
+            }
         } else {
             addUser.setVisible(false);
         }
diff --git a/src/com/android/settings/utils/ZenServiceListing.java b/src/com/android/settings/utils/ZenServiceListing.java
index 99f56f6..96d700b 100644
--- a/src/com/android/settings/utils/ZenServiceListing.java
+++ b/src/com/android/settings/utils/ZenServiceListing.java
@@ -28,11 +28,14 @@
 import android.util.ArraySet;
 import android.util.Slog;
 
+import androidx.annotation.Nullable;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
 
 public class ZenServiceListing {
+    private static final String TAG = "ZenServiceListing";
 
     private final Context mContext;
     private final ManagedServiceSettings.Config mConfig;
@@ -40,9 +43,18 @@
     private final List<Callback> mZenCallbacks = new ArrayList<>();
     private final NotificationManager mNm;
 
+    // only used when android.app.modes_ui flag is true
+    @Nullable
+    private String mPkg = null;
+
     public ZenServiceListing(Context context, ManagedServiceSettings.Config config) {
+        this(context, config, null);
+    }
+
+    public ZenServiceListing(Context context, ManagedServiceSettings.Config config, @Nullable String pkg) {
         mContext = context;
         mConfig = config;
+        mPkg = pkg;
         mNm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
     }
 
@@ -89,12 +101,16 @@
         }
     }
 
-    private static void getServices(ManagedServiceSettings.Config c, List<ComponentInfo> list,
+    private void getServices(ManagedServiceSettings.Config c, List<ComponentInfo> list,
             PackageManager pm) {
         final int user = ActivityManager.getCurrentUser();
 
+        Intent queryIntent = new Intent(c.intentAction);
+        if (mPkg != null) {
+            queryIntent.setPackage(mPkg);
+        }
         List<ResolveInfo> installedServices = pm.queryIntentServicesAsUser(
-                new Intent(c.intentAction),
+                queryIntent,
                 PackageManager.GET_SERVICES | PackageManager.GET_META_DATA,
                 user);
 
@@ -115,12 +131,16 @@
         }
     }
 
-    private static void getActivities(ManagedServiceSettings.Config c, List<ComponentInfo> list,
+    private void getActivities(ManagedServiceSettings.Config c, List<ComponentInfo> list,
             PackageManager pm) {
         final int user = ActivityManager.getCurrentUser();
 
+        Intent queryIntent = new Intent(c.configIntentAction);
+        if (mPkg != null) {
+            queryIntent.setPackage(mPkg);
+        }
         List<ResolveInfo> resolveInfos = pm.queryIntentActivitiesAsUser(
-                new Intent(c.configIntentAction),
+                queryIntent,
                 PackageManager.GET_ACTIVITIES | PackageManager.GET_META_DATA,
                 user);
 
diff --git a/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
index 9ddec5c..15e83de 100644
--- a/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
+++ b/src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java
@@ -17,6 +17,7 @@
 package com.android.settings.widget;
 
 import android.content.Context;
+import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.text.TextUtils;
 import android.util.Log;
@@ -212,6 +213,14 @@
         // Scroll to the top to reset the position.
         mRecyclerView.nestedScrollBy(0, -mRecyclerView.getHeight());
 
+        // get the visible area of the recycler view
+        Rect rvRect = new Rect();
+        mRecyclerView.getGlobalVisibleRect(rvRect);
+        if (Flags.homepageRevamp() && view.getBottom() <= rvRect.height()) {
+            // the request position already fully visible in the visible area
+            return;
+        }
+
         final int scrollY = view.getTop();
         if (scrollY > 0) {
             mRecyclerView.nestedScrollBy(0, scrollY);
diff --git a/src/com/android/settings/widget/MutableGearPreference.java b/src/com/android/settings/widget/MutableGearPreference.java
index b0804eb..73491f0 100644
--- a/src/com/android/settings/widget/MutableGearPreference.java
+++ b/src/com/android/settings/widget/MutableGearPreference.java
@@ -41,11 +41,13 @@
 
     @Override
     public void setGearEnabled(boolean enabled) {
+        boolean state = false;
         if (mGear != null) {
-            mGear.setEnabled(enabled);
-            mGear.setImageAlpha(enabled ? VALUE_ENABLED_ALPHA : mDisabledAlphaValue);
+            state = enabled && !(isDisabledByAdmin() || isDisabledByEcm());
+            mGear.setEnabled(state);
+            mGear.setImageAlpha(state ? VALUE_ENABLED_ALPHA : mDisabledAlphaValue);
         }
-        mGearState = enabled;
+        mGearState = state;
     }
 
     @Override
diff --git a/src/com/android/settings/widget/TipCardPreference.kt b/src/com/android/settings/widget/TipCardPreference.kt
index 0ae7d2a..0ca0272 100644
--- a/src/com/android/settings/widget/TipCardPreference.kt
+++ b/src/com/android/settings/widget/TipCardPreference.kt
@@ -19,6 +19,7 @@
 import android.content.Context
 import android.content.res.Resources
 import android.util.AttributeSet
+import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.graphics.vector.ImageVector
 import androidx.compose.ui.res.vectorResource
 import com.android.settings.spa.preference.ComposePreference
@@ -37,6 +38,9 @@
     /** A icon resource id for displaying icon on tips card. */
     var iconResId: Int? = null
 
+    /** A color resource id for displaying icon and button text on tips card. */
+    var tintColorResId: Int? = null
+
     /** The primary button's text. */
     var primaryButtonText: String = ""
 
@@ -85,6 +89,8 @@
                     title = title?.toString() ?: "",
                     text = summary?.toString() ?: "",
                     buttons = listOfNotNull(configPrimaryButton(), configSecondaryButton()),
+                    tintColor = tintColorResId?.let { Color(context.getColor(it)) }
+                        ?: Color.Unspecified,
                     onDismiss = onDismiss,
                     imageVector =
                     iconResId
diff --git a/src/com/android/settings/wifi/AddWifiNetworkPreference.java b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
index 999f4a4..ea22954 100644
--- a/src/com/android/settings/wifi/AddWifiNetworkPreference.java
+++ b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
@@ -26,11 +26,13 @@
 
 import androidx.annotation.DrawableRes;
 import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
 import com.android.settings.wifi.dpp.WifiDppUtils;
 import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils;
 
 /**
  * The Preference for users to add Wi-Fi networks in WifiSettings
@@ -53,7 +55,7 @@
         setTitle(R.string.wifi_add_network);
 
         mScanIconDrawable = getDrawable(R.drawable.ic_scan_24dp);
-        checkRestrictionAndSetDisabled(UserManager.DISALLOW_ADD_WIFI_CONFIG);
+        checkRestrictionAndSetDisabled();
     }
 
     @Override
@@ -80,4 +82,15 @@
         }
         return buttonIcon;
     }
+
+    @VisibleForTesting
+    void checkRestrictionAndSetDisabled() {
+        checkRestrictionAndSetDisabled(UserManager.DISALLOW_ADD_WIFI_CONFIG);
+        if (isDisabledByAdmin()) {
+            return;
+        }
+        if (!WifiEnterpriseRestrictionUtils.isAddWifiConfigAllowed(getContext())) {
+            setEnabled(false);
+        }
+    }
 }
diff --git a/src/com/android/settings/wifi/WepLessSecureWarningController.kt b/src/com/android/settings/wifi/WepLessSecureWarningController.kt
new file mode 100644
index 0000000..8eba199
--- /dev/null
+++ b/src/com/android/settings/wifi/WepLessSecureWarningController.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.wifi
+
+import android.content.Context
+import com.android.settings.core.BasePreferenceController
+import com.android.wifitrackerlib.WifiEntry
+
+class WepLessSecureWarningController (context: Context, preferenceKey: String) :
+        BasePreferenceController(context, preferenceKey) {
+
+    private var availabilityStatus: Int = CONDITIONALLY_UNAVAILABLE
+
+    override fun getAvailabilityStatus(): Int = availabilityStatus
+
+    fun setWifiEntry(entry: WifiEntry) {
+        availabilityStatus = when(entry.securityTypes.contains(WifiEntry.SECURITY_WEP)) {
+            true -> AVAILABLE
+            else -> CONDITIONALLY_UNAVAILABLE
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/WepNetworksPreferenceController.kt b/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
index 2ce4bcd..bad7201 100644
--- a/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
+++ b/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
@@ -42,6 +42,8 @@
 import kotlinx.coroutines.asExecutor
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.flowOn
 
 /** Controller that controls whether the WEP network can be connected. */
 class WepNetworksPreferenceController(context: Context, preferenceKey: String) :
@@ -49,68 +51,74 @@
 
     var wifiManager = context.getSystemService(WifiManager::class.java)!!
 
-    override fun getAvailabilityStatus() = if (Flags.androidVWifiApi()) AVAILABLE
-    else UNSUPPORTED_ON_DEVICE
+    override fun getAvailabilityStatus() =
+        if (Flags.androidVWifiApi()) AVAILABLE else UNSUPPORTED_ON_DEVICE
 
     @Composable
     override fun Content() {
-        val checked by wepAllowedFlow.flow.collectAsStateWithLifecycle(initialValue = null)
+        val isWepSupported: Boolean? =
+            isWepSupportedFlow.collectAsStateWithLifecycle(initialValue = null).value
+        val isWepAllowed: Boolean? =
+            wepAllowedFlow.flow.collectAsStateWithLifecycle(initialValue = null).value
         var openDialog by rememberSaveable { mutableStateOf(false) }
-        val wifiInfo = wifiManager.connectionInfo
-        SwitchPreference(object : SwitchPreferenceModel {
-            override val title = stringResource(R.string.wifi_allow_wep_networks)
-            override val summary = { getSummary() }
-            override val checked = { checked }
-            override val changeable: () -> Boolean
-                get() = { carrierAllowed }
-            override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
-                if (!newChecked && wifiInfo.currentSecurityType == WifiEntry.SECURITY_WEP) {
-                    openDialog = true
-                } else {
-                    wifiManager.setWepAllowed(newChecked)
-                    wepAllowedFlow.override(newChecked)
+        SwitchPreference(
+            object : SwitchPreferenceModel {
+                override val title = stringResource(R.string.wifi_allow_wep_networks)
+                override val summary = { getSummary(isWepSupported) }
+                override val checked = {
+                    if (isWepSupported == true) isWepAllowed else isWepSupported
                 }
-            }
-        })
+                override val changeable: () -> Boolean
+                    get() = { isWepSupported == true }
+
+                override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
+                    val wifiInfo = wifiManager.connectionInfo
+                    if (!newChecked && wifiInfo.currentSecurityType == WifiEntry.SECURITY_WEP) {
+                        openDialog = true
+                    } else {
+                        wifiManager.setWepAllowed(newChecked)
+                        wepAllowedFlow.override(newChecked)
+                    }
+                }
+            })
         if (openDialog) {
             SettingsAlertDialogWithIcon(
                 onDismissRequest = { openDialog = false },
-                confirmButton = AlertDialogButton(
-                    stringResource(R.string.sim_action_yes)
-                ) {
-                    wifiManager.setWepAllowed(false)
-                    wepAllowedFlow.override(false)
-                    openDialog = false
-                },
+                confirmButton =
+                    AlertDialogButton(stringResource(R.string.sim_action_yes)) {
+                        wifiManager.setWepAllowed(false)
+                        wepAllowedFlow.override(false)
+                        openDialog = false
+                    },
                 dismissButton =
-                AlertDialogButton(
-                    stringResource(R.string.wifi_cancel)
-                ) { openDialog = false },
+                    AlertDialogButton(stringResource(R.string.wifi_cancel)) { openDialog = false },
                 title = stringResource(R.string.wifi_settings_wep_networks_disconnect_title),
                 text = {
                     Text(
                         stringResource(R.string.wifi_settings_wep_networks_disconnect_summary),
                         modifier = Modifier.fillMaxWidth(),
-                        textAlign = TextAlign.Center
+                        textAlign = TextAlign.Center,
                     )
                 })
         }
     }
 
-    override fun getSummary(): String = mContext.getString(
-        if (carrierAllowed) {
-            R.string.wifi_allow_wep_networks_summary
-        } else {
-            R.string.wifi_allow_wep_networks_summary_carrier_not_allow
-        }
-    )
+    private fun getSummary(isWepSupported: Boolean?): String =
+        mContext.getString(
+            when (isWepSupported) {
+                true -> R.string.wifi_allow_wep_networks_summary
+                false -> R.string.wifi_allow_wep_networks_summary_carrier_not_allow
+                null -> R.string.summary_placeholder
+            })
 
-    private val carrierAllowed: Boolean
-        get() = wifiManager.isWepSupported
+    private val isWepSupportedFlow =
+        flow { emit(wifiManager.isWepSupported) }.flowOn(Dispatchers.Default)
 
-    val wepAllowedFlow = OverridableFlow(callbackFlow {
-        wifiManager.queryWepAllowed(Dispatchers.Default.asExecutor(), ::trySend)
+    val wepAllowedFlow =
+        OverridableFlow(
+            callbackFlow {
+                wifiManager.queryWepAllowed(Dispatchers.Default.asExecutor(), ::trySend)
 
-        awaitClose { }
-    })
-}
\ No newline at end of file
+                awaitClose {}
+            })
+}
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index 70e08eb..1ea0103 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -344,7 +344,7 @@
 
                 if (mPrivacySettingsSpinner != null) {
                     final int prefMacValue = WifiPrivacyPreferenceController2
-                            .translateMacRandomizedValueToPrefValue(config.macRandomizationSetting);
+                            .translateWifiEntryPrivacyToPrefValue(mWifiEntry.getPrivacy());
                     mPrivacySettingsSpinner.setSelection(prefMacValue);
                 }
 
@@ -863,7 +863,7 @@
 
         if (mPrivacySettingsSpinner != null) {
             config.macRandomizationSetting = WifiPrivacyPreferenceController2
-                    .translatePrefValueToMacRandomizedValue(mPrivacySettingsSpinner
+                    .translatePrefValueToWifiConfigSetting(mPrivacySettingsSpinner
                             .getSelectedItemPosition());
         }
 
diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java
index d1cf7d6..bbb014b 100644
--- a/src/com/android/settings/wifi/WifiEnabler.java
+++ b/src/com/android/settings/wifi/WifiEnabler.java
@@ -139,7 +139,8 @@
         // Refresh satellite mode status.
         try {
             mIsSatelliteOn.set(
-                    mSatelliteRepository.requestIsEnabled(Executors.newSingleThreadExecutor())
+                    mSatelliteRepository
+                            .requestIsSessionStarted(Executors.newSingleThreadExecutor())
                             .get(2000, TimeUnit.MILLISECONDS));
         } catch (ExecutionException | TimeoutException | InterruptedException e) {
             Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java b/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
deleted file mode 100644
index ae44b93..0000000
--- a/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.wifi;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.widget.GenericSwitchController;
-import com.android.settings.widget.SummaryUpdater;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.core.lifecycle.events.OnStop;
-
-/**
- * PreferenceController to update the wifi state.
- */
-// TODO(b/167474581): Should clean up this controller when Provider Model finished.
-public class WifiPrimarySwitchPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, SummaryUpdater.OnSummaryChangeListener,
-        LifecycleObserver, OnResume, OnPause, OnStart, OnStop {
-    //TODO(b/151133650): Replace AbstractPreferenceController with BasePreferenceController.
-
-    public static final String KEY_TOGGLE_WIFI = "main_toggle_wifi";
-
-    private PrimarySwitchPreference mWifiPreference;
-    private WifiEnabler mWifiEnabler;
-    private final WifiSummaryUpdater mSummaryHelper;
-    private final MetricsFeatureProvider mMetricsFeatureProvider;
-
-    public WifiPrimarySwitchPreferenceController(Context context,
-            MetricsFeatureProvider metricsFeatureProvider) {
-        super(context);
-        mMetricsFeatureProvider = metricsFeatureProvider;
-        mSummaryHelper = new WifiSummaryUpdater(mContext, this);
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mWifiPreference = screen.findPreference(KEY_TOGGLE_WIFI);
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return mContext.getResources().getBoolean(R.bool.config_show_wifi_settings);
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_TOGGLE_WIFI;
-    }
-
-    @Override
-    public void onResume() {
-        mSummaryHelper.register(true);
-        if (mWifiEnabler != null) {
-            mWifiEnabler.resume(mContext);
-        }
-    }
-
-    @Override
-    public void onPause() {
-        if (mWifiEnabler != null) {
-            mWifiEnabler.pause();
-        }
-        mSummaryHelper.register(false);
-    }
-
-    @Override
-    public void onStart() {
-        mWifiEnabler = new WifiEnabler(mContext, new GenericSwitchController(mWifiPreference),
-                mMetricsFeatureProvider);
-    }
-
-    @Override
-    public void onStop() {
-        if (mWifiEnabler != null) {
-            mWifiEnabler.teardownSwitchController();
-        }
-    }
-
-    @Override
-    public void onSummaryChanged(String summary) {
-        if (mWifiPreference != null) {
-            mWifiPreference.setSummary(summary);
-        }
-    }
-
-}
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 82537d4..e5581d3 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -33,7 +33,6 @@
 import android.telephony.TelephonyManager;
 import android.telephony.ims.ImsManager;
 import android.telephony.ims.ImsMmTelManager;
-import android.telephony.ims.ProvisioningManager;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -42,12 +41,14 @@
 import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceScreen;
 
-import com.android.ims.ImsConfig;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.flags.Flags;
@@ -57,8 +58,12 @@
 import com.android.settings.Utils;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.network.ims.WifiCallingQueryImsState;
+import com.android.settings.network.telephony.wificalling.IWifiCallingRepository;
+import com.android.settings.network.telephony.wificalling.WifiCallingRepository;
 import com.android.settings.widget.SettingsMainSwitchPreference;
 
+import kotlin.Unit;
+
 import java.util.List;
 
 /**
@@ -103,7 +108,6 @@
 
     private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private ImsMmTelManager mImsMmTelManager;
-    private ProvisioningManager mProvisioningManager;
     private TelephonyManager mTelephonyManager;
 
     private PhoneTelephonyCallback mTelephonyCallback;
@@ -188,19 +192,6 @@
                 return true;
             };
 
-    private final ProvisioningManager.Callback mProvisioningCallback =
-            new ProvisioningManager.Callback() {
-                @Override
-                public void onProvisioningIntChanged(int item, int value) {
-                    if (item == ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED
-                            || item == ImsConfig.ConfigConstants.VLT_SETTING_ENABLED) {
-                        // The provisioning policy might have changed. Update the body to make sure
-                        // this change takes effect if needed.
-                        updateBody();
-                    }
-                }
-            };
-
     @VisibleForTesting
     void showAlert(Intent intent) {
         final Context context = getActivity();
@@ -264,14 +255,6 @@
     }
 
     @VisibleForTesting
-    ProvisioningManager getImsProvisioningManager() {
-        if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
-            return null;
-        }
-        return ProvisioningManager.createForSubscriptionId(mSubId);
-    }
-
-    @VisibleForTesting
     ImsMmTelManager getImsMmTelManager() {
         if (!SubscriptionManager.isValidSubscriptionId(mSubId)) {
             return null;
@@ -294,7 +277,6 @@
                     FRAGMENT_BUNDLE_SUBID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         }
 
-        mProvisioningManager = getImsProvisioningManager();
         mImsMmTelManager = getImsMmTelManager();
 
         mSwitchBar = (SettingsMainSwitchPreference) findPreference(SWITCH_BAR);
@@ -336,19 +318,33 @@
         return view;
     }
 
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        getWifiCallingRepository().collectIsWifiCallingReadyFlow(
+                getLifecycleOwner(), (isWifiWifiCallingReadyFlow) -> {
+                    if (!isWifiWifiCallingReadyFlow) {
+                        // This screen is not allowed to be shown due to provisioning policy and
+                        // should therefore be closed.
+                        finish();
+                    }
+                    return Unit.INSTANCE;
+                });
+    }
+
     @VisibleForTesting
-    boolean isWfcProvisionedOnDevice() {
-        return queryImsState(mSubId).isWifiCallingProvisioned();
+    @NonNull
+    IWifiCallingRepository getWifiCallingRepository() {
+        return new WifiCallingRepository(requireContext(), mSubId);
+    }
+
+    @VisibleForTesting
+    @NonNull
+    LifecycleOwner getLifecycleOwner() {
+        return getViewLifecycleOwner();
     }
 
     private void updateBody() {
-        if (!isWfcProvisionedOnDevice()) {
-            // This screen is not allowed to be shown due to provisioning policy and should
-            // therefore be closed.
-            finish();
-            return;
-        }
-
         final CarrierConfigManager configManager = (CarrierConfigManager)
                 getSystemService(Context.CARRIER_CONFIG_SERVICE);
         boolean isWifiOnlySupported = true;
@@ -448,8 +444,6 @@
         if (intent.getBooleanExtra(Phone.EXTRA_KEY_ALERT_SHOW, false)) {
             showAlert(intent);
         }
-        // Register callback for provisioning changes.
-        registerProvisioningChangedCallback();
     }
 
     @Override
@@ -462,8 +456,6 @@
             mSwitchBar.removeOnSwitchChangeListener(this);
         }
         context.unregisterReceiver(mIntentReceiver);
-        // Remove callback for provisioning changes.
-        unregisterProvisioningChangedCallback();
     }
 
     /**
@@ -699,27 +691,6 @@
         return SubscriptionManager.getResourcesForSubId(getContext(), mSubId);
     }
 
-    @VisibleForTesting
-    void registerProvisioningChangedCallback() {
-        if (mProvisioningManager == null) {
-            return;
-        }
-        try {
-            mProvisioningManager.registerProvisioningChangedCallback(getContext().getMainExecutor(),
-                    mProvisioningCallback);
-        } catch (Exception ex) {
-            Log.w(TAG, "onResume: Unable to register callback for provisioning changes.");
-        }
-    }
-
-    @VisibleForTesting
-    void unregisterProvisioningChangedCallback() {
-        if (mProvisioningManager == null) {
-            return;
-        }
-        mProvisioningManager.unregisterProvisioningChangedCallback(mProvisioningCallback);
-    }
-
     /**
      * Determine whether to override roaming Wi-Fi calling preference when device is connected to
      * non-terrestrial network.
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index eb0b40a..3ec5bb2 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -51,6 +51,7 @@
 import com.android.settings.dashboard.RestrictedDashboardFragment;
 import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.wifi.WepLessSecureWarningController;
 import com.android.settings.wifi.WifiConfigUiBase2;
 import com.android.settings.wifi.WifiDialog2;
 import com.android.settings.wifi.WifiUtils;
@@ -132,6 +133,8 @@
                 .setWifiEntry(mNetworkDetailsTracker.getWifiEntry());
         use(ServerNamePreferenceController.class)
                 .setWifiEntry(mNetworkDetailsTracker.getWifiEntry());
+        use(WepLessSecureWarningController.class)
+                .setWifiEntry(mNetworkDetailsTracker.getWifiEntry());
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
index 5d393e5..0c67c04 100644
--- a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
@@ -17,6 +17,7 @@
 package com.android.settings.wifi.details2;
 
 import android.content.Context;
+import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiManager;
 
 import androidx.annotation.NonNull;
@@ -98,30 +99,30 @@
     private static final int PREF_RANDOMIZATION_NONE = 1;
 
     /**
-     * Returns preference index value.
+     * Translates a WifiEntry.Privacy value to the matching preference index value.
      *
-     * @param macRandomized is mac randomized value
+     * @param privacy WifiEntry.Privacy value
      * @return index value of preference
      */
-    public static int translateMacRandomizedValueToPrefValue(int macRandomized) {
-        return (macRandomized == WifiEntry.PRIVACY_RANDOMIZED_MAC)
+    public static int translateWifiEntryPrivacyToPrefValue(@WifiEntry.Privacy int privacy) {
+        return (privacy == WifiEntry.PRIVACY_RANDOMIZED_MAC)
             ? PREF_RANDOMIZATION_PERSISTENT : PREF_RANDOMIZATION_NONE;
     }
 
     /**
-     * Returns mac randomized value.
+     * Translates the pref value to WifiConfiguration.MacRandomizationSetting value
      *
      * @param prefMacRandomized is preference index value
-     * @return mac randomized value
+     * @return WifiConfiguration.MacRandomizationSetting value
      */
-    public static int translatePrefValueToMacRandomizedValue(int prefMacRandomized) {
+    public static int translatePrefValueToWifiConfigSetting(int prefMacRandomized) {
         return (prefMacRandomized == PREF_RANDOMIZATION_PERSISTENT)
-            ? WifiEntry.PRIVACY_RANDOMIZED_MAC : WifiEntry.PRIVACY_DEVICE_MAC;
+            ? WifiConfiguration.RANDOMIZATION_AUTO : WifiConfiguration.RANDOMIZATION_NONE;
     }
 
     private void updateSummary(ListPreference preference, int macRandomized) {
         // Translates value here to set RANDOMIZATION_PERSISTENT as first item in UI for better UX.
-        final int prefMacRandomized = translateMacRandomizedValueToPrefValue(macRandomized);
+        final int prefMacRandomized = translateWifiEntryPrivacyToPrefValue(macRandomized);
         preference.setSummary(preference.getEntries()[prefMacRandomized]);
     }
 }
diff --git a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
index a7527d7..c7ad9ca 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java
@@ -35,6 +35,8 @@
 import androidx.fragment.app.FragmentTransaction;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
+import com.android.settings.overlay.FeatureFactory;
 
 import java.util.List;
 
@@ -236,7 +238,12 @@
                         WifiDppUtils.TAG_FRAGMENT_QR_CODE_GENERATOR);
 
         if (fragment == null) {
-            fragment = new WifiDppQrCodeGeneratorFragment();
+            if (Flags.enableWifiSharingRuntimeFragment()) {
+                fragment = FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
+                    .getWifiDppQrCodeGeneratorFragment();
+            } else {
+                fragment = new WifiDppQrCodeGeneratorFragment();
+            }
         } else {
             if (fragment.isVisible()) {
                 return;
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
index 3d437e2..40cf24d 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
@@ -44,6 +44,7 @@
 import com.android.internal.app.chooser.DisplayResolveInfo;
 import com.android.internal.app.chooser.TargetInfo;
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settingslib.qrcode.QrCodeGenerator;
 
 import com.google.zxing.WriterException;
@@ -56,7 +57,7 @@
     private static final String TAG = "WifiDppQrCodeGeneratorFragment";
 
     private ImageView mQrCodeView;
-    private String mQrCode;
+    protected String mQrCode;
 
     private static final String CHIP_LABEL_METADATA_KEY = "android.service.chooser.chip_label";
     private static final String CHIP_ICON_METADATA_KEY = "android.service.chooser.chip_icon";
@@ -69,6 +70,10 @@
 
     @Override
     public int getMetricsCategory() {
+        if (Flags.enableWifiSharingRuntimeFragment()) {
+            return SettingsEnums.SETTINGS_WIFI_DPP_QR_SHARING;
+        }
+
         return SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR;
     }
 
@@ -109,6 +114,7 @@
         super.onViewCreated(view, savedInstanceState);
 
         mQrCodeView = view.findViewById(R.id.qrcode_view);
+        mQrCodeView.setContentDescription(getString(R.string.qr_code_content_description));
 
         final WifiNetworkConfig wifiNetworkConfig = getWifiNetworkConfigFromHostActivity();
         if (wifiNetworkConfig.isHotspot()) {
@@ -258,7 +264,7 @@
         return button;
     }
 
-    private void setQrCode() {
+    protected void setQrCode() {
         try {
             final int qrcodeSize = getContext().getResources().getDimensionPixelSize(
                     R.dimen.qrcode_size);
diff --git a/src/com/android/settings/wifi/dpp/WifiQrCode.java b/src/com/android/settings/wifi/dpp/WifiQrCode.java
index 9b93480..78e0625 100644
--- a/src/com/android/settings/wifi/dpp/WifiQrCode.java
+++ b/src/com/android/settings/wifi/dpp/WifiQrCode.java
@@ -46,6 +46,7 @@
  *
  */
 public class WifiQrCode {
+    private static final String TAG = "WifiQrCode";
     static final String SCHEME_DPP = "DPP";
     static final String SCHEME_ZXING_WIFI_NETWORK_CONFIG = "WIFI";
     static final String PREFIX_DPP = "DPP:";
@@ -119,13 +120,13 @@
         try {
             wifiQrCode = new WifiQrCode(qrCode);
         } catch(IllegalArgumentException e) {
+            Log.e(TAG, "Failed to create WifiQrCode!", e);
             return null;
         }
-
-        if (SCHEME_DPP.equals(wifiQrCode.getScheme())) {
-            return wifiQrCode;
+        if (wifiQrCode.getScheme() != UriParserResults.URI_SCHEME_DPP) {
+            Log.e(TAG, "wifiQrCode scheme is not DPP!");
+            return null;
         }
-
-        return null;
+        return wifiQrCode;
     }
 }
diff --git a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
index 5ab899a..e5bf81a 100644
--- a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
+++ b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
@@ -27,6 +27,7 @@
 import androidx.lifecycle.ViewModelStoreOwner;
 
 import com.android.settings.wifi.details.WifiNetworkDetailsViewModel;
+import com.android.settings.wifi.dpp.WifiDppQrCodeGeneratorFragment;
 import com.android.settings.wifi.repository.SharedConnectivityRepository;
 import com.android.settings.wifi.repository.WifiHotspotRepository;
 import com.android.settings.wifi.tether.WifiHotspotSecurityViewModel;
@@ -147,6 +148,15 @@
     }
 
     /**
+     * Gets an instance of WifiDppQrCodeGeneratorFragment
+     */
+    public WifiDppQrCodeGeneratorFragment getWifiDppQrCodeGeneratorFragment() {
+        WifiDppQrCodeGeneratorFragment fragment = new WifiDppQrCodeGeneratorFragment();
+        verboseLog(TAG, "getWifiDppQrCodeGeneratorFragment():" + fragment);
+        return fragment;
+    }
+
+    /**
      * Send a {@link Log#VERBOSE} log message.
      *
      * @param tag Used to identify the source of a log message.  It usually identifies
diff --git a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
index 7a001ca..4dc2e9e 100644
--- a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
+++ b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
@@ -397,7 +397,7 @@
      * @return {@code true} if Wi-Fi Hotspot 5 GHz Band is available
      */
     public boolean is5gAvailable() {
-        if (!mBand5g.isUsableChannelsReady && is5GHzBandSupported()) {
+        if (!mBand5g.isChannelsReady && is5GHzBandSupported()) {
             isChannelAvailable(mBand5g);
         }
         return mBand5g.isAvailable();
@@ -439,7 +439,7 @@
      * @return {@code true} if Wi-Fi Hotspot 6 GHz Band is available
      */
     public boolean is6gAvailable() {
-        if (!mBand6g.isUsableChannelsReady && is6GHzBandSupported()) {
+        if (!mBand6g.isChannelsReady && is6GHzBandSupported()) {
             isChannelAvailable(mBand6g);
         }
         return mBand6g.isAvailable();
@@ -473,21 +473,21 @@
     boolean isChannelAvailable(SapBand sapBand) {
         try {
             List<WifiAvailableChannel> channels =
-                    mWifiManager.getUsableChannels(sapBand.band, OP_MODE_SAP);
+                    mWifiManager.getAllowedChannels(sapBand.band, OP_MODE_SAP);
             log("isChannelAvailable(), band:" + sapBand.band + ", channels:" + channels);
-            sapBand.hasUsableChannels = (channels != null && channels.size() > 0);
-            sapBand.isUsableChannelsUnsupported = false;
+            sapBand.hasChannels = (channels != null && channels.size() > 0);
+            sapBand.isChannelsUnsupported = false;
         } catch (IllegalArgumentException e) {
-            Log.e(TAG, "Querying usable SAP channels failed, band:" + sapBand.band);
-            sapBand.hasUsableChannels = false;
-            sapBand.isUsableChannelsUnsupported = true;
+            Log.e(TAG, "Querying SAP channels failed, band:" + sapBand.band);
+            sapBand.hasChannels = false;
+            sapBand.isChannelsUnsupported = true;
         } catch (UnsupportedOperationException e) {
             // This is expected on some hardware.
-            Log.e(TAG, "Querying usable SAP channels is unsupported, band:" + sapBand.band);
-            sapBand.hasUsableChannels = false;
-            sapBand.isUsableChannelsUnsupported = true;
+            Log.e(TAG, "Querying SAP channels is unsupported, band:" + sapBand.band);
+            sapBand.hasChannels = false;
+            sapBand.isChannelsUnsupported = true;
         }
-        sapBand.isUsableChannelsReady = true;
+        sapBand.isChannelsReady = true;
         log("isChannelAvailable(), " + sapBand);
         return sapBand.isAvailable();
     }
@@ -531,8 +531,8 @@
     }
 
     protected void purgeRefreshData() {
-        mBand5g.isUsableChannelsReady = false;
-        mBand6g.isUsableChannelsReady = false;
+        mBand5g.isChannelsReady = false;
+        mBand6g.isChannelsReady = false;
     }
 
     protected void startAutoRefresh() {
@@ -615,15 +615,15 @@
 
     @VisibleForTesting
     void updateCapabilityChanged() {
-        if (mBand5g.isUsableChannelsUnsupported) {
+        if (mBand5g.isChannelsUnsupported) {
             update5gAvailable();
             log("updateCapabilityChanged(), " + mBand5g);
         }
-        if (mBand6g.isUsableChannelsUnsupported) {
+        if (mBand6g.isChannelsUnsupported) {
             update6gAvailable();
             log("updateCapabilityChanged(), " + mBand6g);
         }
-        if (mBand5g.isUsableChannelsUnsupported || mBand6g.isUsableChannelsUnsupported) {
+        if (mBand5g.isChannelsUnsupported || mBand6g.isChannelsUnsupported) {
             updateSpeedType();
         }
     }
@@ -676,9 +676,9 @@
     @VisibleForTesting
     static class SapBand {
         public int band;
-        public boolean isUsableChannelsReady;
-        public boolean hasUsableChannels;
-        public boolean isUsableChannelsUnsupported;
+        public boolean isChannelsReady;
+        public boolean hasChannels;
+        public boolean isChannelsUnsupported;
         public boolean hasCapability;
 
         SapBand(int band) {
@@ -689,7 +689,7 @@
          * Return whether SoftAp band is available or not.
          */
         public boolean isAvailable() {
-            return isUsableChannelsUnsupported ? hasCapability : hasUsableChannels;
+            return isChannelsUnsupported ? hasCapability : hasChannels;
         }
 
         @Override
@@ -697,10 +697,10 @@
         public String toString() {
             return "SapBand{"
                     + "band:" + band
-                    + ",isUsableChannelsReady:" + isUsableChannelsReady
-                    + ",hasUsableChannels:" + hasUsableChannels
-                    + ",isUsableChannelsUnsupported:" + isUsableChannelsUnsupported
-                    + ",hasChannelsCapability:" + hasCapability
+                    + ",isChannelsReady:" + isChannelsReady
+                    + ",hasChannels:" + hasChannels
+                    + ",isChannelsUnsupported:" + isChannelsUnsupported
+                    + ",hasCapability:" + hasCapability
                     + '}';
         }
     }
diff --git a/src/com/android/settings/wifi/repository/WifiStatusRepository.kt b/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
index f97ed49..fe4ba6c 100644
--- a/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
+++ b/src/com/android/settings/wifi/repository/WifiStatusRepository.kt
@@ -50,14 +50,20 @@
                 var wifiStatusTracker: WifiStatusTracker? = null
                 wifiStatusTracker = wifiStatusTrackerFactory { wifiStatusTracker?.let(::trySend) }
 
+                // Fetches initial state first, before set listening to true, otherwise could cause
+                // race condition.
+                wifiStatusTracker.fetchInitialState()
+                trySend(wifiStatusTracker)
+
                 context
                     .broadcastReceiverFlow(INTENT_FILTER)
-                    .onEach { intent -> wifiStatusTracker.handleBroadcast(intent) }
+                    .onEach { intent ->
+                        wifiStatusTracker.handleBroadcast(intent)
+                        trySend(wifiStatusTracker)
+                    }
                     .launchIn(this)
 
                 wifiStatusTracker.setListening(true)
-                wifiStatusTracker.fetchInitialState()
-                trySend(wifiStatusTracker)
 
                 awaitClose { wifiStatusTracker.setListening(false) }
             }
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index ff448a8..3bb50d3 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -431,7 +431,7 @@
         boolean isSatelliteOn = false;
         try {
             isSatelliteOn =
-                    satelliteRepository.requestIsEnabled(Executors.newSingleThreadExecutor())
+                    satelliteRepository.requestIsSessionStarted(Executors.newSingleThreadExecutor())
                             .get(2000, TimeUnit.MILLISECONDS);
         } catch (ExecutionException | TimeoutException | InterruptedException e) {
             Log.e(TAG, "Error to get satellite status : " + e);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index 74671b5..980dee5 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -371,12 +371,20 @@
                     || !mWifiRestriction.isHotspotAvailable(context)) {
                 keys.add(KEY_WIFI_TETHER_NETWORK_NAME);
                 keys.add(KEY_WIFI_TETHER_SECURITY);
+                keys.add(KEY_WIFI_HOTSPOT_SECURITY);
                 keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD);
                 keys.add(KEY_WIFI_TETHER_AUTO_OFF);
                 keys.add(KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
+                keys.add(KEY_WIFI_HOTSPOT_SPEED);
                 keys.add(KEY_INSTANT_HOTSPOT);
-            } else if (!mIsInstantHotspotEnabled) {
-                keys.add(KEY_INSTANT_HOTSPOT);
+            } else {
+                if (!isSpeedFeatureAvailable()) {
+                    keys.add(KEY_WIFI_HOTSPOT_SECURITY);
+                    keys.add(KEY_WIFI_HOTSPOT_SPEED);
+                }
+                if (!mIsInstantHotspotEnabled) {
+                    keys.add(KEY_INSTANT_HOTSPOT);
+                }
             }
 
             // Remove duplicate
@@ -400,6 +408,12 @@
         public List<AbstractPreferenceController> createPreferenceControllers(Context context) {
             return buildPreferenceControllers(context, null /* listener */);
         }
+
+        @VisibleForTesting
+        boolean isSpeedFeatureAvailable() {
+            return FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
+                    .getWifiHotspotRepository().isSpeedFeatureAvailable();
+        }
     }
 
     @VisibleForTesting
diff --git a/tests/Enable16KbTests/Android.bp b/tests/Enable16KbTests/Android.bp
index 781ea8f..fa05d33 100644
--- a/tests/Enable16KbTests/Android.bp
+++ b/tests/Enable16KbTests/Android.bp
@@ -33,7 +33,6 @@
     ],
     platform_apis: true,
     certificate: "platform",
-    test_suites: ["device-tests"],
     libs: [
         "android.test.runner",
         "android.test.base",
@@ -57,6 +56,6 @@
     data: [
         ":test_16kb_app",
     ],
-    test_suites: ["device-tests"],
+    test_suites: ["general-tests"],
     test_config: "AndroidTest.xml",
 }
diff --git a/res/layout/preference_spinner.xml b/tests/robotests/res/xml/modes_fake_settings.xml
similarity index 60%
copy from res/layout/preference_spinner.xml
copy to tests/robotests/res/xml/modes_fake_settings.xml
index 4129303..a5602dc 100644
--- a/res/layout/preference_spinner.xml
+++ b/tests/robotests/res/xml/modes_fake_settings.xml
@@ -1,5 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2023 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.
@@ -14,11 +15,8 @@
   ~ limitations under the License.
   -->
 
-<Spinner
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/spinner"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:layout_marginStart="24dp"
-    android:layout_marginTop="8dp"
-    android:theme="@style/Widget.PopupWindow.Settings" />
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+    <Preference android:key="pref_id" />
+    <Preference android:key="pref_name" />
+    <Preference android:key="pref_enabled" />
+</PreferenceScreen>
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
index 6d85368..f7711c8 100644
--- a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
@@ -77,6 +77,7 @@
 
         when(mMockActivity.getSystemService(Context.DEVICE_POLICY_SERVICE))
                 .thenReturn(mDevicePolicyManager);
+        when(mPersistentDataBlockManager.isFactoryResetProtectionActive()).thenReturn(false);
     }
 
     @Test
@@ -113,6 +114,13 @@
     }
 
     @Test
+    public void shouldWipePersistentDataBlock_frpIsAlive_shouldReturnFalse() {
+        when(mPersistentDataBlockManager.isFactoryResetProtectionActive()).thenReturn(true);
+        assertThat(mMainClearConfirm.shouldWipePersistentDataBlock(mPersistentDataBlockManager))
+                .isFalse();
+    }
+
+    @Test
     public void shouldWipePersistentDataBlock_deviceIsStillBeingProvisioned_shouldReturnFalse() {
         doReturn(true).when(mMainClearConfirm).isDeviceStillBeingProvisioned();
 
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index e84d4eb..b705ae1 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -18,6 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
@@ -39,7 +40,12 @@
 import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.content.res.Resources;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
 import android.os.UserManager;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -57,6 +63,7 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -77,6 +84,9 @@
 })
 public class MainClearTest {
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private static final String TEST_ACCOUNT_TYPE = "android.test.account.type";
     private static final String TEST_CONFIRMATION_PACKAGE = "android.test.conf.pkg";
     private static final String TEST_CONFIRMATION_CLASS = "android.test.conf.pkg.ConfActivity";
@@ -95,6 +105,12 @@
 
     @Mock
     private FragmentActivity mMockActivity;
+    @Mock
+    private BiometricManager mBiometricManager;
+    @Mock
+    private Resources mResources;
+    @Mock
+    private Context mContext;
 
     @Mock
     private Intent mMockIntent;
@@ -122,6 +138,11 @@
         // Make scrollView only have one child
         when(mScrollView.getChildAt(0)).thenReturn(mLinearLayout);
         when(mScrollView.getChildCount()).thenReturn(1);
+        doReturn(mMockActivity).when(mMainClear).getActivity();
+        when(mMockActivity.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
+        when(mBiometricManager.canAuthenticate(anyInt(),
+                eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_MANDATORY_NOT_ACTIVE);
     }
 
     @After
@@ -344,6 +365,83 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testOnActivityResultInternal_keyguardRequestTriggeringBiometricPrompt() {
+        when(mContext.getResources()).thenReturn(mResources);
+        when(mMockActivity.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
+        when(mResources.getString(anyInt())).thenReturn(TEST_ACCOUNT_NAME);
+        when(mBiometricManager.canAuthenticate(anyInt(),
+                eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+                .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+        doReturn(true).when(mMainClear).isValidRequestCode(eq(MainClear.KEYGUARD_REQUEST));
+        doNothing().when(mMainClear).startActivityForResult(any(), anyInt());
+        doReturn(mMockActivity).when(mMainClear).getActivity();
+        doReturn(mContext).when(mMainClear).getContext();
+
+        mMainClear
+                .onActivityResultInternal(MainClear.KEYGUARD_REQUEST, Activity.RESULT_OK, null);
+
+        verify(mMainClear, times(1)).isValidRequestCode(eq(MainClear.KEYGUARD_REQUEST));
+        verify(mMainClear).startActivityForResult(any(), eq(MainClear.BIOMETRICS_REQUEST));
+        verify(mMainClear, times(0)).establishInitialState();
+        verify(mMainClear, times(0)).getAccountConfirmationIntent();
+        verify(mMainClear, times(0)).showFinalConfirmation();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testOnActivityResultInternal_keyguardRequestNotTriggeringBiometricPrompt_lockoutError() {
+        when(mContext.getResources()).thenReturn(mResources);
+        when(mMockActivity.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
+        when(mResources.getString(anyInt())).thenReturn(TEST_ACCOUNT_NAME);
+        when(mBiometricManager.canAuthenticate(anyInt(),
+                eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_LOCKOUT);
+        doReturn(true).when(mMainClear).isValidRequestCode(eq(MainClear.KEYGUARD_REQUEST));
+        doNothing().when(mMainClear).startActivityForResult(any(), anyInt());
+        doReturn(mMockActivity).when(mMainClear).getActivity();
+        doReturn(mContext).when(mMainClear).getContext();
+
+        mMainClear
+                .onActivityResultInternal(MainClear.KEYGUARD_REQUEST, Activity.RESULT_OK, null);
+
+        verify(mMainClear).isValidRequestCode(eq(MainClear.KEYGUARD_REQUEST));
+        verify(mMainClear, never()).startActivityForResult(any(), eq(MainClear.BIOMETRICS_REQUEST));
+        verify(mMainClear, never()).establishInitialState();
+        verify(mMainClear, never()).getAccountConfirmationIntent();
+        verify(mMainClear, never()).showFinalConfirmation();
+    }
+
+    @Test
+    public void testOnActivityResultInternal_biometricRequestTriggeringFinalConfirmation() {
+        doReturn(true).when(mMainClear).isValidRequestCode(eq(MainClear.BIOMETRICS_REQUEST));
+        doReturn(null).when(mMainClear).getAccountConfirmationIntent();
+        doNothing().when(mMainClear).showFinalConfirmation();
+
+        mMainClear
+                .onActivityResultInternal(MainClear.BIOMETRICS_REQUEST, Activity.RESULT_OK, null);
+
+        verify(mMainClear).isValidRequestCode(eq(MainClear.BIOMETRICS_REQUEST));
+        verify(mMainClear, never()).establishInitialState();
+        verify(mMainClear).getAccountConfirmationIntent();
+        verify(mMainClear).showFinalConfirmation();
+    }
+
+    @Test
+    public void testOnActivityResultInternal_biometricRequestTriggeringInitialState() {
+        doReturn(true).when(mMainClear).isValidRequestCode(eq(MainClear.BIOMETRICS_REQUEST));
+        doNothing().when(mMainClear).establishInitialState();
+
+        mMainClear.onActivityResultInternal(MainClear.BIOMETRICS_REQUEST, Activity.RESULT_CANCELED,
+                        null);
+
+        verify(mMainClear, times(1)).isValidRequestCode(eq(MainClear.BIOMETRICS_REQUEST));
+        verify(mMainClear, times(1)).establishInitialState();
+        verify(mMainClear, times(0)).getAccountConfirmationIntent();
+        verify(mMainClear, times(0)).showFinalConfirmation();
+    }
+
+    @Test
     public void testOnActivityResultInternal_confirmRequestTriggeringShowFinal() {
         doReturn(true).when(mMainClear)
                 .isValidRequestCode(eq(MainClear.CREDENTIAL_CONFIRM_REQUEST));
diff --git a/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java b/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
deleted file mode 100644
index ea6559c..0000000
--- a/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
+++ /dev/null
@@ -1,124 +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;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-
-import android.view.LayoutInflater;
-import android.widget.TextView;
-
-import androidx.fragment.app.FragmentActivity;
-
-import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
-import com.android.settings.testutils.shadow.ShadowRecoverySystem;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.android.util.concurrent.PausedExecutorService;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowLooper;
-import org.robolectric.shadows.ShadowPausedAsyncTask;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowRecoverySystem.class, ShadowBluetoothAdapter.class})
-public class ResetNetworkConfirmTest {
-    @Rule
-    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
-
-    private static final String TEST_PACKAGE = "com.android.settings";
-
-    private FragmentActivity mActivity;
-
-    @Mock
-    private ResetNetworkConfirm mResetNetworkConfirm;
-    private PausedExecutorService mExecutorService;
-
-    @Before
-    public void setUp() {
-        mExecutorService = new PausedExecutorService();
-        ShadowPausedAsyncTask.overrideExecutor(mExecutorService);
-        mResetNetworkConfirm = new ResetNetworkConfirm();
-        mActivity = spy(Robolectric.setupActivity(FragmentActivity.class));
-        mResetNetworkConfirm.mActivity = mActivity;
-    }
-
-    @After
-    public void tearDown() {
-        ShadowRecoverySystem.reset();
-    }
-
-    @Test
-    public void testResetNetworkData_notResetEsim() {
-        mResetNetworkConfirm.mResetNetworkRequest =
-                new ResetNetworkRequest(ResetNetworkRequest.RESET_NONE);
-        mResetNetworkConfirm.mResetSubscriptionContract =
-                new ResetSubscriptionContract(mActivity,
-                mResetNetworkConfirm.mResetNetworkRequest) {
-            @Override
-            public void onSubscriptionInactive(int subscriptionId) {
-                mActivity.onBackPressed();
-            }
-        };
-
-        mResetNetworkConfirm.mFinalClickListener.onClick(null /* View */);
-        mExecutorService.runAll();
-        ShadowLooper.idleMainLooper();
-
-        assertThat(ShadowRecoverySystem.getWipeEuiccCalledCount()).isEqualTo(0);
-    }
-
-    @Test
-    public void setSubtitle_eraseEsim() {
-        mResetNetworkConfirm.mResetNetworkRequest =
-                new ResetNetworkRequest(ResetNetworkRequest.RESET_NONE);
-        mResetNetworkConfirm.mResetNetworkRequest.setResetEsim(TEST_PACKAGE);
-
-        mResetNetworkConfirm.mContentView =
-                LayoutInflater.from(mActivity).inflate(R.layout.reset_network_confirm, null);
-
-        mResetNetworkConfirm.setSubtitle();
-
-        assertThat(((TextView) mResetNetworkConfirm.mContentView
-                .findViewById(R.id.reset_network_confirm)).getText())
-                .isEqualTo(mActivity.getString(R.string.reset_network_final_desc_esim));
-    }
-
-    @Test
-    public void setSubtitle_notEraseEsim() {
-        mResetNetworkConfirm.mResetNetworkRequest =
-                new ResetNetworkRequest(ResetNetworkRequest.RESET_NONE);
-
-        mResetNetworkConfirm.mContentView =
-                LayoutInflater.from(mActivity).inflate(R.layout.reset_network_confirm, null);
-
-        mResetNetworkConfirm.setSubtitle();
-
-        assertThat(((TextView) mResetNetworkConfirm.mContentView
-                .findViewById(R.id.reset_network_confirm)).getText())
-                .isEqualTo(mActivity.getString(R.string.reset_network_final_desc));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index 0c57b01..107a1b3 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -20,6 +20,11 @@
 import static android.hardware.biometrics.SensorProperties.STRENGTH_STRONG;
 import static android.hardware.biometrics.SensorProperties.STRENGTH_WEAK;
 
+import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_AUTHENTICATORS;
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_HIDE_BACKGROUND;
+import static com.android.settings.password.ConfirmDeviceCredentialActivity.BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertNull;
@@ -35,10 +40,12 @@
 import static org.mockito.Mockito.when;
 
 import android.app.ActionBar;
+import android.app.KeyguardManager;
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.DevicePolicyResourcesManager;
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
@@ -47,6 +54,8 @@
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.VectorDrawable;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
 import android.hardware.face.FaceManager;
 import android.hardware.face.FaceSensorProperties;
 import android.hardware.face.FaceSensorPropertiesInternal;
@@ -61,21 +70,28 @@
 import android.os.storage.DiskInfo;
 import android.os.storage.StorageManager;
 import android.os.storage.VolumeInfo;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.IconDrawableFactory;
 import android.widget.EditText;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
 import androidx.core.graphics.drawable.IconCompat;
+import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmDeviceCredentialActivity;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
@@ -92,6 +108,9 @@
 @Config(shadows = ShadowLockPatternUtils.class)
 public class UtilsTest {
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private static final String PACKAGE_NAME = "com.android.app";
     private static final int USER_ID = 1;
 
@@ -113,6 +132,11 @@
     private IconDrawableFactory mIconDrawableFactory;
     @Mock
     private ApplicationInfo mApplicationInfo;
+    @Mock
+    private BiometricManager mBiometricManager;
+    @Mock
+    private Fragment mFragment;
+
     private Context mContext;
     private UserManager mUserManager;
     private static final int FLAG_SYSTEM = 0x00000000;
@@ -128,6 +152,7 @@
         when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
                 .thenReturn(connectivityManager);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mContext.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
     }
 
     @After
@@ -503,6 +528,81 @@
         assertThat(Utils.isFaceNotConvenienceBiometric(mContext)).isFalse();
     }
 
+    @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testRequestBiometricAuthentication_biometricManagerNull_shouldReturnNotActive() {
+        when(mContext.getSystemService(BiometricManager.class)).thenReturn(null);
+        assertThat(Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
+                false /* biometricsAuthenticationRequested */, USER_ID)).isEqualTo(
+                        Utils.BiometricStatus.NOT_ACTIVE);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testRequestBiometricAuthentication_biometricManagerReturnsSuccess_shouldReturnOk() {
+        when(mBiometricManager.canAuthenticate(USER_ID,
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+        final Utils.BiometricStatus requestBiometricAuthenticationForMandatoryBiometrics =
+                Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
+                        false /* biometricsAuthenticationRequested */, USER_ID);
+        assertThat(requestBiometricAuthenticationForMandatoryBiometrics).isEqualTo(
+                Utils.BiometricStatus.OK);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testRequestBiometricAuthentication_biometricManagerReturnsError_shouldReturnError() {
+        when(mBiometricManager.canAuthenticate(anyInt(),
+                eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+        assertThat(Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
+                false /* biometricsAuthenticationRequested */, USER_ID)).isEqualTo(
+                        Utils.BiometricStatus.ERROR);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testRequestBiometricAuthentication_biometricManagerReturnsSuccessForDifferentUser_shouldReturnError() {
+        when(mBiometricManager.canAuthenticate(anyInt(),
+                eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
+        when(mBiometricManager.canAuthenticate(0 /* userId */,
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+        assertThat(Utils.requestBiometricAuthenticationForMandatoryBiometrics(mContext,
+                false /* biometricsAuthenticationRequested */, USER_ID)).isEqualTo(
+                        Utils.BiometricStatus.ERROR);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testLaunchBiometricPrompt_checkIntentValues() {
+        when(mFragment.getContext()).thenReturn(mContext);
+
+        final int requestCode = 1;
+        final ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
+        Utils.launchBiometricPromptForMandatoryBiometrics(mFragment, requestCode, USER_ID,
+                false /* hideBackground */);
+
+        verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(), eq(requestCode));
+
+        final Intent intent = intentArgumentCaptor.getValue();
+
+        assertThat(intent.getExtra(BIOMETRIC_PROMPT_AUTHENTICATORS)).isEqualTo(
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS);
+        assertThat(intent.getExtra(BIOMETRIC_PROMPT_NEGATIVE_BUTTON_TEXT)).isNotNull();
+        assertThat(intent.getExtra(KeyguardManager.EXTRA_DESCRIPTION)).isNotNull();
+        assertThat(intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_ALLOW_ANY_USER, false))
+                .isTrue();
+        assertThat(intent.getBooleanExtra(BIOMETRIC_PROMPT_HIDE_BACKGROUND, true))
+                .isFalse();
+        assertThat(intent.getIntExtra(Intent.EXTRA_USER_ID, 0)).isEqualTo(USER_ID);
+        assertThat(intent.getComponent().getPackageName()).isEqualTo(SETTINGS_PACKAGE_NAME);
+        assertThat(intent.getComponent().getClassName()).isEqualTo(
+                ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
+    }
+
     private void setUpForConfirmCredentialString(boolean isEffectiveUserManagedProfile) {
         when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mMockUserManager);
         when(mMockUserManager.getCredentialOwnerProfile(USER_ID)).thenReturn(USER_ID);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
index ad53ad6..547d0b6 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
@@ -21,7 +21,6 @@
 import android.app.Dialog;
 import android.content.Context;
 
-import androidx.appcompat.app.AlertDialog;
 import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
@@ -41,24 +40,6 @@
     }
 
     @Test
-    public void updateShortcutInDialog_correctDialogType_success() {
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC, "Title",
-                null);
-
-        assertThat(
-                AccessibilityDialogUtils.updateShortcutInDialog(mContext, dialog)).isTrue();
-    }
-
-    @Test
-    public void updateShortcutInDialog_useNotSupportedDialog_fail() {
-        final AlertDialog dialog = new AlertDialog.Builder(mContext).setTitle("Title").show();
-
-        assertThat(AccessibilityDialogUtils.updateShortcutInDialog(mContext,
-                dialog)).isFalse();
-    }
-
-    @Test
     public void showDialog_createCustomDialog_isShowing() {
         final Dialog dialog = AccessibilityDialogUtils.createCustomDialog(mContext,
                 "Title", /* customView= */ null, "positiveButton", /* positiveListener= */ null,
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index 1463cd0..86763fd 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -26,11 +26,9 @@
 import static java.util.Collections.singletonList;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
-import android.accessibilityservice.AccessibilityShortcutInfo;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
@@ -110,9 +108,7 @@
     private final Context mContext = ApplicationProvider.getApplicationContext();
     @Spy
     private final AccessibilityServiceInfo mServiceInfo = getMockAccessibilityServiceInfo(
-            PACKAGE_NAME, CLASS_NAME);
-    @Mock
-    private AccessibilityShortcutInfo mShortcutInfo;
+            new ComponentName(PACKAGE_NAME, CLASS_NAME));
     private ShadowAccessibilityManager mShadowAccessibilityManager;
     @Mock
     private LocalBluetoothManager mLocalBluetoothManager;
@@ -125,7 +121,6 @@
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
         mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
-        setMockAccessibilityShortcutInfo(mShortcutInfo);
 
         Intent intent = new Intent();
         intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT,
@@ -174,7 +169,8 @@
                 mServiceInfo, SERVICE_ENABLED);
 
         assertThat(summary).isEqualTo(
-                mContext.getString(R.string.preference_summary_default_combination,
+                mContext.getString(
+                        com.android.settingslib.R.string.preference_summary_default_combination,
                         mContext.getString(R.string.accessibility_summary_shortcut_enabled),
                         DEFAULT_SUMMARY));
     }
@@ -189,7 +185,8 @@
                 mServiceInfo, SERVICE_ENABLED);
 
         assertThat(summary).isEqualTo(
-                mContext.getString(R.string.preference_summary_default_combination,
+                mContext.getString(
+                        com.android.settingslib.R.string.preference_summary_default_combination,
                         mContext.getString(R.string.generic_accessibility_feature_shortcut_off),
                         DEFAULT_SUMMARY));
     }
@@ -251,7 +248,8 @@
                 mServiceInfo, SERVICE_ENABLED).toString();
 
         assertThat(summary).isEqualTo(
-                mContext.getString(R.string.preference_summary_default_combination,
+                mContext.getString(
+                        com.android.settingslib.R.string.preference_summary_default_combination,
                         mContext.getString(R.string.generic_accessibility_service_on),
                         DEFAULT_SUMMARY));
     }
@@ -265,7 +263,8 @@
                 mServiceInfo, SERVICE_ENABLED).toString();
 
         assertThat(summary).isEqualTo(
-                mContext.getString(R.string.preference_summary_default_combination,
+                mContext.getString(
+                        com.android.settingslib.R.string.preference_summary_default_combination,
                         mContext.getString(R.string.generic_accessibility_service_on),
                         DEFAULT_SUMMARY));
     }
@@ -279,7 +278,8 @@
                 mServiceInfo, SERVICE_DISABLED).toString();
 
         assertThat(summary).isEqualTo(
-                mContext.getString(R.string.preference_summary_default_combination,
+                mContext.getString(
+                        com.android.settingslib.R.string.preference_summary_default_combination,
                         mContext.getString(R.string.generic_accessibility_service_off),
                         DEFAULT_SUMMARY));
     }
@@ -293,7 +293,8 @@
                 mServiceInfo, SERVICE_DISABLED).toString();
 
         assertThat(summary).isEqualTo(
-                mContext.getString(R.string.preference_summary_default_combination,
+                mContext.getString(
+                        com.android.settingslib.R.string.preference_summary_default_combination,
                         mContext.getString(R.string.generic_accessibility_service_off),
                         DEFAULT_SUMMARY));
     }
@@ -398,14 +399,25 @@
     public void testAccessibilityMenuInSystem_IncludedInInteractionControl() {
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
                 List.of(getMockAccessibilityServiceInfo(
-                        AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM)));
+                        AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM,
+                        /*isSystemApp=*/true)));
         setupFragment();
 
-        final RestrictedPreference pref = mFragment.getPreferenceScreen().findPreference(
-                AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM.flattenToString());
-        final String prefCategory = mFragment.mServicePreferenceToPreferenceCategoryMap.get(
-                pref).getKey();
-        assertThat(prefCategory).isEqualTo(AccessibilitySettings.CATEGORY_INTERACTION_CONTROL);
+        assertThat(getPreferenceCategory(AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM))
+                .isEqualTo(AccessibilitySettings.CATEGORY_INTERACTION_CONTROL);
+    }
+
+    @Test
+    @EnableFlags(com.android.settings.accessibility.Flags.FLAG_CHECK_PREBUNDLED_IS_PREINSTALLED)
+    public void testNonPreinstalledApp_IncludedInDownloadedCategory() {
+        mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
+                List.of(getMockAccessibilityServiceInfo(
+                        AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM,
+                        /*isSystemApp=*/false)));
+        setupFragment();
+
+        assertThat(getPreferenceCategory(AccessibilityUtils.ACCESSIBILITY_MENU_IN_SYSTEM))
+                .isEqualTo(AccessibilitySettings.CATEGORY_DOWNLOADED_SERVICES);
     }
 
     @Test
@@ -418,13 +430,20 @@
         assertThat(pref).isNull();
     }
 
-    private AccessibilityServiceInfo getMockAccessibilityServiceInfo(String packageName,
-            String className) {
-        return getMockAccessibilityServiceInfo(new ComponentName(packageName, className));
+    private String getPreferenceCategory(ComponentName componentName) {
+        return mFragment.mServicePreferenceToPreferenceCategoryMap.get(
+                        mFragment.getPreferenceScreen().findPreference(
+                                componentName.flattenToString())).getKey();
     }
 
     private AccessibilityServiceInfo getMockAccessibilityServiceInfo(ComponentName componentName) {
-        final ApplicationInfo applicationInfo = new ApplicationInfo();
+        return getMockAccessibilityServiceInfo(componentName, true);
+    }
+
+    private AccessibilityServiceInfo getMockAccessibilityServiceInfo(ComponentName componentName,
+            boolean isSystemApp) {
+        final ApplicationInfo applicationInfo = Mockito.mock(ApplicationInfo.class);
+        when(applicationInfo.isSystemApp()).thenReturn(isSystemApp);
         final ServiceInfo serviceInfo = new ServiceInfo();
         applicationInfo.packageName = componentName.getPackageName();
         serviceInfo.packageName = componentName.getPackageName();
@@ -445,16 +464,6 @@
         return null;
     }
 
-    private void setMockAccessibilityShortcutInfo(AccessibilityShortcutInfo mockInfo) {
-        final ActivityInfo activityInfo = Mockito.mock(ActivityInfo.class);
-        activityInfo.applicationInfo = new ApplicationInfo();
-        when(mockInfo.getActivityInfo()).thenReturn(activityInfo);
-        when(activityInfo.loadLabel(any())).thenReturn(DEFAULT_LABEL);
-        when(mockInfo.loadSummary(any())).thenReturn(DEFAULT_SUMMARY);
-        when(mockInfo.loadDescription(any())).thenReturn(DEFAULT_DESCRIPTION);
-        when(mockInfo.getComponentName()).thenReturn(COMPONENT_NAME);
-    }
-
     private void setInvisibleToggleFragmentType(AccessibilityServiceInfo info) {
         info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R;
         info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
index f108b8e..9d18c44 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
@@ -16,10 +16,11 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
 import static com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment.KEY_SAVED_QS_TOOLTIP_RESHOW;
-import static com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment.KEY_SAVED_USER_SHORTCUT_TYPE;
 import static com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -34,7 +35,6 @@
 import android.app.Application;
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.icu.text.CaseMap;
 import android.os.Bundle;
@@ -49,7 +49,6 @@
 import android.widget.PopupWindow;
 
 import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
@@ -128,7 +127,7 @@
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 mFragment.getComponentName().flattenToString());
         // Compare to default UserShortcutType
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
+        assertThat(expectedType).isEqualTo(SOFTWARE);
     }
 
     @Test
@@ -140,85 +139,20 @@
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 mFragment.getComponentName().flattenToString());
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+        assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
     }
 
     @Test
     public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
         final PreferredShortcut hardwareShortcut = new PreferredShortcut(
-                PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
+                PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
 
         putUserShortcutTypeIntoSharedPreference(mContext, hardwareShortcut);
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 mFragment.getComponentName().flattenToString());
-        assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
-    }
-
-    @Test
-    public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
-        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
-                PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        mFragment.mShortcutPreference = shortcutPreference;
-
-        mFragment.mShortcutPreference.setChecked(false);
-        mFragment.setupEditShortcutDialog(dialog);
-
-        final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
-        assertThat(checkboxValue).isEqualTo(UserShortcutType.EMPTY);
-    }
-
-    @Test
-    public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
-        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
-                PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        final PreferredShortcut hardwareShortcut = new PreferredShortcut(
-                PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
-        mFragment.mShortcutPreference = shortcutPreference;
-
-        PreferredShortcuts.saveUserShortcutType(mContext, hardwareShortcut);
-        mFragment.mShortcutPreference.setChecked(true);
-        mFragment.setupEditShortcutDialog(dialog);
-
-        final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
-        assertThat(checkboxValue).isEqualTo(UserShortcutType.HARDWARE);
-    }
-
-    @Test
-    @Config(shadows = ShadowFragment.class)
-    public void restoreValueFromSavedInstanceState_assignShortcutTypeToVariable() {
-        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
-                PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final Bundle savedInstanceState = new Bundle();
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        mFragment.mShortcutPreference = shortcutPreference;
-
-        savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE,
-                UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(savedInstanceState);
-        mFragment.setupEditShortcutDialog(dialog);
-        final int value = mFragment.getShortcutTypeCheckBoxValue();
-        mFragment.saveNonEmptyUserShortcutType(value);
-
-        final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.getComponentName().flattenToString());
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+        assertThat(expectedType).isEqualTo(HARDWARE);
     }
 
     @Test
@@ -265,8 +199,7 @@
     }
 
     @Test
-    @EnableFlags(com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN)
-    public void onSettingsClicked_editShortcutsFullScreenFlagOn_showFullScreenEditShortcutScreen() {
+    public void onSettingsClicked_showFullScreenEditShortcutScreen() {
         Activity activity = Robolectric.setupActivity(FragmentActivity.class);
         when(mFragment.getContext()).thenReturn(activity);
         Context context = mFragment.getContext();
@@ -290,7 +223,7 @@
     public void getShortcutTypeSummary_shortcutSummaryIsCorrectlySet() {
         final PreferredShortcut userPreferredShortcut = new PreferredShortcut(
                 PLACEHOLDER_COMPONENT_NAME.flattenToString(),
-                UserShortcutType.HARDWARE | UserShortcutType.QUICK_SETTINGS);
+                HARDWARE | QUICK_SETTINGS);
         putUserShortcutTypeIntoSharedPreference(mContext, userPreferredShortcut);
         final ShortcutPreference shortcutPreference =
                 new ShortcutPreference(mContext, /* attrs= */ null);
@@ -308,8 +241,6 @@
         assertThat(summary).isEqualTo(expected);
     }
 
-    private void callEmptyOnClicked(DialogInterface dialog, int which) {}
-
     private void putStringIntoSettings(String key, String componentName) {
         Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
     }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java
index a5aceed..d5c1fd1 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutsTutorialTest.java
@@ -16,11 +16,15 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
 import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.createAccessibilityTutorialDialog;
 import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.createAccessibilityTutorialDialogForSetupWizard;
 import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.createShortcutTutorialPages;
 import static com.android.settings.accessibility.AccessibilityShortcutsTutorial.showGestureNavigationTutorialDialog;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -99,7 +103,7 @@
 
     @Test
     public void createTutorialPages_turnOnTripleTapShortcut_hasOnePage() {
-        mShortcutTypes |= UserShortcutType.TRIPLETAP;
+        mShortcutTypes |= TRIPLETAP;
 
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -114,7 +118,7 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
     public void createTutorialPages_turnOnTwoFingerTripleTapShortcut_hasOnePage() {
-        mShortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
+        mShortcutTypes |= TWOFINGER_DOUBLETAP;
 
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -129,7 +133,7 @@
     @Test
     @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void createTutorialPages_turnOnQuickSettingShortcut_hasOnePage() {
-        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        mShortcutTypes |= QUICK_SETTINGS;
 
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -143,7 +147,7 @@
 
     @Test
     public void createTutorialPages_turnOnSoftwareShortcut_hasOnePage() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
 
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -157,8 +161,8 @@
 
     @Test
     public void createTutorialPages_turnOnSoftwareAndHardwareShortcuts_hasTwoPages() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
-        mShortcutTypes |= UserShortcutType.HARDWARE;
+        mShortcutTypes |= SOFTWARE;
+        mShortcutTypes |= HARDWARE;
 
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -172,7 +176,7 @@
 
     @Test
     public void createTutorialPages_turnOnA11yGestureShortcut_linkButtonShownWithText() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         AccessibilityTestUtils.setSoftwareShortcutMode(
                 mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
 
@@ -191,7 +195,7 @@
 
     @Test
     public void createTutorialPages_turnOnA11yNavButtonShortcut_linkButtonShownWithText() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         AccessibilityTestUtils.setSoftwareShortcutMode(
                 mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
 
@@ -210,7 +214,7 @@
 
     @Test
     public void createTutorialPages_turnOnFloatingButtonShortcut_linkButtonShownWithText() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         AccessibilityTestUtils.setSoftwareShortcutMode(
                 mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
 
@@ -228,7 +232,7 @@
 
     @Test
     public void createTutorialPages_turnOnHardwareShortcut_linkButtonGone() {
-        mShortcutTypes |= UserShortcutType.HARDWARE;
+        mShortcutTypes |= HARDWARE;
 
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
@@ -241,7 +245,7 @@
 
     @Test
     public void createTutorialPages_turnOnSoftwareShortcut_showFromSuW_linkButtonGone() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
 
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialogForSetupWizard(
@@ -256,7 +260,7 @@
     @Test
     @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void createAccessibilityTutorialDialog_qsShortcut_inSuwTalkbackOn_verifyText() {
-        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        mShortcutTypes |= QUICK_SETTINGS;
         setTouchExplorationEnabled(true);
         final String expectedTitle = mContext.getString(
                 R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -288,7 +292,7 @@
     @Test
     @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void createAccessibilityTutorialDialog_qsShortcut_notInSuwTalkbackOn_verifyText() {
-        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        mShortcutTypes |= QUICK_SETTINGS;
         setTouchExplorationEnabled(true);
         final String expectedTitle = mContext.getString(
                 R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -314,7 +318,7 @@
     @Test
     @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void createAccessibilityTutorialDialog_qsShortcut_inSuwTalkbackOff_verifyText() {
-        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        mShortcutTypes |= QUICK_SETTINGS;
         setTouchExplorationEnabled(false);
         final String expectedTitle = mContext.getString(
                 R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -345,7 +349,7 @@
     @Test
     @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void createAccessibilityTutorialDialog_qsShortcut_notInSuwTalkbackOff_verifyText() {
-        mShortcutTypes |= UserShortcutType.QUICK_SETTINGS;
+        mShortcutTypes |= QUICK_SETTINGS;
         setTouchExplorationEnabled(false);
         final String expectedTitle = mContext.getString(
                 R.string.accessibility_tutorial_dialog_title_quick_setting);
@@ -370,7 +374,7 @@
 
     @Test
     public void createAccessibilityTutorialDialog_volumeKeysShortcut_verifyText() {
-        mShortcutTypes |= UserShortcutType.HARDWARE;
+        mShortcutTypes |= HARDWARE;
         final String expectedTitle = mContext.getString(
                 R.string.accessibility_tutorial_dialog_title_volume);
         final CharSequence expectedInstruction = mContext.getString(
@@ -390,7 +394,7 @@
 
     @Test
     public void createAccessibilityTutorialDialog_tripleTapShortcut_verifyText() {
-        mShortcutTypes |= UserShortcutType.TRIPLETAP;
+        mShortcutTypes |= TRIPLETAP;
         final String expectedTitle = mContext.getString(
                 R.string.accessibility_tutorial_dialog_title_triple);
         final CharSequence expectedInstruction = mContext.getString(
@@ -411,7 +415,7 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
     public void createAccessibilityTutorialDialog_twoFingerDoubleTapShortcut_verifyText() {
-        mShortcutTypes |= UserShortcutType.TWOFINGER_DOUBLETAP;
+        mShortcutTypes |= TWOFINGER_DOUBLETAP;
         final int numFingers = 2;
         final String expectedTitle = mContext.getString(
                 R.string.accessibility_tutorial_dialog_title_two_finger_double, numFingers);
@@ -432,7 +436,7 @@
 
     @Test
     public void createAccessibilityTutorialDialog_floatingButtonShortcut_verifyText() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         AccessibilityTestUtils.setSoftwareShortcutMode(
                 mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
         final String expectedTitle = mContext.getString(
@@ -454,7 +458,7 @@
 
     @Test
     public void createAccessibilityTutorialDialog_navA11yButtonShortcut_verifyText() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         AccessibilityTestUtils.setSoftwareShortcutMode(
                 mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
         final String expectedTitle = mContext.getString(
@@ -476,7 +480,7 @@
 
     @Test
     public void createAccessibilityTutorialDialog_gestureShortcut_talkbackOn_verifyText() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         setTouchExplorationEnabled(true);
         AccessibilityTestUtils.setSoftwareShortcutMode(
                 mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
@@ -501,7 +505,7 @@
 
     @Test
     public void createAccessibilityTutorialDialog_gestureShortcut_talkbackOff_verifyText() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         setTouchExplorationEnabled(false);
         AccessibilityTestUtils.setSoftwareShortcutMode(
                 mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
@@ -526,7 +530,7 @@
 
     @Test
     public void performClickOnPositiveButton_turnOnSoftwareShortcut_dismiss() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(mContext, mShortcutTypes, FAKE_FEATURE_NAME);
         alertDialog.show();
@@ -540,7 +544,7 @@
 
     @Test
     public void performClickOnPositiveButton_turnOnSoftwareShortcut_callOnClickListener() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(
                         mContext, mShortcutTypes, mOnClickListener, FAKE_FEATURE_NAME);
@@ -555,7 +559,7 @@
 
     @Test
     public void performClickOnNegativeButton_turnOnSoftwareShortcut_directToSettingsPage() {
-        mShortcutTypes |= UserShortcutType.SOFTWARE;
+        mShortcutTypes |= SOFTWARE;
         Activity activity = Robolectric.buildActivity(Activity.class).create().get();
         final AlertDialog alertDialog =
                 createAccessibilityTutorialDialog(activity, mShortcutTypes, FAKE_FEATURE_NAME);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
index 2d5deeb..c036432 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
@@ -16,6 +16,12 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
@@ -39,9 +45,9 @@
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType;
 import com.android.internal.accessibility.util.ShortcutUtils;
 import com.android.settings.R;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 import com.android.settings.testutils.AccessibilityTestUtils;
 
 import org.junit.Before;
@@ -159,52 +165,52 @@
 
     @Test
     public void hasValueInSettings_putValue_hasValue() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
 
-        assertThat(AccessibilityUtil.hasValueInSettings(mContext, UserShortcutType.SOFTWARE,
+        assertThat(AccessibilityUtil.hasValueInSettings(mContext, SOFTWARE,
                 MOCK_COMPONENT_NAME)).isTrue();
     }
 
     @Test
     public void getUserShortcutTypeFromSettings_putOneValue_hasValue() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
 
         final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
                 MOCK_COMPONENT_NAME);
 
         assertThat(shortcutTypes).isEqualTo(
-                UserShortcutType.SOFTWARE
+                SOFTWARE
         );
     }
 
     @Test
     public void getUserShortcutTypeFromSettings_putTwoValues_hasValue() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
-        setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
 
         final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
                 MOCK_COMPONENT_NAME);
 
         assertThat(shortcutTypes).isEqualTo(
-                UserShortcutType.SOFTWARE
-                        | UserShortcutType.HARDWARE
+                SOFTWARE
+                        | HARDWARE
         );
     }
 
     @Test
     @EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void getUserShortcutTypeFromSettings_threeShortcutTypesChosen() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
-        setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
-        setShortcut(UserShortcutType.QUICK_SETTINGS, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(QUICK_SETTINGS, MOCK_COMPONENT_NAME.flattenToString());
 
         final int shortcutTypes = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
                 MOCK_COMPONENT_NAME);
 
         assertThat(shortcutTypes).isEqualTo(
-                UserShortcutType.SOFTWARE
-                        | UserShortcutType.HARDWARE
-                        | UserShortcutType.QUICK_SETTINGS
+                SOFTWARE
+                        | HARDWARE
+                        | QUICK_SETTINGS
         );
     }
 
@@ -212,7 +218,7 @@
     @DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optInAllValuesToSettings_optInValue_haveMatchString() {
         clearShortcuts();
-        int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE;
+        int shortcutTypes = SOFTWARE | HARDWARE;
 
         AccessibilityUtil.optInAllValuesToSettings(mContext, shortcutTypes, MOCK_COMPONENT_NAME);
 
@@ -229,8 +235,8 @@
         AccessibilityManager a11yManager =
                 AccessibilityTestUtils.setupMockAccessibilityManager(mContext);
         Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME.flattenToString());
-        int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE
-                | UserShortcutType.QUICK_SETTINGS;
+        int shortcutTypes = SOFTWARE | HARDWARE
+                | QUICK_SETTINGS;
 
         AccessibilityUtil.optInAllValuesToSettings(mContext, shortcutTypes, MOCK_COMPONENT_NAME);
 
@@ -243,9 +249,9 @@
     @Test
     @DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optInValueToSettings_optInValue_haveMatchString() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
 
-        AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
+        AccessibilityUtil.optInValueToSettings(mContext, SOFTWARE,
                 MOCK_COMPONENT_NAME2);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
@@ -261,10 +267,10 @@
         Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME2.flattenToString());
 
         AccessibilityUtil.optInValueToSettings(
-                mContext, UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME2);
+                mContext, HARDWARE, MOCK_COMPONENT_NAME2);
 
         verify(a11yManager).enableShortcutsForTargets(
-                /* enable= */ true, UserShortcutType.HARDWARE,
+                /* enable= */ true, HARDWARE,
                 shortcutTargets, UserHandle.myUserId());
         verifyNoMoreInteractions(a11yManager);
     }
@@ -272,11 +278,11 @@
     @Test
     @DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optInValueToSettings_optInTwoValues_haveMatchString() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
 
-        AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
+        AccessibilityUtil.optInValueToSettings(mContext, SOFTWARE,
                 MOCK_COMPONENT_NAME2);
-        AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
+        AccessibilityUtil.optInValueToSettings(mContext, SOFTWARE,
                 MOCK_COMPONENT_NAME2);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
@@ -287,10 +293,10 @@
     @Test
     @DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optOutAllValuesToSettings_optOutValue_emptyString() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
-        setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
         int shortcutTypes =
-                UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP;
+                SOFTWARE | HARDWARE | TRIPLETAP;
 
         AccessibilityUtil.optOutAllValuesFromSettings(mContext, shortcutTypes,
                 MOCK_COMPONENT_NAME);
@@ -305,8 +311,8 @@
         AccessibilityManager a11yManager =
                 AccessibilityTestUtils.setupMockAccessibilityManager(mContext);
         int shortcutTypes =
-                UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE
-                        | UserShortcutType.QUICK_SETTINGS;
+                SOFTWARE | HARDWARE
+                        | QUICK_SETTINGS;
         Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME.flattenToString());
 
         AccessibilityUtil.optOutAllValuesFromSettings(mContext, shortcutTypes,
@@ -322,9 +328,9 @@
     @Test
     @DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optOutValueFromSettings_optOutValue_emptyString() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
 
-        AccessibilityUtil.optOutValueFromSettings(mContext, UserShortcutType.SOFTWARE,
+        AccessibilityUtil.optOutValueFromSettings(mContext, SOFTWARE,
                 MOCK_COMPONENT_NAME);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEmpty();
@@ -333,10 +339,10 @@
     @Test
     @DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optOutValueFromSettings_optOutValue_haveMatchString() {
-        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString(),
+        setShortcut(SOFTWARE, MOCK_COMPONENT_NAME.flattenToString(),
                 MOCK_COMPONENT_NAME2.flattenToString());
 
-        AccessibilityUtil.optOutValueFromSettings(mContext, UserShortcutType.SOFTWARE,
+        AccessibilityUtil.optOutValueFromSettings(mContext, SOFTWARE,
                 MOCK_COMPONENT_NAME2);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
@@ -351,36 +357,36 @@
         Set<String> shortcutTargets = Set.of(MOCK_COMPONENT_NAME.flattenToString());
 
         AccessibilityUtil.optOutValueFromSettings(
-                mContext, UserShortcutType.QUICK_SETTINGS, MOCK_COMPONENT_NAME);
+                mContext, QUICK_SETTINGS, MOCK_COMPONENT_NAME);
 
         verify(a11yManager).enableShortcutsForTargets(
-                /* enable= */ false, UserShortcutType.QUICK_SETTINGS,
+                /* enable= */ false, QUICK_SETTINGS,
                 shortcutTargets, UserHandle.myUserId());
         verifyNoMoreInteractions(a11yManager);
     }
 
     @Test
     public void convertKeyFromSettings_shortcutTypeSoftware() {
-        assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.SOFTWARE))
+        assertThat(AccessibilityUtil.convertKeyFromSettings(SOFTWARE))
                 .isEqualTo(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS);
     }
 
     @Test
     public void convertKeyFromSettings_shortcutTypeHardware() {
-        assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.HARDWARE))
+        assertThat(AccessibilityUtil.convertKeyFromSettings(HARDWARE))
                 .isEqualTo(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE);
     }
 
     @Test
     public void convertKeyFromSettings_shortcutTypeTripleTap() {
-        assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.TRIPLETAP))
+        assertThat(AccessibilityUtil.convertKeyFromSettings(TRIPLETAP))
                 .isEqualTo(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
     }
 
     @Test
     @EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void convertKeyFromSettings_shortcutTypeMultiFingersMultiTap() {
-        assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.TWOFINGER_DOUBLETAP))
+        assertThat(AccessibilityUtil.convertKeyFromSettings(TWOFINGER_DOUBLETAP))
                 .isEqualTo(
                         Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED);
     }
@@ -388,7 +394,7 @@
     @Test
     @EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
     public void convertKeyFromSettings_shortcutTypeQuickSettings() {
-        assertThat(AccessibilityUtil.convertKeyFromSettings(UserShortcutType.QUICK_SETTINGS))
+        assertThat(AccessibilityUtil.convertKeyFromSettings(QUICK_SETTINGS))
                 .isEqualTo(Settings.Secure.ACCESSIBILITY_QS_TARGETS);
     }
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java
index 1e6e068..c0b9dbd 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AutoBrightnessPreferenceFragmentForSetupWizardTest.java
@@ -18,66 +18,97 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 import android.app.settings.SettingsEnums;
-import android.content.Context;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
 
-import androidx.lifecycle.LifecycleOwner;
-import androidx.test.core.app.ApplicationProvider;
+import androidx.fragment.app.FragmentFactory;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
 
 import com.android.settings.R;
+import com.android.settingslib.widget.FooterPreference;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupdesign.GlifLayout;
 import com.google.android.setupdesign.GlifPreferenceLayout;
 
+import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 /** Tests for {@link AutoBrightnessPreferenceFragmentForSetupWizard}. */
 @RunWith(RobolectricTestRunner.class)
 public class AutoBrightnessPreferenceFragmentForSetupWizardTest {
 
-    @Rule
-    public final MockitoRule mMockito = MockitoJUnit.rule();
+    // Same as AutoBrightnessPreferenceFragmentForSetupWizard#FOOTER_PREFERENCE_KEY
+    private static final String FOOTER_PREFERENCE_KEY = "auto_brightness_footer";
 
-    @Spy
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    @Mock
-    private GlifPreferenceLayout mGlifLayoutView;
-    @Mock
-    private FooterBarMixin mFooterBarMixin;
+    private FragmentScenario<AutoBrightnessPreferenceFragmentForSetupWizard> mFragmentScenario;
+
     private AutoBrightnessPreferenceFragmentForSetupWizard mFragment;
+    private GlifLayout mGlifLayout;
 
     @Before
     public void setUp() {
-        mFragment = spy(new AutoBrightnessPreferenceFragmentForSetupWizard());
-        doReturn(mock(LifecycleOwner.class)).when(mFragment).getViewLifecycleOwner();
-        doReturn(mContext).when(mFragment).getContext();
-        when(mGlifLayoutView.getMixin(eq(FooterBarMixin.class))).thenReturn(mFooterBarMixin);
+        mFragmentScenario = FragmentScenario
+                .launch(
+                        AutoBrightnessPreferenceFragmentForSetupWizard.class,
+                        /* fragmentArgs= */ (Bundle) null,
+                        R.style.GlifTheme,
+                        /* factory= */ (FragmentFactory) null)
+                .moveToState(Lifecycle.State.RESUMED);
+        mFragmentScenario.onFragment(fragment -> mFragment = fragment);
+
+        View view = mFragment.getView();
+        assertThat(view).isInstanceOf(GlifPreferenceLayout.class);
+        mGlifLayout = (GlifLayout) view;
+    }
+
+    @After
+    public void tearDown() {
+        mFragmentScenario.close();
     }
 
     @Test
-    public void setHeaderText_onViewCreated_verifyAction() {
-        final String title = "title";
-        doReturn(title).when(mContext).getString(R.string.auto_brightness_title);
+    public void onViewCreated_verifyGlifHerderText() {
+        assertThat(mGlifLayout.getHeaderText())
+                .isEqualTo(mFragment.getString(R.string.auto_brightness_title));
+    }
 
-        mFragment.onViewCreated(mGlifLayoutView, null);
+    @Test
+    public void onViewCreated_verifyGlifFooter() {
+        FooterBarMixin footerMixin = mGlifLayout.getMixin(FooterBarMixin.class);
+        assertThat(footerMixin).isNotNull();
 
-        verify(mGlifLayoutView).setHeaderText(title);
+        Button footerButton = footerMixin.getPrimaryButtonView();
+        assertThat(footerButton).isNotNull();
+        assertThat(footerButton.getText().toString()).isEqualTo(mFragment.getString(R.string.done));
+
+        footerButton.performClick();
+        assertThat(mFragment.getActivity().isFinishing()).isTrue();
+    }
+
+    @Test
+    public void onViewCreated_verifyFooterPreference() {
+        Preference pref = mFragment.findPreference(FOOTER_PREFERENCE_KEY);
+        assertThat(pref).isInstanceOf(FooterPreference.class);
+
+        FooterPreference footerPref = (FooterPreference) pref;
+        String exactTitle = footerPref.getTitle().toString();
+        assertThat(exactTitle).isEqualTo(mFragment.getString(R.string.auto_brightness_description));
+
+        // Ensure that footer content description has "About XXX" prefix for consistency with other
+        // accessibility suw pages
+        String expectedContentDescription =
+                mFragment.getString(R.string.auto_brightness_content_description_title)
+                        + "\n\n" + exactTitle;
+        assertThat(footerPref.getContentDescription().toString())
+                .isEqualTo(expectedContentDescription);
     }
 
     @Test
@@ -85,11 +116,4 @@
         assertThat(mFragment.getMetricsCategory()).isEqualTo(
                 SettingsEnums.SUW_ACCESSIBILITY_AUTO_BRIGHTNESS);
     }
-
-    @Test
-    public void onViewCreated_verifyAction() {
-        mFragment.onViewCreated(mGlifLayoutView, null);
-
-        verify(mFooterBarMixin).setPrimaryButton(any());
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
index ce2a571..d74794f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
@@ -28,23 +28,32 @@
 import static org.robolectric.Shadows.shadowOf;
 
 import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.AttributeSet;
 import android.widget.SeekBar;
 
+import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowSystemSettings;
 
 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;
 
+import java.util.Locale;
+
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         ShadowSystemSettings.class,
 })
 public class BalanceSeekBarTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     // Fix the maximum process value to 200 for testing the BalanceSeekBar.
     // It affects the SeekBar value of center(100) and snapThreshold(200 * SNAP_TO_PERCENTAGE).
     private static final int MAX_PROGRESS_VALUE = 200;
@@ -143,6 +152,58 @@
         assertThat(mSeekBar.getProgress()).isEqualTo(progressWithoutThreshold);
     }
 
+    @Test
+    @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+    public void onProgressChanged_getStateDescription_centered_leftFirst() {
+        // Seek bar centered
+        int progress = (int) (0.50f * MAX_PROGRESS_VALUE);
+        mSeekBar.setMax(MAX_PROGRESS_VALUE);
+
+        mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+        assertThat(mSeekBar.getStateDescription()).isEqualTo(
+                mContext.getString(R.string.audio_seek_bar_state_left_first, 50, 50));
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+    public void onProgressChanged_getStateDescription_centered_rtl_rightFirst() {
+        // RTL layout
+        mContext.getResources().getConfiguration().setLayoutDirection(new Locale("iw", "IL"));
+        // Seek bar centered
+        int progress = (int) (0.50f * MAX_PROGRESS_VALUE);
+        mSeekBar.setMax(MAX_PROGRESS_VALUE);
+
+        mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+        assertThat(mSeekBar.getStateDescription()).isEqualTo(
+                mContext.getString(R.string.audio_seek_bar_state_right_first, 50, 50));
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+    public void onProgressChanged_getStateDescription_25percent_leftFirst() {
+        // Seek bar 3/4th toward the left
+        int progress = (int) (0.25f * MAX_PROGRESS_VALUE);
+        mSeekBar.setMax(MAX_PROGRESS_VALUE);
+        mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+        assertThat(mSeekBar.getStateDescription()).isEqualTo(
+                mContext.getString(R.string.audio_seek_bar_state_left_first, 75, 25));
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_AUDIO_BALANCE_STATE_DESCRIPTION)
+    public void onProgressChanged_getStateDescription_75percent_rightFirst() {
+        // Seek bar 3/4th toward the right
+        int progress = (int) (0.75f * MAX_PROGRESS_VALUE);
+        mSeekBar.setMax(MAX_PROGRESS_VALUE);
+        mProxySeekBarListener.onProgressChanged(mSeekBar, progress, true);
+
+        assertThat(mSeekBar.getStateDescription()).isEqualTo(
+                mContext.getString(R.string.audio_seek_bar_state_right_first, 75, 25));
+    }
+
     // method to get the center from BalanceSeekBar for testing setMax().
     private int getBalanceSeekBarCenter(BalanceSeekBar seekBar) {
         return seekBar.getMax() / 2;
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
index b9de66d..b4dd2fc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningAppearancePreferenceControllerTest.java
@@ -17,6 +17,7 @@
 package com.android.settings.accessibility;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.robolectric.Shadows.shadowOf;
 
 import android.content.Context;
@@ -188,7 +189,8 @@
                 R.array.captioning_font_size_selector_titles);
         final String[] presetArray = mContext.getResources().getStringArray(
                 R.array.captioning_preset_selector_titles);
-        return mContext.getString(R.string.preference_summary_default_combination,
+        return mContext.getString(
+                com.android.settingslib.R.string.preference_summary_default_combination,
                 fontScaleArray[fontScaleIndex], presetArray[presetIndex]);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceControllerTest.java
index 28954c5..56c0842 100644
--- a/tests/robotests/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/DaltonizerRadioButtonPreferenceControllerTest.java
@@ -18,61 +18,65 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 import android.content.Context;
 import android.provider.Settings;
 
-import androidx.preference.Preference;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
+import org.junit.After;
 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 org.robolectric.shadows.ShadowLooper;
 
+/**
+ * Tests for {@link DaltonizerRadioButtonPreferenceController}
+ */
 @RunWith(RobolectricTestRunner.class)
-public class DaltonizerRadioButtonPreferenceControllerTest implements
-        DaltonizerRadioButtonPreferenceController.OnChangeListener {
-    private static final String PREF_KEY = "daltonizer_mode_protanomaly";
-    private static final String PREF_VALUE = "11";
-    private static final String PREF_FAKE_VALUE = "-1";
+public class DaltonizerRadioButtonPreferenceControllerTest {
+    private static final int DALTONIZER_MODE_INDEX = 0;
+    private static final String PREF_INVALID_VALUE = "-1";
 
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private final String mPrefKey =
+            mContext.getResources()
+                    .getStringArray(R.array.daltonizer_mode_keys)[DALTONIZER_MODE_INDEX];
+    private final String mPrefValue =
+            String.valueOf(mContext.getResources()
+                    .getIntArray(R.array.daltonizer_type_values)[DALTONIZER_MODE_INDEX]);
     private DaltonizerRadioButtonPreferenceController mController;
-
-    @Mock
-    private SelectorWithWidgetPreference mMockPref;
-    private Context mContext;
-
-    @Mock
+    private SelectorWithWidgetPreference mPreference;
     private PreferenceScreen mScreen;
 
+    private LifecycleOwner mLifecycleOwner;
+    private Lifecycle mLifecycle;
+
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mController = new DaltonizerRadioButtonPreferenceController(mContext, mock(Lifecycle.class),
-                PREF_KEY);
-        mController.setOnChangeListener(this);
-
-        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mMockPref);
-        when(mMockPref.getKey()).thenReturn(PREF_KEY);
+        // initialize the value as unchecked
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, PREF_INVALID_VALUE);
+        mController = new DaltonizerRadioButtonPreferenceController(mContext, mPrefKey);
+        mPreference = new SelectorWithWidgetPreference(mContext);
+        mPreference.setKey(mPrefKey);
+        mScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mScreen.addPreference(mPreference);
         mController.displayPreference(mScreen);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
     }
 
-    @Override
-    public void onCheckedChanged(Preference preference) {
-        mController.updateState(preference);
+    @After
+    public void cleanUp() {
+        mLifecycle.removeObserver(mController);
     }
 
     @Test
@@ -81,36 +85,62 @@
     }
 
     @Test
-    public void updateState_notChecked() {
+    public void updateState_valueNotMatched_notChecked() {
         Settings.Secure.putString(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, PREF_FAKE_VALUE);
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, PREF_INVALID_VALUE);
 
-        mController.updateState(mMockPref);
+        mController.updateState(mPreference);
 
-        // the first checked state is set to false by control
-        verify(mMockPref, atLeastOnce()).setChecked(false);
-        verify(mMockPref, never()).setChecked(true);
+        assertThat(mPreference.isChecked()).isFalse();
     }
 
     @Test
-    public void updateState_checked() {
+    public void updateState_valueMatched_checked() {
         Settings.Secure.putString(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, PREF_VALUE);
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, mPrefValue);
 
-        mController.updateState(mMockPref);
+        mController.updateState(mPreference);
 
-        // the first checked state is set to false by control
-        verify(mMockPref, atLeastOnce()).setChecked(false);
-        verify(mMockPref, atLeastOnce()).setChecked(true);
+        assertThat(mPreference.isChecked()).isTrue();
     }
 
     @Test
     public void onRadioButtonClick_shouldReturnDaltonizerValue() {
-        mController.onRadioButtonClicked(mMockPref);
+        mController.onRadioButtonClicked(mPreference);
+
         final String accessibilityDaltonizerValue = Settings.Secure.getString(
                 mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER);
+        assertThat(accessibilityDaltonizerValue).isEqualTo(mPrefValue);
+    }
 
-        assertThat(accessibilityDaltonizerValue).isEqualTo(PREF_VALUE);
+    @Test
+    public void onResume_settingsValueChangedToUnmatch_preferenceBecomesUnchecked() {
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, mPrefValue);
+        mController.updateState(mPreference);
+        assertThat(mPreference.isChecked()).isTrue();
+        mLifecycle.addObserver(mController);
+
+        mLifecycle.handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event.ON_RESUME);
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, PREF_INVALID_VALUE);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(mPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void onPause_settingsValueChangedAndMatch_preferenceStateNotUpdated() {
+        assertThat(mPreference.isChecked()).isFalse();
+        mLifecycle.addObserver(mController);
+        mLifecycle.handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event.ON_RESUME);
+
+        mLifecycle.handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event.ON_PAUSE);
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER, mPrefValue);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(mPreference.isChecked()).isFalse();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java
index 98ed442..6797061 100644
--- a/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/DaltonizerSaturationSeekbarPreferenceControllerTest.java
@@ -16,38 +16,39 @@
 
 package com.android.settings.accessibility;
 
+import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
+import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
 
 import android.content.ContentResolver;
 import android.content.Context;
+import android.os.Looper;
 import android.platform.test.annotations.DisableFlags;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.server.accessibility.Flags;
 import com.android.settings.widget.SeekBarPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 
 /** Tests for {@link DaltonizerSaturationSeekbarPreferenceController}. */
@@ -57,11 +58,10 @@
     private ContentResolver mContentResolver;
     private DaltonizerSaturationSeekbarPreferenceController mController;
 
-    private int mOriginalSaturationLevel = -1;
-
     private PreferenceScreen mScreen;
+    private LifecycleOwner mLifecycleOwner;
+    private Lifecycle mLifecycle;
 
-    @Mock
     private SeekBarPreference mPreference;
 
     @Rule
@@ -69,18 +69,16 @@
 
     @Before
     public void setup() {
-        MockitoAnnotations.initMocks(this);
         Context context = ApplicationProvider.getApplicationContext();
         mContentResolver = context.getContentResolver();
-        mOriginalSaturationLevel = Settings.Secure.getInt(
-                mContentResolver,
-                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_SATURATION_LEVEL,
-                7);
 
-        mScreen = spy(new PreferenceScreen(context, /* attrs= */ null));
-        when(mScreen.findPreference(ToggleDaltonizerPreferenceFragment.KEY_SATURATION))
-                .thenReturn(mPreference);
+        mPreference = new SeekBarPreference(context);
+        mPreference.setKey(ToggleDaltonizerPreferenceFragment.KEY_SATURATION);
+        mScreen = new PreferenceManager(context).createPreferenceScreen(context);
+        mScreen.addPreference(mPreference);
 
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
         mController = new DaltonizerSaturationSeekbarPreferenceController(
                 context,
                 ToggleDaltonizerPreferenceFragment.KEY_SATURATION);
@@ -88,12 +86,26 @@
 
     @After
     public void cleanup() {
-        Settings.Secure.putInt(
+        Settings.Secure.putString(
+                mContentResolver,
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER,
+                null);
+        Settings.Secure.putString(
+                mContentResolver,
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
+                null);
+        Settings.Secure.putString(
                 mContentResolver,
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_SATURATION_LEVEL,
-                mOriginalSaturationLevel);
+                null);
     }
 
+    @Test
+    public void constructor_defaultValuesMatch() {
+        assertThat(mController.getSliderPosition()).isEqualTo(7);
+        assertThat(mController.getMax()).isEqualTo(10);
+        assertThat(mController.getMin()).isEqualTo(1);
+    }
 
     @Test
     @DisableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
@@ -103,28 +115,88 @@
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
-    public void getAvailabilityStatus_flagEnabled_available() {
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void constructor_defaultValuesMatch() {
-        assertThat(mController.getSliderPosition()).isEqualTo(7);
-        assertThat(mController.getMax()).isEqualTo(10);
-        assertThat(mController.getMin()).isEqualTo(0);
+    public void getAvailabilityStatus_defaultSettings_unavailable() {
+        // By default enabled == false.
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
     }
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
-    public void displayPreference_enabled_visible() {
+    public void getAvailabilityStatus_enabledDefaultDisplayMode_available() {
+        setDaltonizerEnabled(1);
+
+        // By default display mode is deuteranomaly.
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void getAvailabilityStatus_flagEnabledProtanEnabled_available() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void getAvailabilityStatus_flagEnabledDeutranEnabled_available() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 12);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void getAvailabilityStatus_flagEnabledTritanEnabled_available() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 13);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void getAvailabilityStatus_flagEnabledGrayScale_disabled() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 0);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void getAvailabilityStatus_flagEnabledColorCorrectionDisabled_disabled() {
+        setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void getAvailabilityStatus_flagEnabledColorCorrectionDisabledGrayScale_disabled() {
+        setDaltonizerMode(/* enabled= */ 0, /* mode= */ 0);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void displayPreference_flagEnabledColorCorrectionEnabled_enabledWithDefaultValues() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
         mController.displayPreference(mScreen);
 
-        verify(mPreference).setMax(eq(10));
-        verify(mPreference).setMin(eq(0));
-        verify(mPreference).setProgress(eq(7));
-        verify(mPreference).setContinuousUpdates(eq(true));
-        verify(mPreference).setOnPreferenceChangeListener(eq(mController));
-        verify(mPreference).setVisible(eq(true));
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.getMax()).isEqualTo(10);
+        assertThat(mPreference.getMin()).isEqualTo(1);
+        assertThat(mPreference.getProgress()).isEqualTo(7);
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getOnPreferenceChangeListener()).isEqualTo(mController);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_COLOR_CORRECTION_SATURATION)
+    public void displayPreference_flagEnabledColorCorrectionDisabled_disabledWithDefaultValues() {
+        setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+        mController.displayPreference(mScreen);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+        assertThat(mPreference.getMax()).isEqualTo(10);
+        assertThat(mPreference.getMin()).isEqualTo(1);
+        assertThat(mPreference.getProgress()).isEqualTo(7);
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getOnPreferenceChangeListener()).isEqualTo(mController);
     }
 
     @Test
@@ -132,12 +204,8 @@
     public void displayPreference_disabled_notVisible() {
         mController.displayPreference(mScreen);
 
-        verify(mPreference).setMax(eq(10));
-        verify(mPreference).setMin(eq(0));
-        verify(mPreference).setProgress(eq(7));
-        verify(mPreference).setContinuousUpdates(eq(true));
-        verify(mPreference, never()).setOnPreferenceChangeListener(any());
-        verify(mPreference).setVisible(eq(false));
+        assertThat(mPreference.isVisible()).isFalse();
+        assertThat(mPreference.getOnPreferenceChangeListener()).isNull();
     }
 
     @Test
@@ -153,13 +221,13 @@
 
     @Test
     public void setSliderPosition_min_secureSettingsUpdated() {
-        var isSliderSet = mController.setSliderPosition(0);
+        var isSliderSet = mController.setSliderPosition(1);
 
         assertThat(isSliderSet).isTrue();
         assertThat(Settings.Secure.getInt(
                 mContentResolver,
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_SATURATION_LEVEL,
-                7)).isEqualTo(0);
+                7)).isEqualTo(1);
     }
 
     @Test
@@ -194,4 +262,136 @@
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_SATURATION_LEVEL,
                 7)).isEqualTo(7);
     }
+
+    @Test
+    public void updateState_enabledProtan_preferenceEnabled() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updateState_enabledDeuteran_preferenceEnabled() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 12);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updateState_enabledTritan_preferenceEnabled() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 13);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updateState_disabledGrayScale_preferenceDisabled() {
+        setDaltonizerMode(/* enabled= */ 0, /* mode= */ 0);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_nullPreference_noError() {
+        setDaltonizerMode(/* enabled= */ 0, /* mode= */ 0);
+
+        mController.updateState(null);
+    }
+
+    @Test
+    public void updateState_enabledGrayScale_preferenceDisabled() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 0);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void onResume_daltonizerEnabledAfterResumed_preferenceEnabled() {
+        setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+        mController.displayPreference(mScreen);
+        assertThat(mPreference.isEnabled()).isFalse();
+
+        mLifecycle.addObserver(mController);
+        mLifecycle.handleLifecycleEvent(ON_RESUME);
+
+        setDaltonizerEnabled(1);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void onResume_daltonizerDisabledAfterResumed_preferenceDisabled() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
+        mController.displayPreference(mScreen);
+        assertThat(mPreference.isEnabled()).isTrue();
+
+        mLifecycle.addObserver(mController);
+        mLifecycle.handleLifecycleEvent(ON_RESUME);
+
+        setDaltonizerEnabled(0);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void onResume_daltonizerGrayScaledAfterResumed_preferenceDisabled() {
+        setDaltonizerMode(/* enabled= */ 1, /* mode= */ 11);
+        mController.displayPreference(mScreen);
+        assertThat(mPreference.isEnabled()).isTrue();
+
+        mLifecycle.addObserver(mController);
+        mLifecycle.handleLifecycleEvent(ON_RESUME);
+
+        setDaltonizerDisplay(0);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void onStop_daltonizerEnabledAfterOnStop_preferenceNotChanged() {
+        setDaltonizerMode(/* enabled= */ 0, /* mode= */ 11);
+        mController.displayPreference(mScreen);
+        assertThat(mPreference.isEnabled()).isFalse();
+
+        mLifecycle.addObserver(mController);
+        mLifecycle.handleLifecycleEvent(ON_STOP);
+
+        // enabled.
+        setDaltonizerEnabled(1);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    private void setDaltonizerMode(int enabled, int mode) {
+        setDaltonizerEnabled(enabled);
+        setDaltonizerDisplay(mode);
+    }
+
+    private void setDaltonizerEnabled(int enabled) {
+        Settings.Secure.putInt(
+                mContentResolver,
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED,
+                enabled);
+    }
+
+    private void setDaltonizerDisplay(int mode) {
+        Settings.Secure.putString(
+                mContentResolver,
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER,
+                Integer.toString(mode));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
index 0f32f31..6432a17 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
@@ -67,22 +67,23 @@
     public MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Spy
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
-    @Mock
-    private Preference mPreference;
     @Spy
     private ContentResolver mContentResolver = mContext.getContentResolver();
-
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    private Preference mPreference;
     private FlashNotificationsPreviewPreferenceController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        when(mPreferenceScreen.findPreference(PREFERENCE_KEY)).thenReturn(mPreference);
-        when(mPreference.getKey()).thenReturn(PREFERENCE_KEY);
 
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
+
+        mPreference = new Preference(mContext);
+        mPreference.setKey(PREFERENCE_KEY);
+        when(mPreferenceScreen.findPreference(PREFERENCE_KEY)).thenReturn(mPreference);
+
         mController = new FlashNotificationsPreviewPreferenceController(mContext, PREFERENCE_KEY);
     }
 
@@ -97,40 +98,45 @@
     }
 
     @Test
-    public void testDisplayPreference_torchPresent_cameraOff_screenOff_verifyDisabled() {
+    public void testDisplayPreference_torchPresent_cameraOff_screenOff_notVisible() {
         setFlashNotificationsState(FlashNotificationsUtil.State.OFF);
 
         mController.displayPreference(mPreferenceScreen);
-        verify(mPreference).setEnabled(eq(false));
+
+        assertThat(mPreference.isVisible()).isFalse();
     }
 
     @Test
-    public void testDisplayPreference_torchPresent_cameraOn_screenOff_verifyEnabled() {
+    public void testDisplayPreference_torchPresent_cameraOn_screenOff_isVisible() {
         setFlashNotificationsState(FlashNotificationsUtil.State.CAMERA);
 
         mController.displayPreference(mPreferenceScreen);
-        verify(mPreference).setEnabled(eq(true));
+
+        assertThat(mPreference.isVisible()).isTrue();
     }
 
     @Test
-    public void testDisplayPreference_torchPresent_cameraOff_screenOn_verifyEnabled() {
+    public void testDisplayPreference_torchPresent_cameraOff_screenOn_isVisible() {
         setFlashNotificationsState(FlashNotificationsUtil.State.SCREEN);
 
         mController.displayPreference(mPreferenceScreen);
-        verify(mPreference).setEnabled(eq(true));
+
+        assertThat(mPreference.isVisible()).isTrue();
     }
 
     @Test
-    public void testDisplayPreference_torchPresent_cameraOn_screenOn_verifyEnabled() {
+    public void testDisplayPreference_torchPresent_cameraOn_screenOn_isVisible() {
         setFlashNotificationsState(FlashNotificationsUtil.State.CAMERA_SCREEN);
 
         mController.displayPreference(mPreferenceScreen);
-        verify(mPreference).setEnabled(eq(true));
+
+        assertThat(mPreference.isVisible()).isTrue();
     }
 
     @Test
     public void testHandlePreferenceTreeClick_invalidPreference() {
         mController.handlePreferenceTreeClick(mock(Preference.class));
+
         verify(mContext, never()).sendBroadcastAsUser(any(), any());
     }
 
@@ -160,6 +166,7 @@
     @Test
     public void onStateChanged_onResume_cameraUri_verifyRegister() {
         mController.onStateChanged(mock(LifecycleOwner.class), Lifecycle.Event.ON_RESUME);
+
         verify(mContentResolver).registerContentObserver(
                 eq(Settings.System.getUriFor(Settings.System.CAMERA_FLASH_NOTIFICATION)),
                 anyBoolean(), eq(mController.mContentObserver));
@@ -168,6 +175,7 @@
     @Test
     public void onStateChanged_onResume_screenUri_verifyRegister() {
         mController.onStateChanged(mock(LifecycleOwner.class), Lifecycle.Event.ON_RESUME);
+
         verify(mContentResolver).registerContentObserver(
                 eq(Settings.System.getUriFor(Settings.System.SCREEN_FLASH_NOTIFICATION)),
                 anyBoolean(), eq(mController.mContentObserver));
@@ -176,6 +184,7 @@
     @Test
     public void onStateChanged_onPause_verifyUnregister() {
         mController.onStateChanged(mock(LifecycleOwner.class), Lifecycle.Event.ON_PAUSE);
+
         verify(mContentResolver).unregisterContentObserver(eq(mController.mContentObserver));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java
index 96beb43..bf6efd0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardBounceKeyPreferenceControllerTest.java
@@ -25,6 +25,8 @@
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 
 import androidx.preference.PreferenceManager;
@@ -34,19 +36,24 @@
 
 import com.android.settings.core.BasePreferenceController;
 
+import org.junit.Assume;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 
+import java.util.ArrayList;
+import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
 public class KeyboardBounceKeyPreferenceControllerTest {
-
     private static final String KEY_ACCESSIBILITY_BOUNCE_KEYS =
             Settings.Secure.ACCESSIBILITY_BOUNCE_KEYS;
     private static final int UNKNOWN = -1;
 
+    @Rule
+    public final SetFlagsRule mSetFlagRule = new SetFlagsRule();
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private final SwitchPreference mSwitchPreference = spy(new SwitchPreference(mContext));
     private final KeyboardBounceKeyPreferenceController mController =
@@ -131,4 +138,26 @@
                 mContext.getContentResolver(), KEY_ACCESSIBILITY_BOUNCE_KEYS,
                 UNKNOWN)).isNotEqualTo(OFF);
     }
+
+    @Test
+    @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+    public void updateNonIndexableKeys_physicalKeyboardExists_returnEmptyList() {
+        Assume.assumeTrue(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+        List<String> nonIndexableKeys = new ArrayList<>();
+        mController.updateNonIndexableKeys(nonIndexableKeys);
+
+        assertThat(nonIndexableKeys).isEmpty();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+    public void updateNonIndexableKeys_noPhysicalKeyboard_returnPreKey() {
+        Assume.assumeFalse(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+        List<String> nonIndexableKeys = new ArrayList<>();
+        mController.updateNonIndexableKeys(nonIndexableKeys);
+
+        assertThat(nonIndexableKeys).contains(mController.getPreferenceKey());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java
index 321b69f..2721a64 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardSlowKeyPreferenceControllerTest.java
@@ -25,6 +25,8 @@
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 
 import androidx.preference.PreferenceManager;
@@ -34,19 +36,24 @@
 
 import com.android.settings.core.BasePreferenceController;
 
+import org.junit.Assume;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 
+import java.util.ArrayList;
+import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
 public class KeyboardSlowKeyPreferenceControllerTest {
-
     private static final String KEY_ACCESSIBILITY_SLOW_KEYS =
             Settings.Secure.ACCESSIBILITY_SLOW_KEYS;
     private static final int UNKNOWN = -1;
 
+    @Rule
+    public final SetFlagsRule mSetFlagRule = new SetFlagsRule();
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private final SwitchPreference mSwitchPreference = spy(new SwitchPreference(mContext));
     private final KeyboardSlowKeyPreferenceController mController =
@@ -131,4 +138,26 @@
                 mContext.getContentResolver(), KEY_ACCESSIBILITY_SLOW_KEYS, UNKNOWN)).isNotEqualTo(
                 OFF);
     }
+
+    @Test
+    @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+    public void updateNonIndexableKeys_physicalKeyboardExists_returnEmptyList() {
+        Assume.assumeTrue(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+        List<String> nonIndexableKeys = new ArrayList<>();
+        mController.updateNonIndexableKeys(nonIndexableKeys);
+
+        assertThat(nonIndexableKeys).isEmpty();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+    public void updateNonIndexableKeys_noPhysicalKeyboard_returnPreKey() {
+        Assume.assumeFalse(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+        List<String> nonIndexableKeys = new ArrayList<>();
+        mController.updateNonIndexableKeys(nonIndexableKeys);
+
+        assertThat(nonIndexableKeys).contains(mController.getPreferenceKey());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java
index 31d46b7..0001e85 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardStickyKeyPreferenceControllerTest.java
@@ -25,6 +25,8 @@
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 
 import androidx.preference.PreferenceManager;
@@ -34,19 +36,24 @@
 
 import com.android.settings.core.BasePreferenceController;
 
+import org.junit.Assume;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 
+import java.util.ArrayList;
+import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
 public class KeyboardStickyKeyPreferenceControllerTest {
-
     private static final String KEY_ACCESSIBILITY_STICKY_KEYS =
             Settings.Secure.ACCESSIBILITY_STICKY_KEYS;
     private static final int UNKNOWN = -1;
 
+    @Rule
+    public final SetFlagsRule mSetFlagRule = new SetFlagsRule();
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private final SwitchPreference mSwitchPreference = spy(new SwitchPreference(mContext));
     private final KeyboardStickyKeyPreferenceController mController =
@@ -129,4 +136,26 @@
         assertThat(Settings.Secure.getInt(
             mContext.getContentResolver(), KEY_ACCESSIBILITY_STICKY_KEYS, UNKNOWN)).isEqualTo(ON);
     }
+
+    @Test
+    @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+    public void updateNonIndexableKeys_physicalKeyboardExists_returnEmptyList() {
+        Assume.assumeTrue(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+        List<String> nonIndexableKeys = new ArrayList<>();
+        mController.updateNonIndexableKeys(nonIndexableKeys);
+
+        assertThat(nonIndexableKeys).isEmpty();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
+    public void updateNonIndexableKeys_noPhysicalKeyboard_returnPreKey() {
+        Assume.assumeFalse(AccessibilitySettings.isAnyHardKeyboardsExist());
+
+        List<String> nonIndexableKeys = new ArrayList<>();
+        mController.updateNonIndexableKeys(nonIndexableKeys);
+
+        assertThat(nonIndexableKeys).contains(mController.getPreferenceKey());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
index 832a313..78f49a6 100644
--- a/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
@@ -33,7 +33,6 @@
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.res.Resources;
-import android.os.vibrator.Flags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 
@@ -41,7 +40,6 @@
 import androidx.preference.SwitchPreference;
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
@@ -87,30 +85,22 @@
 
     @Test
     public void getAvailabilityStatus_featureSupported_available() {
-        mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
-        when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).thenReturn(true);
-        when(mResources.getFloat(
-                com.android.internal.R.dimen.config_keyboardHapticFeedbackFixedAmplitude))
-                .thenReturn(0.8f);
+        when(mResources.getBoolean(
+                com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
+                .thenReturn(true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
     public void getAvailabilityStatus_featureNotSupported_unavailable() {
-        mSetFlagsRule.enableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
-        when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).thenReturn(false);
+        when(mResources.getBoolean(
+                com.android.internal.R.bool.config_keyboardVibrationSettingsSupported))
+                .thenReturn(false);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
-    @Test
-    public void getAvailabilityStatus_keyboardCategoryDisabled_unavailable() {
-        mSetFlagsRule.disableFlags(Flags.FLAG_KEYBOARD_CATEGORY_ENABLED);
-        when(mResources.getBoolean(R.bool.config_keyboard_vibration_supported)).thenReturn(true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
-    }
 
     @Test
     public void updateState_mainVibrateDisabled_shouldReturnFalseForCheckedAndEnabled() {
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceControllerTest.java
index 8b4bcd8..9f50146 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationOneFingerPanningPreferenceControllerTest.java
@@ -133,23 +133,23 @@
     }
 
     @Test
-    public void getSummary_switchModeAndSettingsOff_disabledSummaryTextUsed() {
+    public void getSummary_switchModeAndSettingsOff_defaultSummaryTextUsed() {
         MagnificationCapabilities.setCapabilities(mContext, MagnificationMode.ALL);
         Settings.Secure.putInt(mContext.getContentResolver(), ONE_FINGER_PANNING_KEY, OFF);
 
         mController.updateState(mSwitchPreference);
 
-        assertThat(mController.getSummary()).isEqualTo(disabledSummary());
+        assertThat(mController.getSummary().toString()).isEqualTo(defaultSummary());
     }
 
     @Test
-    public void getSummary_switchModeAndSettingsOn_enabledSummaryTextUsed() {
+    public void getSummary_switchModeAndSettingsOn_defaultSummaryTextUsed() {
         MagnificationCapabilities.setCapabilities(mContext, MagnificationMode.ALL);
         Settings.Secure.putInt(mContext.getContentResolver(), ONE_FINGER_PANNING_KEY, ON);
 
         mController.updateState(mSwitchPreference);
 
-        assertThat(mController.getSummary()).isEqualTo(enabledSummary());
+        assertThat(mController.getSummary().toString()).isEqualTo(defaultSummary());
     }
 
     @Test
@@ -158,7 +158,7 @@
 
         mController.updateState(mSwitchPreference);
 
-        assertThat(mController.getSummary()).isEqualTo(unavailableSummary());
+        assertThat(mController.getSummary().toString()).isEqualTo(unavailableSummary());
     }
 
     @Test
@@ -199,14 +199,9 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
-    private String enabledSummary() {
+    private String defaultSummary() {
         return mContext.getString(
-                R.string.accessibility_magnification_one_finger_panning_summary_on);
-    }
-
-    private String disabledSummary() {
-        return mContext.getString(
-                R.string.accessibility_magnification_one_finger_panning_summary_off);
+                R.string.accessibility_magnification_one_finger_panning_summary);
     }
 
     private String unavailableSummary() {
diff --git a/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java b/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java
index b4f4dc1..2a41e62 100644
--- a/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/RestrictedPreferenceHelperTest.java
@@ -31,9 +31,8 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
-import android.platform.test.annotations.RequiresFlagsEnabled;
-import android.platform.test.flag.junit.CheckFlagsRule;
-import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.test.core.app.ApplicationProvider;
@@ -83,8 +82,6 @@
 
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
-    @Rule
-    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
 
     @Test
     public void createAccessibilityServicePreferenceList_hasOneInfo_containsSameKey() {
@@ -100,7 +97,7 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+    @EnableFlags(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
             android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED})
     public void createAccessibilityServicePreferenceList_ecmRestricted_prefIsEcmRestricted() {
         ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs(
@@ -116,7 +113,7 @@
     }
 
     @Test
-    @RequiresFlagsEnabled(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+    @EnableFlags(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
             android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED})
     public void createAccessibilityServicePreferenceList_ecmNotRestricted_prefIsNotEcmRestricted() {
         ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs();
@@ -144,6 +141,40 @@
         assertThat(preference.getKey()).isEqualTo(key);
     }
 
+    @Test
+    @EnableFlags(value = {android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+            android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED})
+    @DisableFlags(Flags.FLAG_NEVER_RESTRICT_ACCESSIBILITY_ACTIVITY)
+    public void createAccessibilityActivityPreference_ecmRestricted_prefIsEcmRestricted() {
+        setMockAccessibilityShortcutInfo(mShortcutInfo);
+        ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs(PACKAGE_NAME);
+
+        final List<AccessibilityActivityPreference> preferenceList =
+                mHelper.createAccessibilityActivityPreferenceList(List.of(mShortcutInfo));
+        assertThat(preferenceList).hasSize(1);
+        final RestrictedPreference preference = preferenceList.get(0);
+
+        assertThat(preference.isDisabledByEcm()).isTrue();
+    }
+
+    @Test
+    @EnableFlags(value = {
+            android.security.Flags.FLAG_EXTEND_ECM_TO_ALL_SETTINGS,
+            android.permission.flags.Flags.FLAG_ENHANCED_CONFIRMATION_MODE_APIS_ENABLED,
+            Flags.FLAG_NEVER_RESTRICT_ACCESSIBILITY_ACTIVITY,
+    })
+    public void createAccessibilityActivityPreference_ecmRestricted_prefIsNotEcmRestricted() {
+        setMockAccessibilityShortcutInfo(mShortcutInfo);
+        ShadowRestrictedLockUtilsInternal.setEcmRestrictedPkgs(PACKAGE_NAME);
+
+        final List<AccessibilityActivityPreference> preferenceList =
+                mHelper.createAccessibilityActivityPreferenceList(List.of(mShortcutInfo));
+        assertThat(preferenceList).hasSize(1);
+        final RestrictedPreference preference = preferenceList.get(0);
+
+        assertThat(preference.isDisabledByEcm()).isFalse();
+    }
+
     private AccessibilityServiceInfo getMockAccessibilityServiceInfo(String packageName,
             String className) {
         final ApplicationInfo applicationInfo = new ApplicationInfo();
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
index f3fa69d..ea48253 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
@@ -37,10 +37,13 @@
 
 import android.content.Intent;
 import android.graphics.Color;
+import android.os.Bundle;
+import android.provider.Settings;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.testing.FragmentScenario;
 import androidx.lifecycle.Lifecycle;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.testutils.FakeTimer;
@@ -56,23 +59,26 @@
 
 import java.util.List;
 import java.util.Timer;
-import java.util.function.Consumer;
 
 @RunWith(RobolectricTestRunner.class)
 public class ScreenFlashNotificationColorDialogFragmentTest {
 
+    private static final int DEFAULT_COLOR = ROSE.mColorInt;
+
     private FragmentScenario<TestScreenFlashNotificationColorDialogFragment> mFragmentScenario;
     private ScreenFlashNotificationColorDialogFragment mDialogFragment;
     private AlertDialog mAlertDialog;
     private ColorSelectorLayout mColorSelectorLayout;
-    private int mCurrentColor;
 
     @Before
     public void setUp() {
-        mCurrentColor = ROSE.mColorInt;
+        Settings.System.putInt(ApplicationProvider.getApplicationContext().getContentResolver(),
+                Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, DEFAULT_COLOR);
+        Bundle fragmentArgs = new Bundle();
+        fragmentArgs.putInt(ScreenFlashNotificationColorDialogFragment.EXTRA_COLOR, DEFAULT_COLOR);
         mFragmentScenario = FragmentScenario.launch(
                 TestScreenFlashNotificationColorDialogFragment.class,
-                /* fragmentArgs= */ null,
+                fragmentArgs,
                 R.style.Theme_AlertDialog_SettingsLib,
                 Lifecycle.State.INITIALIZED);
         setupFragment();
@@ -99,7 +105,7 @@
         performClickOnDialog(BUTTON_NEUTRAL);
         getTimerFromFragment().runOneTask();
 
-        assertStartPreview(ROSE.mColorInt);
+        assertStartPreview(DEFAULT_COLOR);
     }
 
     @Test
@@ -168,20 +174,26 @@
     }
 
     @Test
-    public void clickColorAndClickNegative_assertColor() {
+    public void clickColorAndClickNegative_assertDefaultColor() {
         checkColorButton(AZURE);
         performClickOnDialog(BUTTON_NEGATIVE);
 
         assertThat(getTimerFromFragment()).isNull();
-        assertThat(mCurrentColor).isEqualTo(ROSE.mColorInt);
+        assertThat(Settings.System.getInt(
+                ApplicationProvider.getApplicationContext().getContentResolver(),
+                Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, AZURE.mColorInt)).isEqualTo(
+                DEFAULT_COLOR);
     }
 
     @Test
-    public void clickColorAndClickPositive_assertColor() {
+    public void clickColorAndClickPositive_assertSameColor() {
         checkColorButton(BLUE);
         performClickOnDialog(BUTTON_POSITIVE);
 
-        assertThat(mCurrentColor).isEqualTo(BLUE.mColorInt);
+        assertThat(Settings.System.getInt(
+                ApplicationProvider.getApplicationContext().getContentResolver(),
+                Settings.System.SCREEN_FLASH_NOTIFICATION_COLOR, DEFAULT_COLOR)).isEqualTo(
+                BLUE.mColorInt);
     }
 
     private void checkColorButton(ScreenFlashNotificationColor color) {
@@ -201,11 +213,6 @@
     }
 
     private void setupFragment() {
-        mFragmentScenario.onFragment(fragment -> {
-            ReflectionHelpers.setField(fragment, "mCurrentColor", mCurrentColor);
-            ReflectionHelpers.setField(fragment, "mConsumer",
-                    (Consumer<Integer>) selectedColor -> mCurrentColor = selectedColor);
-        });
         mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
 
         mFragmentScenario.onFragment(fragment -> {
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
index 95a9438..d7c1a0f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
@@ -57,8 +57,6 @@
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.Resetter;
 
-import java.util.function.Consumer;
-
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         ScreenFlashNotificationPreferenceControllerTest
@@ -83,7 +81,6 @@
     private FragmentManager mFragmentManager;
     @Mock
     private ScreenFlashNotificationColorDialogFragment mDialogFragment;
-
     private ScreenFlashNotificationPreferenceController mController;
     private ContentResolver mContentResolver;
 
@@ -92,6 +89,7 @@
         MockitoAnnotations.initMocks(this);
         FragmentActivity fragmentActivity = Robolectric.setupActivity(FragmentActivity.class);
         Context context = fragmentActivity.getApplicationContext();
+
         ShadowScreenFlashNotificationColorDialogFragment.setInstance(mDialogFragment);
         ShadowFlashNotificationsUtils.setColorDescriptionText(COLOR_DESCRIPTION_TEXT);
 
@@ -99,8 +97,9 @@
         mController = new ScreenFlashNotificationPreferenceController(context, PREFERENCE_KEY);
         when(mPreferenceScreen.findPreference(PREFERENCE_KEY)).thenReturn(mPreference);
         when(mPreference.getKey()).thenReturn(PREFERENCE_KEY);
-        mController.setParentFragment(mParentFragment);
         when(mParentFragment.getParentFragmentManager()).thenReturn(mFragmentManager);
+
+        mController.setParentFragment(mParentFragment);
     }
 
     @After
@@ -181,6 +180,7 @@
     @Test
     public void handlePreferenceTreeClick() {
         mController.handlePreferenceTreeClick(mPreference);
+
         verify(mDialogFragment).show(any(FragmentManager.class), anyString());
     }
 
@@ -194,7 +194,7 @@
 
         @Implementation
         protected static ScreenFlashNotificationColorDialogFragment getInstance(
-                int initialColor, Consumer<Integer> colorConsumer) {
+                int initialColor) {
             return sInstance;
         }
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
index 5522361..008f542 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
@@ -299,21 +299,6 @@
     }
 
     @Test
-    @DisableFlags(
-            com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN)
-    public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_showDialog()
-            throws Throwable {
-        setupServiceWarningRequired(false);
-        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
-
-        mFragment.onSettingsClicked(mFragment.mShortcutPreference);
-
-        assertThat(mFragment.mLastShownDialogId).isEqualTo(
-                AccessibilityDialogUtils.DialogEnums.EDIT_SHORTCUT);
-    }
-
-    @Test
-    @EnableFlags(com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN)
     public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_launchActivity()
             throws Throwable {
         setupServiceWarningRequired(false);
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java
index 850d1d79..a5bfec2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragmentTest.java
@@ -18,53 +18,34 @@
 
 import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
 import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
-import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_DEUTERANOMALY;
-import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_GRAYSCALE;
-import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_PROTANOMALY;
-import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_TRITANOMEALY;
 import static com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment.KEY_USE_SERVICE_PREFERENCE;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
 import android.app.settings.SettingsEnums;
-import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.platform.test.annotations.DisableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
 import android.view.accessibility.Flags;
 import android.widget.PopupWindow;
 
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
+import androidx.fragment.app.Fragment;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
-import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
+import com.android.settings.SettingsActivity;
 import com.android.settings.testutils.XmlTestUtils;
-import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.widget.SettingsMainSwitchPreference;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
+import org.robolectric.android.controller.ActivityController;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -72,89 +53,52 @@
 
 /** Tests for {@link ToggleDaltonizerPreferenceFragment} */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowFragment.class)
 public class ToggleDaltonizerPreferenceFragmentTest {
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private TestToggleDaltonizerPreferenceFragment mFragment;
-    private PreferenceScreen mScreen;
-    private SettingsMainSwitchPreference mSwitchPreference;
-
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private PreferenceManager mPreferenceManager;
-    @Mock
-    private SelectorWithWidgetPreference mMockDeuteranomalyPref;
-    @Mock
-    private SelectorWithWidgetPreference mMockProtanomalyPref;
-    @Mock
-    private SelectorWithWidgetPreference mMockTritanomalyPref;
-    @Mock
-    private SelectorWithWidgetPreference mMockGrayscalePref;
-    @Mock
-    private FragmentActivity mActivity;
+    private ActivityController<SettingsActivity> mActivityController;
 
     @Before
-    public void setUpTestFragment() {
-        MockitoAnnotations.initMocks(this);
+    public void setUp() {
+        Intent intent = new Intent();
+        intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT,
+                ToggleDaltonizerPreferenceFragment.class.getName());
+        intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, new Bundle());
 
-        mFragment = spy(new TestToggleDaltonizerPreferenceFragment(mContext));
-        when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
-        when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
-        when(mFragment.getContext()).thenReturn(mContext);
-        when(mFragment.getActivity()).thenReturn(mActivity);
-        when(mActivity.getContentResolver()).thenReturn(mContext.getContentResolver());
-
-        mScreen = spy(new PreferenceScreen(mContext, /* attrs= */ null));
-        when(mScreen.findPreference(KEY_USE_SERVICE_PREFERENCE))
-                .thenReturn(mFragment.mToggleServiceSwitchPreference);
-        when(mScreen.findPreference(KEY_DEUTERANOMALY)).thenReturn(mMockDeuteranomalyPref);
-        when(mMockDeuteranomalyPref.getKey()).thenReturn(KEY_DEUTERANOMALY);
-        when(mScreen.findPreference(KEY_PROTANOMALY)).thenReturn(mMockProtanomalyPref);
-        when(mMockProtanomalyPref.getKey()).thenReturn(KEY_PROTANOMALY);
-        when(mScreen.findPreference(KEY_TRITANOMEALY)).thenReturn(mMockTritanomalyPref);
-        when(mMockTritanomalyPref.getKey()).thenReturn(KEY_TRITANOMEALY);
-        when(mScreen.findPreference(KEY_GRAYSCALE)).thenReturn(mMockGrayscalePref);
-        when(mMockGrayscalePref.getKey()).thenReturn(KEY_GRAYSCALE);
-        when(mScreen.getPreferenceManager()).thenReturn(mPreferenceManager);
-        doReturn(mScreen).when(mFragment).getPreferenceScreen();
-
-        mSwitchPreference = mScreen.findPreference(KEY_USE_SERVICE_PREFERENCE);
+        mActivityController = ActivityController.of(new SettingsActivity(), intent);
     }
 
     @Test
     public void onResume_colorCorrectEnabled_shouldReturnTrue() {
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, ON);
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(Bundle.EMPTY);
 
-        mFragment.onResume();
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
 
-        assertThat(mSwitchPreference.isChecked()).isTrue();
+        SettingsMainSwitchPreference switchPreference = getMainFeatureToggle(fragment);
+        assertThat(switchPreference.isChecked()).isTrue();
     }
 
     @Test
     public void onResume_colorCorrectDisabled_shouldReturnFalse() {
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, OFF);
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(Bundle.EMPTY);
 
-        mFragment.onResume();
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
 
-        assertThat(mSwitchPreference.isChecked()).isFalse();
+        SettingsMainSwitchPreference switchPreference = getMainFeatureToggle(fragment);
+        assertThat(switchPreference.isChecked()).isFalse();
     }
 
     @Test
     public void onResume_colorCorrectEnabled_switchPreferenceChecked_notShowTooltips() {
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, ON);
-        mSwitchPreference.setChecked(true);
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(Bundle.EMPTY);
 
-        mFragment.onResume();
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
+        SettingsMainSwitchPreference switchPreference = getMainFeatureToggle(fragment);
+        assertThat(switchPreference.isChecked()).isTrue();
 
         assertThat(getLatestPopupWindow()).isNull();
     }
@@ -164,12 +108,10 @@
     public void onPreferenceToggled_colorCorrectDisabled_shouldReturnTrueAndShowTooltipView() {
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, OFF);
-        mSwitchPreference.setChecked(false);
-        mFragment.onAttach(mContext);
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
-        mFragment.onViewCreated(mFragment.getView(), Bundle.EMPTY);
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
+        SettingsMainSwitchPreference switchPreference = getMainFeatureToggle(fragment);
 
-        mFragment.onPreferenceToggled(mSwitchPreference.getKey(), true);
+        fragment.onPreferenceToggled(switchPreference.getKey(), true);
 
         final boolean isEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, OFF) == ON;
@@ -182,11 +124,10 @@
     public void onPreferenceToggled_colorCorrectEnabled_shouldReturnFalseAndNotShowTooltipView() {
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, ON);
-        mSwitchPreference.setChecked(true);
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(Bundle.EMPTY);
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
+        SettingsMainSwitchPreference switchPreference = getMainFeatureToggle(fragment);
 
-        mFragment.onPreferenceToggled(mSwitchPreference.getKey(), false);
+        fragment.onPreferenceToggled(switchPreference.getKey(), false);
 
         final boolean isEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, OFF) == ON;
@@ -196,19 +137,25 @@
 
     @Test
     public void getMetricsCategory_returnsCorrectCategory() {
-        assertThat(mFragment.getMetricsCategory()).isEqualTo(
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
+
+        assertThat(fragment.getMetricsCategory()).isEqualTo(
                 SettingsEnums.ACCESSIBILITY_TOGGLE_DALTONIZER);
     }
 
     @Test
     public void getPreferenceScreenResId_returnsCorrectXml() {
-        assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
+
+        assertThat(fragment.getPreferenceScreenResId()).isEqualTo(
                 R.xml.accessibility_daltonizer_settings);
     }
 
     @Test
     public void getHelpResource_returnsCorrectHelpResource() {
-        assertThat(mFragment.getHelpResource()).isEqualTo(R.string.help_url_color_correction);
+        ToggleDaltonizerPreferenceFragment fragment = getFragmentInResumedState();
+
+        assertThat(fragment.getHelpResource()).isEqualTo(R.string.help_url_color_correction);
     }
 
     @Test
@@ -228,55 +175,20 @@
         return shadowApplication.getLatestPopupWindow();
     }
 
-    private static class TestToggleDaltonizerPreferenceFragment extends
-            ToggleDaltonizerPreferenceFragment {
-        private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
-        private static final String PLACEHOLDER_CLASS_NAME =
-                PLACEHOLDER_PACKAGE_NAME + ".placeholder";
-        private static final ComponentName PLACEHOLDER_COMPONENT_NAME = new ComponentName(
-                PLACEHOLDER_PACKAGE_NAME, PLACEHOLDER_CLASS_NAME);
-        private static final String PLACEHOLDER_TILE_TOOLTIP_CONTENT =
-                PLACEHOLDER_PACKAGE_NAME + "tooltip_content";
+    private ToggleDaltonizerPreferenceFragment getFragmentInResumedState() {
 
-        TestToggleDaltonizerPreferenceFragment(Context context) {
-            super();
-            mComponentName = PLACEHOLDER_COMPONENT_NAME;
-            final SettingsMainSwitchPreference switchPreference =
-                    new SettingsMainSwitchPreference(context);
-            switchPreference.setKey(KEY_USE_SERVICE_PREFERENCE);
-            mToggleServiceSwitchPreference = switchPreference;
-            setArguments(new Bundle());
-        }
+        mActivityController.create().start().resume();
+        Fragment fragment = mActivityController.get().getSupportFragmentManager().findFragmentById(
+                R.id.main_content);
 
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            // do nothing
-        }
+        assertThat(fragment).isNotNull();
+        assertThat(fragment).isInstanceOf(ToggleDaltonizerPreferenceFragment.class);
 
-        @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            return mock(View.class);
-        }
+        return (ToggleDaltonizerPreferenceFragment) fragment;
+    }
 
-        @Override
-        protected void updateShortcutPreference() {
-            // UI related function, do nothing in tests
-        }
-
-        @Override
-        ComponentName getTileComponentName() {
-            return PLACEHOLDER_COMPONENT_NAME;
-        }
-
-        @Override
-        protected CharSequence getTileTooltipContent(@QuickSettingsTooltipType int type) {
-            return PLACEHOLDER_TILE_TOOLTIP_CONTENT;
-        }
-
-        @Override
-        public View getView() {
-            return mock(View.class);
-        }
+    private SettingsMainSwitchPreference getMainFeatureToggle(
+            ToggleDaltonizerPreferenceFragment fragment) {
+        return fragment.findPreference(KEY_USE_SERVICE_PREFERENCE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index af94723..71855e0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -16,7 +16,9 @@
 
 package com.android.settings.accessibility;
 
-import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_USER_SHORTCUT_TYPE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -32,7 +34,6 @@
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.icu.text.CaseMap;
@@ -44,10 +45,8 @@
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.CheckBox;
 import android.widget.PopupWindow;
 
-import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
@@ -55,9 +54,7 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
-import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settingslib.widget.TopIntroPreference;
@@ -76,7 +73,6 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowLooper;
 
 import java.util.Locale;
 
@@ -204,7 +200,7 @@
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 mFragment.mComponentName.flattenToString());
         // Compare to default UserShortcutType
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
+        assertThat(expectedType).isEqualTo(SOFTWARE);
     }
 
     @Test
@@ -219,104 +215,21 @@
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 mFragment.mComponentName.flattenToString());
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+        assertThat(expectedType).isEqualTo(SOFTWARE | HARDWARE);
     }
 
     @Test
     public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
         mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
         final PreferredShortcut hardwareShortcut = new PreferredShortcut(
-                PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
+                PLACEHOLDER_COMPONENT_NAME.flattenToString(), HARDWARE);
 
         putUserShortcutTypeIntoSharedPreference(mContext, hardwareShortcut);
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 mFragment.mComponentName.flattenToString());
-        assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
-    }
-
-    @Test
-    public void dialogCheckboxClicked_hardwareType_skipTimeoutRestriction() {
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
-        mFragment.mShortcutPreference = shortcutPreference;
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
-                mFragment::callOnAlertDialogCheckboxClicked);
-        mFragment.setupEditShortcutDialog(dialog);
-
-        final View dialogHardwareView = dialog.findViewById(R.id.hardware_shortcut);
-        final CheckBox hardwareTypeCheckBox = dialogHardwareView.findViewById(R.id.checkbox);
-        hardwareTypeCheckBox.setChecked(true);
-        dialog.getButton(DialogInterface.BUTTON_POSITIVE).callOnClick();
-        ShadowLooper.idleMainLooper();
-        final boolean skipTimeoutRestriction = Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.SKIP_ACCESSIBILITY_SHORTCUT_DIALOG_TIMEOUT_RESTRICTION, 0) != 0;
-
-        assertThat(skipTimeoutRestriction).isTrue();
-    }
-
-    @Test
-    public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
-        mFragment.mShortcutPreference = shortcutPreference;
-
-        mFragment.mShortcutPreference.setChecked(false);
-        mFragment.setupEditShortcutDialog(dialog);
-
-        final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
-        assertThat(checkboxValue).isEqualTo(UserShortcutType.EMPTY);
-    }
-
-    @Test
-    public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        final PreferredShortcut hardwareShortcut = new PreferredShortcut(
-                PLACEHOLDER_COMPONENT_NAME.flattenToString(), UserShortcutType.HARDWARE);
-        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
-        mFragment.mShortcutPreference = shortcutPreference;
-
-        PreferredShortcuts.saveUserShortcutType(mContext, hardwareShortcut);
-        mFragment.mShortcutPreference.setChecked(true);
-        mFragment.setupEditShortcutDialog(dialog);
-
-        final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
-        assertThat(checkboxValue).isEqualTo(UserShortcutType.HARDWARE);
-    }
-
-    @Test
-    @Config(shadows = ShadowFragment.class)
-    public void restoreValueFromSavedInstanceState_assignShortcutTypeToVariable() {
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, DialogType.EDIT_SHORTCUT_GENERIC, PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final Bundle savedInstanceState = new Bundle();
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        mFragment.mComponentName = PLACEHOLDER_COMPONENT_NAME;
-        mFragment.mShortcutPreference = shortcutPreference;
-
-        savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE,
-                UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
-        mFragment.onCreate(savedInstanceState);
-        mFragment.setupEditShortcutDialog(dialog);
-        final int value = mFragment.getShortcutTypeCheckBoxValue();
-        mFragment.saveNonEmptyUserShortcutType(value);
-
-        final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.mComponentName.flattenToString());
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
+        assertThat(expectedType).isEqualTo(HARDWARE);
     }
 
     @Test
@@ -470,7 +383,7 @@
     public void getShortcutTypeSummary_shortcutSummaryIsCorrectlySet() {
         final PreferredShortcut userPreferredShortcut = new PreferredShortcut(
                 PLACEHOLDER_COMPONENT_NAME.flattenToString(),
-                UserShortcutType.HARDWARE | UserShortcutType.QUICK_SETTINGS);
+                HARDWARE | QUICK_SETTINGS);
         putUserShortcutTypeIntoSharedPreference(mContext, userPreferredShortcut);
         final ShortcutPreference shortcutPreference =
                 new ShortcutPreference(mContext, /* attrs= */ null);
@@ -502,9 +415,6 @@
             PreferredShortcut shortcut) {
         PreferredShortcuts.saveUserShortcutType(context, shortcut);
     }
-
-    private void callEmptyOnClicked(DialogInterface dialog, int which) {}
-
     private static PopupWindow getLatestPopupWindow() {
         final ShadowApplication shadowApplication =
                 Shadow.extract(ApplicationProvider.getApplicationContext());
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
index ab2e9d1..22bb266 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
@@ -16,14 +16,18 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.HARDWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.QUICK_SETTINGS;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TRIPLETAP;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.TWOFINGER_DOUBLETAP;
 import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
 import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
-import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
-import static com.android.settings.accessibility.ToggleFeaturePreferenceFragment.KEY_SAVED_USER_SHORTCUT_TYPE;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -36,7 +40,6 @@
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.database.ContentObserver;
@@ -51,7 +54,6 @@
 import android.provider.Settings;
 import android.view.accessibility.AccessibilityManager;
 
-import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.TwoStatePreference;
 import androidx.test.core.app.ApplicationProvider;
@@ -60,7 +62,6 @@
 import com.android.settings.DialogCreatable;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
-import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
 import com.android.settings.testutils.AccessibilityTestUtils;
 import com.android.settings.testutils.shadow.ShadowDeviceConfig;
 import com.android.settings.testutils.shadow.ShadowStorageManager;
@@ -394,11 +395,45 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_ONE_FINGER_PANNING_GESTURE)
+    public void onResume_oneFingerPanningFlagOn_registerToSpecificUri() {
+        ShadowContentResolver shadowContentResolver = Shadows.shadowOf(
+                mContext.getContentResolver());
+        Uri observedUri = Settings.Secure.getUriFor(
+                Settings.Secure.ACCESSIBILITY_SINGLE_FINGER_PANNING_ENABLED);
+        // verify no one finger panning settings observer registered before launching the fragment
+        assertThat(shadowContentResolver.getContentObservers(observedUri)).isEmpty();
+
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
+
+        Collection<ContentObserver> observers =
+                shadowContentResolver.getContentObservers(observedUri);
+        assertThat(observers.size()).isEqualTo(1);
+        assertThat(observers.stream().findFirst().get()).isInstanceOf(
+                AccessibilitySettingsContentObserver.class);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_ONE_FINGER_PANNING_GESTURE)
+    public void onResume_oneFingerPanningFlagOff_notRegisterToSpecificUri() {
+        ShadowContentResolver shadowContentResolver = Shadows.shadowOf(
+                mContext.getContentResolver());
+        Uri observedUri = Settings.Secure.getUriFor(
+                Settings.Secure.ACCESSIBILITY_SINGLE_FINGER_PANNING_ENABLED);
+        // verify no one finger panning settings observer registered before launching the fragment
+        assertThat(shadowContentResolver.getContentObservers(observedUri)).isEmpty();
+
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
+        // verify no one finger panning settings observer registered after launching the fragment
+        assertThat(shadowContentResolver.getContentObservers(observedUri)).isEmpty();
+    }
+
+    @Test
     public void hasValueInSettings_putValue_hasValue() {
         setMagnificationTripleTapEnabled(/* enabled= */ true);
 
         assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
-                mContext, UserShortcutType.TRIPLETAP)).isTrue();
+                mContext, TRIPLETAP)).isTrue();
     }
 
     @Test
@@ -408,7 +443,7 @@
                 mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
 
         assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
-                mContext, UserShortcutType.TWOFINGER_DOUBLETAP)).isTrue();
+                mContext, TWOFINGER_DOUBLETAP)).isTrue();
     }
 
     @Test
@@ -418,13 +453,13 @@
                 mContext.getContentResolver(), TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, OFF);
 
         assertThat(ToggleScreenMagnificationPreferenceFragment.hasMagnificationValuesInSettings(
-                mContext, UserShortcutType.TWOFINGER_DOUBLETAP)).isFalse();
+                mContext, TWOFINGER_DOUBLETAP)).isFalse();
     }
 
     @Test
     @DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optInAllValuesToSettings_optInValue_haveMatchString() {
-        int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP;
+        int shortcutTypes = SOFTWARE | TRIPLETAP;
 
         ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
                 shortcutTypes);
@@ -438,24 +473,24 @@
     @EnableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optInAllValuesToSettings_optInValue_callA11yManager() {
         int shortcutTypes =
-                UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP | UserShortcutType.HARDWARE
-                        | UserShortcutType.QUICK_SETTINGS;
+                SOFTWARE | TRIPLETAP | HARDWARE
+                        | QUICK_SETTINGS;
         Set<String> shortcutTargets = Set.of(MAGNIFICATION_CONTROLLER_NAME);
 
         ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
                 shortcutTypes);
 
         verify(mAccessibilityManager).enableShortcutsForTargets(
-                /* enable= */ true, UserShortcutType.SOFTWARE,
+                /* enable= */ true, SOFTWARE,
                 shortcutTargets, UserHandle.myUserId());
         verify(mAccessibilityManager).enableShortcutsForTargets(
-                /* enable= */ true, UserShortcutType.HARDWARE,
+                /* enable= */ true, HARDWARE,
                 shortcutTargets, UserHandle.myUserId());
         verify(mAccessibilityManager).enableShortcutsForTargets(
-                /* enable= */ true, UserShortcutType.QUICK_SETTINGS,
+                /* enable= */ true, QUICK_SETTINGS,
                 shortcutTargets, UserHandle.myUserId());
         verify(mAccessibilityManager).enableShortcutsForTargets(
-                /* enable= */ true, UserShortcutType.TRIPLETAP,
+                /* enable= */ true, TRIPLETAP,
                 shortcutTargets, UserHandle.myUserId());
         verifyNoMoreInteractions(mAccessibilityManager);
     }
@@ -464,7 +499,7 @@
     @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
     @DisableFlags(android.view.accessibility.Flags.FLAG_A11Y_QS_SHORTCUT)
     public void optInAllValuesToSettings_twoFingerTripleTap_haveMatchString() {
-        int shortcutTypes = UserShortcutType.TWOFINGER_DOUBLETAP;
+        int shortcutTypes = TWOFINGER_DOUBLETAP;
 
         ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
                 shortcutTypes);
@@ -479,7 +514,7 @@
         putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, PLACEHOLDER_COMPONENT_NAME.flattenToString());
 
         ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
-                UserShortcutType.SOFTWARE);
+                SOFTWARE);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
                 PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
@@ -491,7 +526,7 @@
         ShadowSettings.ShadowSecure.reset();
 
         ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
-                UserShortcutType.SOFTWARE);
+                SOFTWARE);
 
         assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
@@ -508,7 +543,7 @@
 
             ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
                     mContext,
-                    UserShortcutType.SOFTWARE);
+                    SOFTWARE);
 
             assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                     Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
@@ -527,7 +562,7 @@
 
             ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
                     mContext,
-                    UserShortcutType.HARDWARE);
+                    HARDWARE);
 
             assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                     Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
@@ -545,7 +580,7 @@
 
             ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
                     mContext,
-                    UserShortcutType.TRIPLETAP);
+                    TRIPLETAP);
 
             assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                     Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
@@ -560,7 +595,7 @@
         putStringIntoSettings(HARDWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
         setMagnificationTripleTapEnabled(/* enabled= */ true);
         int shortcutTypes =
-                UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP;
+                SOFTWARE | HARDWARE | TRIPLETAP;
 
         ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
                 mContext, shortcutTypes);
@@ -578,19 +613,19 @@
         putStringIntoSettings(HARDWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
         setMagnificationTripleTapEnabled(/* enabled= */ true);
         int shortcutTypes =
-                UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP;
+                SOFTWARE | HARDWARE | TRIPLETAP;
 
         ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
                 mContext, shortcutTypes);
 
         verify(mAccessibilityManager).enableShortcutsForTargets(
-                /* enable= */ false, UserShortcutType.SOFTWARE,
+                /* enable= */ false, SOFTWARE,
                 shortcutTargets, UserHandle.myUserId());
         verify(mAccessibilityManager).enableShortcutsForTargets(
-                /* enable= */ false, UserShortcutType.HARDWARE,
+                /* enable= */ false, HARDWARE,
                 shortcutTargets, UserHandle.myUserId());
         verify(mAccessibilityManager).enableShortcutsForTargets(
-                /* enable= */ false, UserShortcutType.TRIPLETAP,
+                /* enable= */ false, TRIPLETAP,
                 shortcutTargets, UserHandle.myUserId());
         verifyNoMoreInteractions(mAccessibilityManager);
     }
@@ -603,7 +638,7 @@
                 TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON);
 
         ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
-                mContext, UserShortcutType.TWOFINGER_DOUBLETAP);
+                mContext, TWOFINGER_DOUBLETAP);
 
         assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                 TWO_FINGER_TRIPLE_TAP_SHORTCUT_KEY, ON)).isEqualTo(OFF);
@@ -616,7 +651,7 @@
                 PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
         putStringIntoSettings(HARDWARE_SHORTCUT_KEY,
                 PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
-        int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE;
+        int shortcutTypes = SOFTWARE | HARDWARE;
 
         ToggleScreenMagnificationPreferenceFragment.optOutAllMagnificationValuesFromSettings(
                 mContext, shortcutTypes);
@@ -636,7 +671,7 @@
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 MAGNIFICATION_CONTROLLER_NAME);
         // Compare to default UserShortcutType
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
+        assertThat(expectedType).isEqualTo(SOFTWARE);
     }
 
     @Test
@@ -649,13 +684,13 @@
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 MAGNIFICATION_CONTROLLER_NAME);
-        assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP);
+        assertThat(expectedType).isEqualTo(SOFTWARE | TRIPLETAP);
     }
 
     @Test
     public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
         final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
+                MAGNIFICATION_CONTROLLER_NAME, TRIPLETAP);
         putUserShortcutTypeIntoSharedPreference(mContext, tripleTapShortcut);
         mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
@@ -663,7 +698,7 @@
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 MAGNIFICATION_CONTROLLER_NAME);
-        assertThat(expectedType).isEqualTo(UserShortcutType.TRIPLETAP);
+        assertThat(expectedType).isEqualTo(TRIPLETAP);
     }
 
     @Test
@@ -677,14 +712,14 @@
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 MAGNIFICATION_CONTROLLER_NAME);
-        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
+        assertThat(expectedType).isEqualTo(TWOFINGER_DOUBLETAP);
     }
 
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
     public void updateShortcutPreferenceData_hasTwoFingerTripleTapInSharedPref_assignToVariable() {
         final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TWOFINGER_DOUBLETAP);
+                MAGNIFICATION_CONTROLLER_NAME, TWOFINGER_DOUBLETAP);
         putUserShortcutTypeIntoSharedPreference(mContext, tripleTapShortcut);
         mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
@@ -692,106 +727,7 @@
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
                 MAGNIFICATION_CONTROLLER_NAME);
-        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
-    }
-
-    @Test
-    public void setupMagnificationEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
-        ToggleScreenMagnificationPreferenceFragment fragment =
-                mFragController.create(R.id.main_content, /* bundle= */
-                        null).start().resume().get();
-        fragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */ null);
-
-        fragment.mShortcutPreference.setChecked(false);
-        fragment.setupMagnificationEditShortcutDialog(
-                createEditShortcutDialog(fragment.getActivity()));
-
-        final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
-        assertThat(checkboxValue).isEqualTo(UserShortcutType.EMPTY);
-    }
-
-    @Test
-    public void setupMagnificationEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
-        ToggleScreenMagnificationPreferenceFragment fragment =
-                mFragController.create(R.id.main_content, /* bundle= */
-                        null).start().resume().get();
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        final PreferredShortcut tripletapShortcut = new PreferredShortcut(
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
-        fragment.mShortcutPreference = shortcutPreference;
-
-        PreferredShortcuts.saveUserShortcutType(mContext, tripletapShortcut);
-        fragment.mShortcutPreference.setChecked(true);
-        fragment.setupMagnificationEditShortcutDialog(
-                createEditShortcutDialog(fragment.getActivity()));
-
-        final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
-        assertThat(checkboxValue).isEqualTo(UserShortcutType.TRIPLETAP);
-    }
-
-    @Test
-    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
-    public void setupMagnificationEditShortcutDialog_twoFingerTripleTapOn_checkboxIsSavedValue() {
-        ToggleScreenMagnificationPreferenceFragment fragment =
-                mFragController.create(R.id.main_content, /* bundle= */
-                        null).start().resume().get();
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        final PreferredShortcut twoFingerTripleTapShortcut = new PreferredShortcut(
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TWOFINGER_DOUBLETAP);
-        fragment.mShortcutPreference = shortcutPreference;
-
-        PreferredShortcuts.saveUserShortcutType(mContext, twoFingerTripleTapShortcut);
-        fragment.mShortcutPreference.setChecked(true);
-        fragment.setupMagnificationEditShortcutDialog(
-                createEditShortcutDialog(fragment.getActivity()));
-
-        final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
-        assertThat(checkboxValue).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
-    }
-
-    @Test
-    public void restoreValueFromSavedInstanceState_assignToVariable() {
-        final Bundle fragmentState = createFragmentSavedInstanceState(
-                UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP);
-        ToggleScreenMagnificationPreferenceFragment fragment = mFragController.get();
-        // Had to use reflection to pass the savedInstanceState when launching the fragment
-        ReflectionHelpers.setField(fragment, "mSavedFragmentState", fragmentState);
-
-        FragmentController.of(fragment, SettingsActivity.class).create(
-                R.id.main_content, /* bundle= */ null).start().resume().get();
-        fragment.setupMagnificationEditShortcutDialog(
-                createEditShortcutDialog(fragment.getActivity()));
-        final int value = fragment.getShortcutTypeCheckBoxValue();
-        fragment.saveNonEmptyUserShortcutType(value);
-
-        final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                MAGNIFICATION_CONTROLLER_NAME);
-        assertThat(value).isEqualTo(6);
-        assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP);
-    }
-
-    @Test
-    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
-    public void restoreValueFromSavedInstanceState_twoFingerTripleTap_assignToVariable() {
-        final Bundle fragmentState =
-                createFragmentSavedInstanceState(UserShortcutType.TWOFINGER_DOUBLETAP);
-        ToggleScreenMagnificationPreferenceFragment fragment = mFragController.get();
-        // Had to use reflection to pass the savedInstanceState when launching the fragment
-        ReflectionHelpers.setField(fragment, "mSavedFragmentState", fragmentState);
-
-        FragmentController.of(fragment, SettingsActivity.class).create(
-                R.id.main_content, /* bundle= */ null).start().resume().get();
-        fragment.setupMagnificationEditShortcutDialog(
-                createEditShortcutDialog(fragment.getActivity()));
-        final int value = fragment.getShortcutTypeCheckBoxValue();
-        fragment.saveNonEmptyUserShortcutType(value);
-
-        final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                MAGNIFICATION_CONTROLLER_NAME);
-        assertThat(value).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
-        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGER_DOUBLETAP);
+        assertThat(expectedType).isEqualTo(TWOFINGER_DOUBLETAP);
     }
 
     @Test
@@ -934,7 +870,9 @@
     }
 
     @Test
-    public void onProcessArguments_defaultArgumentUnavailable_shouldSetDefaultArguments() {
+    @DisableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_ONE_FINGER_PANNING_GESTURE)
+    public void
+            onProcessArguments_defaultArgumentUnavailableAndFlagOff_shouldSetDefaultArguments() {
         ToggleScreenMagnificationPreferenceFragment fragment =
                 mFragController.create(
                         R.id.main_content, /* bundle= */ null).start().resume().get();
@@ -948,13 +886,41 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_ENABLE_MAGNIFICATION_ONE_FINGER_PANNING_GESTURE)
+    public void
+            onProcessArguments_defaultArgumentUnavailableAndFlagOn_shouldSetDefaultArguments() {
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(
+                        R.id.main_content, /* bundle= */ null).start().resume().get();
+        Bundle arguments = new Bundle();
+
+        fragment.onProcessArguments(arguments);
+
+        assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_PREFERENCE_KEY));
+        assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_INTRO));
+        // If OneFingerPanning flag is on, the EXTRA_HTML_DESCRIPTION should not be set. The html
+        // description would be decided dynamically based on the OneFingerPanning preference state.
+        assertFalse(arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION));
+    }
+
+    @Test
+    public void getCurrentHtmlDescription_shouldNotBeEmpty() {
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(
+                        R.id.main_content, /* bundle= */ null).start().resume().get();
+        assertThat(fragment.getCurrentHtmlDescription().toString()).isNotEmpty();
+    }
+
+    @Test
     public void getSummary_magnificationEnabled_returnShortcutOnWithSummary() {
         setMagnificationTripleTapEnabled(true);
 
         assertThat(
                 ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
                 .isEqualTo(
-                        mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(
+                                com.android.settingslib.R.string
+                                        .preference_summary_default_combination,
                                 mContext.getText(R.string.accessibility_summary_shortcut_enabled),
                                 mContext.getText(R.string.magnification_feature_summary)));
     }
@@ -966,7 +932,9 @@
         assertThat(
                 ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
                 .isEqualTo(
-                        mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(
+                                com.android.settingslib.R.string
+                                        .preference_summary_default_combination,
                                 mContext.getText(
                                         R.string.generic_accessibility_feature_shortcut_off),
                                 mContext.getText(R.string.magnification_feature_summary)));
@@ -981,7 +949,9 @@
         assertThat(
                 ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
                 .isEqualTo(
-                        mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(
+                                com.android.settingslib.R.string
+                                        .preference_summary_default_combination,
                                 mContext.getText(R.string.accessibility_summary_shortcut_enabled),
                                 mContext.getText(R.string.magnification_feature_summary)));
     }
@@ -995,7 +965,9 @@
         assertThat(
                 ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
                 .isEqualTo(
-                        mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(
+                                com.android.settingslib.R.string
+                                        .preference_summary_default_combination,
                                 mContext.getText(
                                         R.string.generic_accessibility_feature_shortcut_off),
                                 mContext.getText(R.string.magnification_feature_summary)));
@@ -1006,7 +978,7 @@
     public void getShortcutTypeSummary_shortcutSummaryIsCorrectlySet() {
         final PreferredShortcut userPreferredShortcut = new PreferredShortcut(
                 MAGNIFICATION_CONTROLLER_NAME,
-                UserShortcutType.HARDWARE | UserShortcutType.QUICK_SETTINGS);
+                HARDWARE | QUICK_SETTINGS);
         putUserShortcutTypeIntoSharedPreference(mContext, userPreferredShortcut);
         final ShortcutPreference shortcutPreference =
                 new ShortcutPreference(mContext, /* attrs= */ null);
@@ -1091,9 +1063,6 @@
                 == ON;
     }
 
-    private void callEmptyOnClicked(DialogInterface dialog, int which) {
-    }
-
     private void setWindowMagnificationSupported(boolean magnificationAreaSupported,
             boolean windowMagnificationSupported) {
         when(mSpyResources.getBoolean(
@@ -1103,24 +1072,6 @@
                 windowMagnificationSupported);
     }
 
-    private AlertDialog createEditShortcutDialog(Context context) {
-        context.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
-        return AccessibilityDialogUtils.showEditShortcutDialog(
-                context,
-                DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-    }
-
-    private Bundle createFragmentSavedInstanceState(int userShortcutType) {
-        final Bundle savedInstanceState = new Bundle();
-        savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, userShortcutType);
-        final Bundle fragmentState = new Bundle();
-        fragmentState.putBundle(
-                /* FragmentStateManager.SAVED_INSTANCE_STATE_KEY */ "savedInstanceState",
-                savedInstanceState);
-        return fragmentState;
-    }
-
     /**
      * A test fragment that provides a way to change the context
      */
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
index 20f5d5d..0952b09 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
@@ -16,37 +16,46 @@
 
 package com.android.settings.accessibility.shortcuts;
 
-import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
-import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE;
-
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.spy;
+
 import android.content.ComponentName;
 import android.content.Context;
-import android.provider.Settings;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Flags;
 
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.testutils.AccessibilityTestUtils;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 import java.util.Set;
 
 /**
  * Tests for {@link FloatingButtonShortcutOptionController}
  */
+@Config(shadows = SettingsShadowResources.class)
 @RunWith(RobolectricTestRunner.class)
 public class FloatingButtonShortcutOptionControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private static final String PREF_KEY = "prefKey";
     private static final String TARGET =
             new ComponentName("FakePackage", "FakeClass").flattenToString();
-    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private final Context mContext = spy(ApplicationProvider.getApplicationContext());
     private FloatingButtonShortcutOptionController mController;
     private ShortcutOptionPreference mShortcutOptionPreference;
 
@@ -61,7 +70,6 @@
         mShortcutOptionPreference.setKey(PREF_KEY);
         mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
         mPreferenceScreen.addPreference(mShortcutOptionPreference);
-        setFloatingButtonEnabled(true);
     }
 
     @Test
@@ -95,23 +103,26 @@
 
     @Test
     public void isShortcutAvailable_floatingMenuEnabled_returnTrue() {
-        setFloatingButtonEnabled(true);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
 
         assertThat(mController.isShortcutAvailable()).isTrue();
     }
 
     @Test
     public void isShortcutAvailable_floatingMenuDisabled_returnFalse() {
-        setFloatingButtonEnabled(false);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
 
         assertThat(mController.isShortcutAvailable()).isFalse();
     }
 
-    private void setFloatingButtonEnabled(boolean enable) {
-        int mode = enable
-                ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : ACCESSIBILITY_BUTTON_MODE_GESTURE;
+    @Test
+    @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+    public void isShortcutAvailable_gestureNavigationMode_returnsTrue() {
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
 
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
+        assertThat(mController.isShortcutAvailable()).isTrue();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
index 0149cc3..1d46cae 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.accessibility.shortcuts;
 
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.GESTURE;
+import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
 import static com.android.settings.testutils.AccessibilityTestUtils.setupMockAccessibilityManager;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -25,6 +27,10 @@
 
 import android.content.ComponentName;
 import android.content.Context;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Flags;
 import android.view.accessibility.AccessibilityManager;
 
 import androidx.preference.PreferenceManager;
@@ -37,6 +43,7 @@
 import com.android.settingslib.utils.StringUtil;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -50,6 +57,8 @@
 @Config(shadows = SettingsShadowResources.class)
 @RunWith(RobolectricTestRunner.class)
 public class GestureShortcutOptionControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     private static final String PREF_KEY = "prefKey";
     private static final String TARGET =
             new ComponentName("FakePackage", "FakeClass").flattenToString();
@@ -137,6 +146,18 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+    public void getSummary_standaloneGestureFlagOn_verifyNoCustomizeA11yButtonTest() {
+        enableTouchExploration(true);
+        String expected = StringUtil.getIcuPluralsString(
+                mContext,
+                /* count= */ 3,
+                R.string.accessibility_shortcut_edit_dialog_summary_gesture);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
     public void isShortcutAvailable_inSuw_returnFalse() {
         mController.setInSetupWizard(true);
 
@@ -144,6 +165,7 @@
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
     public void isShortcutAvailable_notInSuwUseGestureNavSystemUseFab_returnFalse() {
         mController.setInSetupWizard(false);
         AccessibilityTestUtils.setSoftwareShortcutMode(
@@ -179,6 +201,28 @@
         assertThat(mController.isShortcutAvailable()).isFalse();
     }
 
+    @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+    @Test
+    public void isShortcutAvailable_floatingMenuEnabled_gestureNavEnabled_returnsTrue() {
+        mController.setInSetupWizard(false);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ true);
+
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+
+    @EnableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+    @Test
+    public void getShortcutType_gesture() {
+        assertThat(mController.getShortcutType()).isEqualTo(GESTURE);
+    }
+
+    @DisableFlags(Flags.FLAG_A11Y_STANDALONE_GESTURE_ENABLED)
+    @Test
+    public void getShortcutType_software() {
+        assertThat(mController.getShortcutType()).isEqualTo(SOFTWARE);
+    }
+
     private void enableTouchExploration(boolean enable) {
         AccessibilityManager am = setupMockAccessibilityManager(mContext);
         when(am.isTouchExplorationEnabled()).thenReturn(enable);
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
index 954c72d..17d416f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
@@ -62,7 +62,7 @@
     @Test
     public void bindViewHolder_imageResIdSet_shouldShowImageView() {
         mShortcutOptionPreference.setIntroImageResId(
-                R.drawable.accessibility_shortcut_type_hardware);
+                R.drawable.accessibility_shortcut_type_volume_keys);
 
         mShortcutOptionPreference.onBindViewHolder(mViewHolder);
 
diff --git a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
index a0ef57f..b4605c7 100644
--- a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
@@ -24,19 +24,26 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.content.Intent;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
 import android.hardware.face.FaceManager;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.AndroidRuntimeException;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -55,6 +62,7 @@
 import com.android.settings.biometrics.face.FaceStatusPreferenceController;
 import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController;
 import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmDeviceCredentialActivity;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.testutils.shadow.ShadowSettingsPreferenceFragment;
@@ -90,6 +98,8 @@
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     @Captor
     private ArgumentCaptor<Preference> mPreferenceCaptor;
     @Mock
@@ -102,6 +112,8 @@
     private FaceStatusPreferenceController mFaceStatusPreferenceController;
     @Mock
     private FaceManager mFaceManager;
+    @Mock
+    private BiometricManager mBiometricManager;
 
     @Before
     public void setUp() {
@@ -114,6 +126,10 @@
         mContext = spy(ApplicationProvider.getApplicationContext());
         mFragment = spy(new TestCombinedBiometricProfileSettings(mContext));
         doReturn(mActivity).when(mFragment).getActivity();
+        doReturn(mBiometricManager).when(mActivity).getSystemService(BiometricManager.class);
+        when(mBiometricManager.canAuthenticate(anyInt(),
+                eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_MANDATORY_NOT_ACTIVE);
 
         ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider",
                 FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
@@ -161,6 +177,28 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testLaunchBiometricPrompt_onCreateFragment() {
+        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
+        doNothing().when(mFragment).startActivityForResult(any(), anyInt());
+        when(mBiometricManager.canAuthenticate(anyInt(),
+                eq(BiometricManager.Authenticators.MANDATORY_BIOMETRICS)))
+                .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+
+        mFragment.onAttach(mContext);
+        mFragment.onCreate(null);
+        mFragment.onActivityResult(CONFIRM_REQUEST, RESULT_FINISHED,
+                new Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L));
+
+        verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(),
+                eq(BiometricsSettingsBase.BIOMETRIC_AUTH_REQUEST));
+
+        Intent intent = intentArgumentCaptor.getValue();
+        assertThat(intent.getComponent().getClassName()).isEqualTo(
+                ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
+    }
+
+    @Test
     public void testClickFingerprintUnlockWithValidGkPwHandle() {
         doAnswer(invocation -> {
             final FingerprintManager.GenerateChallengeCallback callback =
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
index 58e7e2d..0e1bcf6 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
@@ -19,6 +19,9 @@
 import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
 import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
 
+import static com.android.settings.biometrics.BiometricEnrollBase.BIOMETRIC_AUTH_REQUEST;
+import static com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST;
+import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED;
 import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
 import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.CHOOSE_LOCK_GENERIC_REQUEST;
 import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.KEY_REQUIRE_SCREEN_ON_TO_AUTH;
@@ -34,18 +37,28 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
+import android.hardware.biometrics.BiometricManager;
 import android.hardware.biometrics.ComponentInfoInternal;
+import android.hardware.biometrics.Flags;
 import android.hardware.biometrics.SensorProperties;
+import android.hardware.fingerprint.Fingerprint;
 import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintSensorProperties;
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
 import android.os.Bundle;
 import android.os.CancellationSignal;
+import android.os.Looper;
 import android.os.UserHandle;
+import android.os.Vibrator;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 import android.view.LayoutInflater;
 import android.view.ViewGroup;
@@ -53,9 +66,12 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
+import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmDeviceCredentialActivity;
+import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
@@ -80,11 +96,17 @@
 import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
+import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowSettingsPreferenceFragment.class, ShadowUtils.class, ShadowFragment.class,
         ShadowUserManager.class, ShadowLockPatternUtils.class})
 public class FingerprintSettingsFragmentTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
     private static final int PRIMARY_USER_ID = 0;
     private static final int GUEST_USER_ID = 10;
 
@@ -92,12 +114,14 @@
     private Context mContext;
     private FragmentActivity mActivity;
 
-    @Rule
-    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
     private FingerprintManager mFingerprintManager;
     @Mock
     private FragmentTransaction mFragmentTransaction;
+    @Mock
+    private PackageManager mPackageManager;
+    @Mock
+    private BiometricManager mBiometricManager;
 
     @Captor
     private ArgumentCaptor<CancellationSignal> mCancellationSignalArgumentCaptor =
@@ -107,7 +131,11 @@
             mAuthenticationCallbackArgumentCaptor = ArgumentCaptor.forClass(
             FingerprintManager.AuthenticationCallback.class);
 
+    @Mock
+    private Vibrator mVibrator;
+
     private FingerprintAuthenticateSidecar mFingerprintAuthenticateSidecar;
+    private FingerprintRemoveSidecar mFingerprintRemoveSidecar;
 
     @Before
     public void setUp() {
@@ -117,8 +145,12 @@
         mContext = spy(ApplicationProvider.getApplicationContext());
         mFragment = spy(new FingerprintSettingsFragment());
         doReturn(mContext).when(mFragment).getContext();
-
+        doReturn(mBiometricManager).when(mContext).getSystemService(BiometricManager.class);
         doReturn(true).when(mFingerprintManager).isHardwareDetected();
+        doReturn(mVibrator).when(mContext).getSystemService(Vibrator.class);
+        when(mBiometricManager.canAuthenticate(PRIMARY_USER_ID,
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
     }
 
     @After
@@ -139,6 +171,28 @@
                 false)).isTrue();
     }
 
+    @Test
+    @Ignore("b/353706169")
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void testLaunchBiometricPromptForFingerprint() {
+        when(mBiometricManager.canAuthenticate(PRIMARY_USER_ID,
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+        doNothing().when(mFingerprintManager).generateChallenge(anyInt(), any());
+        when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(true);
+        setUpFragment(false);
+        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
+        mFragment.onActivityResult(CONFIRM_REQUEST, RESULT_FINISHED,
+                new Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L));
+
+        verify(mFragment).startActivityForResult(intentArgumentCaptor.capture(),
+                eq(BIOMETRIC_AUTH_REQUEST));
+
+        final Intent intent = intentArgumentCaptor.getValue();
+        assertThat(intent.getComponent().getClassName()).isEqualTo(
+                ConfirmDeviceCredentialActivity.InternalActivity.class.getName());
+    }
+
     // Test the case when FingerprintAuthenticateSidecar receives an error callback from the
     // framework or from another authentication client. The cancellation signal should not be set
     // to null because there may exist a running authentication client.
@@ -182,7 +236,7 @@
                 1,
                 UserHandle.of(GUEST_USER_ID).getIdentifier());
 
-        setUpFragment(false, GUEST_USER_ID, TYPE_POWER_BUTTON);
+        setUpFragment(false, GUEST_USER_ID, TYPE_POWER_BUTTON, 1);
 
         final RestrictedSwitchPreference requireScreenOnToAuthPreference = mFragment.findPreference(
                 KEY_REQUIRE_SCREEN_ON_TO_AUTH);
@@ -190,11 +244,15 @@
     }
 
     private void setUpFragment(boolean showChooseLock) {
-        setUpFragment(showChooseLock, PRIMARY_USER_ID, TYPE_UDFPS_OPTICAL);
+        setUpFragment(showChooseLock, PRIMARY_USER_ID, TYPE_UDFPS_OPTICAL, 1);
+    }
+
+    private void setUpFragment(boolean showChooseLock, int maxFingerprints) {
+        setUpFragment(showChooseLock, PRIMARY_USER_ID, TYPE_UDFPS_OPTICAL, maxFingerprints);
     }
 
     private void setUpFragment(boolean showChooseLock, int userId,
-            @FingerprintSensorProperties.SensorType int sensorType) {
+            @FingerprintSensorProperties.SensorType int sensorType, int maxFingerprints) {
         ShadowUserManager.getShadow().addProfile(new UserInfo(userId, "", 0));
 
         Intent intent = new Intent();
@@ -216,9 +274,13 @@
         doReturn(mFingerprintAuthenticateSidecar).when(fragmentManager).findFragmentByTag(
                 "authenticate_sidecar");
 
+        mFingerprintRemoveSidecar = new FingerprintRemoveSidecar();
+        doReturn(mFingerprintRemoveSidecar).when(fragmentManager).findFragmentByTag(
+                "removal_sidecar");
+
         doNothing().when(mFragment).startActivityForResult(any(Intent.class), anyInt());
 
-        setSensor(sensorType);
+        setSensor(sensorType, maxFingerprints);
 
         // Start fragment
         mFragment.onAttach(mContext);
@@ -235,12 +297,70 @@
         assertThat(mFragment.isVisible()).isTrue();
     }
 
-    private void setSensor(@FingerprintSensorProperties.SensorType int sensorType) {
+    @Test
+    @Ignore("b/353726774")
+    public void fingerprintVibratesOnAuthSuccess() {
+        setUpFragment(false);
+
+        doNothing().when(mFingerprintManager).authenticate(any(),
+                mCancellationSignalArgumentCaptor.capture(),
+                mAuthenticationCallbackArgumentCaptor.capture(), any(), anyInt());
+
+        mFingerprintAuthenticateSidecar.startAuthentication(1);
+
+        assertThat(mAuthenticationCallbackArgumentCaptor.getValue()).isNotNull();
+        assertThat(mCancellationSignalArgumentCaptor.getValue()).isNotNull();
+
+        mAuthenticationCallbackArgumentCaptor.getValue()
+                .onAuthenticationSucceeded(new FingerprintManager.AuthenticationResult(null,
+                        new Fingerprint("finger 1", 1, 1), 0 /* userId */, false));
+
+        shadowOf(Looper.getMainLooper()).idle();
+        verify(mVibrator).vibrate(FingerprintSettings.SUCCESS_VIBRATION_EFFECT);
+    }
+
+    @Test
+    public void testNotIndexable_whenDisabled() {
+        doReturn(mPackageManager).when(mContext).getPackageManager();
+        doReturn(false)
+                .when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_FINGERPRINT);
+
+        final BaseSearchIndexProvider provider = FingerprintSettingsFragment.SEARCH_INDEX_DATA_PROVIDER;
+        assertThat(provider.getDynamicRawDataToIndex(mContext, true)).isEmpty();
+    }
+
+    @Ignore("b/353726774")
+    @Test
+    public void testAddButtonWorksAfterRemovalError() {
+        final Fingerprint fingerprint = new Fingerprint("Test", 0, 0);
+        doReturn(List.of(fingerprint)).when(mFingerprintManager).getEnrolledFingerprints(anyInt());
+        setUpFragment(false, 5);
+        shadowOf(Looper.getMainLooper()).idle();
+        final Preference addPref = mFragment.findPreference("key_fingerprint_add");
+        final FingerprintSettings.FingerprintPreference fpPref =
+                mFragment.findPreference("key_fingerprint_item_0");
+        assertThat(fpPref).isNotNull();
+        assertThat(addPref).isNotNull();
+        assertThat(addPref.isEnabled()).isTrue();
+
+        mFingerprintRemoveSidecar.setListener(mFragment.mRemovalListener);
+        mFragment.deleteFingerPrint(fingerprint);
+        verify(mFingerprintManager).remove(any(), anyInt(), any());
+        assertThat(addPref.isEnabled()).isFalse();
+
+        mFingerprintRemoveSidecar.mRemoveCallback.onRemovalError(fingerprint, 0, "failure");
+
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(addPref.isEnabled()).isTrue();
+    }
+
+    private void setSensor(@FingerprintSensorProperties.SensorType int sensorType,
+            int maxFingerprints) {
         final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
         props.add(new FingerprintSensorPropertiesInternal(
                 0 /* sensorId */,
                 SensorProperties.STRENGTH_STRONG,
-                1 /* maxEnrollmentsPerUser */,
+                maxFingerprints /* maxEnrollmentsPerUser */,
                 new ArrayList<ComponentInfoInternal>(),
                 sensorType,
                 true /* resetLockoutRequiresHardwareAuthToken */));
diff --git a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
index d24a83b..af4888b 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
@@ -28,16 +28,24 @@
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.DeviceConfig;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
+import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import androidx.preference.PreferenceFragmentCompat;
+
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.SettingsUIDeviceConfig;
+import com.android.settings.flags.Flags;
 import com.android.settings.fuelgauge.BatteryMeterView;
 import com.android.settings.testutils.shadow.ShadowDeviceConfig;
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
@@ -48,12 +56,13 @@
 
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
 import java.util.HashSet;
@@ -62,6 +71,8 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowEntityHeaderController.class, ShadowDeviceConfig.class})
 public class AdvancedBluetoothDetailsHeaderControllerTest {
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private static final int BATTERY_LEVEL_MAIN = 30;
     private static final int BATTERY_LEVEL_LEFT = 25;
     private static final int BATTERY_LEVEL_RIGHT = 45;
@@ -86,6 +97,8 @@
     private CachedBluetoothDevice mCachedDevice;
     @Mock
     private BluetoothAdapter mBluetoothAdapter;
+    @Mock
+    private PreferenceFragmentCompat mFragment;
     private AdvancedBluetoothDetailsHeaderController mController;
     private LayoutPreference mLayoutPreference;
 
@@ -93,10 +106,10 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = RuntimeEnvironment.application;
+        mContext = Robolectric.buildActivity(SettingsActivity.class).get();
         mController = new AdvancedBluetoothDetailsHeaderController(mContext, "pref_Key");
         when(mCachedDevice.getDevice()).thenReturn(mBluetoothDevice);
-        mController.init(mCachedDevice);
+        mController.init(mCachedDevice, mFragment);
         mLayoutPreference = new LayoutPreference(mContext,
                 LayoutInflater.from(mContext).inflate(R.layout.advanced_bt_entity_header, null));
         mController.mLayoutPreference = mLayoutPreference;
@@ -272,6 +285,7 @@
                 View.GONE);
         assertThat(layout.findViewById(R.id.bt_battery_icon).getVisibility()).isEqualTo(View.GONE);
         assertThat(layout.findViewById(R.id.header_icon).getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(layout.findViewById(R.id.battery_ring).getVisibility()).isEqualTo(View.GONE);
     }
 
     @Ignore
@@ -532,6 +546,22 @@
                 rightBatteryPrediction);
     }
 
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void enablePolishFlag_renameButtonShown() {
+        DeviceConfig.setProperty(DeviceConfig.NAMESPACE_SETTINGS_UI,
+                SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED, "true", true);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET))
+                .thenReturn("true".getBytes());
+        Set<CachedBluetoothDevice> cacheBluetoothDevices = new HashSet<>();
+        when(mCachedDevice.getMemberDevice()).thenReturn(cacheBluetoothDevices);
+
+        mController.onStart();
+
+        ImageButton button = mLayoutPreference.findViewById(R.id.rename_button);
+        assertThat(button.getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
     private void assertBatteryPredictionVisible(LinearLayout linearLayout, int visible) {
         final TextView textView = linearLayout.findViewById(R.id.bt_battery_prediction);
         assertThat(textView.getVisibility()).isEqualTo(visible);
@@ -546,6 +576,10 @@
         final TextView textView = linearLayout.findViewById(R.id.bt_battery_summary);
         assertThat(textView.getText().toString()).isEqualTo(
                 com.android.settings.Utils.formatPercentage(batteryLevel));
+        if (Flags.enableBluetoothDeviceDetailsPolish()) {
+            final ProgressBar bar = linearLayout.findViewById(R.id.battery_ring);
+            assertThat(bar.getProgress()).isEqualTo(batteryLevel);
+        }
     }
 
     private void assertBatteryIcon(LinearLayout linearLayout, int resId) {
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java
index cf80a87..7c865f3 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHearingAidsPresetsControllerTest.java
@@ -38,6 +38,7 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceCategory;
 
+import com.android.settings.R;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.HapClientProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -215,11 +216,13 @@
 
         assertThat(mController.getPreference()).isNotNull();
         assertThat(mController.getPreference().isEnabled()).isFalse();
+        assertThat(String.valueOf(mController.getPreference().getSummary())).isEqualTo(
+                mContext.getString(R.string.bluetooth_hearing_aids_presets_empty_list_message));
     }
 
     @Test
     public void refresh_validPresetInfo_preferenceEnabled() {
-        BluetoothHapPresetInfo info = getTestPresetInfo();
+        BluetoothHapPresetInfo info = getTestPresetInfo(true);
         when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info));
 
         mController.refresh();
@@ -230,7 +233,7 @@
 
     @Test
     public void refresh_invalidActivePresetIndex_summaryIsNull() {
-        BluetoothHapPresetInfo info = getTestPresetInfo();
+        BluetoothHapPresetInfo info = getTestPresetInfo(true);
         when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info));
         when(mHapClientProfile.getActivePresetIndex(mDevice)).thenReturn(PRESET_INDEX_UNAVAILABLE);
 
@@ -242,7 +245,7 @@
 
     @Test
     public void refresh_validActivePresetIndex_summaryIsNotNull() {
-        BluetoothHapPresetInfo info = getTestPresetInfo();
+        BluetoothHapPresetInfo info = getTestPresetInfo(true);
         when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info));
         when(mHapClientProfile.getActivePresetIndex(mDevice)).thenReturn(TEST_PRESET_INDEX);
 
@@ -262,10 +265,30 @@
         verify(mHapClientProfile).selectPreset(mDevice, TEST_PRESET_INDEX);
     }
 
-    private BluetoothHapPresetInfo getTestPresetInfo() {
+    @Test
+    public void loadAllPresetInfo_unavailablePreset_notAddedToEntries() {
+        BluetoothHapPresetInfo info = getTestPresetInfo(false);
+        when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info));
+
+        mController.refresh();
+
+        assertThat(mController.getPreference().getEntries().length).isEqualTo(0);
+    }
+
+    @Test
+    public void loadAllPresetInfo_availablePreset_addedToEntries() {
+        BluetoothHapPresetInfo info = getTestPresetInfo(true);
+        when(mHapClientProfile.getAllPresetInfo(mDevice)).thenReturn(List.of(info));
+
+        mController.refresh();
+
+        assertThat(mController.getPreference().getEntries().length).isEqualTo(1);
+    }
+    private BluetoothHapPresetInfo getTestPresetInfo(boolean available) {
         BluetoothHapPresetInfo info = mock(BluetoothHapPresetInfo.class);
         when(info.getName()).thenReturn(TEST_PRESET_NAME);
         when(info.getIndex()).thenReturn(TEST_PRESET_INDEX);
+        when(info.isAvailable()).thenReturn(available);
         return info;
     }
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
index 9b92234..4f084a4 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
@@ -44,6 +44,7 @@
 import com.android.settingslib.R;
 import com.android.settingslib.bluetooth.A2dpProfile;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.HearingAidProfile;
 import com.android.settingslib.bluetooth.LeAudioProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfile;
@@ -90,6 +91,13 @@
     @Mock
     private CachedBluetoothDeviceManager mCachedBluetoothDeviceManager;
 
+    @Mock
+    private A2dpProfile mA2dpProfile;
+    @Mock
+    private LeAudioProfile mLeAudioProfile;
+    @Mock
+    private HearingAidProfile mHearingAidProfile;
+
     @Override
     public void setUp() {
         super.setUp();
@@ -103,11 +111,13 @@
         mConnectableProfiles = new ArrayList<>();
         when(mLocalManager.getProfileManager()).thenReturn(mProfileManager);
         when(mLocalManager.getCachedDeviceManager()).thenReturn(mCachedBluetoothDeviceManager);
+        setUpMockProfiles();
         when(mCachedBluetoothDeviceManager.getCachedDevicesCopy())
                 .thenReturn(ImmutableList.of(mCachedDevice));
-        when(mCachedDevice.getConnectableProfiles()).thenAnswer(invocation ->
-            new ArrayList<>(mConnectableProfiles)
-        );
+        when(mCachedDevice.getUiAccessibleProfiles())
+                .thenAnswer(invocation -> new ArrayList<>(mConnectableProfiles));
+        when(mCachedDevice.getProfiles())
+                .thenAnswer(invocation -> ImmutableList.of(mConnectableProfiles));
 
         setupDevice(mDeviceConfig);
         mController = new BluetoothDetailsProfilesController(mContext, mFragment, mLocalManager,
@@ -389,21 +399,46 @@
         assertThat(mDevice.getMessageAccessPermission()).isEqualTo(BluetoothDevice.ACCESS_ALLOWED);
     }
 
-    private A2dpProfile addMockA2dpProfile(boolean preferred, boolean supportsHighQualityAudio,
+    private void setUpMockProfiles() {
+        when(mA2dpProfile.toString()).thenReturn("A2DP");
+        when(mProfileManager.getProfileByName(eq(mA2dpProfile.toString())))
+                .thenReturn(mA2dpProfile);
+        when(mA2dpProfile.getNameResource(any()))
+                .thenReturn(R.string.bluetooth_profile_a2dp);
+        when(mA2dpProfile.getHighQualityAudioOptionLabel(any())).thenReturn(
+                mContext.getString(R.string.bluetooth_profile_a2dp_high_quality_unknown_codec));
+        when(mA2dpProfile.isProfileReady()).thenReturn(true);
+        when(mProfileManager.getA2dpProfile()).thenReturn(mA2dpProfile);
+
+        when(mLeAudioProfile.toString()).thenReturn("LE_AUDIO");
+        when(mLeAudioProfile.getNameResource(any()))
+                .thenReturn(R.string.bluetooth_profile_le_audio);
+        when(mLeAudioProfile.isProfileReady()).thenReturn(true);
+        when(mProfileManager.getLeAudioProfile()).thenReturn(mLeAudioProfile);
+
+        when(mHearingAidProfile.toString()).thenReturn("HearingAid");
+        when(mHearingAidProfile.getNameResource(any()))
+                .thenReturn(R.string.bluetooth_profile_hearing_aid);
+        when(mHearingAidProfile.isProfileReady()).thenReturn(true);
+        when(mProfileManager.getHearingAidProfile()).thenReturn(mHearingAidProfile);
+    }
+
+    private void addA2dpProfileToDevice(boolean preferred, boolean supportsHighQualityAudio,
             boolean highQualityAudioEnabled) {
-        A2dpProfile profile = mock(A2dpProfile.class);
-        when(mProfileManager.getProfileByName(eq(profile.toString()))).thenReturn(profile);
-        when(profile.getNameResource(mDevice))
-                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_a2dp);
-        when(profile.getHighQualityAudioOptionLabel(mDevice)).thenReturn(
-                mContext.getString(com.android.settingslib.R
-                        .string.bluetooth_profile_a2dp_high_quality_unknown_codec));
-        when(profile.supportsHighQualityAudio(mDevice)).thenReturn(supportsHighQualityAudio);
-        when(profile.isHighQualityAudioEnabled(mDevice)).thenReturn(highQualityAudioEnabled);
-        when(profile.isEnabled(mDevice)).thenReturn(preferred);
-        when(profile.isProfileReady()).thenReturn(true);
-        mConnectableProfiles.add(profile);
-        return profile;
+        when(mA2dpProfile.supportsHighQualityAudio(any())).thenReturn(supportsHighQualityAudio);
+        when(mA2dpProfile.isHighQualityAudioEnabled(any())).thenReturn(highQualityAudioEnabled);
+        when(mA2dpProfile.isEnabled(any())).thenReturn(preferred);
+        mConnectableProfiles.add(mA2dpProfile);
+    }
+
+    private void addLeAudioProfileToDevice(boolean enabled) {
+        when(mLeAudioProfile.isEnabled(any())).thenReturn(enabled);
+        mConnectableProfiles.add(mLeAudioProfile);
+    }
+
+    private void addHearingAidProfileToDevice(boolean enabled) {
+        when(mHearingAidProfile.isEnabled(any())).thenReturn(enabled);
+        mConnectableProfiles.add(mHearingAidProfile);
     }
 
     private SwitchPreferenceCompat getHighQualityAudioPref() {
@@ -414,7 +449,7 @@
     @Test
     public void highQualityAudio_prefIsPresentWhenSupported() {
         setupDevice(makeDefaultDeviceConfig());
-        addMockA2dpProfile(true, true, true);
+        addA2dpProfileToDevice(true, true, true);
         showScreen(mController);
         SwitchPreferenceCompat pref = getHighQualityAudioPref();
         assertThat(pref.getKey()).isEqualTo(
@@ -431,7 +466,7 @@
     @Test
     public void highQualityAudio_prefIsAbsentWhenNotSupported() {
         setupDevice(makeDefaultDeviceConfig());
-        addMockA2dpProfile(true, false, false);
+        addA2dpProfileToDevice(true, false, false);
         showScreen(mController);
         assertThat(mProfiles.getPreferenceCount()).isEqualTo(2);
         SwitchPreferenceCompat pref = (SwitchPreferenceCompat) mProfiles.getPreference(0);
@@ -444,7 +479,7 @@
     @Test
     public void highQualityAudio_busyDeviceDisablesSwitch() {
         setupDevice(makeDefaultDeviceConfig());
-        addMockA2dpProfile(true, true, true);
+        addA2dpProfileToDevice(true, true, true);
         when(mCachedDevice.isBusy()).thenReturn(true);
         showScreen(mController);
         SwitchPreferenceCompat pref = getHighQualityAudioPref();
@@ -454,17 +489,17 @@
     @Test
     public void highQualityAudio_mediaAudioDisabledAndReEnabled() {
         setupDevice(makeDefaultDeviceConfig());
-        A2dpProfile audioProfile = addMockA2dpProfile(true, true, true);
+        addA2dpProfileToDevice(true, true, true);
         showScreen(mController);
         assertThat(mProfiles.getPreferenceCount()).isEqualTo(3);
 
         // Disabling media audio should cause the high quality audio switch to disappear, but not
         // the regular audio one.
         SwitchPreferenceCompat audioPref =
-                (SwitchPreferenceCompat) mScreen.findPreference(audioProfile.toString());
+                (SwitchPreferenceCompat) mScreen.findPreference(mA2dpProfile.toString());
         audioPref.performClick();
-        verify(audioProfile).setEnabled(mDevice, false);
-        when(audioProfile.isEnabled(mDevice)).thenReturn(false);
+        verify(mA2dpProfile).setEnabled(mDevice, false);
+        when(mA2dpProfile.isEnabled(mDevice)).thenReturn(false);
         mController.onDeviceAttributesChanged();
         assertThat(audioPref.isVisible()).isTrue();
         SwitchPreferenceCompat highQualityAudioPref = getHighQualityAudioPref();
@@ -472,8 +507,8 @@
 
         // And re-enabling media audio should make high quality switch to reappear.
         audioPref.performClick();
-        verify(audioProfile).setEnabled(mDevice, true);
-        when(audioProfile.isEnabled(mDevice)).thenReturn(true);
+        verify(mA2dpProfile).setEnabled(mDevice, true);
+        when(mA2dpProfile.isEnabled(mDevice)).thenReturn(true);
         mController.onDeviceAttributesChanged();
         highQualityAudioPref = getHighQualityAudioPref();
         assertThat(highQualityAudioPref.isVisible()).isTrue();
@@ -482,9 +517,9 @@
     @Test
     public void highQualityAudio_mediaAudioStartsDisabled() {
         setupDevice(makeDefaultDeviceConfig());
-        A2dpProfile audioProfile = addMockA2dpProfile(false, true, true);
+        addA2dpProfileToDevice(false, true, true);
         showScreen(mController);
-        SwitchPreferenceCompat audioPref = mScreen.findPreference(audioProfile.toString());
+        SwitchPreferenceCompat audioPref = mScreen.findPreference(mA2dpProfile.toString());
         SwitchPreferenceCompat highQualityAudioPref = getHighQualityAudioPref();
         assertThat(audioPref).isNotNull();
         assertThat(audioPref.isChecked()).isFalse();
@@ -522,15 +557,9 @@
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_BLUETOOTH_PROFILE_TOGGLE_VISIBILITY_CHECKER);
         setupDevice(makeDefaultDeviceConfig());
 
-        LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
-        when(leAudioProfile.getNameResource(mDevice))
-                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
-        when(leAudioProfile.isProfileReady()).thenReturn(true);
-        when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
-        when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
+        addA2dpProfileToDevice(true, true, true);
         when(mFeatureProvider.getInvisibleProfilePreferenceKeys(any(), any()))
-                .thenReturn(ImmutableSet.of("LE_AUDIO"));
-        mConnectableProfiles.add(leAudioProfile);
+                .thenReturn(ImmutableSet.of("A2DP"));
 
         showScreen(mController);
 
@@ -543,15 +572,9 @@
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_BLUETOOTH_PROFILE_TOGGLE_VISIBILITY_CHECKER);
         setupDevice(makeDefaultDeviceConfig());
 
-        LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
-        when(leAudioProfile.getNameResource(mDevice))
-                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
-        when(leAudioProfile.isProfileReady()).thenReturn(true);
-        when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
-        when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
+        addA2dpProfileToDevice(true, true, true);
         when(mFeatureProvider.getInvisibleProfilePreferenceKeys(any(), any()))
-                .thenReturn(ImmutableSet.of("A2DP"));
-        mConnectableProfiles.add(leAudioProfile);
+                .thenReturn(ImmutableSet.of("LE_AUDIO"));
 
         showScreen(mController);
 
@@ -563,19 +586,8 @@
     public void classicAudioDeviceWithLeAudio_showLeAudioToggle() {
         mSetFlagsRule.enableFlags(Flags.FLAG_HIDE_LE_AUDIO_TOGGLE_FOR_LE_AUDIO_ONLY_DEVICE);
         setupDevice(makeDefaultDeviceConfig());
-
-        LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
-        when(leAudioProfile.getNameResource(mDevice))
-                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
-        when(leAudioProfile.isProfileReady()).thenReturn(true);
-        when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
-        when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
-        mConnectableProfiles.add(leAudioProfile);
-        when(mCachedDevice.getProfiles())
-                .thenAnswer(
-                        invocation ->
-                                ImmutableList.of(
-                                        leAudioProfile, addMockA2dpProfile(false, false, false)));
+        addLeAudioProfileToDevice(false);
+        addA2dpProfileToDevice(false, false, false);
 
         showScreen(mController);
 
@@ -587,20 +599,34 @@
     public void leAudioOnlyDevice_hideLeAudioToggle() {
         mSetFlagsRule.enableFlags(Flags.FLAG_HIDE_LE_AUDIO_TOGGLE_FOR_LE_AUDIO_ONLY_DEVICE);
         setupDevice(makeDefaultDeviceConfig());
-
-        LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
-        when(leAudioProfile.getNameResource(mDevice))
-                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
-        when(leAudioProfile.isProfileReady()).thenReturn(true);
-        when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
-        when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
-        mConnectableProfiles.add(leAudioProfile);
-        when(mCachedDevice.getProfiles())
-                .thenAnswer(invocation -> ImmutableList.of(leAudioProfile));
+        addLeAudioProfileToDevice(false);
 
         showScreen(mController);
 
         List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
         assertThat(switches.get(0).isVisible()).isFalse();
     }
+
+    @Test
+    public void ashaHearingAid_hideAshaToggle() {
+        setupDevice(makeDefaultDeviceConfig());
+        addHearingAidProfileToDevice(true);
+
+        showScreen(mController);
+
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
+        assertThat(switches.isEmpty()).isTrue();
+    }
+    @Test
+    public void ashaHearingAidWithLeAudio_showLeAudioToggle() {
+        setupDevice(makeDefaultDeviceConfig());
+        addHearingAidProfileToDevice(false);
+        addLeAudioProfileToDevice(true);
+
+        showScreen(mController);
+
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
+        assertThat(switches.getFirst().getTitle()).isEqualTo(
+                mContext.getString(mLeAudioProfile.getNameResource(mDevice)));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
index 50aa771..c84d42c 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
@@ -50,6 +50,8 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.bluetooth.ui.model.FragmentTypeModel;
+import com.android.settings.bluetooth.ui.view.DeviceDetailsFragmentFormatter;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -101,6 +103,8 @@
     private InputManager mInputManager;
     @Mock
     private CompanionDeviceManager mCompanionDeviceManager;
+    @Mock
+    private DeviceDetailsFragmentFormatter mFormatter;
 
     @Before
     public void setUp() {
@@ -111,7 +115,12 @@
                 .getSystemService(CompanionDeviceManager.class);
         when(mCompanionDeviceManager.getAllAssociations()).thenReturn(ImmutableList.of());
         removeInputDeviceWithMatchingBluetoothAddress();
-        FakeFeatureFactory.setupForTest();
+        FakeFeatureFactory fakeFeatureFactory = FakeFeatureFactory.setupForTest();
+        when(fakeFeatureFactory.mBluetoothFeatureProvider.getDeviceDetailsFragmentFormatter(any(),
+                any(), any(), eq(mCachedDevice))).thenReturn(mFormatter);
+        when(mFormatter.getVisiblePreferenceKeys(
+                        FragmentTypeModel.DeviceDetailsMainFragment.INSTANCE))
+                .thenReturn(null);
 
         mFragment = setupFragment();
         mFragment.onAttach(mContext);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
index 03113421..ba90ccf 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePreferenceTest.java
@@ -18,10 +18,10 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 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;
@@ -32,22 +32,31 @@
 import android.graphics.drawable.Drawable;
 import android.os.UserManager;
 import android.util.Pair;
-import android.view.ContextThemeWrapper;
+
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+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.util.ReflectionHelpers;
 
@@ -57,18 +66,21 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class})
+@Config(shadows = {ShadowAlertDialogCompat.class,
+        com.android.settings.testutils.shadow.ShadowBluetoothUtils.class})
 public class BluetoothDevicePreferenceTest {
     private static final boolean SHOW_DEVICES_WITHOUT_NAMES = true;
-    private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
-    private static final String MAC_ADDRESS_2 = "05:52:C7:0B:D8:3C";
-    private static final String MAC_ADDRESS_3 = "06:52:C7:0B:D8:3C";
-    private static final String MAC_ADDRESS_4 = "07:52:C7:0B:D8:3C";
+    private static final String TEST_MAC_ADDRESS = "04:52:C7:0B:D8:3C";
+    private static final String TEST_MAC_ADDRESS_1 = "05:52:C7:0B:D8:3C";
+    private static final String TEST_MAC_ADDRESS_2 = "06:52:C7:0B:D8:3C";
+    private static final String TEST_MAC_ADDRESS_3 = "07:52:C7:0B:D8:3C";
     private static final Comparator<BluetoothDevicePreference> COMPARATOR =
             Comparator.naturalOrder();
     private static final String FAKE_DESCRIPTION = "fake_description";
+    private static final int TEST_DEVICE_GROUP_ID = 1;
 
-    private Context mContext;
+    @Rule
+    public final MockitoRule mockito = MockitoJUnit.rule();
     @Mock
     private CachedBluetoothDevice mCachedBluetoothDevice;
     @Mock
@@ -89,35 +101,37 @@
     private Drawable mDrawable;
     @Mock
     private BluetoothAdapter mBluetoothAdapter;
+    @Mock
+    private LocalBluetoothManager mLocalBluetoothManager;
+    @Mock
+    private CachedBluetoothDeviceManager mDeviceManager;
 
+    private Context mContext = ApplicationProvider.getApplicationContext();
     private FakeFeatureFactory mFakeFeatureFactory;
     private MetricsFeatureProvider mMetricsFeatureProvider;
+
     private BluetoothDevicePreference mPreference;
     private List<BluetoothDevicePreference> mPreferenceList = new ArrayList<>();
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        Context context = spy(RuntimeEnvironment.application.getApplicationContext());
-        mContext = new ContextThemeWrapper(context, R.style.Theme_Settings);
+        mContext.setTheme(R.style.Theme_Settings);
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFakeFeatureFactory.getMetricsFeatureProvider();
-        when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
-        when(mCachedBluetoothDevice.getDrawableWithDescription())
-                .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
-        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
-        when(mCachedDevice1.getAddress()).thenReturn(MAC_ADDRESS_2);
-        when(mCachedDevice1.getDrawableWithDescription())
-                .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
-        when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
-        when(mCachedDevice2.getAddress()).thenReturn(MAC_ADDRESS_3);
-        when(mCachedDevice2.getDrawableWithDescription())
-                .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
-        when(mCachedDevice2.getDevice()).thenReturn(mBluetoothDevice2);
-        when(mCachedDevice3.getAddress()).thenReturn(MAC_ADDRESS_4);
-        when(mCachedDevice3.getDrawableWithDescription())
-                .thenReturn(new Pair<>(mDrawable, FAKE_DESCRIPTION));
-        when(mCachedDevice3.getDevice()).thenReturn(mBluetoothDevice3);
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
+        mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
+        when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        prepareCachedBluetoothDevice(mCachedBluetoothDevice, TEST_MAC_ADDRESS,
+                new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice);
+        prepareCachedBluetoothDevice(mCachedDevice1, TEST_MAC_ADDRESS_1,
+                new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice1);
+        prepareCachedBluetoothDevice(mCachedDevice2, TEST_MAC_ADDRESS_2,
+                new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice2);
+        prepareCachedBluetoothDevice(mCachedDevice3, TEST_MAC_ADDRESS_3,
+                new Pair<>(mDrawable, FAKE_DESCRIPTION), TEST_DEVICE_GROUP_ID, mBluetoothDevice3);
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+                ImmutableList.of(mCachedBluetoothDevice));
+
         mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
                 SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
         mPreference.mBluetoothAdapter = mBluetoothAdapter;
@@ -301,7 +315,8 @@
         // callback is not removed.
         mPreference.onAttached();
 
-        verify(mCachedBluetoothDevice, times(1)).registerCallback(any());
+        verify(mCachedBluetoothDevice, times(1)).registerCallback(eq(mContext.getMainExecutor()),
+                any());
         verify(mBluetoothAdapter, times(1)).addOnMetadataChangedListener(any(), any(), any());
     }
 
@@ -313,7 +328,99 @@
         mPreference.onAttached();
 
         verify(mCachedBluetoothDevice, times(1)).unregisterCallback(any());
-        verify(mCachedBluetoothDevice, times(2)).registerCallback(any());
+        verify(mCachedBluetoothDevice, times(2)).registerCallback(eq(mContext.getMainExecutor()),
+                any());
         verify(mBluetoothAdapter, times(2)).addOnMetadataChangedListener(any(), any(), any());
     }
+
+    @Test
+    public void onDeviceAttributesChanged_updatePreference() {
+        when(mCachedBluetoothDevice.getName()).thenReturn("Name");
+        mPreference.onAttached();
+        final String updatedName = "updatedName";
+        when(mCachedBluetoothDevice.getName()).thenReturn(updatedName);
+
+        getCachedBluetoothDeviceCallback().onDeviceAttributesChanged();
+
+        assertThat(mPreference.getTitle().toString()).isEqualTo(updatedName);
+    }
+
+    @Test
+    public void onAttached_memberDevicesAdded_registerAllCallback() {
+        when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+                ImmutableSet.of(mCachedDevice1, mCachedDevice2, mCachedDevice3));
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+                ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2,
+                        mCachedDevice3));
+        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
+                SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+
+        mPreference.onAttached();
+
+        verify(mCachedBluetoothDevice).registerCallback(eq(mContext.getMainExecutor()), any());
+        verify(mCachedDevice1).registerCallback(eq(mContext.getMainExecutor()), any());
+        verify(mCachedDevice2).registerCallback(eq(mContext.getMainExecutor()), any());
+        verify(mCachedDevice3).registerCallback(eq(mContext.getMainExecutor()), any());
+    }
+
+    @Test
+    public void onDetached_memberDevicesAdded_unregisterAllCallback() {
+        when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+                ImmutableSet.of(mCachedDevice1, mCachedDevice2, mCachedDevice3));
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+                ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2,
+                        mCachedDevice3));
+        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
+                SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+
+        mPreference.onAttached();
+        mPreference.onDetached();
+
+        verify(mCachedBluetoothDevice).unregisterCallback(any());
+        verify(mCachedDevice1).unregisterCallback(any());
+        verify(mCachedDevice2).unregisterCallback(any());
+        verify(mCachedDevice3).unregisterCallback(any());
+    }
+
+    @Test
+    public void onDeviceAttributesChanged_memberDevicesChanged_registerOnlyExistDeviceCallback() {
+        when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+                ImmutableSet.of(mCachedDevice1, mCachedDevice2, mCachedDevice3));
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+                ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2,
+                        mCachedDevice3));
+        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
+                SHOW_DEVICES_WITHOUT_NAMES, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+        mPreference.onAttached();
+        when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(
+                ImmutableSet.of(mCachedDevice1, mCachedDevice2));
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(
+                ImmutableList.of(mCachedBluetoothDevice, mCachedDevice1, mCachedDevice2));
+
+        getCachedBluetoothDeviceCallback().onDeviceAttributesChanged();
+
+        verify(mCachedBluetoothDevice, times(2)).registerCallback(eq(mContext.getMainExecutor()),
+                any());
+        verify(mCachedDevice1, times(2)).registerCallback(eq(mContext.getMainExecutor()), any());
+        verify(mCachedDevice2, times(2)).registerCallback(eq(mContext.getMainExecutor()), any());
+        verify(mCachedDevice3, times(1)).registerCallback(eq(mContext.getMainExecutor()), any());
+    }
+
+    private void prepareCachedBluetoothDevice(CachedBluetoothDevice cachedDevice, String address,
+            Pair<Drawable, String> drawableWithDescription, int groupId,
+            BluetoothDevice bluetoothDevice) {
+        when(cachedDevice.getAddress()).thenReturn(address);
+        when(cachedDevice.getDrawableWithDescription()).thenReturn(drawableWithDescription);
+        when(cachedDevice.getGroupId()).thenReturn(groupId);
+        when(cachedDevice.getDevice()).thenReturn(bluetoothDevice);
+    }
+
+    private CachedBluetoothDevice.Callback getCachedBluetoothDeviceCallback() {
+        ArgumentCaptor<CachedBluetoothDevice.Callback> callbackCaptor = ArgumentCaptor.forClass(
+                CachedBluetoothDevice.Callback.class);
+        verify(mCachedBluetoothDevice).registerCallback(eq(mContext.getMainExecutor()),
+                callbackCaptor.capture());
+
+        return callbackCaptor.getValue();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
index d165aa5..4bfe335 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
@@ -275,7 +275,7 @@
         }
 
         @Override
-        protected String getPreferenceKey() {
+        protected String getPreferenceKeyPrefix() {
             return "test_bt";
         }
     }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderControllerTest.java
new file mode 100644
index 0000000..d608f3f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/GeneralBluetoothDetailsHeaderControllerTest.java
@@ -0,0 +1,180 @@
+/*
+ * 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.bluetooth;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.widget.TextView;
+
+import com.android.settings.R;
+import com.android.settings.core.SettingsUIDeviceConfig;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settingslib.bluetooth.LeAudioProfile;
+import com.android.settingslib.widget.LayoutPreference;
+
+import org.junit.After;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowDeviceConfig.class})
+public class GeneralBluetoothDetailsHeaderControllerTest
+        extends BluetoothDetailsControllerTestBase {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private GeneralBluetoothDetailsHeaderController mController;
+    private LayoutPreference mPreference;
+
+    @Mock private BluetoothDevice mBluetoothDevice;
+    @Mock private LeAudioProfile mLeAudioProfile;
+
+    @Override
+    public void setUp() {
+        super.setUp();
+        FakeFeatureFactory.setupForTest();
+        android.provider.DeviceConfig.setProperty(
+                android.provider.DeviceConfig.NAMESPACE_SETTINGS_UI,
+                SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED,
+                "true",
+                true);
+        mController =
+                new GeneralBluetoothDetailsHeaderController(
+                        mContext, mFragment, mCachedDevice, mLifecycle);
+        mPreference = new LayoutPreference(mContext, R.layout.general_bt_entity_header);
+        mPreference.setKey(mController.getPreferenceKey());
+        mScreen.addPreference(mPreference);
+        setupDevice(mDeviceConfig);
+        when(mCachedDevice.getDevice()).thenReturn(mBluetoothDevice);
+        when(mLeAudioProfile.getProfileId()).thenReturn(BluetoothProfile.LE_AUDIO);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowEntityHeaderController.reset();
+    }
+
+    /**
+     * Test to verify the current test context object works so that we are not checking null against
+     * null
+     */
+    @Test
+    public void testContextMock() {
+        assertThat(mContext.getString(com.android.settingslib.R.string.bluetooth_connected))
+                .isNotNull();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void header() {
+        when(mCachedDevice.getName()).thenReturn("device name");
+        when(mCachedDevice.getConnectionSummary()).thenReturn("Active");
+
+        showScreen(mController);
+
+        TextView deviceName = mPreference.findViewById(R.id.bt_header_device_name);
+        TextView summary = mPreference.findViewById(R.id.bt_header_connection_summary);
+        assertThat(deviceName.getText().toString()).isEqualTo("device name");
+        assertThat(summary.getText().toString()).isEqualTo("Active");
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void connectionStatusChangesWhileScreenOpen() {
+        TextView summary = mPreference.findViewById(R.id.bt_header_connection_summary);
+        when(mCachedDevice.getConnectionSummary())
+                .thenReturn(
+                        mContext.getString(com.android.settingslib.R.string.bluetooth_connected));
+
+        showScreen(mController);
+        String summaryText1 = summary.getText().toString();
+        when(mCachedDevice.getConnectionSummary()).thenReturn(null);
+        mController.onDeviceAttributesChanged();
+        String summaryText2 = summary.getText().toString();
+        when(mCachedDevice.getConnectionSummary())
+                .thenReturn(
+                        mContext.getString(com.android.settingslib.R.string.bluetooth_connecting));
+        mController.onDeviceAttributesChanged();
+        String summaryText3 = summary.getText().toString();
+
+        assertThat(summaryText1)
+                .isEqualTo(
+                        mContext.getString(com.android.settingslib.R.string.bluetooth_connected));
+        assertThat(summaryText2).isEqualTo("");
+        assertThat(summaryText3)
+                .isEqualTo(
+                        mContext.getString(com.android.settingslib.R.string.bluetooth_connecting));
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void isAvailable_untetheredHeadset_returnFalse() {
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET))
+                .thenReturn("true".getBytes());
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void isAvailable_notUntetheredHeadset_returnTrue() {
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET))
+                .thenReturn("false".getBytes());
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void isAvailable_leAudioDevice_returnFalse() {
+        when(mCachedDevice.getUiAccessibleProfiles())
+                .thenReturn(List.of(mLeAudioProfile));
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void isAvailable_flagEnabled_returnTrue() {
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET))
+                .thenReturn("false".getBytes());
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_BLUETOOTH_DEVICE_DETAILS_POLISH)
+    public void iaAvailable_flagDisabled_returnFalse() {
+        assertThat(mController.isAvailable()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractorTest.kt b/tests/robotests/src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractorTest.kt
new file mode 100644
index 0000000..a83b7c2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/domain/interactor/SpatialAudioInteractorTest.kt
@@ -0,0 +1,254 @@
+/*
+ * 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.bluetooth.domain.interactor
+
+import android.bluetooth.BluetoothDevice
+import android.bluetooth.BluetoothProfile
+import android.content.Context
+import android.media.AudioDeviceAttributes
+import android.media.AudioDeviceInfo
+import android.media.AudioManager
+import androidx.test.core.app.ApplicationProvider
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.LeAudioProfile
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingStateModel
+import com.android.settingslib.media.data.repository.SpatializerRepository
+import com.android.settingslib.media.domain.interactor.SpatializerInteractor
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.launchIn
+import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.spy
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.verifyNoInteractions
+import org.mockito.Mockito.`when`
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.robolectric.RobolectricTestRunner
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@RunWith(RobolectricTestRunner::class)
+class SpatialAudioInteractorTest {
+    @get:Rule val mockitoRule: MockitoRule = MockitoJUnit.rule()
+
+    @Mock private lateinit var audioManager: AudioManager
+    @Mock private lateinit var cachedDevice: CachedBluetoothDevice
+    @Mock private lateinit var bluetoothDevice: BluetoothDevice
+    @Mock private lateinit var spatializerRepository: SpatializerRepository
+    @Mock private lateinit var leAudioProfile: LeAudioProfile
+
+    private lateinit var underTest: SpatialAudioInteractor
+    private val testScope = TestScope()
+
+    @Before
+    fun setUp() {
+        val context = spy(ApplicationProvider.getApplicationContext<Context>())
+        `when`(cachedDevice.device).thenReturn(bluetoothDevice)
+        `when`(cachedDevice.address).thenReturn(BLUETOOTH_ADDRESS)
+        `when`(leAudioProfile.profileId).thenReturn(BluetoothProfile.LE_AUDIO)
+        underTest =
+            SpatialAudioInteractorImpl(
+                context,
+                audioManager,
+                SpatializerInteractor(spatializerRepository),
+                testScope.backgroundScope,
+                testScope.testScheduler)
+    }
+
+    @Test
+    fun getDeviceSetting_noAudioProfile_returnNull() {
+        testScope.runTest {
+            val setting = getLatestValue(underTest.getDeviceSetting(cachedDevice))
+
+            assertThat(setting).isNull()
+            verifyNoInteractions(spatializerRepository)
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_audioProfileNotEnabled_returnNull() {
+        testScope.runTest {
+            `when`(cachedDevice.profiles).thenReturn(listOf(leAudioProfile))
+            `when`(leAudioProfile.isEnabled(bluetoothDevice)).thenReturn(false)
+
+            val setting = getLatestValue(underTest.getDeviceSetting(cachedDevice))
+
+            assertThat(setting).isNull()
+            verifyNoInteractions(spatializerRepository)
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_spatialAudioNotSupported_returnNull() {
+        testScope.runTest {
+            `when`(cachedDevice.profiles).thenReturn(listOf(leAudioProfile))
+            `when`(leAudioProfile.isEnabled(bluetoothDevice)).thenReturn(true)
+            `when`(
+                    spatializerRepository.isSpatialAudioAvailableForDevice(
+                        BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(false)
+
+            val setting = getLatestValue(underTest.getDeviceSetting(cachedDevice))
+
+            assertThat(setting).isNull()
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_spatialAudioSupported_returnTwoToggles() {
+        testScope.runTest {
+            `when`(cachedDevice.profiles).thenReturn(listOf(leAudioProfile))
+            `when`(leAudioProfile.isEnabled(bluetoothDevice)).thenReturn(true)
+            `when`(
+                    spatializerRepository.isSpatialAudioAvailableForDevice(
+                        BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+            `when`(
+                    spatializerRepository.isHeadTrackingAvailableForDevice(
+                        BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(false)
+            `when`(spatializerRepository.getSpatialAudioCompatibleDevices())
+                .thenReturn(listOf(BLE_AUDIO_DEVICE_ATTRIBUTES))
+            `when`(spatializerRepository.isHeadTrackingEnabled(BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(false)
+
+            val setting =
+                getLatestValue(underTest.getDeviceSetting(cachedDevice))
+                    as DeviceSettingModel.MultiTogglePreference
+
+            assertThat(setting).isNotNull()
+            assertThat(setting.toggles.size).isEqualTo(2)
+            assertThat(setting.state.selectedIndex).isEqualTo(1)
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_headTrackingSupported_returnThreeToggles() {
+        testScope.runTest {
+            `when`(cachedDevice.profiles).thenReturn(listOf(leAudioProfile))
+            `when`(leAudioProfile.isEnabled(bluetoothDevice)).thenReturn(true)
+            `when`(
+                    spatializerRepository.isSpatialAudioAvailableForDevice(
+                        BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+            `when`(
+                    spatializerRepository.isHeadTrackingAvailableForDevice(
+                        BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+            `when`(spatializerRepository.getSpatialAudioCompatibleDevices())
+                .thenReturn(listOf(BLE_AUDIO_DEVICE_ATTRIBUTES))
+            `when`(spatializerRepository.isHeadTrackingEnabled(BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+
+            val setting =
+                getLatestValue(underTest.getDeviceSetting(cachedDevice))
+                    as DeviceSettingModel.MultiTogglePreference
+
+            assertThat(setting).isNotNull()
+            assertThat(setting.toggles.size).isEqualTo(3)
+            assertThat(setting.state.selectedIndex).isEqualTo(2)
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_updateState_enableSpatialAudio() {
+        testScope.runTest {
+            `when`(cachedDevice.profiles).thenReturn(listOf(leAudioProfile))
+            `when`(leAudioProfile.isEnabled(bluetoothDevice)).thenReturn(true)
+            `when`(
+                    spatializerRepository.isSpatialAudioAvailableForDevice(
+                        BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+            `when`(
+                    spatializerRepository.isHeadTrackingAvailableForDevice(
+                        BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+            `when`(spatializerRepository.getSpatialAudioCompatibleDevices()).thenReturn(listOf())
+            `when`(spatializerRepository.isHeadTrackingEnabled(BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(false)
+
+            val setting =
+                getLatestValue(underTest.getDeviceSetting(cachedDevice))
+                    as DeviceSettingModel.MultiTogglePreference
+            setting.updateState(DeviceSettingStateModel.MultiTogglePreferenceState(2))
+            runCurrent()
+
+            assertThat(setting).isNotNull()
+            verify(spatializerRepository, times(1))
+                .addSpatialAudioCompatibleDevice(BLE_AUDIO_DEVICE_ATTRIBUTES)
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_updateState_enableHeadTracking() {
+        testScope.runTest {
+            `when`(cachedDevice.profiles).thenReturn(listOf(leAudioProfile))
+            `when`(leAudioProfile.isEnabled(bluetoothDevice)).thenReturn(true)
+            `when`(
+                spatializerRepository.isSpatialAudioAvailableForDevice(
+                    BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+            `when`(
+                spatializerRepository.isHeadTrackingAvailableForDevice(
+                    BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(true)
+            `when`(spatializerRepository.getSpatialAudioCompatibleDevices()).thenReturn(listOf())
+            `when`(spatializerRepository.isHeadTrackingEnabled(BLE_AUDIO_DEVICE_ATTRIBUTES))
+                .thenReturn(false)
+
+            val setting =
+                getLatestValue(underTest.getDeviceSetting(cachedDevice))
+                    as DeviceSettingModel.MultiTogglePreference
+            setting.updateState(DeviceSettingStateModel.MultiTogglePreferenceState(2))
+            runCurrent()
+
+            assertThat(setting).isNotNull()
+            verify(spatializerRepository, times(1))
+                .addSpatialAudioCompatibleDevice(BLE_AUDIO_DEVICE_ATTRIBUTES)
+            verify(spatializerRepository, times(1))
+                .setHeadTrackingEnabled(BLE_AUDIO_DEVICE_ATTRIBUTES, true)
+        }
+    }
+
+    private fun getLatestValue(deviceSettingFlow: Flow<DeviceSettingModel?>): DeviceSettingModel? {
+        var latestValue: DeviceSettingModel? = null
+        deviceSettingFlow.onEach { latestValue = it }.launchIn(testScope.backgroundScope)
+        testScope.runCurrent()
+        return latestValue
+    }
+
+    private companion object {
+        const val BLUETOOTH_ADDRESS = "12:34:56:78:12:34"
+        val BLE_AUDIO_DEVICE_ATTRIBUTES =
+            AudioDeviceAttributes(
+                AudioDeviceAttributes.ROLE_OUTPUT,
+                AudioDeviceInfo.TYPE_BLE_HEADSET,
+                BLUETOOTH_ADDRESS,
+            )
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatterTest.kt b/tests/robotests/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatterTest.kt
new file mode 100644
index 0000000..251b814
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatterTest.kt
@@ -0,0 +1,250 @@
+/*
+ * 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.bluetooth.ui.view
+
+import android.bluetooth.BluetoothAdapter
+import android.content.Context
+import android.graphics.Bitmap
+import android.media.AudioManager
+import androidx.fragment.app.FragmentActivity
+import androidx.preference.Preference
+import androidx.preference.PreferenceManager
+import androidx.preference.PreferenceScreen
+import androidx.test.core.app.ApplicationProvider
+import com.android.settings.bluetooth.domain.interactor.SpatialAudioInteractor
+import com.android.settings.bluetooth.ui.model.FragmentTypeModel
+import com.android.settings.dashboard.DashboardFragment
+import com.android.settings.testutils.FakeFeatureFactory
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.devicesettings.DeviceSettingId
+import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepository
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingConfigItemModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingConfigModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingIcon
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingStateModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.ToggleModel
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.eq
+import org.mockito.Mock
+import org.mockito.Mockito.any
+import org.mockito.Mockito.`when`
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.robolectric.Robolectric
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.shadows.ShadowLooper.shadowMainLooper
+
+@RunWith(RobolectricTestRunner::class)
+class DeviceDetailsFragmentFormatterTest {
+    @get:Rule val mockitoRule: MockitoRule = MockitoJUnit.rule()
+
+    @Mock private lateinit var cachedDevice: CachedBluetoothDevice
+    @Mock private lateinit var bluetoothAdapter: BluetoothAdapter
+    @Mock private lateinit var repository: DeviceSettingRepository
+    @Mock private lateinit var spatialAudioInteractor: SpatialAudioInteractor
+
+    private lateinit var fragment: TestFragment
+    private lateinit var underTest: DeviceDetailsFragmentFormatter
+    private lateinit var featureFactory: FakeFeatureFactory
+    private val testScope = TestScope()
+
+    @Before
+    fun setUp() {
+        val context = ApplicationProvider.getApplicationContext<Context>()
+        featureFactory = FakeFeatureFactory.setupForTest()
+        `when`(
+                featureFactory.bluetoothFeatureProvider.getDeviceSettingRepository(
+                    eq(context), eq(bluetoothAdapter), any()))
+            .thenReturn(repository)
+        `when`(
+            featureFactory.bluetoothFeatureProvider.getSpatialAudioInteractor(
+                eq(context), any(AudioManager::class.java), any()))
+            .thenReturn(spatialAudioInteractor)
+        val fragmentActivity = Robolectric.setupActivity(FragmentActivity::class.java)
+        assertThat(fragmentActivity.applicationContext).isNotNull()
+        fragment = TestFragment(context)
+        fragmentActivity.supportFragmentManager.beginTransaction().add(fragment, null).commit()
+        shadowMainLooper().idle()
+
+        fragment.preferenceScreen.run {
+            addPreference(Preference(context).apply { key = "bluetooth_device_header" })
+            addPreference(Preference(context).apply { key = "action_buttons" })
+            addPreference(Preference(context).apply { key = "keyboard_settings" })
+        }
+
+        underTest =
+            DeviceDetailsFragmentFormatterImpl(context, fragment, bluetoothAdapter, cachedDevice)
+    }
+
+    @Test
+    fun getVisiblePreferenceKeysForMainPage_hasConfig_returnList() {
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(
+                            DeviceSettingConfigItemModel.BuiltinItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_HEADER,
+                                "bluetooth_device_header"),
+                            DeviceSettingConfigItemModel.BuiltinItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_ACTION_BUTTONS, "action_buttons"),
+                        ),
+                        listOf()))
+
+            val keys = underTest.getVisiblePreferenceKeys(FragmentTypeModel.DeviceDetailsMainFragment)
+
+            assertThat(keys).containsExactly("bluetooth_device_header", "action_buttons")
+        }
+    }
+
+    @Test
+    fun getVisiblePreferenceKeysForMainPage_noConfig_returnNull() {
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice)).thenReturn(null)
+
+            val keys = underTest.getVisiblePreferenceKeys(FragmentTypeModel.DeviceDetailsMainFragment)
+
+            assertThat(keys).isNull()
+        }
+    }
+
+    @Test
+    fun updateLayout_configIsNull_notChange() {
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice)).thenReturn(null)
+
+            underTest.updateLayout(FragmentTypeModel.DeviceDetailsMainFragment)
+
+            assertThat(getDisplayedPreferences().mapNotNull { it.key })
+                .containsExactly("bluetooth_device_header", "action_buttons", "keyboard_settings")
+        }
+    }
+
+    @Test
+    fun updateLayout_itemsNotInConfig_hide() {
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(
+                            DeviceSettingConfigItemModel.BuiltinItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_HEADER,
+                                "bluetooth_device_header"),
+                            DeviceSettingConfigItemModel.BuiltinItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_KEYBOARD_SETTINGS,
+                                "keyboard_settings"),
+                        ),
+                        listOf()))
+
+            underTest.updateLayout(FragmentTypeModel.DeviceDetailsMainFragment)
+
+            assertThat(getDisplayedPreferences().mapNotNull { it.key })
+                .containsExactly("bluetooth_device_header", "keyboard_settings")
+        }
+    }
+
+    @Test
+    fun updateLayout_newItems_displayNewItems() {
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(
+                            DeviceSettingConfigItemModel.BuiltinItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_HEADER,
+                                "bluetooth_device_header"),
+                            DeviceSettingConfigItemModel.AppProvidedItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_ANC),
+                            DeviceSettingConfigItemModel.BuiltinItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_KEYBOARD_SETTINGS,
+                                "keyboard_settings"),
+                        ),
+                        listOf()))
+            `when`(repository.getDeviceSetting(cachedDevice, DeviceSettingId.DEVICE_SETTING_ID_ANC))
+                .thenReturn(
+                    flowOf(
+                        DeviceSettingModel.MultiTogglePreference(
+                            cachedDevice,
+                            DeviceSettingId.DEVICE_SETTING_ID_ANC,
+                            "title",
+                            toggles =
+                                listOf(
+                                    ToggleModel(
+                                        "", DeviceSettingIcon.BitmapIcon(
+                                            Bitmap.createBitmap(
+                                                1,
+                                                1,
+                                                Bitmap.Config.ARGB_8888
+                                            )
+                                        )
+                                    )
+                                ),
+                            isActive = true,
+                            state = DeviceSettingStateModel.MultiTogglePreferenceState(0),
+                            isAllowedChangingState = true,
+                            updateState = {})))
+
+            underTest.updateLayout(FragmentTypeModel.DeviceDetailsMainFragment)
+
+            assertThat(getDisplayedPreferences().mapNotNull { it.key })
+                .containsExactly(
+                    "bluetooth_device_header",
+                    "DEVICE_SETTING_${DeviceSettingId.DEVICE_SETTING_ID_ANC}",
+                    "keyboard_settings")
+        }
+    }
+
+    private fun getDisplayedPreferences(): List<Preference> {
+        val prefs = mutableListOf<Preference>()
+        for (i in 0..<fragment.preferenceScreen.preferenceCount) {
+            prefs.add(fragment.preferenceScreen.getPreference(i))
+        }
+        return prefs
+    }
+
+    class TestFragment(context: Context) : DashboardFragment() {
+        private val mPreferenceManager: PreferenceManager = PreferenceManager(context)
+
+        init {
+            mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context))
+        }
+
+        public override fun getPreferenceScreenResId(): Int = 0
+
+        override fun getLogTag(): String = "TestLogTag"
+
+        override fun getPreferenceScreen(): PreferenceScreen {
+            return mPreferenceManager.preferenceScreen
+        }
+
+        override fun getMetricsCategory(): Int = 0
+
+        override fun getPreferenceManager(): PreferenceManager {
+            return mPreferenceManager
+        }
+    }
+
+    private companion object {}
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModelTest.kt b/tests/robotests/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModelTest.kt
new file mode 100644
index 0000000..378f363
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModelTest.kt
@@ -0,0 +1,252 @@
+/*
+ * 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.bluetooth.ui.viewmodel
+
+import android.app.Application
+import android.bluetooth.BluetoothAdapter
+import android.graphics.Bitmap
+import androidx.test.core.app.ApplicationProvider
+import com.android.settings.bluetooth.domain.interactor.SpatialAudioInteractor
+import com.android.settings.bluetooth.ui.layout.DeviceSettingLayout
+import com.android.settings.bluetooth.ui.model.DeviceSettingPreferenceModel
+import com.android.settings.bluetooth.ui.model.FragmentTypeModel
+import com.android.settings.testutils.FakeFeatureFactory
+import com.android.settingslib.bluetooth.CachedBluetoothDevice
+import com.android.settingslib.bluetooth.devicesettings.DeviceSettingId
+import com.android.settingslib.bluetooth.devicesettings.data.repository.DeviceSettingRepository
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingConfigItemModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingConfigModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingIcon
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.DeviceSettingStateModel
+import com.android.settingslib.bluetooth.devicesettings.shared.model.ToggleModel
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.launchIn
+import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.`when`
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.robolectric.RobolectricTestRunner
+
+@OptIn(ExperimentalCoroutinesApi::class)
+@RunWith(RobolectricTestRunner::class)
+class BluetoothDeviceDetailsViewModelTest {
+    @get:Rule val mockitoRule: MockitoRule = MockitoJUnit.rule()
+
+    @Mock private lateinit var cachedDevice: CachedBluetoothDevice
+
+    @Mock private lateinit var bluetoothAdapter: BluetoothAdapter
+
+    @Mock private lateinit var repository: DeviceSettingRepository
+
+    @Mock private lateinit var spatialAudioInteractor: SpatialAudioInteractor
+
+    private lateinit var underTest: BluetoothDeviceDetailsViewModel
+    private lateinit var featureFactory: FakeFeatureFactory
+    private val testScope = TestScope()
+
+    @Before
+    fun setUp() {
+        val application = ApplicationProvider.getApplicationContext<Application>()
+        featureFactory = FakeFeatureFactory.setupForTest()
+
+        underTest =
+            BluetoothDeviceDetailsViewModel(
+                application, repository, spatialAudioInteractor, cachedDevice)
+    }
+
+    @Test
+    fun getItems_returnConfigMainMainItems() {
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(BUILTIN_SETTING_ITEM_1, BUILDIN_SETTING_ITEM_2), listOf()))
+
+            val keys = underTest.getItems(FragmentTypeModel.DeviceDetailsMainFragment)
+
+            assertThat(keys).containsExactly(BUILTIN_SETTING_ITEM_1, BUILDIN_SETTING_ITEM_2)
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_returnRepositoryResponse() {
+        testScope.runTest {
+            val remoteSettingId1 = 10001
+            val pref = buildMultiTogglePreference(remoteSettingId1)
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(
+                            BUILTIN_SETTING_ITEM_1,
+                            buildRemoteSettingItem(remoteSettingId1),
+                        ),
+                        listOf()))
+            `when`(repository.getDeviceSetting(cachedDevice, remoteSettingId1))
+                .thenReturn(flowOf(pref))
+
+            var deviceSettingPreference: DeviceSettingPreferenceModel? = null
+            underTest
+                .getDeviceSetting(cachedDevice, remoteSettingId1)
+                .onEach { deviceSettingPreference = it }
+                .launchIn(testScope.backgroundScope)
+            runCurrent()
+
+            assertThat(deviceSettingPreference?.id).isEqualTo(pref.id)
+            verify(repository, times(1)).getDeviceSetting(cachedDevice, remoteSettingId1)
+        }
+    }
+
+    @Test
+    fun getDeviceSetting_spatialAudio_returnSpatialAudioInteractorResponse() {
+        testScope.runTest {
+            val pref =
+                buildMultiTogglePreference(
+                    DeviceSettingId.DEVICE_SETTING_ID_SPATIAL_AUDIO_MULTI_TOGGLE)
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(
+                            BUILTIN_SETTING_ITEM_1,
+                            buildRemoteSettingItem(
+                                DeviceSettingId.DEVICE_SETTING_ID_SPATIAL_AUDIO_MULTI_TOGGLE),
+                        ),
+                        listOf()))
+            `when`(spatialAudioInteractor.getDeviceSetting(cachedDevice)).thenReturn(flowOf(pref))
+
+            var deviceSettingPreference: DeviceSettingPreferenceModel? = null
+            underTest
+                .getDeviceSetting(
+                    cachedDevice, DeviceSettingId.DEVICE_SETTING_ID_SPATIAL_AUDIO_MULTI_TOGGLE)
+                .onEach { deviceSettingPreference = it }
+                .launchIn(testScope.backgroundScope)
+            runCurrent()
+
+            assertThat(deviceSettingPreference?.id).isEqualTo(pref.id)
+            verify(spatialAudioInteractor, times(1)).getDeviceSetting(cachedDevice)
+        }
+    }
+
+    @Test
+    fun getLayout_builtinDeviceSettings() {
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(BUILTIN_SETTING_ITEM_1, BUILDIN_SETTING_ITEM_2), listOf()))
+
+            val layout = underTest.getLayout(FragmentTypeModel.DeviceDetailsMainFragment)!!
+
+            assertThat(getLatestLayout(layout))
+                .isEqualTo(
+                    listOf(
+                        listOf(DeviceSettingId.DEVICE_SETTING_ID_HEADER),
+                        listOf(DeviceSettingId.DEVICE_SETTING_ID_ACTION_BUTTONS)))
+        }
+    }
+
+    @Test
+    fun getLayout_remoteDeviceSettings() {
+        val remoteSettingId1 = 10001
+        val remoteSettingId2 = 10002
+        val remoteSettingId3 = 10003
+        testScope.runTest {
+            `when`(repository.getDeviceSettingsConfig(cachedDevice))
+                .thenReturn(
+                    DeviceSettingConfigModel(
+                        listOf(
+                            BUILTIN_SETTING_ITEM_1,
+                            buildRemoteSettingItem(remoteSettingId1),
+                            buildRemoteSettingItem(remoteSettingId2),
+                            buildRemoteSettingItem(remoteSettingId3),
+                        ),
+                        listOf()))
+            `when`(repository.getDeviceSetting(cachedDevice, remoteSettingId1))
+                .thenReturn(flowOf(buildMultiTogglePreference(remoteSettingId1)))
+            `when`(repository.getDeviceSetting(cachedDevice, remoteSettingId2))
+                .thenReturn(flowOf(buildMultiTogglePreference(remoteSettingId2)))
+            `when`(repository.getDeviceSetting(cachedDevice, remoteSettingId3))
+                .thenReturn(flowOf(buildActionSwitchPreference(remoteSettingId3)))
+
+            val layout = underTest.getLayout(FragmentTypeModel.DeviceDetailsMainFragment)!!
+
+            assertThat(getLatestLayout(layout))
+                .isEqualTo(
+                    listOf(
+                        listOf(DeviceSettingId.DEVICE_SETTING_ID_HEADER),
+                        listOf(remoteSettingId1, remoteSettingId2),
+                        listOf(remoteSettingId3),
+                    ))
+        }
+    }
+
+    private fun getLatestLayout(layout: DeviceSettingLayout): List<List<Int>> {
+        var latestLayout = MutableList(layout.rows.size) { emptyList<Int>() }
+        for (i in layout.rows.indices) {
+            layout.rows[i]
+                .settingIds
+                .onEach { latestLayout[i] = it }
+                .launchIn(testScope.backgroundScope)
+        }
+
+        testScope.runCurrent()
+        return latestLayout.filter { !it.isEmpty() }.toList()
+    }
+
+    private fun buildMultiTogglePreference(settingId: Int) =
+        DeviceSettingModel.MultiTogglePreference(
+            cachedDevice,
+            settingId,
+            "title",
+            toggles =
+                listOf(
+                    ToggleModel(
+                        "toggle1",
+                        DeviceSettingIcon.BitmapIcon(
+                            Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888)))),
+            isActive = true,
+            state = DeviceSettingStateModel.MultiTogglePreferenceState(0),
+            isAllowedChangingState = true,
+            updateState = {})
+
+    private fun buildActionSwitchPreference(settingId: Int) =
+        DeviceSettingModel.ActionSwitchPreference(cachedDevice, settingId, "title")
+
+    private fun buildRemoteSettingItem(settingId: Int) =
+        DeviceSettingConfigItemModel.AppProvidedItem(settingId)
+
+    private companion object {
+        val BUILTIN_SETTING_ITEM_1 =
+            DeviceSettingConfigItemModel.BuiltinItem(
+                DeviceSettingId.DEVICE_SETTING_ID_HEADER, "bluetooth_device_header")
+        val BUILDIN_SETTING_ITEM_2 =
+            DeviceSettingConfigItemModel.BuiltinItem(
+                DeviceSettingId.DEVICE_SETTING_ID_ACTION_BUTTONS, "action_buttons")
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceGroupControllerTest.java
index d28ab3b..5a9f2bc 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceGroupControllerTest.java
@@ -17,6 +17,8 @@
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
 import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+import static com.android.settings.flags.Flags.FLAG_RESOLUTION_AND_ENABLE_CONNECTED_DISPLAY_SETTING;
+import static com.android.settings.flags.Flags.FLAG_ROTATION_CONNECTED_DISPLAY_SETTING;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -30,6 +32,7 @@
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.hardware.input.InputManager;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
@@ -40,13 +43,16 @@
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.bluetooth.ConnectedBluetoothDeviceUpdater;
 import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.display.ExternalDisplayUpdater;
 import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.connecteddevice.stylus.StylusDeviceUpdater;
 import com.android.settings.connecteddevice.usb.ConnectedUsbDeviceUpdater;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.FakeFeatureFlagsImpl;
 import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
@@ -65,7 +71,6 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplicationPackageManager;
@@ -84,6 +89,8 @@
     @Mock
     private DashboardFragment mDashboardFragment;
     @Mock
+    private ExternalDisplayUpdater mExternalDisplayUpdater;
+    @Mock
     private ConnectedBluetoothDeviceUpdater mConnectedBluetoothDeviceUpdater;
     @Mock
     private ConnectedUsbDeviceUpdater mConnectedUsbDeviceUpdater;
@@ -105,6 +112,9 @@
     private CachedBluetoothDevice mCachedDevice;
     @Mock
     private BluetoothDevice mDevice;
+    @Mock
+    private Resources mResources;
+    private final FakeFeatureFlagsImpl mFakeFeatureFlags = new FakeFeatureFlagsImpl();
 
     private ShadowApplicationPackageManager mPackageManager;
     private PreferenceGroup mPreferenceGroup;
@@ -118,8 +128,10 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        mFakeFeatureFlags.setFlag(FLAG_ROTATION_CONNECTED_DISPLAY_SETTING, true);
+        mFakeFeatureFlags.setFlag(FLAG_RESOLUTION_AND_ENABLE_CONNECTED_DISPLAY_SETTING, true);
 
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(ApplicationProvider.getApplicationContext());
         mPreference = new Preference(mContext);
         mPreference.setKey(PREFERENCE_KEY_1);
         mPackageManager = (ShadowApplicationPackageManager) Shadows.shadowOf(
@@ -129,15 +141,19 @@
         doReturn(mContext).when(mDashboardFragment).getContext();
         mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, true);
         when(mContext.getSystemService(InputManager.class)).thenReturn(mInputManager);
+        when(mContext.getResources()).thenReturn(mResources);
         when(mInputManager.getInputDeviceIds()).thenReturn(new int[]{});
 
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
         mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
         when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
 
-        mConnectedDeviceGroupController = new ConnectedDeviceGroupController(mContext);
-        mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
-                mConnectedUsbDeviceUpdater, mConnectedDockUpdater, mStylusDeviceUpdater);
+        mConnectedDeviceGroupController = spy(new ConnectedDeviceGroupController(mContext));
+        when(mConnectedDeviceGroupController.getFeatureFlags()).thenReturn(mFakeFeatureFlags);
+
+        mConnectedDeviceGroupController.init(mExternalDisplayUpdater,
+                mConnectedBluetoothDeviceUpdater, mConnectedUsbDeviceUpdater, mConnectedDockUpdater,
+                mStylusDeviceUpdater);
         mConnectedDeviceGroupController.mPreferenceGroup = mPreferenceGroup;
 
         when(mCachedDevice.getName()).thenReturn(DEVICE_NAME);
@@ -147,6 +163,7 @@
 
         FeatureFlagUtils.setEnabled(mContext, FeatureFlagUtils.SETTINGS_SHOW_STYLUS_PREFERENCES,
                 true);
+        when(mPreferenceScreen.getContext()).thenReturn(mContext);
     }
 
     @Test
@@ -193,6 +210,7 @@
         // register the callback in onStart()
         mConnectedDeviceGroupController.onStart();
 
+        verify(mExternalDisplayUpdater).registerCallback();
         verify(mConnectedBluetoothDeviceUpdater).registerCallback();
         verify(mConnectedUsbDeviceUpdater).registerCallback();
         verify(mConnectedDockUpdater).registerCallback();
@@ -204,6 +222,7 @@
     public void onStop_shouldUnregisterUpdaters() {
         // unregister the callback in onStop()
         mConnectedDeviceGroupController.onStop();
+        verify(mExternalDisplayUpdater).unregisterCallback();
         verify(mConnectedBluetoothDeviceUpdater).unregisterCallback();
         verify(mConnectedUsbDeviceUpdater).unregisterCallback();
         verify(mConnectedDockUpdater).unregisterCallback();
@@ -212,10 +231,12 @@
 
     @Test
     public void getAvailabilityStatus_noBluetoothUsbDockFeature_returnUnSupported() {
+        mFakeFeatureFlags.setFlag(FLAG_ROTATION_CONNECTED_DISPLAY_SETTING, false);
+        mFakeFeatureFlags.setFlag(FLAG_RESOLUTION_AND_ENABLE_CONNECTED_DISPLAY_SETTING, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_ACCESSORY, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_HOST, false);
-        mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
+        mConnectedDeviceGroupController.init(null, mConnectedBluetoothDeviceUpdater,
                 mConnectedUsbDeviceUpdater, null, null);
 
         assertThat(mConnectedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
@@ -223,11 +244,23 @@
     }
 
     @Test
+    public void getAvailabilityStatus_connectedDisplay_returnSupported() {
+        mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, false);
+        mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_ACCESSORY, false);
+        mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_HOST, false);
+        mConnectedDeviceGroupController.init(null, mConnectedBluetoothDeviceUpdater,
+                mConnectedUsbDeviceUpdater, null, null);
+
+        assertThat(mConnectedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
+                AVAILABLE_UNSEARCHABLE);
+    }
+
+    @Test
     public void getAvailabilityStatus_BluetoothFeature_returnSupported() {
         mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, true);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_ACCESSORY, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_HOST, false);
-        mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
+        mConnectedDeviceGroupController.init(null, mConnectedBluetoothDeviceUpdater,
                 mConnectedUsbDeviceUpdater, null, null);
 
         assertThat(mConnectedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
@@ -239,7 +272,7 @@
         mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_ACCESSORY, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_HOST, true);
-        mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
+        mConnectedDeviceGroupController.init(null, mConnectedBluetoothDeviceUpdater,
                 mConnectedUsbDeviceUpdater, null, null);
 
         assertThat(mConnectedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
@@ -251,7 +284,7 @@
         mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_ACCESSORY, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_HOST, false);
-        mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
+        mConnectedDeviceGroupController.init(null, mConnectedBluetoothDeviceUpdater,
                 mConnectedUsbDeviceUpdater, mConnectedDockUpdater, null);
 
         assertThat(mConnectedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
@@ -261,6 +294,8 @@
 
     @Test
     public void getAvailabilityStatus_noUsiStylusFeature_returnUnSupported() {
+        mFakeFeatureFlags.setFlag(FLAG_ROTATION_CONNECTED_DISPLAY_SETTING, false);
+        mFakeFeatureFlags.setFlag(FLAG_RESOLUTION_AND_ENABLE_CONNECTED_DISPLAY_SETTING, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_ACCESSORY, false);
         mPackageManager.setSystemFeature(PackageManager.FEATURE_USB_HOST, false);
@@ -268,7 +303,7 @@
         when(mInputManager.getInputDevice(0)).thenReturn(new InputDevice.Builder().setSources(
                 InputDevice.SOURCE_DPAD).setExternal(false).build());
 
-        mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
+        mConnectedDeviceGroupController.init(null, mConnectedBluetoothDeviceUpdater,
                 mConnectedUsbDeviceUpdater, null, mStylusDeviceUpdater);
 
         assertThat(mConnectedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
@@ -284,7 +319,7 @@
         when(mInputManager.getInputDevice(0)).thenReturn(new InputDevice.Builder().setSources(
                 InputDevice.SOURCE_STYLUS).setExternal(false).build());
 
-        mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
+        mConnectedDeviceGroupController.init(null, mConnectedBluetoothDeviceUpdater,
                 mConnectedUsbDeviceUpdater, mConnectedDockUpdater, mStylusDeviceUpdater);
 
         assertThat(mConnectedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdaterTest.java
index 785b1dc..879c6a4 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdaterTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
+import static com.android.settings.connecteddevice.audiosharing.AudioSharingBluetoothDeviceUpdater.PREF_KEY_PREFIX;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -85,7 +87,6 @@
 public class AudioSharingBluetoothDeviceUpdaterTest {
     private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
     private static final String TEST_DEVICE_NAME = "test";
-    private static final String PREF_KEY = "audio_sharing_bt";
     private static final String TAG = "AudioSharingBluetoothDeviceUpdater";
 
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -263,7 +264,7 @@
 
     @Test
     public void getPreferenceKey_returnsCorrectKey() {
-        assertThat(mDeviceUpdater.getPreferenceKey()).isEqualTo(PREF_KEY);
+        assertThat(mDeviceUpdater.getPreferenceKeyPrefix()).isEqualTo(PREF_KEY_PREFIX);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java
index 7f0c1c9..ceafcf0 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioDialogFragmentTest.java
@@ -23,6 +23,7 @@
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothStatusCodes;
+import android.os.Bundle;
 import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.appcompat.app.AlertDialog;
@@ -78,10 +79,6 @@
                 BluetoothStatusCodes.FEATURE_SUPPORTED);
         shadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
                 BluetoothStatusCodes.FEATURE_SUPPORTED);
-        mFragment = new AudioSharingCallAudioDialogFragment();
-        mParent = new Fragment();
-        FragmentController.setupFragment(
-                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
     }
 
     @After
@@ -91,6 +88,7 @@
 
     @Test
     public void getMetricsCategory_correctValue() {
+        mFragment = new AudioSharingCallAudioDialogFragment();
         assertThat(mFragment.getMetricsCategory())
                 .isEqualTo(SettingsEnums.DIALOG_AUDIO_SHARING_CALL_AUDIO);
     }
@@ -98,21 +96,52 @@
     @Test
     public void onCreateDialog_flagOff_dialogNotExist() {
         mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
-        mFragment.show(mParent, new ArrayList<>(), (item) -> {});
+        mParent = new Fragment();
+        FragmentController.setupFragment(
+                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+        AudioSharingCallAudioDialogFragment.show(mParent, new ArrayList<>(), -1, (item) -> {});
         shadowMainLooper().idle();
         AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNull();
     }
 
     @Test
+    public void onCreateDialog_unattachedFragment_dialogNotExist() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mParent = new Fragment();
+        AudioSharingCallAudioDialogFragment.show(mParent, new ArrayList<>(), -1, (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
+    public void onCreateDialog_nullDeviceItems_showEmptyDialog() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mFragment = new AudioSharingCallAudioDialogFragment();
+        mFragment.setArguments(Bundle.EMPTY);
+        FragmentController.setupFragment(
+                mFragment, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+        AlertDialog dialog = (AlertDialog) mFragment.onCreateDialog(Bundle.EMPTY);
+        dialog.show();
+        shadowMainLooper().idle();
+        assertThat(dialog.isShowing()).isTrue();
+        assertThat(dialog.getListView()).isNull();
+    }
+
+    @Test
     public void onCreateDialog_showCorrectItems() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mParent = new Fragment();
+        FragmentController.setupFragment(
+                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
         ArrayList<AudioSharingDeviceItem> deviceItemList = new ArrayList<>();
         deviceItemList.add(TEST_DEVICE_ITEM1);
         deviceItemList.add(TEST_DEVICE_ITEM2);
-        mFragment.show(mParent, deviceItemList, (item) -> {});
+        AudioSharingCallAudioDialogFragment.show(mParent, deviceItemList, 0, (item) -> {});
         shadowMainLooper().idle();
         AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
         assertThat(dialog.getListView().getCount()).isEqualTo(2);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java
index c72b5a5..87ae3d5 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCallAudioPreferenceControllerTest.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
 
@@ -64,6 +63,7 @@
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
@@ -197,7 +197,8 @@
         verify(mBtEventManager, never()).registerCallback(mController);
         verify(mContentResolver, never())
                 .registerContentObserver(
-                        Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+                        Settings.Secure.getUriFor(
+                                BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
                         false,
                         mContentObserver);
         verify(mAssistant, never())
@@ -211,7 +212,8 @@
         verify(mBtEventManager).registerCallback(mController);
         verify(mContentResolver)
                 .registerContentObserver(
-                        Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+                        Settings.Secure.getUriFor(
+                                BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
                         false,
                         mContentObserver);
         verify(mAssistant)
@@ -319,9 +321,7 @@
     public void onProfileConnectionStateChanged_noDeviceInSharing_updateSummary() {
         Settings.Secure.putInt(mContentResolver, TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID1);
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of());
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
         mController.displayPreference(mScreen);
         mPreference.setSummary("test");
         mController.onProfileConnectionStateChanged(
@@ -340,9 +340,7 @@
         when(mCachedDevice1.getName()).thenReturn(TEST_DEVICE_NAME1);
         when(mCacheManager.findDevice(mDevice1)).thenReturn(mCachedDevice1);
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of(mDevice1));
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mController.displayPreference(mScreen);
         mContentObserver.onChange(true);
@@ -369,8 +367,7 @@
         when(mCacheManager.findDevice(mDevice2)).thenReturn(mCachedDevice2);
         when(mCacheManager.findDevice(mDevice3)).thenReturn(mCachedDevice3);
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
+        when(mAssistant.getAllConnectedDevices())
                 .thenReturn(ImmutableList.of(mDevice1, mDevice2, mDevice3));
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mController.displayPreference(mScreen);
@@ -389,9 +386,7 @@
         when(mCachedDevice1.getName()).thenReturn(TEST_DEVICE_NAME1);
         when(mCacheManager.findDevice(mDevice1)).thenReturn(mCachedDevice1);
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of(mDevice1));
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mController.displayPreference(mScreen);
         shadowOf(Looper.getMainLooper()).idle();
@@ -403,9 +398,7 @@
         Settings.Secure.putInt(
                 mContentResolver, TEST_SETTINGS_KEY, BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of());
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
         mController.displayPreference(mScreen);
         shadowOf(Looper.getMainLooper()).idle();
         assertThat(mPreference.getSummary().toString()).isEmpty();
@@ -429,9 +422,7 @@
         when(mCacheManager.findDevice(mDevice2)).thenReturn(mCachedDevice2);
         mShadowBluetoothAdapter.setMostRecentlyConnectedDevices(List.of(mDevice1, mDevice2));
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of(mDevice1, mDevice2));
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1, mDevice2));
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mController.init(mParentFragment);
         mController.displayPreference(mScreen);
@@ -521,18 +512,14 @@
         Settings.Secure.putInt(
                 mContentResolver, TEST_SETTINGS_KEY, BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of());
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
         mController.displayPreference(mScreen);
         shadowOf(Looper.getMainLooper()).idle();
         assertThat(mPreference.getSummary().toString()).isEmpty();
 
         // onReceiveStateChanged will update summary
         Settings.Secure.putInt(mContentResolver, TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID1);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of(mDevice1));
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mController.mBroadcastAssistantCallback.onReceiveStateChanged(
                 mDevice1, /* sourceId= */ 1, mState);
@@ -552,17 +539,13 @@
         Settings.Secure.putInt(
                 mContentResolver, TEST_SETTINGS_KEY, BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
         when(mBroadcast.isEnabled(any())).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of());
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
         mController.displayPreference(mScreen);
         shadowOf(Looper.getMainLooper()).idle();
         assertThat(mPreference.getSummary().toString()).isEmpty();
 
         Settings.Secure.putInt(mContentResolver, TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID1);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of(mDevice1));
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mController.mBroadcastAssistantCallback.onSearchStarted(/* reason= */ 1);
         mController.mBroadcastAssistantCallback.onSearchStartFailed(/* reason= */ 1);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragmentTest.java
index 32f666f..9aa00fb 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingConfirmDialogFragmentTest.java
@@ -96,6 +96,15 @@
     }
 
     @Test
+    public void onCreateDialog_unattachedFragment_dialogNotExist() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        AudioSharingConfirmDialogFragment.show(new Fragment());
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
     public void onCreateDialog_flagOn_showDialog() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         AudioSharingConfirmDialogFragment.show(mParent);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java
index 8e4915c..7d8846d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java
@@ -21,10 +21,12 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Bundle;
+import android.view.View;
 
 import androidx.test.core.app.ApplicationProvider;
 
@@ -52,6 +54,7 @@
 
     @Mock private SettingsActivity mActivity;
     @Mock private SettingsMainSwitchBar mSwitchBar;
+    @Mock private View mView;
     @Mock private AudioSharingDeviceVolumeGroupController mVolumeGroupController;
     @Mock private AudioSharingCallAudioPreferenceController mCallAudioController;
     @Mock private AudioSharingPlaySoundPreferenceController mPlaySoundController;
@@ -61,6 +64,7 @@
 
     @Before
     public void setUp() {
+        when(mSwitchBar.getRootView()).thenReturn(mView);
         mFragment = new AudioSharingDashboardFragment();
     }
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java
index 18f75ba..03f1303 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceControllerTest.java
@@ -30,9 +30,11 @@
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoInteractions;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
+import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothLeBroadcastAssistant;
@@ -57,6 +59,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settings.testutils.shadow.ShadowFragment;
@@ -136,6 +139,7 @@
     private LifecycleOwner mLifecycleOwner;
     private PreferenceCategory mPreferenceGroup;
     private Preference mAudioSharingPreference;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
@@ -148,6 +152,7 @@
                 BluetoothStatusCodes.FEATURE_SUPPORTED);
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
         mLocalBtManager = Utils.getLocalBtManager(mContext);
         when(mLocalBtManager.getEventManager()).thenReturn(mEventManager);
@@ -175,6 +180,7 @@
                 .thenReturn(mAudioSharingPreference);
         when(mScreen.findPreference(KEY)).thenReturn(mPreferenceGroup);
         mController = new AudioSharingDevicePreferenceController(mContext);
+        mController.init(mFragment);
         mController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
         mController.setDialogHandler(mDialogHandler);
         doReturn(mActivity).when(mFragment).getActivity();
@@ -297,7 +303,7 @@
 
     @Test
     public void onProfileConnectionStateChanged_notMediaDevice_doNothing() {
-        doReturn(ImmutableList.of()).when(mCachedDevice).getConnectableProfiles();
+        doReturn(ImmutableList.of()).when(mCachedDevice).getUiAccessibleProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.HID_DEVICE);
         verifyNoInteractions(mDialogHandler);
@@ -307,7 +313,7 @@
     public void onProfileConnectionStateChanged_leaDeviceDisconnected_closeOpeningDialogsForIt() {
         // Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT disconnected.
         when(mDevice.isConnected()).thenReturn(true);
-        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice,
@@ -319,7 +325,7 @@
     @Test
     public void onProfileConnectionStateChanged_assistantProfileConnecting_doNothing() {
         // Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT connecting
-        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice,
@@ -332,7 +338,7 @@
     public void onProfileConnectionStateChanged_otherProfileConnected_doNothing() {
         // Test when LEA device other profile connected
         when(mDevice.isConnected()).thenReturn(true);
-        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -343,7 +349,7 @@
     public void onProfileConnectionStateChanged_otherProfileConnecting_doNothing() {
         // Test when LEA device other profile connecting
         when(mDevice.isConnected()).thenReturn(true);
-        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice, BluetoothAdapter.STATE_CONNECTING, BluetoothProfile.A2DP);
@@ -354,7 +360,7 @@
     public void onProfileConnectionStateChanged_assistantProfileConnected_handle() {
         // Test when LEA device LE_AUDIO_BROADCAST_ASSISTANT connected
         when(mDevice.isConnected()).thenReturn(true);
-        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getConnectableProfiles();
+        doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mLeAudioProfile)).when(mCachedDevice).getProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice,
@@ -368,7 +374,7 @@
             onProfileConnectionStateChanged_nonLeaDeviceDisconnected_closeOpeningDialogsForIt() {
         // Test when non-LEA device totally disconnected
         when(mLeAudioProfile.isEnabled(mDevice)).thenReturn(false);
-        doReturn(ImmutableList.of(mA2dpProfile)).when(mCachedDevice).getConnectableProfiles();
+        doReturn(ImmutableList.of(mA2dpProfile)).when(mCachedDevice).getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mLeAudioProfile, mA2dpProfile)).when(mCachedDevice).getProfiles();
         when(mCachedDevice.isConnected()).thenReturn(false);
         mController.onProfileConnectionStateChanged(
@@ -384,7 +390,7 @@
                 .thenReturn(BluetoothAdapter.STATE_CONNECTED);
         doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile))
                 .when(mCachedDevice)
-                .getConnectableProfiles();
+                .getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile)).when(mCachedDevice).getProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -399,7 +405,7 @@
                 .thenReturn(BluetoothAdapter.STATE_DISCONNECTED);
         doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile))
                 .when(mCachedDevice)
-                .getConnectableProfiles();
+                .getUiAccessibleProfiles();
         doReturn(ImmutableList.of(mA2dpProfile, mHeadsetProfile)).when(mCachedDevice).getProfiles();
         mController.onProfileConnectionStateChanged(
                 mCachedDevice, BluetoothAdapter.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -527,6 +533,25 @@
     }
 
     @Test
+    public void testBluetoothLeBroadcastAssistantCallbacks_logAction() {
+        mController.mBroadcastAssistantCallback.onSourceAddFailed(
+                mDevice, mSource, /* reason= */ 1);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_JOIN_FAILED,
+                        SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
+
+        mController.mBroadcastAssistantCallback.onSourceRemoveFailed(
+                mDevice, /* sourceId= */ 1, /* reason= */ 1);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_LEAVE_FAILED,
+                        SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
+    }
+
+    @Test
     public void testBluetoothLeBroadcastAssistantCallbacks_doNothing() {
         mController.mBroadcastAssistantCallback.onSearchStarted(/* reason= */ 1);
         mController.mBroadcastAssistantCallback.onSearchStartFailed(/* reason= */ 1);
@@ -534,10 +559,6 @@
         mController.mBroadcastAssistantCallback.onSearchStopFailed(/* reason= */ 1);
         mController.mBroadcastAssistantCallback.onSourceAdded(
                 mDevice, /* sourceId= */ 1, /* reason= */ 1);
-        mController.mBroadcastAssistantCallback.onSourceAddFailed(
-                mDevice, mSource, /* reason= */ 1);
-        mController.mBroadcastAssistantCallback.onSourceRemoveFailed(
-                mDevice, /* sourceId= */ 1, /* reason= */ 1);
         mController.mBroadcastAssistantCallback.onSourceModified(
                 mDevice, /* sourceId= */ 1, /* reason= */ 1);
         mController.mBroadcastAssistantCallback.onSourceModifyFailed(
@@ -546,7 +567,8 @@
         mController.mBroadcastAssistantCallback.onSourceLost(/* broadcastId= */ 1);
         shadowOf(Looper.getMainLooper()).idle();
 
-        // Above callbacks won't update group preference
+        // Above callbacks won't update group preference and log actions
         verify(mBluetoothDeviceUpdater, never()).forceUpdate();
+        verifyNoMoreInteractions(mFeatureFactory.metricsFeatureProvider);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java
index e7cfb85..95e51e9 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdaterTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
+import static com.android.settings.connecteddevice.audiosharing.AudioSharingDeviceVolumeControlUpdater.PREF_KEY_PREFIX;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -29,15 +31,11 @@
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
-import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
-import android.media.AudioManager;
 import android.os.Looper;
-import android.provider.Settings;
-import android.widget.SeekBar;
 
 import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
@@ -45,7 +43,6 @@
 import com.android.settings.bluetooth.BluetoothDevicePreference;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
-import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
@@ -53,7 +50,6 @@
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
-import com.android.settingslib.bluetooth.VolumeControlProfile;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -78,14 +74,7 @@
 @Config(shadows = {ShadowBluetoothUtils.class})
 public class AudioSharingDeviceVolumeControlUpdaterTest {
     private static final String TEST_DEVICE_NAME = "test";
-    private static final String TAG = "AudioSharingDeviceVolumeControlUpdater";
-    private static final String PREF_KEY = "audio_sharing_volume_control";
-    private static final String TEST_SETTINGS_KEY =
-            "bluetooth_le_broadcast_fallback_active_group_id";
-    private static final int TEST_DEVICE_GROUP_ID = 1;
-    private static final int TEST_VOLUME_VALUE = 255;
-    private static final int TEST_MAX_STREAM_VALUE = 10;
-    private static final int TEST_MIN_STREAM_VALUE = 0;
+    private static final String TAG = "AudioSharingVolUpdater";
 
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
@@ -97,39 +86,32 @@
     @Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
     @Mock private LocalBluetoothLeBroadcast mBroadcast;
     @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
-    @Mock private VolumeControlProfile mVolumeControl;
     @Mock private BluetoothLeBroadcastReceiveState mState;
-    @Mock private AudioManager mAudioManager;
 
     private Context mContext;
     private AudioSharingDeviceVolumeControlUpdater mDeviceUpdater;
     private Collection<CachedBluetoothDevice> mCachedDevices;
-    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
-        mContext = spy(ApplicationProvider.getApplicationContext());
+        mContext = ApplicationProvider.getApplicationContext();
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
         mLocalBtManager = Utils.getLocalBtManager(mContext);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
         when(mLocalBtManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
         when(mLocalBtManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
         when(mLocalBtProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
         when(mLocalBtProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(mAssistant);
-        when(mLocalBtProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControl);
         List<Long> bisSyncState = new ArrayList<>();
         bisSyncState.add(1L);
         when(mState.getBisSyncState()).thenReturn(bisSyncState);
         doReturn(TEST_DEVICE_NAME).when(mCachedBluetoothDevice).getName();
         doReturn(mBluetoothDevice).when(mCachedBluetoothDevice).getDevice();
         doReturn(ImmutableSet.of()).when(mCachedBluetoothDevice).getMemberDevice();
-        doReturn(TEST_DEVICE_GROUP_ID).when(mCachedBluetoothDevice).getGroupId();
         mCachedDevices = new ArrayList<>();
         mCachedDevices.add(mCachedBluetoothDevice);
         when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
         doNothing().when(mDevicePreferenceCallback).onDeviceAdded(any(Preference.class));
         doNothing().when(mDevicePreferenceCallback).onDeviceRemoved(any(Preference.class));
-        when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
         mDeviceUpdater =
                 spy(
                         new AudioSharingDeviceVolumeControlUpdater(
@@ -250,83 +232,13 @@
     }
 
     @Test
-    public void addPreference_notFallbackDevice_setDeviceVolume() {
-        ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class);
-        setupPreferenceMapWithDevice();
-
-        verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
-        assertThat(captor.getValue() instanceof AudioSharingDeviceVolumePreference).isTrue();
-        AudioSharingDeviceVolumePreference preference =
-                (AudioSharingDeviceVolumePreference) captor.getValue();
-
-        SeekBar seekBar = mock(SeekBar.class);
-        when(seekBar.getProgress()).thenReturn(TEST_VOLUME_VALUE);
-        preference.onStopTrackingTouch(seekBar);
-
-        verify(mVolumeControl)
-                .setDeviceVolume(mBluetoothDevice, TEST_VOLUME_VALUE, /* isGroupOp= */ true);
-        verifyNoInteractions(mAudioManager);
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        mContext,
-                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
-                        /* isPrimary= */ false);
-    }
-
-    @Test
-    public void addPreference_fallbackDevice_setStreamVolume() {
-        ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class);
-        setupPreferenceMapWithDevice();
-
-        verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
-        assertThat(captor.getValue() instanceof AudioSharingDeviceVolumePreference).isTrue();
-        AudioSharingDeviceVolumePreference preference =
-                (AudioSharingDeviceVolumePreference) captor.getValue();
-
-        Settings.Secure.putInt(
-                mContext.getContentResolver(), TEST_SETTINGS_KEY, TEST_DEVICE_GROUP_ID);
-        when(mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC))
-                .thenReturn(TEST_MAX_STREAM_VALUE);
-        when(mAudioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC))
-                .thenReturn(TEST_MIN_STREAM_VALUE);
-        SeekBar seekBar = mock(SeekBar.class);
-        when(seekBar.getProgress()).thenReturn(TEST_VOLUME_VALUE);
-        preference.onStopTrackingTouch(seekBar);
-
-        verifyNoInteractions(mVolumeControl);
-        verify(mAudioManager)
-                .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        mContext,
-                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
-                        /* isPrimary= */ true);
-    }
-
-    @Test
-    public void testOnSeekBarChangeListener_doNothing() {
-        ArgumentCaptor<Preference> captor = ArgumentCaptor.forClass(Preference.class);
-        setupPreferenceMapWithDevice();
-
-        verify(mDevicePreferenceCallback).onDeviceAdded(captor.capture());
-        assertThat(captor.getValue() instanceof AudioSharingDeviceVolumePreference).isTrue();
-        AudioSharingDeviceVolumePreference preference =
-                (AudioSharingDeviceVolumePreference) captor.getValue();
-        SeekBar seekBar = mock(SeekBar.class);
-        preference.onProgressChanged(seekBar, TEST_VOLUME_VALUE, /* fromUser= */ false);
-
-        verifyNoInteractions(mAudioManager);
-        verifyNoInteractions(mVolumeControl);
-    }
-
-    @Test
     public void getLogTag_returnsCorrectTag() {
         assertThat(mDeviceUpdater.getLogTag()).isEqualTo(TAG);
     }
 
     @Test
     public void getPreferenceKey_returnsCorrectKey() {
-        assertThat(mDeviceUpdater.getPreferenceKey()).isEqualTo(PREF_KEY);
+        assertThat(mDeviceUpdater.getPreferenceKeyPrefix()).isEqualTo(PREF_KEY_PREFIX);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java
index f2f0a2f..d8c663f 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupControllerTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.connecteddevice.audiosharing;
 
-import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -59,6 +57,7 @@
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
@@ -208,7 +207,8 @@
                 .registerCallback(any(Executor.class), any(BluetoothVolumeControl.Callback.class));
         verify(mContentResolver, never())
                 .registerContentObserver(
-                        Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+                        Settings.Secure.getUriFor(
+                                BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
                         false,
                         mContentObserver);
     }
@@ -223,11 +223,9 @@
         verify(mDeviceUpdater).registerCallback();
         verify(mVolumeControl)
                 .registerCallback(any(Executor.class), any(BluetoothVolumeControl.Callback.class));
-        verify(mContentResolver)
-                .registerContentObserver(
-                        Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
-                        false,
-                        mContentObserver);
+        verify(mContentResolver).registerContentObserver(
+                Settings.Secure.getUriFor(BluetoothUtils.getPrimaryGroupIdUriForBroadcast()), false,
+                mContentObserver);
     }
 
     @Test
@@ -242,7 +240,8 @@
                 .registerCallback(any(Executor.class), any(BluetoothVolumeControl.Callback.class));
         verify(mContentResolver)
                 .registerContentObserver(
-                        Settings.Secure.getUriFor(SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID),
+                        Settings.Secure.getUriFor(
+                                BluetoothUtils.getPrimaryGroupIdUriForBroadcast()),
                         false,
                         mContentObserver);
     }
@@ -317,7 +316,8 @@
     @Test
     public void onDeviceAdded_rankFallbackDeviceOnTop() {
         Settings.Secure.putInt(
-                mContentResolver, SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID, TEST_DEVICE_GROUP_ID2);
+                mContentResolver, BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+                TEST_DEVICE_GROUP_ID2);
         when(mPreference1.getProgress()).thenReturn(TEST_VOLUME_VALUE);
         when(mPreference2.getProgress()).thenReturn(TEST_VOLUME_VALUE);
         mController.setPreferenceGroup(mPreferenceGroup);
@@ -427,7 +427,8 @@
     @Test
     public void settingsObserverOnChange_updatePreferenceOrder() {
         Settings.Secure.putInt(
-                mContentResolver, SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID, TEST_DEVICE_GROUP_ID2);
+                mContentResolver, BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+                TEST_DEVICE_GROUP_ID2);
         when(mPreference1.getProgress()).thenReturn(TEST_VOLUME_VALUE);
         when(mPreference2.getProgress()).thenReturn(TEST_VOLUME_VALUE);
         mController.setPreferenceGroup(mPreferenceGroup);
@@ -435,8 +436,8 @@
         mController.onDeviceAdded(mPreference2);
         shadowOf(Looper.getMainLooper()).idle();
 
-        Settings.Secure.putInt(
-                mContentResolver, SETTINGS_KEY_FALLBACK_DEVICE_GROUP_ID, TEST_DEVICE_GROUP_ID1);
+        Settings.Secure.putInt(mContentResolver, BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+                TEST_DEVICE_GROUP_ID1);
         mContentObserver.onChange(true);
         shadowOf(Looper.getMainLooper()).idle();
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java
index 8ceb0eb..5ff143f 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreferenceTest.java
@@ -18,11 +18,32 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothDevice;
 import android.content.Context;
+import android.media.AudioManager;
+import android.provider.Settings;
+import android.widget.SeekBar;
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.bluetooth.VolumeControlProfile;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -32,18 +53,45 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowBluetoothUtils.class})
 public class AudioSharingDeviceVolumePreferenceTest {
+    private static final int TEST_DEVICE_GROUP_ID = 1;
+    private static final int TEST_VOLUME_VALUE = 255;
+    private static final int TEST_MAX_STREAM_VALUE = 10;
+    private static final int TEST_MIN_STREAM_VALUE = 0;
+
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
+    @Mock private LocalBluetoothManager mLocalBtManager;
+    @Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
+    @Mock private VolumeControlProfile mVolumeControl;
     @Mock private CachedBluetoothDevice mCachedDevice;
+    @Mock private BluetoothDevice mDevice;
+    @Mock private AudioManager mAudioManager;
+    @Mock private SeekBar mSeekBar;
     private Context mContext;
     private AudioSharingDeviceVolumePreference mPreference;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setup() {
-        mContext = ApplicationProvider.getApplicationContext();
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        when(mLocalBtManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
+        when(mLocalBtProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControl);
+        when(mContext.getSystemService(AudioManager.class)).thenReturn(mAudioManager);
+        when(mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC))
+                .thenReturn(TEST_MAX_STREAM_VALUE);
+        when(mAudioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC))
+                .thenReturn(TEST_MIN_STREAM_VALUE);
+        when(mCachedDevice.getDevice()).thenReturn(mDevice);
+        when(mCachedDevice.getGroupId()).thenReturn(TEST_DEVICE_GROUP_ID);
+        when(mSeekBar.getProgress()).thenReturn(TEST_VOLUME_VALUE);
         mPreference = new AudioSharingDeviceVolumePreference(mContext, mCachedDevice);
     }
 
@@ -58,4 +106,128 @@
         assertThat(mPreference.getMax()).isEqualTo(AudioSharingDeviceVolumePreference.MAX_VOLUME);
         assertThat(mPreference.getMin()).isEqualTo(AudioSharingDeviceVolumePreference.MIN_VOLUME);
     }
+
+    @Test
+    public void onStopTrackingTouch_notFallbackDevice_setDeviceVolume() {
+        mPreference.onStopTrackingTouch(mSeekBar);
+
+        verify(mVolumeControl).setDeviceVolume(mDevice, TEST_VOLUME_VALUE, /* isGroupOp= */ true);
+        verifyNoInteractions(mAudioManager);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+                        /* isPrimary= */ false);
+    }
+
+    @Test
+    public void onProgressChanged_notFallbackDevice_fromUserNotInTouch_setDeviceVolume() {
+        mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+        verify(mVolumeControl).setDeviceVolume(mDevice, TEST_VOLUME_VALUE, /* isGroupOp= */ true);
+        verifyNoInteractions(mAudioManager);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+                        /* isPrimary= */ false);
+    }
+
+    @Test
+    public void onProgressChanged_notFallbackDevice_fromUserInTouch_doNothing() {
+        mPreference.onStartTrackingTouch(mSeekBar);
+        mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+        verifyNoInteractions(mVolumeControl);
+        verifyNoInteractions(mAudioManager);
+        verify(mFeatureFactory.metricsFeatureProvider, never())
+                .action(
+                        any(Context.class),
+                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+                        anyBoolean());
+    }
+
+    @Test
+    public void onProgressChanged_notFallbackDevice_notFromUserNotInTouch_doNothing() {
+        mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ false);
+
+        verifyNoInteractions(mVolumeControl);
+        verifyNoInteractions(mAudioManager);
+        verify(mFeatureFactory.metricsFeatureProvider, never())
+                .action(
+                        any(Context.class),
+                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+                        anyBoolean());
+    }
+
+    @Test
+    public void onStopTrackingTouch_fallbackDevice_setDeviceVolume() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+                TEST_DEVICE_GROUP_ID);
+        mPreference.onStopTrackingTouch(mSeekBar);
+
+        verifyNoInteractions(mVolumeControl);
+        verify(mAudioManager)
+                .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+                        /* isPrimary= */ true);
+    }
+
+    @Test
+    public void onProgressChanged_fallbackDevice_fromUserNotInTouch_setDeviceVolume() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+                TEST_DEVICE_GROUP_ID);
+        mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+        verifyNoInteractions(mVolumeControl);
+        verify(mAudioManager)
+                .setStreamVolume(AudioManager.STREAM_MUSIC, TEST_MAX_STREAM_VALUE, /* flags= */ 0);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME,
+                        /* isPrimary= */ true);
+    }
+
+    @Test
+    public void onProgressChanged_fallbackDevice_fromUserInTouch_doNothing() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+                TEST_DEVICE_GROUP_ID);
+        mPreference.onStartTrackingTouch(mSeekBar);
+        mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ true);
+
+        verifyNoInteractions(mVolumeControl);
+        verifyNoInteractions(mAudioManager);
+        verify(mFeatureFactory.metricsFeatureProvider, never())
+                .action(
+                        any(Context.class),
+                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+                        anyBoolean());
+    }
+
+    @Test
+    public void onProgressChanged_fallbackDevice_notFromUserNotInTouch_doNothing() {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                BluetoothUtils.getPrimaryGroupIdUriForBroadcast(),
+                TEST_DEVICE_GROUP_ID);
+        mPreference.onProgressChanged(mSeekBar, TEST_VOLUME_VALUE, /* fromUser= */ false);
+
+        verifyNoInteractions(mVolumeControl);
+        verifyNoInteractions(mAudioManager);
+        verify(mFeatureFactory.metricsFeatureProvider, never())
+                .action(
+                        any(Context.class),
+                        eq(SettingsEnums.ACTION_AUDIO_SHARING_CHANGE_MEDIA_DEVICE_VOLUME),
+                        anyBoolean());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
index 39709c1..7227f37 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
@@ -93,7 +93,6 @@
             new Pair[] {TEST_EVENT_DATA};
 
     private Fragment mParent;
-    private AudioSharingDialogFragment mFragment;
     private FakeFeatureFactory mFeatureFactory;
 
     @Before
@@ -107,7 +106,6 @@
         shadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
                 BluetoothStatusCodes.FEATURE_SUPPORTED);
         mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mFragment = new AudioSharingDialogFragment();
         mParent = new Fragment();
         FragmentController.setupFragment(
                 mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
@@ -120,7 +118,8 @@
 
     @Test
     public void getMetricsCategory_correctValue() {
-        assertThat(mFragment.getMetricsCategory())
+        AudioSharingDialogFragment fragment = new AudioSharingDialogFragment();
+        assertThat(fragment.getMetricsCategory())
                 .isEqualTo(SettingsEnums.DIALOG_AUDIO_SHARING_ADD_DEVICE);
     }
 
@@ -130,13 +129,22 @@
         AudioSharingDialogFragment.show(
                 mParent, new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
         shadowMainLooper().idle();
-
         AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNull();
     }
 
     @Test
-    public void onCreateDialog_flagOn_noConnectedDevice() {
+    public void onCreateDialog_unattachedFragment_dialogNotExist() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        AudioSharingDialogFragment.show(
+                new Fragment(), new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
+    public void onCreateDialog_flagOn_noExtraConnectedDevice() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         AudioSharingDialogFragment.show(
                 mParent, new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
@@ -148,42 +156,67 @@
         assertThat(description).isNotNull();
         ImageView image = dialog.findViewById(R.id.description_image);
         assertThat(image).isNotNull();
-        Button shareBtn = dialog.findViewById(R.id.positive_btn);
-        assertThat(shareBtn).isNotNull();
-        Button cancelBtn = dialog.findViewById(R.id.negative_btn);
-        assertThat(cancelBtn).isNotNull();
+        Button positiveBtn = dialog.findViewById(R.id.positive_btn);
+        assertThat(positiveBtn).isNotNull();
+        Button negativeBtn = dialog.findViewById(R.id.negative_btn);
+        assertThat(negativeBtn).isNotNull();
         assertThat(dialog.isShowing()).isTrue();
         assertThat(description.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(description.getText().toString())
                 .isEqualTo(mParent.getString(R.string.audio_sharing_dialog_connect_device_content));
         assertThat(image.getVisibility()).isEqualTo(View.VISIBLE);
-        assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE);
-        assertThat(cancelBtn.getVisibility()).isEqualTo(View.GONE);
+        assertThat(positiveBtn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(positiveBtn.getText().toString())
+                .isEqualTo(mParent.getString(R.string.audio_sharing_pair_button_label));
+        assertThat(negativeBtn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(negativeBtn.getText().toString())
+                .isEqualTo(mParent.getString(R.string.audio_sharing_qrcode_button_label));
     }
 
     @Test
-    public void onCreateDialog_noConnectedDevice_dialogDismiss() {
+    public void onCreateDialog_noExtraConnectedDevice_pairNewDevice() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         AudioSharingDialogFragment.show(
                 mParent, new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
         shadowMainLooper().idle();
         AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNotNull();
-        View btnView = dialog.findViewById(android.R.id.button2);
-        assertThat(btnView).isNotNull();
-        btnView.performClick();
+        Button pairBtn = dialog.findViewById(R.id.positive_btn);
+        assertThat(pairBtn).isNotNull();
+        pairBtn.performClick();
         shadowMainLooper().idle();
 
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(Context.class),
+                        eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_POSITIVE_BTN_CLICKED),
+                        eq(TEST_EVENT_DATA));
         assertThat(dialog.isShowing()).isFalse();
+    }
+
+    @Test
+    public void onCreateDialog_noExtraConnectedDevice_showQRCode() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        AudioSharingDialogFragment.show(
+                mParent, new ArrayList<>(), EMPTY_EVENT_LISTENER, TEST_EVENT_DATA_LIST);
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+        Button qrCodeBtn = dialog.findViewById(R.id.negative_btn);
+        assertThat(qrCodeBtn).isNotNull();
+        qrCodeBtn.performClick();
+        shadowMainLooper().idle();
+
         verify(mFeatureFactory.metricsFeatureProvider)
                 .action(
                         any(Context.class),
                         eq(SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_NEGATIVE_BTN_CLICKED),
                         eq(TEST_EVENT_DATA));
+        assertThat(dialog.isShowing()).isFalse();
     }
 
     @Test
-    public void onCreateDialog_flagOn_singleConnectedDevice() {
+    public void onCreateDialog_flagOn_singleExtraConnectedDevice() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
         list.add(TEST_DEVICE_ITEM1);
@@ -198,10 +231,10 @@
         assertThat(description).isNotNull();
         ImageView image = dialog.findViewById(R.id.description_image);
         assertThat(image).isNotNull();
-        Button shareBtn = dialog.findViewById(R.id.positive_btn);
-        assertThat(shareBtn).isNotNull();
-        Button cancelBtn = dialog.findViewById(R.id.negative_btn);
-        assertThat(cancelBtn).isNotNull();
+        Button positiveBtn = dialog.findViewById(R.id.positive_btn);
+        assertThat(positiveBtn).isNotNull();
+        Button negativeBtn = dialog.findViewById(R.id.negative_btn);
+        assertThat(negativeBtn).isNotNull();
         assertThat(dialog.isShowing()).isTrue();
         assertThat(title.getText().toString())
                 .isEqualTo(
@@ -211,12 +244,16 @@
         assertThat(description.getText().toString())
                 .isEqualTo(mParent.getString(R.string.audio_sharing_dialog_share_content));
         assertThat(image.getVisibility()).isEqualTo(View.GONE);
-        assertThat(shareBtn.getVisibility()).isEqualTo(View.VISIBLE);
-        assertThat(cancelBtn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(positiveBtn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(positiveBtn.getText().toString())
+                .isEqualTo(mParent.getString(R.string.audio_sharing_share_button_label));
+        assertThat(negativeBtn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(negativeBtn.getText().toString())
+                .isEqualTo(mParent.getString(R.string.audio_sharing_no_thanks_button_label));
     }
 
     @Test
-    public void onCreateDialog_singleConnectedDevice_dialogDismiss() {
+    public void onCreateDialog_singleExtraConnectedDevice_dialogDismiss() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
         list.add(TEST_DEVICE_ITEM1);
@@ -239,7 +276,7 @@
     }
 
     @Test
-    public void onCreateDialog_singleConnectedDevice_shareClicked() {
+    public void onCreateDialog_singleExtraConnectedDevice_shareClicked() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
         list.add(TEST_DEVICE_ITEM1);
@@ -276,7 +313,7 @@
     }
 
     @Test
-    public void onCreateDialog_flagOn_multipleConnectedDevice() {
+    public void onCreateDialog_flagOn_multipleExtraConnectedDevice() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
         list.add(TEST_DEVICE_ITEM1);
@@ -304,12 +341,14 @@
         assertThat(image.getVisibility()).isEqualTo(View.GONE);
         assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE);
         assertThat(cancelBtn.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(cancelBtn.getText().toString())
+                .isEqualTo(mParent.getString(com.android.settings.R.string.cancel));
         assertThat(recyclerView.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(recyclerView.getAdapter().getItemCount()).isEqualTo(3);
     }
 
     @Test
-    public void onCreateDialog_multipleConnectedDevice_dialogDismiss() {
+    public void onCreateDialog_multipleExtraConnectedDevice_dialogDismiss() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
         list.add(TEST_DEVICE_ITEM1);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java
index 4c060d4..1bff78b 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogHandlerTest.java
@@ -25,6 +25,7 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
@@ -34,7 +35,6 @@
 import android.bluetooth.BluetoothLeBroadcast;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
-import android.bluetooth.BluetoothProfile;
 import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
 import android.os.Looper;
@@ -186,9 +186,7 @@
     public void handleUserTriggeredNonLeaDeviceConnected_noSharing_setActive() {
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -199,9 +197,7 @@
     public void handleUserTriggeredNonLeaDeviceConnected_sharing_showStopDialog() {
         setUpBroadcast(true);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -238,9 +234,7 @@
     public void handleUserTriggeredLeaDeviceConnected_noSharingNoTwoLeaDevices_setActive() {
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -248,12 +242,25 @@
     }
 
     @Test
+    public void handleUserTriggeredLeaDeviceConnected_noSharingLeaDeviceInErrorState_setActive() {
+        setUpBroadcast(false);
+        when(mCachedDevice1.getGroupId()).thenReturn(-1);
+        when(mLeAudioProfile.getGroupId(mDevice1)).thenReturn(-1);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
+        mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
+        shadowOf(Looper.getMainLooper()).idle();
+        List<Fragment> childFragments = mParentFragment.getChildFragmentManager().getFragments();
+        assertThat(childFragments).isEmpty();
+        verify(mCachedDevice1).setActive();
+    }
+
+    @Test
     public void handleUserTriggeredLeaDeviceConnected_noSharingTwoLeaDevices_showJoinDialog() {
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -288,15 +295,15 @@
         assertThat(listener).isNotNull();
         listener.onShareClick();
         verify(mBroadcast).startPrivateBroadcast();
+        listener.onCancelClick();
+        verify(mCachedDevice1).setActive();
     }
 
     @Test
     public void handleUserTriggeredLeaDeviceConnected_sharing_showJoinDialog() {
         setUpBroadcast(true);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
         when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
@@ -330,6 +337,8 @@
                                 1));
         AudioSharingJoinDialogFragment.DialogEventListener listener = fragment.getListener();
         assertThat(listener).isNotNull();
+        listener.onCancelClick();
+        verify(mAssistant, never()).addSource(mDevice1, mMetadata, /* isGroupOp= */ false);
         listener.onShareClick();
         verify(mAssistant).addSource(mDevice1, mMetadata, /* isGroupOp= */ false);
     }
@@ -339,9 +348,7 @@
             handleUserTriggeredLeaDeviceConnected_sharingWithTwoLeaDevices_showDisconnectDialog() {
         setUpBroadcast(true);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3, mDevice4);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
         when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
         when(mAssistant.getAllSources(mDevice4)).thenReturn(ImmutableList.of(mState));
@@ -385,9 +392,7 @@
     public void handleNonLeaDeviceConnected_noSharing_doNothing() {
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ false);
         shadowOf(Looper.getMainLooper()).idle();
@@ -397,10 +402,8 @@
     @Test
     public void handleNonLeaDeviceConnected_sharing_showStopDialog() {
         setUpBroadcast(true);
-        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ false);
         shadowOf(Looper.getMainLooper()).idle();
@@ -437,9 +440,7 @@
     public void handleLeaDeviceConnected_noSharingNoTwoLeaDevices_doNothing() {
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
         shadowOf(Looper.getMainLooper()).idle();
@@ -447,12 +448,25 @@
     }
 
     @Test
+    public void handleLeaDeviceConnected_noSharingLeaDeviceInErrorState_doNothing() {
+        setUpBroadcast(false);
+        when(mCachedDevice1.getGroupId()).thenReturn(-1);
+        when(mLeAudioProfile.getGroupId(mDevice1)).thenReturn(-1);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
+        mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
+        shadowOf(Looper.getMainLooper()).idle();
+        List<Fragment> childFragments = mParentFragment.getChildFragmentManager().getFragments();
+        assertThat(childFragments).isEmpty();
+        verify(mCachedDevice1, never()).setActive();
+    }
+
+    @Test
     public void handleLeaDeviceConnected_noSharingTwoLeaDevices_showJoinDialog() {
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
         shadowOf(Looper.getMainLooper()).idle();
@@ -487,15 +501,15 @@
         assertThat(listener).isNotNull();
         listener.onShareClick();
         verify(mBroadcast).startPrivateBroadcast();
+        listener.onCancelClick();
+        verify(mCachedDevice1, never()).setActive();
     }
 
     @Test
     public void handleLeaDeviceConnected_sharing_showJoinDialog() {
         setUpBroadcast(true);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
         when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
@@ -529,6 +543,8 @@
                                 1));
         AudioSharingJoinDialogFragment.DialogEventListener listener = fragment.getListener();
         assertThat(listener).isNotNull();
+        listener.onCancelClick();
+        verify(mAssistant, never()).addSource(mDevice1, mMetadata, /* isGroupOp= */ false);
         listener.onShareClick();
         verify(mAssistant).addSource(mDevice1, mMetadata, /* isGroupOp= */ false);
     }
@@ -537,9 +553,7 @@
     public void handleLeaDeviceConnected_sharingWithTwoLeaDevices_showDisconnectDialog() {
         setUpBroadcast(true);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3, mDevice4);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
         when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
         when(mAssistant.getAllSources(mDevice4)).thenReturn(ImmutableList.of(mState));
@@ -584,9 +598,7 @@
         // Show join dialog
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -605,13 +617,54 @@
     }
 
     @Test
+    public void closeOpeningDialogsForLeaDevice_unattachedFragment_doNothing() {
+        mParentFragment = new Fragment();
+        mHandler = new AudioSharingDialogHandler(mContext, mParentFragment);
+        mHandler.closeOpeningDialogsForLeaDevice(mCachedDevice1);
+        shadowOf(Looper.getMainLooper()).idle();
+        verifyNoMoreInteractions(mFeatureFactory.metricsFeatureProvider);
+    }
+
+    @Test
+    public void closeOpeningDialogsForLeaDevice_closeDisconnectDialog() {
+        // Show disconnect dialog
+        setUpBroadcast(true);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3, mDevice4);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
+        when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
+        when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
+        when(mAssistant.getAllSources(mDevice4)).thenReturn(ImmutableList.of(mState));
+        mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mParentFragment.getChildFragmentManager().getFragments())
+                .comparingElementsUsing(TAG_EQUALS)
+                .containsExactly(AudioSharingDisconnectDialogFragment.tag());
+        // Close opening dialogs
+        mHandler.closeOpeningDialogsForLeaDevice(mCachedDevice1);
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mParentFragment.getChildFragmentManager().getFragments()).isEmpty();
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_DIALOG_AUTO_DISMISS,
+                        SettingsEnums.DIALOG_AUDIO_SHARING_SWITCH_DEVICE);
+    }
+
+    @Test
+    public void closeOpeningDialogsForNonLeaDevice_unattachedFragment_doNothing() {
+        mParentFragment = new Fragment();
+        mHandler = new AudioSharingDialogHandler(mContext, mParentFragment);
+        mHandler.closeOpeningDialogsForNonLeaDevice(mCachedDevice2);
+        shadowOf(Looper.getMainLooper()).idle();
+        verifyNoMoreInteractions(mFeatureFactory.metricsFeatureProvider);
+    }
+
+    @Test
     public void closeOpeningDialogsForNonLeaDevice_closeStopDialog() {
         // Show stop dialog
         setUpBroadcast(true);
-        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice2);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
         mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -633,9 +686,7 @@
     public void closeOpeningDialogsOtherThan() {
         setUpBroadcast(true);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(mDevice3)).thenReturn(ImmutableList.of(mState));
         mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -645,9 +696,7 @@
                 .containsExactly(AudioSharingStopDialogFragment.tag());
 
         deviceList = ImmutableList.of(mDevice1, mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(mDevice1)).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
         shadowOf(Looper.getMainLooper()).idle();
@@ -678,12 +727,36 @@
     }
 
     @Test
+    public void onBroadcastStartFailed_logAction() {
+        setUpBroadcast(false);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
+        mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ false);
+        shadowOf(Looper.getMainLooper()).idle();
+        List<Fragment> childFragments = mParentFragment.getChildFragmentManager().getFragments();
+        assertThat(childFragments)
+                .comparingElementsUsing(TAG_EQUALS)
+                .containsExactly(AudioSharingJoinDialogFragment.tag());
+        AudioSharingJoinDialogFragment fragment =
+                (AudioSharingJoinDialogFragment) Iterables.getOnlyElement(childFragments);
+        AudioSharingJoinDialogFragment.DialogEventListener listener = fragment.getListener();
+        assertThat(listener).isNotNull();
+        listener.onShareClick();
+
+        mHandler.mBroadcastCallback.onBroadcastStartFailed(/* reason= */ 1);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_START_FAILED,
+                        SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
+    }
+
+    @Test
     public void onPlaybackStarted_addSource() {
         setUpBroadcast(false);
         ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice3);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(deviceList);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
         when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
         mHandler.handleDeviceConnected(mCachedDevice1, /* userTriggered= */ true);
         shadowOf(Looper.getMainLooper()).idle();
@@ -706,15 +779,39 @@
     }
 
     @Test
+    public void onBroadcastStopFailed_logAction() {
+        setUpBroadcast(true);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(deviceList);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
+        mHandler.handleDeviceConnected(mCachedDevice2, /* userTriggered= */ false);
+        shadowOf(Looper.getMainLooper()).idle();
+        List<Fragment> childFragments = mParentFragment.getChildFragmentManager().getFragments();
+        assertThat(childFragments)
+                .comparingElementsUsing(TAG_EQUALS)
+                .containsExactly(AudioSharingStopDialogFragment.tag());
+
+        AudioSharingStopDialogFragment fragment =
+                (AudioSharingStopDialogFragment) Iterables.getOnlyElement(childFragments);
+        AudioSharingStopDialogFragment.DialogEventListener listener = fragment.getListener();
+        assertThat(listener).isNotNull();
+        listener.onStopSharingClick();
+
+        mHandler.mBroadcastCallback.onBroadcastStopFailed(/* reason= */ 1);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_STOP_FAILED,
+                        SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
+    }
+
+    @Test
     public void testBluetoothLeBroadcastCallbacks_doNothing() {
         mHandler.mBroadcastCallback.onBroadcastStarted(/* reason= */ 1, /* broadcastId= */ 1);
-        mHandler.mBroadcastCallback.onBroadcastStopped(/* reason= */ 1, /* broadcastId= */ 1);
         mHandler.mBroadcastCallback.onBroadcastMetadataChanged(/* reason= */ 1, mMetadata);
         mHandler.mBroadcastCallback.onBroadcastUpdated(/* reason= */ 1, /* broadcastId= */ 1);
         mHandler.mBroadcastCallback.onPlaybackStarted(/* reason= */ 1, /* broadcastId= */ 1);
         mHandler.mBroadcastCallback.onPlaybackStopped(/* reason= */ 1, /* broadcastId= */ 1);
-        mHandler.mBroadcastCallback.onBroadcastStartFailed(/* reason= */ 1);
-        mHandler.mBroadcastCallback.onBroadcastStopFailed(/* reason= */ 1);
         mHandler.mBroadcastCallback.onBroadcastUpdateFailed(/* reason= */ 1, /* broadcastId= */ 1);
 
         verify(mAssistant, never())
@@ -723,6 +820,7 @@
                         any(BluetoothLeBroadcastMetadata.class),
                         anyBoolean());
         verify(mAssistant, never()).removeSource(any(BluetoothDevice.class), anyInt());
+        verifyNoMoreInteractions(mFeatureFactory.metricsFeatureProvider);
     }
 
     private void setUpBroadcast(boolean isBroadcasting) {
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java
index 6b984af..86b0d65 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java
@@ -154,6 +154,23 @@
     }
 
     @Test
+    public void onCreateDialog_unattachedFragment_dialogNotExist() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mDeviceItems = new ArrayList<>();
+        mDeviceItems.add(TEST_DEVICE_ITEM1);
+        mDeviceItems.add(TEST_DEVICE_ITEM2);
+        AudioSharingDisconnectDialogFragment.show(
+                new Fragment(),
+                mDeviceItems,
+                mCachedDevice3,
+                EMPTY_EVENT_LISTENER,
+                TEST_EVENT_DATA_LIST);
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
     public void onCreateDialog_flagOn_dialogShowBtnForTwoDevices() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         mDeviceItems = new ArrayList<>();
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java
index 13ea965..2310d75 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java
@@ -164,6 +164,20 @@
     }
 
     @Test
+    public void onCreateDialog_unattachedFragment_dialogNotExist() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        AudioSharingJoinDialogFragment.show(
+                new Fragment(),
+                new ArrayList<>(),
+                mCachedDevice2,
+                EMPTY_EVENT_LISTENER,
+                TEST_EVENT_DATA_LIST);
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
     public void onCreateDialog_flagOn_dialogShowTextForSingleDevice() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         AudioSharingJoinDialogFragment.show(
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceControllerTest.java
new file mode 100644
index 0000000..618e021
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceControllerTest.java
@@ -0,0 +1,319 @@
+/*
+ * 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.audiosharing;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+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.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothStatusCodes;
+import android.content.Context;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.bluetooth.VolumeControlProfile;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.flags.Flags;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowLooper;
+
+import java.util.concurrent.Executor;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowBluetoothAdapter.class,
+            ShadowBluetoothUtils.class,
+        })
+public class AudioSharingNamePreferenceControllerTest {
+    private static final String PREF_KEY = "audio_sharing_stream_name";
+    private static final String BROADCAST_NAME = "broadcast_name";
+    private static final CharSequence UPDATED_NAME = "updated_name";
+
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    @Spy Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private LocalBluetoothLeBroadcast mBroadcast;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
+    @Mock private VolumeControlProfile mVolumeControl;
+    @Mock private LocalBluetoothManager mLocalBtManager;
+    @Mock private BluetoothEventManager mEventManager;
+    @Mock private LocalBluetoothProfileManager mProfileManager;
+    @Mock private PreferenceScreen mScreen;
+    private AudioSharingNamePreferenceController mController;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+    private Lifecycle mLifecycle;
+    private LifecycleOwner mLifecycleOwner;
+    private AudioSharingNamePreference mPreference;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        when(mLocalBtManager.getEventManager()).thenReturn(mEventManager);
+        when(mLocalBtManager.getProfileManager()).thenReturn(mProfileManager);
+        when(mProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
+        when(mProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(mAssistant);
+        when(mProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControl);
+        when(mBroadcast.isProfileReady()).thenReturn(true);
+        when(mAssistant.isProfileReady()).thenReturn(true);
+        when(mVolumeControl.isProfileReady()).thenReturn(true);
+        when(mBroadcast.isProfileReady()).thenReturn(true);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+        mController = new AudioSharingNamePreferenceController(mContext, PREF_KEY);
+        mPreference = spy(new AudioSharingNamePreference(mContext));
+        when(mScreen.findPreference(PREF_KEY)).thenReturn(mPreference);
+    }
+
+    @Test
+    public void getAvailabilityStatus_flagOn_available() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_flagOff_unsupported() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void onStart_flagOff_doNothing() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStart(mLifecycleOwner);
+        verify(mBroadcast, never())
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcast.Callback.class));
+    }
+
+    @Test
+    public void onStart_flagOn_registerCallbacks() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStart(mLifecycleOwner);
+        verify(mBroadcast)
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcast.Callback.class));
+    }
+
+    @Test
+    public void onStart_flagOn_serviceNotReady_registerCallbacks() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        when(mBroadcast.isProfileReady()).thenReturn(false);
+        mController.onStart(mLifecycleOwner);
+        verify(mProfileManager)
+                .addServiceListener(any(LocalBluetoothProfileManager.ServiceListener.class));
+    }
+
+    @Test
+    public void onServiceConnected_removeCallbacks() {
+        mController.onServiceConnected();
+        verify(mProfileManager)
+                .removeServiceListener(any(LocalBluetoothProfileManager.ServiceListener.class));
+    }
+
+    @Test
+    public void onStop_flagOff_doNothing() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStart(mLifecycleOwner);
+        mController.onStop(mLifecycleOwner);
+        verify(mBroadcast, never())
+                .unregisterServiceCallBack(any(BluetoothLeBroadcast.Callback.class));
+    }
+
+    @Test
+    public void onStop_flagOn_unregisterCallbacks() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStart(mLifecycleOwner);
+        mController.onStop(mLifecycleOwner);
+        verify(mBroadcast).unregisterServiceCallBack(any(BluetoothLeBroadcast.Callback.class));
+    }
+
+    @Test
+    public void displayPreference_updateName_showIcon() {
+        when(mBroadcast.getBroadcastName()).thenReturn(BROADCAST_NAME);
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        mController.displayPreference(mScreen);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(mPreference.getText()).isEqualTo(BROADCAST_NAME);
+        assertThat(mPreference.getSummary()).isEqualTo(BROADCAST_NAME);
+        verify(mPreference).setValidator(any());
+        verify(mPreference).setShowQrCodeIcon(true);
+    }
+
+    @Test
+    public void displayPreference_updateName_hideIcon() {
+        when(mBroadcast.getBroadcastName()).thenReturn(BROADCAST_NAME);
+        when(mBroadcast.isEnabled(any())).thenReturn(false);
+        mController.displayPreference(mScreen);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(mPreference.getText()).isEqualTo(BROADCAST_NAME);
+        assertThat(mPreference.getSummary()).isEqualTo(BROADCAST_NAME);
+        verify(mPreference).setValidator(any());
+        verify(mPreference).setShowQrCodeIcon(false);
+    }
+
+    @Test
+    public void onPreferenceChange_noChange_doNothing() {
+        when(mPreference.getSummary()).thenReturn(BROADCAST_NAME);
+        mController.displayPreference(mScreen);
+        boolean changed = mController.onPreferenceChange(mPreference, BROADCAST_NAME);
+        ShadowLooper.idleMainLooper();
+
+        verify(mBroadcast, never()).setBroadcastName(anyString());
+        verify(mBroadcast, never()).setProgramInfo(anyString());
+        verify(mBroadcast, never()).updateBroadcast();
+        verify(mFeatureFactory.metricsFeatureProvider, never()).action(any(), anyInt(), anyInt());
+
+        assertThat(changed).isFalse();
+    }
+
+    @Test
+    public void onPreferenceChange_changed_updateName_broadcasting() {
+        when(mPreference.getSummary()).thenReturn(BROADCAST_NAME);
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        mController.displayPreference(mScreen);
+        boolean changed = mController.onPreferenceChange(mPreference, UPDATED_NAME);
+        ShadowLooper.idleMainLooper();
+
+        verify(mBroadcast).setBroadcastName(UPDATED_NAME.toString());
+        verify(mBroadcast).setProgramInfo(UPDATED_NAME.toString());
+        verify(mBroadcast).updateBroadcast();
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_AUDIO_STREAM_NAME_UPDATED, 1);
+        assertThat(changed).isTrue();
+    }
+
+    @Test
+    public void onPreferenceChange_changed_updateName_notBroadcasting() {
+        when(mPreference.getSummary()).thenReturn(BROADCAST_NAME);
+        when(mBroadcast.isEnabled(any())).thenReturn(false);
+        mController.displayPreference(mScreen);
+        boolean changed = mController.onPreferenceChange(mPreference, UPDATED_NAME);
+        ShadowLooper.idleMainLooper();
+
+        verify(mBroadcast).setBroadcastName(UPDATED_NAME.toString());
+        verify(mBroadcast).setProgramInfo(UPDATED_NAME.toString());
+        verify(mBroadcast, never()).updateBroadcast();
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_AUDIO_STREAM_NAME_UPDATED, 0);
+        assertThat(changed).isTrue();
+    }
+
+    @Test
+    public void unrelatedCallbacks_doNotUpdateIcon() {
+        mController.displayPreference(mScreen);
+        mController.mBroadcastCallback.onBroadcastStartFailed(/* reason= */ 0);
+        mController.mBroadcastCallback.onBroadcastStarted(/* reason= */ 0, /* broadcastId= */ 0);
+        mController.mBroadcastCallback.onBroadcastStopFailed(/* reason= */ 0);
+        mController.mBroadcastCallback.onBroadcastUpdateFailed(
+                /* reason= */ 0, /* broadcastId= */ 0);
+        mController.mBroadcastCallback.onBroadcastUpdated(/* reason= */ 0, /* broadcastId= */ 0);
+        mController.mBroadcastCallback.onPlaybackStarted(/* reason= */ 0, /* broadcastId= */ 0);
+        mController.mBroadcastCallback.onPlaybackStopped(/* reason= */ 0, /* broadcastId= */ 0);
+
+        ShadowLooper.idleMainLooper();
+        // Should be called once in displayPreference, but not called after callbacks
+        verify(mPreference).setShowQrCodeIcon(anyBoolean());
+    }
+
+    @Test
+    public void broadcastOnCallback_updateIcon() {
+        mController.displayPreference(mScreen);
+        mController.mBroadcastCallback.onBroadcastMetadataChanged(
+                /* broadcastId= */ 0, mock(BluetoothLeBroadcastMetadata.class));
+
+        ShadowLooper.idleMainLooper();
+
+        // Should be called twice, in displayPreference and also after callback
+        verify(mPreference, times(2)).setShowQrCodeIcon(anyBoolean());
+    }
+
+    @Test
+    public void broadcastStopCallback_updateIcon() {
+        mController.displayPreference(mScreen);
+        mController.mBroadcastCallback.onBroadcastStopped(/* reason= */ 0, /* broadcastId= */ 0);
+
+        ShadowLooper.idleMainLooper();
+
+        // Should be called twice, in displayPreference and also after callback
+        verify(mPreference, times(2)).setShowQrCodeIcon(anyBoolean());
+    }
+
+    @Test
+    public void idTextValid_emptyString() {
+        boolean valid = mController.isTextValid("");
+
+        assertThat(valid).isFalse();
+    }
+
+    @Test
+    public void idTextValid_validName() {
+        boolean valid = mController.isTextValid("valid name");
+
+        assertThat(valid).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceTest.java
new file mode 100644
index 0000000..be62414
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceTest.java
@@ -0,0 +1,142 @@
+/*
+ * 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.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+
+import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsQrCodeFragment;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioSharingNamePreferenceTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private Context mContext;
+    private AudioSharingNamePreference mPreference;
+
+    @Before
+    public void setup() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mPreference = spy(new AudioSharingNamePreference(mContext, null));
+    }
+
+    @Test
+    public void initialize_correctLayout() {
+        assertThat(mPreference.getLayoutResource())
+                .isEqualTo(
+                        com.android.settingslib.widget.preference.twotarget.R.layout
+                                .preference_two_target);
+        assertThat(mPreference.getWidgetLayoutResource())
+                .isEqualTo(R.layout.preference_widget_qrcode);
+    }
+
+    @Test
+    public void onBindViewHolder_correctLayout_noQrCodeButton() {
+        LayoutInflater inflater = LayoutInflater.from(mContext);
+        View view = inflater.inflate(mPreference.getLayoutResource(), null);
+        LinearLayout widgetView = view.findViewById(android.R.id.widget_frame);
+        assertThat(widgetView).isNotNull();
+        inflater.inflate(mPreference.getWidgetLayoutResource(), widgetView, true);
+
+        var holder = PreferenceViewHolder.createInstanceForTests(view);
+        mPreference.setShowQrCodeIcon(false);
+        mPreference.onBindViewHolder(holder);
+
+        ImageButton shareButton = (ImageButton) holder.findViewById(R.id.button_icon);
+        View divider =
+                holder.findViewById(
+                        com.android.settingslib.widget.preference.twotarget.R.id
+                                .two_target_divider);
+
+        assertThat(shareButton).isNotNull();
+        assertThat(shareButton.getVisibility()).isEqualTo(View.GONE);
+        assertThat(shareButton.hasOnClickListeners()).isFalse();
+        assertThat(divider).isNotNull();
+        assertThat(divider.getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void onBindViewHolder_correctLayout_showQrCodeButton() {
+        LayoutInflater inflater = LayoutInflater.from(mContext);
+        View view = inflater.inflate(mPreference.getLayoutResource(), null);
+        LinearLayout widgetView = view.findViewById(android.R.id.widget_frame);
+        assertThat(widgetView).isNotNull();
+        inflater.inflate(mPreference.getWidgetLayoutResource(), widgetView, true);
+
+        var holder = PreferenceViewHolder.createInstanceForTests(view);
+        mPreference.setShowQrCodeIcon(true);
+        mPreference.onBindViewHolder(holder);
+
+        ImageButton shareButton = (ImageButton) holder.findViewById(R.id.button_icon);
+        View divider =
+                holder.findViewById(
+                        com.android.settingslib.widget.preference.twotarget.R.id
+                                .two_target_divider);
+
+        assertThat(shareButton).isNotNull();
+        assertThat(shareButton.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(shareButton.getDrawable()).isNotNull();
+        assertThat(shareButton.hasOnClickListeners()).isTrue();
+        assertThat(shareButton.getContentDescription()).isNotNull();
+        assertThat(divider).isNotNull();
+        assertThat(divider.getVisibility()).isEqualTo(View.VISIBLE);
+
+        // mContext is not an Activity context, calling startActivity() from outside of an Activity
+        // context requires the FLAG_ACTIVITY_NEW_TASK flag, create a mock to avoid this
+        // AndroidRuntimeException.
+        Context activityContext = mock(Context.class);
+        when(mPreference.getContext()).thenReturn(activityContext);
+        shareButton.callOnClick();
+
+        ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
+        verify(activityContext).startActivity(argumentCaptor.capture());
+
+        Intent intent = argumentCaptor.getValue();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(AudioStreamsQrCodeFragment.class.getName());
+        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
+                .isEqualTo(R.string.audio_streams_qr_code_page_title);
+        assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0))
+                .isEqualTo(SettingsEnums.AUDIO_SHARING_SETTINGS);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidatorTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidatorTest.java
new file mode 100644
index 0000000..ada6117
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidatorTest.java
@@ -0,0 +1,52 @@
+/*
+ * 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.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioSharingNameTextValidatorTest {
+    private AudioSharingNameTextValidator mValidator;
+
+    @Before
+    public void setUp() {
+        mValidator = new AudioSharingNameTextValidator();
+    }
+
+    @Test
+    public void testValidNames() {
+        assertThat(mValidator.isTextValid("ValidName")).isTrue();
+        assertThat(mValidator.isTextValid("12345678")).isTrue();
+        assertThat(mValidator.isTextValid("Name_With_Underscores")).isTrue();
+        assertThat(mValidator.isTextValid("ÄÖÜß")).isTrue();
+        assertThat(mValidator.isTextValid("ThisNameIsExactly32Characters!")).isTrue();
+    }
+
+    @Test
+    public void testInvalidNames() {
+        assertThat(mValidator.isTextValid(null)).isFalse();
+        assertThat(mValidator.isTextValid("")).isFalse();
+        assertThat(mValidator.isTextValid("abc")).isFalse();
+        assertThat(mValidator.isTextValid("ThisNameIsWayTooLongForAnAudioSharingName")).isFalse();
+        assertThat(mValidator.isTextValid("Invalid\uDC00")).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceControllerTest.java
new file mode 100644
index 0000000..5bfb966
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceControllerTest.java
@@ -0,0 +1,335 @@
+/*
+ * 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.audiosharing;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothStatusCodes;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.database.ContentObserver;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.flags.Flags;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowLooper;
+
+import java.nio.charset.StandardCharsets;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowBluetoothAdapter.class,
+            ShadowBluetoothUtils.class,
+        })
+public class AudioSharingPasswordPreferenceControllerTest {
+    private static final String PREF_KEY = "audio_sharing_stream_password";
+    private static final String SHARED_PREF_KEY = "default_password";
+    private static final String BROADCAST_PASSWORD = "password";
+    private static final String EDITTEXT_PASSWORD = "edittext_password";
+    private static final String HIDDEN_PASSWORD = "********";
+
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    @Spy Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private LocalBluetoothLeBroadcast mBroadcast;
+    @Mock private LocalBluetoothManager mLocalBtManager;
+    @Mock private LocalBluetoothProfileManager mProfileManager;
+    @Mock private SharedPreferences mSharedPreferences;
+    @Mock private SharedPreferences.Editor mEditor;
+    @Mock private ContentResolver mContentResolver;
+    @Mock private PreferenceScreen mScreen;
+    private AudioSharingPasswordPreferenceController mController;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+    private Lifecycle mLifecycle;
+    private LifecycleOwner mLifecycleOwner;
+    private AudioSharingPasswordPreference mPreference;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        when(mLocalBtManager.getProfileManager()).thenReturn(mProfileManager);
+        when(mProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        when(mContext.getContentResolver()).thenReturn(mContentResolver);
+        when(mContext.getSharedPreferences(anyString(), anyInt())).thenReturn(mSharedPreferences);
+        when(mSharedPreferences.edit()).thenReturn(mEditor);
+        when(mEditor.putString(anyString(), anyString())).thenReturn(mEditor);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+        mController = new AudioSharingPasswordPreferenceController(mContext, PREF_KEY);
+        mPreference = spy(new AudioSharingPasswordPreference(mContext));
+        when(mScreen.findPreference(PREF_KEY)).thenReturn(mPreference);
+    }
+
+    @Test
+    public void getAvailabilityStatus_flagOn_available() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_flagOff_unsupported() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void onStart_flagOff_doNothing() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStart(mLifecycleOwner);
+        verify(mContentResolver, never()).registerContentObserver(any(), anyBoolean(), any());
+        verify(mSharedPreferences, never()).registerOnSharedPreferenceChangeListener(any());
+    }
+
+    @Test
+    public void onStart_flagOn_registerCallbacks() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStart(mLifecycleOwner);
+        verify(mContentResolver).registerContentObserver(any(), anyBoolean(), any());
+        verify(mSharedPreferences).registerOnSharedPreferenceChangeListener(any());
+    }
+
+    @Test
+    public void onStop_flagOff_doNothing() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStop(mLifecycleOwner);
+        verify(mContentResolver, never()).unregisterContentObserver(any());
+        verify(mSharedPreferences, never()).unregisterOnSharedPreferenceChangeListener(any());
+    }
+
+    @Test
+    public void onStop_flagOn_registerCallbacks() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mController.onStop(mLifecycleOwner);
+        verify(mContentResolver).unregisterContentObserver(any());
+        verify(mSharedPreferences).unregisterOnSharedPreferenceChangeListener(any());
+    }
+
+    @Test
+    public void displayPreference_setupPreference_noPassword() {
+        when(mSharedPreferences.getString(anyString(), anyString())).thenReturn(EDITTEXT_PASSWORD);
+        when(mBroadcast.getBroadcastCode()).thenReturn(new byte[] {});
+
+        mController.displayPreference(mScreen);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(mPreference.isPassword()).isTrue();
+        assertThat(mPreference.getDialogLayoutResource())
+                .isEqualTo(R.layout.audio_sharing_password_dialog);
+        assertThat(mPreference.getText()).isEqualTo(EDITTEXT_PASSWORD);
+        assertThat(mPreference.getSummary())
+                .isEqualTo(mContext.getString(R.string.audio_streams_no_password_summary));
+        verify(mPreference).setValidator(any());
+        verify(mPreference).setOnDialogEventListener(any());
+    }
+
+    @Test
+    public void contentObserver_updatePreferenceOnChange() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        when(mBroadcast.getBroadcastCode())
+                .thenReturn(BROADCAST_PASSWORD.getBytes(StandardCharsets.UTF_8));
+        mController.onStart(mLifecycleOwner);
+        mController.displayPreference(mScreen);
+        ShadowLooper.idleMainLooper();
+
+        ArgumentCaptor<ContentObserver> observerCaptor =
+                ArgumentCaptor.forClass(ContentObserver.class);
+        verify(mContentResolver)
+                .registerContentObserver(any(), anyBoolean(), observerCaptor.capture());
+
+        var observer = observerCaptor.getValue();
+        assertThat(observer).isNotNull();
+        observer.onChange(true);
+        verify(mPreference).setText(anyString());
+        verify(mPreference).setSummary(anyString());
+    }
+
+    @Test
+    public void sharedPrefChangeListener_updatePreferenceOnChange() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        when(mBroadcast.getBroadcastCode())
+                .thenReturn(BROADCAST_PASSWORD.getBytes(StandardCharsets.UTF_8));
+        mController.onStart(mLifecycleOwner);
+        mController.displayPreference(mScreen);
+        ShadowLooper.idleMainLooper();
+
+        ArgumentCaptor<SharedPreferences.OnSharedPreferenceChangeListener> captor =
+                ArgumentCaptor.forClass(SharedPreferences.OnSharedPreferenceChangeListener.class);
+        verify(mSharedPreferences).registerOnSharedPreferenceChangeListener(captor.capture());
+
+        var observer = captor.getValue();
+        assertThat(captor).isNotNull();
+        observer.onSharedPreferenceChanged(mSharedPreferences, SHARED_PREF_KEY);
+        verify(mPreference).setText(anyString());
+        verify(mPreference).setSummary(anyString());
+    }
+
+    @Test
+    public void displayPreference_setupPreference_hasPassword() {
+        when(mBroadcast.getBroadcastCode())
+                .thenReturn(BROADCAST_PASSWORD.getBytes(StandardCharsets.UTF_8));
+        mController.displayPreference(mScreen);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(mPreference.isPassword()).isTrue();
+        assertThat(mPreference.getDialogLayoutResource())
+                .isEqualTo(R.layout.audio_sharing_password_dialog);
+        assertThat(mPreference.getText()).isEqualTo(BROADCAST_PASSWORD);
+        assertThat(mPreference.getSummary()).isEqualTo(HIDDEN_PASSWORD);
+        verify(mPreference).setValidator(any());
+        verify(mPreference).setOnDialogEventListener(any());
+    }
+
+    @Test
+    public void onBindDialogView_updatePreference_isBroadcasting_noPassword() {
+        when(mBroadcast.getBroadcastCode()).thenReturn(new byte[] {});
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        mController.displayPreference(mScreen);
+        mController.onBindDialogView();
+        ShadowLooper.idleMainLooper();
+
+        verify(mPreference).setEditable(false);
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void onBindDialogView_updatePreference_isNotBroadcasting_hasPassword() {
+        when(mBroadcast.getBroadcastCode())
+                .thenReturn(BROADCAST_PASSWORD.getBytes(StandardCharsets.UTF_8));
+        mController.displayPreference(mScreen);
+        mController.onBindDialogView();
+        ShadowLooper.idleMainLooper();
+
+        verify(mPreference).setEditable(true);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onPreferenceDataChanged_isBroadcasting_doNothing() {
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        mController.displayPreference(mScreen);
+        mController.onPreferenceDataChanged(BROADCAST_PASSWORD, /* isPublicBroadcast= */ false);
+        ShadowLooper.idleMainLooper();
+
+        verify(mBroadcast, never()).setBroadcastCode(any());
+        verify(mFeatureFactory.metricsFeatureProvider, never()).action(any(), anyInt(), anyInt());
+    }
+
+    @Test
+    public void onPreferenceDataChanged_noChange_doNothing() {
+        when(mSharedPreferences.getString(anyString(), anyString())).thenReturn(EDITTEXT_PASSWORD);
+        when(mBroadcast.getBroadcastCode()).thenReturn(new byte[] {});
+        mController.displayPreference(mScreen);
+        mController.onPreferenceDataChanged(EDITTEXT_PASSWORD, /* isPublicBroadcast= */ true);
+        ShadowLooper.idleMainLooper();
+
+        verify(mBroadcast, never()).setBroadcastCode(any());
+        verify(mFeatureFactory.metricsFeatureProvider, never()).action(any(), anyInt(), anyInt());
+    }
+
+    @Test
+    public void onPreferenceDataChanged_updateToNonPublicBroadcast() {
+        when(mSharedPreferences.getString(anyString(), anyString())).thenReturn(EDITTEXT_PASSWORD);
+        when(mBroadcast.getBroadcastCode()).thenReturn(new byte[] {});
+        mController.displayPreference(mScreen);
+        mController.onPreferenceDataChanged(BROADCAST_PASSWORD, /* isPublicBroadcast= */ false);
+        ShadowLooper.idleMainLooper();
+
+        verify(mBroadcast).setBroadcastCode(BROADCAST_PASSWORD.getBytes(StandardCharsets.UTF_8));
+        verify(mEditor).putString(anyString(), eq(BROADCAST_PASSWORD));
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_AUDIO_STREAM_PASSWORD_UPDATED, 0);
+    }
+
+    @Test
+    public void onPreferenceDataChanged_updateToPublicBroadcast() {
+        when(mSharedPreferences.getString(anyString(), anyString())).thenReturn(EDITTEXT_PASSWORD);
+        when(mBroadcast.getBroadcastCode())
+                .thenReturn(BROADCAST_PASSWORD.getBytes(StandardCharsets.UTF_8));
+        mController.displayPreference(mScreen);
+        mController.onPreferenceDataChanged(EDITTEXT_PASSWORD, /* isPublicBroadcast= */ true);
+        ShadowLooper.idleMainLooper();
+
+        verify(mBroadcast).setBroadcastCode("".getBytes(StandardCharsets.UTF_8));
+        verify(mEditor, never()).putString(anyString(), eq(EDITTEXT_PASSWORD));
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_AUDIO_STREAM_PASSWORD_UPDATED, 1);
+    }
+
+    @Test
+    public void idTextValid_emptyString() {
+        boolean valid = mController.isTextValid("");
+
+        assertThat(valid).isFalse();
+    }
+
+    @Test
+    public void idTextValid_validPassword() {
+        boolean valid = mController.isTextValid(BROADCAST_PASSWORD);
+
+        assertThat(valid).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceTest.java
new file mode 100644
index 0000000..0b87e8c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceTest.java
@@ -0,0 +1,215 @@
+/*
+ * 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.audiosharing;
+
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.CheckBox;
+import android.widget.EditText;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioSharingPasswordPreferenceTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final String EDIT_TEXT_CONTENT = "text";
+    private Context mContext;
+    private AudioSharingPasswordPreference mPreference;
+
+    @Before
+    public void setup() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mPreference = new AudioSharingPasswordPreference(mContext, null);
+    }
+
+    @Test
+    public void onBindDialogView_correctLayout() {
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+
+        var editText = view.findViewById(android.R.id.edit);
+        var checkBox = view.findViewById(R.id.audio_sharing_stream_password_checkbox);
+        var dialogMessage = view.findViewById(android.R.id.message);
+
+        assertThat(editText).isNotNull();
+        assertThat(checkBox).isNotNull();
+        assertThat(dialogMessage).isNotNull();
+    }
+
+    @Test
+    public void setEditable_true() {
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+
+        var editText = view.findViewById(android.R.id.edit);
+        var checkBox = view.findViewById(R.id.audio_sharing_stream_password_checkbox);
+        var dialogMessage = view.findViewById(android.R.id.message);
+
+        mPreference.setEditable(true);
+
+        assertThat(editText).isNotNull();
+        assertThat(editText.isEnabled()).isTrue();
+        assertThat(editText.getAlpha()).isEqualTo(1.0f);
+        assertThat(checkBox).isNotNull();
+        assertThat(checkBox.isEnabled()).isTrue();
+        assertThat(dialogMessage).isNotNull();
+        assertThat(dialogMessage.getVisibility()).isEqualTo(GONE);
+    }
+
+    @Test
+    public void setEditable_false() {
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+
+        var editText = view.findViewById(android.R.id.edit);
+        var checkBox = view.findViewById(R.id.audio_sharing_stream_password_checkbox);
+        var dialogMessage = view.findViewById(android.R.id.message);
+
+        mPreference.setEditable(false);
+
+        assertThat(editText).isNotNull();
+        assertThat(editText.isEnabled()).isFalse();
+        assertThat(editText.getAlpha()).isLessThan(1.0f);
+        assertThat(checkBox).isNotNull();
+        assertThat(checkBox.isEnabled()).isFalse();
+        assertThat(dialogMessage).isNotNull();
+        assertThat(dialogMessage.getVisibility()).isEqualTo(VISIBLE);
+    }
+
+    @Test
+    public void setChecked_true() {
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+
+        CheckBox checkBox = view.findViewById(R.id.audio_sharing_stream_password_checkbox);
+
+        mPreference.setChecked(true);
+
+        assertThat(checkBox).isNotNull();
+        assertThat(checkBox.isChecked()).isTrue();
+    }
+
+    @Test
+    public void setChecked_false() {
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+
+        CheckBox checkBox = view.findViewById(R.id.audio_sharing_stream_password_checkbox);
+
+        mPreference.setChecked(false);
+
+        assertThat(checkBox).isNotNull();
+        assertThat(checkBox.isChecked()).isFalse();
+    }
+
+    @Test
+    public void onDialogEventListener_onClick_positiveButton() {
+        AudioSharingPasswordPreference.OnDialogEventListener listener =
+                mock(AudioSharingPasswordPreference.OnDialogEventListener.class);
+        mPreference.setOnDialogEventListener(listener);
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+
+        EditText editText = view.findViewById(android.R.id.edit);
+        assertThat(editText).isNotNull();
+        editText.setText(EDIT_TEXT_CONTENT);
+
+        mPreference.onClick(mock(DialogInterface.class), DialogInterface.BUTTON_POSITIVE);
+
+        verify(listener).onBindDialogView();
+        verify(listener).onPreferenceDataChanged(eq(EDIT_TEXT_CONTENT), anyBoolean());
+    }
+
+    @Test
+    public void onDialogEventListener_onClick_negativeButton_doNothing() {
+        AudioSharingPasswordPreference.OnDialogEventListener listener =
+                mock(AudioSharingPasswordPreference.OnDialogEventListener.class);
+        mPreference.setOnDialogEventListener(listener);
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+
+        EditText editText = view.findViewById(android.R.id.edit);
+        assertThat(editText).isNotNull();
+        editText.setText(EDIT_TEXT_CONTENT);
+
+        mPreference.onClick(mock(DialogInterface.class), DialogInterface.BUTTON_NEGATIVE);
+
+        verify(listener).onBindDialogView();
+        verify(listener, never()).onPreferenceDataChanged(anyString(), anyBoolean());
+    }
+
+    @Test
+    public void onPrepareDialogBuilder_editable_doNothing() {
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+        mPreference.setEditable(true);
+
+        var dialogBuilder = mock(AlertDialog.Builder.class);
+        mPreference.onPrepareDialogBuilder(
+                dialogBuilder, mock(DialogInterface.OnClickListener.class));
+
+        verify(dialogBuilder, never()).setPositiveButton(any(), any());
+    }
+
+    @Test
+    public void onPrepareDialogBuilder_notEditable_disableButton() {
+        View view =
+                LayoutInflater.from(mContext).inflate(R.layout.audio_sharing_password_dialog, null);
+        mPreference.onBindDialogView(view);
+        mPreference.setEditable(false);
+
+        var dialogBuilder = mock(AlertDialog.Builder.class);
+        mPreference.onPrepareDialogBuilder(
+                dialogBuilder, mock(DialogInterface.OnClickListener.class));
+
+        verify(dialogBuilder).setPositiveButton(any(), any());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordValidatorTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordValidatorTest.java
new file mode 100644
index 0000000..5c96fe1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordValidatorTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioSharingPasswordValidatorTest {
+    private AudioSharingPasswordValidator mValidator;
+
+    @Before
+    public void setUp() {
+        mValidator = new AudioSharingPasswordValidator();
+    }
+
+    @Test
+    public void testValidPasswords() {
+        assertThat(mValidator.isTextValid("1234")).isTrue();
+        assertThat(mValidator.isTextValid("Password")).isTrue();
+        assertThat(mValidator.isTextValid("SecurePass123!")).isTrue();
+        assertThat(mValidator.isTextValid("ÄÖÜß")).isTrue();
+        assertThat(mValidator.isTextValid("1234567890abcdef")).isTrue();
+    }
+
+    @Test
+    public void testInvalidPasswords() {
+        assertThat(mValidator.isTextValid(null)).isFalse();
+        assertThat(mValidator.isTextValid("")).isFalse();
+        assertThat(mValidator.isTextValid("abc")).isFalse();
+        assertThat(mValidator.isTextValid("ThisIsAVeryLongPasswordThatExceedsSixteenOctets"))
+                .isFalse();
+        assertThat(mValidator.isTextValid("Invalid\uDC00")).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java
index deed229..db6eb8c 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingReceiverTest.java
@@ -25,7 +25,7 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
@@ -164,8 +164,7 @@
         AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
         audioSharingReceiver.onReceive(mContext, intent);
 
-        verify(mNm, times(1))
-                .notify(eq(R.drawable.ic_bt_le_audio_sharing), any(Notification.class));
+        verify(mNm).notify(eq(R.drawable.ic_bt_le_audio_sharing), any(Notification.class));
         verify(mFeatureFactory.metricsFeatureProvider)
                 .action(mContext, SettingsEnums.ACTION_SHOW_AUDIO_SHARING_NOTIFICATION);
     }
@@ -181,7 +180,7 @@
         AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
         audioSharingReceiver.onReceive(mContext, intent);
 
-        verify(mNm, times(1)).cancel(R.drawable.ic_bt_le_audio_sharing);
+        verify(mNm).cancel(R.drawable.ic_bt_le_audio_sharing);
         verify(mFeatureFactory.metricsFeatureProvider)
                 .action(mContext, SettingsEnums.ACTION_CANCEL_AUDIO_SHARING_NOTIFICATION);
     }
@@ -199,8 +198,10 @@
     }
 
     @Test
-    public void broadcastReceiver_receiveAudioSharingStopIntent_stopBroadcast() {
+    public void
+            broadcastReceiver_receiveAudioSharingStopIntent_notInBroadcast_cancelNotification() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        when(mBroadcast.isEnabled(null)).thenReturn(false);
         int broadcastId = 1;
         when(mBroadcast.getLatestBroadcastId()).thenReturn(broadcastId);
 
@@ -209,7 +210,25 @@
         AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
         audioSharingReceiver.onReceive(mContext, intent);
 
-        verify(mBroadcast, times(1)).stopBroadcast(broadcastId);
+        verify(mBroadcast, never()).stopBroadcast(broadcastId);
+        verify(mNm).cancel(R.drawable.ic_bt_le_audio_sharing);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(mContext, SettingsEnums.ACTION_CANCEL_AUDIO_SHARING_NOTIFICATION);
+    }
+
+    @Test
+    public void broadcastReceiver_receiveAudioSharingStopIntent_inBroadcast_stopBroadcast() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        when(mBroadcast.isEnabled(null)).thenReturn(true);
+        int broadcastId = 1;
+        when(mBroadcast.getLatestBroadcastId()).thenReturn(broadcastId);
+
+        Intent intent = new Intent(ACTION_LE_AUDIO_SHARING_STOP);
+        intent.setPackage(mContext.getPackageName());
+        AudioSharingReceiver audioSharingReceiver = getAudioSharingReceiver(intent);
+        audioSharingReceiver.onReceive(mContext, intent);
+
+        verify(mBroadcast).stopBroadcast(broadcastId);
         verify(mFeatureFactory.metricsFeatureProvider)
                 .action(mContext, SettingsEnums.ACTION_STOP_AUDIO_SHARING_FROM_NOTIFICATION);
     }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragmentTest.java
index b6babfb..c0af09f 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragmentTest.java
@@ -149,6 +149,20 @@
     }
 
     @Test
+    public void onCreateDialog_unattachedFragment_dialogNotExist() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        AudioSharingStopDialogFragment.show(
+                new Fragment(),
+                ImmutableList.of(TEST_DEVICE_ITEM2),
+                mCachedDevice1,
+                EMPTY_EVENT_LISTENER,
+                TEST_EVENT_DATA_LIST);
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
     public void onCreateDialog_oneDeviceInSharing_showDialogWithCorrectMessage() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
         AudioSharingStopDialogFragment.show(
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
index 45d99c7..711ef6f 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
@@ -30,6 +30,7 @@
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
@@ -39,6 +40,7 @@
 import android.bluetooth.BluetoothLeBroadcast;
 import android.bluetooth.BluetoothLeBroadcastAssistant;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.bluetooth.BluetoothProfile;
 import android.bluetooth.BluetoothStatusCodes;
 import android.content.BroadcastReceiver;
@@ -49,6 +51,8 @@
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.FeatureFlagUtils;
 import android.util.Pair;
+import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.CompoundButton;
 
 import androidx.fragment.app.DialogFragment;
@@ -376,9 +380,7 @@
         FeatureFlagUtils.setEnabled(
                 mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
         when(mBtnView.isEnabled()).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of());
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
         doNothing().when(mBroadcast).startPrivateBroadcast();
         mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
         assertThat(mSwitchBar.isChecked()).isFalse();
@@ -390,9 +392,7 @@
         FeatureFlagUtils.setEnabled(
                 mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, false);
         when(mBtnView.isEnabled()).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of());
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of());
         doNothing().when(mBroadcast).startPrivateBroadcast();
         mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
         verify(mBroadcast).startPrivateBroadcast();
@@ -403,9 +403,7 @@
         FeatureFlagUtils.setEnabled(
                 mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
         when(mBtnView.isEnabled()).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of(mDevice1));
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice1));
         doNothing().when(mBroadcast).startPrivateBroadcast();
         mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
         verify(mBroadcast).startPrivateBroadcast();
@@ -431,13 +429,41 @@
     }
 
     @Test
+    public void onPlaybackStarted_notInit_noDialog() {
+        FeatureFlagUtils.setEnabled(
+                mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
+        when(mBtnView.isEnabled()).thenReturn(true);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice2, mDevice1));
+        doNothing().when(mBroadcast).startPrivateBroadcast();
+        mController =
+                new AudioSharingSwitchBarController(
+                        mContext,
+                        mSwitchBar,
+                        new AudioSharingSwitchBarController.OnAudioSharingStateChangedListener() {
+                            @Override
+                            public void onAudioSharingStateChanged() {}
+
+                            @Override
+                            public void onAudioSharingProfilesConnected() {}
+                        });
+        mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
+        verify(mBroadcast).startPrivateBroadcast();
+        mController.mBroadcastCallback.onPlaybackStarted(0, 0);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(any(Context.class), eq(SettingsEnums.ACTION_AUTO_JOIN_AUDIO_SHARING));
+
+        List<Fragment> childFragments = mParentFragment.getChildFragmentManager().getFragments();
+        assertThat(childFragments).isEmpty();
+    }
+
+    @Test
     public void onPlaybackStarted_showJoinAudioSharingDialog() {
         FeatureFlagUtils.setEnabled(
                 mContext, FeatureFlagUtils.SETTINGS_NEED_CONNECTED_BLE_DEVICE_FOR_BROADCAST, true);
         when(mBtnView.isEnabled()).thenReturn(true);
-        when(mAssistant.getDevicesMatchingConnectionStates(
-                        new int[] {BluetoothProfile.STATE_CONNECTED}))
-                .thenReturn(ImmutableList.of(mDevice2, mDevice1));
+        when(mAssistant.getAllConnectedDevices()).thenReturn(ImmutableList.of(mDevice2, mDevice1));
         doNothing().when(mBroadcast).startPrivateBroadcast();
         mController.onCheckedChanged(mBtnView, /* isChecked= */ true);
         verify(mBroadcast).startPrivateBroadcast();
@@ -485,6 +511,11 @@
         shadowOf(Looper.getMainLooper()).idle();
         assertThat(mSwitchBar.isChecked()).isFalse();
         assertThat(mOnAudioSharingStateChanged).isFalse();
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_START_FAILED,
+                        SettingsEnums.AUDIO_SHARING_SETTINGS);
 
         when(mBroadcast.isEnabled(any())).thenReturn(true);
         mController.mBroadcastCallback.onBroadcastStarted(/* reason= */ 1, /* broadcastId= */ 1);
@@ -497,6 +528,11 @@
         shadowOf(Looper.getMainLooper()).idle();
         assertThat(mSwitchBar.isChecked()).isTrue();
         assertThat(mOnAudioSharingStateChanged).isFalse();
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_STOP_FAILED,
+                        SettingsEnums.AUDIO_SHARING_SETTINGS);
 
         when(mBroadcast.isEnabled(any())).thenReturn(false);
         mController.mBroadcastCallback.onBroadcastStopped(/* reason= */ 1, /* broadcastId= */ 1);
@@ -517,4 +553,65 @@
         verify(mSwitchBar, never()).setChecked(anyBoolean());
         assertThat(mOnAudioSharingStateChanged).isFalse();
     }
+
+    @Test
+    public void testBluetoothLeBroadcastAssistantCallbacks_logAction() {
+        BluetoothLeBroadcastMetadata metadata = mock(BluetoothLeBroadcastMetadata.class);
+        mController.mBroadcastAssistantCallback.onSourceAddFailed(
+                mDevice1, metadata, /* reason= */ 1);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        mContext,
+                        SettingsEnums.ACTION_AUDIO_SHARING_JOIN_FAILED,
+                        SettingsEnums.AUDIO_SHARING_SETTINGS);
+    }
+
+    @Test
+    public void testBluetoothLeBroadcastAssistantCallbacks_doNothing() {
+        BluetoothLeBroadcastReceiveState state = mock(BluetoothLeBroadcastReceiveState.class);
+        BluetoothLeBroadcastMetadata metadata = mock(BluetoothLeBroadcastMetadata.class);
+
+        // Do nothing
+        mController.mBroadcastAssistantCallback.onReceiveStateChanged(
+                mDevice1, /* sourceId= */ 1, state);
+        mController.mBroadcastAssistantCallback.onSearchStarted(/* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSearchStartFailed(/* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSearchStopped(/* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSearchStopFailed(/* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSourceAdded(
+                mDevice1, /* sourceId= */ 1, /* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSourceRemoved(
+                mDevice1, /* sourceId= */ 1, /* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSourceRemoveFailed(
+                mDevice1, /* sourceId= */ 1, /* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSourceModified(
+                mDevice1, /* sourceId= */ 1, /* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSourceModifyFailed(
+                mDevice1, /* sourceId= */ 1, /* reason= */ 1);
+        mController.mBroadcastAssistantCallback.onSourceFound(metadata);
+        mController.mBroadcastAssistantCallback.onSourceLost(/* broadcastId= */ 1);
+        verifyNoMoreInteractions(mFeatureFactory.metricsFeatureProvider);
+    }
+
+    @Test
+    public void testAccessibilityDelegate() {
+        View view = new View(mContext);
+        AccessibilityEvent event =
+                new AccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+        event.setContentChangeTypes(AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
+        assertThat(
+                        mSwitchBar
+                                .getRootView()
+                                .getAccessibilityDelegate()
+                                .onRequestSendAccessibilityEvent(mSwitchBar, view, event))
+                .isTrue();
+
+        event.setContentChangeTypes(AccessibilityEvent.CONTENT_CHANGE_TYPE_ENABLED);
+        assertThat(
+                        mSwitchBar
+                                .getRootView()
+                                .getAccessibilityDelegate()
+                                .onRequestSendAccessibilityEvent(mSwitchBar, view, event))
+                .isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceBadCodeStateTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceBadCodeStateTest.java
index 2fddff5..391a7b1 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceBadCodeStateTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceBadCodeStateTest.java
@@ -20,22 +20,45 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+
 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;
 
 @RunWith(RobolectricTestRunner.class)
 public class AddSourceBadCodeStateTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private AudioStreamPreference mPreference;
+    @Mock private AudioStreamsProgressCategoryController mController;
+    @Mock private AudioStreamsHelper mHelper;
+    private FakeFeatureFactory mFeatureFactory;
     private AddSourceBadCodeState mInstance;
 
     @Before
     public void setUp() {
-        mInstance = AddSourceBadCodeState.getInstance();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mInstance = new AddSourceBadCodeState();
     }
 
     @Test
     public void testGetInstance() {
+        mInstance = AddSourceBadCodeState.getInstance();
         assertThat(mInstance).isNotNull();
         assertThat(mInstance).isInstanceOf(SyncedState.class);
     }
@@ -55,4 +78,19 @@
                         AudioStreamsProgressCategoryController.AudioStreamState
                                 .ADD_SOURCE_BAD_CODE);
     }
+
+    @Test
+    public void testPerformAction() {
+        when(mPreference.getContext()).thenReturn(mContext);
+        when(mPreference.getSourceOriginForLogging())
+                .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS);
+
+        mInstance.performAction(mPreference, mController, mHelper);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        eq(mContext),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_FAILED_BAD_CODE),
+                        eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal()));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceFailedStateTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceFailedStateTest.java
index d8b1fcf..917d8de 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceFailedStateTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceFailedStateTest.java
@@ -20,22 +20,45 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+
 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;
 
 @RunWith(RobolectricTestRunner.class)
 public class AddSourceFailedStateTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private AudioStreamPreference mPreference;
+    @Mock private AudioStreamsProgressCategoryController mController;
+    @Mock private AudioStreamsHelper mHelper;
+    private FakeFeatureFactory mFeatureFactory;
     private AddSourceFailedState mInstance;
 
     @Before
     public void setUp() {
-        mInstance = AddSourceFailedState.getInstance();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mInstance = new AddSourceFailedState();
     }
 
     @Test
     public void testGetInstance() {
+        mInstance = AddSourceFailedState.getInstance();
         assertThat(mInstance).isNotNull();
         assertThat(mInstance).isInstanceOf(SyncedState.class);
     }
@@ -54,4 +77,19 @@
                 .isEqualTo(
                         AudioStreamsProgressCategoryController.AudioStreamState.ADD_SOURCE_FAILED);
     }
+
+    @Test
+    public void testPerformAction() {
+        when(mPreference.getContext()).thenReturn(mContext);
+        when(mPreference.getSourceOriginForLogging())
+                .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS);
+
+        mInstance.performAction(mPreference, mController, mHelper);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        eq(mContext),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_FAILED_OTHER),
+                        eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal()));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseStateTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseStateTest.java
index 6e5342b..ce21658 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseStateTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AddSourceWaitForResponseStateTest.java
@@ -22,11 +22,21 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -36,27 +46,41 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAlertDialog;
 import org.robolectric.shadows.ShadowLooper;
 
 import java.util.concurrent.TimeUnit;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowAlertDialog.class,
+        })
 public class AddSourceWaitForResponseStateTest {
-    private static final int BROADCAST_ID = 1;
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final int BROADCAST_ID = 1;
+    private final Context mContext = spy(ApplicationProvider.getApplicationContext());
     @Mock private AudioStreamPreference mMockPreference;
     @Mock private AudioStreamsProgressCategoryController mMockController;
     @Mock private AudioStreamsHelper mMockHelper;
     @Mock private BluetoothLeBroadcastMetadata mMockMetadata;
+    @Mock private AudioStreamsRepository mMockRepository;
+    private FakeFeatureFactory mFeatureFactory;
     private AddSourceWaitForResponseState mInstance;
 
     @Before
     public void setUp() {
-        mInstance = AddSourceWaitForResponseState.getInstance();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mInstance = new AddSourceWaitForResponseState();
+        when(mMockPreference.getContext()).thenReturn(mContext);
+        when(mMockPreference.getSourceOriginForLogging())
+                .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS);
     }
 
     @Test
     public void testGetInstance() {
+        mInstance = AddSourceWaitForResponseState.getInstance();
         assertThat(mInstance).isNotNull();
         assertThat(mInstance).isInstanceOf(AudioStreamStateHandler.class);
     }
@@ -93,11 +117,18 @@
     public void testPerformAction_metadataIsNotNull_addSource() {
         when(mMockPreference.getAudioStreamMetadata()).thenReturn(mMockMetadata);
         when(mMockPreference.getSourceOriginForLogging())
-                .thenReturn(SourceOriginForLogging.UNKNOWN);
+                .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS);
+        mInstance.setAudioStreamsRepositoryForTesting(mMockRepository);
 
         mInstance.performAction(mMockPreference, mMockController, mMockHelper);
 
         verify(mMockHelper).addSource(mMockMetadata);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        eq(mContext),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN),
+                        eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal()));
+        verify(mMockRepository).cacheMetadata(mMockMetadata);
         verify(mMockController, never()).handleSourceFailedToConnect(anyInt());
     }
 
@@ -108,12 +139,28 @@
         when(mMockPreference.getAudioStreamState()).thenReturn(mInstance.getStateEnum());
         when(mMockPreference.getAudioStreamBroadcastId()).thenReturn(BROADCAST_ID);
         when(mMockPreference.getSourceOriginForLogging())
-                .thenReturn(SourceOriginForLogging.UNKNOWN);
+                .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS);
+        when(mMockController.getFragment()).thenReturn(mock(AudioStreamsDashboardFragment.class));
+        mInstance.setAudioStreamsRepositoryForTesting(mMockRepository);
 
         mInstance.performAction(mMockPreference, mMockController, mMockHelper);
         ShadowLooper.idleMainLooper(ADD_SOURCE_WAIT_FOR_RESPONSE_TIMEOUT_MILLIS, TimeUnit.SECONDS);
 
         verify(mMockHelper).addSource(mMockMetadata);
         verify(mMockController).handleSourceFailedToConnect(BROADCAST_ID);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        eq(mContext),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN),
+                        eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal()));
+        verify(mMockRepository).cacheMetadata(mMockMetadata);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        eq(mContext),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_FAILED_TIMEOUT),
+                        eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal()));
+        verify(mContext).getString(R.string.audio_streams_dialog_stream_is_not_available);
+        verify(mContext).getString(R.string.audio_streams_is_not_playing);
+        verify(mContext).getString(R.string.audio_streams_dialog_close);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonControllerTest.java
index cbf1432..c6fb361 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonControllerTest.java
@@ -16,22 +16,36 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.content.Context;
 import android.view.View;
 
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.connecteddevice.audiosharing.audiostreams.testshadows.ShadowAudioStreamsHelper;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.ActionButtonsPreference;
 
 import org.junit.After;
@@ -39,14 +53,17 @@
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.concurrent.Executor;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
@@ -63,14 +80,23 @@
     @Mock private AudioStreamsHelper mAudioStreamsHelper;
     @Mock private PreferenceScreen mScreen;
     @Mock private BluetoothLeBroadcastReceiveState mBroadcastReceiveState;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
+    @Mock private AudioStreamsRepository mRepository;
     @Mock private ActionButtonsPreference mPreference;
+    private Lifecycle mLifecycle;
+    private LifecycleOwner mLifecycleOwner;
+    private FakeFeatureFactory mFeatureFactory;
     private AudioStreamButtonController mController;
 
     @Before
     public void setUp() {
         ShadowAudioStreamsHelper.setUseMock(mAudioStreamsHelper);
+        when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(mAssistant);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new AudioStreamButtonController(mContext, KEY);
         mController.init(BROADCAST_ID);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
         when(mScreen.findPreference(KEY)).thenReturn(mPreference);
         when(mPreference.getContext()).thenReturn(mContext);
         when(mPreference.setButton1Text(anyInt())).thenReturn(mPreference);
@@ -86,6 +112,40 @@
     }
 
     @Test
+    public void onStart_registerCallbacks() {
+        mController.onStart(mLifecycleOwner);
+        verify(mAssistant)
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    public void onStart_profileNull_doNothing() {
+        when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(null);
+        mController = new AudioStreamButtonController(mContext, KEY);
+        mController.onStart(mLifecycleOwner);
+        verify(mAssistant, never())
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    public void onStop_unregisterCallbacks() {
+        mController.onStop(mLifecycleOwner);
+        verify(mAssistant)
+                .unregisterServiceCallBack(any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    public void onStop_profileNull_doNothing() {
+        when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(null);
+        mController = new AudioStreamButtonController(mContext, KEY);
+        mController.onStop(mLifecycleOwner);
+        verify(mAssistant, never())
+                .unregisterServiceCallBack(any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
     public void testDisplayPreference_sourceConnected_setDisconnectButton() {
         when(mAudioStreamsHelper.getAllConnectedSources())
                 .thenReturn(List.of(mBroadcastReceiveState));
@@ -96,18 +156,133 @@
         verify(mPreference).setButton1Enabled(true);
         verify(mPreference).setButton1Text(R.string.audio_streams_disconnect);
         verify(mPreference).setButton1Icon(com.android.settings.R.drawable.ic_settings_close);
-        verify(mPreference).setButton1OnClickListener(any(View.OnClickListener.class));
+
+        ArgumentCaptor<View.OnClickListener> listenerCaptor =
+                ArgumentCaptor.forClass(View.OnClickListener.class);
+        verify(mPreference).setButton1OnClickListener(listenerCaptor.capture());
+        var listener = listenerCaptor.getValue();
+
+        assertThat(listener).isNotNull();
+        listener.onClick(mock(View.class));
+        verify(mAudioStreamsHelper).removeSource(BROADCAST_ID);
+        verify(mPreference).setButton1Enabled(false);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(any(), eq(SettingsEnums.ACTION_AUDIO_STREAM_LEAVE_BUTTON_CLICK));
     }
 
     @Test
     public void testDisplayPreference_sourceNotConnected_setConnectButton() {
         when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(Collections.emptyList());
+        mController.setAudioStreamsRepositoryForTesting(mRepository);
+        var metadataToRejoin = mock(BluetoothLeBroadcastMetadata.class);
+        when(mRepository.getSavedMetadata(any(), anyInt())).thenReturn(metadataToRejoin);
 
         mController.displayPreference(mScreen);
 
         verify(mPreference).setButton1Enabled(true);
         verify(mPreference).setButton1Text(R.string.audio_streams_connect);
         verify(mPreference).setButton1Icon(com.android.settings.R.drawable.ic_add_24dp);
-        verify(mPreference).setButton1OnClickListener(any(View.OnClickListener.class));
+
+        ArgumentCaptor<View.OnClickListener> listenerCaptor =
+                ArgumentCaptor.forClass(View.OnClickListener.class);
+        verify(mPreference).setButton1OnClickListener(listenerCaptor.capture());
+        var listener = listenerCaptor.getValue();
+
+        assertThat(listener).isNotNull();
+        listener.onClick(mock(View.class));
+        verify(mAudioStreamsHelper).addSource(metadataToRejoin);
+        verify(mPreference).setButton1Enabled(false);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(any(), eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN), anyInt());
+    }
+
+    @Test
+    public void testCallback_onSourceRemoved_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(Collections.emptyList());
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onSourceRemoved(
+                mock(BluetoothDevice.class), /* sourceId= */ 0, /* reason= */ 0);
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mPreference, times(2)).setButton1Enabled(true);
+        verify(mPreference, times(2)).setButton1Text(R.string.audio_streams_connect);
+        verify(mPreference, times(2)).setButton1Icon(com.android.settings.R.drawable.ic_add_24dp);
+    }
+
+    @Test
+    public void testCallback_onSourceRemovedFailed_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources())
+                .thenReturn(List.of(mBroadcastReceiveState));
+        when(mBroadcastReceiveState.getBroadcastId()).thenReturn(BROADCAST_ID);
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onSourceRemoveFailed(
+                mock(BluetoothDevice.class), /* sourceId= */ 0, /* reason= */ 0);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(any(), eq(SettingsEnums.ACTION_AUDIO_STREAM_LEAVE_FAILED));
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mPreference, times(2)).setButton1Enabled(true);
+        verify(mPreference, times(2)).setButton1Text(R.string.audio_streams_disconnect);
+        verify(mPreference, times(2))
+                .setButton1Icon(com.android.settings.R.drawable.ic_settings_close);
+    }
+
+    @Test
+    public void testCallback_onReceiveStateChanged_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources())
+                .thenReturn(List.of(mBroadcastReceiveState));
+        when(mBroadcastReceiveState.getBroadcastId()).thenReturn(BROADCAST_ID);
+        BluetoothLeBroadcastReceiveState state = mock(BluetoothLeBroadcastReceiveState.class);
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(state.getBisSyncState()).thenReturn(bisSyncState);
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onReceiveStateChanged(
+                mock(BluetoothDevice.class), /* sourceId= */ 0, state);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(any(), eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_SUCCEED), anyInt());
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mPreference, times(2)).setButton1Enabled(true);
+        verify(mPreference, times(2)).setButton1Text(R.string.audio_streams_disconnect);
+        verify(mPreference, times(2))
+                .setButton1Icon(com.android.settings.R.drawable.ic_settings_close);
+    }
+
+    @Test
+    public void testCallback_onSourceAddFailed_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(Collections.emptyList());
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onSourceAddFailed(
+                mock(BluetoothDevice.class),
+                mock(BluetoothLeBroadcastMetadata.class),
+                /* reason= */ 0);
+
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(any(), eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_FAILED_OTHER), anyInt());
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mPreference, times(2)).setButton1Enabled(true);
+        verify(mPreference, times(2)).setButton1Text(R.string.audio_streams_connect);
+        verify(mPreference, times(2)).setButton1Icon(com.android.settings.R.drawable.ic_add_24dp);
+    }
+
+    @Test
+    public void testCallback_onSourceLost_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(Collections.emptyList());
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onSourceLost(/* broadcastId= */ 0);
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mPreference, times(2)).setButton1Enabled(true);
+        verify(mPreference, times(2)).setButton1Text(R.string.audio_streams_connect);
+        verify(mPreference, times(2)).setButton1Icon(com.android.settings.R.drawable.ic_add_24dp);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivityTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivityTest.java
index e967a12..1f05cbb 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivityTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogActivityTest.java
@@ -18,28 +18,132 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothStatusCodes;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.bluetooth.VolumeControlProfile;
+import com.android.settingslib.flags.Flags;
+
+import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowBluetoothAdapter.class,
+            ShadowBluetoothUtils.class,
+        })
 public class AudioStreamConfirmDialogActivityTest {
+    @Rule public final MockitoRule mocks = MockitoJUnit.rule();
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    @Mock private LocalBluetoothManager mLocalBluetoothManager;
+    @Mock private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
+    @Mock private LocalBluetoothLeBroadcast mBroadcast;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
+    @Mock private VolumeControlProfile mVolumeControl;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
     private AudioStreamConfirmDialogActivity mActivity;
 
     @Before
     public void setUp() {
-        mActivity = Robolectric.buildActivity(AudioStreamConfirmDialogActivity.class).get();
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
+        when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
+        when(mLocalBluetoothProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
+        when(mLocalBluetoothProfileManager.getLeAudioBroadcastAssistantProfile())
+                .thenReturn(mAssistant);
+        when(mLocalBluetoothProfileManager.getVolumeControlProfile()).thenReturn(mVolumeControl);
+        when(mBroadcast.isProfileReady()).thenReturn(true);
+        when(mAssistant.isProfileReady()).thenReturn(true);
+        when(mVolumeControl.isProfileReady()).thenReturn(true);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowBluetoothUtils.reset();
     }
 
     @Test
     public void isValidFragment_returnsTrue() {
+        mActivity = Robolectric.setupActivity(AudioStreamConfirmDialogActivity.class);
         assertThat(mActivity.isValidFragment(AudioStreamConfirmDialog.class.getName())).isTrue();
     }
 
     @Test
     public void isValidFragment_returnsFalse() {
+        mActivity = Robolectric.setupActivity(AudioStreamConfirmDialogActivity.class);
         assertThat(mActivity.isValidFragment("")).isFalse();
     }
+
+    @Test
+    public void isToolbarEnabled_returnsFalse() {
+        mActivity = Robolectric.setupActivity(AudioStreamConfirmDialogActivity.class);
+        assertThat(mActivity.isToolbarEnabled()).isFalse();
+    }
+
+    @Test
+    public void setupActivity_serviceNotReady_registerCallback() {
+        when(mBroadcast.isProfileReady()).thenReturn(false);
+        mActivity = Robolectric.setupActivity(AudioStreamConfirmDialogActivity.class);
+
+        verify(mLocalBluetoothProfileManager).addServiceListener(any());
+    }
+
+    @Test
+    public void setupActivity_serviceNotReady_registerCallback_onServiceCallback() {
+        when(mBroadcast.isProfileReady()).thenReturn(false);
+        mActivity = Robolectric.setupActivity(AudioStreamConfirmDialogActivity.class);
+
+        verify(mLocalBluetoothProfileManager).addServiceListener(any());
+
+        when(mBroadcast.isProfileReady()).thenReturn(true);
+        mActivity.onServiceConnected();
+        verify(mLocalBluetoothProfileManager).removeServiceListener(any());
+
+        mActivity.onServiceDisconnected();
+        // Do nothing.
+    }
+
+    @Test
+    public void setupActivity_serviceReady_doNothing() {
+        mActivity = Robolectric.setupActivity(AudioStreamConfirmDialogActivity.class);
+
+        verify(mLocalBluetoothProfileManager, never()).addServiceListener(any());
+    }
+
+    @Test
+    public void onStop_unregisterCallback() {
+        mActivity = Robolectric.setupActivity(AudioStreamConfirmDialogActivity.class);
+        mActivity.onStop();
+
+        verify(mLocalBluetoothProfileManager).removeServiceListener(any());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java
index c7aafe8..9c83fa6 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialogTest.java
@@ -16,14 +16,20 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static android.app.settings.SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_LISTEN;
+
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamConfirmDialog.DEFAULT_DEVICE_NAME;
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsDashboardFragment.KEY_BROADCAST_METADATA;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
+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 static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
 
+import android.app.Dialog;
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
@@ -127,6 +133,8 @@
 
         assertThat(mDialogFragment.getMetricsCategory())
                 .isEqualTo(SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_FEATURE_UNSUPPORTED);
+        assertThat(mDialogFragment.mActivity).isNotNull();
+        mDialogFragment.mActivity = spy(mDialogFragment.mActivity);
 
         var dialog = mDialogFragment.getDialog();
         assertThat(dialog).isNotNull();
@@ -152,6 +160,10 @@
         assertThat(rightButton).isNotNull();
         assertThat(rightButton.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(rightButton.hasOnClickListeners()).isTrue();
+
+        rightButton.callOnClick();
+        assertThat(dialog.isShowing()).isFalse();
+        verify(mDialogFragment.mActivity).finish();
     }
 
     @Test
@@ -165,6 +177,8 @@
 
         assertThat(mDialogFragment.getMetricsCategory())
                 .isEqualTo(SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_NO_LE_DEVICE);
+        assertThat(mDialogFragment.mActivity).isNotNull();
+        mDialogFragment.mActivity = spy(mDialogFragment.mActivity);
 
         var dialog = mDialogFragment.getDialog();
         assertThat(dialog).isNotNull();
@@ -184,18 +198,27 @@
         View leftButton = dialog.findViewById(R.id.left_button);
         assertThat(leftButton).isNotNull();
         assertThat(leftButton.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(leftButton.hasOnClickListeners()).isTrue();
+
+        leftButton.callOnClick();
+        assertThat(dialog.isShowing()).isFalse();
+
         Button rightButton = dialog.findViewById(R.id.right_button);
         assertThat(rightButton).isNotNull();
         assertThat(rightButton.getText())
                 .isEqualTo(mContext.getString(R.string.audio_streams_dialog_no_le_device_button));
         assertThat(rightButton.hasOnClickListeners()).isTrue();
+
+        rightButton.callOnClick();
+        assertThat(dialog.isShowing()).isFalse();
+        verify(mDialogFragment.mActivity, times(2)).finish();
     }
 
     @Test
     public void showDialog_noMetadata() {
         List<BluetoothDevice> devices = new ArrayList<>();
         devices.add(mBluetoothDevice);
-        when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
         when(mBluetoothDevice.getAlias()).thenReturn(DEVICE_NAME);
 
         FragmentController.setupFragment(
@@ -207,6 +230,8 @@
 
         assertThat(mDialogFragment.getMetricsCategory())
                 .isEqualTo(SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_DATA_ERROR);
+        assertThat(mDialogFragment.mActivity).isNotNull();
+        mDialogFragment.mActivity = spy(mDialogFragment.mActivity);
 
         var dialog = mDialogFragment.getDialog();
         assertThat(dialog).isNotNull();
@@ -231,13 +256,17 @@
         assertThat(rightButton).isNotNull();
         assertThat(rightButton.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(rightButton.hasOnClickListeners()).isTrue();
+
+        rightButton.callOnClick();
+        assertThat(dialog.isShowing()).isFalse();
+        verify(mDialogFragment.mActivity).finish();
     }
 
     @Test
     public void showDialog_invalidMetadata() {
         List<BluetoothDevice> devices = new ArrayList<>();
         devices.add(mBluetoothDevice);
-        when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
         when(mBluetoothDevice.getAlias()).thenReturn(DEVICE_NAME);
 
         Intent intent = new Intent();
@@ -252,6 +281,8 @@
 
         assertThat(mDialogFragment.getMetricsCategory())
                 .isEqualTo(SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_DATA_ERROR);
+        assertThat(mDialogFragment.mActivity).isNotNull();
+        mDialogFragment.mActivity = spy(mDialogFragment.mActivity);
 
         var dialog = mDialogFragment.getDialog();
         assertThat(dialog).isNotNull();
@@ -276,14 +307,18 @@
         assertThat(rightButton).isNotNull();
         assertThat(rightButton.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(rightButton.hasOnClickListeners()).isTrue();
+
+        rightButton.callOnClick();
+        assertThat(dialog.isShowing()).isFalse();
+        verify(mDialogFragment.mActivity).finish();
     }
 
     @Test
     public void showDialog_confirmListen() {
         List<BluetoothDevice> devices = new ArrayList<>();
         devices.add(mBluetoothDevice);
-        when(mAssistant.getDevicesMatchingConnectionStates(any())).thenReturn(devices);
-        when(mBluetoothDevice.getAlias()).thenReturn(DEVICE_NAME);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
+        when(mBluetoothDevice.getAlias()).thenReturn("");
 
         Intent intent = new Intent();
         intent.putExtra(KEY_BROADCAST_METADATA, VALID_METADATA);
@@ -296,9 +331,11 @@
         shadowMainLooper().idle();
 
         assertThat(mDialogFragment.getMetricsCategory())
-                .isEqualTo(SettingsEnums.DIALOG_AUDIO_STREAM_CONFIRM_LISTEN);
+                .isEqualTo(DIALOG_AUDIO_STREAM_CONFIRM_LISTEN);
+        assertThat(mDialogFragment.mActivity).isNotNull();
+        mDialogFragment.mActivity = spy(mDialogFragment.mActivity);
 
-        var dialog = mDialogFragment.getDialog();
+        Dialog dialog = mDialogFragment.getDialog();
         assertThat(dialog).isNotNull();
         assertThat(dialog.isShowing()).isTrue();
         TextView title = dialog.findViewById(R.id.dialog_title);
@@ -311,17 +348,27 @@
         assertThat(subtitle1.getVisibility()).isEqualTo(View.VISIBLE);
         TextView subtitle2 = dialog.findViewById(R.id.dialog_subtitle_2);
         assertThat(subtitle2).isNotNull();
+        var defaultName = mContext.getString(DEFAULT_DEVICE_NAME);
         assertThat(subtitle2.getText())
                 .isEqualTo(
                         mContext.getString(
-                                R.string.audio_streams_dialog_control_volume, DEVICE_NAME));
+                                R.string.audio_streams_dialog_control_volume, defaultName));
         View leftButton = dialog.findViewById(R.id.left_button);
         assertThat(leftButton).isNotNull();
         assertThat(leftButton.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(leftButton.hasOnClickListeners()).isTrue();
+
+        leftButton.callOnClick();
+        assertThat(dialog.isShowing()).isFalse();
+
         Button rightButton = dialog.findViewById(R.id.right_button);
         assertThat(rightButton).isNotNull();
         assertThat(rightButton.getText())
                 .isEqualTo(mContext.getString(R.string.audio_streams_dialog_listen));
         assertThat(rightButton.hasOnClickListeners()).isTrue();
+
+        rightButton.callOnClick();
+        assertThat(dialog.isShowing()).isFalse();
+        verify(mDialogFragment.mActivity, times(2)).finish();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamDetailsFragmentTest.java
index 724c772..46d481a 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamDetailsFragmentTest.java
@@ -16,22 +16,48 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamDetailsFragment.BROADCAST_ID_ARG;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamDetailsFragment.BROADCAST_NAME_ARG;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Bundle;
+
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.settings.R;
+import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 @RunWith(RobolectricTestRunner.class)
 public class AudioStreamDetailsFragmentTest {
-    private AudioStreamDetailsFragment mFragment;
+    @Rule public final MockitoRule mocks = MockitoJUnit.rule();
+    private static final String BROADCAST_NAME = "name";
+    private static final int BROADCAST_ID = 1;
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private AudioStreamHeaderController mHeaderController;
+    @Mock private AudioStreamButtonController mButtonController;
+    private TestFragment mFragment;
 
     @Before
     public void setUp() {
-        mFragment = new AudioStreamDetailsFragment();
+        mFragment = spy(new TestFragment());
+        doReturn(mHeaderController).when(mFragment).use(AudioStreamHeaderController.class);
+        doReturn(mButtonController).when(mFragment).use(AudioStreamButtonController.class);
     }
 
     @Test
@@ -44,4 +70,29 @@
     public void getLogTag_returnsCorrectTag() {
         assertThat(mFragment.getLogTag()).isEqualTo(AudioStreamDetailsFragment.TAG);
     }
+
+    @Test
+    public void getMetricsCategory_returnsCorrectEnum() {
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(SettingsEnums.AUDIO_STREAM_DETAIL);
+    }
+
+    @Test
+    public void onAttach_getArguments() {
+        Bundle bundle = new Bundle();
+        bundle.putString(BROADCAST_NAME_ARG, BROADCAST_NAME);
+        bundle.putInt(BROADCAST_ID_ARG, BROADCAST_ID);
+        mFragment.setArguments(bundle);
+
+        mFragment.onAttach(mContext);
+
+        verify(mButtonController).init(BROADCAST_ID);
+        verify(mHeaderController).init(mFragment, BROADCAST_NAME, BROADCAST_ID);
+    }
+
+    public static class TestFragment extends AudioStreamDetailsFragment {
+        @Override
+        protected <T extends AbstractPreferenceController> T use(Class<T> clazz) {
+            return super.use(clazz);
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderControllerTest.java
index 0cd5d61..327090d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderControllerTest.java
@@ -19,12 +19,20 @@
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamHeaderController.AUDIO_STREAM_HEADER_LISTENING_NOW_SUMMARY;
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamHeaderController.AUDIO_STREAM_HEADER_NOT_LISTENING_SUMMARY;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
@@ -32,6 +40,8 @@
 import com.android.settings.connecteddevice.audiosharing.audiostreams.testshadows.ShadowEntityHeaderController;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
 import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.LayoutPreference;
 
 import org.junit.After;
@@ -45,8 +55,10 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.concurrent.Executor;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
@@ -65,15 +77,21 @@
     @Mock private AudioStreamsHelper mAudioStreamsHelper;
     @Mock private PreferenceScreen mScreen;
     @Mock private BluetoothLeBroadcastReceiveState mBroadcastReceiveState;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
     @Mock private AudioStreamDetailsFragment mFragment;
     @Mock private LayoutPreference mPreference;
     @Mock private EntityHeaderController mHeaderController;
+    private Lifecycle mLifecycle;
+    private LifecycleOwner mLifecycleOwner;
     private AudioStreamHeaderController mController;
 
     @Before
     public void setUp() {
         ShadowEntityHeaderController.setUseMock(mHeaderController);
         ShadowAudioStreamsHelper.setUseMock(mAudioStreamsHelper);
+        when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(mAssistant);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
         mController = new AudioStreamHeaderController(mContext, KEY);
         mController.init(mFragment, BROADCAST_NAME, BROADCAST_ID);
         when(mScreen.findPreference(KEY)).thenReturn(mPreference);
@@ -88,6 +106,40 @@
     }
 
     @Test
+    public void onStart_registerCallbacks() {
+        mController.onStart(mLifecycleOwner);
+        verify(mAssistant)
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    public void onStart_profileNull_doNothing() {
+        when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(null);
+        mController = new AudioStreamHeaderController(mContext, KEY);
+        mController.onStart(mLifecycleOwner);
+        verify(mAssistant, never())
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    public void onStop_unregisterCallbacks() {
+        mController.onStop(mLifecycleOwner);
+        verify(mAssistant)
+                .unregisterServiceCallBack(any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    public void onStop_profileNull_doNothing() {
+        when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(null);
+        mController = new AudioStreamHeaderController(mContext, KEY);
+        mController.onStop(mLifecycleOwner);
+        verify(mAssistant, never())
+                .unregisterServiceCallBack(any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
     public void testDisplayPreference_sourceConnected_setSummary() {
         when(mAudioStreamsHelper.getAllConnectedSources())
                 .thenReturn(List.of(mBroadcastReceiveState));
@@ -96,9 +148,11 @@
         mController.displayPreference(mScreen);
 
         verify(mHeaderController).setLabel(BROADCAST_NAME);
+        verify(mHeaderController).setIcon(any(Drawable.class));
         verify(mHeaderController)
                 .setSummary(mContext.getString(AUDIO_STREAM_HEADER_LISTENING_NOW_SUMMARY));
         verify(mHeaderController).done(true);
+        verify(mScreen).addPreference(any());
     }
 
     @Test
@@ -108,7 +162,54 @@
         mController.displayPreference(mScreen);
 
         verify(mHeaderController).setLabel(BROADCAST_NAME);
+        verify(mHeaderController).setIcon(any(Drawable.class));
         verify(mHeaderController).setSummary(AUDIO_STREAM_HEADER_NOT_LISTENING_SUMMARY);
         verify(mHeaderController).done(true);
+        verify(mScreen).addPreference(any());
+    }
+
+    @Test
+    public void testCallback_onSourceRemoved_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(Collections.emptyList());
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onSourceRemoved(
+                mock(BluetoothDevice.class), /* sourceId= */ 0, /* reason= */ 0);
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mHeaderController, times(2)).setSummary(AUDIO_STREAM_HEADER_NOT_LISTENING_SUMMARY);
+        verify(mHeaderController, times(2)).done(true);
+    }
+
+    @Test
+    public void testCallback_onSourceLost_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(Collections.emptyList());
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onSourceLost(/* broadcastId= */ 1);
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mHeaderController, times(2)).setSummary(AUDIO_STREAM_HEADER_NOT_LISTENING_SUMMARY);
+        verify(mHeaderController, times(2)).done(true);
+    }
+
+    @Test
+    public void testCallback_onReceiveStateChanged_updateButton() {
+        when(mAudioStreamsHelper.getAllConnectedSources())
+                .thenReturn(List.of(mBroadcastReceiveState));
+        when(mBroadcastReceiveState.getBroadcastId()).thenReturn(BROADCAST_ID);
+        BluetoothLeBroadcastReceiveState state = mock(BluetoothLeBroadcastReceiveState.class);
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(state.getBisSyncState()).thenReturn(bisSyncState);
+
+        mController.displayPreference(mScreen);
+        mController.mBroadcastAssistantCallback.onReceiveStateChanged(
+                mock(BluetoothDevice.class), /* sourceId= */ 0, state);
+
+        // Called twice, once in displayPreference, the other one in callback
+        verify(mHeaderController, times(2))
+                .setSummary(mContext.getString(AUDIO_STREAM_HEADER_LISTENING_NOW_SUMMARY));
+        verify(mHeaderController, times(2)).done(true);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaServiceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaServiceTest.java
index b184d88..abdd743 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaServiceTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamMediaServiceTest.java
@@ -18,22 +18,29 @@
 
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamMediaService.BROADCAST_ID;
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamMediaService.DEVICES;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamMediaService.LEAVE_BROADCAST_ACTION;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.Notification;
+import android.app.NotificationChannel;
 import android.app.NotificationManager;
+import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
 import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
 import android.content.Intent;
@@ -43,14 +50,20 @@
 import android.media.session.ISession;
 import android.media.session.ISessionController;
 import android.media.session.MediaSessionManager;
+import android.os.Bundle;
+import android.os.IBinder;
 import android.os.RemoteException;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.DisplayMetrics;
 
 import com.android.settings.connecteddevice.audiosharing.audiostreams.testshadows.ShadowAudioStreamsHelper;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settings.testutils.shadow.ShadowThreadUtils;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
@@ -72,10 +85,12 @@
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
+import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
         shadows = {
+            ShadowThreadUtils.class,
             ShadowBluetoothAdapter.class,
             ShadowBluetoothUtils.class,
             ShadowAudioStreamsHelper.class,
@@ -83,6 +98,8 @@
 public class AudioStreamMediaServiceTest {
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private static final String CHANNEL_ID = "bluetooth_notification_channel";
+    private static final String DEVICE_NAME = "name";
     @Mock private Resources mResources;
     @Mock private LocalBluetoothManager mLocalBtManager;
     @Mock private LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
@@ -91,17 +108,21 @@
     @Mock private MediaSessionManager mMediaSessionManager;
     @Mock private BluetoothEventManager mBluetoothEventManager;
     @Mock private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
+    @Mock private CachedBluetoothDeviceManager mCachedDeviceManager;
     @Mock private VolumeControlProfile mVolumeControlProfile;
+    @Mock private CachedBluetoothDevice mCachedBluetoothDevice;
     @Mock private BluetoothDevice mDevice;
     @Mock private ISession mISession;
     @Mock private ISessionController mISessionController;
     @Mock private PackageManager mPackageManager;
     @Mock private DisplayMetrics mDisplayMetrics;
     @Mock private Context mContext;
+    private FakeFeatureFactory mFeatureFactory;
     private AudioStreamMediaService mAudioStreamMediaService;
 
     @Before
     public void setUp() {
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         ShadowAudioStreamsHelper.setUseMock(mAudioStreamsHelper);
         when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(mLeBroadcastAssistant);
         ShadowBluetoothAdapter shadowBluetoothAdapter =
@@ -114,6 +135,9 @@
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
         when(mLocalBtManager.getEventManager()).thenReturn(mBluetoothEventManager);
         when(mLocalBtManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
+        when(mLocalBtManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
+        when(mCachedDeviceManager.findDevice(any())).thenReturn(mCachedBluetoothDevice);
+        when(mCachedBluetoothDevice.getName()).thenReturn(DEVICE_NAME);
         when(mLocalBluetoothProfileManager.getVolumeControlProfile())
                 .thenReturn(mVolumeControlProfile);
 
@@ -169,6 +193,25 @@
     }
 
     @Test
+    public void onCreate_flagOn_createNewChannel() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        when(mNotificationManager.getNotificationChannel(anyString())).thenReturn(null);
+
+        mAudioStreamMediaService.onCreate();
+
+        ArgumentCaptor<NotificationChannel> notificationChannelCapture =
+                ArgumentCaptor.forClass(NotificationChannel.class);
+        verify(mNotificationManager)
+                .createNotificationChannel(notificationChannelCapture.capture());
+        NotificationChannel newChannel = notificationChannelCapture.getValue();
+        assertThat(newChannel).isNotNull();
+        assertThat(newChannel.getId()).isEqualTo(CHANNEL_ID);
+        assertThat(newChannel.getName())
+                .isEqualTo(mContext.getString(com.android.settings.R.string.bluetooth));
+        assertThat(newChannel.getImportance()).isEqualTo(NotificationManager.IMPORTANCE_HIGH);
+    }
+
+    @Test
     public void onDestroy_flagOff_doNothing() {
         mSetFlagsRule.disableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
 
@@ -183,8 +226,15 @@
     @Test
     public void onDestroy_flagOn_cleanup() {
         mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        var devices = new ArrayList<BluetoothDevice>();
+        devices.add(mDevice);
+
+        Intent intent = new Intent();
+        intent.putExtra(BROADCAST_ID, 1);
+        intent.putParcelableArrayListExtra(DEVICES, devices);
 
         mAudioStreamMediaService.onCreate();
+        mAudioStreamMediaService.onStartCommand(intent, /* flags= */ 0, /* startId= */ 0);
         mAudioStreamMediaService.onDestroy();
 
         verify(mBluetoothEventManager).unregisterCallback(any());
@@ -196,7 +246,6 @@
     public void onStartCommand_noBroadcastId_stopSelf() {
         mAudioStreamMediaService.onStartCommand(new Intent(), /* flags= */ 0, /* startId= */ 0);
 
-        assertThat(mAudioStreamMediaService.mLocalSession).isNull();
         verify(mAudioStreamMediaService).stopSelf();
     }
 
@@ -207,7 +256,6 @@
 
         mAudioStreamMediaService.onStartCommand(intent, /* flags= */ 0, /* startId= */ 0);
 
-        assertThat(mAudioStreamMediaService.mLocalSession).isNull();
         verify(mAudioStreamMediaService).stopSelf();
     }
 
@@ -222,12 +270,179 @@
 
         mAudioStreamMediaService.onStartCommand(intent, /* flags= */ 0, /* startId= */ 0);
 
-        assertThat(mAudioStreamMediaService.mLocalSession).isNotNull();
-        verify(mAudioStreamMediaService, never()).stopSelf();
+        ArgumentCaptor<Notification> notificationCapture =
+                ArgumentCaptor.forClass(Notification.class);
+        verify(mAudioStreamMediaService).startForeground(anyInt(), notificationCapture.capture());
+        var notification = notificationCapture.getValue();
+        assertThat(notification.getSmallIcon()).isNotNull();
+        assertThat(notification.isStyle(Notification.MediaStyle.class)).isTrue();
 
-        ArgumentCaptor<Notification> notification = ArgumentCaptor.forClass(Notification.class);
-        verify(mAudioStreamMediaService).startForeground(anyInt(), notification.capture());
-        assertThat(notification.getValue().getSmallIcon()).isNotNull();
-        assertThat(notification.getValue().isStyle(Notification.MediaStyle.class)).isTrue();
+        verify(mAudioStreamMediaService, never()).stopSelf();
+    }
+
+    @Test
+    public void assistantCallback_onSourceLost_stopSelf() {
+        mAudioStreamMediaService.onCreate();
+
+        assertThat(mAudioStreamMediaService.mBroadcastAssistantCallback).isNotNull();
+        mAudioStreamMediaService.mBroadcastAssistantCallback.onSourceLost(/* broadcastId= */ 0);
+
+        verify(mAudioStreamMediaService).stopSelf();
+    }
+
+    @Test
+    public void assistantCallback_onSourceRemoved_stopSelf() {
+        mAudioStreamMediaService.onCreate();
+
+        assertThat(mAudioStreamMediaService.mBroadcastAssistantCallback).isNotNull();
+        mAudioStreamMediaService.mBroadcastAssistantCallback.onSourceRemoved(
+                mDevice, /* sourceId= */ 0, /* reason= */ 0);
+
+        verify(mAudioStreamMediaService).stopSelf();
+    }
+
+    @Test
+    public void bluetoothCallback_onBluetoothOff_stopSelf() {
+        mAudioStreamMediaService.onCreate();
+
+        assertThat(mAudioStreamMediaService.mBluetoothCallback).isNotNull();
+        mAudioStreamMediaService.mBluetoothCallback.onBluetoothStateChanged(
+                BluetoothAdapter.STATE_OFF);
+
+        verify(mAudioStreamMediaService).stopSelf();
+    }
+
+    @Test
+    public void bluetoothCallback_onDeviceDisconnect_stopSelf() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        mAudioStreamMediaService.onCreate();
+        assertThat(mAudioStreamMediaService.mBluetoothCallback).isNotNull();
+        mAudioStreamMediaService.onStartCommand(setupIntent(), /* flags= */ 0, /* startId= */ 0);
+
+        mAudioStreamMediaService.mBluetoothCallback.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothAdapter.STATE_DISCONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
+
+        verify(mAudioStreamMediaService).stopSelf();
+    }
+
+    @Test
+    public void bluetoothCallback_onMemberDeviceDisconnect_stopSelf() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+        when(mCachedBluetoothDevice.getDevice()).thenReturn(mock(BluetoothDevice.class));
+        CachedBluetoothDevice member = mock(CachedBluetoothDevice.class);
+        when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(Set.of(member));
+        when(member.getDevice()).thenReturn(mDevice);
+        var devices = new ArrayList<BluetoothDevice>();
+        devices.add(mDevice);
+
+        Intent intent = new Intent();
+        intent.putExtra(BROADCAST_ID, 1);
+        intent.putParcelableArrayListExtra(DEVICES, devices);
+
+        mAudioStreamMediaService.onCreate();
+        assertThat(mAudioStreamMediaService.mBluetoothCallback).isNotNull();
+        mAudioStreamMediaService.onStartCommand(intent, /* flags= */ 0, /* startId= */ 0);
+        mAudioStreamMediaService.mBluetoothCallback.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothAdapter.STATE_DISCONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
+
+        verify(mAudioStreamMediaService).stopSelf();
+    }
+
+    @Test
+    public void mediaSessionCallback_onSeekTo_updateNotification() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+
+        mAudioStreamMediaService.onCreate();
+        mAudioStreamMediaService.onStartCommand(setupIntent(), /* flags= */ 0, /* startId= */ 0);
+        assertThat(mAudioStreamMediaService.mMediaSessionCallback).isNotNull();
+        mAudioStreamMediaService.mMediaSessionCallback.onSeekTo(100);
+
+        verify(mNotificationManager).notify(anyInt(), any());
+    }
+
+    @Test
+    public void mediaSessionCallback_onPause_setVolume() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+
+        mAudioStreamMediaService.onCreate();
+        mAudioStreamMediaService.onStartCommand(setupIntent(), /* flags= */ 0, /* startId= */ 0);
+        assertThat(mAudioStreamMediaService.mMediaSessionCallback).isNotNull();
+        mAudioStreamMediaService.mMediaSessionCallback.onPause();
+
+        verify(mVolumeControlProfile).setDeviceVolume(any(), anyInt(), anyBoolean());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_MUTE_BUTTON_CLICK),
+                        eq(1));
+    }
+
+    @Test
+    public void mediaSessionCallback_onPlay_setVolume() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+
+        mAudioStreamMediaService.onCreate();
+        mAudioStreamMediaService.onStartCommand(setupIntent(), /* flags= */ 0, /* startId= */ 0);
+        assertThat(mAudioStreamMediaService.mMediaSessionCallback).isNotNull();
+        mAudioStreamMediaService.mMediaSessionCallback.onPlay();
+
+        verify(mVolumeControlProfile).setDeviceVolume(any(), anyInt(), anyBoolean());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_MUTE_BUTTON_CLICK),
+                        eq(0));
+    }
+
+    @Test
+    public void mediaSessionCallback_onCustomAction_leaveBroadcast() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+
+        mAudioStreamMediaService.onCreate();
+        mAudioStreamMediaService.onStartCommand(setupIntent(), /* flags= */ 0, /* startId= */ 0);
+        assertThat(mAudioStreamMediaService.mMediaSessionCallback).isNotNull();
+        mAudioStreamMediaService.mMediaSessionCallback.onCustomAction(
+                LEAVE_BROADCAST_ACTION, Bundle.EMPTY);
+
+        verify(mAudioStreamsHelper).removeSource(anyInt());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_NOTIFICATION_LEAVE_BUTTON_CLICK));
+    }
+
+    @Test
+    public void volumeControlCallback_onDeviceVolumeChanged_updateNotification() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_SHARING);
+
+        mAudioStreamMediaService.onCreate();
+        assertThat(mAudioStreamMediaService.mVolumeControlCallback).isNotNull();
+        mAudioStreamMediaService.onStartCommand(setupIntent(), /* flags= */ 0, /* startId= */ 0);
+        mAudioStreamMediaService.mVolumeControlCallback.onDeviceVolumeChanged(
+                mDevice, /* volume= */ 0);
+
+        verify(mNotificationManager).notify(anyInt(), any());
+    }
+
+    @Test
+    public void onBind_returnNull() {
+        IBinder binder = mAudioStreamMediaService.onBind(new Intent());
+
+        assertThat(binder).isNull();
+    }
+
+    private Intent setupIntent() {
+        when(mCachedBluetoothDevice.getDevice()).thenReturn(mDevice);
+        var devices = new ArrayList<BluetoothDevice>();
+        devices.add(mDevice);
+
+        Intent intent = new Intent();
+        intent.putExtra(BROADCAST_ID, 1);
+        intent.putParcelableArrayListExtra(DEVICES, devices);
+        return intent;
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java
index c8f9358..2515668 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreferenceTest.java
@@ -28,7 +28,6 @@
 import android.view.LayoutInflater;
 import android.view.View;
 
-import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceViewHolder;
 import androidx.test.core.app.ApplicationProvider;
 
@@ -94,17 +93,6 @@
     }
 
     @Test
-    public void setConnected_shouldUpdatePreferenceUI() {
-        String summary = "Connected";
-        OnPreferenceClickListener listener = mock(OnPreferenceClickListener.class);
-        mPreference.setIsConnected(true, summary, listener);
-
-        assertThat(mPreference.getSummary()).isNotNull();
-        assertThat(mPreference.getSummary().toString()).isEqualTo(summary);
-        assertThat(mPreference.getOnPreferenceClickListener()).isEqualTo(listener);
-    }
-
-    @Test
     public void setAudioStreamMetadata_shouldUpdateMetadata() {
         AudioStreamPreference p =
                 AudioStreamPreference.fromMetadata(
@@ -147,7 +135,7 @@
 
     @Test
     public void shouldHideSecondTarget_connected() {
-        mPreference.setIsConnected(true, "", null);
+        mPreference.setIsConnected(true);
         assertThat(mPreference.shouldHideSecondTarget()).isTrue();
     }
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandlerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandlerTest.java
new file mode 100644
index 0000000..e44dee9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamStateHandlerTest.java
@@ -0,0 +1,154 @@
+/*
+ * 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.audiosharing.audiostreams;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.text.SpannableString;
+
+import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioStreamStateHandlerTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final int SUMMARY_RES = 1;
+    private static final String SUMMARY = "summary";
+    private final Context mContext = spy(ApplicationProvider.getApplicationContext());
+    @Mock private AudioStreamsProgressCategoryController mController;
+    @Mock private AudioStreamsHelper mHelper;
+    @Mock private AudioStreamPreference mPreference;
+    private AudioStreamStateHandler mHandler;
+
+    @Before
+    public void setUp() {
+        mHandler = spy(new AudioStreamStateHandler());
+    }
+
+    @Test
+    public void testHandleStateChange_noChange_doNothing() {
+        when(mHandler.getStateEnum())
+                .thenReturn(
+                        AudioStreamsProgressCategoryController.AudioStreamState
+                                .ADD_SOURCE_BAD_CODE);
+        when(mPreference.getAudioStreamState())
+                .thenReturn(
+                        AudioStreamsProgressCategoryController.AudioStreamState
+                                .ADD_SOURCE_BAD_CODE);
+
+        mHandler.handleStateChange(mPreference, mController, mHelper);
+
+        verify(mPreference, never()).setAudioStreamState(any());
+        verify(mHandler, never()).performAction(any(), any(), any());
+        verify(mPreference, never()).setIsConnected(anyBoolean());
+        verify(mPreference, never()).setSummary(any());
+        verify(mPreference, never()).setOnPreferenceClickListener(any());
+    }
+
+    @Test
+    public void testHandleStateChange_setNewState() {
+        when(mHandler.getStateEnum())
+                .thenReturn(AudioStreamsProgressCategoryController.AudioStreamState.SOURCE_ADDED);
+        when(mPreference.getAudioStreamState())
+                .thenReturn(
+                        AudioStreamsProgressCategoryController.AudioStreamState
+                                .ADD_SOURCE_BAD_CODE);
+
+        mHandler.handleStateChange(mPreference, mController, mHelper);
+
+        verify(mPreference)
+                .setAudioStreamState(
+                        AudioStreamsProgressCategoryController.AudioStreamState.SOURCE_ADDED);
+        verify(mHandler).performAction(any(), any(), any());
+        verify(mPreference).setIsConnected(eq(true));
+        verify(mPreference).setSummary(eq(""));
+        verify(mPreference).setOnPreferenceClickListener(eq(null));
+    }
+
+    @Test
+    public void testHandleStateChange_setNewState_newSummary_newListener() {
+        Preference.OnPreferenceClickListener listener =
+                mock(Preference.OnPreferenceClickListener.class);
+        when(mHandler.getStateEnum())
+                .thenReturn(
+                        AudioStreamsProgressCategoryController.AudioStreamState
+                                .ADD_SOURCE_BAD_CODE);
+        when(mHandler.getSummary()).thenReturn(SUMMARY_RES);
+        when(mHandler.getOnClickListener(any())).thenReturn(listener);
+        when(mPreference.getAudioStreamState())
+                .thenReturn(
+                        AudioStreamsProgressCategoryController.AudioStreamState.ADD_SOURCE_FAILED);
+        when(mPreference.getContext()).thenReturn(mContext);
+        doReturn(SUMMARY).when(mContext).getString(anyInt());
+
+        mHandler.handleStateChange(mPreference, mController, mHelper);
+
+        verify(mPreference)
+                .setAudioStreamState(
+                        AudioStreamsProgressCategoryController.AudioStreamState
+                                .ADD_SOURCE_BAD_CODE);
+        verify(mHandler).performAction(any(), any(), any());
+        verify(mPreference).setIsConnected(eq(false));
+        ArgumentCaptor<SpannableString> argumentCaptor =
+                ArgumentCaptor.forClass(SpannableString.class);
+        verify(mPreference).setSummary(argumentCaptor.capture());
+        assertThat(argumentCaptor.getValue()).isNotNull();
+        assertThat(argumentCaptor.getValue().toString()).isEqualTo(SUMMARY);
+        verify(mPreference).setOnPreferenceClickListener(eq(listener));
+    }
+
+    @Test
+    public void testGetSummary() {
+        int res = mHandler.getSummary();
+        assertThat(res).isEqualTo(AudioStreamStateHandler.EMPTY_STRING_RES);
+    }
+
+    @Test
+    public void testGetOnClickListener() {
+        Preference.OnPreferenceClickListener listener = mHandler.getOnClickListener(mController);
+        assertThat(listener).isNull();
+    }
+
+    @Test
+    public void testGetStateEnum() {
+        var state = mHandler.getStateEnum();
+        assertThat(state)
+                .isEqualTo(AudioStreamsProgressCategoryController.AudioStreamState.UNKNOWN);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdaterTest.java
index 4403528..d6b99a1 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdaterTest.java
@@ -20,6 +20,7 @@
 
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 
@@ -76,25 +77,46 @@
     }
 
     @Test
-    public void onActiveDeviceChanged_notLeProfile_doNothing() {
-        mUpdater.onActiveDeviceChanged(mCachedBluetoothDevice, 0);
+    public void unregister_doNothing() {
+        mUpdater.register(false);
 
         assertThat(mUpdatedSummary).isNull();
     }
 
     @Test
-    public void onActiveDeviceChanged_leProfile_summaryUpdated() {
+    public void onProfileConnectionStateChanged_notLeAssistProfile_doNothing() {
+        mUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice, 0, 0);
+
+        assertThat(mUpdatedSummary).isNull();
+    }
+
+    @Test
+    public void onProfileConnectionStateChanged_leAssistantProfile_summaryUpdated() {
         ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(
                 mCachedBluetoothDevice);
         when(mCachedBluetoothDevice.getName()).thenReturn(DEVICE_NAME);
-        mUpdater.onActiveDeviceChanged(mCachedBluetoothDevice, BluetoothProfile.LE_AUDIO);
+        mUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothAdapter.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
         assertThat(mUpdatedSummary).isEqualTo(DEVICE_NAME);
     }
 
     @Test
-    public void onActiveDeviceChanged_leProfile_noDevice_summaryUpdated() {
-        mUpdater.onActiveDeviceChanged(mCachedBluetoothDevice, BluetoothProfile.LE_AUDIO);
+    public void onActiveDeviceChanged_leAssistantProfile_noDevice_summaryUpdated() {
+        mUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothAdapter.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
+
+        assertThat(mUpdatedSummary)
+                .isEqualTo(mContext.getString(R.string.audio_streams_dialog_no_le_device_title));
+    }
+
+    @Test
+    public void onBluetoothStateOff_summaryUpdated() {
+        mUpdater.onBluetoothStateChanged(BluetoothAdapter.STATE_OFF);
 
         assertThat(mUpdatedSummary)
                 .isEqualTo(mContext.getString(R.string.audio_streams_dialog_no_le_device_title));
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryControllerTest.java
index e4b6903..0e00309 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryControllerTest.java
@@ -23,11 +23,13 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.robolectric.Shadows.shadowOf;
 
 import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothProfile;
 import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
 import android.os.Looper;
@@ -42,6 +44,7 @@
 import com.android.settings.connecteddevice.audiosharing.audiostreams.testshadows.ShadowAudioStreamsHelper;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.BluetoothCallback;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
@@ -57,6 +60,7 @@
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -116,7 +120,7 @@
         when(mBroadcast.isProfileReady()).thenReturn(true);
         when(mAssistant.isProfileReady()).thenReturn(true);
         when(mVolumeControl.isProfileReady()).thenReturn(true);
-        mController = new AudioStreamsCategoryController(mContext, KEY);
+        mController = spy(new AudioStreamsCategoryController(mContext, KEY));
         mPreference = new Preference(mContext);
         when(mScreen.findPreference(KEY)).thenReturn(mPreference);
         mController.displayPreference(mScreen);
@@ -228,4 +232,21 @@
         shadowOf(Looper.getMainLooper()).idle();
         assertThat(mPreference.isVisible()).isTrue();
     }
+
+    @Test
+    public void onProfileConnectionStateChanged_updateVisibility() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_LE_AUDIO_QR_CODE_PRIVATE_BROADCAST_SHARING);
+        ArgumentCaptor<BluetoothCallback> argumentCaptor =
+                ArgumentCaptor.forClass(BluetoothCallback.class);
+        mController.onStart(mLifecycleOwner);
+        verify(mBluetoothEventManager).registerCallback(argumentCaptor.capture());
+
+        BluetoothCallback callback = argumentCaptor.getValue();
+        callback.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT,
+                BluetoothAdapter.STATE_DISCONNECTED);
+
+        verify(mController).updateVisibility();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragmentTest.java
index 9058ab6..dd3d8b7 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragmentTest.java
@@ -22,18 +22,25 @@
 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.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
 import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.content.Context;
 import android.content.Intent;
+import android.os.Bundle;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
@@ -53,12 +60,14 @@
                     + "MD:BgNwVGVzdA==;AS:1;PI:A0;NS:1;BS:3;NB:2;SM:BQNUZXN0BARlbmc=;;";
 
     private Context mContext;
+    private FakeFeatureFactory mFeatureFactory;
     private AudioStreamsProgressCategoryController mController;
     private TestFragment mTestFragment;
 
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
         mTestFragment = spy(new TestFragment());
         doReturn(mContext).when(mTestFragment).getContext();
         mController = spy(new AudioStreamsProgressCategoryController(mContext, "key"));
@@ -114,6 +123,28 @@
         mTestFragment.onActivityResult(
                 REQUEST_SCAN_BT_BROADCAST_QR_CODE, Activity.RESULT_OK, intent);
         verify(mController).setSourceFromQrCode(any(), any());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_QR_CODE_SCAN_SUCCEED),
+                        anyInt());
+    }
+
+    @Test
+    public void onAttach_hasArgument() {
+        BluetoothLeBroadcastMetadata data = mock(BluetoothLeBroadcastMetadata.class);
+        Bundle bundle = new Bundle();
+        bundle.putParcelable(KEY_BROADCAST_METADATA, data);
+        mTestFragment.setArguments(bundle);
+
+        mTestFragment.onAttach(mContext);
+
+        verify(mController).setSourceFromQrCode(eq(data), any());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        any(),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_QR_CODE_SCAN_SUCCEED),
+                        anyInt());
     }
 
     public static class TestFragment extends AudioStreamsDashboardFragment {
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragmentTest.java
new file mode 100644
index 0000000..efdd389
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragmentTest.java
@@ -0,0 +1,88 @@
+/*
+ * 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.audiosharing.audiostreams;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Bundle;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAlertDialog;
+import org.robolectric.shadows.ShadowLooper;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowAlertDialog.class,
+        })
+public class AudioStreamsDialogFragmentTest {
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private AudioStreamsDialogFragment.DialogBuilder mDialogBuilder;
+    private AudioStreamsDialogFragment mFragment;
+
+    @Before
+    public void setUp() {
+        mDialogBuilder = spy(new AudioStreamsDialogFragment.DialogBuilder(mContext));
+        mFragment = new AudioStreamsDialogFragment(mDialogBuilder, SettingsEnums.PAGE_UNKNOWN);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowAlertDialog.reset();
+    }
+
+    @Test
+    public void testGetMetricsCategory() {
+        int dialogId = mFragment.getMetricsCategory();
+
+        assertThat(dialogId).isEqualTo(SettingsEnums.PAGE_UNKNOWN);
+    }
+
+    @Test
+    public void testOnCreateDialog() {
+        mFragment.onCreateDialog(Bundle.EMPTY);
+
+        verify(mDialogBuilder).build();
+    }
+
+    @Test
+    public void testShowDialog_dismissAll() {
+        FragmentController.setupFragment(mFragment);
+        AudioStreamsDialogFragment.show(mFragment, mDialogBuilder, SettingsEnums.PAGE_UNKNOWN);
+        ShadowLooper.idleMainLooper();
+
+        var dialog = ShadowAlertDialog.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+        assertThat(dialog.isShowing()).isTrue();
+
+        AudioStreamsDialogFragment.dismissAll(mFragment);
+        assertThat(dialog.isShowing()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelperTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelperTest.java
new file mode 100644
index 0000000..4266798
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelperTest.java
@@ -0,0 +1,281 @@
+/*
+ * 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.audiosharing.audiostreams;
+
+import static android.content.res.Configuration.ORIENTATION_LANDSCAPE;
+import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+
+import com.google.android.material.appbar.AppBarLayout;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
+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.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowThreadUtils.class,
+        })
+public class AudioStreamsHelperTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final int GROUP_ID = 1;
+    private static final int BROADCAST_ID_1 = 1;
+    private static final int BROADCAST_ID_2 = 2;
+    private static final String BROADCAST_NAME = "name";
+    private final Context mContext = spy(ApplicationProvider.getApplicationContext());
+    @Mock private LocalBluetoothManager mLocalBluetoothManager;
+    @Mock private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
+    @Mock private CachedBluetoothDeviceManager mDeviceManager;
+    @Mock private BluetoothLeBroadcastMetadata mMetadata;
+    @Mock private CachedBluetoothDevice mCachedDevice;
+    @Mock private BluetoothDevice mDevice;
+    private AudioStreamsHelper mHelper;
+
+    @Before
+    public void setUp() {
+        when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBluetoothProfileManager);
+        when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        when(mLocalBluetoothProfileManager.getLeAudioBroadcastAssistantProfile())
+                .thenReturn(mAssistant);
+        mHelper = spy(new AudioStreamsHelper(mLocalBluetoothManager));
+    }
+
+    @Test
+    public void addSource_noDevice_doNothing() {
+        when(mAssistant.getAllConnectedDevices()).thenReturn(Collections.emptyList());
+        mHelper.addSource(mMetadata);
+
+        verify(mAssistant, never()).addSource(any(), any(), anyBoolean());
+    }
+
+    @Test
+    public void addSource_hasDevice() {
+        List<BluetoothDevice> devices = new ArrayList<>();
+        devices.add(mDevice);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
+        when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+        when(mCachedDevice.getDevice()).thenReturn(mDevice);
+        when(mCachedDevice.getGroupId()).thenReturn(GROUP_ID);
+
+        mHelper.addSource(mMetadata);
+
+        verify(mAssistant).addSource(eq(mDevice), eq(mMetadata), anyBoolean());
+    }
+
+    @Test
+    public void removeSource_noDevice_doNothing() {
+        when(mAssistant.getAllConnectedDevices()).thenReturn(Collections.emptyList());
+        mHelper.removeSource(BROADCAST_ID_1);
+
+        verify(mAssistant, never()).removeSource(any(), anyInt());
+    }
+
+    @Test
+    public void removeSource_noConnectedSource_doNothing() {
+        List<BluetoothDevice> devices = new ArrayList<>();
+        devices.add(mDevice);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
+        BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
+        when(source.getBroadcastId()).thenReturn(BROADCAST_ID_2);
+        when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+        when(mCachedDevice.getDevice()).thenReturn(mDevice);
+        when(mCachedDevice.getGroupId()).thenReturn(GROUP_ID);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(source));
+
+        mHelper.removeSource(BROADCAST_ID_1);
+
+        verify(mAssistant, never()).removeSource(any(), anyInt());
+    }
+
+    @Test
+    public void removeSource_hasConnectedSource() {
+        List<BluetoothDevice> devices = new ArrayList<>();
+        devices.add(mDevice);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
+        BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
+        when(source.getBroadcastId()).thenReturn(BROADCAST_ID_2);
+        when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+        when(mCachedDevice.getDevice()).thenReturn(mDevice);
+        when(mCachedDevice.getGroupId()).thenReturn(GROUP_ID);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(source));
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(source.getBisSyncState()).thenReturn(bisSyncState);
+
+        mHelper.removeSource(BROADCAST_ID_2);
+
+        verify(mAssistant).removeSource(eq(mDevice), anyInt());
+    }
+
+    @Test
+    public void removeSource_memberHasConnectedSource() {
+        List<BluetoothDevice> devices = new ArrayList<>();
+        var memberDevice = mock(BluetoothDevice.class);
+        devices.add(mDevice);
+        devices.add(memberDevice);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
+        BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
+        when(source.getBroadcastId()).thenReturn(BROADCAST_ID_2);
+        when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+        when(mCachedDevice.getDevice()).thenReturn(mDevice);
+        var memberCachedDevice = mock(CachedBluetoothDevice.class);
+        when(memberCachedDevice.getDevice()).thenReturn(memberDevice);
+        when(mCachedDevice.getMemberDevice()).thenReturn(ImmutableSet.of(memberCachedDevice));
+        when(mCachedDevice.getGroupId()).thenReturn(GROUP_ID);
+        when(mAssistant.getAllSources(mDevice)).thenReturn(ImmutableList.of());
+        when(mAssistant.getAllSources(memberDevice)).thenReturn(ImmutableList.of(source));
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(source.getBisSyncState()).thenReturn(bisSyncState);
+
+        mHelper.removeSource(BROADCAST_ID_2);
+
+        verify(mAssistant).removeSource(eq(memberDevice), anyInt());
+    }
+
+    @Test
+    public void getAllConnectedSources_noAssistant() {
+        when(mLocalBluetoothProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(null);
+        mHelper = new AudioStreamsHelper(mLocalBluetoothManager);
+
+        assertThat(mHelper.getAllConnectedSources()).isEmpty();
+    }
+
+    @Test
+    public void getAllConnectedSources_returnSource() {
+        List<BluetoothDevice> devices = new ArrayList<>();
+        devices.add(mDevice);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
+        BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
+        when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+        when(mCachedDevice.getDevice()).thenReturn(mDevice);
+        when(mCachedDevice.getGroupId()).thenReturn(GROUP_ID);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(source));
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(source.getBisSyncState()).thenReturn(bisSyncState);
+
+        var list = mHelper.getAllConnectedSources();
+        assertThat(list).isNotEmpty();
+        assertThat(list.get(0)).isEqualTo(source);
+    }
+
+    @Test
+    public void startMediaService_noDevice_doNothing() {
+        mHelper.startMediaService(mContext, BROADCAST_ID_1, BROADCAST_NAME);
+
+        verify(mContext, never()).startService(any());
+    }
+
+    @Test
+    public void startMediaService_hasDevice() {
+        List<BluetoothDevice> devices = new ArrayList<>();
+        devices.add(mDevice);
+        when(mAssistant.getAllConnectedDevices()).thenReturn(devices);
+        BluetoothLeBroadcastReceiveState source = mock(BluetoothLeBroadcastReceiveState.class);
+        when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+        when(mCachedDevice.getDevice()).thenReturn(mDevice);
+        when(mCachedDevice.getGroupId()).thenReturn(GROUP_ID);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(source));
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(source.getBisSyncState()).thenReturn(bisSyncState);
+
+        mHelper.startMediaService(mContext, BROADCAST_ID_1, BROADCAST_NAME);
+
+        verify(mContext).startService(any());
+    }
+
+    @Test
+    public void configureAppBarByOrientation_landscape_shouldNotExpand() {
+        FragmentActivity fragmentActivity = mock(FragmentActivity.class);
+        // AppBarLayout requires a Theme.AppCompat.
+        mContext.setTheme(R.style.Theme_Settings_Home);
+        AppBarLayout appBarLayout = spy(new AppBarLayout(mContext));
+        setUpFragment(fragmentActivity, appBarLayout, ORIENTATION_LANDSCAPE);
+
+        AudioStreamsHelper.configureAppBarByOrientation(fragmentActivity);
+
+        verify(appBarLayout).setExpanded(eq(false));
+    }
+
+    @Test
+    public void configureAppBarByOrientation_portrait_shouldExpand() {
+        FragmentActivity fragmentActivity = mock(FragmentActivity.class);
+        // AppBarLayout requires a Theme.AppCompat.
+        mContext.setTheme(R.style.Theme_Settings_Home);
+        AppBarLayout appBarLayout = spy(new AppBarLayout(mContext));
+        setUpFragment(fragmentActivity, appBarLayout, ORIENTATION_PORTRAIT);
+
+        AudioStreamsHelper.configureAppBarByOrientation(fragmentActivity);
+
+        verify(appBarLayout).setExpanded(eq(true));
+    }
+
+    private void setUpFragment(
+            FragmentActivity fragmentActivity, AppBarLayout appBarLayout, int orientationPortrait) {
+        Resources resources = mock(Resources.class);
+        when(fragmentActivity.getResources()).thenReturn(resources);
+        Configuration configuration = new Configuration();
+        configuration.orientation = orientationPortrait;
+        when(resources.getConfiguration()).thenReturn(configuration);
+        when(fragmentActivity.findViewById(anyInt())).thenReturn(appBarLayout);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallbackTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallbackTest.java
new file mode 100644
index 0000000..164c2f0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallbackTest.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.connecteddevice.audiosharing.audiostreams;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+
+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 java.util.ArrayList;
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioStreamsProgressCategoryCallbackTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Mock private AudioStreamsProgressCategoryController mController;
+    @Mock private BluetoothDevice mDevice;
+    @Mock private BluetoothLeBroadcastReceiveState mState;
+    @Mock private BluetoothLeBroadcastMetadata mMetadata;
+    private AudioStreamsProgressCategoryCallback mCallback;
+
+    @Before
+    public void setUp() {
+        mCallback = new AudioStreamsProgressCategoryCallback(mController);
+    }
+
+    @Test
+    public void testOnReceiveStateChanged_connected() {
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(mState.getBisSyncState()).thenReturn(bisSyncState);
+        mCallback.onReceiveStateChanged(mDevice, /* sourceId= */ 0, mState);
+
+        verify(mController).handleSourceConnected(any());
+    }
+
+    @Test
+    public void testOnReceiveStateChanged_badCode() {
+        when(mState.getPaSyncState())
+                .thenReturn(BluetoothLeBroadcastReceiveState.PA_SYNC_STATE_SYNCHRONIZED);
+        when(mState.getBigEncryptionState())
+                .thenReturn(BluetoothLeBroadcastReceiveState.BIG_ENCRYPTION_STATE_BAD_CODE);
+        mCallback.onReceiveStateChanged(mDevice, /* sourceId= */ 0, mState);
+
+        verify(mController).handleSourceConnectBadCode(any());
+    }
+
+    @Test
+    public void testOnSearchStartFailed() {
+        mCallback.onSearchStartFailed(/* reason= */ 0);
+
+        verify(mController).showToast(anyString());
+        verify(mController).setScanning(anyBoolean());
+    }
+
+    @Test
+    public void testOnSearchStarted() {
+        mCallback.onSearchStarted(/* reason= */ 0);
+
+        verify(mController).setScanning(anyBoolean());
+    }
+
+    @Test
+    public void testOnSearchStopFailed() {
+        mCallback.onSearchStopFailed(/* reason= */ 0);
+
+        verify(mController).showToast(anyString());
+    }
+
+    @Test
+    public void testOnSearchStopped() {
+        mCallback.onSearchStopped(/* reason= */ 0);
+
+        verify(mController).setScanning(anyBoolean());
+    }
+
+    @Test
+    public void testOnSourceAddFailed() {
+        when(mMetadata.getBroadcastId()).thenReturn(1);
+        mCallback.onSourceAddFailed(mDevice, mMetadata, /* reason= */ 0);
+
+        verify(mController).handleSourceFailedToConnect(1);
+    }
+
+    @Test
+    public void testOnSourceFound() {
+        mCallback.onSourceFound(mMetadata);
+
+        verify(mController).handleSourceFound(mMetadata);
+    }
+
+    @Test
+    public void testOnSourceLost() {
+        mCallback.onSourceLost(/* broadcastId= */ 1);
+
+        verify(mController).handleSourceLost(1);
+    }
+
+    @Test
+    public void testOnSourceRemoveFailed() {
+        mCallback.onSourceRemoveFailed(mDevice, /* sourceId= */ 0, /* reason= */ 0);
+
+        verify(mController).showToast(anyString());
+    }
+
+    @Test
+    public void testOnSourceRemoved() {
+        mCallback.onSourceRemoved(mDevice, /* sourceId= */ 0, /* reason= */ 0);
+
+        verify(mController).handleSourceRemoved();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryControllerTest.java
new file mode 100644
index 0000000..fd1b649
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryControllerTest.java
@@ -0,0 +1,788 @@
+/*
+ * 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.audiosharing.audiostreams;
+
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController.AudioStreamState.ADD_SOURCE_BAD_CODE;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController.AudioStreamState.ADD_SOURCE_FAILED;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController.AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController.AudioStreamState.SOURCE_ADDED;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController.AudioStreamState.SYNCED;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController.AudioStreamState.WAIT_FOR_SYNC;
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController.UNSET_BROADCAST_ID;
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyString;
+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 static org.robolectric.Shadows.shadowOf;
+
+import static java.util.Collections.emptyList;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothLeAudioContentMetadata;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.os.Looper;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.testshadows.ShadowAudioStreamsHelper;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settings.testutils.shadow.ShadowThreadUtils;
+import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import com.google.common.collect.ImmutableList;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAlertDialog;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowBluetoothUtils.class,
+            ShadowAudioStreamsHelper.class,
+            ShadowThreadUtils.class,
+            ShadowAlertDialog.class,
+        })
+public class AudioStreamsProgressCategoryControllerTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final String VALID_METADATA =
+            "BLUETOOTH:UUID:184F;BN:VGVzdA==;AT:1;AD:00A1A1A1A1A1;BI:1E240;BC:VGVzdENvZGU=;"
+                    + "MD:BgNwVGVzdA==;AS:1;PI:A0;NS:1;BS:3;NB:2;SM:BQNUZXN0BARlbmc=;;";
+    private static final String KEY = "audio_streams_nearby_category";
+    private static final int QR_CODE_BROADCAST_ID = 1;
+    private static final int ALREADY_CONNECTED_BROADCAST_ID = 2;
+    private static final int NEWLY_FOUND_BROADCAST_ID = 3;
+    private static final String BROADCAST_NAME_1 = "name_1";
+    private static final String BROADCAST_NAME_2 = "name_2";
+    private static final byte[] BROADCAST_CODE = new byte[] {1};
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private LocalBluetoothManager mLocalBtManager;
+    @Mock private BluetoothEventManager mBluetoothEventManager;
+    @Mock private PreferenceScreen mScreen;
+    @Mock private AudioStreamsHelper mAudioStreamsHelper;
+    @Mock private LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
+    @Mock private BluetoothLeBroadcastMetadata mMetadata;
+    @Mock private CachedBluetoothDevice mDevice;
+    @Mock private AudioStreamsProgressCategoryPreference mPreference;
+    private Lifecycle mLifecycle;
+    private LifecycleOwner mLifecycleOwner;
+    private Fragment mFragment;
+    private TestController mController;
+
+    @Before
+    public void setUp() {
+        ShadowAudioStreamsHelper.setUseMock(mAudioStreamsHelper);
+        when(mAudioStreamsHelper.getLeBroadcastAssistant()).thenReturn(mLeBroadcastAssistant);
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(emptyList());
+
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+        when(mLocalBtManager.getEventManager()).thenReturn(mBluetoothEventManager);
+        when(mLeBroadcastAssistant.isSearchInProgress()).thenReturn(false);
+
+        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+
+        mFragment = new Fragment();
+        mController = spy(new TestController(mContext, KEY));
+    }
+
+    @After
+    public void tearDown() {
+        ShadowBluetoothUtils.reset();
+        ShadowAudioStreamsHelper.reset();
+    }
+
+    @Test
+    public void testGetAvailabilityStatus() {
+        int status = mController.getAvailabilityStatus();
+
+        assertThat(status).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void testDisplayPreference() {
+        mController.displayPreference(mScreen);
+
+        verify(mPreference).setVisible(true);
+    }
+
+    @Test
+    public void testSetScanning() {
+        mController.displayPreference(mScreen);
+        mController.setScanning(true);
+
+        verify(mPreference).setProgress(true);
+    }
+
+    @Test
+    public void testShowToast_noError() {
+        mController.showToast(BROADCAST_NAME_1);
+    }
+
+    @Test
+    public void testOnStop_unregister() {
+        mController.onStop(mLifecycleOwner);
+
+        verify(mBluetoothEventManager).unregisterCallback(any());
+    }
+
+    @Test
+    public void testGetFragment_returnFragment() {
+        mController.setFragment(mFragment);
+
+        assertThat(mController.getFragment()).isEqualTo(mFragment);
+    }
+
+    @Test
+    public void testOnStart_initNoDevice_showDialog() {
+        when(mLeBroadcastAssistant.isSearchInProgress()).thenReturn(true);
+
+        FragmentController.setupFragment(mFragment);
+        mController.setFragment(mFragment);
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Called twice, once in displayPreference, the other in init()
+        verify(mPreference, times(2)).setVisible(anyBoolean());
+        verify(mPreference).removeAudioStreamPreferences();
+        verify(mLeBroadcastAssistant).stopSearchingForSources();
+        verify(mLeBroadcastAssistant).unregisterServiceCallBack(any());
+
+        var dialog = ShadowAlertDialog.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+        assertThat(dialog.isShowing()).isTrue();
+
+        TextView title = dialog.findViewById(R.id.dialog_title);
+        assertThat(title).isNotNull();
+        assertThat(title.getText())
+                .isEqualTo(mContext.getString(R.string.audio_streams_dialog_no_le_device_title));
+        TextView subtitle1 = dialog.findViewById(R.id.dialog_subtitle);
+        assertThat(subtitle1).isNotNull();
+        assertThat(subtitle1.getVisibility()).isEqualTo(View.GONE);
+        TextView subtitle2 = dialog.findViewById(R.id.dialog_subtitle_2);
+        assertThat(subtitle2).isNotNull();
+        assertThat(subtitle2.getText())
+                .isEqualTo(mContext.getString(R.string.audio_streams_dialog_no_le_device_subtitle));
+        View leftButton = dialog.findViewById(R.id.left_button);
+        assertThat(leftButton).isNotNull();
+        assertThat(leftButton.getVisibility()).isEqualTo(View.VISIBLE);
+        Button rightButton = dialog.findViewById(R.id.right_button);
+        assertThat(rightButton).isNotNull();
+        assertThat(rightButton.getText())
+                .isEqualTo(mContext.getString(R.string.audio_streams_dialog_no_le_device_button));
+        assertThat(rightButton.hasOnClickListeners()).isTrue();
+
+        dialog.cancel();
+    }
+
+    @Test
+    public void testBluetoothOff_triggerRunnable() {
+        mController.mBluetoothCallback.onBluetoothStateChanged(BluetoothAdapter.STATE_OFF);
+
+        verify(mController.mExecutor).execute(any());
+    }
+
+    @Test
+    public void testDeviceConnectionStateChanged_triggerRunnable() {
+        mController.mBluetoothCallback.onProfileConnectionStateChanged(
+                mDevice,
+                BluetoothAdapter.STATE_DISCONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
+
+        verify(mController.mExecutor).execute(any());
+    }
+
+    @Test
+    public void testOnStart_initHasDevice_noPreference() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        verify(mLeBroadcastAssistant).registerServiceCallBack(any(), any());
+        verify(mLeBroadcastAssistant).startSearchingForSources(any());
+
+        var dialog = ShadowAlertDialog.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+
+        verify(mController, never()).moveToState(any(), any());
+    }
+
+    @Test
+    public void testOnStart_initHasDevice_scanningInProgress() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+        when(mLeBroadcastAssistant.isSearchInProgress()).thenReturn(true);
+
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        verify(mLeBroadcastAssistant).registerServiceCallBack(any(), any());
+        verify(mLeBroadcastAssistant).stopSearchingForSources();
+        verify(mLeBroadcastAssistant).startSearchingForSources(any());
+
+        var dialog = ShadowAlertDialog.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+
+        verify(mController, never()).moveToState(any(), any());
+    }
+
+    @Test
+    public void testOnStart_handleSourceFromQrCode() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup a source from qr code
+        mController.setSourceFromQrCode(mMetadata, SourceOriginForLogging.UNKNOWN);
+        when(mMetadata.getBroadcastId()).thenReturn(QR_CODE_BROADCAST_ID);
+
+        // Handle the source from qr code in onStart
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Verify the connected source is created and moved to WAIT_FOR_SYNC
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        verify(mController).moveToState(preference.capture(), state.capture());
+        assertThat(preference.getValue()).isNotNull();
+        assertThat(preference.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(QR_CODE_BROADCAST_ID);
+        assertThat(state.getValue()).isEqualTo(WAIT_FOR_SYNC);
+    }
+
+    @Test
+    public void testOnStart_handleSourceAlreadyConnected() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup a connected source
+        BluetoothLeBroadcastReceiveState connected =
+                createConnectedMock(ALREADY_CONNECTED_BROADCAST_ID);
+        List<BluetoothLeBroadcastReceiveState> list = new ArrayList<>();
+        list.add(connected);
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(list);
+
+        // Handle already connected source in onStart
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        // Verify the connected source is created and moved to SOURCE_ADDED
+        verify(mController).moveToState(preference.capture(), state.capture());
+        assertThat(preference.getValue()).isNotNull();
+        assertThat(preference.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+        assertThat(state.getValue()).isEqualTo(SOURCE_ADDED);
+    }
+
+    @Test
+    public void testOnStart_sourceFromQrCodeNoId_sourceAlreadyConnected_sameName_updateId() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup source from qr code with unset id and BROADCAST_NAME_1. Creating a real metadata
+        // for properly update its id.
+        var metadata =
+                BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(VALID_METADATA);
+        assertThat(metadata).isNotNull();
+        var metadataWithNoIdAndSameName =
+                new BluetoothLeBroadcastMetadata.Builder(metadata)
+                        .setBroadcastId(UNSET_BROADCAST_ID)
+                        .setBroadcastName(BROADCAST_NAME_1)
+                        .build();
+        mController.setSourceFromQrCode(
+                metadataWithNoIdAndSameName, SourceOriginForLogging.UNKNOWN);
+
+        // Setup a connected source with name BROADCAST_NAME_1 and id
+        BluetoothLeBroadcastReceiveState connected =
+                createConnectedMock(ALREADY_CONNECTED_BROADCAST_ID);
+        var data = mock(BluetoothLeAudioContentMetadata.class);
+        when(connected.getSubgroupMetadata()).thenReturn(ImmutableList.of(data));
+        when(data.getProgramInfo()).thenReturn(BROADCAST_NAME_1);
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(ImmutableList.of(connected));
+
+        // Handle both source from qr code and already connected source in onStart
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Verify two preferences created, one moved to state WAIT_FOR_SYNC, one to SOURCE_ADDED.
+        // Both has ALREADY_CONNECTED_BROADCAST_ID as the UNSET_ID is updated to match.
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+        verify(mController, times(2)).moveToState(preference.capture(), state.capture());
+
+        List<AudioStreamPreference> preferences = preference.getAllValues();
+        assertThat(preferences.size()).isEqualTo(2);
+        List<AudioStreamsProgressCategoryController.AudioStreamState> states = state.getAllValues();
+        assertThat(states.size()).isEqualTo(2);
+
+        // The preference contains source from qr code
+        assertThat(preferences.get(0).getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+        assertThat(states.get(0)).isEqualTo(WAIT_FOR_SYNC);
+
+        // The preference contains already connected source
+        assertThat(preferences.get(1).getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+        assertThat(states.get(1)).isEqualTo(SOURCE_ADDED);
+    }
+
+    @Test
+    public void testHandleSourceFound_addNew() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        when(mMetadata.getBroadcastId()).thenReturn(NEWLY_FOUND_BROADCAST_ID);
+        // A new source is found
+        mController.handleSourceFound(mMetadata);
+
+        // Verify a preference is created with state SYNCED.
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        verify(mController).moveToState(preference.capture(), state.capture());
+        assertThat(preference.getValue()).isNotNull();
+        assertThat(preference.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+        assertThat(state.getValue()).isEqualTo(SYNCED);
+    }
+
+    @Test
+    public void testHandleSourceAddRequest_updateMetadataAndState() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        var metadata =
+                BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(VALID_METADATA);
+        assertThat(metadata).isNotNull();
+        var metadataWithNoCode =
+                new BluetoothLeBroadcastMetadata.Builder(metadata)
+                        .setBroadcastId(NEWLY_FOUND_BROADCAST_ID)
+                        .setBroadcastName(BROADCAST_NAME_1)
+                        .build();
+        // A new source is found
+        mController.handleSourceFound(metadataWithNoCode);
+
+        ArgumentCaptor<AudioStreamPreference> preferenceCaptor =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> stateCaptor =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        // moving state to SYNCED
+        verify(mController).moveToState(preferenceCaptor.capture(), stateCaptor.capture());
+        var preference = preferenceCaptor.getValue();
+        var state = stateCaptor.getValue();
+
+        assertThat(preference).isNotNull();
+        assertThat(preference.getAudioStreamBroadcastId()).isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+        assertThat(state).isEqualTo(SYNCED);
+
+        var updatedMetadata =
+                new BluetoothLeBroadcastMetadata.Builder(metadataWithNoCode)
+                        .setBroadcastCode(BROADCAST_CODE)
+                        .build();
+        mController.handleSourceAddRequest(preference, updatedMetadata);
+        // state updated to ADD_SOURCE_WAIT_FOR_RESPONSE
+        assertThat(preference.getAudioStreamBroadcastId()).isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+        assertThat(preference.getAudioStreamMetadata().getBroadcastCode())
+                .isEqualTo(BROADCAST_CODE);
+        assertThat(preference.getAudioStreamState()).isEqualTo(ADD_SOURCE_WAIT_FOR_RESPONSE);
+    }
+
+    @Test
+    public void testHandleSourceFound_sameIdWithSourceFromQrCode_updateMetadataAndState() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup source from qr code with QR_CODE_BROADCAST_ID, BROADCAST_NAME_1 and BROADCAST_CODE.
+        var metadata =
+                BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(VALID_METADATA);
+        assertThat(metadata).isNotNull();
+        var metadataFromQrCode =
+                new BluetoothLeBroadcastMetadata.Builder(metadata)
+                        .setBroadcastId(QR_CODE_BROADCAST_ID)
+                        .setBroadcastName(BROADCAST_NAME_1)
+                        .setBroadcastCode(BROADCAST_CODE)
+                        .build();
+        mController.setSourceFromQrCode(metadataFromQrCode, SourceOriginForLogging.UNKNOWN);
+
+        // Handle the source from qr code in onStart
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // A new source is found
+        mController.handleSourceFound(
+                new BluetoothLeBroadcastMetadata.Builder(metadata)
+                        .setBroadcastId(QR_CODE_BROADCAST_ID)
+                        .setBroadcastName(BROADCAST_NAME_2)
+                        .build());
+        shadowOf(Looper.getMainLooper()).idle();
+
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        verify(mController, times(2)).moveToState(preference.capture(), state.capture());
+        List<AudioStreamPreference> preferences = preference.getAllValues();
+        List<AudioStreamsProgressCategoryController.AudioStreamState> states = state.getAllValues();
+
+        // Verify the qr code source is created with WAIT_FOR_SYNC, broadcast name got updated to
+        // BROADCAST_NAME_2
+        var sourceFromQrCode = preferences.get(0);
+        assertThat(sourceFromQrCode.getAudioStreamBroadcastId()).isEqualTo(QR_CODE_BROADCAST_ID);
+        assertThat(sourceFromQrCode.getAudioStreamMetadata()).isNotNull();
+        assertThat(sourceFromQrCode.getAudioStreamMetadata().getBroadcastName())
+                .isEqualTo(BROADCAST_NAME_2);
+        assertThat(sourceFromQrCode.getAudioStreamMetadata().getBroadcastCode())
+                .isEqualTo(BROADCAST_CODE);
+        assertThat(states.get(0)).isEqualTo(WAIT_FOR_SYNC);
+
+        // Verify the newly found source is created, broadcast code is retrieved from the source
+        // from qr code, and state updated to ADD_SOURCE_WAIT_FOR_RESPONSE
+        var newlyFoundSource = preferences.get(1);
+        assertThat(newlyFoundSource.getAudioStreamBroadcastId()).isEqualTo(QR_CODE_BROADCAST_ID);
+        assertThat(newlyFoundSource.getAudioStreamMetadata()).isNotNull();
+        assertThat(newlyFoundSource.getAudioStreamMetadata().getBroadcastName())
+                .isEqualTo(BROADCAST_NAME_2);
+        assertThat(newlyFoundSource.getAudioStreamMetadata().getBroadcastCode())
+                .isEqualTo(BROADCAST_CODE);
+        assertThat(states.get(1)).isEqualTo(ADD_SOURCE_WAIT_FOR_RESPONSE);
+    }
+
+    @Test
+    public void testHandleSourceFound_sameIdWithOtherState_doNothing() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup source already connected
+        BluetoothLeBroadcastReceiveState connected =
+                createConnectedMock(ALREADY_CONNECTED_BROADCAST_ID);
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(ImmutableList.of(connected));
+
+        // Handle source already connected in onStart
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // A new source found
+        when(mMetadata.getBroadcastId()).thenReturn(ALREADY_CONNECTED_BROADCAST_ID);
+        mController.handleSourceFound(mMetadata);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Verify only the connected source has created a preference, and its state remains as
+        // SOURCE_ADDED
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        verify(mController).moveToState(preference.capture(), state.capture());
+        assertThat(preference.getValue()).isNotNull();
+        assertThat(preference.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+        assertThat(preference.getValue().getAudioStreamState()).isEqualTo(SOURCE_ADDED);
+    }
+
+    @Test
+    public void testHandleSourceLost_removed() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup mPreference so it's not null
+        mController.displayPreference(mScreen);
+
+        // A new source found
+        when(mMetadata.getBroadcastId()).thenReturn(NEWLY_FOUND_BROADCAST_ID);
+        mController.handleSourceFound(mMetadata);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // A new source found is lost
+        mController.handleSourceLost(NEWLY_FOUND_BROADCAST_ID);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        ArgumentCaptor<AudioStreamPreference> preferenceToAdd =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamPreference> preferenceToRemove =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        // Verify a new preference is created with state SYNCED.
+        verify(mController).moveToState(preferenceToAdd.capture(), state.capture());
+        assertThat(preferenceToAdd.getValue()).isNotNull();
+        assertThat(preferenceToAdd.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+        assertThat(state.getValue()).isEqualTo(SYNCED);
+
+        // Verify the preference with NEWLY_FOUND_BROADCAST_ID is removed.
+        verify(mPreference).removePreference(preferenceToRemove.capture());
+        assertThat(preferenceToRemove.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+    }
+
+    @Test
+    public void testHandleSourceLost_sourceConnected_doNothing() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup mPreference so it's not null
+        mController.displayPreference(mScreen);
+
+        // A new source found
+        when(mMetadata.getBroadcastId()).thenReturn(NEWLY_FOUND_BROADCAST_ID);
+        mController.handleSourceFound(mMetadata);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // A new source found is lost, but the source is still connected
+        BluetoothLeBroadcastReceiveState connected = createConnectedMock(NEWLY_FOUND_BROADCAST_ID);
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(ImmutableList.of(connected));
+        mController.handleSourceLost(NEWLY_FOUND_BROADCAST_ID);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        ArgumentCaptor<AudioStreamPreference> preferenceToAdd =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        // Verify a new preference is created with state SYNCED.
+        verify(mController).moveToState(preferenceToAdd.capture(), state.capture());
+        assertThat(preferenceToAdd.getValue()).isNotNull();
+        assertThat(preferenceToAdd.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+        assertThat(state.getValue()).isEqualTo(SYNCED);
+
+        // No preference is removed.
+        verify(mPreference, never()).removePreference(any());
+    }
+
+    @Test
+    public void testHandleSourceRemoved_removed() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup already connected source
+        BluetoothLeBroadcastReceiveState connected =
+                createConnectedMock(ALREADY_CONNECTED_BROADCAST_ID);
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(ImmutableList.of(connected));
+
+        // Handle connected source in onStart
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // The connect source is no longer connected
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(emptyList());
+        mController.handleSourceRemoved();
+        shadowOf(Looper.getMainLooper()).idle();
+
+        ArgumentCaptor<AudioStreamPreference> preferenceToAdd =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamPreference> preferenceToRemove =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        // Verify a new preference is created with state SOURCE_ADDED.
+        verify(mController).moveToState(preferenceToAdd.capture(), state.capture());
+        assertThat(preferenceToAdd.getValue()).isNotNull();
+        assertThat(preferenceToAdd.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+        assertThat(state.getValue()).isEqualTo(SOURCE_ADDED);
+
+        // Verify the preference with ALREADY_CONNECTED_BROADCAST_ID is removed.
+        verify(mPreference).removePreference(preferenceToRemove.capture());
+        assertThat(preferenceToRemove.getValue().getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+    }
+
+    @Test
+    public void testHandleSourceRemoved_updateState() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup a connected source
+        BluetoothLeBroadcastReceiveState connected =
+                createConnectedMock(ALREADY_CONNECTED_BROADCAST_ID);
+        when(mAudioStreamsHelper.getAllConnectedSources()).thenReturn(ImmutableList.of(connected));
+
+        // Handle connected source in onStart
+        mController.displayPreference(mScreen);
+        mController.onStart(mLifecycleOwner);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // The connected source is identified as having a bad code
+        BluetoothLeBroadcastReceiveState badCode = mock(BluetoothLeBroadcastReceiveState.class);
+        when(badCode.getBroadcastId()).thenReturn(ALREADY_CONNECTED_BROADCAST_ID);
+        when(badCode.getPaSyncState())
+                .thenReturn(BluetoothLeBroadcastReceiveState.PA_SYNC_STATE_SYNCHRONIZED);
+        when(badCode.getBigEncryptionState())
+                .thenReturn(BluetoothLeBroadcastReceiveState.BIG_ENCRYPTION_STATE_BAD_CODE);
+        mController.handleSourceConnectBadCode(badCode);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        verify(mController, times(2)).moveToState(preference.capture(), state.capture());
+        List<AudioStreamPreference> preferences = preference.getAllValues();
+        assertThat(preferences.size()).isEqualTo(2);
+        List<AudioStreamsProgressCategoryController.AudioStreamState> states = state.getAllValues();
+        assertThat(states.size()).isEqualTo(2);
+
+        // Verify the connected source is created state SOURCE_ADDED
+        assertThat(preferences.get(0).getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+        assertThat(states.get(0)).isEqualTo(SOURCE_ADDED);
+
+        // Verify the connected source is updated to state ADD_SOURCE_BAD_CODE
+        assertThat(preferences.get(1).getAudioStreamBroadcastId())
+                .isEqualTo(ALREADY_CONNECTED_BROADCAST_ID);
+        assertThat(states.get(1)).isEqualTo(ADD_SOURCE_BAD_CODE);
+    }
+
+    @Test
+    public void testHandleSourceFailedToConnect_updateState() {
+        // Setup a device
+        ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
+
+        // Setup mPreference so it's not null
+        mController.displayPreference(mScreen);
+
+        // A new source found
+        when(mMetadata.getBroadcastId()).thenReturn(NEWLY_FOUND_BROADCAST_ID);
+        mController.handleSourceFound(mMetadata);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // The new found source is identified as failed to connect
+        mController.handleSourceFailedToConnect(NEWLY_FOUND_BROADCAST_ID);
+        shadowOf(Looper.getMainLooper()).idle();
+
+        ArgumentCaptor<AudioStreamPreference> preference =
+                ArgumentCaptor.forClass(AudioStreamPreference.class);
+        ArgumentCaptor<AudioStreamsProgressCategoryController.AudioStreamState> state =
+                ArgumentCaptor.forClass(
+                        AudioStreamsProgressCategoryController.AudioStreamState.class);
+
+        verify(mController, times(2)).moveToState(preference.capture(), state.capture());
+        List<AudioStreamPreference> preferences = preference.getAllValues();
+        assertThat(preferences.size()).isEqualTo(2);
+        List<AudioStreamsProgressCategoryController.AudioStreamState> states = state.getAllValues();
+        assertThat(states.size()).isEqualTo(2);
+
+        // Verify one preference is created with SYNCED
+        assertThat(preferences.get(0).getAudioStreamBroadcastId())
+                .isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+        assertThat(states.get(0)).isEqualTo(SYNCED);
+
+        // Verify the preference is updated to state ADD_SOURCE_FAILED
+        assertThat(preferences.get(1).getAudioStreamBroadcastId())
+                .isEqualTo(NEWLY_FOUND_BROADCAST_ID);
+        assertThat(states.get(1)).isEqualTo(ADD_SOURCE_FAILED);
+    }
+
+    private static BluetoothLeBroadcastReceiveState createConnectedMock(int id) {
+        var connected = mock(BluetoothLeBroadcastReceiveState.class);
+        List<Long> bisSyncState = new ArrayList<>();
+        bisSyncState.add(1L);
+        when(connected.getBroadcastId()).thenReturn(id);
+        when(connected.getBisSyncState()).thenReturn(bisSyncState);
+        return connected;
+    }
+
+    static class TestController extends AudioStreamsProgressCategoryController {
+        TestController(Context context, String preferenceKey) {
+            super(context, preferenceKey);
+            mExecutor = spy(mContext.getMainExecutor());
+        }
+
+        @Override
+        void moveToState(AudioStreamPreference preference, AudioStreamState state) {
+            preference.setAudioStreamState(state);
+            // Do nothing else to avoid side effect from AudioStreamStateHandler#performAction
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreferenceTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreferenceTest.java
index 337d64d..76bd5ec 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreferenceTest.java
@@ -53,6 +53,8 @@
 
     @Test
     public void addAudioStreamPreference_singlePreference() {
+        mPreference = spy(new AudioStreamsProgressCategoryPreference(mContext, null));
+        when(mPreference.getPreferenceManager()).thenReturn(mPreferenceManager);
         AudioStreamPreference first = new AudioStreamPreference(mContext, null);
         mPreference.addAudioStreamPreference(first, (p1, p2) -> 0);
 
@@ -62,6 +64,8 @@
 
     @Test
     public void addAudioStreamPreference_multiPreference_sorted() {
+        mPreference = spy(new AudioStreamsProgressCategoryPreference(mContext, null, 0));
+        when(mPreference.getPreferenceManager()).thenReturn(mPreferenceManager);
         Comparator<AudioStreamPreference> c =
                 Comparator.comparingInt(AudioStreamPreference::getOrder);
         AudioStreamPreference first = new AudioStreamPreference(mContext, null);
@@ -78,6 +82,8 @@
 
     @Test
     public void removeAudioStreamPreferences_shouldBeEmpty() {
+        mPreference = spy(new AudioStreamsProgressCategoryPreference(mContext, null, 0, 0));
+        when(mPreference.getPreferenceManager()).thenReturn(mPreferenceManager);
         Comparator<AudioStreamPreference> c =
                 Comparator.comparingInt(AudioStreamPreference::getOrder);
         AudioStreamPreference first = new AudioStreamPreference(mContext, null);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragmentTest.java
index 7d85b7a..06e4837 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragmentTest.java
@@ -98,6 +98,22 @@
     }
 
     @Test
+    public void onCreateView_noProfile_noQrCode() {
+        when(mBtProfileManager.getLeAudioBroadcastProfile()).thenReturn(null);
+        FragmentController.setupFragment(
+                mFragment, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+        View view = mFragment.getView();
+
+        assertThat(view).isNotNull();
+        ImageView qrCodeView = view.findViewById(R.id.qrcode_view);
+        TextView passwordView = view.requireViewById(R.id.password);
+        assertThat(qrCodeView).isNotNull();
+        assertThat(qrCodeView.getDrawable()).isNull();
+        assertThat(passwordView).isNotNull();
+        assertThat(passwordView.getText().toString()).isEqualTo("");
+    }
+
+    @Test
     public void onCreateView_noMetadata_noQrCode() {
         List<BluetoothLeBroadcastMetadata> list = new ArrayList<>();
         when(mBroadcast.getAllBroadcastMetadata()).thenReturn(list);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeControllerTest.java
index 4990f26..a83cbf0 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeControllerTest.java
@@ -16,29 +16,38 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static android.app.settings.SettingsEnums.AUDIO_STREAM_MAIN;
+
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsScanQrCodeController.REQUEST_SCAN_BT_BROADCAST_QR_CODE;
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.content.Intent;
 
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.connecteddevice.audiosharing.audiostreams.testshadows.ShadowAudioStreamsHelper;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.After;
@@ -46,6 +55,7 @@
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -139,17 +149,46 @@
     public void onPreferenceClick_hasFragment_launchSubSetting() {
         mController.displayPreference(mScreen);
         mController.setFragment(mFragment);
+        when(mFragment.getMetricsCategory()).thenReturn(AUDIO_STREAM_MAIN);
 
         var listener = mPreference.getOnPreferenceClickListener();
         assertThat(listener).isNotNull();
+
+        // mContext is not an Activity context, calling startActivity() from outside of an Activity
+        // context requires the FLAG_ACTIVITY_NEW_TASK flag, create a mock to avoid this
+        // AndroidRuntimeException.
+        Context activityContext = mock(Context.class);
+        when(mPreference.getContext()).thenReturn(activityContext);
+        when(mPreference.getKey()).thenReturn(AudioStreamsScanQrCodeController.KEY);
+
         var clicked = listener.onPreferenceClick(mPreference);
+
+        ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        ArgumentCaptor<Integer> requestCodeCaptor = ArgumentCaptor.forClass(Integer.class);
+        verify(mFragment)
+                .startActivityForResult(intentCaptor.capture(), requestCodeCaptor.capture());
+
+        Intent intent = intentCaptor.getValue();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(AudioStreamsQrCodeScanFragment.class.getName());
+        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
+                .isEqualTo(R.string.audio_streams_main_page_scan_qr_code_title);
+        assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0))
+                .isEqualTo(AUDIO_STREAM_MAIN);
+
+        int requestCode = requestCodeCaptor.getValue();
+        assertThat(requestCode).isEqualTo(REQUEST_SCAN_BT_BROADCAST_QR_CODE);
+
         assertThat(clicked).isTrue();
     }
 
     @Test
     public void updateVisibility_noConnected_invisible() {
         mController.displayPreference(mScreen);
-        mController.mBluetoothCallback.onActiveDeviceChanged(mDevice, BluetoothProfile.LE_AUDIO);
+        mController.mBluetoothCallback.onProfileConnectionStateChanged(
+                mDevice,
+                BluetoothAdapter.STATE_DISCONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
         assertThat(mPreference.isVisible()).isFalse();
     }
@@ -158,7 +197,10 @@
     public void updateVisibility_hasConnected_visible() {
         mController.displayPreference(mScreen);
         ShadowAudioStreamsHelper.setCachedBluetoothDeviceInSharingOrLeConnected(mDevice);
-        mController.mBluetoothCallback.onActiveDeviceChanged(mDevice, BluetoothProfile.LE_AUDIO);
+        mController.mBluetoothCallback.onProfileConnectionStateChanged(
+                mDevice,
+                BluetoothAdapter.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT);
 
         assertThat(mPreference.isVisible()).isTrue();
     }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedStateTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedStateTest.java
index 0f0bafe..59a42a1 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedStateTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SourceAddedStateTest.java
@@ -16,31 +16,76 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static android.app.settings.SettingsEnums.AUDIO_STREAM_MAIN;
+
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.SourceAddedState.AUDIO_STREAM_SOURCE_ADDED_STATE_SUMMARY;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowFragment;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowFragment.class,
+        })
 public class SourceAddedStateTest {
-
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final int BROADCAST_ID = 1;
+    private static final String BROADCAST_TITLE = "title";
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private AudioStreamPreference mPreference;
+    @Mock private AudioStreamsProgressCategoryController mController;
+    @Mock private AudioStreamsHelper mHelper;
+    @Mock private AudioStreamsRepository mRepository;
+    @Mock private AudioStreamsDashboardFragment mFragment;
+    @Mock private FragmentActivity mActivity;
+    private FakeFeatureFactory mFeatureFactory;
     private SourceAddedState mInstance;
 
     @Before
     public void setUp() {
-        mInstance = SourceAddedState.getInstance();
+        when(mFragment.getActivity()).thenReturn(mActivity);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mInstance = new SourceAddedState();
+        when(mPreference.getAudioStreamBroadcastId()).thenReturn(BROADCAST_ID);
+        when(mPreference.getTitle()).thenReturn(BROADCAST_TITLE);
     }
 
     @Test
     public void testGetInstance() {
+        mInstance = SourceAddedState.getInstance();
         assertThat(mInstance).isNotNull();
         assertThat(mInstance).isInstanceOf(SourceAddedState.class);
     }
@@ -58,4 +103,59 @@
         assertThat(stateEnum)
                 .isEqualTo(AudioStreamsProgressCategoryController.AudioStreamState.SOURCE_ADDED);
     }
+
+    @Test
+    public void testPerformAction() {
+        mInstance.setAudioStreamsRepositoryForTesting(mRepository);
+        BluetoothLeBroadcastMetadata mockMetadata = mock(BluetoothLeBroadcastMetadata.class);
+        when(mRepository.getCachedMetadata(anyInt())).thenReturn(mockMetadata);
+        when(mPreference.getContext()).thenReturn(mContext);
+        when(mPreference.getSourceOriginForLogging())
+                .thenReturn(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS);
+
+        mInstance.performAction(mPreference, mController, mHelper);
+
+        verify(mRepository).saveMetadata(eq(mContext), eq(mockMetadata));
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        eq(mContext),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_SUCCEED),
+                        eq(SourceOriginForLogging.QR_CODE_SCAN_SETTINGS.ordinal()));
+        verify(mHelper).startMediaService(eq(mContext), eq(BROADCAST_ID), eq(BROADCAST_TITLE));
+    }
+
+    @Test
+    public void testGetOnClickListener_startSubSettings() {
+        when(mController.getFragment()).thenReturn(mFragment);
+        when(mFragment.getMetricsCategory()).thenReturn(AUDIO_STREAM_MAIN);
+
+        Preference.OnPreferenceClickListener listener = mInstance.getOnClickListener(mController);
+        assertThat(listener).isNotNull();
+
+        // mContext is not an Activity context, calling startActivity() from outside of an Activity
+        // context requires the FLAG_ACTIVITY_NEW_TASK flag, create a mock to avoid this
+        // AndroidRuntimeException.
+        Context activityContext = mock(Context.class);
+        when(mPreference.getContext()).thenReturn(activityContext);
+
+        listener.onPreferenceClick(mPreference);
+
+        ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
+        verify(activityContext).startActivity(argumentCaptor.capture());
+
+        Intent intent = argumentCaptor.getValue();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(AudioStreamDetailsFragment.class.getName());
+        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
+                .isEqualTo(R.string.audio_streams_detail_page_title);
+        assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0))
+                .isEqualTo(AUDIO_STREAM_MAIN);
+
+        Bundle bundle = intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+        assertThat(bundle).isNotNull();
+        assertThat(bundle.getString(AudioStreamDetailsFragment.BROADCAST_NAME_ARG))
+                .isEqualTo(BROADCAST_TITLE);
+        assertThat(bundle.getInt(AudioStreamDetailsFragment.BROADCAST_ID_ARG))
+                .isEqualTo(BROADCAST_ID);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SyncedStateTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SyncedStateTest.java
index e9eab50..2b19e20 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SyncedStateTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/SyncedStateTest.java
@@ -20,7 +20,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.never;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
@@ -28,10 +28,16 @@
 import android.app.AlertDialog;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.content.Context;
+import android.content.DialogInterface;
+import android.widget.Button;
+import android.widget.TextView;
 
 import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.R;
+import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
@@ -42,7 +48,9 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAlertDialog;
+import org.robolectric.shadows.ShadowLooper;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
@@ -51,6 +59,10 @@
         })
 public class SyncedStateTest {
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final String ENCRYPTED_METADATA =
+            "BLUETOOTH:UUID:184F;BN:VGVzdA==;AT:1;AD:00A1A1A1A1A1;BI:1E240;BC:VGVzdENvZGU=;"
+                    + "MD:BgNwVGVzdA==;AS:1;PI:A0;NS:1;BS:3;NB:2;SM:BQNUZXN0BARlbmc=;;";
+    private static final String BROADCAST_TITLE = "title";
     @Mock private AudioStreamsProgressCategoryController mMockController;
     @Mock private AudioStreamPreference mMockPreference;
     @Mock private BluetoothLeBroadcastMetadata mMockMetadata;
@@ -105,18 +117,47 @@
 
     @Test
     public void testGetOnClickListener_isEncrypted_passwordDialogShowing() {
+        when(mMockPreference.getAudioStreamMetadata())
+                .thenReturn(
+                        BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(
+                                ENCRYPTED_METADATA));
+        when(mMockPreference.getContext()).thenReturn(mMockContext);
+        when(mMockPreference.getTitle()).thenReturn(BROADCAST_TITLE);
+
         Preference.OnPreferenceClickListener listener =
                 mInstance.getOnClickListener(mMockController);
-        when(mMockPreference.getAudioStreamMetadata()).thenReturn(mMockMetadata);
-        when(mMockPreference.getContext()).thenReturn(mMockContext);
-        when(mMockMetadata.isEncrypted()).thenReturn(true);
+        assertThat(listener).isNotNull();
 
         listener.onPreferenceClick(mMockPreference);
         shadowMainLooper().idle();
 
         AlertDialog dialog = ShadowAlertDialog.getLatestAlertDialog();
+
         assertThat(dialog).isNotNull();
         assertThat(dialog.isShowing()).isTrue();
-        verify(mMockController, never()).handleSourceAddRequest(mMockPreference, mMockMetadata);
+
+        Button neutralButton = dialog.getButton(DialogInterface.BUTTON_NEUTRAL);
+        assertThat(neutralButton).isNotNull();
+        assertThat(neutralButton.getText().toString())
+                .isEqualTo(mMockContext.getString(android.R.string.cancel));
+
+        Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
+        assertThat(positiveButton).isNotNull();
+        assertThat(positiveButton.getText().toString())
+                .isEqualTo(
+                        mMockContext.getString(R.string.bluetooth_connect_access_dialog_positive));
+
+        positiveButton.callOnClick();
+        ShadowLooper.idleMainLooper();
+        verify(mMockController).handleSourceAddRequest(any(), any());
+
+        ShadowAlertDialog shadowDialog = Shadow.extract(dialog);
+        TextView title = shadowDialog.getView().findViewById(R.id.broadcast_name_text);
+        assertThat(title).isNotNull();
+        assertThat(title.getText().toString()).isEqualTo(BROADCAST_TITLE);
+        assertThat(shadowDialog.getTitle().toString())
+                .isEqualTo(mMockContext.getString(R.string.find_broadcast_password_dialog_title));
+
+        dialog.cancel();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncStateTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncStateTest.java
index 3eb07a4..813ed2b 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncStateTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/WaitForSyncStateTest.java
@@ -16,22 +16,39 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams;
 
+import static android.app.settings.SettingsEnums.DIALOG_AUDIO_STREAM_MAIN_WAIT_FOR_SYNC_TIMEOUT;
+
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsScanQrCodeController.REQUEST_SCAN_BT_BROADCAST_QR_CODE;
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.WaitForSyncState.AUDIO_STREAM_WAIT_FOR_SYNC_STATE_SUMMARY;
 import static com.android.settings.connecteddevice.audiosharing.audiostreams.WaitForSyncState.WAIT_FOR_SYNC_TIMEOUT_MILLIS;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -43,19 +60,23 @@
 @RunWith(RobolectricTestRunner.class)
 public class WaitForSyncStateTest {
     @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private final Context mContext = spy(ApplicationProvider.getApplicationContext());
     @Mock private AudioStreamPreference mMockPreference;
     @Mock private AudioStreamsProgressCategoryController mMockController;
     @Mock private AudioStreamsHelper mMockHelper;
     @Mock private BluetoothLeBroadcastMetadata mMockMetadata;
+    private FakeFeatureFactory mFeatureFactory;
     private WaitForSyncState mInstance;
 
     @Before
     public void setUp() {
-        mInstance = WaitForSyncState.getInstance();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mInstance = new WaitForSyncState();
     }
 
     @Test
     public void testGetInstance() {
+        mInstance = WaitForSyncState.getInstance();
         assertThat(mInstance).isNotNull();
         assertThat(mInstance).isInstanceOf(AudioStreamStateHandler.class);
     }
@@ -93,12 +114,49 @@
                 .thenReturn(AudioStreamsProgressCategoryController.AudioStreamState.WAIT_FOR_SYNC);
         when(mMockPreference.getAudioStreamBroadcastId()).thenReturn(1);
         when(mMockPreference.getAudioStreamMetadata()).thenReturn(mMockMetadata);
+        when(mMockPreference.getContext()).thenReturn(mContext);
         when(mMockPreference.getSourceOriginForLogging())
-                .thenReturn(SourceOriginForLogging.UNKNOWN);
+                .thenReturn(SourceOriginForLogging.BROADCAST_SEARCH);
+        when(mMockController.getFragment()).thenReturn(mock(AudioStreamsDashboardFragment.class));
 
         mInstance.performAction(mMockPreference, mMockController, mMockHelper);
         ShadowLooper.idleMainLooper(WAIT_FOR_SYNC_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
 
         verify(mMockController).handleSourceLost(1);
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        eq(mContext),
+                        eq(SettingsEnums.ACTION_AUDIO_STREAM_JOIN_FAILED_WAIT_FOR_SYNC_TIMEOUT),
+                        eq(SourceOriginForLogging.BROADCAST_SEARCH.ordinal()));
+        verify(mContext).getString(R.string.audio_streams_dialog_stream_is_not_available);
+        verify(mContext).getString(R.string.audio_streams_is_not_playing);
+        verify(mContext).getString(R.string.audio_streams_dialog_close);
+        verify(mContext).getString(R.string.audio_streams_dialog_retry);
+    }
+
+    @Test
+    public void testLaunchQrCodeScanFragment() {
+        // mContext is not an Activity context, calling startActivity() from outside of an Activity
+        // context requires the FLAG_ACTIVITY_NEW_TASK flag, create a mock to avoid this
+        // AndroidRuntimeException.
+        Context activityContext = mock(Context.class);
+        AudioStreamsDashboardFragment fragment = mock(AudioStreamsDashboardFragment.class);
+        mInstance.launchQrCodeScanFragment(activityContext, fragment);
+
+        ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        ArgumentCaptor<Integer> requestCodeCaptor = ArgumentCaptor.forClass(Integer.class);
+        verify(fragment)
+                .startActivityForResult(intentCaptor.capture(), requestCodeCaptor.capture());
+
+        Intent intent = intentCaptor.getValue();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(AudioStreamsQrCodeScanFragment.class.getName());
+        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
+                .isEqualTo(R.string.audio_streams_main_page_scan_qr_code_title);
+        assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, 0))
+                .isEqualTo(DIALOG_AUDIO_STREAM_MAIN_WAIT_FOR_SYNC_TIMEOUT);
+
+        int requestCode = requestCodeCaptor.getValue();
+        assertThat(requestCode).isEqualTo(REQUEST_SCAN_BT_BROADCAST_QR_CODE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/testshadows/ShadowAudioStreamsHelper.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/testshadows/ShadowAudioStreamsHelper.java
index 3a0a6c4..051eda7 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/testshadows/ShadowAudioStreamsHelper.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/audiostreams/testshadows/ShadowAudioStreamsHelper.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.connecteddevice.audiosharing.audiostreams.testshadows;
 
+import android.bluetooth.BluetoothLeBroadcastMetadata;
 import android.bluetooth.BluetoothLeBroadcastReceiveState;
 
 import androidx.annotation.Nullable;
@@ -32,7 +33,7 @@
 import java.util.List;
 import java.util.Optional;
 
-@Implements(value = AudioStreamsHelper.class, callThroughByDefault = false)
+@Implements(value = AudioStreamsHelper.class, callThroughByDefault = true)
 public class ShadowAudioStreamsHelper {
     private static AudioStreamsHelper sMockHelper;
     @Nullable private static CachedBluetoothDevice sCachedBluetoothDevice;
@@ -69,4 +70,16 @@
     public LocalBluetoothLeBroadcastAssistant getLeBroadcastAssistant() {
         return sMockHelper.getLeBroadcastAssistant();
     }
+
+    /** Removes sources from LE broadcasts associated for all active sinks based on broadcast Id. */
+    @Implementation
+    public void removeSource(int broadcastId) {
+        sMockHelper.removeSource(broadcastId);
+    }
+
+    /** Adds the specified LE broadcast source to all active sinks. */
+    @Implementation
+    public void addSource(BluetoothLeBroadcastMetadata source) {
+        sMockHelper.addSource(source);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java
index 3aad02e..4509c7c 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/stylus/StylusUsiHeaderControllerTest.java
@@ -33,9 +33,9 @@
 
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settingslib.widget.LayoutPreference;
 
 import org.junit.Before;
@@ -43,6 +43,7 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 
 @RunWith(RobolectricTestRunner.class)
@@ -72,7 +73,7 @@
         when(mBatteryState.getCapacity()).thenReturn(1f);
         when(mBatteryState.isPresent()).thenReturn(true);
 
-        mContext = spy(ApplicationProvider.getApplicationContext());
+        mContext = spy(Robolectric.buildActivity(SettingsActivity.class).get());
         when(mContext.getSystemService(InputManager.class)).thenReturn(mInputManager);
         mController = new StylusUsiHeaderController(mContext, mInputDevice);
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
index eea4f52..9427bbe 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
@@ -35,6 +35,8 @@
 import android.hardware.usb.UsbManager;
 import android.net.TetheringManager;
 import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.PreferenceCategory;
@@ -48,6 +50,7 @@
 
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -82,6 +85,8 @@
     private FragmentActivity mActivity;
     @Mock
     private TetheringManager mTetheringManager;
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
 
     @Before
     public void setUp() {
@@ -349,6 +354,30 @@
         assertThat(mFragment.isUserAuthenticated()).isTrue();
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_EXCLUDE_WEBCAM_AUTH_CHALLENGE)
+    public void onRadioButtonClicked_webcamNoAuthNeeded() {
+        mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_UVC));
+        doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
+        setAuthPassesAutomatically();
+
+        mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
+
+        assertThat(mFragment.isUserAuthenticated()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_EXCLUDE_WEBCAM_AUTH_CHALLENGE)
+    public void onRadioButtonClicked_MidiNoAuthNeeded() {
+        mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_MIDI));
+        doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
+        setAuthPassesAutomatically();
+
+        mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
+
+        assertThat(mFragment.isUserAuthenticated()).isFalse();
+    }
+
     private void setAuthPassesAutomatically() {
         Shadows.shadowOf(mContext.getSystemService(KeyguardManager.class))
                 .setIsKeyguardSecure(false);
diff --git a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
index 460f6f9..0fd4d85 100644
--- a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -16,10 +16,11 @@
 
 package com.android.settings.development;
 
-import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
+import static android.provider.Settings.Global.DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES;
 
-import static com.android.settings.development.DesktopModePreferenceController.SETTING_VALUE_OFF;
-import static com.android.settings.development.DesktopModePreferenceController.SETTING_VALUE_ON;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_ON;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_OFF;
+import static com.android.wm.shell.shared.desktopmode.DesktopModeFlags.ToggleOverride.OVERRIDE_UNSET;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -30,6 +31,10 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.content.res.Resources;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings;
 
 import androidx.fragment.app.FragmentActivity;
@@ -37,24 +42,30 @@
 import androidx.fragment.app.FragmentTransaction;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.internal.R;
+import com.android.window.flags.Flags;
 
 import org.junit.Before;
+import org.junit.Rule;
 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 org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowSystemProperties;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         com.android.settings.testutils.shadow.ShadowFragment.class,
 })
+@EnableFlags(Flags.FLAG_SHOW_DESKTOP_WINDOWING_DEV_OPTION)
 public class DesktopModePreferenceControllerTest {
 
-    private static final String ENG_BUILD_TYPE = "eng";
-    private static final String USER_BUILD_TYPE = "user";
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Mock
     private SwitchPreference mPreference;
@@ -69,61 +80,76 @@
     @Mock
     private FragmentTransaction mTransaction;
 
+    private Resources mResources;
     private Context mContext;
     private DesktopModePreferenceController mController;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+
+        mContext = spy(ApplicationProvider.getApplicationContext());
         doReturn(mTransaction).when(mFragmentManager).beginTransaction();
         doReturn(mFragmentManager).when(mActivity).getSupportFragmentManager();
         doReturn(mActivity).when(mFragment).getActivity();
+
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
+
         mController = new DesktopModePreferenceController(mContext, mFragment);
+
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
+
+        // Set desktop mode available
+        when(mResources.getBoolean(R.bool.config_isDesktopModeSupported))
+                .thenReturn(true);
+        ShadowSystemProperties.override("persist.wm.debug.desktop_mode_enforce_device_restrictions",
+                "false");
     }
 
     @Test
-    public void isAvailable_engBuild_shouldBeTrue() {
+    public void isAvailable_desktopModeDevOptionNotSupported_returnsFalse() {
         mController = spy(mController);
-        doReturn(ENG_BUILD_TYPE).when(mController).getBuildType();
+        // Dev option is not supported if Desktop mode is not supported
+        when(mResources.getBoolean(R.bool.config_isDesktopModeSupported)).thenReturn(false);
+        ShadowSystemProperties.override("persist.wm.debug.desktop_mode_enforce_device_restrictions",
+                "true");
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_desktopModeDevOptionSupported_returnsTrue() {
+        mController = spy(mController);
 
         assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
-    public void isAvaiable_userBuild_shouldBeTrue() {
-        mController = spy(mController);
-        doReturn(USER_BUILD_TYPE).when(mController).getBuildType();
-
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    @Test
-    public void onPreferenceChange_switchEnabled_shouldEnableDesktopMode() {
+    public void onPreferenceChange_switchEnabled_putsSettingsOverrideOnAndTriggersRestart() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
-        assertThat(mode).isEqualTo(SETTING_VALUE_ON);
-
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -1 /* default */);
+        assertThat(mode).isEqualTo(OVERRIDE_ON.getSetting());
         verify(mTransaction).add(any(RebootConfirmationDialogFragment.class), any());
     }
 
     @Test
-    public void onPreferenceChange_switchDisabled_shouldDisableDesktopMode() {
+    public void onPreferenceChange_switchDisabled_putsSettingsOverrideOffAndTriggersRestart() {
         mController.onPreferenceChange(mPreference, false /* new value */);
 
-        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
-        assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+        int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -1 /* default */);
+        assertThat(mode).isEqualTo(OVERRIDE_OFF.getSetting());
+        verify(mTransaction).add(any(RebootConfirmationDialogFragment.class), any());
     }
 
     @Test
-    public void updateState_settingEnabled_preferenceShouldBeChecked() {
+    public void updateState_overrideOn_checksPreference() {
         Settings.Global.putInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_ON);
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_ON.getSetting());
 
         mController.updateState(mPreference);
 
@@ -131,9 +157,9 @@
     }
 
     @Test
-    public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
+    public void updateState_overrideOff_unchecksPreference() {
         Settings.Global.putInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_OFF.getSetting());
 
         mController.updateState(mPreference);
 
@@ -141,12 +167,92 @@
     }
 
     @Test
-    public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
+    public void updateState_overrideUnset_defaultDevOptionStatusOn_checksPreference() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
+    public void updateState_overrideUnset_defaultDevOptionStatusOff_unchecksPreference() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, OVERRIDE_UNSET.getSetting());
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
+    public void updateState_noOverride_defaultDevOptionStatusOn_checksPreference() {
+        // Set no override
+        Settings.Global.putString(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, null);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
+    public void updateState_noOverride_defaultDevOptionStatusOff_unchecksPreference() {
+        // Set no override
+        Settings.Global.putString(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, null);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void updateState_noOverride_noNewSettingsOverride() {
+        // Set no override
+        Settings.Global.putString(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, null);
+
+        mController.updateState(mPreference);
+
+        int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -2 /* default */);
+        assertThat(mode).isEqualTo(-2);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
+    public void updateState_overrideUnknown_defaultDevOptionStatusOn_checksPreference() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -2);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_MODE)
+    public void updateState_overrideUnknown_defaultDevOptionStatusOff_unchecksPreference() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -2);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_putsSettingsOverrideOff() {
         mController.onDeveloperOptionsSwitchDisabled();
 
         final int mode = Settings.Global.getInt(mContext.getContentResolver(),
-                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, -1 /* default */);
-        assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
-        verify(mPreference).setEnabled(false);
+                DEVELOPMENT_OVERRIDE_DESKTOP_MODE_FEATURES, -2 /* default */);
+        assertThat(mode).isEqualTo(OVERRIDE_UNSET.getSetting());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java
new file mode 100644
index 0000000..3691d12
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/DesktopModeSecondaryDisplayPreferenceControllerTest.java
@@ -0,0 +1,175 @@
+/*
+ * 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.development;
+
+import static android.provider.Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT;
+import static android.provider.Settings.Global.DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS;
+
+import static com.android.settings.development.DesktopModeSecondaryDisplayPreferenceController.SETTING_VALUE_OFF;
+import static com.android.settings.development.DesktopModeSecondaryDisplayPreferenceController.SETTING_VALUE_ON;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+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;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
+public class DesktopModeSecondaryDisplayPreferenceControllerTest {
+
+    private static final String ENG_BUILD_TYPE = "eng";
+    private static final String USER_BUILD_TYPE = "user";
+    private static final int SETTING_VALUE_INVALID = -1;
+
+    @Mock
+    private SwitchPreference mPreference;
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private DevelopmentSettingsDashboardFragment mFragment;
+    @Mock
+    private FragmentActivity mActivity;
+    @Mock
+    private FragmentManager mFragmentManager;
+    @Mock
+    private FragmentTransaction mTransaction;
+
+    private Context mContext;
+    private DesktopModeSecondaryDisplayPreferenceController mController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        doReturn(mTransaction).when(mFragmentManager).beginTransaction();
+        doReturn(mFragmentManager).when(mActivity).getSupportFragmentManager();
+        doReturn(mActivity).when(mFragment).getActivity();
+        mController = new DesktopModeSecondaryDisplayPreferenceController(mContext, mFragment);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        mController.displayPreference(mScreen);
+    }
+
+    @Test
+    public void isAvailable_engBuild_shouldBeTrue() {
+        mController = spy(mController);
+        doReturn(ENG_BUILD_TYPE).when(mController).getBuildType();
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_userBuild_shouldBeTrue() {
+        mController = spy(mController);
+        doReturn(USER_BUILD_TYPE).when(mController).getBuildType();
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void onPreferenceChange_switchEnabled_enablesDesktopModeOnSecondaryDisplay() {
+        mController.onPreferenceChange(mPreference, /* newValue= */ true);
+
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+                /* def= */ SETTING_VALUE_INVALID);
+        assertThat(mode).isEqualTo(SETTING_VALUE_ON);
+
+        verify(mTransaction).add(any(RebootConfirmationDialogFragment.class), any());
+    }
+
+    @Test
+    public void onPreferenceChange_switchEnabled_enablesFreeformSupport() {
+        mController.onPreferenceChange(mPreference, /* newValue= */ true);
+
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, /* def= */ SETTING_VALUE_INVALID);
+        assertThat(mode).isEqualTo(SETTING_VALUE_ON);
+    }
+
+    @Test
+    public void onPreferenceChange_switchDisabled_disablesDesktopModeOnSecondaryDisplay() {
+        mController.onPreferenceChange(mPreference, /* newValue= */ false);
+
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+                /* def= */ SETTING_VALUE_INVALID);
+        assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+    }
+
+    @Test
+    public void onPreferenceChange_switchDisabled_disablesFreeformSupport() {
+        mController.onPreferenceChange(mPreference, /* newValue= */ false);
+
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, /* def= */ SETTING_VALUE_INVALID);
+        assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+    }
+
+    @Test
+    public void updateState_settingEnabled_checksPreference() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_ON);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_settingDisabled_unchecksPreference() {
+        Settings.Global.putInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS, SETTING_VALUE_OFF);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_disablesPreference() {
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        final int mode = Settings.Global.getInt(mContext.getContentResolver(),
+                DEVELOPMENT_FORCE_DESKTOP_MODE_ON_EXTERNAL_DISPLAYS,
+                /* def= */ SETTING_VALUE_INVALID);
+        assertThat(mode).isEqualTo(SETTING_VALUE_OFF);
+        verify(mPreference).setEnabled(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index 37a4aea..9f45edb 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
@@ -18,13 +18,21 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+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.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Activity;
 import android.content.Context;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
 
@@ -42,6 +50,7 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -51,6 +60,7 @@
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowBiometricManager;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -61,22 +71,34 @@
         ShadowAlertDialogCompat.class,
         ShadowUserManager.class,
         ShadowUserManager.class,
+        ShadowBiometricManager.class,
 })
 public class DevelopmentSettingsDashboardFragmentTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private Context mContext;
     private ShadowUserManager mShadowUserManager;
+    private ShadowBiometricManager mShadowBiometricManager;
     private DevelopmentSettingsDashboardFragment mDashboard;
+    private SettingsMainSwitchBar mSwitchBar;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        SettingsMainSwitchBar switchBar = new SettingsMainSwitchBar(mContext);
+        mSwitchBar = new SettingsMainSwitchBar(mContext);
         mDashboard = spy(new DevelopmentSettingsDashboardFragment());
-        ReflectionHelpers.setField(mDashboard, "mSwitchBar", switchBar);
+        ReflectionHelpers.setField(mDashboard, "mSwitchBar", mSwitchBar);
         mShadowUserManager = Shadow.extract(mContext.getSystemService(Context.USER_SERVICE));
         mShadowUserManager.setIsAdminUser(true);
+        mShadowBiometricManager = Shadow.extract(mContext.getSystemService(
+                Context.BIOMETRIC_SERVICE));
+        mShadowBiometricManager.setCanAuthenticate(false);
+        //TODO(b/352603684): Should be Authenticators.MANDATORY_BIOMETRICS,
+        // but it is not supported by ShadowBiometricManager
+        mShadowBiometricManager.setAuthenticatorType(
+                BiometricManager.Authenticators.BIOMETRIC_STRONG);
     }
 
     @After
@@ -177,6 +199,41 @@
     }
 
     @Test
+    @Config(shadows = ShadowEnableDevelopmentSettingWarningDialog.class)
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void onSwitchChanged_turnOn_shouldLaunchBiometricPromptIfMandatoryBiometricsEffective() {
+        when(mDashboard.getContext()).thenReturn(mContext);
+        doNothing().when(mDashboard).startActivityForResult(any(),
+                eq(DevelopmentSettingsDashboardFragment.REQUEST_BIOMETRIC_PROMPT));
+
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
+        mShadowBiometricManager.setCanAuthenticate(true);
+        mDashboard.onCheckedChanged(null, true /* isChecked */);
+
+        assertThat(mSwitchBar.isChecked()).isFalse();
+        verify(mDashboard).startActivityForResult(any(),
+                eq(DevelopmentSettingsDashboardFragment.REQUEST_BIOMETRIC_PROMPT));
+        assertThat(ShadowEnableDevelopmentSettingWarningDialog.mShown).isFalse();
+    }
+
+    @Test
+    @Config(shadows = ShadowEnableDevelopmentSettingWarningDialog.class)
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void onActivityResult_requestBiometricPrompt_shouldShowWarningDialog() {
+        when(mDashboard.getContext()).thenReturn(mContext);
+
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
+        mDashboard.onActivityResult(DevelopmentSettingsDashboardFragment.REQUEST_BIOMETRIC_PROMPT,
+                Activity.RESULT_OK, null);
+        mDashboard.onCheckedChanged(null, true /* isChecked */);
+
+        assertThat(mSwitchBar.isChecked()).isTrue();
+        assertThat(ShadowEnableDevelopmentSettingWarningDialog.mShown).isTrue();
+    }
+
+    @Test
     @Ignore
     @Config(shadows = ShadowEnableDevelopmentSettingWarningDialog.class)
     public void onSwitchChanged_turnOff_shouldTurnOff() {
diff --git a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
index bd005b3..978380e 100644
--- a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
@@ -16,8 +16,9 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.FreeformWindowsPreferenceController
-        .SETTING_VALUE_OFF;
+import static android.content.pm.PackageManager.FEATURE_FREEFORM_WINDOW_MANAGEMENT;
+
+import static com.android.settings.development.FreeformWindowsPreferenceController.SETTING_VALUE_OFF;
 import static com.android.settings.development.FreeformWindowsPreferenceController.SETTING_VALUE_ON;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -29,6 +30,7 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.provider.Settings;
 
 import androidx.fragment.app.FragmentActivity;
@@ -43,7 +45,6 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
@@ -52,9 +53,10 @@
 })
 public class FreeformWindowsPreferenceControllerTest {
 
-    private static final String ENG_BUILD_TYPE = "eng";
-    private static final String USER_BUILD_TYPE = "user";
-
+    @Mock
+    Context mContext;
+    @Mock
+    private PackageManager mPackageManager;
     @Mock
     private SwitchPreference mPreference;
     @Mock
@@ -68,33 +70,33 @@
     @Mock
     private FragmentTransaction mTransaction;
 
-    private Context mContext;
     private FreeformWindowsPreferenceController mController;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
         doReturn(mTransaction).when(mFragmentManager).beginTransaction();
         doReturn(mFragmentManager).when(mActivity).getSupportFragmentManager();
         doReturn(mActivity).when(mFragment).getActivity();
         mController = new FreeformWindowsPreferenceController(mContext, mFragment);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
         mController.displayPreference(mScreen);
     }
 
     @Test
-    public void isAvailable_engBuild_shouldBeTrue() {
+    public void isAvailable_deviceHasFreeformWindowSystemFeature_returnsFalse() {
         mController = spy(mController);
-        doReturn(ENG_BUILD_TYPE).when(mController).getBuildType();
+        when(mPackageManager.hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT)).thenReturn(true);
 
-        assertThat(mController.isAvailable()).isTrue();
+        assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
-    public void isAvailable_userBuild_shouldBeTrue() {
+    public void isAvailable_deviceDoesNotHaveFreeformWindowSystemFeature_returnsTrue() {
         mController = spy(mController);
-        doReturn(USER_BUILD_TYPE).when(mController).getBuildType();
+        when(mPackageManager.hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT)).thenReturn(
+                false);
 
         assertThat(mController.isAvailable()).isTrue();
     }
diff --git a/tests/robotests/src/com/android/settings/development/RebootConfirmationDialogFragmentTest.java b/tests/robotests/src/com/android/settings/development/RebootConfirmationDialogFragmentTest.java
new file mode 100644
index 0000000..966f5ef
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/RebootConfirmationDialogFragmentTest.java
@@ -0,0 +1,61 @@
+/*
+ * 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.development;
+
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+@RunWith(RobolectricTestRunner.class)
+public class RebootConfirmationDialogFragmentTest {
+
+    private RebootConfirmationDialogFragment mFragment;
+
+    @Mock
+    RebootConfirmationDialogHost mRebootConfirmationDialogHost;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        RebootConfirmationDialogFragment dialogFragment =
+                FragmentController.setupFragment(
+                        new RebootConfirmationDialogFragment(
+                                R.string.reboot_dialog_override_desktop_mode,
+                                R.string.reboot_dialog_reboot_later,
+                                mRebootConfirmationDialogHost),
+                        FragmentActivity.class,
+                        0 /* containerViewId= */, null /* bundle= */);
+
+        mFragment = Mockito.spy(dialogFragment);
+    }
+
+    @Test
+    public void onPause_shouldDismissDialog() {
+        mFragment.onPause();
+
+        Mockito.verify(mFragment).dismiss();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/TouchpadVisualizerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TouchpadVisualizerPreferenceControllerTest.java
new file mode 100644
index 0000000..826bae9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/TouchpadVisualizerPreferenceControllerTest.java
@@ -0,0 +1,121 @@
+/*
+ * 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.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.hardware.input.InputSettings;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.hardware.input.Flags;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
+import org.junit.Before;
+import org.junit.Rule;
+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 org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowSystemSettings.class,
+})
+public class TouchpadVisualizerPreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private SwitchPreference mPreference;
+
+    private Context mContext;
+
+    private TouchpadVisualizerPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new TouchpadVisualizerPreferenceController(mContext);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        mController.displayPreference(mScreen);
+    }
+
+    @Test
+    @EnableFlags({Flags.FLAG_TOUCHPAD_VISUALIZER})
+    public void updateState_touchpadVisualizerEnabled_shouldCheckedPreference() {
+        InputSettings.setTouchpadVisualizer(mContext, true);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    @EnableFlags({Flags.FLAG_TOUCHPAD_VISUALIZER})
+    public void updateState_touchpadVisualizerDisabled_shouldUncheckedPreference() {
+        InputSettings.setTouchpadVisualizer(mContext, false);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    @EnableFlags({Flags.FLAG_TOUCHPAD_VISUALIZER})
+    public void onPreferenceChange_preferenceChecked_shouldEnableTouchpadVisualizer() {
+        mController.onPreferenceChange(mPreference, true /* new value */);
+
+        final boolean touchpadVisualizer = InputSettings.useTouchpadVisualizer(mContext);
+
+        assertThat(touchpadVisualizer).isTrue();
+    }
+
+    @Test
+    @EnableFlags({Flags.FLAG_TOUCHPAD_VISUALIZER})
+    public void onPreferenceChange_preferenceUnchecked_shouldDisableTouchpadVisualizer() {
+        mController.onPreferenceChange(mPreference, false /* new value */);
+
+        final boolean touchpadVisualizer = InputSettings.useTouchpadVisualizer(mContext);
+
+        assertThat(touchpadVisualizer).isFalse();
+    }
+
+    @Test
+    @EnableFlags({Flags.FLAG_TOUCHPAD_VISUALIZER})
+    public void onDeveloperOptionsSwitchDisabled_preferenceShouldBeEnabled() {
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        final boolean touchpadVisualizer = InputSettings.useTouchpadVisualizer(mContext);
+
+        assertThat(touchpadVisualizer).isFalse();
+        verify(mPreference).setEnabled(false);
+        verify(mPreference).setChecked(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
index 7c1650d2..952af67 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
@@ -31,10 +31,10 @@
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.fuelgauge.BatteryUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -76,17 +76,17 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
-    @Ignore("b/315267179")
     @Test
     public void getSummary_available_returnExpectedDate() {
         when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(eq(mContext),
                 anyLong())).thenReturn(true);
         mShadowBatteryManager.setLongProperty(BatteryManager.BATTERY_PROPERTY_FIRST_USAGE_DATE,
                 1669680000L);
+        final CharSequence expectedDate = BatteryUtils.getBatteryInfoFormattedDate(1669680000000L);
 
         final CharSequence result = mController.getSummary();
 
-        assertThat(result.toString()).isEqualTo("November 29, 2022");
+        assertThat(result).isEqualTo(expectedDate);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
index e50aa1c..6e3b1aa 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
@@ -31,10 +31,10 @@
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.fuelgauge.BatteryUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -77,17 +77,17 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
-    @Ignore("b/315267179")
     @Test
     public void getSummary_available_returnExpectedDate() {
         when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(eq(mContext),
                 anyLong())).thenReturn(true);
         mShadowBatteryManager.setLongProperty(BatteryManager.BATTERY_PROPERTY_MANUFACTURING_DATE,
                 1669680000L);
+        final CharSequence expectedDate = BatteryUtils.getBatteryInfoFormattedDate(1669680000000L);
 
         final CharSequence result = mController.getSummary();
 
-        assertThat(result.toString()).isEqualTo("November 29, 2022");
+        assertThat(result).isEqualTo(expectedDate);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 80739e9..1bc00a1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -441,4 +441,9 @@
         TimeUnit.SECONDS.sleep(1);
         verifyNoInteractions(mMetricsFeatureProvider);
     }
+
+    @Test
+    public void shouldSkipForInitialSUW_returnTrue() {
+        assertThat(mFragment.shouldSkipForInitialSUW()).isTrue();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
index b949a3e..fdb075d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -389,6 +389,28 @@
         verify(mBatteryUsageProgressBarPref).setBottomSummary(expectedChargingString);
     }
 
+    @Test
+    public void updateBatteryStatus_dockDefend_chargingOnHold() {
+        var expected = "Charging on hold";
+        mBatteryInfo.isBatteryDefender = false;
+        when(mFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(true);
+
+        mController.updateBatteryStatus(/* label= */ null, mBatteryInfo);
+
+        verify(mBatteryUsageProgressBarPref).setBottomSummary(expected);
+    }
+
+    @Test
+    public void updateBatteryStatus_batteryDefender_chargingOnHold() {
+        var expected = "Charging on hold";
+        mBatteryInfo.isBatteryDefender = true;
+        when(mFactory.powerUsageFeatureProvider.isExtraDefend()).thenReturn(false);
+
+        mController.updateBatteryStatus(/* label= */ null, mBatteryInfo);
+
+        verify(mBatteryUsageProgressBarPref).setBottomSummary(expected);
+    }
+
     private BatteryInfo arrangeUpdateBatteryStatusTestWithRemainingLabel(
             String remainingLabel,
             String statusLabel,
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index 7bafc6d..8d6cc08 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -48,6 +48,7 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.widget.UsageView;
 import com.android.settingslib.fuelgauge.Estimate;
+import com.android.settingslib.utils.PowerUtil;
 
 import org.junit.After;
 import org.junit.Before;
@@ -74,7 +75,8 @@
     private static final String STATUS_CHARGING_TIME = "50% - 0 min left until full";
     private static final String STATUS_NOT_CHARGING = "Not charging";
     private static final String STATUS_CHARGING_FUTURE_BYPASS = "50% - Charging";
-    private static final String STATUS_CHARGING_PAUSED = "50% - Charging optimized";
+    private static final String STATUS_CHARGING_PAUSED =
+            "50% - Charging on hold to protect battery";
     private static final long REMAINING_TIME_NULL = -1;
     private static final long REMAINING_TIME = 2;
     // Strings are defined in frameworks/base/packages/SettingsLib/res/values/strings.xml
@@ -93,7 +95,8 @@
             Map.of(
                     ChargingType.WIRED, BatteryManager.BATTERY_PLUGGED_AC,
                     ChargingType.WIRELESS, BatteryManager.BATTERY_PLUGGED_WIRELESS,
-                    ChargingType.DOCKED, BatteryManager.BATTERY_PLUGGED_DOCK);
+                    ChargingType.DOCKED, BatteryManager.BATTERY_PLUGGED_DOCK,
+                    ChargingType.NONE, 0);
     private static final Map<ChargingSpeed, Integer> CHARGING_SPEED_MAP =
             Map.of(
                     ChargingSpeed.FAST, 1501000,
@@ -789,6 +792,126 @@
                 expectedChargeLabel);
     }
 
+    @Test
+    public void getBatteryInfo_longlife_shouldSetLonglife() {
+        var batteryIntent = createIntentForLongLifeTest(/* hasLongLife= */ true);
+
+        var batteryInfo =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        batteryIntent,
+                        mBatteryUsageStats,
+                        /* estimate= */ MOCK_ESTIMATE,
+                        /* elapsedRealtimeUs= */ 0L,
+                        /* shortString= */ false,
+                        /* currentTimeMs= */ 0L);
+
+        assertThat(batteryInfo.isLongLife).isTrue();
+    }
+
+    @Test
+    public void getBatteryInfo_noLonglife_shouldNotLonglife() {
+        var batteryIntent = createIntentForLongLifeTest(/* hasLongLife= */ false);
+
+        var batteryInfo =
+                BatteryInfo.getBatteryInfo(
+                        mContext,
+                        batteryIntent,
+                        mBatteryUsageStats,
+                        /* estimate= */ MOCK_ESTIMATE,
+                        /* elapsedRealtimeUs= */ 0L,
+                        /* shortString= */ false,
+                        /* currentTimeMs= */ 0L);
+
+        assertThat(batteryInfo.isLongLife).isFalse();
+    }
+
+    @Test
+    public void getBatteryInfo_plugTypeNoneWithLonglifeAndChargeOptimization_chargingString() {
+        prepareTestGetBatteryInfoEnvironment(
+                /* remainingTimeMs= */ Duration.ofMinutes(130).toMillis(),
+                /* chargingStringV2Enabled= */ false);
+        Intent batteryIntent =
+                createIntentForGetBatteryInfoTest(
+                        ChargingType.NONE,
+                        ChargingSpeed.REGULAR,
+                        /* batteryLevel= */ 85,
+                        BatteryManager.BATTERY_STATUS_DISCHARGING,
+                        /* isLonglife= */ true);
+        var expectedRemainingLabel = "Expected remaining label";
+        var expectedChargeLabel = "85% - " + expectedRemainingLabel;
+        when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
+                .thenReturn(true);
+        when(mFeatureFactory.batterySettingsFeatureProvider.getChargingOptimizationRemainingLabel(
+                        eq(mContext), anyInt(), anyInt(), anyLong(), anyLong()))
+                .thenReturn(expectedRemainingLabel);
+        when(mFeatureFactory.batterySettingsFeatureProvider.getChargingOptimizationChargeLabel(
+                        eq(mContext), anyInt(), anyString(), anyLong(), anyLong()))
+                .thenReturn(expectedChargeLabel);
+        var expectedStatusLabel = "Not charging";
+
+        assertGetBatteryInfo(
+                batteryIntent,
+                /* currentTimeMillis= */ UNUSED_TIME_MS,
+                expectedStatusLabel,
+                expectedRemainingLabel,
+                expectedChargeLabel);
+    }
+
+    @Test
+    public void getBatteryInfo_plugTypeNoneNotChargeOptimizationLonglife_dischargingString() {
+        prepareTestGetBatteryInfoEnvironment(
+                /* remainingTimeMs= */ Duration.ofMinutes(130).toMillis(),
+                /* chargingStringV2Enabled= */ false);
+        Intent batteryIntent =
+                createIntentForGetBatteryInfoTest(
+                        ChargingType.NONE,
+                        ChargingSpeed.REGULAR,
+                        /* batteryLevel= */ 85,
+                        BatteryManager.BATTERY_STATUS_DISCHARGING,
+                        /* isLonglife= */ true);
+        var expectedRemainingLabel =
+                PowerUtil.getBatteryRemainingShortStringFormatted(
+                        mContext, PowerUtil.convertUsToMs(1000L));
+        when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
+                .thenReturn(false);
+        var expectedStatusLabel = "Not charging";
+
+        assertGetBatteryInfo(
+                batteryIntent,
+                /* currentTimeMillis= */ UNUSED_TIME_MS,
+                expectedStatusLabel,
+                expectedRemainingLabel,
+                expectedRemainingLabel);
+    }
+
+    @Test
+    public void getBatteryInfo_plugTypeNoneChargeOptimizationNotLonglife_dischargingString() {
+        prepareTestGetBatteryInfoEnvironment(
+                /* remainingTimeMs= */ Duration.ofMinutes(130).toMillis(),
+                /* chargingStringV2Enabled= */ false);
+        Intent batteryIntent =
+                createIntentForGetBatteryInfoTest(
+                        ChargingType.NONE,
+                        ChargingSpeed.REGULAR,
+                        /* batteryLevel= */ 85,
+                        BatteryManager.BATTERY_STATUS_DISCHARGING,
+                        /* isLonglife= */ false);
+        var expectedRemainingLabel =
+                PowerUtil.getBatteryRemainingShortStringFormatted(
+                        mContext, PowerUtil.convertUsToMs(1000L));
+        when(mFeatureFactory.batterySettingsFeatureProvider.isChargingOptimizationMode(mContext))
+                .thenReturn(true);
+        var expectedStatusLabel = "Not charging";
+
+        assertGetBatteryInfo(
+                batteryIntent,
+                /* currentTimeMillis= */ UNUSED_TIME_MS,
+                expectedStatusLabel,
+                expectedRemainingLabel,
+                expectedRemainingLabel);
+    }
+
     private enum ChargingSpeed {
         FAST,
         REGULAR,
@@ -798,19 +921,46 @@
     private enum ChargingType {
         WIRED,
         WIRELESS,
-        DOCKED
+        DOCKED,
+        NONE
     }
 
-    private Intent createIntentForGetBatteryInfoTest(
+    private static Intent createIntentForLongLifeTest(Boolean hasLongLife) {
+        return new Intent(Intent.ACTION_BATTERY_CHANGED)
+                .putExtra(
+                        BatteryManager.EXTRA_CHARGING_STATUS,
+                        hasLongLife
+                                ? BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE
+                                : BatteryManager.CHARGING_POLICY_DEFAULT);
+    }
+
+    private static Intent createIntentForGetBatteryInfoTest(
             ChargingType chargingType, ChargingSpeed chargingSpeed, int batteryLevel) {
+        return createIntentForGetBatteryInfoTest(
+                chargingType,
+                chargingSpeed,
+                batteryLevel,
+                BatteryManager.BATTERY_STATUS_CHARGING,
+                /* isLonglife= */ false);
+    }
+
+    private static Intent createIntentForGetBatteryInfoTest(
+            ChargingType chargingType,
+            ChargingSpeed chargingSpeed,
+            int batteryLevel,
+            int chargingStatus,
+            boolean isLonglife) {
         return createBatteryIntent(
-                        CHARGING_TYPE_MAP.get(chargingType),
-                        batteryLevel,
-                        BatteryManager.BATTERY_STATUS_CHARGING)
+                        CHARGING_TYPE_MAP.get(chargingType), batteryLevel, chargingStatus)
                 .putExtra(
                         BatteryManager.EXTRA_MAX_CHARGING_CURRENT,
                         CHARGING_SPEED_MAP.get(chargingSpeed))
-                .putExtra(BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE, 5000000);
+                .putExtra(BatteryManager.EXTRA_MAX_CHARGING_VOLTAGE, 5000000)
+                .putExtra(
+                        BatteryManager.EXTRA_CHARGING_STATUS,
+                        isLonglife
+                                ? BatteryManager.CHARGING_POLICY_ADAPTIVE_LONGLIFE
+                                : BatteryManager.CHARGING_POLICY_DEFAULT);
     }
 
     private void prepareTestGetBatteryInfoEnvironment(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
index 84f549e..72b49e2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
@@ -164,7 +164,7 @@
         TimeUnit.SECONDS.sleep(1);
 
         verifySetAppOptimizationMode(AppOpsManager.MODE_IGNORED, /* allowListed */ false);
-        verify(mObserver).onChanged(DataChangeReason.UPDATE);
+        verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.UPDATE);
     }
 
     @Test
@@ -178,7 +178,7 @@
         TimeUnit.SECONDS.sleep(1);
 
         verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ true);
-        verify(mObserver).onChanged(DataChangeReason.UPDATE);
+        verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.UPDATE);
     }
 
     @Test
@@ -192,7 +192,7 @@
         TimeUnit.SECONDS.sleep(1);
 
         verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
-        verify(mObserver).onChanged(DataChangeReason.UPDATE);
+        verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.UPDATE);
     }
 
     @Test
@@ -301,7 +301,7 @@
         inOrder.verify(mMockBackend).isAllowlisted(PACKAGE_NAME, UID);
         inOrder.verify(mMockBackend).isSysAllowlisted(PACKAGE_NAME);
         verifyNoMoreInteractions(mMockBackend);
-        verify(mObserver).onChanged(DataChangeReason.DELETE);
+        verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.DELETE);
     }
 
     @Test
@@ -312,7 +312,7 @@
                 /* isSystemOrDefaultApp */ false);
 
         verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
-        verify(mObserver).onChanged(DataChangeReason.DELETE);
+        verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.DELETE);
     }
 
     @Test
@@ -323,7 +323,7 @@
                 /* isSystemOrDefaultApp */ false);
 
         verifySetAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false);
-        verify(mObserver).onChanged(DataChangeReason.DELETE);
+        verify(mObserver).onChanged(mBatterySettingsStorage, DataChangeReason.DELETE);
     }
 
     private void runTestForResetWithMode(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
index 354afd0..962c40f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImplTest.java
@@ -78,6 +78,16 @@
     }
 
     @Test
+    public void isRestrictedModeOverwriteEnabled_returnFalse() {
+        assertThat(mPowerFeatureProvider.isRestrictedModeOverwriteEnabled()).isFalse();
+    }
+
+    @Test
+    public void isForceExpireAppOptimizationModeEnabled_returnFalse() {
+        assertThat(mPowerFeatureProvider.isForceExpireAppOptimizationModeEnabled()).isFalse();
+    }
+
+    @Test
     public void isAppOptimizationModeLogged_returnFalse() {
         assertThat(mPowerFeatureProvider.isAppOptimizationModeLogged()).isFalse();
     }
@@ -160,7 +170,7 @@
 
     @Test
     public void isBatteryDefend_defenderModeAndExtraDefendAreFalse_returnFalse() {
-        mBatteryInfo.isBatteryDefender = false;
+        mBatteryInfo.isLongLife = false;
         doReturn(false).when(mPowerFeatureProvider).isExtraDefend();
 
         assertThat(mPowerFeatureProvider.isBatteryDefend(mBatteryInfo)).isFalse();
@@ -168,7 +178,7 @@
 
     @Test
     public void isBatteryDefend_defenderModeIsFalse_returnFalse() {
-        mBatteryInfo.isBatteryDefender = false;
+        mBatteryInfo.isLongLife = false;
         doReturn(true).when(mPowerFeatureProvider).isExtraDefend();
 
         assertThat(mPowerFeatureProvider.isBatteryDefend(mBatteryInfo)).isFalse();
@@ -176,7 +186,7 @@
 
     @Test
     public void isBatteryDefend_defenderModeAndExtraDefendAreTrue_returnFalse() {
-        mBatteryInfo.isBatteryDefender = true;
+        mBatteryInfo.isLongLife = true;
         doReturn(true).when(mPowerFeatureProvider).isExtraDefend();
 
         assertThat(mPowerFeatureProvider.isBatteryDefend(mBatteryInfo)).isFalse();
@@ -184,7 +194,7 @@
 
     @Test
     public void isBatteryDefend_extraDefendIsFalse_returnTrue() {
-        mBatteryInfo.isBatteryDefender = true;
+        mBatteryInfo.isLongLife = true;
         doReturn(false).when(mPowerFeatureProvider).isExtraDefend();
 
         assertThat(mPowerFeatureProvider.isBatteryDefend(mBatteryInfo)).isTrue();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetectorTest.java
index ab1ceb5..7643c41 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/BatteryDefenderDetectorTest.java
@@ -18,15 +18,12 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.when;
-
 import android.content.Context;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.fuelgauge.BatteryInfo;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
-import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -41,28 +38,23 @@
     @Mock private BatteryInfo mBatteryInfo;
     private BatteryDefenderDetector mBatteryDefenderDetector;
 
-    private FakeFeatureFactory mFakeFeatureFactory;
-
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         final Context context = ApplicationProvider.getApplicationContext();
         mBatteryDefenderDetector = new BatteryDefenderDetector(mBatteryInfo, context);
-        mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
     }
 
     @Test
     public void detect_notBatteryDefend_tipInvisible() {
-        when(mFakeFeatureFactory.powerUsageFeatureProvider.isBatteryDefend(mBatteryInfo))
-                .thenReturn(false);
+        mBatteryInfo.isBatteryDefender = false;
 
         assertThat(mBatteryDefenderDetector.detect().isVisible()).isFalse();
     }
 
     @Test
     public void detect_isBatteryDefend_tipNew() {
-        when(mFakeFeatureFactory.powerUsageFeatureProvider.isBatteryDefend(mBatteryInfo))
-                .thenReturn(true);
+        mBatteryInfo.isBatteryDefender = true;
 
         assertThat(mBatteryDefenderDetector.detect().getState())
                 .isEqualTo(BatteryTip.StateType.NEW);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
index 4567bc3..0e10a15 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
@@ -494,6 +494,7 @@
         final ContentValues values =
                 getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
         values.put(BatteryHistEntry.KEY_UID, /*invalid uid*/ 10001);
+        values.put(BatteryHistEntry.KEY_USER_ID, /*valid userid*/ USER_ID);
         values.put(BatteryHistEntry.KEY_PACKAGE_NAME, fakePackageName);
         final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
 
@@ -503,14 +504,16 @@
 
         doReturn(BatteryUtils.UID_NULL)
                 .when(mMockPackageManager)
-                .getPackageUid(entry.getPackageName(), PackageManager.GET_META_DATA);
+                .getPackageUidAsUser(
+                        entry.getPackageName(), PackageManager.GET_META_DATA, USER_ID);
         entry.updateRestrictionFlagState();
         // Sets false if the app is invalid package name.
         assertThat(entry.mValidForRestriction).isFalse();
 
         doReturn(1000)
                 .when(mMockPackageManager)
-                .getPackageUid(entry.getPackageName(), PackageManager.GET_META_DATA);
+                .getPackageUidAsUser(
+                        entry.getPackageName(), PackageManager.GET_META_DATA, USER_ID);
         entry.updateRestrictionFlagState();
         // Sets false if the app PackageInfo cannot be found.
         assertThat(entry.mValidForRestriction).isFalse();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
index 450d058..6147778 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
@@ -132,7 +132,7 @@
                 createBatteryEntryForApp(null, APP_DEFAULT_PACKAGE_NAME, HIGH_DRAIN_PACKAGE);
 
         assertThat(entry.getDefaultPackageName()).isEqualTo(APP_DEFAULT_PACKAGE_NAME);
-        assertThat(entry.getLabel()).isEqualTo(LABEL_PREFIX + APP_DEFAULT_PACKAGE_NAME);
+        assertThat(entry.getLabel()).isEqualTo(APP_DEFAULT_PACKAGE_NAME);
     }
 
     @Test
@@ -152,7 +152,7 @@
 
         BatteryEntry entry = createBatteryEntryForApp(null, null, HIGH_DRAIN_PACKAGE);
 
-        assertThat(entry.getLabel()).isEqualTo(LABEL_PREFIX + HIGH_DRAIN_PACKAGE);
+        assertThat(entry.getLabel()).isEqualTo(HIGH_DRAIN_PACKAGE);
     }
 
     @Test
@@ -163,7 +163,7 @@
                         null,
                         HIGH_DRAIN_PACKAGE);
 
-        assertThat(entry.getLabel()).isEqualTo(LABEL_PREFIX + HIGH_DRAIN_PACKAGE);
+        assertThat(entry.getLabel()).isEqualTo(HIGH_DRAIN_PACKAGE);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
deleted file mode 100644
index 5f86301..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
+++ /dev/null
@@ -1,293 +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.batteryusage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
-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 static org.mockito.Mockito.when;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.util.Pair;
-import android.view.View;
-
-import com.android.settings.DisplaySettings;
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.testutils.BatteryTestUtils;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.Map;
-import java.util.Optional;
-import java.util.TimeZone;
-
-@RunWith(RobolectricTestRunner.class)
-public final class BatteryTipsCardPreferenceTest {
-
-    private Context mContext;
-    private FakeFeatureFactory mFeatureFactory;
-    private BatteryTipsCardPreference mBatteryTipsCardPreference;
-    private PowerUsageAdvanced mPowerUsageAdvanced;
-    private BatteryTipsController mBatteryTipsController;
-    private BatteryChartPreferenceController mBatteryChartPreferenceController;
-
-    @Mock private View mFakeView;
-    @Mock private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
-    @Mock private BatteryDiffEntry mFakeEntry;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
-        mContext = spy(RuntimeEnvironment.application);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mBatteryTipsCardPreference = new BatteryTipsCardPreference(mContext, /* attrs= */ null);
-        mBatteryTipsController = new BatteryTipsController(mContext);
-        mBatteryChartPreferenceController =
-                spy(new BatteryChartPreferenceController(mContext, null, null));
-        mBatteryChartPreferenceController.mPrefContext = mContext;
-        mBatteryTipsController.mCardPreference = mBatteryTipsCardPreference;
-
-        mPowerUsageAdvanced = spy(new PowerUsageAdvanced());
-        doReturn(mContext).when(mPowerUsageAdvanced).getContext();
-        mPowerUsageAdvanced.mBatteryTipsController = mBatteryTipsController;
-        mPowerUsageAdvanced.mBatteryChartPreferenceController = mBatteryChartPreferenceController;
-        mPowerUsageAdvanced.mBatteryUsageBreakdownController = mBatteryUsageBreakdownController;
-        mPowerUsageAdvanced.mBatteryLevelData =
-                Optional.of(
-                        new BatteryLevelData(
-                                Map.of(
-                                        1694354400000L, 1, // 2023-09-10 22:00:00
-                                        1694361600000L, 2, // 2023-09-11 00:00:00
-                                        1694368800000L, 3))); // 2023-09-11 02:00:00
-        doReturn("TestEntriesKey").when(mFakeEntry).getKey();
-    }
-
-    @Test
-    public void constructor_returnExpectedResult() {
-        assertThat(mBatteryTipsCardPreference.getLayoutResource())
-                .isEqualTo(R.layout.battery_tips_card);
-    }
-
-    @Test
-    public void onClick_mainBtnOfSettingsAnomalyLaunchPage_getAdaptiveBrightnessLauncher() {
-        final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        PowerAnomalyEvent adaptiveBrightnessAnomaly =
-                BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent(/* changeSettings= */ false);
-        when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
-        when(mFakeView.getId()).thenReturn(R.id.main_button);
-        doNothing().when(mContext).startActivity(captor.capture());
-
-        mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(
-                adaptiveBrightnessAnomaly, adaptiveBrightnessAnomaly);
-        mBatteryTipsCardPreference.onClick(mFakeView);
-
-        assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
-        verify(mContext).startActivity(any(Intent.class));
-        final Intent intent = captor.getValue();
-        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
-                .isEqualTo(DisplaySettings.class.getName());
-        assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, -1))
-                .isEqualTo(SettingsEnums.DISPLAY);
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
-    }
-
-    @Test
-    public void onClick_mainBtnOfSettingsAnomalyChangeSettings_settingsChanged()
-            throws Settings.SettingNotFoundException {
-        Settings.System.putInt(
-                mContext.getContentResolver(),
-                Settings.System.SCREEN_BRIGHTNESS_MODE,
-                Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
-        final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        PowerAnomalyEvent adaptiveBrightnessAnomaly =
-                BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent(/* changeSettings= */ true);
-        when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
-        when(mFakeView.getId()).thenReturn(R.id.main_button);
-        doNothing().when(mContext).startActivity(captor.capture());
-
-        mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(
-                adaptiveBrightnessAnomaly, adaptiveBrightnessAnomaly);
-        mBatteryTipsCardPreference.onClick(mFakeView);
-
-        assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
-        assertThat(
-                        Settings.System.getInt(
-                                mContext.getContentResolver(),
-                                Settings.System.SCREEN_BRIGHTNESS_MODE))
-                .isEqualTo(Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
-        verify(mContext, never()).startActivity(any(Intent.class));
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
-    }
-
-    @Test
-    public void onClick_dismissBtnOfSettingsAnomaly_cardDismissAndLogged() {
-        final PowerAnomalyEvent screenTimeoutAnomaly =
-                BatteryTestUtils.createScreenTimeoutAnomalyEvent();
-        DatabaseUtils.removeDismissedPowerAnomalyKeys(mContext);
-        when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
-        when(mFakeView.getId()).thenReturn(R.id.dismiss_button);
-
-        mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(
-                screenTimeoutAnomaly, screenTimeoutAnomaly);
-        mBatteryTipsCardPreference.onClick(mFakeView);
-
-        assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
-        assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext)).hasSize(1);
-        assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext))
-                .contains(PowerAnomalyKey.KEY_SCREEN_TIMEOUT.name());
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
-    }
-
-    @Test
-    public void onClick_mainBtnOfAppsAnomaly_selectHighlightSlot() {
-        final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
-        when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
-        when(mFakeView.getId()).thenReturn(R.id.main_button);
-        doNothing().when(mBatteryChartPreferenceController).selectHighlightSlotIndex();
-        when(mPowerUsageAdvanced.findRelatedBatteryDiffEntry(any())).thenReturn(mFakeEntry);
-
-        mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(appsAnomaly, appsAnomaly);
-        assertHighlightSlotIndexPair(1, 0);
-        mBatteryTipsCardPreference.onClick(mFakeView);
-
-        assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
-        verify(mContext, never()).startActivity(any(Intent.class));
-        verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
-        verify(mBatteryChartPreferenceController).selectHighlightSlotIndex();
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
-    }
-
-    @Test
-    public void onClick_dismissBtnOfAppsAnomaly_keepHighlightSlotIndex() {
-        final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
-        when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
-        when(mFakeView.getId()).thenReturn(R.id.dismiss_button);
-        when(mPowerUsageAdvanced.findRelatedBatteryDiffEntry(any())).thenReturn(mFakeEntry);
-
-        mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(appsAnomaly, appsAnomaly);
-        assertHighlightSlotIndexPair(1, 0);
-        mBatteryTipsCardPreference.onClick(mFakeView);
-
-        assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
-        verify(mContext, never()).startActivity(any(Intent.class));
-        verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
-        verify(mBatteryChartPreferenceController, never()).selectHighlightSlotIndex();
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
-    }
-
-    private void assertHighlightSlotIndexPair(
-            int dailyHighlightSlotIndex, int hourlyHighlightSlotIndex) {
-        assertThat(mPowerUsageAdvanced.mBatteryLevelData.isPresent()).isTrue();
-        assertThat(mPowerUsageAdvanced.mHighlightEventWrapper.isPresent()).isTrue();
-        Pair<Integer, Integer> slotIndexPair =
-                mPowerUsageAdvanced
-                        .mHighlightEventWrapper
-                        .get()
-                        .getHighlightSlotPair(mPowerUsageAdvanced.mBatteryLevelData.get());
-        assertThat(slotIndexPair)
-                .isEqualTo(Pair.create(dailyHighlightSlotIndex, hourlyHighlightSlotIndex));
-        assertThat(mPowerUsageAdvanced.mBatteryChartPreferenceController.mDailyHighlightSlotIndex)
-                .isEqualTo(dailyHighlightSlotIndex);
-        assertThat(mPowerUsageAdvanced.mBatteryChartPreferenceController.mHourlyHighlightSlotIndex)
-                .isEqualTo(hourlyHighlightSlotIndex);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
index 954437f..6c29036b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
@@ -16,8 +16,13 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
+
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.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;
 
@@ -29,11 +34,11 @@
 import com.android.settings.R;
 import com.android.settings.testutils.BatteryTestUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.widget.TipCardPreference;
 
 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;
@@ -47,134 +52,156 @@
     private Context mContext;
     private FakeFeatureFactory mFeatureFactory;
     private BatteryTipsController mBatteryTipsController;
-
-    @Mock private BatteryTipsCardPreference mBatteryTipsCardPreference;
+    private TipCardPreference mCardPreference;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         Locale.setDefault(new Locale("en_US"));
-        org.robolectric.shadows.ShadowSettings.set24HourTimeFormat(false);
         TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
+
         mContext = spy(RuntimeEnvironment.application);
         final Resources resources = spy(mContext.getResources());
         resources.getConfiguration().setLocales(new LocaleList(new Locale("en_US")));
         doReturn(resources).when(mContext).getResources();
         mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mBatteryTipsController = new BatteryTipsController(mContext);
-        mBatteryTipsController.mCardPreference = mBatteryTipsCardPreference;
+        mBatteryTipsController = spy(new BatteryTipsController(mContext));
+        mCardPreference = new TipCardPreference(mContext);
+        mBatteryTipsController.mCardPreference = mCardPreference;
     }
 
     @Test
     public void handleBatteryTipsCardUpdated_null_hidePreference() {
         mBatteryTipsController.handleBatteryTipsCardUpdated(/* powerAnomalyEvents= */ null, false);
 
-        verify(mBatteryTipsCardPreference).setVisible(false);
+        assertThat(mCardPreference.isVisible()).isFalse();
     }
 
     @Test
     public void handleBatteryTipsCardUpdated_adaptiveBrightnessAnomaly_showAnomaly() {
-        PowerAnomalyEvent event = BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
+        AnomalyEventWrapper anomalyEventWrapper =
+                spy(
+                        new AnomalyEventWrapper(
+                                mContext,
+                                BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent(true)));
         when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
 
-        mBatteryTipsController.handleBatteryTipsCardUpdated(
-                new AnomalyEventWrapper(mContext, event), false);
+        mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, false);
 
-        // Check pre-defined string
-        verify(mBatteryTipsCardPreference)
-                .setTitle("Turn on adaptive brightness to extend battery life");
-        verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
-        verify(mBatteryTipsCardPreference).setButtonColorResourceId(R.color.color_accent_selector);
-        verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
-        verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
-        // Check proto info
-        verify(mBatteryTipsCardPreference).setVisible(true);
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
+        assertThat(mCardPreference.getTitle())
+                .isEqualTo("Turn on adaptive brightness to extend battery life");
+        assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+        assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("View Settings");
+        assertThat(mCardPreference.getIconResId()).isEqualTo(R.drawable.ic_battery_tips_lightbulb);
+        assertThat(mCardPreference.getTintColorResId()).isEqualTo(R.color.color_accent_selector);
+        assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+        assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+        assertCardButtonActionAndMetrics(anomalyEventWrapper);
     }
 
     @Test
     public void handleBatteryTipsCardUpdated_screenTimeoutAnomaly_showAnomaly() {
-        PowerAnomalyEvent event = BatteryTestUtils.createScreenTimeoutAnomalyEvent();
+        AnomalyEventWrapper anomalyEventWrapper =
+                spy(
+                        new AnomalyEventWrapper(
+                                mContext, BatteryTestUtils.createScreenTimeoutAnomalyEvent(true)));
         when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
 
-        mBatteryTipsController.handleBatteryTipsCardUpdated(
-                new AnomalyEventWrapper(mContext, event), false);
+        mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, false);
 
-        verify(mBatteryTipsCardPreference).setTitle("Reduce screen timeout to extend battery life");
-        verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
-        verify(mBatteryTipsCardPreference).setButtonColorResourceId(R.color.color_accent_selector);
-        verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
-        verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
-        verify(mBatteryTipsCardPreference).setVisible(true);
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
+        assertThat(mCardPreference.getTitle())
+                .isEqualTo("Reduce screen timeout to extend battery life");
+        assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+        assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("View Settings");
+        assertThat(mCardPreference.getIconResId()).isEqualTo(R.drawable.ic_battery_tips_lightbulb);
+        assertThat(mCardPreference.getTintColorResId()).isEqualTo(R.color.color_accent_selector);
+        assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+        assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+        assertCardButtonActionAndMetrics(anomalyEventWrapper);
     }
 
     @Test
     public void handleBatteryTipsCardUpdated_screenTimeoutAnomalyHasTitle_showAnomaly() {
-        PowerAnomalyEvent event = BatteryTestUtils.createScreenTimeoutAnomalyEvent();
+        PowerAnomalyEvent anomalyEvent = BatteryTestUtils.createScreenTimeoutAnomalyEvent(true);
         String testTitle = "TestTitle";
-        event =
-                event.toBuilder()
+        anomalyEvent =
+                anomalyEvent.toBuilder()
                         .setWarningBannerInfo(
-                                event.getWarningBannerInfo().toBuilder()
+                                anomalyEvent.getWarningBannerInfo().toBuilder()
                                         .setTitleString(testTitle)
                                         .build())
                         .build();
+        AnomalyEventWrapper anomalyEventWrapper =
+                spy(new AnomalyEventWrapper(mContext, anomalyEvent));
         when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
 
-        mBatteryTipsController.handleBatteryTipsCardUpdated(
-                new AnomalyEventWrapper(mContext, event), false);
+        mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, false);
 
-        verify(mBatteryTipsCardPreference).setTitle(testTitle);
-        verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
-        verify(mBatteryTipsCardPreference).setButtonColorResourceId(R.color.color_accent_selector);
-        verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
-        verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
-        verify(mBatteryTipsCardPreference).setVisible(true);
-        verify(mFeatureFactory.metricsFeatureProvider)
-                .action(
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
-                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
+        assertThat(mCardPreference.getTitle()).isEqualTo(testTitle);
+        assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+        assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("View Settings");
+        assertThat(mCardPreference.getIconResId()).isEqualTo(R.drawable.ic_battery_tips_lightbulb);
+        assertThat(mCardPreference.getTintColorResId()).isEqualTo(R.color.color_accent_selector);
+        assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+        assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+        assertCardButtonActionAndMetrics(anomalyEventWrapper);
     }
 
     @Test
     public void handleBatteryTipsCardUpdated_appAnomaly_showAnomaly() {
-        PowerAnomalyEvent event = BatteryTestUtils.createAppAnomalyEvent();
+        AnomalyEventWrapper anomalyEventWrapper =
+                spy(new AnomalyEventWrapper(mContext, BatteryTestUtils.createAppAnomalyEvent()));
         when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
 
-        AnomalyEventWrapper eventWrapper = new AnomalyEventWrapper(mContext, event);
-        eventWrapper.setRelatedBatteryDiffEntry(new BatteryDiffEntry(mContext, "", "Chrome", 0));
-        mBatteryTipsController.handleBatteryTipsCardUpdated(eventWrapper, false);
+        anomalyEventWrapper.setRelatedBatteryDiffEntry(
+                new BatteryDiffEntry(mContext, "", "Chrome", 0));
+        mBatteryTipsController.setOnAnomalyConfirmListener(
+                () -> mBatteryTipsController.acceptTipsCard());
+        mBatteryTipsController.handleBatteryTipsCardUpdated(anomalyEventWrapper, true);
 
-        verify(mBatteryTipsCardPreference).setTitle("Chrome used more battery than usual");
-        verify(mBatteryTipsCardPreference)
-                .setIconResourceId(R.drawable.ic_battery_tips_warning_icon);
-        verify(mBatteryTipsCardPreference)
-                .setButtonColorResourceId(R.color.color_battery_anomaly_app_warning_selector);
-        verify(mBatteryTipsCardPreference).setMainButtonLabel("Check");
-        verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
-        verify(mBatteryTipsCardPreference).setVisible(true);
+        assertThat(mCardPreference.getTitle()).isEqualTo("Chrome used more battery than usual");
+        assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo("Got it");
+        assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo("Check");
+        assertThat(mCardPreference.getIconResId())
+                .isEqualTo(R.drawable.ic_battery_tips_warning_icon);
+        assertThat(mCardPreference.getTintColorResId())
+                .isEqualTo(R.color.color_battery_anomaly_app_warning_selector);
+        assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
+        assertThat(mCardPreference.getSecondaryButtonVisibility()).isTrue();
+        assertThat(mCardPreference.isVisible()).isTrue();
+        assertCardButtonActionAndMetrics(anomalyEventWrapper);
+    }
+
+    private void assertCardButtonActionAndMetrics(final AnomalyEventWrapper anomalyEventWrapper) {
+        when(anomalyEventWrapper.updateSystemSettingsIfAvailable()).thenReturn(true);
+
+        final int powerAnomalyKeyNumber = anomalyEventWrapper.getAnomalyKeyNumber();
+        assertCardMetrics(SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, powerAnomalyKeyNumber);
+        assertThat(mCardPreference.isVisible()).isTrue();
+
+        // Check accept button action
+        mCardPreference.setVisible(true);
+        mCardPreference.getSecondaryButtonAction().invoke();
+        assertCardMetrics(SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, powerAnomalyKeyNumber);
+        assertThat(mCardPreference.isVisible()).isFalse();
+        final boolean isAppAnomalyCard = powerAnomalyKeyNumber > 1;
+        verify(anomalyEventWrapper, isAppAnomalyCard ? never() : times(1))
+                .updateSystemSettingsIfAvailable();
+
+        // Check reject button action
+        mCardPreference.setVisible(true);
+        mCardPreference.getPrimaryButtonAction().invoke();
+        assertCardMetrics(SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, powerAnomalyKeyNumber);
+        assertThat(mCardPreference.isVisible()).isFalse();
+    }
+
+    private void assertCardMetrics(final int action, final int powerAnomalyKeyNumber) {
         verify(mFeatureFactory.metricsFeatureProvider)
                 .action(
                         SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
-                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        action,
                         SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
                         BatteryTipsController.ANOMALY_KEY,
-                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
+                        powerAnomalyKeyNumber);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
index 4c64808..85fc6e2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
@@ -29,6 +29,7 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
+import android.os.Bundle;
 import android.os.LocaleList;
 import android.text.format.DateUtils;
 
@@ -57,6 +58,7 @@
     private static final String PREF_KEY = "pref_key";
     private static final String PREF_KEY2 = "pref_key2";
     private static final String PREF_SUMMARY = "fake preference summary";
+    private static final String KEY_SPINNER_POSITION = "spinner_position";
     private static final long TIME_LESS_THAN_HALF_MINUTE  = DateUtils.MINUTE_IN_MILLIS / 2  - 1;
 
     @Mock private InstrumentedPreferenceFragment mFragment;
@@ -149,6 +151,15 @@
     }
 
     @Test
+    public void onSaveInstanceState_returnExpectedResult() {
+        mBatteryUsageBreakdownController.mSpinnerPosition = 1;
+        final Bundle savedInstanceState = new Bundle();
+        mBatteryUsageBreakdownController.onSaveInstanceState(savedInstanceState);
+
+        assertThat(savedInstanceState.getInt(KEY_SPINNER_POSITION)).isEqualTo(1);
+    }
+
+    @Test
     public void addAllPreferences_addAllPreferences() {
         final String appLabel = "fake app label";
         doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
index af0cb91..63d44d0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiverTest.java
@@ -28,9 +28,9 @@
 import android.content.pm.PackageManager;
 import android.os.BatteryManager;
 import android.os.SystemClock;
+import android.os.UserManager;
 import android.text.format.DateUtils;
 
-import com.android.settings.testutils.BatteryTestUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
@@ -49,6 +49,7 @@
     private FakeFeatureFactory mFakeFeatureFactory;
 
     @Mock private PackageManager mPackageManager;
+    @Mock private UserManager mUserManager;
 
     @Before
     public void setUp() {
@@ -57,6 +58,7 @@
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mBatteryUsageBroadcastReceiver = new BatteryUsageBroadcastReceiver();
         doReturn(mPackageManager).when(mContext).getPackageManager();
+        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         DatabaseUtils.getSharedPreferences(mContext).edit().clear().apply();
     }
 
@@ -69,7 +71,17 @@
 
     @Test
     public void onReceive_workProfile_doNothing() {
-        BatteryTestUtils.setWorkProfile(mContext);
+        doReturn(true).when(mUserManager).isManagedProfile();
+
+        mBatteryUsageBroadcastReceiver.onReceive(
+                mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
+
+        assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
+    }
+
+    @Test
+    public void onReceive_privateProfile_doNothing() {
+        doReturn(true).when(mUserManager).isPrivateProfile();
 
         mBatteryUsageBroadcastReceiver.onReceive(
                 mContext, new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
index 950f828..ac711a4 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
@@ -19,12 +19,16 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertThrows;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
 import android.content.ContentResolver;
 import android.content.ContentValues;
 import android.content.Context;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
 
@@ -39,6 +43,8 @@
 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 java.time.Duration;
@@ -62,9 +68,14 @@
     private Context mContext;
     private BatteryUsageContentProvider mProvider;
 
+    @Mock
+    private UserManager mUserManager;
+
     @Before
     public void setUp() {
-        mContext = ApplicationProvider.getApplicationContext();
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
         mProvider = new BatteryUsageContentProvider();
         mProvider.attachInfo(mContext, /* info= */ null);
         BatteryTestUtils.setUpBatteryStateDatabase(mContext);
@@ -77,7 +88,13 @@
 
     @Test
     public void onCreate_withWorkProfileMode_returnsFalse() {
-        BatteryTestUtils.setWorkProfile(mContext);
+        doReturn(true).when(mUserManager).isManagedProfile();
+        assertThat(mProvider.onCreate()).isFalse();
+    }
+
+    @Test
+    public void onCreate_withPrivateProfileMode_returnsFalse() {
+        doReturn(true).when(mUserManager).isPrivateProfile();
         assertThat(mProvider.onCreate()).isFalse();
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
index 704637f..3cf6e61 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
@@ -18,6 +18,9 @@
 
 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 static org.robolectric.Shadows.shadowOf;
 
 import android.app.AlarmManager;
@@ -26,9 +29,11 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.fuelgauge.batteryusage.db.BatteryEventDao;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
 import com.android.settings.testutils.BatteryTestUtils;
@@ -37,6 +42,8 @@
 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.Shadows;
 import org.robolectric.shadows.ShadowAlarmManager;
@@ -50,23 +57,31 @@
 @RunWith(RobolectricTestRunner.class)
 public final class BootBroadcastReceiverTest {
     private Context mContext;
-    private BatteryStateDao mDao;
+    private BatteryStateDao mBatteryStateDao;
+    private BatteryEventDao mBatteryEventDao;
     private BootBroadcastReceiver mReceiver;
     private ShadowAlarmManager mShadowAlarmManager;
     private PeriodicJobManager mPeriodicJobManager;
 
+    @Mock
+    private UserManager mUserManager;
+
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
-        mContext = ApplicationProvider.getApplicationContext();
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
         mPeriodicJobManager = PeriodicJobManager.getInstance(mContext);
         mShadowAlarmManager = shadowOf(mContext.getSystemService(AlarmManager.class));
         mReceiver = new BootBroadcastReceiver();
 
         // Inserts fake data into database for testing.
         final BatteryStateDatabase database = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
-        mDao = database.batteryStateDao();
-        mDao.clearAll();
+        mBatteryStateDao = database.batteryStateDao();
+        mBatteryStateDao.clearAll();
+        mBatteryEventDao = database.batteryEventDao();
+        mBatteryEventDao.clearAll();
         clearSharedPreferences();
     }
 
@@ -78,7 +93,15 @@
 
     @Test
     public void onReceive_withWorkProfile_notRefreshesJob() {
-        BatteryTestUtils.setWorkProfile(mContext);
+        doReturn(true).when(mUserManager).isManagedProfile();
+        mReceiver.onReceive(mContext, new Intent(Intent.ACTION_BOOT_COMPLETED));
+
+        assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
+    }
+
+    @Test
+    public void onReceive_withPrivateProfile_notRefreshesJob() {
+        doReturn(true).when(mUserManager).isPrivateProfile();
         mReceiver.onReceive(mContext, new Intent(Intent.ACTION_BOOT_COMPLETED));
 
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
@@ -132,36 +155,32 @@
     @Test
     public void onReceive_withTimeChangedIntentSetEarlierTime_refreshesJob()
             throws InterruptedException {
-        BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, Clock.systemUTC().millis() + 60000, "com.android.systemui");
-        assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+        insertDataToTable(Clock.systemUTC().millis() + 60000);
 
         mReceiver.onReceive(mContext, new Intent(Intent.ACTION_TIME_CHANGED));
 
         TimeUnit.MILLISECONDS.sleep(1000);
-        assertThat(mDao.getAllAfter(0)).isEmpty();
+        assertThat(mBatteryStateDao.getAllAfter(0)).isEmpty();
+        assertThat(mBatteryEventDao.getAllAfterForLog(0)).isEmpty();
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNotNull();
     }
 
     @Test
     public void onReceive_withTimeChangedIntentSetLaterTime_clearNoDataAndRefreshesJob()
             throws InterruptedException {
-        BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, Clock.systemUTC().millis() - 60000, "com.android.systemui");
-        assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+        insertDataToTable(Clock.systemUTC().millis() - 60000);
 
         mReceiver.onReceive(mContext, new Intent(Intent.ACTION_TIME_CHANGED));
 
         TimeUnit.MILLISECONDS.sleep(1000);
-        assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+        assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+        assertThat(mBatteryEventDao.getAllAfterForLog(0)).hasSize(1);
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNotNull();
     }
 
     @Test
     public void onReceive_withTimeFormatChangedIntent_skipRefreshJob() throws InterruptedException {
-        BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, Clock.systemUTC().millis() + 60000, "com.android.systemui");
-        assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+        insertDataToTable(Clock.systemUTC().millis() + 60000);
 
         mReceiver.onReceive(
                 mContext,
@@ -171,21 +190,24 @@
                                 Intent.EXTRA_TIME_PREF_VALUE_USE_12_HOUR));
 
         TimeUnit.MILLISECONDS.sleep(1000);
-        assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+        assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+        assertThat(mBatteryEventDao.getAllAfterForLog(0)).hasSize(1);
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
     }
 
     @Test
-    public void onReceive_withTimeZoneChangedIntent_clearAllDataAndRefreshesJob()
+    public void onReceive_withTimeZoneChangedIntent_clearCacheDataAndRefreshesJob()
             throws InterruptedException {
-        BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, Clock.systemUTC().millis(), "com.android.systemui");
-        assertThat(mDao.getAllAfter(0).size()).isEqualTo(1);
+        insertDataToTable(Clock.systemUTC().millis());
+
+        assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
 
         mReceiver.onReceive(mContext, new Intent(Intent.ACTION_TIMEZONE_CHANGED));
 
         TimeUnit.MILLISECONDS.sleep(1000);
-        assertThat(mDao.getAllAfter(0)).isEmpty();
+        // Only clear cache data.
+        assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+        assertThat(mBatteryEventDao.getAllAfterForLog(0)).isEmpty();
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNotNull();
     }
 
@@ -202,4 +224,13 @@
     private void clearSharedPreferences() {
         DatabaseUtils.getSharedPreferences(mContext).edit().clear().apply();
     }
+
+    private void insertDataToTable(long recordTimeMs) {
+        BatteryTestUtils.insertDataToBatteryStateTable(
+                mContext, recordTimeMs, "com.android.systemui");
+        BatteryTestUtils.insertDataToBatteryEventTable(
+                mContext, recordTimeMs, BatteryEventType.EVEN_HOUR.getNumber(), 50);
+        assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(1);
+        assertThat(mBatteryEventDao.getAllAfterForLog(0)).hasSize(1);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
index a3b35be..a694b2f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
@@ -38,6 +38,8 @@
 import android.os.LocaleList;
 import android.os.UserHandle;
 
+import androidx.core.util.Pair;
+
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
@@ -384,8 +386,9 @@
                         /* cachedUsageConsumePower= */ 1.5);
         BatteryOptimizationModeCache optimizationModeCache =
                 new BatteryOptimizationModeCache(mContext);
-        optimizationModeCache.mBatteryOptimizeModeCacheMap.put(
-                (int) batteryDiffEntry.mUid, BatteryOptimizationMode.MODE_OPTIMIZED);
+        optimizationModeCache.mBatteryOptimizeModeCache.put(
+                (int) batteryDiffEntry.mUid,
+                Pair.create(BatteryOptimizationMode.MODE_OPTIMIZED, false));
 
         final BatteryUsageDiff batteryUsageDiff =
                 ConvertUtils.convertToBatteryUsageDiff(batteryDiffEntry, optimizationModeCache);
@@ -408,6 +411,7 @@
         assertThat(batteryUsageDiff.getKey()).isEqualTo("key");
         assertThat(batteryUsageDiff.getAppOptimizationMode())
                 .isEqualTo(BatteryOptimizationMode.MODE_OPTIMIZED);
+        assertThat(batteryUsageDiff.getIsAppOptimizationModeMutable()).isFalse();
         assertThat(batteryUsageDiff.hasPackageName()).isFalse();
         assertThat(batteryUsageDiff.hasLabel()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
index d89e61b..2fda277 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
@@ -47,7 +47,6 @@
 
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
-import com.android.settings.testutils.BatteryTestUtils;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -451,6 +450,26 @@
     }
 
     @Test
+    public void getHistoryMap_withPrivateProfile_returnExpectedMap()
+            throws PackageManager.NameNotFoundException {
+        doReturn("com.fake.package").when(mContext).getPackageName();
+        doReturn(mMockContext)
+                .when(mContext)
+                .createPackageContextAsUser("com.fake.package", /* flags= */ 0, UserHandle.OWNER);
+        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
+        doReturn(UserHandle.CURRENT).when(mContext).getUser();
+        doReturn(true).when(mUserManager).isPrivateProfile();
+        doReturn(UserHandle.SYSTEM).when(mUserManager).getProfileParent(UserHandle.CURRENT);
+
+        DatabaseUtils.sFakeSupplier = () -> getMatrixCursor();
+
+        final Map<Long, Map<String, BatteryHistEntry>> batteryHistMap =
+                DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0);
+
+        assertThat(batteryHistMap).isEmpty();
+    }
+
+    @Test
     public void removeUsageSource_hasNoData() {
         DatabaseUtils.removeUsageSource(mContext);
         assertThat(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
index d111de2..ea3c04c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiverTest.java
@@ -18,11 +18,15 @@
 
 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 static org.robolectric.Shadows.shadowOf;
 
 import android.app.AlarmManager;
 import android.content.Context;
 import android.content.Intent;
+import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
 
@@ -34,6 +38,8 @@
 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.shadows.ShadowAlarmManager;
 
@@ -53,12 +59,17 @@
     private PeriodicJobManager mPeriodicJobManager;
     private ShadowAlarmManager mShadowAlarmManager;
 
+    @Mock
+    private UserManager mUserManager;
+
     @Before
     public void setUp() {
-        mContext = ApplicationProvider.getApplicationContext();
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
         mPeriodicJobManager = PeriodicJobManager.getInstance(mContext);
         mShadowAlarmManager = shadowOf(mContext.getSystemService(AlarmManager.class));
         mReceiver = new PeriodicJobReceiver();
+        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
 
         // Inserts fake data into database for testing.
         final BatteryStateDatabase database = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
@@ -114,7 +125,14 @@
 
     @Test
     public void onReceive_inWorkProfileMode_notRefreshesJob() {
-        BatteryTestUtils.setWorkProfile(mContext);
+        doReturn(true).when(mUserManager).isManagedProfile();
+        mReceiver.onReceive(mContext, JOB_UPDATE_INTENT);
+        assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
+    }
+
+    @Test
+    public void onReceive_inPrivateProfileMode_notRefreshesJob() {
+        doReturn(true).when(mUserManager).isPrivateProfile();
         mReceiver.onReceive(mContext, JOB_UPDATE_INTENT);
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreferenceTest.java
deleted file mode 100644
index 8050984..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/SpinnerPreferenceTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-import android.widget.Spinner;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-
-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 final class SpinnerPreferenceTest {
-
-    private Context mContext;
-    private SpinnerPreference mSpinnerPreference;
-
-    @Mock private Spinner mMockSpinner;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mSpinnerPreference = new SpinnerPreference(mContext, /* attrs= */ null);
-    }
-
-    @Test
-    public void constructor_returnExpectedResult() {
-        assertThat(mSpinnerPreference.getLayoutResource()).isEqualTo(R.layout.preference_spinner);
-    }
-
-    @Test
-    public void initializeSpinner_returnExpectedResult() {
-        final String[] items = new String[] {"item1", "item2"};
-        mSpinnerPreference.initializeSpinner(items, null);
-        assertThat(mSpinnerPreference.mItems).isEqualTo(items);
-    }
-
-    @Test
-    public void onSaveInstanceState_returnExpectedResult() {
-        doReturn(1).when(mMockSpinner).getSelectedItemPosition();
-        mSpinnerPreference.mSpinner = mMockSpinner;
-        SpinnerPreference.SavedState savedState =
-                (SpinnerPreference.SavedState) mSpinnerPreference.onSaveInstanceState();
-        assertThat(savedState.getSpinnerPosition()).isEqualTo(1);
-    }
-
-    @Test
-    public void onRestoreInstanceState_returnExpectedResult() {
-        SpinnerPreference.SavedState savedState =
-                new SpinnerPreference.SavedState(Preference.BaseSavedState.EMPTY_STATE, 2);
-        mSpinnerPreference.onRestoreInstanceState(savedState);
-        assertThat(mSpinnerPreference.mSavedSpinnerPosition).isEqualTo(2);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java
index d998106..0dd18c5 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java
@@ -18,7 +18,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
 import android.content.Context;
+import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
 
@@ -27,6 +31,8 @@
 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 java.io.FileDescriptor;
@@ -46,11 +52,17 @@
     private StringWriter mStringWriter;
     private BugReportContentProvider mBugReportContentProvider;
 
+    @Mock
+    private UserManager mUserManager;
+
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mStringWriter = new StringWriter();
         mPrintWriter = new PrintWriter(mStringWriter);
-        mContext = ApplicationProvider.getApplicationContext();
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        doReturn(mContext).when(mContext).getApplicationContext();
+        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         mBugReportContentProvider = new BugReportContentProvider();
         mBugReportContentProvider.attachInfo(mContext, /* info= */ null);
         // Inserts fake data into database for testing.
@@ -77,7 +89,14 @@
 
     @Test
     public void dump_inWorkProfileMode_notDumpsBatteryUsageData() {
-        BatteryTestUtils.setWorkProfile(mContext);
+        doReturn(true).when(mUserManager).isManagedProfile();
+        mBugReportContentProvider.dump(FileDescriptor.out, mPrintWriter, new String[] {});
+        assertThat(mStringWriter.toString()).isEmpty();
+    }
+
+    @Test
+    public void dump_inPrivateProfileMode_notDumpsBatteryUsageData() {
+        doReturn(true).when(mUserManager).isPrivateProfile();
         mBugReportContentProvider.dump(FileDescriptor.out, mPrintWriter, new String[] {});
         assertThat(mStringWriter.toString()).isEmpty();
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
index d36f2b5..cb1f2d0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
@@ -175,4 +175,31 @@
         mBatteryEventDao.clearAll();
         assertThat(mBatteryEventDao.getAll()).isEmpty();
     }
+
+    @Test
+    public void clearEvenHourEvent_normalFlow_expectedBehavior() {
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(100L)
+                        .setBatteryEventType(1)
+                        .setBatteryLevel(66)
+                        .build());
+        mBatteryEventDao.insert(
+                BatteryEventEntity.newBuilder()
+                        .setTimestamp(200L)
+                        .setBatteryEventType(4)
+                        .setBatteryLevel(88)
+                        .build());
+        assertThat(mBatteryEventDao.getAll()).hasSize(2);
+
+        mBatteryEventDao.clearEvenHourEvent();
+
+        final List<BatteryEventEntity> events = mBatteryEventDao.getAll();
+        assertThat(events).hasSize(1);
+        assertThat(events.get(0).timestamp).isEqualTo(100L);
+        assertThat(events.get(0).batteryEventType).isEqualTo(1);
+        assertThat(events.get(0).batteryLevel).isEqualTo(66);
+        mBatteryEventDao.clearAll();
+        assertThat(mBatteryEventDao.getAll()).isEmpty();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerFillStylePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerFillStylePreferenceControllerTest.java
new file mode 100644
index 0000000..d8765f2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerFillStylePreferenceControllerTest.java
@@ -0,0 +1,113 @@
+/*
+ * 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 android.view.flags.Flags.enableVectorCursorA11ySettings;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.inputmethod.PointerFillStylePreferenceController.KEY_POINTER_FILL_STYLE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
+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.annotation.Config;
+
+/** Tests for {@link PointerFillStylePreferenceController} */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowSystemSettings.class,
+})
+public class PointerFillStylePreferenceControllerTest {
+    @Rule
+    public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock
+    PreferenceScreen mPreferenceScreen;
+    @Mock
+    LifecycleOwner mLifecycleOwner;
+
+    private Context mContext;
+    private PointerFillStylePreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mController = new PointerFillStylePreferenceController(mContext);
+    }
+
+    @Test
+    public void displayPreference_initializeDataStore() {
+        Preference fillPreference = new Preference(mContext);
+        fillPreference.setKey(KEY_POINTER_FILL_STYLE);
+        when(mPreferenceScreen.findPreference(eq(KEY_POINTER_FILL_STYLE))).thenReturn(
+                fillPreference);
+
+        mController.displayPreference(mPreferenceScreen);
+
+        assertNotNull(fillPreference.getPreferenceDataStore());
+    }
+
+    @Test
+    public void getAvailabilityStatus_flagEnabled() {
+        assumeTrue(enableVectorCursorA11ySettings());
+
+        assertEquals(mController.getAvailabilityStatus(), AVAILABLE);
+    }
+
+    @Test
+    public void onPause_logCurrentFillValue() {
+        int fillStyle = 1;
+        Settings.System.putIntForUser(mContext.getContentResolver(),
+                Settings.System.POINTER_FILL_STYLE, fillStyle, UserHandle.USER_CURRENT);
+
+        mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_PAUSE);
+
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                    any(), eq(SettingsEnums.ACTION_POINTER_ICON_FILL_STYLE_CHANGED),
+                    eq(fillStyle));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerScaleSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerScaleSeekBarControllerTest.java
new file mode 100644
index 0000000..18705c4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerScaleSeekBarControllerTest.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.inputmethod;
+
+import static android.view.flags.Flags.enableVectorCursorA11ySettings;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.widget.SeekBar;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+import com.android.settings.widget.LabeledSeekBarPreference;
+
+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;
+
+/** Tests for {@link PointerScaleSeekBarController} */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowSystemSettings.class,
+})
+public class PointerScaleSeekBarControllerTest {
+
+    private static final String PREFERENCE_KEY = "pointer_scale";
+
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock private PreferenceScreen mPreferenceScreen;
+    @Mock private LifecycleOwner mLifecycleOwner;
+
+    private Context mContext;
+    private LabeledSeekBarPreference mPreference;
+    private PointerScaleSeekBarController mController;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mPreference = new LabeledSeekBarPreference(mContext, null);
+        mController = new PointerScaleSeekBarController(mContext, PREFERENCE_KEY);
+    }
+
+    @Test
+    public void getAvailabilityStatus_flagEnabled() {
+        assumeTrue(enableVectorCursorA11ySettings());
+
+        assertEquals(mController.getAvailabilityStatus(), AVAILABLE);
+    }
+
+    @Test
+    public void onProgressChanged_changeListenerUpdatesSetting() {
+        when(mPreferenceScreen.findPreference(anyString())).thenReturn(mPreference);
+        mController.displayPreference(mPreferenceScreen);
+        SeekBar seekBar = mPreference.getSeekbar();
+        int sliderValue = 1;
+
+        mPreference.onProgressChanged(seekBar, sliderValue, false);
+
+        float expectedScale = 1.5f;
+        float currentScale = Settings.System.getFloatForUser(mContext.getContentResolver(),
+                Settings.System.POINTER_SCALE, -1, UserHandle.USER_CURRENT);
+        assertEquals(expectedScale, currentScale, /* delta= */ 0.001f);
+    }
+
+    @Test
+    public void onPause_logCurrentScaleValue() {
+        float scale = 1.5f;
+        Settings.System.putFloatForUser(mContext.getContentResolver(),
+                Settings.System.POINTER_SCALE, scale, UserHandle.USER_CURRENT);
+
+        mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_PAUSE);
+
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                    any(), eq(SettingsEnums.ACTION_POINTER_ICON_SCALE_CHANGED),
+                    eq(Float.toString(scale)));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java
new file mode 100644
index 0000000..9fffdc3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceControllerTest.java
@@ -0,0 +1,113 @@
+/*
+ * 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 android.view.flags.Flags.enableVectorCursorA11ySettings;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.inputmethod.PointerStrokeStylePreferenceController.KEY_POINTER_STROKE_STYLE;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assume.assumeTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.lifecycle.LifecycleEventObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
+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.annotation.Config;
+
+/** Tests for {@link PointerStrokeStylePreferenceController} */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowSystemSettings.class,
+})
+public class PointerStrokeStylePreferenceControllerTest {
+    @Rule
+    public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock
+    PreferenceScreen mPreferenceScreen;
+    @Mock
+    LifecycleOwner mLifecycleOwner;
+
+    private Context mContext;
+    private PointerStrokeStylePreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mController = new PointerStrokeStylePreferenceController(mContext);
+    }
+
+    @Test
+    public void displayPreference_initializeDataStore() {
+        Preference strokePreference = new Preference(mContext);
+        strokePreference.setKey(KEY_POINTER_STROKE_STYLE);
+        when(mPreferenceScreen.findPreference(eq(KEY_POINTER_STROKE_STYLE))).thenReturn(
+                strokePreference);
+
+        mController.displayPreference(mPreferenceScreen);
+
+        assertNotNull(strokePreference.getPreferenceDataStore());
+    }
+
+    @Test
+    public void getAvailabilityStatus_flagEnabled() {
+        assumeTrue(enableVectorCursorA11ySettings());
+
+        assertEquals(mController.getAvailabilityStatus(), AVAILABLE);
+    }
+
+    @Test
+    public void onPause_logCurrentStrokeValue() {
+        int strokeStyle = 1;
+        Settings.System.putIntForUser(mContext.getContentResolver(),
+                Settings.System.POINTER_STROKE_STYLE, strokeStyle, UserHandle.USER_CURRENT);
+
+        mController.onStateChanged(mLifecycleOwner, Lifecycle.Event.ON_PAUSE);
+
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                    any(), eq(SettingsEnums.ACTION_POINTER_ICON_STROKE_STYLE_CHANGED),
+                    eq(strokeStyle));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceTest.java b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceTest.java
new file mode 100644
index 0000000..33b8592
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/PointerStrokeStylePreferenceTest.java
@@ -0,0 +1,92 @@
+/*
+ * 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 android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_BLACK;
+import static android.view.PointerIcon.POINTER_ICON_VECTOR_STYLE_STROKE_WHITE;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.view.View;
+import android.widget.RadioButton;
+
+import androidx.preference.PreferenceDataStore;
+import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+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;
+
+/** Tests for {@link PointerStrokeStylePreference} */
+@RunWith(RobolectricTestRunner.class)
+public class PointerStrokeStylePreferenceTest {
+    @Rule
+    public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock
+    PreferenceDataStore mPreferenceDataStore;
+
+    private Context mContext;
+    private PreferenceViewHolder mViewHolder;
+    private PointerStrokeStylePreference mPreference;
+
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mPreference = new PointerStrokeStylePreference(mContext, null);
+    }
+
+    @Test
+    public void onBindViewHolder_getCurrentStrokeStyleFromDataStore() {
+        final View view = spy(View.inflate(mContext, mPreference.getLayoutResource(), null));
+        mViewHolder = PreferenceViewHolder.createInstanceForTests(view);
+        mPreference.setPreferenceDataStore(mPreferenceDataStore);
+
+        mPreference.onBindViewHolder(mViewHolder);
+
+        verify(mPreferenceDataStore).getInt(Settings.System.POINTER_STROKE_STYLE,
+                POINTER_ICON_VECTOR_STYLE_STROKE_WHITE);
+    }
+
+    @Test
+    public void setChecked_radioButtonUpdatesDataStore() {
+        final View view = spy(View.inflate(mContext, mPreference.getLayoutResource(), null));
+        mViewHolder = PreferenceViewHolder.createInstanceForTests(view);
+        mPreference.setPreferenceDataStore(mPreferenceDataStore);
+        RadioButton radioButton = (RadioButton) view.findViewById(R.id.stroke_style_black);
+        mPreference.onBindViewHolder(mViewHolder);
+
+        radioButton.setChecked(true);
+
+        verify(mPreferenceDataStore).getInt(Settings.System.POINTER_STROKE_STYLE,
+                POINTER_ICON_VECTOR_STYLE_STROKE_WHITE);
+        verify(mPreferenceDataStore).putInt(Settings.System.POINTER_STROKE_STYLE,
+                POINTER_ICON_VECTOR_STYLE_STROKE_BLACK);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
index fa73768..a7d4bf4 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
@@ -26,12 +26,14 @@
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.view.InputDevice;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowInputDevice;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -46,6 +48,7 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+        com.android.settings.testutils.shadow.ShadowInputDevice.class,
 })
 public class TrackpadBottomPreferenceControllerTest {
     @Rule
@@ -67,6 +70,12 @@
 
     @Test
     public void getAvailabilityStatus_expected() {
+        int deviceId = 1;
+        ShadowInputDevice.sDeviceIds = new int[]{deviceId};
+        InputDevice device = ShadowInputDevice.makeInputDevicebyIdWithSources(deviceId,
+                InputDevice.SOURCE_TOUCHPAD);
+        ShadowInputDevice.addDevice(deviceId, device);
+
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
     }
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
index f545c38..16b17f3 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
@@ -26,12 +26,14 @@
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.view.InputDevice;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowInputDevice;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -46,6 +48,7 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+        com.android.settings.testutils.shadow.ShadowInputDevice.class,
 })
 public class TrackpadReverseScrollingPreferenceControllerTest {
     @Rule
@@ -67,6 +70,12 @@
 
     @Test
     public void getAvailabilityStatus_expected() {
+        int deviceId = 1;
+        ShadowInputDevice.sDeviceIds = new int[]{deviceId};
+        InputDevice device = ShadowInputDevice.makeInputDevicebyIdWithSources(deviceId,
+                InputDevice.SOURCE_TOUCHPAD);
+        ShadowInputDevice.addDevice(deviceId, device);
+
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
     }
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadSettingsControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSettingsControllerTest.java
new file mode 100644
index 0000000..bb97d71
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSettingsControllerTest.java
@@ -0,0 +1,101 @@
+/*
+ * 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 android.view.flags.Flags.enableVectorCursorA11ySettings;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assume.assumeTrue;
+
+import android.content.Context;
+import android.view.InputDevice;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.shadow.ShadowInputDevice;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+/** Tests for {@link TrackpadSettingsController} */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+        ShadowInputDevice.class,
+})
+public class TrackpadSettingsControllerTest {
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
+
+    private static final String PREFERENCE_KEY = "trackpad_settings";
+
+    private Context mContext;
+    private TrackpadSettingsController mController;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mController = new TrackpadSettingsController(mContext, PREFERENCE_KEY);
+        ShadowInputDevice.reset();
+    }
+
+    @Test
+    public void getAvailabilityStatus_isTouchpadAvailable() {
+        int deviceId = 1;
+        ShadowInputDevice.sDeviceIds = new int[]{deviceId};
+        InputDevice device = ShadowInputDevice.makeInputDevicebyIdWithSources(deviceId,
+                InputDevice.SOURCE_TOUCHPAD);
+        ShadowInputDevice.addDevice(deviceId, device);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_isMouseAvailable() {
+        assumeTrue(enableVectorCursorA11ySettings());
+
+        int deviceId = 1;
+        ShadowInputDevice.sDeviceIds = new int[]{deviceId};
+        InputDevice device = ShadowInputDevice.makeInputDevicebyIdWithSources(deviceId,
+                InputDevice.SOURCE_MOUSE);
+        ShadowInputDevice.addDevice(deviceId, device);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_noMouseOrTouchpadUnavailable() {
+        int deviceId = 1;
+        ShadowInputDevice.sDeviceIds = new int[]{deviceId};
+        InputDevice device = ShadowInputDevice.makeInputDevicebyIdWithSources(deviceId,
+                InputDevice.SOURCE_UNKNOWN);
+        ShadowInputDevice.addDevice(deviceId, device);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
index 8e9d026..979f568 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
@@ -26,12 +26,14 @@
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
+import android.view.InputDevice;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowInputDevice;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -46,6 +48,7 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+        com.android.settings.testutils.shadow.ShadowInputDevice.class,
 })
 public class TrackpadTapToClickPreferenceControllerTest {
     @Rule
@@ -67,6 +70,12 @@
 
     @Test
     public void getAvailabilityStatus_expected() {
+        int deviceId = 1;
+        ShadowInputDevice.sDeviceIds = new int[]{deviceId};
+        InputDevice device = ShadowInputDevice.makeInputDevicebyIdWithSources(deviceId,
+                InputDevice.SOURCE_TOUCHPAD);
+        ShadowInputDevice.addDevice(deviceId, device);
+
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
     }
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index fb29e05..59021a7 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -51,6 +51,7 @@
 import android.os.PowerManager;
 import android.os.UserManager;
 import android.provider.Settings;
+import android.telephony.SubscriptionManager;
 import android.view.ContextMenu;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -319,7 +320,8 @@
         mNetworkProviderSettings.onCreate(Bundle.EMPTY);
 
         verify(mDataUsagePreference).setVisible(true);
-        verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/);
+        verify(mDataUsagePreference)
+                .setTemplate(any(), eq(SubscriptionManager.INVALID_SUBSCRIPTION_ID));
     }
 
     @Test
@@ -870,6 +872,17 @@
         verify(mWifiEntry, never()).getKey();
     }
 
+    @Test
+    public void launchNetworkDetailsFragment_wifiEntryIsNotSaved_ignoreWifiEntry() {
+        when(mWifiEntry.isSaved()).thenReturn(false);
+        LongPressWifiEntryPreference preference =
+                mNetworkProviderSettings.createLongPressWifiEntryPreference(mWifiEntry);
+
+        mNetworkProviderSettings.launchNetworkDetailsFragment(preference);
+
+        verify(mWifiEntry, never()).getKey();
+    }
+
     @Implements(PreferenceFragmentCompat.class)
     public static class ShadowPreferenceFragmentCompat {
 
diff --git a/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt b/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt
index 62fd10a..619d290 100644
--- a/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt
+++ b/tests/robotests/src/com/android/settings/network/SatelliteRepositoryTest.kt
@@ -91,7 +91,8 @@
 
     @Test
     fun requestIsSessionStarted_resultIsTrue() = runBlocking {
-        `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+        `when`(
+            mockSatelliteManager.registerForModemStateChanged(any(), any())
         ).thenAnswer { invocation ->
             val callback = invocation.getArgument<SatelliteModemStateCallback>(1)
             callback.onSatelliteModemStateChanged(SatelliteManager.SATELLITE_MODEM_STATE_CONNECTED)
@@ -105,7 +106,8 @@
 
     @Test
     fun requestIsSessionStarted_resultIsFalse() = runBlocking {
-        `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+        `when`(
+            mockSatelliteManager.registerForModemStateChanged(any(), any())
         ).thenAnswer { invocation ->
             val callback = invocation.getArgument<SatelliteModemStateCallback>(1)
             callback.onSatelliteModemStateChanged(SatelliteManager.SATELLITE_MODEM_STATE_OFF)
@@ -119,7 +121,8 @@
 
     @Test
     fun requestIsSessionStarted_registerFailed() = runBlocking {
-        `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+        `when`(
+            mockSatelliteManager.registerForModemStateChanged(any(), any())
         ).thenAnswer {
             SatelliteManager.SATELLITE_RESULT_ERROR
         }
@@ -130,6 +133,17 @@
     }
 
     @Test
+    fun requestIsSessionStarted_phoneCrash_registerFailed() = runBlocking {
+        `when`(
+            mockSatelliteManager.registerForModemStateChanged(any(), any())
+        ).thenThrow(IllegalStateException("Telephony is null"))
+
+        val result: ListenableFuture<Boolean> = repository.requestIsSessionStarted(mockExecutor)
+        assertFalse(result.get())
+        verify(mockSatelliteManager, never()).unregisterForModemStateChanged(any())
+    }
+
+    @Test
     fun requestIsSessionStarted_nullSatelliteManager() = runBlocking {
         `when`(spyContext.getSystemService(SatelliteManager::class.java)).thenReturn(null)
 
@@ -157,6 +171,17 @@
         assertFalse(result.get())
     }
 
+    @Test
+    fun requestIsEnabled_phoneCrash_resultIsFalse() = runBlocking {
+        `when`(
+            mockSatelliteManager.requestIsEnabled(any(), any())
+        ).thenThrow(IllegalStateException("Telephony is null"))
+
+        val result: ListenableFuture<Boolean> =
+            repository.requestIsEnabled(mockExecutor)
+        assertFalse(result.get())
+    }
+
 
     @Test
     fun requestIsEnabled_exceptionFailure() = runBlocking {
@@ -232,7 +257,8 @@
 
     @Test
     fun getIsSessionStartedFlow_registerFailed() = runBlocking {
-        `when`(mockSatelliteManager.registerForModemStateChanged(any(), any())
+        `when`(
+            mockSatelliteManager.registerForModemStateChanged(any(), any())
         ).thenAnswer {
             SatelliteManager.SATELLITE_RESULT_ERROR
         }
diff --git a/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java
index 8db4681..29592cf 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceControllerTest.java
@@ -85,7 +85,7 @@
                 return true;
             }
         };
-        mController.init(SUB_ID_1, null);
+        mController.init(SUB_ID_1);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
index 8445fe2..9cd69b4 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
@@ -19,8 +19,10 @@
 
 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.doReturn;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -37,6 +39,7 @@
 import androidx.slice.Slice;
 import androidx.slice.SliceMetadata;
 import androidx.slice.SliceProvider;
+import androidx.slice.builders.ListBuilder;
 import androidx.slice.core.SliceAction;
 import androidx.slice.widget.SliceLiveData;
 
@@ -68,6 +71,7 @@
 
     private Context mContext;
     private MobileDataSlice mMobileDataSlice;
+    private ListBuilder mListBuilder;
 
     @Before
     public void setUp() {
@@ -86,6 +90,8 @@
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
 
         mMobileDataSlice = spy(new MobileDataSlice(mContext));
+        mListBuilder = spy(mMobileDataSlice.createListBuilder());
+        doReturn(mListBuilder).when(mMobileDataSlice).createListBuilder();
     }
 
     @Test
@@ -175,25 +181,41 @@
     @Test
     public void isMobileDataAvailable_noSubscriptions_slicePrimaryActionIsEmpty() {
         when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>());
-        final Slice mobileData = mMobileDataSlice.getSlice();
 
-        assertThat(mobileData).isNull();
+        Slice mobileData = mMobileDataSlice.getSlice();
+
+        assertThat(mobileData).isNotNull();
+        verify(mListBuilder, never()).addRow(any());
     }
 
     @Test
     public void isMobileDataAvailable_nullSubscriptions_slicePrimaryActionIsEmpty() {
         when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(null);
-        final Slice mobileData = mMobileDataSlice.getSlice();
 
-        assertThat(mobileData).isNull();
+        Slice mobileData = mMobileDataSlice.getSlice();
+
+        assertThat(mobileData).isNotNull();
+        verify(mListBuilder, never()).addRow(any());
     }
 
     @Test
     public void airplaneModeEnabled_slicePrimaryActionIsEmpty() {
         doReturn(true).when(mMobileDataSlice).isAirplaneModeEnabled();
         doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
-        final Slice mobileData = mMobileDataSlice.getSlice();
 
-        assertThat(mobileData).isNull();
+        Slice mobileData = mMobileDataSlice.getSlice();
+
+        assertThat(mobileData).isNotNull();
+        verify(mListBuilder, never()).addRow(any());
+    }
+
+    @Test
+    public void getSlice_disallowConfigMobileNetworks_slicePrimaryActionIsEmpty() {
+        doReturn(false).when(mMobileDataSlice).isConfigMobileNetworksAllowed();
+
+        Slice mobileData = mMobileDataSlice.getSlice();
+
+        assertThat(mobileData).isNotNull();
+        verify(mListBuilder, never()).addRow(any());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 297815b..835985e 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -29,18 +29,14 @@
 import android.app.Activity;
 import android.app.usage.NetworkStatsManager;
 import android.content.Context;
-import android.content.res.Resources;
 import android.net.NetworkPolicyManager;
 import android.os.Bundle;
-import android.os.UserManager;
 import android.provider.Settings;
 import android.telephony.TelephonyManager;
 
 import androidx.fragment.app.FragmentActivity;
 
-import com.android.settings.R;
 import com.android.settings.datausage.DataUsageSummaryPreferenceController;
-import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -53,7 +49,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
@@ -73,7 +68,6 @@
     private FragmentActivity mActivity;
 
     private Context mContext;
-    private Resources mResources;
     private MobileNetworkSettings mFragment;
 
     @Before
@@ -81,10 +75,6 @@
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
 
-        mResources = spy(mContext.getResources());
-        when(mContext.getResources()).thenReturn(mResources);
-        when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true);
-
         when(mActivity.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
         when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
         when(mContext.getSystemService(NetworkStatsManager.class)).thenReturn(mNetworkStatsManager);
@@ -123,34 +113,4 @@
         mFragment.onActivityResult(REQUEST_CODE_DELETE_SUBSCRIPTION, Activity.RESULT_OK, null);
         verify(mActivity).finish();
     }
-
-    @Test
-    public void isPageSearchEnabled_adminUser_shouldReturnTrue() {
-        final UserManager userManager = mock(UserManager.class);
-        when(mContext.getSystemService(UserManager.class)).thenReturn(userManager);
-        when(userManager.isAdminUser()).thenReturn(true);
-        final BaseSearchIndexProvider provider =
-                (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
-
-        final Object obj = ReflectionHelpers.callInstanceMethod(provider, "isPageSearchEnabled",
-                ReflectionHelpers.ClassParameter.from(Context.class, mContext));
-        final boolean isEnabled = (Boolean) obj;
-
-        assertThat(isEnabled).isTrue();
-    }
-
-    @Test
-    public void isPageSearchEnabled_nonAdminUser_shouldReturnFalse() {
-        final UserManager userManager = mock(UserManager.class);
-        when(mContext.getSystemService(UserManager.class)).thenReturn(userManager);
-        when(userManager.isAdminUser()).thenReturn(false);
-        final BaseSearchIndexProvider provider =
-                (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
-
-        final Object obj = ReflectionHelpers.callInstanceMethod(provider, "isPageSearchEnabled",
-                ReflectionHelpers.ClassParameter.from(Context.class, mContext));
-        final boolean isEnabled = (Boolean) obj;
-
-        assertThat(isEnabled).isFalse();
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/app/BundleListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BundleListPreferenceControllerTest.java
new file mode 100644
index 0000000..8b8c77e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/app/BundleListPreferenceControllerTest.java
@@ -0,0 +1,160 @@
+/*
+ * 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.notification.app;
+
+import static android.app.NotificationChannel.NEWS_ID;
+import static android.app.NotificationChannel.PROMOTIONS_ID;
+import static android.app.NotificationChannel.RECS_ID;
+import static android.app.NotificationChannel.SOCIAL_MEDIA_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.app.NotificationChannel;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.Flags;
+
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.filters.SmallTest;
+
+import com.android.settings.notification.NotificationBackend;
+import com.android.settingslib.PrimarySwitchPreference;
+
+import com.google.common.collect.ImmutableMap;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+@SmallTest
+@EnableFlags(Flags.FLAG_NOTIFICATION_CLASSIFICATION)
+public class BundleListPreferenceControllerTest {
+    private Context mContext;
+    @Mock
+    private NotificationBackend mBackend;
+    private NotificationBackend.AppRow mAppRow;
+    private BundleListPreferenceController mController;
+    private PreferenceManager mPreferenceManager;
+    private PreferenceScreen mPreferenceScreen;
+    private PreferenceCategory mGroupList;
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+
+        mAppRow = new NotificationBackend.AppRow();
+        mAppRow.pkg = "pkg";
+        mAppRow.uid = 1111111;
+        NotificationBackend.NotificationsSentState
+                sentA = new NotificationBackend.NotificationsSentState();
+        sentA.avgSentDaily = 2;
+        sentA.avgSentWeekly = 10;
+        NotificationBackend.NotificationsSentState
+                sentB = new NotificationBackend.NotificationsSentState();
+        sentB.avgSentDaily = 0;
+        sentB.avgSentWeekly = 2;
+        mAppRow.sentByChannel = ImmutableMap.of(
+                PROMOTIONS_ID, sentA, NEWS_ID, sentA, SOCIAL_MEDIA_ID, sentB, RECS_ID, sentB);
+        mController = new BundleListPreferenceController(mContext, mBackend);
+        mController.onResume(mAppRow, null, null, null, null, null, null);
+        mPreferenceManager = new PreferenceManager(mContext);
+        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+        mGroupList = new PreferenceCategory(mContext);
+        mPreferenceScreen.addPreference(mGroupList);
+
+        when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID)).thenReturn(
+                new NotificationChannel(PROMOTIONS_ID, PROMOTIONS_ID, 2));
+        when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, NEWS_ID)).thenReturn(
+                new NotificationChannel(NEWS_ID, NEWS_ID, 2));
+        when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, SOCIAL_MEDIA_ID)).thenReturn(
+                new NotificationChannel(SOCIAL_MEDIA_ID, SOCIAL_MEDIA_ID, 2));
+        when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, RECS_ID)).thenReturn(
+                new NotificationChannel(RECS_ID, RECS_ID, 2));
+    }
+
+    @Test
+    public void isAvailable_null() {
+        mController.onResume(null, null, null, null, null, null, null);
+        assertThat(mController.isAvailable()).isFalse();
+        mAppRow.banned = true;
+    }
+
+    @Test
+    public void isAvailable_banned() {
+        mAppRow.banned = true;
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_locked() {
+        mAppRow.lockedImportance = true;
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_system() {
+        mAppRow.systemApp = true;
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void updateState() {
+        mController.updateState(mGroupList);
+        assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
+        assertThat(mGroupList.findPreference(PROMOTIONS_ID).getTitle()).isEqualTo(PROMOTIONS_ID);
+        assertThat(mGroupList.findPreference(NEWS_ID).getTitle()).isEqualTo(NEWS_ID);
+        assertThat(mGroupList.findPreference(SOCIAL_MEDIA_ID).getTitle())
+                .isEqualTo(SOCIAL_MEDIA_ID);
+        assertThat(mGroupList.findPreference(RECS_ID).getTitle()).isEqualTo(RECS_ID);
+    }
+
+    @Test
+    public void updateState_updateChildren() {
+        mController.updateState(mGroupList);
+        assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
+
+        when(mBackend.getChannel(mAppRow.pkg, mAppRow.uid, PROMOTIONS_ID)).thenReturn(
+                new NotificationChannel(PROMOTIONS_ID, PROMOTIONS_ID, 2));
+
+        mController.updateState(mGroupList);
+        assertThat(mGroupList.getPreferenceCount()).isEqualTo(4);
+
+        assertThat(((PrimarySwitchPreference) mGroupList.findPreference(NEWS_ID)).isChecked())
+                .isEqualTo(false);
+        assertThat(((PrimarySwitchPreference) mGroupList.findPreference(NEWS_ID)).isChecked())
+                .isEqualTo(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/app/DeletedChannelsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/DeletedChannelsPreferenceControllerTest.java
index 5c9de7c..267b8d7 100644
--- a/tests/robotests/src/com/android/settings/notification/app/DeletedChannelsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/DeletedChannelsPreferenceControllerTest.java
@@ -31,12 +31,17 @@
 import android.app.NotificationManager;
 import android.content.Context;
 import android.os.UserManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.preference.Preference;
 
+import com.android.server.notification.Flags;
 import com.android.settings.notification.NotificationBackend;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -60,6 +65,8 @@
     private UserManager mUm;
 
     private DeletedChannelsPreferenceController mController;
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Before
     public void setUp() {
@@ -109,6 +116,16 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_NOTIFICATION_HIDE_UNUSED_CHANNELS)
+    public void isAvailable_notIfFlagEnabled() {
+        when(mBackend.getDeletedChannelCount(any(), anyInt())).thenReturn(1);
+        mController.onResume(
+                new NotificationBackend.AppRow(), null, null, null, null, null, new ArrayList<>());
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_NOTIFICATION_HIDE_UNUSED_CHANNELS)
     public void isAvailable_appScreen() {
         when(mBackend.getDeletedChannelCount(any(), anyInt())).thenReturn(1);
         mController.onResume(
diff --git a/tests/robotests/src/com/android/settings/notification/app/ShowMorePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ShowMorePreferenceControllerTest.java
new file mode 100644
index 0000000..611c80a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/app/ShowMorePreferenceControllerTest.java
@@ -0,0 +1,113 @@
+/*
+ * 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.app;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertFalse;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import android.app.NotificationChannelGroup;
+import android.app.NotificationManager;
+import android.content.Context;
+import android.os.UserManager;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.preference.Preference;
+
+import com.android.server.notification.Flags;
+import com.android.settings.notification.NotificationBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+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 org.robolectric.shadows.ShadowApplication;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_NOTIFICATION_HIDE_UNUSED_CHANNELS)
+public class ShowMorePreferenceControllerTest {
+
+    private Context mContext;
+    @Mock
+    private NotificationBackend mBackend;
+    @Mock
+    private NotificationManager mNm;
+    @Mock
+    private UserManager mUm;
+    @Mock
+    private NotificationSettings.DependentFieldListener mDependentFieldListener;
+
+    private ShowMorePreferenceController mController;
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowApplication = ShadowApplication.getInstance();
+        shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
+        shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
+        mContext = RuntimeEnvironment.application;
+        mController = new ShowMorePreferenceController(mContext, mDependentFieldListener, mBackend);
+    }
+
+    @Test
+    public void noCrashIfNoOnResume() {
+        mController.isAvailable();
+        mController.updateState(mock(Preference.class));
+    }
+
+    @Test
+    public void isAvailable_notIfAppBlocked() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.banned = true;
+        appRow.showAllChannels = false;
+        mController.onResume(appRow, null, null, null, null, null, null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void isAvailable_notIfShowingAll() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        mController.onResume(appRow, null, mock(NotificationChannelGroup.class), null, null, null,
+                null);
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void updateState() {
+        NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+        appRow.banned = false;
+        appRow.showAllChannels = false;
+        mController.onResume(appRow, null, null, null, null, null, null);
+
+        Preference pref = new Preference(mContext);
+        mController.updateState(pref);
+
+        pref.performClick();
+
+        verify(mDependentFieldListener).onFieldValueChanged();
+        assertThat(appRow.showAllChannels).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/CharSequenceTruth.java b/tests/robotests/src/com/android/settings/notification/modes/CharSequenceTruth.java
new file mode 100644
index 0000000..94b932f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/CharSequenceTruth.java
@@ -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.modes;
+
+import androidx.annotation.Nullable;
+
+import com.google.common.truth.StringSubject;
+import com.google.common.truth.Truth;
+
+class CharSequenceTruth {
+    /**
+     * Shortcut version of {@link Truth#assertThat(String)} suitable for {@link CharSequence}.
+     * {@link CharSequence} doesn't necessarily provide a good {@code equals()} implementation;
+     * however we don't care about formatting in most cases, and we want to assert on the resulting
+     * string (without needing to worry that {@code assertThat(x.getText().toString())} can
+     * throw if the text is null).
+     */
+    static StringSubject assertThat(@Nullable CharSequence actual) {
+        return Truth.assertThat((String) (actual != null ? actual.toString() : null));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/CircularIconSetTest.java b/tests/robotests/src/com/android/settings/notification/modes/CircularIconSetTest.java
new file mode 100644
index 0000000..826c9df
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/CircularIconSetTest.java
@@ -0,0 +1,207 @@
+/*
+ * 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.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+
+import com.google.common.base.Equivalence;
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
+
+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 java.util.List;
+import java.util.function.Function;
+
+@RunWith(RobolectricTestRunner.class)
+public class CircularIconSetTest {
+
+    @Mock private Function<Integer, Drawable> mDrawableLoader;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+        when(mDrawableLoader.apply(anyInt())).thenReturn(new ColorDrawable(Color.BLACK));
+    }
+
+    @Test
+    public void hasSameItemsAs_sameItems_true() {
+        CircularIconSet<Integer> items1 = new CircularIconSet<>(ImmutableList.of(1, 2),
+                num -> new ColorDrawable(Color.BLUE));
+        CircularIconSet<Integer> items2 = new CircularIconSet<>(ImmutableList.of(1, 2),
+                num -> new ColorDrawable(Color.GREEN));
+
+        assertThat(items1.hasSameItemsAs(items2, null)).isTrue();
+    }
+
+    @Test
+    public void hasSameItemsAs_differentTypes_false() {
+        CircularIconSet<Integer> items1 = new CircularIconSet<>(ImmutableList.of(1, 2),
+                num -> new ColorDrawable(Color.BLUE));
+        CircularIconSet<String> items2 = new CircularIconSet<>(ImmutableList.of("a", "b"),
+                str -> new ColorDrawable(Color.GREEN));
+
+        assertThat(items1.hasSameItemsAs(items2, null)).isFalse();
+    }
+
+    @Test
+    public void hasSameItemsAs_differentItems_false() {
+        CircularIconSet<String> items1 = new CircularIconSet<>(ImmutableList.of("a", "b"),
+                str -> new ColorDrawable(Color.GREEN));
+        CircularIconSet<String> items2 = new CircularIconSet<>(ImmutableList.of("a", "b", "c"),
+                str -> new ColorDrawable(Color.GREEN));
+
+        assertThat(items1.hasSameItemsAs(items2, null)).isFalse();
+    }
+
+    private static class WrapperWithoutEquals<T> {
+        private final T mValue;
+        private WrapperWithoutEquals(T value) {
+            mValue = value;
+        }
+    }
+
+    @Test
+    public void hasSameItemsAs_withEquivalence_trueIfEquivalentItems() {
+        CircularIconSet<WrapperWithoutEquals<Integer>> items1 = new CircularIconSet<>(
+                ImmutableList.of(
+                        new WrapperWithoutEquals<>(1),
+                        new WrapperWithoutEquals<>(2)),
+                unused -> new ColorDrawable(Color.BLACK));
+        CircularIconSet<WrapperWithoutEquals<Integer>> items2 = new CircularIconSet<>(
+                ImmutableList.of(
+                        new WrapperWithoutEquals<>(1),
+                        new WrapperWithoutEquals<>(2)),
+                unused -> new ColorDrawable(Color.BLACK));
+        CircularIconSet<WrapperWithoutEquals<Integer>> items3 = new CircularIconSet<>(
+                ImmutableList.of(
+                        new WrapperWithoutEquals<>(2),
+                        new WrapperWithoutEquals<>(3)),
+                unused -> new ColorDrawable(Color.BLACK));
+        // Needs special equivalence, equals is not enough.
+        assertThat(items1.hasSameItemsAs(items2, null)).isFalse();
+
+        Equivalence<WrapperWithoutEquals<Integer>> equivalence = new Equivalence<>() {
+            @Override
+            protected boolean doEquivalent(WrapperWithoutEquals<Integer> a,
+                    WrapperWithoutEquals<Integer> b) {
+                return a.mValue.equals(b.mValue);
+            }
+
+            @Override
+            protected int doHash(WrapperWithoutEquals<Integer> t) {
+                return t.mValue;
+            }
+        };
+
+        assertThat(items1.hasSameItemsAs(items2, equivalence)).isTrue();
+        assertThat(items1.hasSameItemsAs(items3, equivalence)).isFalse();
+    }
+
+    @Test
+    public void hasSameItemsAs_withEquivalenceButDifferentTypes_falseAndNoClassCastExceptions() {
+        CircularIconSet<Integer> items1 = new CircularIconSet<>(ImmutableList.of(1, 2),
+                num -> new ColorDrawable(Color.BLUE));
+        CircularIconSet<String> items2 = new CircularIconSet<>(ImmutableList.of("one", "two"),
+                num -> new ColorDrawable(Color.GREEN));
+
+        Equivalence<String> stringEquivalence = new Equivalence<String>() {
+            @Override
+            protected boolean doEquivalent(String a, String b) {
+                return a.equals(b);
+            }
+
+            @Override
+            protected int doHash(String t) {
+                return t.hashCode();
+            }
+        };
+        Equivalence<Integer> integerEquivalence = new Equivalence<Integer>() {
+            @Override
+            protected boolean doEquivalent(Integer a, Integer b) {
+                return a.equals(b);
+            }
+
+            @Override
+            protected int doHash(Integer t) {
+                return t.hashCode();
+            }
+        };
+
+        assertThat(items1.hasSameItemsAs(items2, stringEquivalence)).isFalse();
+        assertThat(items2.hasSameItemsAs(items1, integerEquivalence)).isFalse();
+    }
+
+    @Test
+    public void getIcons_loadsAllIcons() {
+        CircularIconSet<Integer> set = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+                mDrawableLoader);
+
+        List<ListenableFuture<Drawable>> iconFutures = set.getIcons();
+
+        assertThat(iconFutures).hasSize(3);
+        verify(mDrawableLoader).apply(1);
+        verify(mDrawableLoader).apply(2);
+        verify(mDrawableLoader).apply(3);
+    }
+
+    @Test
+    public void getIcons_loadsRequestedIcons() {
+        CircularIconSet<Integer> set = new CircularIconSet<>(ImmutableList.of(1, 2, 3, 4, 5),
+                mDrawableLoader);
+
+        List<ListenableFuture<Drawable>> iconFutures = set.getIcons(2);
+
+        assertThat(iconFutures).hasSize(2);
+        verify(mDrawableLoader).apply(1);
+        verify(mDrawableLoader).apply(2);
+        verifyNoMoreInteractions(mDrawableLoader);
+    }
+
+    @Test
+    public void getIcons_cachesIcons() {
+        CircularIconSet<Integer> set = new CircularIconSet<>(ImmutableList.of(1, 2, 3, 4, 5),
+                mDrawableLoader);
+
+        List<ListenableFuture<Drawable>> iconFutures = set.getIcons(2);
+        assertThat(iconFutures).hasSize(2);
+        verify(mDrawableLoader).apply(1);
+        verify(mDrawableLoader).apply(2);
+        verifyNoMoreInteractions(mDrawableLoader);
+
+        List<ListenableFuture<Drawable>> iconFuturesAgain = set.getIcons(3);
+        assertThat(iconFuturesAgain).hasSize(3);
+        verify(mDrawableLoader).apply(3);
+        verifyNoMoreInteractions(mDrawableLoader);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/CircularIconsPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/modes/CircularIconsPreferenceTest.java
new file mode 100644
index 0000000..5544832
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/CircularIconsPreferenceTest.java
@@ -0,0 +1,369 @@
+/*
+ * 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.modes;
+
+import static android.view.View.MeasureSpec.makeMeasureSpec;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.IntStream;
+
+@RunWith(RobolectricTestRunner.class)
+public class CircularIconsPreferenceTest {
+
+    private static final int VIEW_WIDTH = 800;
+
+    private Context mContext;
+    private CircularIconsPreference mPreference;
+    private CircularIconsView mContainer;
+
+    private int mOneIconWidth;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+        mPreference = new TestableCircularIconsPreference(mContext);
+        // Tests should call bindAndLayoutViewHolder() so that icons can be added.
+
+        Resources res = mContext.getResources();
+        mOneIconWidth = res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_diameter)
+                + res.getDimensionPixelSize(R.dimen.zen_mode_circular_icon_margin_between);
+    }
+
+    private void bindAndLayoutViewHolder(int viewWidth) {
+        bindViewHolder();
+        layoutViewHolder(viewWidth);
+    }
+
+    private void bindViewHolder() {
+        View preferenceView = LayoutInflater.from(mContext).inflate(mPreference.getLayoutResource(),
+                null);
+        mContainer = checkNotNull(preferenceView.findViewById(R.id.circles_container));
+        mContainer.setUiExecutor(MoreExecutors.directExecutor());
+        PreferenceViewHolder viewHolder = PreferenceViewHolder.createInstanceForTests(
+                preferenceView);
+        mPreference.onBindViewHolder(viewHolder);
+    }
+
+    private void layoutViewHolder(int viewWidth) {
+        checkState(mContainer != null, "Call bindViewHolder() first!");
+        mContainer.measure(makeMeasureSpec(viewWidth, View.MeasureSpec.EXACTLY),
+                makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+        mContainer.layout(0, 0, viewWidth, 1000);
+    }
+
+    @Test
+    public void setIcons_loadsIcons() {
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+                ColorDrawable::new);
+
+        bindAndLayoutViewHolder(VIEW_WIDTH);
+        mPreference.setIcons(iconSet);
+
+        assertThat(getDrawables(mContainer)).hasSize(2);
+        assertThat(((ColorDrawable) getDrawables(mContainer).get(0)).getColor()).isEqualTo(1);
+        assertThat(((ColorDrawable) getDrawables(mContainer).get(1)).getColor()).isEqualTo(2);
+        assertThat(getPlusText(mContainer)).isNull();
+    }
+
+    @Test
+    public void setIcons_noIcons_hidesRow() {
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(),
+                ColorDrawable::new);
+
+        bindAndLayoutViewHolder(VIEW_WIDTH);
+        mPreference.setIcons(iconSet);
+
+        assertThat(mContainer.getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void setIcons_exactlyMaxIcons_loadsAllIcons() throws Exception {
+        int width = 300;
+        int fittingCircles = width / mOneIconWidth;
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(
+                IntStream.range(0, fittingCircles).boxed().toList(),
+                ColorDrawable::new);
+
+        bindAndLayoutViewHolder(width);
+        mPreference.setIcons(iconSet);
+
+        assertThat(getDrawables(mContainer)).hasSize(fittingCircles);
+        assertThat(getDrawables(mContainer)).containsExactlyElementsIn(
+                Futures.allAsList(iconSet.getIcons()).get()).inOrder();
+        assertThat(getPlusText(mContainer)).isNull();
+    }
+
+    @Test
+    public void setIcons_tooManyIcons_loadsFirstNAndPlusIcon() throws Exception {
+        int width = 300;
+        int fittingCircles = width / mOneIconWidth;
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(
+                IntStream.range(0, fittingCircles + 5).boxed().toList(),
+                ColorDrawable::new);
+
+        bindAndLayoutViewHolder(width);
+        mPreference.setIcons(iconSet);
+
+        // N-1 icons, plus (+6) text.
+        assertThat(getDrawables(mContainer)).hasSize(fittingCircles - 1);
+        assertThat(getDrawables(mContainer)).containsExactlyElementsIn(
+                        Futures.allAsList(iconSet.getIcons(fittingCircles - 1)).get())
+                .inOrder();
+        assertThat(getPlusText(mContainer)).isEqualTo("+6");
+    }
+
+    @Test
+    public void setIcons_teenyTinySpace_showsPlusIcon_noCrash() {
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+                ColorDrawable::new);
+
+        bindAndLayoutViewHolder(1);
+        mPreference.setIcons(iconSet);
+
+        assertThat(getDrawables(mContainer)).isEmpty();
+        assertThat(getPlusText(mContainer)).isEqualTo("+2");
+    }
+
+    @Test
+    public void setIcons_beforeBind_loadsIconsOnBindAndMeasure() {
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+                ColorDrawable::new);
+
+        mPreference.setIcons(iconSet);
+        assertThat(mContainer).isNull(); // Hold...
+
+        bindViewHolder();
+        assertThat(getDrawables(mContainer)).hasSize(0); // Hooooold...
+
+        layoutViewHolder(VIEW_WIDTH);
+        assertThat(getDrawables(mContainer)).hasSize(3);
+    }
+
+    @Test
+    public void setIcons_beforeMeasure_loadsIconsOnMeasure() {
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+                ColorDrawable::new);
+        bindViewHolder();
+
+        mPreference.setIcons(iconSet);
+        assertThat(getDrawables(mContainer)).hasSize(0);
+
+        layoutViewHolder(VIEW_WIDTH);
+        assertThat(getDrawables(mContainer)).hasSize(3);
+    }
+
+    @Test
+    public void setIcons_calledAgain_reloadsIcons() {
+        CircularIconSet<Integer> threeIcons = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+                ColorDrawable::new);
+        CircularIconSet<Integer> twoIcons = new CircularIconSet<>(ImmutableList.of(1, 2),
+                ColorDrawable::new);
+        CircularIconSet<Integer> fourIcons = new CircularIconSet<>(ImmutableList.of(1, 2, 3, 4),
+                ColorDrawable::new);
+        bindAndLayoutViewHolder(VIEW_WIDTH);
+
+        mPreference.setIcons(threeIcons);
+        assertThat(getDrawables(mContainer)).hasSize(3);
+
+        mPreference.setIcons(twoIcons);
+        assertThat(getDrawables(mContainer)).hasSize(2);
+
+        mPreference.setIcons(fourIcons);
+        assertThat(getDrawables(mContainer)).hasSize(4);
+    }
+
+    @Test
+    public void setIcons_sameSet_doesNotReloadIcons() {
+        CircularIconSet<Integer> one = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+                ColorDrawable::new);
+        CircularIconSet<Integer> same = Mockito.spy(new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+                ColorDrawable::new));
+        when(same.getIcons()).thenThrow(new RuntimeException("Shouldn't be called!"));
+
+        bindAndLayoutViewHolder(VIEW_WIDTH);
+
+        mPreference.setIcons(one);
+
+        mPreference.setIcons(same); // if no exception, wasn't called.
+    }
+
+    @Test
+    public void sizeChanged_reloadsIconsIfDifferentFit() {
+        CircularIconSet<Integer> largeIconSet = new CircularIconSet<>(
+                IntStream.range(0, 100).boxed().toList(),
+                ColorDrawable::new);
+        mPreference.setIcons(largeIconSet);
+
+        // Base space -> some icons
+        int firstWidth = 600;
+        int firstFittingCircles = firstWidth / mOneIconWidth;
+        bindAndLayoutViewHolder(firstWidth);
+
+        assertThat(getDrawables(mContainer)).hasSize(firstFittingCircles - 1);
+        assertThat(getPlusText(mContainer)).isEqualTo("+" + (100 - (firstFittingCircles - 1)));
+
+        // More space -> more icons
+        int secondWidth = 1000;
+        int secondFittingCircles = secondWidth / mOneIconWidth;
+        assertThat(secondFittingCircles).isGreaterThan(firstFittingCircles);
+        bindAndLayoutViewHolder(secondWidth);
+
+        assertThat(getDrawables(mContainer)).hasSize(secondFittingCircles - 1);
+        assertThat(getPlusText(mContainer)).isEqualTo("+" + (100 - (secondFittingCircles - 1)));
+
+        // Less space -> fewer icons
+        int thirdWidth = 600;
+        int thirdFittingCircles = thirdWidth / mOneIconWidth;
+        bindAndLayoutViewHolder(thirdWidth);
+
+        assertThat(getDrawables(mContainer)).hasSize(thirdFittingCircles - 1);
+        assertThat(getPlusText(mContainer)).isEqualTo("+" + (100 - (thirdFittingCircles - 1)));
+    }
+
+
+    @Test
+    public void onBindViewHolder_withDifferentView_reloadsIconsCorrectly() {
+        View preferenceViewOne = LayoutInflater.from(mContext).inflate(
+                mPreference.getLayoutResource(), null);
+        CircularIconsView containerOne = preferenceViewOne.findViewById(R.id.circles_container);
+        containerOne.setUiExecutor(MoreExecutors.directExecutor());
+        PreferenceViewHolder viewHolderOne = PreferenceViewHolder.createInstanceForTests(
+                preferenceViewOne);
+        containerOne.measure(makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+                makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+
+        View preferenceViewTwo = LayoutInflater.from(mContext).inflate(
+                mPreference.getLayoutResource(), null);
+        CircularIconsView containerTwo = preferenceViewTwo.findViewById(R.id.circles_container);
+        containerTwo.setUiExecutor(MoreExecutors.directExecutor());
+        PreferenceViewHolder viewHolderTwo = PreferenceViewHolder.createInstanceForTests(
+                preferenceViewTwo);
+        containerTwo.measure(makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+                makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+
+        CircularIconSet<Integer> iconSetOne = new CircularIconSet<>(ImmutableList.of(1, 2, 3),
+                ColorDrawable::new);
+        CircularIconSet<Integer> iconSetTwo = new CircularIconSet<>(ImmutableList.of(1, 2),
+                ColorDrawable::new);
+
+        mPreference.onBindViewHolder(viewHolderOne);
+        mPreference.setIcons(iconSetOne);
+        assertThat(getDrawables(containerOne)).hasSize(3);
+
+        mPreference.onBindViewHolder(viewHolderTwo);
+        assertThat(getDrawables(containerTwo)).hasSize(3);
+
+        mPreference.setIcons(iconSetTwo);
+
+        // The second view is updated and the first view is unaffected.
+        assertThat(getDrawables(containerTwo)).hasSize(2);
+        assertThat(getDrawables(containerOne)).hasSize(3);
+    }
+
+    @Test
+    public void setEnabled_afterSetIcons_showsEnabledOrDisabledImages() {
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+                ColorDrawable::new);
+        bindAndLayoutViewHolder(VIEW_WIDTH);
+        mPreference.setIcons(iconSet);
+        assertThat(getViews(mContainer)).hasSize(2);
+
+        mPreference.setEnabled(false);
+        assertThat(getViews(mContainer).get(0).getAlpha()).isLessThan(1f);
+
+        mPreference.setEnabled(true);
+        assertThat(getViews(mContainer).get(0).getAlpha()).isEqualTo(1f);
+    }
+
+    @Test
+    public void setEnabled_beforeSetIcons_showsEnabledOrDisabledImages() {
+        CircularIconSet<Integer> iconSet = new CircularIconSet<>(ImmutableList.of(1, 2),
+                ColorDrawable::new);
+
+        mPreference.setEnabled(false);
+        bindAndLayoutViewHolder(VIEW_WIDTH);
+        mPreference.setIcons(iconSet);
+
+        assertThat(getViews(mContainer)).hasSize(2);
+        assertThat(getViews(mContainer).get(0).getAlpha()).isLessThan(1f);
+    }
+
+    private static List<View> getViews(ViewGroup container) {
+        ArrayList<View> views = new ArrayList<>();
+        for (int i = 0; i < container.getChildCount(); i++) {
+            views.add(container.getChildAt(i));
+        }
+        return views;
+    }
+
+    private static List<Drawable> getDrawables(ViewGroup container) {
+        ArrayList<Drawable> drawables = new ArrayList<>();
+        for (int i = 0; i < container.getChildCount(); i++) {
+            if (container.getChildAt(i) instanceof ImageView imageView) {
+                drawables.add(imageView.getDrawable());
+
+            }
+        }
+        return drawables;
+    }
+
+    @Nullable
+    private static String getPlusText(ViewGroup container) {
+        View lastChild = container.getChildAt(container.getChildCount() - 1);
+        if (lastChild instanceof TextView tv) {
+            return tv.getText() != null ? tv.getText().toString() : null;
+        } else {
+            return null;
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
new file mode 100644
index 0000000..5a40c7f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ConfigurationActivityHelperTest.java
@@ -0,0 +1,191 @@
+/*
+ * 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.modes;
+
+import static android.app.NotificationManager.EXTRA_AUTOMATIC_RULE_ID;
+import static android.service.notification.ConditionProviderService.EXTRA_RULE_ID;
+
+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.when;
+
+import android.app.Flags;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ComponentInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.ConditionProviderService;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Function;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ConfigurationActivityHelperTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+    private ConfigurationActivityHelper mHelper;
+
+    @Mock private PackageManager mPm;
+    @Mock private Function<ComponentName, ComponentInfo> mApprovedServiceFinder;
+
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.getApplication();
+        mHelper = new ConfigurationActivityHelper(mPm);
+
+        when(mPm.queryIntentActivities(any(), anyInt())).thenReturn(List.of(new ResolveInfo()));
+    }
+
+    @Test
+    public void getConfigurationActivityIntentForMode_configActivity() throws Exception {
+        ZenMode mode = new TestModeBuilder()
+                .setId("id")
+                .setPackage(mContext.getPackageName())
+                .setConfigurationActivity(new ComponentName(mContext.getPackageName(), "test"))
+                .build();
+        when(mPm.getPackageUid(mContext.getPackageName(), 0)).thenReturn(1);
+
+        Intent res = mHelper.getConfigurationActivityIntentForMode(mode, mApprovedServiceFinder);
+
+        assertThat(res).isNotNull();
+        assertThat(res.getStringExtra(EXTRA_RULE_ID)).isEqualTo("id");
+        assertThat(res.getStringExtra(EXTRA_AUTOMATIC_RULE_ID)).isEqualTo("id");
+        assertThat(res.getComponent()).isEqualTo(
+                new ComponentName(mContext.getPackageName(), "test"));
+    }
+
+    @Test
+    public void getConfigurationActivityIntentForMode_configActivityNotResolvable_returnsNull()
+            throws Exception {
+        ZenMode mode = new TestModeBuilder()
+                .setId("id")
+                .setPackage(mContext.getPackageName())
+                .setConfigurationActivity(new ComponentName(mContext.getPackageName(), "test"))
+                .build();
+        when(mPm.getPackageUid(mContext.getPackageName(), 0)).thenReturn(1);
+        when(mPm.queryIntentActivities(any(), anyInt())).thenReturn(new ArrayList<>());
+
+        Intent res = mHelper.getConfigurationActivityIntentForMode(mode, mApprovedServiceFinder);
+
+        assertThat(res).isNull();
+    }
+
+    @Test
+    public void getConfigurationActivityIntentForMode_configActivityAndWrongPackage_returnsNull()
+            throws Exception {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage(mContext.getPackageName())
+                .setConfigurationActivity(new ComponentName("another", "test"))
+                .build();
+        when(mPm.getPackageUid(mContext.getPackageName(), 0)).thenReturn(1);
+
+        Intent res = mHelper.getConfigurationActivityIntentForMode(mode, mApprovedServiceFinder);
+
+        assertThat(res).isNull();
+    }
+
+    @Test
+    public void getConfigurationActivityIntentForMode_configActivityAndUnspecifiedOwner()
+            throws Exception {
+        ZenMode mode = new TestModeBuilder()
+                .setId("id")
+                .setPackage(null)
+                .setConfigurationActivity(new ComponentName("another", "test"))
+                .build();
+        when(mPm.getPackageUid(mContext.getPackageName(), 0)).thenReturn(1);
+
+        Intent res = mHelper.getConfigurationActivityIntentForMode(mode, mApprovedServiceFinder);
+
+        assertThat(res).isNotNull();
+        assertThat(res.getStringExtra(EXTRA_RULE_ID)).isEqualTo("id");
+        assertThat(res.getStringExtra(EXTRA_AUTOMATIC_RULE_ID)).isEqualTo("id");
+        assertThat(res.getComponent()).isEqualTo(new ComponentName("another", "test"));
+    }
+
+    @Test
+    public void getConfigurationActivityIntentForMode_cps() throws Exception {
+        ZenMode mode = new TestModeBuilder()
+                .setId("id")
+                .setPackage(mContext.getPackageName())
+                .setOwner(new ComponentName(mContext.getPackageName(), "service"))
+                .build();
+        ComponentInfo ci = new ComponentInfo();
+        ci.packageName = mContext.getPackageName();
+        ci.metaData = new Bundle();
+        ci.metaData.putString(ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY,
+                ComponentName.flattenToShortString(
+                        new ComponentName(mContext.getPackageName(), "activity")));
+        when(mApprovedServiceFinder.apply(new ComponentName(mContext.getPackageName(), "service")))
+                .thenReturn(ci);
+        when(mPm.getPackageUid(mContext.getPackageName(), 0)).thenReturn(1);
+
+        Intent res = mHelper.getConfigurationActivityIntentForMode(mode, mApprovedServiceFinder);
+
+        assertThat(res).isNotNull();
+        assertThat(res.getStringExtra(EXTRA_RULE_ID)).isEqualTo("id");
+        assertThat(res.getStringExtra(EXTRA_AUTOMATIC_RULE_ID)).isEqualTo("id");
+        assertThat(res.getComponent()).isEqualTo(
+                new ComponentName(mContext.getPackageName(), "activity"));
+    }
+
+    @Test
+    public void getConfigurationActivityIntentForMode_cpsAndWrongPackage_returnsNull()
+            throws Exception {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("other")
+                .setOwner(new ComponentName(mContext.getPackageName(), "service"))
+                .build();
+        ComponentInfo ci = new ComponentInfo();
+        ci.packageName = mContext.getPackageName();
+        ci.metaData = new Bundle();
+        ci.metaData.putString(ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY,
+                ComponentName.flattenToShortString(
+                        new ComponentName(mContext.getPackageName(), "activity")));
+        when(mApprovedServiceFinder.apply(new ComponentName(mContext.getPackageName(), "service")))
+                .thenReturn(ci);
+        when(mPm.getPackageUid(mContext.getPackageName(), 0)).thenReturn(1);
+
+        Intent res = mHelper.getConfigurationActivityIntentForMode(mode, mApprovedServiceFinder);
+
+        assertThat(res).isNull();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/IconLoaderTest.java b/tests/robotests/src/com/android/settings/notification/modes/IconLoaderTest.java
deleted file mode 100644
index 7d4a367..0000000
--- a/tests/robotests/src/com/android/settings/notification/modes/IconLoaderTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * 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.modes;
-
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.AutomaticZenRule;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.service.notification.ZenPolicy;
-
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.MoreExecutors;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class IconLoaderTest {
-
-    private Context mContext;
-    private IconLoader mLoader;
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-        mLoader = new IconLoader(MoreExecutors.newDirectExecutorService());
-    }
-
-    @Test
-    public void getIcon_systemOwnedRuleWithIcon_loads() throws Exception {
-        AutomaticZenRule systemRule = newRuleBuilder()
-                .setPackage("android")
-                .setIconResId(android.R.drawable.ic_media_play)
-                .build();
-
-        ListenableFuture<Drawable> loadFuture = mLoader.getIcon(mContext, systemRule);
-        assertThat(loadFuture.isDone()).isTrue();
-        assertThat(loadFuture.get()).isNotNull();
-    }
-
-    @Test
-    public void getIcon_ruleWithoutSpecificIcon_loadsFallback() throws Exception {
-        AutomaticZenRule rule = newRuleBuilder()
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setPackage("com.blah")
-                .build();
-
-        ListenableFuture<Drawable> loadFuture = mLoader.getIcon(mContext, rule);
-        assertThat(loadFuture.isDone()).isTrue();
-        assertThat(loadFuture.get()).isNotNull();
-    }
-
-    @Test
-    public void getIcon_ruleWithAppIconWithLoadFailure_loadsFallback() throws Exception {
-        AutomaticZenRule rule = newRuleBuilder()
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setPackage("com.blah")
-                .setIconResId(-123456)
-                .build();
-
-        ListenableFuture<Drawable> loadFuture = mLoader.getIcon(mContext, rule);
-        assertThat(loadFuture.get()).isNotNull();
-    }
-
-    private static AutomaticZenRule.Builder newRuleBuilder() {
-        return new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().build());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java b/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java
index d5430b1..f0109d6 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/IconOptionsProviderImplTest.java
@@ -34,7 +34,7 @@
 @RunWith(RobolectricTestRunner.class)
 public class IconOptionsProviderImplTest {
 
-    private static final int EXPECTED_NUMBER_OF_ICON_OPTIONS = 9;
+    private static final int EXPECTED_NUMBER_OF_ICON_OPTIONS = 40;
 
     @Test
     public void iconResources_correctResources() {
diff --git a/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
new file mode 100644
index 0000000..777d213
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/InterruptionFilterPreferenceControllerTest.java
@@ -0,0 +1,143 @@
+/*
+ * 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.modes;
+
+import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
+import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
+import static android.service.notification.ZenPolicy.STATE_DISALLOW;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import android.app.Flags;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.ZenPolicy;
+
+import androidx.preference.TwoStatePreference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public final class InterruptionFilterPreferenceControllerTest {
+
+    private InterruptionFilterPreferenceController mController;
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+    @Mock private ZenModesBackend mBackend;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = RuntimeEnvironment.application;
+        mController = new InterruptionFilterPreferenceController(mContext, "something",  mBackend);
+    }
+
+    @Test
+    public void testUpdateState_disabled() {
+        TwoStatePreference preference = mock(TwoStatePreference.class);
+        ZenMode zenMode = new TestModeBuilder()
+                .setEnabled(false)
+                .build();
+
+        mController.updateZenMode(preference, zenMode);
+
+        verify(preference).setEnabled(false);
+    }
+
+    @Test
+    public void testUpdateState_all() {
+        TwoStatePreference preference = mock(TwoStatePreference.class);
+        ZenMode zenMode = new TestModeBuilder()
+                .setInterruptionFilter(INTERRUPTION_FILTER_ALL)
+                .build();
+        mController.updateZenMode(preference, zenMode);
+
+        verify(preference).setChecked(true);
+    }
+
+    @Test
+    public void testOnPreferenceChange_fromAll() {
+        TwoStatePreference preference = mock(TwoStatePreference.class);
+        ZenMode zenMode = new TestModeBuilder()
+                .setInterruptionFilter(INTERRUPTION_FILTER_ALL)
+                .build();
+
+        mController.updateZenMode(preference, zenMode);
+
+        mController.onPreferenceChange(preference, false);
+
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        assertThat(captor.getValue().getPolicy().getPriorityCategoryAlarms())
+                .isEqualTo(STATE_DISALLOW);
+        assertThat(captor.getValue().getRule().getInterruptionFilter())
+                .isEqualTo(INTERRUPTION_FILTER_PRIORITY);
+    }
+
+    @Test
+    public void testUpdateState_priority() {
+        TwoStatePreference preference = mock(TwoStatePreference.class);
+        ZenMode zenMode = new TestModeBuilder()
+                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
+                .build();
+        mController.updateZenMode(preference, zenMode);
+
+        verify(preference).setChecked(false);
+    }
+
+    @Test
+    public void testOnPreferenceChange_fromPriority() {
+        TwoStatePreference preference = mock(TwoStatePreference.class);
+        ZenMode zenMode = new TestModeBuilder()
+                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
+                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
+                .build();
+
+        mController.updateZenMode(preference, zenMode);
+
+        mController.onPreferenceChange(preference, true);
+
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        assertThat(captor.getValue().getPolicy().getPriorityCategoryAlarms())
+                .isEqualTo(STATE_DISALLOW);
+        assertThat(captor.getValue().getRule().getInterruptionFilter())
+                .isEqualTo(INTERRUPTION_FILTER_ALL);
+    }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java
new file mode 100644
index 0000000..c90f337
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationHelperTest.java
@@ -0,0 +1,86 @@
+/*
+ * 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.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.Flags;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ManualDurationHelperTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+    private ContentResolver mContentResolver;
+
+    private ManualDurationHelper mHelper;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mContentResolver = RuntimeEnvironment.application.getContentResolver();
+
+        mHelper = new ManualDurationHelper(mContext);
+    }
+
+    @Test
+    public void getDurationSummary_durationForever() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+                Settings.Secure.ZEN_DURATION_FOREVER);
+        assertThat(mHelper.getSummary()).isEqualTo(
+                mContext.getString(R.string.zen_mode_duration_summary_forever));
+    }
+
+    @Test
+    public void getDurationSummary_durationPrompt() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+                Settings.Secure.ZEN_DURATION_PROMPT);
+        assertThat(mHelper.getSummary()).isEqualTo(
+                mContext.getString(R.string.zen_mode_duration_summary_always_prompt));
+    }
+
+    @Test
+    public void getDurationSummary_durationCustom() {
+        // minutes
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION, 45);
+        assertThat(mHelper.getSummary()).isEqualTo("45 minutes");
+
+        // hours
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION, 300);
+        assertThat(mHelper.getSummary()).isEqualTo("5 hours");
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ManualDurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationPreferenceControllerTest.java
new file mode 100644
index 0000000..4edb0d5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ManualDurationPreferenceControllerTest.java
@@ -0,0 +1,87 @@
+/*
+ * 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.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.Flags;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import androidx.fragment.app.Fragment;
+import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+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)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ManualDurationPreferenceControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+    private ContentResolver mContentResolver;
+
+    @Mock
+    private ZenModesBackend mBackend;
+
+    @Mock
+    private Fragment mParent;
+
+    private ManualDurationPreferenceController mPrefController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = RuntimeEnvironment.application;
+        mContentResolver = RuntimeEnvironment.application.getContentResolver();
+        mPrefController = new ManualDurationPreferenceController(mContext, "key", mParent,
+                mBackend);
+    }
+
+    @Test
+    public void testIsAvailable_onlyForManualDnd() {
+        assertThat(mPrefController.isAvailable(TestModeBuilder.EXAMPLE)).isFalse();
+        assertThat(mPrefController.isAvailable(TestModeBuilder.MANUAL_DND_ACTIVE)).isTrue();
+        assertThat(mPrefController.isAvailable(TestModeBuilder.MANUAL_DND_INACTIVE)).isTrue();
+    }
+
+    @Test
+    public void testUpdateState_durationSummary() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+                45 /* minutes */);
+
+        Preference pref = new Preference(mContext);
+        mPrefController.updateState(pref, TestModeBuilder.EXAMPLE);
+
+        assertThat(pref.getSummary().toString()).contains("45");
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/SetupInterstitialActivityTest.java b/tests/robotests/src/com/android/settings/notification/modes/SetupInterstitialActivityTest.java
new file mode 100644
index 0000000..40bf1c7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/SetupInterstitialActivityTest.java
@@ -0,0 +1,153 @@
+/*
+ * 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.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+
+import androidx.test.core.app.ActivityScenario;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class SetupInterstitialActivityTest {
+    private static final String MODE_ID = "modeId";
+
+    @Mock
+    private ZenModesBackend mBackend;
+
+    @Mock
+    private ImageView mImage;
+
+    @Mock
+    private Drawable mDrawable;
+
+    @Mock
+    private FrameLayout mFrame;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        // set global backend instance so that when the interstitial activity launches, it'll get
+        // this mock backend
+        ZenModesBackend.setInstance(mBackend);
+
+        when(mBackend.getMode(MODE_ID)).thenReturn(new TestModeBuilder().build());
+        when(mImage.getDrawable()).thenReturn(mDrawable);
+        when(mImage.getLayoutParams()).thenReturn(new ViewGroup.LayoutParams(0, 0));
+    }
+
+    @Test
+    public void invalidIntent_doesNotQueryBackend() {
+        // Mode is set up sensibly
+        ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false).build();
+        when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+
+        // but the intent is lacking the zen mode extra
+        ActivityScenario<SetupInterstitialActivity> scenario =
+                ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+                        .setClass(RuntimeEnvironment.getApplication(),
+                                SetupInterstitialActivity.class));
+        // creating the scenario takes it through onResume(), which would query the backend if
+        // it had mode data.
+        scenario.onActivity(activity -> {
+            assertThat(activity.isFinishing()).isTrue();
+            verify(mBackend, never()).getMode(any());
+        });
+        scenario.close();
+    }
+
+    @Test
+    public void invalidModeId_doesNotCrash() {
+        when(mBackend.getMode(MODE_ID)).thenReturn(null);
+        ActivityScenario<SetupInterstitialActivity> scenario =
+                ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+                        .setClass(RuntimeEnvironment.getApplication(),
+                                SetupInterstitialActivity.class)
+                        .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+        // do nothing, but it would crash if attempting to work with a null mode at any point
+        scenario.onActivity(activity -> {
+            assertThat(activity.isFinishing()).isTrue();
+        });
+        scenario.close();
+    }
+
+    @Test
+    public void enableButton_enablesModeAndRedirectsToModePage() {
+        ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false).build();
+        when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+
+        // Set up scenario with this mode information
+        ActivityScenario<SetupInterstitialActivity> scenario =
+                ActivityScenario.launch(new Intent(Intent.ACTION_MAIN)
+                        .setClass(RuntimeEnvironment.getApplication(),
+                                SetupInterstitialActivity.class)
+                        .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, MODE_ID));
+        scenario.onActivity(activity -> {
+            View.OnClickListener listener = activity.enableButtonListener(MODE_ID);
+
+            // simulate button press even though we don't actually have a button
+            listener.onClick(null);
+
+            // verify that the backend got a request to enable the mode
+            ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+            verify(mBackend).updateMode(captor.capture());
+            ZenMode updatedMode = captor.getValue();
+            assertThat(updatedMode.getId()).isEqualTo(MODE_ID);
+            assertThat(updatedMode.isEnabled()).isTrue();
+
+            // confirm that the next activity is the mode page
+            Intent openModePageIntent = shadowOf(activity).getNextStartedActivity();
+            assertThat(openModePageIntent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+                    .isEqualTo(ZenModeFragment.class.getName());
+            Bundle fragmentArgs = openModePageIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+            assertThat(fragmentArgs).isNotNull();
+            assertThat(fragmentArgs.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo(MODE_ID);
+        });
+        scenario.close();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/TestableCircularIconsPreference.java b/tests/robotests/src/com/android/settings/notification/modes/TestableCircularIconsPreference.java
new file mode 100644
index 0000000..6c1b059
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/TestableCircularIconsPreference.java
@@ -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.notification.modes;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceViewHolder;
+
+class TestableCircularIconsPreference extends CircularIconsPreference {
+
+    private PreferenceViewHolder mLastViewHolder;
+
+    TestableCircularIconsPreference(Context context) {
+        super(context);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        mLastViewHolder = holder;
+    }
+
+    @Override
+    protected void notifyChanged() {
+        // Calling androidx.preference.Preference.notifyChanged() will, through an internal
+        // listener added by PreferenceGroupAdapter, eventually rebind the Preference to its
+        // corresponding view in the RecyclerView. This will not happen to a Preference that is
+        // created without a proper PreferencesScreen/RecyclerView/etc, so we simulate it here.
+        if (mLastViewHolder != null) {
+            onBindViewHolder(mLastViewHolder);
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java
index bca1ccf..c524ab9 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAddBypassingAppsPreferenceControllerTest.java
@@ -24,10 +24,13 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Flags;
 import android.app.NotificationChannel;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ParceledListSlice;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
@@ -37,6 +40,7 @@
 import com.android.settingslib.applications.ApplicationsState;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -50,8 +54,12 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
 public class ZenModeAddBypassingAppsPreferenceControllerTest {
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     @Mock
     private NotificationBackend mBackend;
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java
index 3114a2d..a7d52b1 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAllBypassingAppsPreferenceControllerTest.java
@@ -27,10 +27,13 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Flags;
 import android.app.NotificationChannel;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ParceledListSlice;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.fragment.app.Fragment;
 import androidx.preference.Preference;
@@ -40,6 +43,7 @@
 import com.android.settingslib.applications.ApplicationsState;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -52,7 +56,12 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
 public class ZenModeAllBypassingAppsPreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private ZenModeAllBypassingAppsPreferenceController mController;
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
index c8b1185..4148fa3 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsLinkPreferenceControllerTest.java
@@ -17,63 +17,81 @@
 package com.android.settings.notification.modes;
 
 import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
 
-import static com.android.settings.notification.modes.ZenModeFragmentBase.MODE_ID;
-
+import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
-import android.net.Uri;
+import android.content.pm.UserInfo;
+import android.graphics.drawable.ColorDrawable;
 import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenPolicy;
+import android.view.LayoutInflater;
+import android.view.View;
 
 import androidx.fragment.app.Fragment;
-import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
 
+import com.android.settings.R;
 import com.android.settings.SettingsActivity;
-import com.android.settings.notification.NotificationBackend;
 import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.MoreExecutors;
 
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
 
 @RunWith(RobolectricTestRunner.class)
 @EnableFlags(Flags.FLAG_MODES_UI)
 public final class ZenModeAppsLinkPreferenceControllerTest {
 
     private ZenModeAppsLinkPreferenceController mController;
+    private CircularIconsPreference mPreference;
+    private CircularIconsView mIconsView;
 
     private Context mContext;
     @Mock
     private ZenModesBackend mZenModesBackend;
 
     @Mock
-    private NotificationBackend mNotificationBackend;
+    private ZenHelperBackend mHelperBackend;
 
     @Mock
     private ApplicationsState mApplicationsState;
@@ -87,31 +105,43 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
+        CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+        mPreference = new TestableCircularIconsPreference(mContext);
         when(mApplicationsState.newSession(any(), any())).thenReturn(mSession);
+
         mController = new ZenModeAppsLinkPreferenceController(
                 mContext, "controller_key", mock(Fragment.class), mApplicationsState,
-                mZenModesBackend);
-        ReflectionHelpers.setField(mController, "mNotificationBackend", mNotificationBackend);
+                mZenModesBackend, mHelperBackend,
+                /* appIconRetriever= */ appInfo -> new ColorDrawable());
+
+        // Ensure the preference view is bound & measured (needed to add child ImageViews).
+        View preferenceView = LayoutInflater.from(mContext).inflate(mPreference.getLayoutResource(),
+                null);
+        mIconsView = checkNotNull(preferenceView.findViewById(R.id.circles_container));
+        mIconsView.setUiExecutor(MoreExecutors.directExecutor());
+        preferenceView.measure(View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+                View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+        PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(preferenceView);
+        mPreference.onBindViewHolder(holder);
     }
 
-    private ApplicationsState.AppEntry createAppEntry(String packageName, String label) {
-        ApplicationsState.AppEntry entry = mock(ApplicationsState.AppEntry.class);
-        entry.info = new ApplicationInfo();
-        entry.info.packageName = packageName;
-        entry.label = label;
-        entry.info.uid = 0;
-        return entry;
+    private AppEntry createAppEntry(String packageName, int userId) {
+        ApplicationInfo applicationInfo = new ApplicationInfo();
+        applicationInfo.packageName = packageName;
+        applicationInfo.uid = UserHandle.getUid(userId, new Random().nextInt(100));
+        AppEntry appEntry = new AppEntry(mContext, applicationInfo, 1);
+        appEntry.label = packageName;
+        return appEntry;
     }
 
     private ZenMode createPriorityChannelsZenMode() {
-        return new ZenMode("id", new AutomaticZenRule.Builder("Bedtime",
-                Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
+        return new TestModeBuilder()
+                .setId("id")
                 .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
                 .setZenPolicy(new ZenPolicy.Builder()
                         .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
                         .build())
-                .build(), true);
+                .build();
     }
 
     @Test
@@ -120,76 +150,244 @@
     }
 
     @Test
+    public void testUpdateState_disabled() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setEnabled(false)
+                .build();
+
+        mController.updateState(mPreference, zenMode);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
     public void testUpdateSetsIntent() {
-        // Creates the preference
-        SelectorWithWidgetPreference preference = mock(SelectorWithWidgetPreference.class);
         // Create a zen mode that allows priority channels to breakthrough.
         ZenMode zenMode = createPriorityChannelsZenMode();
 
-        // Capture the intent
-        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        mController.updateState((Preference) preference, zenMode);
-        verify(preference).setIntent(captor.capture());
-        Intent launcherIntent = captor.getValue();
+        mController.updateState(mPreference, zenMode);
+        Intent launcherIntent = mPreference.getIntent();
 
         assertThat(launcherIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
                 .isEqualTo("com.android.settings.notification.modes.ZenModeAppsFragment");
         assertThat(launcherIntent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
-                -1)).isEqualTo(0);
+                -1)).isEqualTo(SettingsEnums.ZEN_PRIORITY_MODE);
 
         Bundle bundle = launcherIntent.getBundleExtra(
                 SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
         assertThat(bundle).isNotNull();
-        assertThat(bundle.getString(MODE_ID)).isEqualTo("id");
+        assertThat(bundle.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo("id");
     }
 
     @Test
     public void testGetAppsBypassingDnd() {
-        ApplicationsState.AppEntry entry = createAppEntry("test", "testLabel");
-        ApplicationsState.AppEntry entryConv = createAppEntry("test_conv", "test_convLabel");
-        List<ApplicationsState.AppEntry> appEntries = List.of(entry, entryConv);
+        ApplicationsState.AppEntry app1 = createAppEntry("app1", mContext.getUserId());
+        ApplicationsState.AppEntry app2 = createAppEntry("app2", mContext.getUserId());
+        List<ApplicationsState.AppEntry> allApps = List.of(app1, app2);
 
-        when(mNotificationBackend.getPackagesBypassingDnd(mContext.getUserId(),
-                false)).thenReturn(List.of("test"));
+        when(mHelperBackend.getPackagesBypassingDnd(mContext.getUserId(),
+                false)).thenReturn(List.of("app1"));
 
-        assertThat(mController.getAppsBypassingDnd(appEntries)).containsExactly("testLabel");
+        assertThat(mController.getAppsBypassingDndSortedByName(allApps)).containsExactly(app1);
     }
 
     @Test
-    public void testUpdateTriggersRebuild() {
-        // Creates the preference
-        SelectorWithWidgetPreference preference = mock(SelectorWithWidgetPreference.class);
+    public void testGetAppsBypassingDnd_sortsByName() {
+        ApplicationsState.AppEntry appC = createAppEntry("C", mContext.getUserId());
+        ApplicationsState.AppEntry appA = createAppEntry("A", mContext.getUserId());
+        ApplicationsState.AppEntry appB = createAppEntry("B", mContext.getUserId());
+        List<ApplicationsState.AppEntry> allApps = List.of(appC, appA, appB);
+
+        when(mHelperBackend.getPackagesBypassingDnd(eq(mContext.getUserId()), anyBoolean()))
+                .thenReturn(List.of("B", "C", "A"));
+
+        assertThat(mController.getAppsBypassingDndSortedByName(allApps))
+                .containsExactly(appA, appB, appC).inOrder();
+    }
+
+    @Test
+    public void testGetAppsBypassingDnd_withWorkProfile_includesProfileAndSorts() {
+        UserInfo workProfile = new UserInfo(10, "Work Profile", 0);
+        workProfile.userType = UserManager.USER_TYPE_PROFILE_MANAGED;
+        UserManager userManager = mContext.getSystemService(UserManager.class);
+        shadowOf(userManager).addProfile(mContext.getUserId(), 10, workProfile);
+
+        ApplicationsState.AppEntry personalCopy = createAppEntry("app", mContext.getUserId());
+        ApplicationsState.AppEntry workCopy = createAppEntry("app", 10);
+        ApplicationsState.AppEntry otherPersonal = createAppEntry("p2", mContext.getUserId());
+        ApplicationsState.AppEntry otherWork = createAppEntry("w2", 10);
+        List<ApplicationsState.AppEntry> allApps = List.of(workCopy, personalCopy, otherPersonal,
+                otherWork);
+
+        when(mHelperBackend.getPackagesBypassingDnd(eq(mContext.getUserId()), anyBoolean()))
+                .thenReturn(List.of("app", "p2"));
+        when(mHelperBackend.getPackagesBypassingDnd(eq(10), anyBoolean()))
+                .thenReturn(List.of("app"));
+
+        // Personal copy before work copy (names match).
+        assertThat(mController.getAppsBypassingDndSortedByName(allApps))
+                .containsExactly(personalCopy, workCopy, otherPersonal).inOrder();
+    }
+
+    @Test
+    public void updateState_withPolicyAllowingNoChannels_doesNotLoadPriorityApps() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(false).build())
+                .build();
+
+        mController.updateState(mPreference, zenMode);
+
+        verifyNoMoreInteractions(mSession);
+        verify(mHelperBackend, never()).getPackagesBypassingDnd(anyInt(), anyBoolean());
+        assertThat(String.valueOf(mPreference.getSummary())).isEqualTo("None");
+    }
+
+    @Test
+    public void updateState_withPolicyAllowingPriorityChannels_triggersRebuild() {
         // Create a zen mode that allows priority channels to breakthrough.
         ZenMode zenMode = createPriorityChannelsZenMode();
 
         // Create some applications.
-        ArrayList<ApplicationsState.AppEntry> appEntries =
-                new ArrayList<ApplicationsState.AppEntry>();
-        appEntries.add(createAppEntry("test", "pkgLabel"));
+        ArrayList<ApplicationsState.AppEntry> appEntries = new ArrayList<>();
+        appEntries.add(createAppEntry("test", mContext.getUserId()));
 
-        when(mNotificationBackend.getPackagesBypassingDnd(
+        when(mHelperBackend.getPackagesBypassingDnd(
                 mContext.getUserId(), false))
                 .thenReturn(List.of("test"));
 
         // Updates the preference with the zen mode. We expect that this causes the app session
-        // to trigger a rebuild.
-        mController.updateZenMode((Preference) preference, zenMode);
+        // to trigger a rebuild (and display a temporary text in the meantime).
+        mController.updateZenMode(mPreference, zenMode);
         verify(mSession).rebuild(any(), any(), eq(false));
+        assertThat(String.valueOf(mPreference.getSummary())).isEqualTo("Calculating…");
 
         // Manually triggers the callback that will happen on rebuild.
         mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
-        verify(preference).setSummary("pkgLabel can interrupt");
+        assertThat(String.valueOf(mPreference.getSummary())).isEqualTo("test can interrupt");
+    }
+
+    @Test
+    public void updateState_withPolicyAllowingPriorityChannels_loadsIcons() {
+        ZenMode zenMode = createPriorityChannelsZenMode();
+
+        mController.updateState(mPreference, zenMode);
+        when(mHelperBackend.getPackagesBypassingDnd(anyInt(), anyBoolean()))
+                .thenReturn(ImmutableList.of("test1", "test2"));
+        ArrayList<ApplicationsState.AppEntry> appEntries = new ArrayList<>();
+        appEntries.add(createAppEntry("test1", mContext.getUserId()));
+        appEntries.add(createAppEntry("test2", mContext.getUserId()));
+        mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
+
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(2);
     }
 
     @Test
     public void testOnPackageListChangedTriggersRebuild() {
-        mController.mAppSessionCallbacks.onPackageListChanged();
+        // Create a zen mode that allows priority channels to breakthrough.
+        ZenMode zenMode = createPriorityChannelsZenMode();
+        mController.updateState(mPreference, zenMode);
         verify(mSession).rebuild(any(), any(), eq(false));
+
+        mController.mAppSessionCallbacks.onPackageListChanged();
+        verify(mSession, times(2)).rebuild(any(), any(), eq(false));
     }
 
     @Test
     public void testOnLoadEntriesCompletedTriggersRebuild() {
-        mController.mAppSessionCallbacks.onLoadEntriesCompleted();
+        // Create a zen mode that allows priority channels to breakthrough.
+        ZenMode zenMode = createPriorityChannelsZenMode();
+        mController.updateState(mPreference, zenMode);
         verify(mSession).rebuild(any(), any(), eq(false));
+
+        mController.mAppSessionCallbacks.onLoadEntriesCompleted();
+        verify(mSession, times(2)).rebuild(any(), any(), eq(false));
+    }
+
+    @Test
+    public void updateState_noneToPriority_loadsBypassingAppsAndListensForChanges() {
+        ZenMode zenModeWithNone = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(false).build())
+                .build();
+        ZenMode zenModeWithPriority = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(true).build())
+                .build();
+        ArrayList<ApplicationsState.AppEntry> appEntries = new ArrayList<>();
+        appEntries.add(createAppEntry("test", mContext.getUserId()));
+        when(mHelperBackend.getPackagesBypassingDnd(mContext.getUserId(), false))
+                .thenReturn(List.of("test"));
+
+        mController.updateState(mPreference, zenModeWithNone);
+
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(0);
+        verifyNoMoreInteractions(mApplicationsState);
+        verifyNoMoreInteractions(mSession);
+
+        mController.updateState(mPreference, zenModeWithPriority);
+
+        verify(mApplicationsState).newSession(any(), any());
+        verify(mSession).rebuild(any(), any(), anyBoolean());
+        mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(1);
+    }
+
+    @Test
+    public void updateState_priorityToNone_clearsBypassingAppsAndStopsListening() {
+        ZenMode zenModeWithNone = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(false).build())
+                .build();
+        ZenMode zenModeWithPriority = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(true).build())
+                .build();
+        ArrayList<ApplicationsState.AppEntry> appEntries = new ArrayList<>();
+        appEntries.add(createAppEntry("test", mContext.getUserId()));
+        when(mHelperBackend.getPackagesBypassingDnd(mContext.getUserId(), false))
+                .thenReturn(List.of("test"));
+
+        mController.updateState(mPreference, zenModeWithPriority);
+
+        verify(mApplicationsState).newSession(any(), any());
+        verify(mSession).rebuild(any(), any(), anyBoolean());
+        mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(1);
+
+        mController.updateState(mPreference, zenModeWithNone);
+
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(0);
+        verify(mSession).deactivateSession();
+        verifyNoMoreInteractions(mSession);
+        verifyNoMoreInteractions(mApplicationsState);
+
+        // An errant callback (triggered by onResume and received asynchronously after
+        // updateState()) is ignored.
+        mController.mAppSessionCallbacks.onRebuildComplete(appEntries);
+
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(0);
+    }
+
+    @Test
+    public void updateState_priorityToNoneToPriority_restartsListening() {
+        ZenMode zenModeWithNone = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(false).build())
+                .build();
+        ZenMode zenModeWithPriority = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowPriorityChannels(true).build())
+                .build();
+
+        mController.updateState(mPreference, zenModeWithPriority);
+        verify(mApplicationsState).newSession(any(), any());
+        verify(mSession).rebuild(any(), any(), anyBoolean());
+
+        mController.updateState(mPreference, zenModeWithNone);
+        verifyNoMoreInteractions(mApplicationsState);
+        verify(mSession).deactivateSession();
+
+        mController.updateState(mPreference, zenModeWithPriority);
+        verifyNoMoreInteractions(mApplicationsState);
+        verify(mSession).activateSession();
+    }
+
+    @Test
+    public void testNoCrashIfAppsReadyBeforeRuleAvailable() {
+        mController.mAppSessionCallbacks.onLoadEntriesCompleted();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
index 750453d..1140238 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeAppsPreferenceControllerTest.java
@@ -16,11 +16,8 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_NONE;
 import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 
-import static com.android.settings.notification.modes.ZenModeAppsPreferenceController.KEY_ALL;
 import static com.android.settings.notification.modes.ZenModeAppsPreferenceController.KEY_NONE;
 import static com.android.settings.notification.modes.ZenModeAppsPreferenceController.KEY_PRIORITY;
 
@@ -29,10 +26,8 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenPolicy;
@@ -42,6 +37,9 @@
 import androidx.preference.PreferenceScreen;
 import androidx.preference.TwoStatePreference;
 
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.Before;
@@ -62,11 +60,9 @@
     @Mock
     private ZenModesBackend mBackend;
     private ZenModeAppsPreferenceController mPriorityController;
-    private ZenModeAppsPreferenceController mAllController;
     private ZenModeAppsPreferenceController mNoneController;
 
     private SelectorWithWidgetPreference mPriorityPref;
-    private SelectorWithWidgetPreference mAllPref;
     private SelectorWithWidgetPreference mNonePref;
     private PreferenceCategory mPrefCategory;
     private PreferenceScreen mPreferenceScreen;
@@ -81,10 +77,8 @@
 
         mPriorityController = new ZenModeAppsPreferenceController(mContext, KEY_PRIORITY, mBackend);
         mNoneController = new ZenModeAppsPreferenceController(mContext, KEY_NONE, mBackend);
-        mAllController =  new ZenModeAppsPreferenceController(mContext, KEY_ALL, mBackend);
 
         mPriorityPref = makePreference(KEY_PRIORITY, mPriorityController);
-        mAllPref = makePreference(KEY_ALL, mAllController);
         mNonePref = makePreference(KEY_NONE, mNoneController);
 
         mPrefCategory = new PreferenceCategory(mContext);
@@ -95,10 +89,8 @@
 
         mPreferenceScreen.addPreference(mPrefCategory);
         mPrefCategory.addPreference(mPriorityPref);
-        mPrefCategory.addPreference(mAllPref);
         mPrefCategory.addPreference(mNonePref);
 
-        mAllController.displayPreference(mPreferenceScreen);
         mPriorityController.displayPreference(mPreferenceScreen);
         mNoneController.displayPreference(mPreferenceScreen);
     }
@@ -112,45 +104,14 @@
     }
 
     @Test
-    public void testUpdateState_All() {
-        TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                                .build())
-                        .build(), true);
-        mAllController.updateZenMode(preference, zenMode);
-
-        verify(preference).setChecked(true);
-    }
-
-    @Test
-    public void testUpdateState_All_Unchecked() {
-        TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
-                                .build())
-                        .build(), true);
-        mAllController.updateZenMode(preference, zenMode);
-
-        verify(preference).setChecked(false);
-    }
-
-    @Test
     public void testUpdateState_None() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
+                        .build())
+                .build();
+
         mNoneController.updateZenMode(preference, zenMode);
 
         verify(preference).setChecked(true);
@@ -159,13 +120,12 @@
     @Test
     public void testUpdateState_None_Unchecked() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+                        .build())
+                .build();
+
         mNoneController.updateZenMode(preference, zenMode);
 
         verify(preference).setChecked(false);
@@ -174,13 +134,12 @@
     @Test
     public void testUpdateState_Priority() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+                        .build())
+                .build();
+
         mPriorityController.updateZenMode(preference, zenMode);
 
         verify(preference).setChecked(true);
@@ -189,99 +148,32 @@
     @Test
     public void testUpdateState_Priority_Unchecked() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
+                        .build())
+                .build();
+
         mPriorityController.updateZenMode(preference, zenMode);
 
         verify(preference).setChecked(false);
     }
 
     @Test
-    public void testOnPreferenceChange_All() {
-        TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_NONE)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                                .build())
-                        .build(), true);
-
-        mAllController.updateZenMode(preference, zenMode);
-        mAllController.onPreferenceChange(preference, true);
-        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
-        verify(mBackend).updateMode(captor.capture());
-
-        assertThat(captor.getValue().getPolicy().getAllowedChannels())
-                .isEqualTo(ZenMode.CHANNEL_POLICY_ALL);
-    }
-
-    @Test
-    public void testPreferenceClick_passesCorrectCheckedState_All() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
-                                .build())
-                        .build(), true);
-
-
-        mAllController.updateZenMode(mAllPref, zenMode);
-        mNoneController.updateZenMode(mNonePref, zenMode);
-        mPriorityController.updateZenMode(mPriorityPref, zenMode);
-
-        // MPME is checked; ALL and PRIORITY are unchecked.
-        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_ALL))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
-                .isChecked());
-
-        mPrefCategory.findPreference(KEY_ALL).performClick();
-
-        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
-        verify(mBackend).updateMode(captor.capture());
-        // Checks the policy value for ALL is set.
-        // The important part is that the interruption filter is propagated to the backend.
-        assertThat(captor.getValue().getRule().getInterruptionFilter())
-                .isEqualTo(INTERRUPTION_FILTER_ALL);
-        // ALL is now checked; others are unchecked.
-        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_ALL))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
-                .isChecked());
-    }
-
-    @Test
     public void testPreferenceClick_passesCorrectCheckedState_None() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+                        .build())
+                .build();
 
-        mAllController.updateZenMode(mAllPref, zenMode);
         mNoneController.updateZenMode(mNonePref, zenMode);
         mPriorityController.updateZenMode(mPriorityPref, zenMode);
 
-        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_ALL))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
-                .isChecked());
+        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
+                .isChecked()).isFalse();
+        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+                .isChecked()).isTrue();
 
         // Click on NONE
         mPrefCategory.findPreference(KEY_NONE).performClick();
@@ -293,35 +185,31 @@
         // See AbstractZenModePreferenceController.
         assertThat(captor.getValue().getRule().getInterruptionFilter())
                 .isEqualTo(INTERRUPTION_FILTER_PRIORITY);
-        // NONE is now checked; others are unchecked.
+
+        // After screen is refreshed, NONE is now checked; others are unchecked.
+        mNoneController.updateZenMode(mNonePref, captor.getValue());
+        mPriorityController.updateZenMode(mPriorityPref, captor.getValue());
         assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_ALL))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
-                .isChecked());
+                .isChecked()).isTrue();
+        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+                .isChecked()).isFalse();
     }
 
     @Test
     public void testPreferenceClick_passesCorrectCheckedState_Priority() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
+                        .build())
+                .build();
 
-        mAllController.updateZenMode(mAllPref, zenMode);
         mNoneController.updateZenMode(mNonePref, zenMode);
         mPriorityController.updateZenMode(mPriorityPref, zenMode);
 
         assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_ALL))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
-                .isChecked());
+                .isChecked()).isTrue();
+        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+                .isChecked()).isFalse();
 
         // Click on PRIORITY
         mPrefCategory.findPreference(KEY_PRIORITY).performClick();
@@ -331,13 +219,13 @@
         // Checks the policy value for PRIORITY is propagated to the backend.
         assertThat(captor.getValue().getRule().getInterruptionFilter())
                 .isEqualTo(INTERRUPTION_FILTER_PRIORITY);
-        // PRIORITY is now checked; others are unchecked.
-        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_ALL))
-                .isChecked());
-        assertThat(!((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
-                .isChecked());
-    }
 
+        // After screen is refreshed, PRIORITY is now checked; others are unchecked.
+        mNoneController.updateZenMode(mNonePref, captor.getValue());
+        mPriorityController.updateZenMode(mPriorityPref, captor.getValue());
+        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_PRIORITY))
+                .isChecked()).isTrue();
+        assertThat(((SelectorWithWidgetPreference) mPrefCategory.findPreference(KEY_NONE))
+                .isChecked()).isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
index bda3843..159dada 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeButtonPreferenceControllerTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -25,15 +23,19 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
+import android.content.ContentResolver;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
+import android.provider.Settings;
 import android.widget.Button;
 
+import androidx.fragment.app.Fragment;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.widget.LayoutPreference;
 
 import org.junit.Before;
@@ -45,6 +47,8 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
+import java.time.Duration;
+
 @EnableFlags(Flags.FLAG_MODES_UI)
 @RunWith(RobolectricTestRunner.class)
 public final class ZenModeButtonPreferenceControllerTest {
@@ -54,60 +58,66 @@
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
-
     private Context mContext;
+    private ContentResolver mContentResolver;
+
     @Mock
     private ZenModesBackend mBackend;
 
+    @Mock
+    private Fragment mParent;
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
 
         mContext = RuntimeEnvironment.application;
+        mContentResolver = RuntimeEnvironment.application.getContentResolver();
 
         mController = new ZenModeButtonPreferenceController(
-                mContext, "something", mBackend);
+                mContext, "something", mParent, mBackend);
     }
 
     @Test
     public void isAvailable_notIfAppOptsOut() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
+        ZenMode zenMode = new TestModeBuilder()
                 .setManualInvocationAllowed(false)
-                .setEnabled(true)
-                .build(), false);
+                .build();
         mController.setZenMode(zenMode);
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
-    public void isAvailable_notIfModeDisabled() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .setManualInvocationAllowed(true)
-                        .setEnabled(false)
-                        .build(), false);
+    public void isAvailable_ifModeActiveEvenIfAppOptsOut() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setManualInvocationAllowed(false)
+                .setActive(true)
+                .build();
         mController.setZenMode(zenMode);
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_notIfModeDisabled() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setManualInvocationAllowed(true)
+                .setEnabled(false)
+                .build();
+
+        mController.setZenMode(zenMode);
+
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     public void isAvailable_appOptedIn_modeEnabled() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .setManualInvocationAllowed(true)
-                        .setEnabled(true)
-                        .build(), false);
+        ZenMode zenMode = new TestModeBuilder()
+                .setManualInvocationAllowed(true)
+                .setEnabled(true)
+                .build();
+
         mController.setZenMode(zenMode);
+
         assertThat(mController.isAvailable()).isTrue();
     }
 
@@ -116,15 +126,12 @@
         Button button = new Button(mContext);
         LayoutPreference pref = mock(LayoutPreference.class);
         when(pref.findViewById(anyInt())).thenReturn(button);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .setManualInvocationAllowed(true)
-                        .setEnabled(true)
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setActive(true)
+                .build();
+
         mController.updateZenMode(pref, zenMode);
+
         assertThat(button.getText().toString()).contains("off");
         assertThat(button.hasOnClickListeners()).isTrue();
     }
@@ -134,15 +141,13 @@
         Button button = new Button(mContext);
         LayoutPreference pref = mock(LayoutPreference.class);
         when(pref.findViewById(anyInt())).thenReturn(button);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .setManualInvocationAllowed(true)
-                        .setEnabled(true)
-                        .build(), false);
+        ZenMode zenMode = new TestModeBuilder()
+                .setManualInvocationAllowed(true)
+                .setActive(false)
+                .build();
+
         mController.updateZenMode(pref, zenMode);
+
         assertThat(button.getText().toString()).contains("on");
         assertThat(button.hasOnClickListeners()).isTrue();
     }
@@ -152,14 +157,10 @@
         Button button = new Button(mContext);
         LayoutPreference pref = mock(LayoutPreference.class);
         when(pref.findViewById(anyInt())).thenReturn(button);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .setManualInvocationAllowed(true)
-                        .setEnabled(true)
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setActive(true)
+                .build();
+
         mController.updateZenMode(pref, zenMode);
 
         button.callOnClick();
@@ -171,17 +172,42 @@
         Button button = new Button(mContext);
         LayoutPreference pref = mock(LayoutPreference.class);
         when(pref.findViewById(anyInt())).thenReturn(button);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .setManualInvocationAllowed(true)
-                        .setEnabled(true)
-                        .build(), false);
+        ZenMode zenMode = new TestModeBuilder()
+                .setManualInvocationAllowed(true)
+                .setActive(false)
+                .build();
+
         mController.updateZenMode(pref, zenMode);
 
         button.callOnClick();
         verify(mBackend).activateMode(zenMode, null);
     }
+
+    @Test
+    public void updateStateThenClick_withDuration() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+                45 /* minutes */);
+        Button button = new Button(mContext);
+        LayoutPreference pref = mock(LayoutPreference.class);
+        when(pref.findViewById(anyInt())).thenReturn(button);
+        ZenMode zenMode = TestModeBuilder.MANUAL_DND_INACTIVE;
+
+        mController.updateZenMode(pref, zenMode);
+        button.callOnClick();
+        verify(mBackend).activateMode(zenMode, Duration.ofMinutes(45));
+    }
+
+    @Test
+    public void updateStateThenClick_durationForever() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.ZEN_DURATION,
+                Settings.Secure.ZEN_DURATION_FOREVER);
+        Button button = new Button(mContext);
+        LayoutPreference pref = mock(LayoutPreference.class);
+        when(pref.findViewById(anyInt())).thenReturn(button);
+        ZenMode zenMode = TestModeBuilder.MANUAL_DND_INACTIVE;
+
+        mController.updateZenMode(pref, zenMode);
+        button.callOnClick();
+        verify(mBackend).activateMode(zenMode, null);
+    }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
index 04d625a..862cf77 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeCallsLinkPreferenceControllerTest.java
@@ -16,20 +16,19 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
+
 import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -38,8 +37,6 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
 public final class ZenModeCallsLinkPreferenceControllerTest {
@@ -49,10 +46,8 @@
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
-
     private Context mContext;
-    @Mock
-    private ZenModesBackend mBackend;
+    @Mock private ZenHelperBackend mHelperBackend;
 
     @Before
     public void setup() {
@@ -61,20 +56,14 @@
         mContext = RuntimeEnvironment.application;
 
         mController = new ZenModeCallsLinkPreferenceController(
-                mContext, "something", mBackend);
+                mContext, "something", mHelperBackend);
     }
 
     @Test
     @EnableFlags(Flags.FLAG_MODES_UI)
     public void testHasSummary() {
         Preference pref = mock(Preference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                .build(), true);
-        mController.updateZenMode(pref, zenMode);
+        mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
         verify(pref).setSummary(any());
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
index 1a62b75..f2c6006 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayEffectPreferenceControllerTest.java
@@ -16,22 +16,23 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static android.service.notification.ZenPolicy.STATE_ALLOW;
-import static android.service.notification.ZenPolicy.STATE_UNSET;
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenDeviceEffects;
-import android.service.notification.ZenPolicy;
+
 import androidx.preference.TwoStatePreference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -62,15 +63,11 @@
     @Test
     public void testUpdateState_grayscale() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldDisplayGrayscale(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDisplayGrayscale(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(
@@ -84,15 +81,11 @@
     @Test
     public void testOnPreferenceChange_grayscale() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldDisplayGrayscale(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDisplayGrayscale(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(mContext, "effect_greyscale", mBackend);
@@ -103,22 +96,18 @@
 
         ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
         verify(mBackend).updateMode(captor.capture());
-        assertThat(captor.getValue().getRule().getDeviceEffects().shouldDisplayGrayscale())
+        assertThat(captor.getValue().getDeviceEffects().shouldDisplayGrayscale())
                 .isFalse();
     }
 
     @Test
     public void testUpdateState_aod() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowMedia(true).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldSuppressAmbientDisplay(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldSuppressAmbientDisplay(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(mContext, "effect_aod", mBackend);
@@ -131,15 +120,11 @@
     @Test
     public void testOnPreferenceChange_aod() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowMedia(false).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldSuppressAmbientDisplay(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldSuppressAmbientDisplay(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(mContext, "effect_aod", mBackend);
@@ -150,22 +135,18 @@
 
         ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
         verify(mBackend).updateMode(captor.capture());
-        assertThat(captor.getValue().getRule().getDeviceEffects().shouldSuppressAmbientDisplay())
+        assertThat(captor.getValue().getDeviceEffects().shouldSuppressAmbientDisplay())
                 .isFalse();
     }
 
     @Test
     public void testUpdateState_wallpaper() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowSystem(true).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldDimWallpaper(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDimWallpaper(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(
@@ -179,15 +160,11 @@
     @Test
     public void testOnPreferenceChange_wallpaper() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowSystem(false).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldDimWallpaper(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDimWallpaper(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(
@@ -199,21 +176,17 @@
 
         ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
         verify(mBackend).updateMode(captor.capture());
-        assertThat(captor.getValue().getRule().getDeviceEffects().shouldDimWallpaper()).isFalse();
+        assertThat(captor.getValue().getDeviceEffects().shouldDimWallpaper()).isFalse();
     }
 
     @Test
     public void testUpdateState_darkTheme() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowReminders(true).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldUseNightMode(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldUseNightMode(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(mContext, "effect_dark_theme",
@@ -227,15 +200,11 @@
     @Test
     public void testOnPreferenceChange_darkTheme() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowReminders(false).build())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldUseNightMode(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldUseNightMode(true)
+                        .build())
+                .build();
 
         ZenModeDisplayEffectPreferenceController controller =
                 new ZenModeDisplayEffectPreferenceController(mContext, "effect_dark_theme",
@@ -247,6 +216,6 @@
 
         ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
         verify(mBackend).updateMode(captor.capture());
-        assertThat(captor.getValue().getRule().getDeviceEffects().shouldUseNightMode()).isFalse();
+        assertThat(captor.getValue().getDeviceEffects().shouldUseNightMode()).isFalse();
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
index 9d33b0b..7cf0109 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeDisplayLinkPreferenceControllerTest.java
@@ -16,19 +16,21 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
+
 import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -39,6 +41,7 @@
 import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
 public final class ZenModeDisplayLinkPreferenceControllerTest {
 
     private ZenModeDisplayLinkPreferenceController mController;
@@ -47,8 +50,8 @@
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private Context mContext;
-    @Mock
-    private ZenModesBackend mBackend;
+    @Mock private ZenModesBackend mBackend;
+    @Mock private ZenHelperBackend mHelperBackend;
 
     @Before
     public void setup() {
@@ -57,20 +60,25 @@
         mContext = RuntimeEnvironment.application;
 
         mController = new ZenModeDisplayLinkPreferenceController(
-                mContext, "something", mBackend);
+                mContext, "something", mBackend, mHelperBackend);
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_MODES_UI)
+    public void testUpdateState_disabled() {
+        Preference preference = mock(Preference.class);
+        ZenMode zenMode = new TestModeBuilder()
+                .setEnabled(false)
+                .build();
+
+        mController.updateState(preference, zenMode);
+
+        verify(preference).setEnabled(false);
+    }
+
+    @Test
     public void testHasSummary() {
         Preference pref = mock(Preference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                .build(), true);
-        mController.updateZenMode(pref, zenMode);
+        mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
         verify(pref).setSummary(any());
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java
new file mode 100644
index 0000000..74328be
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditDonePreferenceControllerTest.java
@@ -0,0 +1,102 @@
+/*
+ * 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.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+
+import android.app.Flags;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.widget.Button;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeEditDonePreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private ZenModeEditDonePreferenceController mController;
+    private LayoutPreference mPreference;
+    private Button mButton;
+    @Mock private Runnable mConfirmSave;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+
+        Context context = RuntimeEnvironment.application;
+        PreferenceManager preferenceManager = new PreferenceManager(context);
+        PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(context,
+                R.xml.modes_edit_name_icon, null);
+        mPreference = preferenceScreen.findPreference("done");
+
+        mController = new ZenModeEditDonePreferenceController(context, "done", mConfirmSave);
+        mController.displayPreference(preferenceScreen);
+
+        mButton = mPreference.findViewById(R.id.done);
+        assertThat(mButton).isNotNull();
+    }
+
+    @Test
+    public void updateState_nameNonEmpty_buttonEnabled() {
+        ZenMode mode = new TestModeBuilder().setName("Such a nice name").build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mButton.isEnabled()).isTrue();
+        verifyNoMoreInteractions(mConfirmSave);
+    }
+
+    @Test
+    public void updateState_nameEmpty_buttonDisabled() {
+        ZenMode aModeHasNoName = new TestModeBuilder().setName("").build();
+
+        mController.updateState(mPreference, aModeHasNoName);
+
+        assertThat(mButton.isEnabled()).isFalse();
+        verifyNoMoreInteractions(mConfirmSave);
+    }
+
+    @Test
+    public void onButtonClick_callsConfirmSave() {
+        mButton.performClick();
+
+        verify(mConfirmSave).run();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java
new file mode 100644
index 0000000..cb853bb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNameIconFragmentTest.java
@@ -0,0 +1,221 @@
+/*
+ * 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.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.app.Activity;
+import android.app.Flags;
+import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+
+import com.android.internal.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeEditNameIconFragmentTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private static final ZenMode MODE = new TestModeBuilder().setId("id").setName("Mode").build();
+
+    private Activity mActivity;
+    private ZenModeEditNameIconFragment mFragment;
+    private FragmentScenario<ZenModeEditNameIconFragment> mScenario;
+
+    @Mock
+    private ZenModesBackend mBackend;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        // Note: Each test should call startFragment() to set mScenario, mFragment and mActivity.
+    }
+
+    @After
+    public void tearDown() {
+        if (mScenario != null) {
+            mScenario.close();
+        }
+    }
+
+    @Test
+    public void onCreate_loadsMode() {
+        when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+
+        startFragment(MODE.getId());
+
+        assertThat(mFragment.getZenMode()).isEqualTo(MODE);
+        assertThat(mActivity.isFinishing()).isFalse();
+    }
+
+    @Test
+    public void onCreate_noModeId_exits() {
+        when(mBackend.getMode(any())).thenReturn(MODE);
+
+        startFragment(null);
+
+        assertThat(mActivity.isFinishing()).isTrue();
+        verifyNoMoreInteractions(mBackend);
+    }
+    @Test
+    public void onCreate_missingMode_exits() {
+        when(mBackend.getMode(any())).thenReturn(null);
+
+        startFragment(MODE.getId());
+
+        assertThat(mActivity.isFinishing()).isTrue();
+        verify(mBackend).getMode(MODE.getId());
+    }
+
+    @Test
+    public void saveMode_appliesChangesAndFinishes() {
+        when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+        startFragment(MODE.getId());
+
+        mFragment.setModeName("A new name");
+        mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+        mFragment.setModeName("A newer name");
+
+        mFragment.saveMode();
+
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        ZenMode savedMode = captor.getValue();
+        assertThat(savedMode.getName()).isEqualTo("A newer name");
+        assertThat(savedMode.getRule().getIconResId()).isEqualTo(
+                R.drawable.ic_zen_mode_type_theater);
+
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    @Test
+    public void saveMode_appliesOnyNameAndIconChanges() {
+        when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+        startFragment(MODE.getId());
+        mFragment.setModeName("A new name");
+        mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+        // Before the user saves, something else about the mode was modified by someone else.
+        ZenMode newerMode = new TestModeBuilder(MODE).setTriggerDescription("Whenever").build();
+        when(mBackend.getMode(MODE.getId())).thenReturn(newerMode);
+
+        mFragment.saveMode();
+
+        // Verify that saving only wrote the mode name, and didn't accidentally stomp over
+        // unrelated fields of the mode.
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        ZenMode savedMode = captor.getValue();
+        assertThat(savedMode.getName()).isEqualTo("A new name");
+        assertThat(savedMode.getTriggerDescription()).isEqualTo("Whenever");
+    }
+
+    @Test
+    public void saveMode_forModeThatDisappeared_ignoresSave() {
+        when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+        startFragment(MODE.getId());
+        mFragment.setModeName("A new name");
+        mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+        // Before the user saves, the mode was removed by someone else.
+        when(mBackend.getMode(MODE.getId())).thenReturn(null);
+
+        mFragment.saveMode();
+
+        verify(mBackend, never()).updateMode(any());
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    @Test
+    public void setModeFields_withoutSaveMode_doesNotSaveChanges() {
+        when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+        startFragment(MODE.getId());
+
+        mFragment.setModeName("Not a good idea");
+        mFragment.setModeIcon(R.drawable.emergency_icon);
+        mActivity.finish();
+
+        verify(mBackend, never()).updateMode(any());
+    }
+
+    @Test
+    public void onCreate_whenRecreating_preservesEdits() {
+        when(mBackend.getMode(MODE.getId())).thenReturn(MODE);
+        startFragment(MODE.getId());
+
+        mFragment.setModeName("A better name");
+        mScenario.recreate().onFragment(newFragment -> {
+            assertThat(newFragment).isNotSameInstanceAs(mFragment);
+            newFragment.setBackend(mBackend);
+            mActivity = newFragment.getActivity();
+            mFragment = newFragment;
+        });
+        mFragment.saveMode();
+
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        ZenMode savedMode = captor.getValue();
+        assertThat(savedMode.getName()).isEqualTo("A better name");
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    private void startFragment(@Nullable String modeId) {
+        Bundle fragmentArgs = null;
+        if (modeId != null) {
+            fragmentArgs = new Bundle();
+            fragmentArgs.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
+        }
+
+        mScenario = FragmentScenario.launch(ZenModeEditNameIconFragment.class, fragmentArgs, 0,
+                Lifecycle.State.INITIALIZED);
+
+        mScenario.onFragment(fragment -> {
+            fragment.setBackend(mBackend); // Before onCreate().
+            mFragment = fragment;
+        });
+
+        mScenario.moveToState(Lifecycle.State.RESUMED).onFragment(fragment -> {
+            mActivity = fragment.requireActivity();
+        });
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java
new file mode 100644
index 0000000..795de50
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeEditNamePreferenceControllerTest.java
@@ -0,0 +1,98 @@
+/*
+ * 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.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+
+import android.app.Flags;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.widget.EditText;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.widget.LayoutPreference;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.function.Consumer;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeEditNamePreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private ZenModeEditNamePreferenceController mController;
+    private LayoutPreference mPreference;
+    private EditText mEditText;
+    @Mock private Consumer<String> mNameSetter;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+
+        Context context = RuntimeEnvironment.application;
+        PreferenceManager preferenceManager = new PreferenceManager(context);
+        PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(context,
+                R.xml.modes_edit_name_icon, null);
+        mPreference = preferenceScreen.findPreference("name");
+
+        mController = new ZenModeEditNamePreferenceController(context, "name", mNameSetter);
+        mController.displayPreference(preferenceScreen);
+        mEditText = mPreference.findViewById(android.R.id.edit);
+        assertThat(mEditText).isNotNull();
+    }
+
+    @Test
+    public void updateState_showsName() {
+        ZenMode mode = new TestModeBuilder().setName("A fancy name").build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mEditText.getText().toString()).isEqualTo("A fancy name");
+        verifyNoMoreInteractions(mNameSetter);
+    }
+
+    @Test
+    public void onEditText_callsNameSetter() {
+        ZenMode mode = new TestModeBuilder().setName("A fancy name").build();
+        mController.updateState(mPreference, mode);
+        EditText editText = mPreference.findViewById(android.R.id.edit);
+
+        editText.setText("An even fancier name");
+
+        verify(mNameSetter).accept("An even fancier name");
+        verifyNoMoreInteractions(mNameSetter);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
index c1c4d61..3efa5f0 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeExitAtAlarmPreferenceControllerTest.java
@@ -21,14 +21,21 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
+import android.app.Flags;
 import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenModeConfig;
 
 import androidx.preference.TwoStatePreference;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -39,7 +46,11 @@
 import java.util.Calendar;
 
 @RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
 public class ZenModeExitAtAlarmPreferenceControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private Context mContext;
     @Mock
     private ZenModesBackend mBackend;
@@ -65,10 +76,9 @@
         scheduleInfo.endHour = 2;
         scheduleInfo.exitAtAlarm = false;
 
-        ZenMode mode = new ZenMode("id",
-                new AutomaticZenRule.Builder("name",
-                        ZenModeConfig.toScheduleConditionId(scheduleInfo)).build(),
-                true);  // is active
+        ZenMode mode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
+                .build();
 
         // need to call updateZenMode for the first call
         mPrefController.updateZenMode(preference, mode);
@@ -94,10 +104,9 @@
         scheduleInfo.endHour = 2;
         scheduleInfo.exitAtAlarm = true;
 
-        ZenMode mode = new ZenMode("id",
-                new AutomaticZenRule.Builder("name",
-                        ZenModeConfig.toScheduleConditionId(scheduleInfo)).build(),
-                true);  // is active
+        ZenMode mode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
+                .build();
         mPrefController.updateZenMode(preference, mode);
 
         // turn off exit at alarm
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentBaseTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentBaseTest.java
new file mode 100644
index 0000000..21f19ff
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentBaseTest.java
@@ -0,0 +1,364 @@
+/*
+ * 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.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.android.settings.notification.modes.CharSequenceTruth.assertThat;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.same;
+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 static org.robolectric.Shadows.shadowOf;
+
+import android.app.Flags;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle.State;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.collect.ImmutableList;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.ShadowContentResolver;
+import org.robolectric.shadows.ShadowLooper;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeFragmentBaseTest {
+
+    private static final Uri SETTINGS_URI = Settings.Global.getUriFor(
+            Settings.Global.ZEN_MODE_CONFIG_ETAG);
+
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Mock ZenModesBackend mBackend;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void fragment_noArguments_finishes() {
+        when(mBackend.getMode(any())).thenReturn(TestModeBuilder.EXAMPLE);
+
+        FragmentScenario<TestableFragment> scenario = createScenario(null);
+
+        scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+            assertThat(fragment.requireActivity().isFinishing()).isTrue();
+        });
+
+        scenario.close();
+    }
+
+    @Test
+    public void fragment_modeDoesNotExist_finishes() {
+        when(mBackend.getMode(any())).thenReturn(null);
+
+        FragmentScenario<TestableFragment> scenario = createScenario("mode_id");
+
+        scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+            assertThat(fragment.requireActivity().isFinishing()).isTrue();
+        });
+
+        scenario.close();
+    }
+
+    @Test
+    public void fragment_validMode_updatesControllersOnce() {
+        ZenMode mode = new TestModeBuilder().setId("mode_id").build();
+        when(mBackend.getMode("mode_id")).thenReturn(mode);
+
+        FragmentScenario<TestableFragment> scenario = createScenario("mode_id");
+
+        scenario.moveToState(State.CREATED).onFragment(fragment -> {
+            assertThat(fragment.mShowsId.getZenMode()).isEqualTo(mode);
+            assertThat(fragment.mShowsId.isAvailable()).isTrue();
+            assertThat(fragment.mAvailableIfEnabled.getZenMode()).isEqualTo(mode);
+            assertThat(fragment.mAvailableIfEnabled.isAvailable()).isTrue();
+
+            verify(fragment.mShowsId, never()).updateState(any(), any());
+            verify(fragment.mAvailableIfEnabled, never()).updateState(any(), any());
+        });
+
+        scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+            Preference preferenceOne = fragment.requirePreference("pref_id");
+            assertThat(preferenceOne.getSummary()).isEqualTo("Id is mode_id");
+
+            verify(fragment.mShowsId).updateState(any(), eq(mode));
+            verify(fragment.mAvailableIfEnabled).updateState(any(), eq(mode));
+        });
+
+        scenario.close();
+    }
+
+    @Test
+    public void fragment_onStartToOnStop_hasRegisteredContentObserver() {
+        when(mBackend.getMode(any())).thenReturn(TestModeBuilder.EXAMPLE);
+        FragmentScenario<TestableFragment> scenario = createScenario("id");
+
+        scenario.moveToState(State.CREATED).onFragment(fragment ->
+                assertThat(getSettingsContentObservers(fragment)).isEmpty());
+
+        scenario.moveToState(State.STARTED).onFragment(fragment ->
+                assertThat(getSettingsContentObservers(fragment)).hasSize(1));
+
+        scenario.moveToState(State.RESUMED).onFragment(fragment ->
+                assertThat(getSettingsContentObservers(fragment)).hasSize(1));
+
+        scenario.moveToState(State.STARTED).onFragment(fragment ->
+                assertThat(getSettingsContentObservers(fragment)).hasSize(1));
+
+        scenario.moveToState(State.CREATED).onFragment(fragment ->
+                assertThat(getSettingsContentObservers(fragment)).isEmpty());
+
+        scenario.close();
+    }
+
+    @Test
+    public void fragment_onModeUpdatedWithDifferences_updatesControllers() {
+        ZenMode originalMode = new TestModeBuilder().setId("id").setName("Original").build();
+        when(mBackend.getMode("id")).thenReturn(originalMode);
+
+        FragmentScenario<TestableFragment> scenario = createScenario("id");
+        scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+            Preference preference = fragment.requirePreference("pref_name");
+            assertThat(preference.getSummary()).isEqualTo("Original");
+            verify(fragment.mShowsName, times(1)).updateState(any(), eq(originalMode));
+
+            // Now, we get a message saying something changed.
+            ZenMode updatedMode = new TestModeBuilder().setId("id").setName("Updated").build();
+            when(mBackend.getMode("id")).thenReturn(updatedMode);
+            getSettingsContentObservers(fragment).stream().findFirst().get()
+                    .dispatchChange(false, SETTINGS_URI);
+            ShadowLooper.idleMainLooper();
+
+            // The screen was updated, and only updated once.
+            assertThat(preference.getSummary()).isEqualTo("Updated");
+            verify(fragment.mShowsName, times(1)).updateState(any(), eq(updatedMode));
+        });
+
+        scenario.close();
+    }
+
+    @Test
+    public void fragment_onModeUpdatedWithoutDifferences_setsModeInControllersButNothingElse() {
+        ZenMode originalMode = new TestModeBuilder().setId("id").setName("Original").build();
+        when(mBackend.getMode("id")).thenReturn(originalMode);
+
+        FragmentScenario<TestableFragment> scenario = createScenario("id");
+        scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+            Preference preference = fragment.requirePreference("pref_name");
+            assertThat(preference.getSummary()).isEqualTo("Original");
+            verify(fragment.mShowsName, times(1)).updateState(any(), eq(originalMode));
+
+            // Now, we get a message saying something changed, but it was for a different mode.
+            ZenMode notUpdatedMode = new TestModeBuilder(originalMode).build();
+            when(mBackend.getMode("id")).thenReturn(notUpdatedMode);
+            getSettingsContentObservers(fragment).stream().findFirst().get()
+                    .dispatchChange(false, SETTINGS_URI);
+            ShadowLooper.idleMainLooper();
+
+            // The mode instance was updated, but updateState() was not called.
+            assertThat(preference.getSummary()).isEqualTo("Original");
+            assertThat(fragment.mShowsName.getZenMode()).isSameInstanceAs(notUpdatedMode);
+            verify(fragment.mShowsName, never()).updateState(any(), same(notUpdatedMode));
+        });
+
+        scenario.close();
+    }
+
+    @Test
+    public void fragment_onFragmentRestart_reloadsMode() {
+        ZenMode originalMode = new TestModeBuilder().setId("id").setName("Original").build();
+        when(mBackend.getMode("id")).thenReturn(originalMode);
+
+        FragmentScenario<TestableFragment> scenario = createScenario("id");
+        scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+            Preference preference = fragment.requirePreference("pref_name");
+            assertThat(preference.getSummary()).isEqualTo("Original");
+            verify(fragment.mShowsName, times(1)).updateState(any(), eq(originalMode));
+        });
+
+        ZenMode updatedMode = new TestModeBuilder().setId("id").setName("Updated").build();
+        when(mBackend.getMode("id")).thenReturn(updatedMode);
+
+        scenario.moveToState(State.CREATED).moveToState(State.RESUMED).onFragment(fragment -> {
+            Preference preference = fragment.requirePreference("pref_name");
+            assertThat(preference.getSummary()).isEqualTo("Updated");
+            assertThat(fragment.mShowsName.getZenMode()).isSameInstanceAs(updatedMode);
+        });
+
+        scenario.close();
+    }
+
+    @Test
+    public void fragment_onModeDeleted_finishes() {
+        ZenMode originalMode = new TestModeBuilder().setId("mode_id").build();
+        when(mBackend.getMode("mode_id")).thenReturn(originalMode);
+
+        FragmentScenario<TestableFragment> scenario = createScenario("mode_id");
+        scenario.moveToState(State.RESUMED).onFragment(fragment -> {
+            assertThat(fragment.requireActivity().isFinishing()).isFalse();
+
+            // Now it's no longer there...
+            when(mBackend.getMode(any())).thenReturn(null);
+            getSettingsContentObservers(fragment).stream().findFirst().get()
+                    .dispatchChange(false, SETTINGS_URI);
+            ShadowLooper.idleMainLooper();
+
+            assertThat(fragment.requireActivity().isFinishing()).isTrue();
+        });
+
+        scenario.close();
+    }
+
+    private FragmentScenario<TestableFragment> createScenario(@Nullable String modeId) {
+        Bundle fragmentArgs = null;
+        if (modeId != null) {
+            fragmentArgs = new Bundle();
+            fragmentArgs.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
+        }
+
+        FragmentScenario<TestableFragment> scenario = FragmentScenario.launch(
+                TestableFragment.class, fragmentArgs, 0, State.INITIALIZED);
+
+        scenario.onFragment(fragment -> {
+            fragment.setBackend(mBackend); // Before onCreate().
+        });
+
+        return scenario;
+    }
+
+    public static class TestableFragment extends ZenModeFragmentBase {
+
+        private ShowsIdPreferenceController mShowsId;
+        private ShowsNamePreferenceController mShowsName;
+        private AvailableIfEnabledPreferenceController mAvailableIfEnabled;
+
+        @Override
+        protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+            mShowsId = spy(new ShowsIdPreferenceController(context, "pref_id"));
+            mShowsName = spy(new ShowsNamePreferenceController(context, "pref_name"));
+            mAvailableIfEnabled = spy(
+                    new AvailableIfEnabledPreferenceController(context, "pref_enabled"));
+            return ImmutableList.of(mShowsId, mShowsName, mAvailableIfEnabled);
+        }
+
+        @NonNull
+        Preference requirePreference(String key) {
+            Preference preference = getPreferenceScreen().findPreference(key);
+            checkNotNull(preference, "Didn't find preference with key " + key);
+            return preference;
+        }
+
+        ShadowContentResolver getShadowContentResolver() {
+            return shadowOf(requireActivity().getContentResolver());
+        }
+
+        @Override
+        protected int getPreferenceScreenResId() {
+            return R.xml.modes_fake_settings;
+        }
+
+        @Override
+        public int getMetricsCategory() {
+            return 0;
+        }
+    }
+
+    private static class ShowsIdPreferenceController extends AbstractZenModePreferenceController {
+
+        ShowsIdPreferenceController(@NonNull Context context, @NonNull String key) {
+            super(context, key);
+        }
+
+        @Override
+        void updateState(Preference preference, @NonNull ZenMode zenMode) {
+            preference.setSummary("Id is " + zenMode.getId());
+        }
+    }
+
+    private static class ShowsNamePreferenceController extends AbstractZenModePreferenceController {
+
+        ShowsNamePreferenceController(@NonNull Context context, @NonNull String key) {
+            super(context, key);
+        }
+
+        @Override
+        void updateState(Preference preference, @NonNull ZenMode zenMode) {
+            preference.setSummary(zenMode.getName());
+        }
+    }
+
+    private static class AvailableIfEnabledPreferenceController extends
+            AbstractZenModePreferenceController {
+
+        AvailableIfEnabledPreferenceController(@NonNull Context context, @NonNull String key) {
+            super(context, key);
+        }
+
+        @Override
+        public boolean isAvailable(@NonNull ZenMode zenMode) {
+            return zenMode.isEnabled();
+        }
+
+        @Override
+        void updateState(Preference preference, @NonNull ZenMode zenMode) {
+            preference.setSummary("Enabled is " + zenMode.isEnabled());
+        }
+    }
+
+    private ImmutableList<ContentObserver> getSettingsContentObservers(Fragment fragment) {
+        return ImmutableList.copyOf(
+                shadowOf(fragment.requireActivity().getContentResolver())
+                        .getContentObservers(SETTINGS_URI));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentTest.java
new file mode 100644
index 0000000..576e32a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeFragmentTest.java
@@ -0,0 +1,125 @@
+/*
+ * 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.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+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 ZenModeFragmentTest {
+    private static final String MODE_ID = "modeId";
+
+    @Mock
+    private ZenModesBackend mBackend;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        // set up static instance so that the fragment will get a mock version of the backend
+        ZenModesBackend.setInstance(mBackend);
+    }
+
+    // Sets up the scenario's fragment by passing in arguments setting the provided mode ID.
+    // After running this method, users can then use scenario.onFragment(fragment -> {...}) on the
+    // returned scenario to test fragment behavior.
+    private FragmentScenario<ZenModeFragment> setUpScenarioForModeId(String modeId) {
+        Bundle args = new Bundle();
+        args.putString(EXTRA_AUTOMATIC_ZEN_RULE_ID, modeId);
+        return FragmentScenario.launch(
+                ZenModeFragment.class, /* bundle= */ args, 0, Lifecycle.State.INITIALIZED);
+    }
+
+    @Test
+    public void disabledMode_redirectsToInterstitial() {
+        // Mode is disabled, and not by the user
+        ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false, false)
+                .build();
+
+        when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+
+        // actually set up fragment for testing
+        FragmentScenario scenario = setUpScenarioForModeId(MODE_ID);
+        scenario.moveToState(Lifecycle.State.STARTED);
+
+        scenario.onFragment(fragment -> {
+            // since the mode is disabled & not by the user, we should go to the next activity
+            Intent nextIntent = shadowOf(fragment.getActivity()).getNextStartedActivity();
+            assertThat(nextIntent).isNotNull();
+            assertThat(nextIntent.getComponent().getClassName()).isEqualTo(
+                    SetupInterstitialActivity.class.getCanonicalName());
+            assertThat(nextIntent.getStringExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo(MODE_ID);
+        });
+        scenario.close();
+    }
+
+    @Test
+    public void disabledMode_byUser_noRedirect() {
+        // Mode is disabled by the user
+        ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(false, true)
+                .build();
+
+        when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+        FragmentScenario scenario = setUpScenarioForModeId(MODE_ID);
+        scenario.moveToState(Lifecycle.State.STARTED);
+
+        scenario.onFragment(fragment -> {
+            // there shouldn't be a next started activity, because we don't redirect
+            Intent nextIntent = shadowOf(fragment.getActivity()).getNextStartedActivity();
+            assertThat(nextIntent).isNull();
+        });
+        scenario.close();
+    }
+
+    @Test
+    public void enabledMode_noRedirect() {
+        // enabled rule
+        ZenMode mode = new TestModeBuilder().setId(MODE_ID).setEnabled(true)
+                .build();
+
+        when(mBackend.getMode(MODE_ID)).thenReturn(mode);
+        FragmentScenario scenario = setUpScenarioForModeId(MODE_ID);
+        scenario.moveToState(Lifecycle.State.STARTED);
+
+        scenario.onFragment(fragment -> {
+            // there shouldn't be a next started activity, because we don't redirect
+            Intent nextIntent = shadowOf(fragment.getActivity()).getNextStartedActivity();
+            assertThat(nextIntent).isNull();
+        });
+        scenario.close();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
index ba9a6b8..eae606b 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeIconPickerListPreferenceControllerTest.java
@@ -19,59 +19,63 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.AutomaticZenRule;
+import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
 
 import androidx.annotation.NonNull;
 import androidx.preference.PreferenceScreen;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
 import com.android.settingslib.widget.LayoutPreference;
 
 import com.google.common.collect.ImmutableList;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
 public class ZenModeIconPickerListPreferenceControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
-    private static final ZenMode ZEN_MODE = new ZenMode(
-            "mode_id",
-            new AutomaticZenRule.Builder("mode name", Uri.parse("mode")).build(),
-            /* isActive= */ false);
-
-    private ZenModesBackend mBackend;
+    private Context mContext;
     private ZenModeIconPickerListPreferenceController mController;
-    private PreferenceScreen mPreferenceScreen;
+    @Mock private PreferenceScreen mPreferenceScreen;
+    private LayoutPreference mLayoutPreference;
     private RecyclerView mRecyclerView;
+    @Mock private ZenModeIconPickerListPreferenceController.IconPickerListener mListener;
 
     @Before
     public void setUp() {
-        Context context = RuntimeEnvironment.getApplication();
-        mBackend = mock(ZenModesBackend.class);
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.getApplication();
 
-        DashboardFragment fragment = mock(DashboardFragment.class);
         mController = new ZenModeIconPickerListPreferenceController(
-                RuntimeEnvironment.getApplication(), "icon_list", fragment,
-                new TestIconOptionsProvider(), mBackend);
+                RuntimeEnvironment.getApplication(), "icon_list", mListener,
+                new TestIconOptionsProvider());
 
-        mRecyclerView = new RecyclerView(context);
+        mRecyclerView = new RecyclerView(mContext);
         mRecyclerView.setId(R.id.icon_list);
-        LayoutPreference layoutPreference = new LayoutPreference(context, mRecyclerView);
-        mPreferenceScreen = mock(PreferenceScreen.class);
-        when(mPreferenceScreen.findPreference(eq("icon_list"))).thenReturn(layoutPreference);
+        mLayoutPreference = new LayoutPreference(mContext, mRecyclerView);
+        when(mPreferenceScreen.findPreference(eq("icon_list"))).thenReturn(mLayoutPreference);
     }
 
     @Test
@@ -83,14 +87,32 @@
     }
 
     @Test
-    public void selectIcon_updatesMode() {
-        mController.setZenMode(ZEN_MODE);
+    public void updateState_highlightsCurrentIcon() {
+        ZenMode mode = new TestModeBuilder().setIconResId(R.drawable.ic_hearing).build();
+        mController.displayPreference(mPreferenceScreen);
 
-        mController.onIconSelected(R.drawable.ic_android);
+        mController.updateZenMode(mLayoutPreference, mode);
 
-        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
-        verify(mBackend).updateMode(captor.capture());
-        assertThat(captor.getValue().getRule().getIconResId()).isEqualTo(R.drawable.ic_android);
+        assertThat(getItemViewAt(0).isSelected()).isFalse();
+        assertThat(getItemViewAt(1).isSelected()).isFalse();
+        assertThat(getItemViewAt(2).isSelected()).isTrue();
+    }
+
+    @Test
+    public void performClick_onIconItem_notifiesListener() {
+        mController.displayPreference(mPreferenceScreen);
+
+        getItemViewAt(1).performClick();
+
+        verify(mListener).onIconSelected(R.drawable.ic_info);
+    }
+
+    private View getItemViewAt(int position) {
+        ViewGroup fakeParent = new FrameLayout(mContext);
+        RecyclerView.ViewHolder viewHolder = mRecyclerView.getAdapter().onCreateViewHolder(
+                fakeParent, 0);
+        mRecyclerView.getAdapter().bindViewHolder(viewHolder, position);
+        return viewHolder.itemView;
     }
 
     private static class TestIconOptionsProvider implements IconOptionsProvider {
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
index cfeefb4..fad4f2a 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeMessagesLinkPreferenceControllerTest.java
@@ -16,20 +16,19 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
+
 import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -40,6 +39,7 @@
 import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
 public final class ZenModeMessagesLinkPreferenceControllerTest {
 
     private ZenModeMessagesLinkPreferenceController mController;
@@ -48,8 +48,7 @@
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private Context mContext;
-    @Mock
-    private ZenModesBackend mBackend;
+    @Mock private ZenHelperBackend mHelperBackend;
 
     @Before
     public void setup() {
@@ -58,20 +57,13 @@
         mContext = RuntimeEnvironment.application;
 
         mController = new ZenModeMessagesLinkPreferenceController(
-                mContext, "something", mBackend);
+                mContext, "something", mHelperBackend);
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_MODES_UI)
     public void testHasSummary() {
         Preference pref = mock(Preference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                .build(), true);
-        mController.updateZenMode(pref, zenMode);
+        mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
         verify(pref).setSummary(any());
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java
new file mode 100644
index 0000000..9aa42ea
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNewCustomFragmentTest.java
@@ -0,0 +1,155 @@
+/*
+ * 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.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
+
+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.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.Activity;
+import android.app.Flags;
+import android.content.Intent;
+import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.fragment.app.testing.EmptyFragmentActivity;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+import androidx.test.ext.junit.rules.ActivityScenarioRule;
+
+import com.android.internal.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+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)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeNewCustomFragmentTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Rule
+    public ActivityScenarioRule<EmptyFragmentActivity> mActivityScenario =
+            new ActivityScenarioRule<>(EmptyFragmentActivity.class);
+
+    private Activity mActivity;
+    private ZenModeNewCustomFragment mFragment;
+    @Mock
+    private ZenModesBackend mBackend;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mFragment = new ZenModeNewCustomFragment();
+        mFragment.setBackend(mBackend); // before onAttach()
+
+        mActivityScenario.getScenario().onActivity(activity -> {
+            mActivity = activity;
+            activity.getSupportFragmentManager().beginTransaction()
+                    .add(mFragment, "tag").commitNow();
+        });
+    }
+
+    @Test
+    public void saveMode_addsCustomManualMode() {
+        mFragment.setModeName("The first name");
+        mFragment.setModeIcon(R.drawable.ic_zen_mode_type_theater);
+        mFragment.setModeName("Actually no, this name");
+
+        mFragment.saveMode();
+
+        verify(mBackend).addCustomManualMode("Actually no, this name",
+                R.drawable.ic_zen_mode_type_theater);
+    }
+
+    @Test
+    public void saveMode_withoutEdits_addsModeWithDefaultValues() {
+        mFragment.saveMode();
+
+        verify(mBackend).addCustomManualMode("Custom mode", 0);
+    }
+
+    @Test
+    public void saveMode_redirectsToModeView() {
+        when(mBackend.addCustomManualMode(any(), anyInt())).then(
+                (Answer<ZenMode>) invocationOnMock -> new TestModeBuilder()
+                        .setId("Id of a mode named " + invocationOnMock.getArgument(0))
+                        .setName(invocationOnMock.getArgument(0))
+                        .setIconResId(invocationOnMock.getArgument(1))
+                        .build());
+
+        mFragment.setModeName("something");
+        mFragment.setModeIcon(R.drawable.ic_zen_mode_type_immersive);
+        mFragment.saveMode();
+
+        Intent nextIntent = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(nextIntent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(ZenModeFragment.class.getName());
+        Bundle fragmentArgs = nextIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+        assertThat(fragmentArgs).isNotNull();
+        assertThat(fragmentArgs.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo(
+                "Id of a mode named something");
+    }
+
+    @Test
+    public void onCreate_whenRecreating_preservesEdits() {
+        FragmentScenario<ZenModeNewCustomFragment> scenario =
+                FragmentScenario.launch(ZenModeNewCustomFragment.class, /* bundle= */ null, 0,
+                        Lifecycle.State.INITIALIZED);
+        scenario.onFragment(first -> {
+            first.setBackend(mBackend);
+            mFragment = first;
+        });
+        scenario.moveToState(Lifecycle.State.RESUMED);
+
+        // Perform some edits in the first fragment.
+        mFragment.setModeName("Don't forget me!");
+        mFragment.setModeIcon(R.drawable.ic_zen_mode_type_immersive);
+
+        // Destroy the first fragment and creates a new one (which should restore state).
+        scenario.recreate().onFragment(second -> {
+            assertThat(second).isNotSameInstanceAs(mFragment);
+            second.setBackend(mBackend);
+            mFragment = second;
+        });
+
+        mFragment.saveMode();
+        verify(mBackend).addCustomManualMode("Don't forget me!",
+                R.drawable.ic_zen_mode_type_immersive);
+        scenario.close();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
index 646c7aa..554fc6e 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisLinkPreferenceControllerTest.java
@@ -16,19 +16,19 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenPolicy;
+
 import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -47,8 +47,7 @@
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private Context mContext;
-    @Mock
-    private ZenModesBackend mBackend;
+    @Mock private ZenHelperBackend mHelperBackend;
 
     @Before
     public void setup() {
@@ -57,20 +56,14 @@
         mContext = RuntimeEnvironment.application;
 
         mController = new ZenModeNotifVisLinkPreferenceController(
-                mContext, "something", mBackend);
+                mContext, "something", mHelperBackend);
     }
 
     @Test
     @EnableFlags(Flags.FLAG_MODES_UI)
     public void testHasSummary() {
         Preference pref = mock(Preference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                .build(), true);
-        mController.updateZenMode(pref, zenMode);
+        mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
         verify(pref).setSummary(any());
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
index 54edaf4..0820846 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeNotifVisPreferenceControllerTest.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 import static android.service.notification.ZenPolicy.STATE_ALLOW;
 import static android.service.notification.ZenPolicy.STATE_DISALLOW;
 import static android.service.notification.ZenPolicy.VISUAL_EFFECT_LIGHTS;
@@ -32,17 +31,19 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
 import android.content.res.Resources;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenPolicy;
 
 import androidx.preference.TwoStatePreference;
 
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -96,15 +97,12 @@
     @Test
     public void updateState_notChecked() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowAlarms(true)
-                                .showAllVisualEffects()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .showAllVisualEffects()
+                        .build())
+                .build();
 
         mController.updateZenMode(preference, zenMode);
 
@@ -115,15 +113,12 @@
     @Test
     public void updateState_checked() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowAlarms(true)
-                                .showVisualEffect(VISUAL_EFFECT_PEEK, false)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .showVisualEffect(VISUAL_EFFECT_PEEK, false)
+                        .build())
+                .build();
 
         mController.updateZenMode(preference, zenMode);
 
@@ -138,16 +133,13 @@
                 "zen_effect_status", VISUAL_EFFECT_STATUS_BAR,
                 new int[]{VISUAL_EFFECT_NOTIFICATION_LIST}, mBackend);
 
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowAlarms(true)
-                                .showVisualEffect(VISUAL_EFFECT_NOTIFICATION_LIST, false)
-                                .showVisualEffect(VISUAL_EFFECT_STATUS_BAR, true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .showVisualEffect(VISUAL_EFFECT_NOTIFICATION_LIST, false)
+                        .showVisualEffect(VISUAL_EFFECT_STATUS_BAR, true)
+                        .build())
+                .build();
 
         mController.updateZenMode(preference, zenMode);
 
@@ -168,15 +160,12 @@
                 "zen_effect_status", VISUAL_EFFECT_STATUS_BAR,
                 new int[]{VISUAL_EFFECT_NOTIFICATION_LIST}, mBackend);
 
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowAlarms(true)
-                                .showAllVisualEffects()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .showAllVisualEffects()
+                        .build())
+                .build();
 
         mController.updateZenMode(preference, zenMode);
 
@@ -188,15 +177,12 @@
     @Test
     public void onPreferenceChanged_checkedFalse() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowAlarms(true)
-                                .hideAllVisualEffects()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .hideAllVisualEffects()
+                        .build())
+                .build();
 
         mController.updateZenMode(preference, zenMode);
 
@@ -213,15 +199,12 @@
     @Test
     public void onPreferenceChanged_checkedTrue() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowAlarms(true)
-                                .showAllVisualEffects()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .showAllVisualEffects()
+                        .build())
+                .build();
 
         mController.updateZenMode(preference, zenMode);
 
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
index 26da6ab..3db70fa 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherLinkPreferenceControllerTest.java
@@ -16,19 +16,20 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenPolicy;
-import androidx.preference.Preference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -48,8 +49,7 @@
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private Context mContext;
-    @Mock
-    private ZenModesBackend mBackend;
+    @Mock private ZenHelperBackend mHelperBackend;
 
     @Before
     public void setup() {
@@ -58,20 +58,56 @@
         mContext = RuntimeEnvironment.application;
 
         mController = new ZenModeOtherLinkPreferenceController(
-                mContext, "something", mBackend);
+                mContext, "something", mHelperBackend);
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_MODES_UI)
-    public void testHasSummary() {
-        Preference pref = mock(Preference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                .build(), true);
+    public void updateState_disabled() {
+        CircularIconsPreference pref = mock(CircularIconsPreference.class);
+        ZenMode zenMode = new TestModeBuilder()
+                .setEnabled(false)
+                .build();
+
         mController.updateZenMode(pref, zenMode);
+
+        verify(pref).setEnabled(false);
+    }
+
+    @Test
+    public void updateState_loadsSummary() {
+        CircularIconsPreference pref = mock(CircularIconsPreference.class);
+        mController.updateZenMode(pref, TestModeBuilder.EXAMPLE);
+
         verify(pref).setSummary(any());
     }
+
+    @Test
+    public void updateState_loadsIcons() {
+        CircularIconsPreference pref = mock(CircularIconsPreference.class);
+        ZenMode mode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .disallowAllSounds()
+                        .allowMedia(true)
+                        .allowSystem(true)
+                        .allowReminders(true)
+                        .build())
+                .build();
+
+        mController.updateState(pref, mode);
+
+        verify(pref).setIcons(argThat(iconSet -> iconSet.size() == 3));
+    }
+
+    @Test
+    public void updateState_loadsAllIcons() {
+        CircularIconsPreference pref = mock(CircularIconsPreference.class);
+        ZenMode mode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
+                .build();
+
+        mController.updateState(pref, mode);
+
+        verify(pref).setIcons(argThat(iconSet ->
+                iconSet.size() == ZenModeSummaryHelper.OTHER_SOUND_CATEGORIES.size()));
+    }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
index 6dd918a..8272773 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeOtherPreferenceControllerTest.java
@@ -16,21 +16,26 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 import static android.service.notification.ZenPolicy.STATE_ALLOW;
 import static android.service.notification.ZenPolicy.STATE_UNSET;
+
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenPolicy;
+
 import androidx.preference.TwoStatePreference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -61,12 +66,9 @@
     @Test
     public void testUpdateState_alarms() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_alarm", mBackend);
@@ -79,12 +81,9 @@
     @Test
     public void testOnPreferenceChange_alarms() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(false).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_alarm", mBackend);
@@ -104,12 +103,9 @@
     @Test
     public void testUpdateState_media() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowMedia(true).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowMedia(true).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_media", mBackend);
@@ -122,12 +118,9 @@
     @Test
     public void testOnPreferenceChange_media() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowMedia(false).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowMedia(false).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_media", mBackend);
@@ -147,12 +140,9 @@
     @Test
     public void testUpdateState_system() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowSystem(true).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowSystem(true).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_system", mBackend);
@@ -165,12 +155,9 @@
     @Test
     public void testOnPreferenceChange_system() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowSystem(false).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowSystem(false).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_system", mBackend);
@@ -190,12 +177,9 @@
     @Test
     public void testUpdateState_reminders() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowReminders(true).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowReminders(true).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_reminders",
@@ -209,12 +193,9 @@
     @Test
     public void testOnPreferenceChange_reminders() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowReminders(false).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowReminders(false).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_reminders",
@@ -235,12 +216,9 @@
     @Test
     public void testUpdateState_events() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowEvents(true).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowEvents(true).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_events", mBackend);
@@ -253,12 +231,9 @@
     @Test
     public void testOnPreferenceChange_events() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowEvents(false).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowEvents(false).build())
+                .build();
 
         ZenModeOtherPreferenceController controller =
                 new ZenModeOtherPreferenceController(mContext, "modes_category_events", mBackend);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
index 81e6464..8555d71 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePeopleLinkPreferenceControllerTest.java
@@ -16,62 +16,228 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
 
-import android.app.AutomaticZenRule;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.app.Flags;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
 import android.content.Context;
+import android.content.pm.ShortcutInfo;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.ConversationChannelWrapper;
 import android.service.notification.ZenPolicy;
-import androidx.preference.Preference;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settings.notification.modes.ZenHelperBackend.Contact;
+import com.android.settingslib.notification.ConversationIconFactory;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.MoreExecutors;
+
 import org.junit.Before;
 import org.junit.Rule;
 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;
 import org.robolectric.RuntimeEnvironment;
 
+import java.util.Collection;
+
+@EnableFlags(Flags.FLAG_MODES_UI)
 @RunWith(RobolectricTestRunner.class)
 public final class ZenModePeopleLinkPreferenceControllerTest {
 
     private ZenModePeopleLinkPreferenceController mController;
+    private CircularIconsPreference mPreference;
+    private CircularIconsView mIconsView;
 
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private Context mContext;
-    @Mock
-    private ZenModesBackend mBackend;
+    @Mock private ZenHelperBackend mHelperBackend;
+    @Mock private ConversationIconFactory mConversationIconFactory;
 
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-
         mContext = RuntimeEnvironment.application;
+        CircularIconSet.sExecutorService = MoreExecutors.newDirectExecutorService();
+        mPreference = new TestableCircularIconsPreference(mContext);
+
+        // Ensure the preference view is bound & measured (needed to add icons).
+        View preferenceView = LayoutInflater.from(mContext).inflate(mPreference.getLayoutResource(),
+                null);
+        mIconsView = checkNotNull(preferenceView.findViewById(R.id.circles_container));
+        mIconsView.setUiExecutor(MoreExecutors.directExecutor());
+        preferenceView.measure(View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY),
+                View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+        PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(preferenceView);
+        mPreference.onBindViewHolder(holder);
 
         mController = new ZenModePeopleLinkPreferenceController(
-                mContext, "something", mBackend);
+                mContext, "something", mHelperBackend, mConversationIconFactory);
+
+        setUpContacts(ImmutableList.of(), ImmutableList.of());
+        setUpImportantConversations(ImmutableList.of());
+
+        when(mHelperBackend.getContactPhoto(any())).then(
+                (Answer<Drawable>) invocationOnMock -> photoOf(invocationOnMock.getArgument(0)));
+        when(mConversationIconFactory.getConversationDrawable((ShortcutInfo) any(), any(), anyInt(),
+                anyBoolean())).thenReturn(new ColorDrawable(Color.BLACK));
     }
 
     @Test
-    @EnableFlags(Flags.FLAG_MODES_UI)
-    public void testHasSummary() {
-        Preference pref = mock(Preference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                .setType(AutomaticZenRule.TYPE_DRIVING)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                .build(), true);
-        mController.updateZenMode(pref, zenMode);
-        verify(pref).setSummary(any());
+    public void updateState_disabled() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setEnabled(false)
+                .build();
+
+        mController.updateState(mPreference, zenMode);
+
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_setsSummary() {
+        mController.updateState(mPreference, TestModeBuilder.EXAMPLE);
+
+        assertThat(mPreference.getSummary()).isNotNull();
+        assertThat(mPreference.getSummary().toString()).isNotEmpty();
+    }
+
+    @Test
+    public void updateState_starredCallsNoMessages_displaysStarredContacts() {
+        setUpContacts(ImmutableList.of(1, 2, 3, 4), ImmutableList.of(2, 3));
+        ZenMode mode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowCalls(PEOPLE_TYPE_STARRED)
+                        .allowMessages(PEOPLE_TYPE_NONE)
+                        .build())
+                .build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mIconsView.getDisplayedIcons()).isNotNull();
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(2);
+        assertThat(mIconsView.getDisplayedIcons().icons().stream()
+                .map(ColorDrawable.class::cast)
+                .map(d -> d.getColor()).toList())
+                .containsExactly(2, 3).inOrder();
+    }
+
+    @Test
+    public void updateState_starredCallsContactMessages_displaysAllContacts() {
+        setUpContacts(ImmutableList.of(1, 2, 3, 4), ImmutableList.of(2, 3));
+        ZenMode mode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowCalls(PEOPLE_TYPE_STARRED)
+                        .allowMessages(PEOPLE_TYPE_CONTACTS)
+                        .build())
+                .build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mIconsView.getDisplayedIcons()).isNotNull();
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(4);
+        assertThat(mIconsView.getDisplayedIcons().icons().stream()
+                .map(ColorDrawable.class::cast)
+                .map(d -> d.getColor()).toList())
+                .containsExactly(1, 2, 3, 4).inOrder();
+    }
+
+    @Test
+    public void updateState_anyoneCallsContactMessages_displaysAnyonePlaceholder() {
+        setUpContacts(ImmutableList.of(1, 2, 3, 4), ImmutableList.of(2, 3));
+        ZenMode mode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowCalls(PEOPLE_TYPE_ANYONE)
+                        .allowMessages(PEOPLE_TYPE_CONTACTS)
+                        .build())
+                .build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mIconsView.getDisplayedIcons()).isNotNull();
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(1);
+        verify(mHelperBackend, never()).getContactPhoto(any());
+    }
+
+    @Test
+    public void updateState_noContactsButImportantConversations_displaysConversations() {
+        setUpContacts(ImmutableList.of(), ImmutableList.of());
+        setUpImportantConversations(ImmutableList.of(1, 2, 3));
+        ZenMode mode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowCalls(PEOPLE_TYPE_CONTACTS)
+                        .allowMessages(PEOPLE_TYPE_CONTACTS)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+                        .build())
+                .build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mIconsView.getDisplayedIcons()).isNotNull();
+        assertThat(mIconsView.getDisplayedIcons().icons()).hasSize(3);
+        verify(mConversationIconFactory, times(3)).getConversationDrawable((ShortcutInfo) any(),
+                any(), anyInt(), anyBoolean());
+    }
+
+    private void setUpContacts(Collection<Integer> allIds, Collection<Integer> starredIds) {
+        when(mHelperBackend.getAllContacts()).thenReturn(ImmutableList.copyOf(
+                allIds.stream()
+                        .map(id -> new Contact(id, "#" + id, Uri.parse("photo://" + id)))
+                        .toList()));
+
+        when(mHelperBackend.getStarredContacts()).thenReturn(ImmutableList.copyOf(
+                starredIds.stream()
+                        .map(id -> new Contact(id, "#" + id, Uri.parse("photo://" + id)))
+                        .toList()));
+    }
+
+    private void setUpImportantConversations(Collection<Integer> ids) {
+        when(mHelperBackend.getImportantConversations()).thenReturn(ImmutableList.copyOf(
+                ids.stream()
+                        .map(id -> {
+                            ConversationChannelWrapper channel = new ConversationChannelWrapper();
+                            channel.setNotificationChannel(
+                                    new NotificationChannel(id.toString(), id.toString(),
+                                            NotificationManager.IMPORTANCE_DEFAULT));
+                            return channel;
+                        })
+                        .toList()));
+    }
+
+    private static ColorDrawable photoOf(Contact contact) {
+        return new ColorDrawable((int) contact.id());
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
index c915974..eb57094 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModePrioritySendersPreferenceControllerTest.java
@@ -16,46 +16,51 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
 import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
 import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_NONE;
-import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_UNSET;
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
-import static android.service.notification.ZenPolicy.PEOPLE_TYPE_UNSET;
-import static android.service.notification.ZenPolicy.STATE_UNSET;
+import static android.service.notification.ZenPolicy.conversationTypeToString;
+import static android.service.notification.ZenPolicy.peopleTypeToString;
 
 import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_ANY;
+import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_ANY_CONVERSATIONS;
 import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_CONTACTS;
-import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_IMPORTANT;
+import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_IMPORTANT_CONVERSATIONS;
 import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_NONE;
 import static com.android.settings.notification.modes.ZenModePrioritySendersPreferenceController.KEY_STARRED;
 
+import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenPolicy;
+import android.service.notification.ZenPolicy.ConversationSenders;
+import android.service.notification.ZenPolicy.PeopleType;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
+import androidx.preference.TwoStatePreference;
 
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
+import com.google.common.collect.ImmutableList;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -66,6 +71,9 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
+import java.util.function.Consumer;
+import java.util.function.Predicate;
+
 @RunWith(RobolectricTestRunner.class)
 @EnableFlags(Flags.FLAG_MODES_UI)
 public final class ZenModePrioritySendersPreferenceControllerTest {
@@ -77,8 +85,8 @@
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private Context mContext;
-    @Mock
-    private ZenModesBackend mBackend;
+    @Mock private ZenModesBackend mBackend;
+    @Mock private ZenHelperBackend mHelperBackend;
 
     private PreferenceCategory mMessagesPrefCategory, mCallsPrefCategory;
 
@@ -90,10 +98,11 @@
 
         mContext = RuntimeEnvironment.application;
 
-        mMessagesController = new ZenModePrioritySendersPreferenceController(
-                mContext, "messages", true, mBackend);
-        mCallsController = new ZenModePrioritySendersPreferenceController(
-                mContext, "calls", false, mBackend);
+        mMessagesController = new ZenModePrioritySendersPreferenceController(mContext, "messages",
+                true, mBackend, mHelperBackend);
+        mCallsController = new ZenModePrioritySendersPreferenceController(mContext, "calls", false,
+                mBackend, mHelperBackend);
+
         mMessagesPrefCategory = new PreferenceCategory(mContext);
         mMessagesPrefCategory.setKey(mMessagesController.getPreferenceKey());
         mCallsPrefCategory = new PreferenceCategory(mContext);
@@ -104,39 +113,34 @@
         mPreferenceScreen.addPreference(mCallsPrefCategory);
         mPreferenceScreen.addPreference(mMessagesPrefCategory);
 
-        Cursor cursor = mock(Cursor.class);
-        when(cursor.getCount()).thenReturn(1);
-        when(mBackend.queryAllContactsData()).thenReturn(cursor);
-    }
+        when(mHelperBackend.getStarredContacts()).thenReturn(ImmutableList.of());
+        when(mHelperBackend.getAllContacts()).thenReturn(
+                ImmutableList.of(new ZenHelperBackend.Contact(1, "The only contact", null)));
+        when(mHelperBackend.getAllContactsCount()).thenReturn(1);
 
-    // Makes a preference with the provided key and whether it's a checkbox with
-    // mSelectorClickListener as the onClickListener set.
-    private SelectorWithWidgetPreference makePreference(
-            String key, boolean isCheckbox, boolean isMessages) {
-        final SelectorWithWidgetPreference pref =
-                new SelectorWithWidgetPreference(mContext, isCheckbox);
-        pref.setKey(key);
-        pref.setOnClickListener(
-                isMessages ? mMessagesController.mSelectorClickListener
-                        : mCallsController.mSelectorClickListener);
-        return pref;
+        when(mHelperBackend.getImportantConversations()).thenReturn(ImmutableList.of());
+        when(mHelperBackend.getAllConversations()).thenReturn(ImmutableList.of());
     }
 
     @Test
     public void testDisplayPreferences_makeMessagesPrefs() {
         mMessagesController.displayPreference(mPreferenceScreen);
 
-        // Starred contacts, Contacts, Priority Conversations, Any, None
-        assertThat(mMessagesPrefCategory.getPreferenceCount()).isEqualTo(5);
+        // "Any Conversations" is invisible by default.
+        assertThat(getAllOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED, KEY_CONTACTS,
+                KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS, KEY_ANY, KEY_NONE).inOrder();
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED,
+                KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_ANY, KEY_NONE).inOrder();
     }
 
     @Test
     public void testDisplayPreferences_makeCallsPrefs() {
         mCallsController.displayPreference(mPreferenceScreen);
 
-        assertThat(mCallsPrefCategory.getPreferenceCount()).isEqualTo(4);
-        assertThat((Comparable<?>) mCallsPrefCategory.findPreference(KEY_IMPORTANT)).isNull();
-
+        assertThat(getAllOptions(mCallsPrefCategory)).containsExactly(KEY_STARRED, KEY_CONTACTS,
+                KEY_ANY, KEY_NONE).inOrder();
+        assertThat(getVisibleOptions(mCallsPrefCategory)).containsExactly(KEY_STARRED, KEY_CONTACTS,
+                KEY_ANY, KEY_NONE).inOrder();
     }
 
     @Test
@@ -153,305 +157,1213 @@
     }
 
     @Test
-    public void testKeyToSettingEndState_messagesCheck() {
-        int[] endState;
+    public void updateState_callsAny() {
+        ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_ANYONE));
+        mCallsController.displayPreference(mPreferenceScreen);
 
-        // For KEY_NONE everything should be none.
-        endState = mMessagesController.keyToSettingEndState(KEY_NONE, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+        mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
 
-        // For KEY_ANY everything should be allowed.
-        endState = mMessagesController.keyToSettingEndState(KEY_ANY, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_ANYONE);
-
-        // For [starred] contacts, we should set the priority senders, but not the conversations
-        endState = mMessagesController.keyToSettingEndState(KEY_STARRED, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mMessagesController.keyToSettingEndState(KEY_CONTACTS, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For priority conversations, we should set the conversations but not priority senders
-        endState = mMessagesController.keyToSettingEndState(KEY_IMPORTANT, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_IMPORTANT);
+        assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_ANY);
     }
 
     @Test
-    public void testKeyToSettingEndState_messagesUncheck() {
-        int[] endState;
+    public void updateState_callsContacts() {
+        ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_CONTACTS));
+        mCallsController.displayPreference(mPreferenceScreen);
 
-        // For KEY_NONE, "unchecking" still means "none".
-        endState = mMessagesController.keyToSettingEndState(KEY_NONE, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+        mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
 
-        // For KEY_ANY unchecking resets the state to "none".
-        endState = mMessagesController.keyToSettingEndState(KEY_ANY, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
-
-        // For [starred] contacts, we should unset the priority senders, but not the conversations
-        endState = mMessagesController.keyToSettingEndState(KEY_STARRED, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mMessagesController.keyToSettingEndState(KEY_CONTACTS, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For priority conversations, we should set the conversations but not priority senders
-        endState = mMessagesController.keyToSettingEndState(KEY_IMPORTANT, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+        assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_CONTACTS);
     }
 
     @Test
-    public void testKeyToSettingEndState_callsCheck() {
-        int[] endState;
+    public void updateState_callsStarredContacts() {
+        ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_STARRED));
+        mCallsController.displayPreference(mPreferenceScreen);
 
-        // For calls: we should never set conversations, as this is unrelated to calls.
-        // For KEY_NONE senders should be none.
-        endState = mCallsController.keyToSettingEndState(KEY_NONE, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
 
-        // For KEY_ANY senders should be ANY.
-        endState = mCallsController.keyToSettingEndState(KEY_ANY, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For [starred] contacts, we should set the priority senders accordingly
-        endState = mCallsController.keyToSettingEndState(KEY_STARRED, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mCallsController.keyToSettingEndState(KEY_CONTACTS, true);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_STARRED);
     }
 
     @Test
-    public void testKeyToSettingEndState_callsUncheck() {
-        int[] endState;
+    public void updateState_callsNone() {
+        ZenMode zenMode = newModeWithPolicy(p -> p.allowCalls(PEOPLE_TYPE_NONE));
+        mCallsController.displayPreference(mPreferenceScreen);
 
-        // A calls setup should never set conversations settings.
-        // For KEY_NONE, "unchecking" still means "none".
-        endState = mCallsController.keyToSettingEndState(KEY_NONE, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
 
-        // For KEY_ANY unchecking resets the state to "none".
-        endState = mCallsController.keyToSettingEndState(KEY_ANY, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For [starred] contacts, we should unset the priority senders, but not the conversations
-        endState = mCallsController.keyToSettingEndState(KEY_STARRED, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mCallsController.keyToSettingEndState(KEY_CONTACTS, false);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        assertThat(getCheckedOptions(mCallsPrefCategory)).containsExactly(KEY_NONE);
     }
 
     @Test
-    public void testSettingsToSaveOnClick_messagesCheck() {
-        int[] endState;
+    public void updateState_msgAnyConvAny() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
 
-        // For KEY_NONE everything should be none.
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_NONE, true, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
 
-        // For KEY_ANY everything should be allowed.
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_ANY, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_ANYONE);
-
-        // For [starred] contacts, we should set the priority senders, but not the conversations
-        endState =  mMessagesController.settingsToSaveOnClick(
-                KEY_STARRED, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_CONTACTS, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For priority conversations, we should set the conversations but not priority senders
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_IMPORTANT, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_IMPORTANT);
+        // Messages=ANY shows ANY checked, regardless of conversations value (all conversations are
+        // messages and will get through).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY);
     }
 
     @Test
-    public void testSettingsToSaveOnClick_messagesUncheck() {
-        int[] endState;
+    public void updateState_msgAnyConvImportant() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
 
-        // For KEY_NONE, "unchecking" still means "none".
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_NONE, false, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
 
-        // For KEY_ANY unchecking resets the state to "none".
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_ANY, false, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
-
-        // For [starred] contacts, we should unset the priority senders, but not the conversations
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_STARRED, false, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_CONTACTS, false, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For priority conversations, we should set the conversations but not priority senders
-        endState = mMessagesController.settingsToSaveOnClick(
-                KEY_IMPORTANT, false, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_UNSET);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_NONE);
+        // Messages=ANY shows ANY checked, regardless of conversations value (all conversations are
+        // messages and will get through).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY);
     }
 
     @Test
-    public void testSettingsToSaveOnClick_callsCheck() {
-        int[] endState;
+    public void updateState_msgAnyConvNone() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
 
-        // For calls: we should never set conversations, as this is unrelated to calls.
-        // For KEY_NONE senders should be none.
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_NONE, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
 
-        // For KEY_ANY senders should be ANY.
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_ANY, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_ANYONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For [starred] contacts, we should set the priority senders accordingly
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_STARRED, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_STARRED);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_CONTACTS, true, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_CONTACTS);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        // Messages=ANY shows ANY checked, regardless of conversations value (all conversations are
+        // messages and will get through).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY);
     }
 
     @Test
-    public void testSettingsToSaveOnClick_callsUncheck() {
-        int[] endState;
+    public void updateState_msgContactsConvAny() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_CONTACTS)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
 
-        // A calls setup should never set conversations settings.
-        // For KEY_NONE, "unchecking" still means "none".
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_NONE, false, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(endState[0]).isEqualTo(STATE_UNSET);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
 
-        // For KEY_ANY unchecking resets the state to "none".
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_ANY, false, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        // For [starred] contacts, we should unset the priority senders, but not the conversations
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_STARRED, false, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
-
-        endState = mCallsController.settingsToSaveOnClick(
-                KEY_CONTACTS, false, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(endState[0]).isEqualTo(PEOPLE_TYPE_NONE);
-        assertThat(endState[1]).isEqualTo(CONVERSATION_SENDERS_UNSET);
+        // Shows a checked option for conversations=ANY which is normally unavailable.
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY,
+                KEY_STARRED, KEY_CONTACTS, KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS,
+                KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_CONTACTS,
+                KEY_ANY_CONVERSATIONS);
     }
 
     @Test
-    public void testSettingsToSave_messages_noChange() {
-        int[] savedSettings;
+    public void updateState_msgContactsConvImportant() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_CONTACTS)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
 
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_NONE, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-        assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
 
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_ANY, true, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-        assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
-
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_STARRED, true, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_ANYONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_CONTACTS, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_ANYONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_IMPORTANT, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_IMPORTANT);
-        assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+        // Contacts and important conversations.
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_CONTACTS,
+                KEY_IMPORTANT_CONVERSATIONS);
     }
 
     @Test
-    public void testSettingsToSave_calls_noChange() {
-        int[] savedSettings;
+    public void updateState_msgContactsConvNone() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_CONTACTS)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
 
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_NONE, true, PEOPLE_TYPE_NONE, CONVERSATION_SENDERS_NONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-        assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
 
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_ANY, true, PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
-        assertThat(savedSettings[1]).isEqualTo(STATE_UNSET);
+        // Just contacts (will include conversations with those contacts but not explicitly chosen).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_CONTACTS);
+    }
 
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_STARRED, true, PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_ANYONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
+    @Test
+    public void updateState_msgStarredConvAny() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_STARRED)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
 
-        savedSettings = mMessagesController.settingsToSaveOnClick(
-                KEY_CONTACTS, true, PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_ANYONE);
-        assertThat(savedSettings[0]).isEqualTo(STATE_UNSET);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+        // Shows a checked option for conversations=ANY which is normally unavailable.
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY,
+                KEY_STARRED, KEY_CONTACTS, KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS,
+                KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED,
+                KEY_ANY_CONVERSATIONS);
+    }
+
+    @Test
+    public void updateState_msgStarredConvImportant() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_STARRED)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+        // Starred contacts and important conversations.
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED,
+                KEY_IMPORTANT_CONVERSATIONS);
+    }
+
+    @Test
+    public void updateState_msgStarredConvNone() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_STARRED)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+        // Just starred contacts (will include conversations with those contacts but not
+        // explicitly chosen).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_STARRED);
+    }
+
+    @Test
+    public void updateState_msgNoneConvAny() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+        // Shows a checked option for conversations=ANY which is normally unavailable.
+        // Only option checked (messages=NONE is reserved for none at all).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(KEY_ANY,
+                KEY_STARRED, KEY_CONTACTS, KEY_ANY_CONVERSATIONS, KEY_IMPORTANT_CONVERSATIONS,
+                KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY_CONVERSATIONS);
+    }
+
+    @Test
+    public void updateState_msgNoneConvImportant() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+        // Only important conversations (messages=NONE is reserved for none at all).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_IMPORTANT_CONVERSATIONS);
+    }
+
+    @Test
+    public void updateState_msgNoneConvNone() {
+        ZenMode zenMode = newModeWithPolicy(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+
+        // Just starred contacts (will include conversations with those contacts but not
+        // explicitly chosen).
+        assertThat(getVisibleOptions(mMessagesPrefCategory)).containsExactly(
+                KEY_ANY, KEY_STARRED, KEY_CONTACTS, KEY_IMPORTANT_CONVERSATIONS, KEY_NONE);
+        assertThat(getCheckedOptions(mMessagesPrefCategory)).containsExactly(KEY_NONE);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=Any, Conv=Any
+
+    @Test
+    public void checkContacts_fromMsgAnyConvAny_toMsgContactsConvNone() {
+        checkSomeContacts_fromMsgAnyConvAny_toMsgSomeContactsConvNone(KEY_CONTACTS,
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    @Test
+    public void checkStarred_fromMsgAnyConvAny_toMsgStarredConvNone() {
+        checkSomeContacts_fromMsgAnyConvAny_toMsgSomeContactsConvNone(KEY_STARRED,
+                PEOPLE_TYPE_STARRED);
+    }
+
+    private void checkSomeContacts_fromMsgAnyConvAny_toMsgSomeContactsConvNone(
+            String contactsOptionKey, @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Choosing CONTACTS/STARRED will also internally switch conversations to NONE (which is
+        // fine because the user didn't see the old conv=Any, just messages=Anyone).
+        setMessagesOptionChecked(contactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgAnyConvAny_toMsgNoneConvImportant() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgAnyConvAny_toMsgNoneConvAny() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Normally this option won't be visible, but it could be if the page was launched with
+        // conv=Any previously.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void uncheckAnyone_fromMsgAnyConvAny_toMsgNoneConvNone() {
+        uncheckAnyone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkNone_fromMsgAnyConvAny_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE, CONVERSATION_SENDERS_ANYONE);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=Any, Conv=Important
+
+    @Test
+    public void checkContacts_fromMsgAnyConvImportant_toMsgContactsConvNone() {
+        checkSomeContacts_fromMsgAnyConvImportant_toMsgSomeContactsConvNone(KEY_CONTACTS,
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    @Test
+    public void checkStarred_fromMsgAnyConvImportant_toMsgStarredConvNone() {
+        checkSomeContacts_fromMsgAnyConvImportant_toMsgSomeContactsConvNone(KEY_STARRED,
+                PEOPLE_TYPE_STARRED);
+    }
+
+    private void checkSomeContacts_fromMsgAnyConvImportant_toMsgSomeContactsConvNone(
+            String contactsOptionKey, @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Choosing CONTACTS/STARRED will also internally switch conversations to NONE (which is
+        // fine because the user didn't see the old setting, just messages=Anyone).
+        setMessagesOptionChecked(contactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgAnyConvImportant_toMsgNoneConvImportant() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Although conv=IMPORTANT previously, we show it as Anyone, so selecting important
+        // conversations should switch to important conversations only.
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgAnyConvImportant_toMsgNoneConvAny() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Normally this option won't be visible, but it could be if the page was launched with
+        // conv=Any previously.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void uncheckAnyone_fromMsgAnyConvImportant_toMsgNoneConvNone() {
+        uncheckAnyone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkNone_fromMsgAnyConvImportant_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=Any, Conv=None
+
+    @Test
+    public void checkContacts_fromMsgAnyConvNone_toMsgContactsConvNone() {
+        checkSomeContacts_fromMsgAnyConvNone_toMsgSomeContactsConvNone(KEY_CONTACTS,
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    @Test
+    public void checkStarred_fromMsgAnyConvNone_toMsgStarredConvNone() {
+        checkSomeContacts_fromMsgAnyConvNone_toMsgSomeContactsConvNone(KEY_STARRED,
+                PEOPLE_TYPE_STARRED);
+    }
+
+    private void checkSomeContacts_fromMsgAnyConvNone_toMsgSomeContactsConvNone(
+            String contactsOptionKey, @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        // Choosing CONTACTS/STARRED will also internally switch conversations to NONE (which is
+        // fine because the user didn't see the old setting, just messages=Anyone).
+        setMessagesOptionChecked(contactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgAnyConvNone_toMsgNoneConvImportant() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgAnyConvNone_toMsgNoneConvAny() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_ANYONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        // Normally this option won't be visible, but it could be if the page was launched with
+        // conv=Any previously.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void uncheckAnyone_fromMsgAnyConvNone_toMsgNoneConvNone() {
+        uncheckAnyone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkNone_fromMsgAnyConvNone_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_ANYONE,
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=Contacts OR Starred, Conv=Any
+
+    @Test
+    public void switchContacts_fromMsgStarredConvAny_toMsgContactsConvAny() {
+        switchContacts_fromMsgSomeContactsConvAny_toMsgOtherContactsConvAny(PEOPLE_TYPE_STARRED,
+                KEY_CONTACTS, PEOPLE_TYPE_CONTACTS);
+    }
+
+    @Test
+    public void switchContacts_fromMsgContactsConvAny_toMsgStarredConvAny() {
+        switchContacts_fromMsgSomeContactsConvAny_toMsgOtherContactsConvAny(PEOPLE_TYPE_CONTACTS,
+                KEY_STARRED, PEOPLE_TYPE_STARRED);
+    }
+
+    private void switchContacts_fromMsgSomeContactsConvAny_toMsgOtherContactsConvAny(
+            @PeopleType int fromMessageSenders, String checkingContactsOptionKey,
+            @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Switching CONTACTS/STARRED or vice-versa will leave conversations untouched.
+        setMessagesOptionChecked(checkingContactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void uncheckStarred_fromMsgStarredConvAny_toMsgNoneConvAny() {
+        uncheckSomeContacts_fromMsgSomeContactsConvAny_toMsgNoneConvAny(PEOPLE_TYPE_STARRED,
+                KEY_STARRED);
+    }
+
+    @Test
+    public void uncheckContacts_fromMsgContactsConvAny_toMsgNoneConvAny() {
+        uncheckSomeContacts_fromMsgSomeContactsConvAny_toMsgNoneConvAny(
+                PEOPLE_TYPE_CONTACTS, KEY_CONTACTS);
+    }
+
+    private void uncheckSomeContacts_fromMsgSomeContactsConvAny_toMsgNoneConvAny(
+            @PeopleType int fromMessageSenders, String checkingContactsOptionKey) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Unchecking CONTACTS or STARRED will leave conversations untouched.
+        setMessagesOptionChecked(checkingContactsOptionKey, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgStarredConvAny_toMsgStarredConvImportant() {
+        checkImportantConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvImportant(
+                PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgContactsConvAny_toMsgContactsConvImportant() {
+        checkImportantConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvImportant(
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void checkImportantConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvImportant(
+            @PeopleType int fromMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Choosing important conversations leaves contacts untouched.
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void uncheckAnyConv_fromMsgStarredConvAny_toMsgStarredConvNone() {
+        uncheckAnyConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvNone(
+                PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void uncheckAnyConv_fromMsgContactsConvAny_toMsgContactsConvNone() {
+        uncheckAnyConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvNone(
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void uncheckAnyConv_fromMsgSomeContactsConvAny_toMsgSomeContactsConvNone(
+            @PeopleType int fromMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Unmarking any conversation leaves contacts untouched.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgStarredConvAny_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_STARRED,
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgContactsConvAny_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_CONTACTS,
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkNone_fromMsgStarredConvAny_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_STARRED, CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkNone_fromMsgContactsConvAny_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_CONTACTS, CONVERSATION_SENDERS_ANYONE);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=Contacts OR Starred, Conv=Important
+
+    @Test
+    public void switchContacts_fromMsgStarredConvImportant_toMsgContactsConvImportant() {
+        switchContacts_fromMsgSomeContactsConvImportant_toMsgOtherContactsConvImportant(
+                PEOPLE_TYPE_CONTACTS, KEY_STARRED, PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void switchContacts_fromMsgContactsConvImportant_toMsgStarredConvImportant() {
+        switchContacts_fromMsgSomeContactsConvImportant_toMsgOtherContactsConvImportant(
+                PEOPLE_TYPE_STARRED, KEY_CONTACTS, PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void switchContacts_fromMsgSomeContactsConvImportant_toMsgOtherContactsConvImportant(
+            @PeopleType int fromMessageSenders, String checkingContactsOptionKey,
+            @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Switching CONTACTS/STARRED or vice-versa will leave conversations untouched.
+        setMessagesOptionChecked(checkingContactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void uncheckStarred_fromMsgStarredConvImportant_toMsgNoneConvImportant() {
+        uncheckSomeContacts_fromMsgSomeContactsConvImportant_toMsgNoneConvImportant(
+                PEOPLE_TYPE_STARRED, KEY_STARRED);
+    }
+
+    @Test
+    public void uncheckContacts_fromMsgContactsConvImportant_toMsgNoneConvImportant() {
+        uncheckSomeContacts_fromMsgSomeContactsConvImportant_toMsgNoneConvImportant(
+                PEOPLE_TYPE_CONTACTS, KEY_CONTACTS);
+    }
+
+    private void uncheckSomeContacts_fromMsgSomeContactsConvImportant_toMsgNoneConvImportant(
+            @PeopleType int fromMessageSenders, String checkingContactsOptionKey) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Unchecking CONTACTS or STARRED will leave conversations untouched.
+        setMessagesOptionChecked(checkingContactsOptionKey, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void uncheckImportantConv_fromMsgStarredConvImportant_toMsgStarredConvNone() {
+        uncheckImportantConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvNone(
+                PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void uncheckImportantConv_fromMsgContactsConvImportant_toMsgContactsConvNone() {
+        uncheckImportantConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvNone(
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void uncheckImportantConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvNone(
+            @PeopleType int fromMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Deselecting important conversations leaves contacts untouched.
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgStarredConvImportant_toMsgStarredConvAny() {
+        checkAnyConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvAny(
+                PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgContactsConvImportant_toMsgContactsConvAny() {
+        checkAnyConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvAny(
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void checkAnyConv_fromMsgSomeContactsConvImportant_toMsgSomeContactsConvAny(
+            @PeopleType int fromMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Selecting any conversations leaves contacts untouched.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgStarredConvImportant_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_STARRED,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgContactsConvImportant_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_CONTACTS,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkNone_fromMsgStarredConvImportant_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_STARRED,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkNone_fromMsgContactsConvImportant_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_CONTACTS,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=Contacts OR Starred, Conv=None
+
+    @Test
+    public void switchContacts_fromMsgStarredConvNone_toMsgContactsConvNone() {
+        switchContacts_fromMsgSomeContactsConvNone_toMsgSomeContactsConvNone(PEOPLE_TYPE_CONTACTS,
+                KEY_STARRED, PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void switchContacts_fromMsgContactsConvNone_toMsgStarredConvNone() {
+        switchContacts_fromMsgSomeContactsConvNone_toMsgSomeContactsConvNone(PEOPLE_TYPE_STARRED,
+                KEY_CONTACTS, PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void switchContacts_fromMsgSomeContactsConvNone_toMsgSomeContactsConvNone(
+            @PeopleType int fromMessageSenders, String checkingContactsOptionKey,
+            @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        // Switching CONTACTS/STARRED or vice-versa will leave conversations untouched.
+        setMessagesOptionChecked(checkingContactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void uncheckStarred_fromMsgStarredConvNone_toMsgNoneConvNone() {
+        uncheckSomeContacts_fromMsgSomeContactsConvNone_toMsgNoneConvNone(
+                PEOPLE_TYPE_STARRED, KEY_STARRED);
+    }
+
+    @Test
+    public void uncheckContacts_fromMsgContactsConvNone_toMsgNoneConvNone() {
+        uncheckSomeContacts_fromMsgSomeContactsConvNone_toMsgNoneConvNone(
+                PEOPLE_TYPE_CONTACTS, KEY_CONTACTS);
+    }
+
+    private void uncheckSomeContacts_fromMsgSomeContactsConvNone_toMsgNoneConvNone(
+            @PeopleType int fromMessageSenders, String checkingContactsOptionKey) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        // Unchecking CONTACTS or STARRED will leave conversations untouched.
+        setMessagesOptionChecked(checkingContactsOptionKey, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgStarredConvNone_toMsgSomeContactsConvImportant() {
+        checkImportantConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvImportant(
+                PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgContactsConvNone_toMsgSomeContactsConvImportant() {
+        checkImportantConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvImportant(
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void checkImportantConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvImportant(
+            @PeopleType int fromMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        // Deselecting important conversations leaves contacts untouched.
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgStarredConvNone_toMsgStarredConvAny() {
+        checkAnyConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvAny(PEOPLE_TYPE_STARRED);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgContactsConvNone_toMsgContactsConvAny() {
+        checkAnyConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvAny(PEOPLE_TYPE_CONTACTS);
+    }
+
+    private void checkAnyConv_fromMsgSomeContactsConvNone_toMsgSomeContactsConvAny(
+            @PeopleType int fromMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMessageSenders)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Selecting any conversations leaves contacts untouched.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(fromMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgStarredConvNone_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_STARRED,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgContactsConvNone_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_CONTACTS,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkNone_fromMsgStarredConvNone_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_STARRED,
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkNone_fromMsgContactsConvNone_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_CONTACTS,
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=None, Conv=Any
+
+    @Test
+    public void checkContacts_fromMsgNoneConvAny_toMsgContactsConvAny() {
+        checkSomeContacts_fromMsgNoneConvAny_toMsgSomeContactsConvAny(KEY_CONTACTS,
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    @Test
+    public void checkStarred_fromMsgNoneConvAny_toMsgStarredConvAny() {
+        checkSomeContacts_fromMsgNoneConvAny_toMsgSomeContactsConvAny(KEY_STARRED,
+                PEOPLE_TYPE_STARRED);
+    }
+
+    private void checkSomeContacts_fromMsgNoneConvAny_toMsgSomeContactsConvAny(
+            String contactsOptionKey, @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        // Adding CONTACTS/STARRED will leave conversations untouched.
+        setMessagesOptionChecked(contactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgNoneConvAny_toMsgNoneConvImportant() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void uncheckAnyConv_fromMsgNoneConvAny_toMsgNoneConvNone() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_ANYONE));
+
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgNoneConvAny_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_NONE,
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkNone_fromMsgNoneConvAny_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_NONE,
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=None, Conv=Important
+
+    @Test
+    public void checkContacts_fromMsgNoneConvImportant_toMsgContactsConvImportant() {
+        checkSomeContacts_fromMsgNoneConvImportant_toMsgSomeContactsConvImportant(KEY_CONTACTS,
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    @Test
+    public void checkStarred_fromMsgNoneConvImportant_toMsgStarredConvImportant() {
+        checkSomeContacts_fromMsgNoneConvImportant_toMsgSomeContactsConvImportant(KEY_STARRED,
+                PEOPLE_TYPE_STARRED);
+    }
+
+    private void checkSomeContacts_fromMsgNoneConvImportant_toMsgSomeContactsConvImportant(
+            String contactsOptionKey, @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Adding CONTACTS/STARRED will leave conversations untouched.
+        setMessagesOptionChecked(contactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void uncheckImportantConv_fromMsgNoneConvImportant_toMsgNoneConvNone() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgNoneConvImportant_toMsgNoneConvAny() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_IMPORTANT));
+
+        // Normally this option won't be visible, but it could be if the page was launched with
+        // conv=Any previously.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgNoneConvImportant_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_NONE,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkNone_fromMsgNoneConvImportant_toMsgNoneConvNone() {
+        checkNone_fromState_toMsgNoneConvNone(PEOPLE_TYPE_NONE,
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, starting with Msg=None, Conv=None
+
+    @Test
+    public void checkContacts_fromMsgNoneConvNone_toMsgContactsConvNone() {
+        checkSomeContacts_fromMsgNoneConvNone_toMsgSomeContactsConvNone(KEY_CONTACTS,
+                PEOPLE_TYPE_CONTACTS);
+    }
+
+    @Test
+    public void checkStarred_fromMsgNoneConvNone_toMsgStarredConvNone() {
+        checkSomeContacts_fromMsgNoneConvNone_toMsgSomeContactsConvNone(KEY_STARRED,
+                PEOPLE_TYPE_STARRED);
+    }
+
+    private void checkSomeContacts_fromMsgNoneConvNone_toMsgSomeContactsConvNone(
+            String contactsOptionKey, @PeopleType int toMessageSenders) {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        // Choosing CONTACTS/STARRED will leave conversations untouched.
+        setMessagesOptionChecked(contactsOptionKey, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(toMessageSenders);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void checkImportantConv_fromMsgNoneConvNone_toMsgNoneConvImportant() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        setMessagesOptionChecked(KEY_IMPORTANT_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_IMPORTANT);
+    }
+
+    @Test
+    public void checkAnyConv_fromMsgNoneConvNone_toMsgNoneConvAny() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        // Normally this option won't be visible, but it could be if the page was launched with
+        // conv=Any previously.
+        setMessagesOptionChecked(KEY_ANY_CONVERSATIONS, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    @Test
+    public void checkAnyone_fromMsgNoneConvNone_toMsgAnyConvNone() {
+        checkAnyone_fromState_toMsgAnyConvAny(PEOPLE_TYPE_NONE,
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    @Test
+    public void uncheckNone_fromMsgNoneConvNone_noChanges() {
+        setUpMessagesController(p ->
+                p.allowMessages(PEOPLE_TYPE_NONE)
+                        .allowConversations(CONVERSATION_SENDERS_NONE));
+
+        setMessagesOptionChecked(KEY_NONE, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertThat(savedPolicy.getPriorityMessageSenders()).isEqualTo(PEOPLE_TYPE_NONE);
+        assertThat(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    // --------------------------------------------------------------------------
+    // Message checkbox tests, common cases.
+
+    private void checkAnyone_fromState_toMsgAnyConvAny(@PeopleType int fromMsg,
+            @ConversationSenders int fromConv) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMsg).allowConversations(fromConv));
+        String context = "Trying to check Anyone; starting with Msg=" + peopleTypeToString(fromMsg)
+                + ", Conv=" + conversationTypeToString(fromConv);
+
+        // Checking ANY will always unselect everything else in the UI, no matter the initial state,
+        // but will save PEOPLE_ANY and CONVERSATIONS_ANY (which is redundant but equivalent).
+        setMessagesOptionChecked(KEY_ANY, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertWithMessage(context).that(savedPolicy.getPriorityMessageSenders()).isEqualTo(
+                PEOPLE_TYPE_ANYONE);
+        assertWithMessage(context).that(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_ANYONE);
+    }
+
+    private void uncheckAnyone_fromState_toMsgNoneConvNone(@PeopleType int fromMsg,
+            @ConversationSenders int fromConv) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMsg).allowConversations(fromConv));
+        String context = "Trying to uncheck Anyone; starting with Msg=" + peopleTypeToString(
+                fromMsg) + ", Conv=" + conversationTypeToString(fromConv);
+
+        // Unchecking ANYONE means NONE to both, even if Anyone was previously Msg=Any&Conv=Any or
+        // Msg=Any&Conv=Important.
+        setMessagesOptionChecked(KEY_ANY, false);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertWithMessage(context).that(savedPolicy.getPriorityMessageSenders()).isEqualTo(
+                PEOPLE_TYPE_NONE);
+        assertWithMessage(context).that(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    private void checkNone_fromState_toMsgNoneConvNone(@PeopleType int fromMsg,
+            @ConversationSenders int fromConv) {
+        setUpMessagesController(p ->
+                p.allowMessages(fromMsg).allowConversations(fromConv));
+        String context = "Trying to check None; starting with Msg=" + peopleTypeToString(fromMsg)
+                + ", Conv=" + conversationTypeToString(fromConv);
+
+        // Checking NONE will always unselect everything else, no matter the initial state.
+        setMessagesOptionChecked(KEY_NONE, true);
+        ZenPolicy savedPolicy = getSavedPolicy();
+
+        assertWithMessage(context).that(savedPolicy.getPriorityMessageSenders()).isEqualTo(
+                PEOPLE_TYPE_NONE);
+        assertWithMessage(context).that(savedPolicy.getPriorityConversationSenders()).isEqualTo(
+                CONVERSATION_SENDERS_NONE);
+    }
+
+    private void setUpMessagesController(Consumer<ZenPolicy.Builder> policyMaker) {
+        ZenMode zenMode = newModeWithPolicy(policyMaker);
+        mMessagesController.displayPreference(mPreferenceScreen);
+        mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
+    }
+
+    private static ZenMode newModeWithPolicy(Consumer<ZenPolicy.Builder> policyMaker) {
+        ZenPolicy.Builder policyBuilder = new ZenPolicy.Builder();
+        policyMaker.accept(policyBuilder);
+        return new TestModeBuilder().setZenPolicy(policyBuilder.build()).build();
+    }
+
+    private static ImmutableList<String> getAllOptions(PreferenceCategory category) {
+        return getOptions(category, o -> true);
+    }
+
+    private static ImmutableList<String> getVisibleOptions(PreferenceCategory category) {
+        return getOptions(category, Preference::isVisible);
+    }
+
+    private static ImmutableList<String> getCheckedOptions(PreferenceCategory category) {
+        return getOptions(category, TwoStatePreference::isChecked);
+    }
+
+    private static ImmutableList<String> getOptions(PreferenceCategory category,
+            Predicate<SelectorWithWidgetPreference> filter) {
+        ImmutableList.Builder<String> keys = new ImmutableList.Builder<>();
+        for (int i = 0; i < category.getPreferenceCount(); i++) {
+            SelectorWithWidgetPreference option =
+                    (SelectorWithWidgetPreference) category.getPreference(i);
+            if (filter.test(option)) {
+                keys.add(category.getPreference(i).getKey());
+            }
+        }
+        return keys.build();
+    }
+
+
+    private static void setOptionChecked(PreferenceCategory category, String key, boolean checked) {
+        SelectorWithWidgetPreference preference = checkNotNull(category.findPreference(key));
+        if (preference.isChecked() == checked) {
+            throw new IllegalArgumentException(
+                    "This test is trying to " + (checked ? "check" : "uncheck") + " " + key
+                            + ", but it's already " + (checked ? "checked" : "unchecked") + "!");
+        }
+        preference.performClick();
+    }
+
+    private void setMessagesOptionChecked(String key, boolean checked) {
+        setOptionChecked(mMessagesPrefCategory, key, checked);
+    }
+
+    private ZenPolicy getSavedPolicy() {
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        return captor.getValue().getPolicy();
     }
 
     @Test
     public void testPreferenceClick_passesCorrectCheckedState_startingUnchecked_messages() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .disallowAllSounds()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .disallowAllSounds()
+                        .build())
+                .build();
 
         mMessagesController.displayPreference(mPreferenceScreen);
         mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
 
         assertThat(((SelectorWithWidgetPreference) mMessagesPrefCategory.findPreference(KEY_NONE))
-                .isChecked());
+                .isChecked()).isTrue();
 
         mMessagesPrefCategory.findPreference(KEY_STARRED).performClick();
 
@@ -463,14 +1375,11 @@
 
     @Test
     public void testPreferenceClick_passesCorrectCheckedState_startingChecked_messages() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowAllSounds()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAllSounds()
+                        .build())
+                .build();
 
         mMessagesController.displayPreference(mPreferenceScreen);
         mMessagesController.updateZenMode(mMessagesPrefCategory, zenMode);
@@ -489,14 +1398,11 @@
 
     @Test
     public void testPreferenceClick_passesCorrectCheckedState_startingUnchecked_calls() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .disallowAllSounds()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .disallowAllSounds()
+                        .build())
+                .build();
 
         mCallsController.displayPreference(mPreferenceScreen);
         mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
@@ -514,14 +1420,11 @@
 
     @Test
     public void testPreferenceClick_passesCorrectCheckedState_startingChecked_calls() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .disallowAllSounds()
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .disallowAllSounds()
+                        .build())
+                .build();
 
         mCallsController.displayPreference(mPreferenceScreen);
         mCallsController.updateZenMode(mCallsPrefCategory, zenMode);
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
index 7bbb042..c453403 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeRepeatCallersPreferenceControllerTest.java
@@ -16,24 +16,28 @@
 
 package com.android.settings.notification.modes;
 
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
 import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
-import static android.service.notification.ZenPolicy.STATE_ALLOW;
 import static android.service.notification.ZenPolicy.STATE_DISALLOW;
 import static android.service.notification.ZenPolicy.STATE_UNSET;
+
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.service.notification.ZenPolicy;
+
 import androidx.preference.TwoStatePreference;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -64,14 +68,11 @@
     @Test
     public void testUpdateState_allCalls() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowCalls(PEOPLE_TYPE_ANYONE)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowCalls(PEOPLE_TYPE_ANYONE)
+                        .build())
+                .build();
 
         ZenModeRepeatCallersPreferenceController controller =
                 new ZenModeRepeatCallersPreferenceController(mContext, "repeat", mBackend, 1);
@@ -85,15 +86,12 @@
     @Test
     public void testUpdateState_someCalls() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder()
-                                .allowCalls(PEOPLE_TYPE_STARRED)
-                                .allowRepeatCallers(true)
-                                .build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowCalls(PEOPLE_TYPE_STARRED)
+                        .allowRepeatCallers(true)
+                        .build())
+                .build();
 
         ZenModeRepeatCallersPreferenceController controller =
                 new ZenModeRepeatCallersPreferenceController(mContext, "repeat", mBackend, 1);
@@ -107,12 +105,9 @@
     @Test
     public void testOnPreferenceChange() {
         TwoStatePreference preference = mock(TwoStatePreference.class);
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowRepeatCallers(true).build())
-                        .build(), true);
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowRepeatCallers(true).build())
+                .build();
 
         ZenModeRepeatCallersPreferenceController controller =
                 new ZenModeRepeatCallersPreferenceController(mContext, "repeat", mBackend, 1);
@@ -130,4 +125,4 @@
         assertThat(captor.getValue().getPolicy().getPriorityCallSenders())
                 .isEqualTo(STATE_UNSET);
     }
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
index 6b24fa2..42aa498 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetCalendarPreferenceControllerTest.java
@@ -28,18 +28,21 @@
 
 import static org.mockito.Mockito.when;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
 import android.service.notification.ZenModeConfig;
 
 import androidx.preference.DropDownPreference;
 import androidx.preference.PreferenceCategory;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -84,9 +87,9 @@
     @Test
     @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI})
     public void updateEventMode_updatesConditionAndTriggerDescription() {
-        ZenMode mode = new ZenMode("id",
-                new AutomaticZenRule.Builder("name", Uri.parse("condition")).build(),
-                true);  // is active
+        ZenMode mode = new TestModeBuilder()
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .build();
 
         // Explicitly update preference controller with mode info first, which will also call
         // updateState()
@@ -99,6 +102,7 @@
         // apply event mode updater to existing mode
         ZenMode out = mPrefController.updateEventMode(eventInfo).apply(mode);
 
+        assertThat(out.getRule().getOwner()).isEqualTo(ZenModeConfig.getEventConditionProvider());
         assertThat(out.getRule().getConditionId()).isEqualTo(
                 ZenModeConfig.toEventConditionId(eventInfo));
         assertThat(out.getRule().getTriggerDescription()).isEqualTo("My events");
@@ -111,10 +115,9 @@
         eventInfo.calName = "Definitely A Calendar";
         eventInfo.reply = REPLY_YES;
 
-        ZenMode mode = new ZenMode("id",
-                new AutomaticZenRule.Builder("name",
-                        ZenModeConfig.toEventConditionId(eventInfo)).build(),
-                true);  // is active
+        ZenMode mode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toEventConditionId(eventInfo))
+                .build();
         mPrefController.updateZenMode(mPrefCategory, mode);
 
         // We should see mCalendar, mReply have their values set
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
index 7cf327c..d5c7f61 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetSchedulePreferenceControllerTest.java
@@ -23,12 +23,11 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.AutomaticZenRule;
 import android.app.Flags;
 import android.content.Context;
-import android.net.Uri;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
 import android.service.notification.ZenModeConfig;
 import android.view.ViewGroup;
 import android.widget.ToggleButton;
@@ -37,6 +36,9 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -80,9 +82,9 @@
     @Test
     @EnableFlags({Flags.FLAG_MODES_API, Flags.FLAG_MODES_UI})
     public void updateScheduleRule_updatesConditionAndTriggerDescription() {
-        ZenMode mode = new ZenMode("id",
-                new AutomaticZenRule.Builder("name", Uri.parse("condition")).build(),
-                true);  // is active
+        ZenMode mode = new TestModeBuilder()
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .build();
 
         ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
         scheduleInfo.days = new int[] { Calendar.MONDAY };
@@ -93,6 +95,8 @@
         assertThat(out.getRule().getConditionId())
                 .isEqualTo(ZenModeConfig.toScheduleConditionId(scheduleInfo));
         assertThat(out.getRule().getTriggerDescription()).isNotEmpty();
+        assertThat(out.getRule().getOwner()).isEqualTo(
+                ZenModeConfig.getScheduleConditionProvider());
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
deleted file mode 100644
index 91de4ea..0000000
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSetTriggerLinkPreferenceControllerTest.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * 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.modes;
-
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
-import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
-
-import static com.android.settings.notification.modes.ZenModeSetTriggerLinkPreferenceController.AUTOMATIC_TRIGGER_PREF_KEY;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.AutomaticZenRule;
-import android.app.Flags;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.platform.test.annotations.EnableFlags;
-import android.platform.test.flag.junit.SetFlagsRule;
-import android.service.notification.ZenModeConfig;
-import android.service.notification.ZenPolicy;
-
-import androidx.preference.PreferenceCategory;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settingslib.PrimarySwitchPreference;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-import java.util.Calendar;
-
-@RunWith(RobolectricTestRunner.class)
-public class ZenModeSetTriggerLinkPreferenceControllerTest {
-    @Rule
-    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
-
-    @Mock
-    private ZenModesBackend mBackend;
-    private Context mContext;
-
-    @Mock
-    private PreferenceCategory mPrefCategory;
-    @Mock
-    private PrimarySwitchPreference mPreference;
-    private ZenModeSetTriggerLinkPreferenceController mPrefController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = ApplicationProvider.getApplicationContext();
-
-        mPrefController = new ZenModeSetTriggerLinkPreferenceController(mContext,
-                "zen_automatic_trigger_category", mBackend);
-        when(mPrefCategory.findPreference(AUTOMATIC_TRIGGER_PREF_KEY)).thenReturn(mPreference);
-    }
-
-    @Test
-    @EnableFlags(Flags.FLAG_MODES_UI)
-    public void testIsAvailable() {
-        // should not be available for manual DND
-        ZenMode manualMode = ZenMode.manualDndMode(new AutomaticZenRule.Builder("Do Not Disturb",
-                        Uri.parse("manual"))
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .build(), true);
-
-        mPrefController.updateZenMode(mPrefCategory, manualMode);
-        assertThat(mPrefController.isAvailable()).isFalse();
-
-        // should be available for other modes
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
-                        .setEnabled(false)
-                        .build(), false);
-        mPrefController.updateZenMode(mPrefCategory, zenMode);
-        assertThat(mPrefController.isAvailable()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
-                        .setEnabled(false)
-                        .build(), false);
-
-        // Update preference controller with a zen mode that is not enabled
-        mPrefController.updateZenMode(mPrefCategory, zenMode);
-        verify(mPreference).setChecked(false);
-
-        // Now with the rule enabled
-        zenMode.getRule().setEnabled(true);
-        mPrefController.updateZenMode(mPrefCategory, zenMode);
-        verify(mPreference).setChecked(true);
-    }
-
-    @Test
-    public void testOnPreferenceChange() {
-        ZenMode zenMode = new ZenMode("id",
-                new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                        .setType(AutomaticZenRule.TYPE_DRIVING)
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
-                        .setEnabled(false)
-                        .build(), false);
-
-        // start with disabled rule
-        mPrefController.updateZenMode(mPrefCategory, zenMode);
-
-        // then update the preference to be checked
-        mPrefController.mSwitchChangeListener.onPreferenceChange(mPreference, true);
-
-        // verify the backend got asked to update the mode to be enabled
-        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
-        verify(mBackend).updateMode(captor.capture());
-        assertThat(captor.getValue().getRule().isEnabled()).isTrue();
-    }
-
-    @Test
-    public void testRuleLink_calendar() {
-        ZenModeConfig.EventInfo eventInfo = new ZenModeConfig.EventInfo();
-        eventInfo.calendarId = 1L;
-        eventInfo.calName = "My events";
-        ZenMode mode = new ZenMode("id", new AutomaticZenRule.Builder("name",
-                ZenModeConfig.toEventConditionId(eventInfo))
-                .setType(TYPE_SCHEDULE_CALENDAR)
-                .setTriggerDescription("My events")
-                .build(),
-                true);  // is active
-        mPrefController.updateZenMode(mPrefCategory, mode);
-
-        verify(mPreference).setTitle(R.string.zen_mode_set_calendar_link);
-        verify(mPreference).setSummary(mode.getRule().getTriggerDescription());
-
-        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        verify(mPreference).setIntent(captor.capture());
-        // Destination as written into the intent by SubSettingLauncher
-        assertThat(
-                captor.getValue().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(
-                ZenModeSetCalendarFragment.class.getName());
-    }
-
-    @Test
-    public void testRuleLink_schedule() {
-        ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
-        scheduleInfo.days = new int[] { Calendar.MONDAY, Calendar.TUESDAY, Calendar.THURSDAY };
-        scheduleInfo.startHour = 1;
-        scheduleInfo.endHour = 15;
-        ZenMode mode = new ZenMode("id", new AutomaticZenRule.Builder("name",
-                ZenModeConfig.toScheduleConditionId(scheduleInfo))
-                .setType(TYPE_SCHEDULE_TIME)
-                .setTriggerDescription("some schedule")
-                .build(),
-                true);  // is active
-        mPrefController.updateZenMode(mPrefCategory, mode);
-
-        verify(mPreference).setTitle(R.string.zen_mode_set_schedule_link);
-        verify(mPreference).setSummary(mode.getRule().getTriggerDescription());
-
-        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        verify(mPreference).setIntent(captor.capture());
-        // Destination as written into the intent by SubSettingLauncher
-        assertThat(
-                captor.getValue().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(
-                ZenModeSetScheduleFragment.class.getName());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
new file mode 100644
index 0000000..a0e1d38
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeSummaryHelperTest.java
@@ -0,0 +1,565 @@
+/*
+ * 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.modes;
+
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
+import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_IMPORTANT;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_NONE;
+import static android.service.notification.ZenPolicy.PEOPLE_TYPE_STARRED;
+import static android.service.notification.ZenPolicy.VISUAL_EFFECT_AMBIENT;
+import static android.service.notification.ZenPolicy.VISUAL_EFFECT_LIGHTS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.AutomaticZenRule;
+import android.app.Flags;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.UserInfo;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenDeviceEffects;
+import android.service.notification.ZenModeConfig;
+import android.service.notification.ZenPolicy;
+
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import com.google.common.collect.ImmutableList;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.Random;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeSummaryHelperTest {
+    private static final int WORK_PROFILE_ID = 3;
+
+    private Context mContext;
+    private ZenHelperBackend mBackend;
+
+    private ZenModeSummaryHelper mSummaryHelper;
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(
+            SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT);
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mBackend = new ZenHelperBackend(mContext);
+        mSummaryHelper = new ZenModeSummaryHelper(mContext, mBackend);
+
+        UserInfo workProfile = new UserInfo(WORK_PROFILE_ID, "Work Profile", 0);
+        workProfile.userType = UserManager.USER_TYPE_PROFILE_MANAGED;
+        UserManager userManager = mContext.getSystemService(UserManager.class);
+        shadowOf(userManager).addProfile(mContext.getUserId(), WORK_PROFILE_ID, workProfile);
+    }
+
+    @Test
+    public void getPeopleSummary_noOne() {
+        ZenPolicy policy = new ZenPolicy.Builder().disallowAllSounds().build();
+
+        assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo("No one can interrupt");
+    }
+
+    @Test
+    public void getPeopleSummary_some() {
+        ZenPolicy policy = new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_CONTACTS).build();
+
+        assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo("Some people can interrupt");
+    }
+
+    @Test
+    public void getPeopleSummary_onlyRepeatCallers() {
+        ZenPolicy policy = new ZenPolicy.Builder()
+                .disallowAllSounds()
+                .allowRepeatCallers(true)
+                .build();
+
+        assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo(
+                "Repeat callers can interrupt");
+    }
+
+    @Test
+    public void getPeopleSummary_all() {
+        ZenPolicy policy = new ZenPolicy.Builder()
+                .allowCalls(PEOPLE_TYPE_ANYONE)
+                .allowConversations(CONVERSATION_SENDERS_ANYONE)
+                .allowMessages(PEOPLE_TYPE_ANYONE)
+                .build();
+
+        assertThat(mSummaryHelper.getPeopleSummary(policy)).isEqualTo("All people can interrupt");
+    }
+
+    @Test
+    public void getMessagesSettingSummary_allMessages() {
+        ZenPolicy policy1 = new ZenPolicy.Builder()
+                .allowMessages(PEOPLE_TYPE_ANYONE)
+                .build();
+        ZenPolicy policy2 = new ZenPolicy.Builder()
+                .allowMessages(PEOPLE_TYPE_ANYONE)
+                .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+                .build();
+        ZenPolicy policy3 = new ZenPolicy.Builder()
+                .allowMessages(PEOPLE_TYPE_ANYONE)
+                .allowConversations(CONVERSATION_SENDERS_ANYONE)
+                .build();
+
+        assertThat(mSummaryHelper.getMessagesSettingSummary(policy1)).isEqualTo("Anyone");
+        assertThat(mSummaryHelper.getMessagesSettingSummary(policy2)).isEqualTo("Anyone");
+        assertThat(mSummaryHelper.getMessagesSettingSummary(policy3)).isEqualTo("Anyone");
+    }
+
+    @Test
+    public void getMessagesSettingSummary_noMessagesButSomeConversations() {
+        ZenPolicy policy1 = new ZenPolicy.Builder()
+                .allowMessages(PEOPLE_TYPE_NONE)
+                .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+                .build();
+        ZenPolicy policy2 = new ZenPolicy.Builder()
+                .allowMessages(PEOPLE_TYPE_NONE)
+                .allowConversations(CONVERSATION_SENDERS_ANYONE)
+                .build();
+
+        assertThat(mSummaryHelper.getMessagesSettingSummary(policy1)).isEqualTo(
+                "Priority conversations");
+        assertThat(mSummaryHelper.getMessagesSettingSummary(policy2)).isEqualTo(
+                "All conversations");
+    }
+
+    @Test
+    public void getMessagesSettingSummary_contactsAndConversations() {
+        ZenPolicy policy1 = new ZenPolicy.Builder()
+                .allowMessages(PEOPLE_TYPE_STARRED)
+                .allowConversations(CONVERSATION_SENDERS_IMPORTANT)
+                .build();
+        ZenPolicy policy2 = new ZenPolicy.Builder()
+                .allowMessages(PEOPLE_TYPE_STARRED)
+                .allowConversations(CONVERSATION_SENDERS_ANYONE)
+                .build();
+
+        assertThat(mSummaryHelper.getMessagesSettingSummary(policy1)).isEqualTo(
+                "Starred contacts and priority conversations");
+        assertThat(mSummaryHelper.getMessagesSettingSummary(policy2)).isEqualTo(
+                "Starred contacts and all conversations");
+    }
+
+    @Test
+    public void getOtherSoundCategoriesSummary_single() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
+                .build();
+
+        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
+                "Alarms can interrupt");
+    }
+
+    @Test
+    public void getOtherSoundCategoriesSummary_duo() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).allowMedia(true).build())
+                .build();
+
+        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
+                "Alarms and media can interrupt");
+    }
+
+    @Test
+    public void getOtherSoundCategoriesSummary_trio() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .allowMedia(true)
+                        .allowSystem(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
+                "Alarms, media, and touch sounds can interrupt");
+    }
+
+    @Test
+    public void getOtherSoundCategoriesSummary_quad() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .allowMedia(true)
+                        .allowSystem(true)
+                        .allowReminders(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
+                "Alarms, media, and 2 more can interrupt");
+    }
+
+    @Test
+    public void getOtherSoundCategoriesSummary_all() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .allowMedia(true)
+                        .allowSystem(true)
+                        .allowReminders(true)
+                        .allowEvents(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
+                "Alarms, media, and 3 more can interrupt");
+    }
+
+    @Test
+    public void getBlockedEffectsSummary_none() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .showAllVisualEffects()
+                        .allowAlarms(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
+                .isEqualTo("Notifications shown");
+    }
+
+    @Test
+    public void getBlockedEffectsSummary_some() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .showAllVisualEffects()
+                        .showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
+                .isEqualTo("Notifications partially hidden");
+    }
+
+    @Test
+    public void getBlockedEffectsSummary_all() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowAlarms(true)
+                        .hideAllVisualEffects()
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
+                .isEqualTo("Notifications hidden");
+    }
+
+    @Test
+    public void getDisplayEffectsSummary_single_notifVis() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .showAllVisualEffects()
+                        .showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
+                "Notifications partially hidden");
+    }
+
+    @Test
+    public void getDisplayEffectsSummary_single_notifVis_unusedEffect() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .showAllVisualEffects()
+                        .showVisualEffect(VISUAL_EFFECT_LIGHTS, false)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
+                "Notifications shown");
+    }
+
+    @Test
+    public void getDisplayEffectsSummary_single_displayEffect() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().showAllVisualEffects().build())
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDimWallpaper(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
+                "Dim the wallpaper");
+    }
+
+    @Test
+    public void getDisplayEffectsSummary_duo() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder().showAllVisualEffects().build())
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDimWallpaper(true)
+                        .setShouldDisplayGrayscale(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
+                "Grayscale and dim the wallpaper");
+    }
+
+    @Test
+    public void getDisplayEffectsSummary_trio() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .hideAllVisualEffects()
+                        .allowAlarms(true)
+                        .allowMedia(true)
+                        .allowSystem(true)
+                        .build())
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDisplayGrayscale(true)
+                        .setShouldDimWallpaper(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
+                "Notifications hidden, grayscale, and dim the wallpaper");
+    }
+
+    @Test
+    public void getDisplayEffectsSummary_quad() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .showAllVisualEffects()
+                        .showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
+                        .allowAlarms(true)
+                        .allowMedia(true)
+                        .allowSystem(true)
+                        .build())
+                .setDeviceEffects(new ZenDeviceEffects.Builder()
+                        .setShouldDimWallpaper(true)
+                        .setShouldDisplayGrayscale(true)
+                        .setShouldUseNightMode(true)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
+                "Notifications partially hidden, grayscale, and 2 more");
+    }
+
+    @Test
+    public void getAppsSummary_none() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getAppsSummary(zenMode, ImmutableList.of())).isEqualTo("None");
+    }
+
+    @Test
+    public void getAppsSummary_priorityAppsNoList() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+                        .build())
+                .build();
+
+        assertThat(mSummaryHelper.getAppsSummary(zenMode, null)).isEqualTo("Selected apps");
+    }
+
+    @Test
+    public void formatAppsList_listEmpty() {
+        ImmutableList<AppEntry> apps = ImmutableList.of();
+        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("No apps can interrupt");
+    }
+
+    @Test
+    public void formatAppsList_single() {
+        ImmutableList<AppEntry> apps = ImmutableList.of(newAppEntry("My App"));
+        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App can interrupt");
+    }
+
+    @Test
+    public void formatAppsList_two() {
+        ImmutableList<AppEntry> apps = ImmutableList.of(newAppEntry("My App"),
+                newAppEntry("SecondApp"));
+        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App and SecondApp "
+                + "can interrupt");
+    }
+
+    @Test
+    public void formatAppsList_three() {
+        ImmutableList<AppEntry> apps = ImmutableList.of(newAppEntry("My App"),
+                newAppEntry("SecondApp"), newAppEntry("ThirdApp"));
+        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App, SecondApp, "
+                + "and ThirdApp can interrupt");
+    }
+
+    @Test
+    public void formatAppsList_many() {
+        ImmutableList<AppEntry> apps = ImmutableList.of(newAppEntry("My App"),
+                newAppEntry("SecondApp"), newAppEntry("ThirdApp"), newAppEntry("FourthApp"),
+                newAppEntry("FifthApp"), newAppEntry("SixthApp"));
+        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App, SecondApp, "
+                + "and 4 more can interrupt");
+    }
+
+    @Test
+    public void formatAppsList_singleWorkProfile() {
+        ImmutableList<AppEntry> apps = ImmutableList.of(newAppEntry("My App", WORK_PROFILE_ID));
+        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App (Work) can interrupt");
+    }
+
+    @Test
+    public void formatAppsList_mixOfProfiles() {
+        ImmutableList<AppEntry> apps = ImmutableList.of(
+                newAppEntry("My App", mContext.getUserId()),
+                newAppEntry("My App", WORK_PROFILE_ID),
+                newAppEntry("SecondApp", mContext.getUserId()));
+        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App, My App (Work), "
+                + "and SecondApp can interrupt");
+    }
+
+    @Test
+    public void getAppsSummary_priorityApps() {
+        ZenMode zenMode = new TestModeBuilder()
+                .setZenPolicy(new ZenPolicy.Builder()
+                        .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
+                        .build())
+                .build();
+        ImmutableList<AppEntry> apps = ImmutableList.of(newAppEntry("My App"),
+                newAppEntry("SecondApp"), newAppEntry("ThirdApp"), newAppEntry("FourthApp"),
+                newAppEntry("FifthApp"), newAppEntry("SixthApp"));
+
+        assertThat(mSummaryHelper.getAppsSummary(zenMode, apps)).isEqualTo("My App, SecondApp, "
+                + "and 4 more can interrupt");
+    }
+
+    private AppEntry newAppEntry(String name) {
+        return newAppEntry(name, mContext.getUserId());
+    }
+
+    private AppEntry newAppEntry(String name, int userId) {
+        ApplicationInfo applicationInfo = new ApplicationInfo();
+        applicationInfo.uid = UserHandle.getUid(userId, new Random().nextInt(100));
+        AppEntry appEntry = new AppEntry(mContext, applicationInfo, 1);
+        appEntry.label = name;
+        return appEntry;
+    }
+
+    @Test
+    public void getModesSummary_noRules_noSummary() {
+        String summary = mSummaryHelper.getModesSummary(ImmutableList.of());
+        assertThat(summary).isEmpty();
+    }
+
+    @Test
+    public void getModesSummary_onlyDndAndNotActive_noSummary() {
+        ImmutableList<ZenMode> modes = ImmutableList.of(TestModeBuilder.MANUAL_DND_INACTIVE);
+        String summary = mSummaryHelper.getModesSummary(modes);
+        assertThat(summary).isEmpty();
+    }
+
+    @Test
+    public void getModesSummary_noRulesActive_countsOnlyEnabledAutomaticModes() {
+        ImmutableList<ZenMode> modes = ImmutableList.of(
+                TestModeBuilder.MANUAL_DND_INACTIVE, // Not automatic
+                new TestModeBuilder().setName("Auto 1").build(), // App provided automatic
+                new TestModeBuilder()
+                        .setName("Custom manual 1")
+                        .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                        .setType(AutomaticZenRule.TYPE_OTHER)
+                        .setConditionId(ZenModeConfig.toCustomManualConditionId())
+                        .build(), // Custom manual, not automatic
+                new TestModeBuilder()
+                        .setName("Disabled 1")
+                        .setEnabled(false)
+                        .build(), // Would be automatic, but it's disabled.
+                new TestModeBuilder()
+                        .setName("Sleep")
+                        .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                        .setType(AutomaticZenRule.TYPE_SCHEDULE_TIME)
+                        .build() // Time based, automatic.
+        );
+
+        String summary = mSummaryHelper.getModesSummary(modes);
+        assertThat(summary).isEqualTo("2 modes can turn on automatically");
+    }
+
+    @Test
+    public void getModesSummary_oneModeActive_listsMode() {
+        ImmutableList<ZenMode> modes = ImmutableList.of(
+                TestModeBuilder.MANUAL_DND_ACTIVE,
+                new TestModeBuilder().setName("Inactive").setActive(false).build());
+
+        String summary = mSummaryHelper.getModesSummary(modes);
+        assertThat(summary).isEqualTo("Do Not Disturb is active");
+    }
+
+    @Test
+    public void getModesSummary_twoModesActive_listsModes() {
+        ImmutableList<ZenMode> modes = ImmutableList.of(
+                TestModeBuilder.MANUAL_DND_ACTIVE,
+                new TestModeBuilder().setName("Inactive").setActive(false).build(),
+                new TestModeBuilder().setName("Active #1").setActive(true).build());
+
+        String summary = mSummaryHelper.getModesSummary(modes);
+        assertThat(summary).isEqualTo("Do Not Disturb and Active #1 are active");
+    }
+
+    @Test
+    public void getModesSummary_threeModesActive_listsModes() {
+        ImmutableList<ZenMode> modes = ImmutableList.of(
+                TestModeBuilder.MANUAL_DND_INACTIVE,
+                new TestModeBuilder().setName("Inactive #1").setActive(false).build(),
+                new TestModeBuilder().setName("Active #1").setActive(true).build(),
+                new TestModeBuilder().setName("Active #2").setActive(true).build(),
+                new TestModeBuilder().setName("Inactive #2").setActive(false).build(),
+                new TestModeBuilder().setName("Active #3").setActive(true).build());
+
+        String summary = mSummaryHelper.getModesSummary(modes);
+        assertThat(summary).isEqualTo("Active #1, Active #2, and Active #3 are active");
+    }
+
+    @Test
+    public void getModesSummary_manyModesActive_listsACouple() {
+        ImmutableList<ZenMode> modes = ImmutableList.of(
+                TestModeBuilder.MANUAL_DND_ACTIVE,
+                new TestModeBuilder().setName("Inactive #1").setActive(false).build(),
+                new TestModeBuilder().setName("Active #1").setActive(true).build(),
+                new TestModeBuilder().setName("Active #2").setActive(true).build(),
+                new TestModeBuilder().setName("Inactive #2").setActive(false).build(),
+                new TestModeBuilder().setName("Active #3").setActive(true).build());
+
+        String summary = mSummaryHelper.getModesSummary(modes);
+        assertThat(summary).isEqualTo("Do Not Disturb, Active #1, and 2 more are active");
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTest.java
deleted file mode 100644
index 0528621..0000000
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * 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.modes;
-
-import static android.app.NotificationManager.INTERRUPTION_FILTER_ALARMS;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_ALL;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_NONE;
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.AutomaticZenRule;
-import android.net.Uri;
-import android.service.notification.ZenPolicy;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class ZenModeTest {
-
-    private static final ZenPolicy ZEN_POLICY = new ZenPolicy.Builder().allowAllSounds().build();
-
-    private static final AutomaticZenRule ZEN_RULE =
-            new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                    .setType(AutomaticZenRule.TYPE_DRIVING)
-                    .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                    .setZenPolicy(ZEN_POLICY)
-                    .build();
-
-    @Test
-    public void testBasicMethods() {
-        ZenMode zenMode = new ZenMode("id", ZEN_RULE, true);
-
-        assertThat(zenMode.getId()).isEqualTo("id");
-        assertThat(zenMode.getRule()).isEqualTo(ZEN_RULE);
-        assertThat(zenMode.isManualDnd()).isFalse();
-        assertThat(zenMode.canBeDeleted()).isTrue();
-        assertThat(zenMode.isActive()).isTrue();
-
-        ZenMode manualMode = ZenMode.manualDndMode(ZEN_RULE, false);
-        assertThat(manualMode.getId()).isEqualTo(ZenMode.MANUAL_DND_MODE_ID);
-        assertThat(manualMode.isManualDnd()).isTrue();
-        assertThat(manualMode.canBeDeleted()).isFalse();
-        assertThat(manualMode.isActive()).isFalse();
-    }
-
-    @Test
-    public void getPolicy_interruptionFilterPriority_returnsZenPolicy() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(ZEN_POLICY)
-                .build(), false);
-
-        assertThat(zenMode.getPolicy()).isEqualTo(ZEN_POLICY);
-    }
-
-    @Test
-    public void getPolicy_interruptionFilterAll_returnsPolicyAllowingAll() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_ALL)
-                .setZenPolicy(ZEN_POLICY) // should be ignored
-                .build(), false);
-
-        assertThat(zenMode.getPolicy()).isEqualTo(
-                new ZenPolicy.Builder().allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                        .allowAllSounds().showAllVisualEffects().build());
-    }
-
-    @Test
-    public void getPolicy_interruptionFilterAlarms_returnsPolicyAllowingAlarms() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_ALARMS)
-                .setZenPolicy(ZEN_POLICY) // should be ignored
-                .build(), false);
-
-        assertThat(zenMode.getPolicy()).isEqualTo(
-                new ZenPolicy.Builder()
-                        .disallowAllSounds()
-                        .allowAlarms(true)
-                        .allowMedia(true)
-                        .allowPriorityChannels(false)
-                        .build());
-    }
-
-    @Test
-    public void getPolicy_interruptionFilterNone_returnsPolicyAllowingNothing() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_NONE)
-                .setZenPolicy(ZEN_POLICY) // should be ignored
-                .build(), false);
-
-        assertThat(zenMode.getPolicy()).isEqualTo(
-                new ZenPolicy.Builder()
-                        .disallowAllSounds()
-                        .hideAllVisualEffects()
-                        .allowPriorityChannels(false)
-                        .build());
-    }
-
-    @Test
-    public void setPolicy_setsInterruptionFilterPriority() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_ALARMS)
-                .build(), false);
-
-        zenMode.setPolicy(ZEN_POLICY);
-
-        assertThat(zenMode.getRule().getInterruptionFilter()).isEqualTo(
-                INTERRUPTION_FILTER_PRIORITY);
-        assertThat(zenMode.getPolicy()).isEqualTo(ZEN_POLICY);
-        assertThat(zenMode.getRule().getZenPolicy()).isEqualTo(ZEN_POLICY);
-    }
-
-    @Test
-    public void setPolicy_withAllChannelsAllowed_setsInterruptionFilterAll() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_ALARMS)
-                .setZenPolicy(ZEN_POLICY)
-                .build(), false);
-
-        zenMode.setPolicy(
-                new ZenPolicy.Builder().allowChannels(ZenMode.CHANNEL_POLICY_ALL).build());
-
-        assertThat(zenMode.getRule().getInterruptionFilter()).isEqualTo(INTERRUPTION_FILTER_ALL);
-        assertThat(zenMode.getPolicy()).isEqualTo(
-                new ZenPolicy.Builder().allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                        .allowAllSounds().showAllVisualEffects().build());
-    }
-
-    @Test
-    public void setPolicy_priorityToAllChannelsAndBack_restoresOldPolicy() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(ZEN_POLICY)
-                .build(), false);
-
-        zenMode.setPolicy(
-                new ZenPolicy.Builder().allowChannels(ZenMode.CHANNEL_POLICY_ALL).build());
-        assertThat(zenMode.getRule().getInterruptionFilter()).isEqualTo(INTERRUPTION_FILTER_ALL);
-        assertThat(zenMode.getPolicy()).isEqualTo(
-                new ZenPolicy.Builder().allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                        .allowAllSounds().showAllVisualEffects().build());
-
-        zenMode.setPolicy(
-                new ZenPolicy.Builder().allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY).build());
-
-        assertThat(zenMode.getRule().getInterruptionFilter()).isEqualTo(
-                INTERRUPTION_FILTER_PRIORITY);
-        assertThat(zenMode.getPolicy()).isEqualTo(ZEN_POLICY);
-        assertThat(zenMode.getRule().getZenPolicy()).isEqualTo(ZEN_POLICY);
-    }
-
-    @Test
-    public void setPolicy_alarmsOnlyToAllChannelsAndBack_restoresPolicySimilarToAlarmsOnly() {
-        ZenMode zenMode = new ZenMode("id", new AutomaticZenRule.Builder("Rule", Uri.EMPTY)
-                .setInterruptionFilter(INTERRUPTION_FILTER_ALARMS)
-                .build(), false);
-
-        zenMode.setPolicy(
-                new ZenPolicy.Builder().allowChannels(ZenMode.CHANNEL_POLICY_ALL).build());
-        assertThat(zenMode.getRule().getInterruptionFilter()).isEqualTo(INTERRUPTION_FILTER_ALL);
-        assertThat(zenMode.getPolicy()).isEqualTo(
-                new ZenPolicy.Builder().allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                        .allowAllSounds().showAllVisualEffects().build());
-
-        zenMode.setPolicy(
-                new ZenPolicy.Builder().allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY).build());
-
-        // We don't go back to ALARMS, but the policy must be the one the user was seeing before.
-        ZenPolicy alarmsOnlyLikePolicy = new ZenPolicy.Builder().disallowAllSounds()
-                .allowAlarms(true).allowMedia(true).allowPriorityChannels(false)
-                .build();
-        assertThat(zenMode.getRule().getInterruptionFilter()).isEqualTo(
-                INTERRUPTION_FILTER_PRIORITY);
-        assertThat(zenMode.getPolicy()).isEqualTo(alarmsOnlyLikePolicy);
-        assertThat(zenMode.getRule().getZenPolicy()).isEqualTo(alarmsOnlyLikePolicy);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceControllerTest.java
new file mode 100644
index 0000000..0d20b19
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerAddPreferenceControllerTest.java
@@ -0,0 +1,176 @@
+/*
+ * 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.modes;
+
+import static android.app.AutomaticZenRule.TYPE_OTHER;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
+
+import static com.android.settings.notification.modes.CharSequenceTruth.assertThat;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+
+import android.app.Flags;
+import android.content.Context;
+import android.net.Uri;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Calendar;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeTriggerAddPreferenceControllerTest {
+
+    private static final ZenMode CUSTOM_MANUAL_MODE = new TestModeBuilder()
+            .setConditionId(ZenModeConfig.toCustomManualConditionId())
+            .setPackage(SystemZenRules.PACKAGE_ANDROID)
+            .setType(TYPE_OTHER)
+            .setTriggerDescription("Will not be shown")
+            .build();
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
+
+    private ZenModeTriggerAddPreferenceController mController;
+
+    private Context mContext;
+    private Preference mPreference;
+    @Mock private ZenModesBackend mBackend;
+    @Mock private DashboardFragment mFragment;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+
+        PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(mContext,
+                R.xml.modes_rule_settings, null);
+
+        mController = new ZenModeTriggerAddPreferenceController(mContext,
+                "zen_add_automatic_trigger", mFragment, mBackend);
+        mPreference = preferenceScreen.findPreference("zen_add_automatic_trigger");
+    }
+
+    @Test
+    public void isAvailable_customManualMode_true() {
+        mController.setZenMode(CUSTOM_MANUAL_MODE);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_systemMode_false() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_SCHEDULE_CALENDAR)
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_appProvidedMode_false() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("com.some.package")
+                .setType(TYPE_OTHER)
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_manualDND_false() {
+        mController.setZenMode(TestModeBuilder.MANUAL_DND_INACTIVE);
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void updateState_customManualRule() {
+        ZenMode mode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toCustomManualConditionId())
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_OTHER)
+                .setTriggerDescription("Will not be shown")
+                .build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mPreference.getTitle()).isEqualTo(
+                mContext.getString(R.string.zen_mode_select_schedule));
+        assertThat(mPreference.getSummary()).isNull();
+        // Sets up a click listener to open the dialog.
+        assertThat(mPreference.getOnPreferenceClickListener()).isNotNull();
+    }
+
+    @Test
+    public void onScheduleChosen_updatesMode() {
+        ZenMode originalMode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toCustomManualConditionId())
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_OTHER)
+                .setTriggerDescription("")
+                .build();
+        mController.updateZenMode(mPreference, originalMode);
+
+        ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
+        scheduleInfo.days = new int[] { Calendar.MONDAY };
+        scheduleInfo.startHour = 12;
+        scheduleInfo.endHour = 15;
+        Uri scheduleUri = ZenModeConfig.toScheduleConditionId(scheduleInfo);
+
+        mController.mOnScheduleOptionListener.onScheduleSelected(scheduleUri);
+
+        // verify the backend got asked to update the mode to be schedule-based.
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        ZenMode updatedMode = captor.getValue();
+        assertThat(updatedMode.getType()).isEqualTo(TYPE_SCHEDULE_TIME);
+        assertThat(updatedMode.getRule().getConditionId()).isEqualTo(scheduleUri);
+        assertThat(updatedMode.getRule().getTriggerDescription()).isNotEmpty();
+        assertThat(updatedMode.getRule().getOwner()).isEqualTo(
+                ZenModeConfig.getScheduleConditionProvider());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceControllerTest.java
new file mode 100644
index 0000000..bcafe47
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerCategoryPreferenceControllerTest.java
@@ -0,0 +1,119 @@
+/*
+ * 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.modes;
+
+import static android.app.AutomaticZenRule.TYPE_OTHER;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.Flags;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeTriggerCategoryPreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
+
+    private ZenModeTriggerCategoryPreferenceController mController;
+
+    private Context mContext;
+    private Preference mPreference;
+    @Mock private ZenModesBackend mBackend;
+    @Mock private DashboardFragment mFragment;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+
+        PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(mContext,
+                R.xml.modes_rule_settings, null);
+
+        mController = new ZenModeTriggerCategoryPreferenceController(mContext,
+                "zen_automatic_trigger_category");
+        mPreference = preferenceScreen.findPreference("zen_automatic_trigger_category");
+    }
+
+    @Test
+    public void isAvailable_customManualMode_true() {
+        ZenMode mode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toCustomManualConditionId())
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_OTHER)
+                .setTriggerDescription("Will not be shown")
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_systemMode_true() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_SCHEDULE_CALENDAR)
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_appProvidedMode_true() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("com.some.package")
+                .setType(TYPE_OTHER)
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_manualDND_false() {
+        mController.setZenMode(TestModeBuilder.MANUAL_DND_INACTIVE);
+        assertThat(mController.isAvailable()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceControllerTest.java
new file mode 100644
index 0000000..b7af71b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModeTriggerUpdatePreferenceControllerTest.java
@@ -0,0 +1,370 @@
+/*
+ * 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.modes;
+
+import static android.app.AutomaticZenRule.TYPE_OTHER;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_CALENDAR;
+import static android.app.AutomaticZenRule.TYPE_SCHEDULE_TIME;
+import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
+
+import static com.android.settings.notification.modes.CharSequenceTruth.assertThat;
+
+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.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.AlertDialog;
+import android.app.Flags;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.os.Looper;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.service.notification.SystemZenRules;
+import android.service.notification.ZenModeConfig;
+import android.widget.TextView;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.ShadowAlertDialog;
+
+import java.util.Calendar;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModeTriggerUpdatePreferenceControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
+
+    private ZenModeTriggerUpdatePreferenceController mController;
+
+    private PrimarySwitchPreference mPreference;
+    @Mock private ZenModesBackend mBackend;
+    @Mock private PackageManager mPm;
+    @Mock private ConfigurationActivityHelper mConfigurationActivityHelper;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        Context context = ApplicationProvider.getApplicationContext();
+
+        PreferenceManager preferenceManager = new PreferenceManager(context);
+        PreferenceScreen preferenceScreen = preferenceManager.inflateFromResource(context,
+                R.xml.modes_rule_settings, null);
+
+        mController = new ZenModeTriggerUpdatePreferenceController(context,
+                "zen_automatic_trigger_settings", mBackend, mPm,
+                mConfigurationActivityHelper, mock(ZenServiceListing.class));
+
+        mPreference = preferenceScreen.findPreference("zen_automatic_trigger_settings");
+
+        when(mPm.getApplicationInfo(any(), anyInt())).then(
+                (Answer<ApplicationInfo>) invocationOnMock -> {
+                    ApplicationInfo appInfo = new ApplicationInfo();
+                    appInfo.packageName = invocationOnMock.getArgument(0);
+                    appInfo.labelRes = 1; // Whatever, but != 0 so that loadLabel calls PM.getText()
+                    return appInfo;
+                });
+        when(mPm.getText(any(), anyInt(), any())).then(
+                (Answer<CharSequence>) invocationOnMock ->
+                        "App named " + invocationOnMock.getArgument(0));
+    }
+
+    @Test
+    public void isAvailable_systemModeNotCustomManual_true() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_SCHEDULE_CALENDAR)
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_appProvidedMode_true() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("com.some.package")
+                .setType(TYPE_OTHER)
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_customManualMode_false() {
+        ZenMode mode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toCustomManualConditionId())
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_OTHER)
+                .build();
+        mController.setZenMode(mode);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_manualDND_false() {
+        mController.setZenMode(TestModeBuilder.MANUAL_DND_INACTIVE);
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void updateState_switchCheckedIfRuleEnabled() {
+        ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
+
+        // Update preference controller with a zen mode that is not enabled
+        mController.updateZenMode(mPreference, zenMode);
+        assertThat(mPreference.getCheckedState()).isFalse();
+
+        // Now with the rule enabled
+        zenMode.getRule().setEnabled(true);
+        mController.updateZenMode(mPreference, zenMode);
+        assertThat(mPreference.getCheckedState()).isTrue();
+    }
+
+    @Test
+    public void onPreferenceChange_toggleOn_enablesModeAfterConfirmation() {
+        // Start with a disabled mode
+        ZenMode zenMode = new TestModeBuilder().setName("The mode").setEnabled(false).build();
+        mController.updateZenMode(mPreference, zenMode);
+
+        // Flip the switch
+        mPreference.callChangeListener(true);
+        verify(mBackend, never()).updateMode(any());
+
+        AlertDialog confirmDialog = ShadowAlertDialog.getLatestAlertDialog();
+        assertThat(confirmDialog).isNotNull();
+        assertThat(confirmDialog.isShowing()).isTrue();
+        assertThat(((TextView) confirmDialog.findViewById(com.android.internal.R.id.alertTitle))
+                .getText()).isEqualTo("Enable The mode?");
+
+        // Oh wait, I forgot to confirm! Let's do that
+        confirmDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Verify the backend got asked to update the mode to be enabled
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        assertThat(captor.getValue().getRule().isEnabled()).isTrue();
+        assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+    }
+
+    @Test
+    public void onPreferenceChange_toggleOff_disablesModeAfterConfirmation() {
+        // Start with an enabled mode
+        ZenMode zenMode = new TestModeBuilder().setName("The mode").setEnabled(true).build();
+        mController.updateZenMode(mPreference, zenMode);
+
+        // Flip the switch
+        mPreference.callChangeListener(false);
+        verify(mBackend, never()).updateMode(any());
+
+        AlertDialog confirmDialog = ShadowAlertDialog.getLatestAlertDialog();
+        assertThat(confirmDialog).isNotNull();
+        assertThat(confirmDialog.isShowing()).isTrue();
+        assertThat(((TextView) confirmDialog.findViewById(com.android.internal.R.id.alertTitle))
+                .getText()).isEqualTo("Disable The mode?");
+
+        // Oh wait, I forgot to confirm! Let's do that
+        confirmDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Verify the backend got asked to update the mode to be disabled
+        ArgumentCaptor<ZenMode> captor = ArgumentCaptor.forClass(ZenMode.class);
+        verify(mBackend).updateMode(captor.capture());
+        assertThat(captor.getValue().getRule().isEnabled()).isFalse();
+        assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+    }
+
+    @Test
+    public void onPreferenceChange_ifPressCancelButton_doesNotUpdateMode() {
+        // Start with a disabled mode
+        ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
+        mController.updateZenMode(mPreference, zenMode);
+
+        // Flip the switch, then have second thoughts about it
+        mPreference.callChangeListener(true);
+        ShadowAlertDialog.getLatestAlertDialog()
+                .getButton(AlertDialog.BUTTON_NEGATIVE).performClick();
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Verify nothing changed, and the switch shows the correct (pre-change) value.
+        verify(mBackend, never()).updateMode(any());
+        assertThat(mPreference.isChecked()).isFalse();
+        assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+    }
+
+    @Test
+    public void onPreferenceChange_ifExitingDialog_doesNotUpdateMode() {
+        // Start with a disabled mode
+        ZenMode zenMode = new TestModeBuilder().setEnabled(false).build();
+        mController.updateZenMode(mPreference, zenMode);
+
+        // Flip the switch, but close the dialog without selecting either button.
+        mPreference.callChangeListener(true);
+        ShadowAlertDialog.getLatestAlertDialog().dismiss();
+        shadowOf(Looper.getMainLooper()).idle();
+
+        // Verify nothing changed, and the switch shows the correct (pre-change) value.
+        verify(mBackend, never()).updateMode(any());
+        assertThat(mPreference.isChecked()).isFalse();
+        assertThat(ShadowAlertDialog.getLatestAlertDialog().isShowing()).isFalse();
+    }
+
+    @Test
+    public void updateState_scheduleCalendarRule() {
+        ZenModeConfig.EventInfo eventInfo = new ZenModeConfig.EventInfo();
+        eventInfo.calendarId = 1L;
+        eventInfo.calName = "My events";
+        ZenMode mode = new TestModeBuilder()
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setConditionId(ZenModeConfig.toEventConditionId(eventInfo))
+                .setType(TYPE_SCHEDULE_CALENDAR)
+                .setTriggerDescription("My events")
+                .build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getTitle()).isEqualTo("Calendar events");
+        assertThat(mPreference.getSummary()).isEqualTo("My events");
+        // Destination as written into the intent by SubSettingLauncher
+        assertThat(
+                mPreference.getIntent().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(ZenModeSetCalendarFragment.class.getName());
+    }
+
+    @Test
+    public void updateState_scheduleTimeRule() {
+        ZenModeConfig.ScheduleInfo scheduleInfo = new ZenModeConfig.ScheduleInfo();
+        scheduleInfo.days = new int[]{Calendar.MONDAY, Calendar.TUESDAY, Calendar.THURSDAY};
+        scheduleInfo.startHour = 1;
+        scheduleInfo.endHour = 15;
+        ZenMode mode = new TestModeBuilder()
+                .setConditionId(ZenModeConfig.toScheduleConditionId(scheduleInfo))
+                .setPackage(SystemZenRules.PACKAGE_ANDROID)
+                .setType(TYPE_SCHEDULE_TIME)
+                .setTriggerDescription("some schedule")
+                .build();
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getTitle()).isEqualTo("1:00 AM - 3:00 PM");
+        assertThat(mPreference.getSummary()).isEqualTo("Mon - Tue, Thu");
+        // Destination as written into the intent by SubSettingLauncher
+        assertThat(
+                mPreference.getIntent().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(ZenModeSetScheduleFragment.class.getName());
+    }
+
+    @Test
+    public void updateState_appWithConfigActivity_showsLinkToConfigActivity() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("some.package")
+                .setTriggerDescription("When The Music's Over")
+                .build();
+        Intent configurationIntent = new Intent("configure the mode");
+        when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+                .thenReturn(configurationIntent);
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getTitle()).isEqualTo("App settings");
+        assertThat(mPreference.getSummary()).isEqualTo("When The Music's Over");
+        assertThat(mPreference.getIntent()).isEqualTo(configurationIntent);
+    }
+
+    @Test
+    public void updateState_appWithoutConfigActivity_showsWithoutLinkToConfigActivity() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("some.package")
+                .setTriggerDescription("When the saints go marching in")
+                .build();
+        when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+                .thenReturn(null);
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getTitle()).isEqualTo("App settings");
+        assertThat(mPreference.getSummary()).isEqualTo("When the saints go marching in");
+        assertThat(mPreference.getIntent()).isNull();
+    }
+
+    @Test
+    public void updateState_appWithoutTriggerDescriptionWithConfigActivity_showsAppNameInSummary() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("some.package")
+                .build();
+        Intent configurationIntent = new Intent("configure the mode");
+        when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+                .thenReturn(configurationIntent);
+        when(mPm.getText(any(), anyInt(), any())).thenReturn("The App Name");
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getTitle()).isEqualTo("App settings");
+        assertThat(mPreference.getSummary()).isEqualTo("Info and settings in The App Name");
+    }
+
+    @Test
+    public void updateState_appWithoutTriggerDescriptionNorConfigActivity_showsAppNameInSummary() {
+        ZenMode mode = new TestModeBuilder()
+                .setPackage("some.package")
+                .build();
+        when(mConfigurationActivityHelper.getConfigurationActivityIntentForMode(any(), any()))
+                .thenReturn(null);
+        when(mPm.getText(any(), anyInt(), any())).thenReturn("The App Name");
+
+        mController.updateState(mPreference, mode);
+
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getTitle()).isEqualTo("App settings");
+        assertThat(mPreference.getSummary()).isEqualTo("Managed by The App Name");
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesBackendTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesBackendTest.java
deleted file mode 100644
index 9483683..0000000
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesBackendTest.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * 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.modes;
-
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
-import static android.provider.Settings.Global.ZEN_MODE_OFF;
-import static android.service.notification.Condition.SOURCE_UNKNOWN;
-import static android.service.notification.Condition.STATE_FALSE;
-import static android.service.notification.Condition.STATE_TRUE;
-import static android.service.notification.ZenPolicy.STATE_ALLOW;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.AutomaticZenRule;
-import android.app.Flags;
-import android.app.NotificationManager;
-import android.app.NotificationManager.Policy;
-import android.content.Context;
-import android.net.Uri;
-import android.platform.test.annotations.EnableFlags;
-import android.platform.test.flag.junit.SetFlagsRule;
-import android.provider.Settings;
-import android.service.notification.Condition;
-import android.service.notification.ZenAdapters;
-import android.service.notification.ZenDeviceEffects;
-import android.service.notification.ZenModeConfig;
-import android.service.notification.ZenPolicy;
-
-import com.android.settings.R;
-
-import com.google.common.collect.ImmutableMap;
-
-import org.junit.Before;
-import org.junit.Rule;
-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 org.robolectric.shadows.ShadowApplication;
-
-import java.time.Duration;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@EnableFlags(Flags.FLAG_MODES_UI)
-public class ZenModesBackendTest {
-
-    private static final String ZEN_RULE_ID = "rule";
-    private static final AutomaticZenRule ZEN_RULE =
-            new AutomaticZenRule.Builder("Driving", Uri.parse("drive"))
-                    .setType(AutomaticZenRule.TYPE_DRIVING)
-                    .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                    .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                    .build();
-
-    private static final AutomaticZenRule MANUAL_DND_RULE =
-            new AutomaticZenRule.Builder("Do Not Disturb", Uri.EMPTY)
-                    .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                    .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                    .build();
-
-    @Mock
-    private NotificationManager mNm;
-
-    private Context mContext;
-    private ZenModesBackend mBackend;
-
-    @Rule
-    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(
-            SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT);
-
-    // Helper methods to add active/inactive rule state to a config. Returns a copy.
-    private ZenModeConfig configWithManualRule(ZenModeConfig base, boolean active) {
-        ZenModeConfig out = base.copy();
-
-        if (active) {
-            out.manualRule.zenMode = ZEN_MODE_IMPORTANT_INTERRUPTIONS;
-            out.manualRule.condition =
-                    new Condition(out.manualRule.conditionId, "", STATE_TRUE, SOURCE_UNKNOWN);
-        } else {
-            out.manualRule.zenMode = ZEN_MODE_OFF;
-            out.manualRule.condition =
-                    new Condition(out.manualRule.conditionId, "", STATE_FALSE, SOURCE_UNKNOWN);
-        }
-        return out;
-    }
-
-    private ZenModeConfig configWithRule(ZenModeConfig base, String ruleId, AutomaticZenRule rule,
-            boolean active) {
-        ZenModeConfig out = base.copy();
-
-        // Note that there are many other fields of zenRule, but here we only set the ones
-        // relevant to determining whether or not it is active.
-        ZenModeConfig.ZenRule zenRule = new ZenModeConfig.ZenRule();
-        zenRule.pkg = "package";
-        zenRule.enabled = active;
-        zenRule.snoozing = false;
-        zenRule.condition = new Condition(rule.getConditionId(), "",
-                active ? Condition.STATE_TRUE : Condition.STATE_FALSE,
-                Condition.SOURCE_USER_ACTION);
-        out.automaticRules.put(ruleId, zenRule);
-
-        return out;
-    }
-
-    @Before
-    public void setup() {
-        MockitoAnnotations.initMocks(this);
-        ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
-
-        mContext = RuntimeEnvironment.application;
-        mBackend = new ZenModesBackend(mContext);
-
-        // Default catch-all case with no data. This isn't realistic, but tests below that rely
-        // on the config to get data on rules active will create those individually.
-        when(mNm.getZenModeConfig()).thenReturn(new ZenModeConfig());
-    }
-
-    @Test
-    public void getModes_containsManualDndAndZenRules() {
-        AutomaticZenRule rule2 = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
-                .build();
-        Policy dndPolicy = new Policy(Policy.PRIORITY_CATEGORY_ALARMS,
-                Policy.PRIORITY_SENDERS_CONTACTS, Policy.PRIORITY_SENDERS_CONTACTS);
-        when(mNm.getAutomaticZenRules()).thenReturn(
-                ImmutableMap.of("rule1", ZEN_RULE, "rule2", rule2));
-        ZenModeConfig config = new ZenModeConfig();
-        config.applyNotificationPolicy(dndPolicy);
-        assertThat(config.manualRule.zenPolicy.getPriorityCategoryAlarms()).isEqualTo(STATE_ALLOW);
-        when(mNm.getZenModeConfig()).thenReturn(config);
-
-        List<ZenMode> modes = mBackend.getModes();
-
-        // all modes exist, but none of them are currently active
-        assertThat(modes).containsExactly(
-                ZenMode.manualDndMode(
-                        new AutomaticZenRule.Builder(
-                                mContext.getString(R.string.zen_mode_settings_title), Uri.EMPTY)
-                                .setType(AutomaticZenRule.TYPE_OTHER)
-                                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                                .setZenPolicy(ZenAdapters.notificationPolicyToZenPolicy(dndPolicy))
-                                .setManualInvocationAllowed(true)
-                                .build(),
-                        false),
-                new ZenMode("rule2", rule2, false),
-                new ZenMode("rule1", ZEN_RULE, false))
-                .inOrder();
-    }
-
-    @Test
-    public void getMode_manualDnd_returnsMode() {
-        Policy dndPolicy = new Policy(Policy.PRIORITY_CATEGORY_ALARMS,
-                Policy.PRIORITY_SENDERS_CONTACTS, Policy.PRIORITY_SENDERS_CONTACTS);
-        ZenModeConfig config = new ZenModeConfig();
-        config.applyNotificationPolicy(dndPolicy);
-        when(mNm.getZenModeConfig()).thenReturn(config);
-
-        ZenMode mode = mBackend.getMode(ZenMode.MANUAL_DND_MODE_ID);
-
-        assertThat(mode).isEqualTo(
-                ZenMode.manualDndMode(
-                        new AutomaticZenRule.Builder(
-                                mContext.getString(R.string.zen_mode_settings_title), Uri.EMPTY)
-                                .setType(AutomaticZenRule.TYPE_OTHER)
-                                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                                .setZenPolicy(ZenAdapters.notificationPolicyToZenPolicy(dndPolicy))
-                                .setManualInvocationAllowed(true)
-                                .build(), false));
-    }
-
-    @Test
-    public void getMode_zenRule_returnsMode() {
-        when(mNm.getAutomaticZenRule(eq(ZEN_RULE_ID))).thenReturn(ZEN_RULE);
-
-        ZenMode mode = mBackend.getMode(ZEN_RULE_ID);
-
-        assertThat(mode).isEqualTo(new ZenMode(ZEN_RULE_ID, ZEN_RULE, false));
-    }
-
-    @Test
-    public void getMode_missingRule_returnsNull() {
-        when(mNm.getAutomaticZenRule(any())).thenReturn(null);
-
-        ZenMode mode = mBackend.getMode(ZEN_RULE_ID);
-
-        assertThat(mode).isNull();
-        verify(mNm).getAutomaticZenRule(eq(ZEN_RULE_ID));
-    }
-
-    @Test
-    public void getMode_manualDnd_returnsCorrectActiveState() {
-        // Set up a base config with an active rule to make sure we're looking at the correct info
-        ZenModeConfig configWithActiveRule = configWithRule(new ZenModeConfig(), ZEN_RULE_ID,
-                ZEN_RULE, true);
-
-        // Equivalent to disallowAllSounds()
-        Policy dndPolicy = new Policy(0, 0, 0);
-        configWithActiveRule.applyNotificationPolicy(dndPolicy);
-        when(mNm.getZenModeConfig()).thenReturn(configWithActiveRule);
-
-        ZenMode mode = mBackend.getMode(ZenMode.MANUAL_DND_MODE_ID);
-
-        // By default, manual rule is inactive
-        assertThat(mode.isActive()).isFalse();
-
-        // Now the returned config will represent the manual rule being active
-        when(mNm.getZenModeConfig()).thenReturn(configWithManualRule(configWithActiveRule, true));
-        ZenMode activeMode = mBackend.getMode(ZenMode.MANUAL_DND_MODE_ID);
-        assertThat(activeMode.isActive()).isTrue();
-    }
-
-    @Test
-    public void getMode_zenRule_returnsCorrectActiveState() {
-        // Set up a base config that has an active manual rule and "rule2", to make sure we're
-        // looking at the correct rule's info.
-        ZenModeConfig configWithActiveRules = configWithRule(
-                configWithManualRule(new ZenModeConfig(), true),  // active manual rule
-                "rule2", ZEN_RULE, true);  // active rule 2
-
-        when(mNm.getAutomaticZenRule(eq(ZEN_RULE_ID))).thenReturn(ZEN_RULE);
-        when(mNm.getZenModeConfig()).thenReturn(
-                configWithRule(configWithActiveRules, ZEN_RULE_ID, ZEN_RULE, false));
-
-        // Round 1: the current config should indicate that the rule is not active
-        ZenMode mode = mBackend.getMode(ZEN_RULE_ID);
-        assertThat(mode.isActive()).isFalse();
-
-        when(mNm.getZenModeConfig()).thenReturn(
-                configWithRule(configWithActiveRules, ZEN_RULE_ID, ZEN_RULE, true));
-        ZenMode activeMode = mBackend.getMode(ZEN_RULE_ID);
-        assertThat(activeMode.isActive()).isTrue();
-    }
-
-    @Test
-    public void updateMode_manualDnd_setsDeviceEffects() throws Exception {
-        ZenMode manualDnd = ZenMode.manualDndMode(
-                new AutomaticZenRule.Builder("DND", Uri.EMPTY)
-                        .setZenPolicy(new ZenPolicy())
-                        .setDeviceEffects(new ZenDeviceEffects.Builder()
-                                .setShouldDimWallpaper(true)
-                                .build())
-                        .build(), false);
-
-        mBackend.updateMode(manualDnd);
-
-        verify(mNm).setManualZenRuleDeviceEffects(new ZenDeviceEffects.Builder()
-                .setShouldDimWallpaper(true)
-                .build());
-    }
-
-    @Test
-    public void updateMode_manualDnd_setsNotificationPolicy() {
-        ZenMode manualDnd = ZenMode.manualDndMode(
-                new AutomaticZenRule.Builder("DND", Uri.EMPTY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .build(), false);
-
-        mBackend.updateMode(manualDnd);
-
-        verify(mNm).setNotificationPolicy(eq(new ZenModeConfig().toNotificationPolicy(
-                new ZenPolicy.Builder().allowAllSounds().build())), eq(true));
-    }
-
-    @Test
-    public void updateMode_zenRule_updatesRule() {
-        ZenMode ruleMode = new ZenMode("rule", ZEN_RULE, false);
-
-        mBackend.updateMode(ruleMode);
-
-        verify(mNm).updateAutomaticZenRule(eq("rule"), eq(ZEN_RULE), eq(true));
-    }
-
-    @Test
-    public void activateMode_manualDnd_setsZenModeImportant() {
-        mBackend.activateMode(ZenMode.manualDndMode(MANUAL_DND_RULE, false), null);
-
-        verify(mNm).setZenMode(eq(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS), eq(null),
-                any(), eq(true));
-    }
-
-    @Test
-    public void activateMode_manualDndWithDuration_setsZenModeImportantWithCondition() {
-        mBackend.activateMode(ZenMode.manualDndMode(MANUAL_DND_RULE, false),
-                Duration.ofMinutes(30));
-
-        verify(mNm).setZenMode(eq(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS),
-                eq(ZenModeConfig.toTimeCondition(mContext, 30, 0, true).id),
-                any(),
-                eq(true));
-    }
-
-    @Test
-    public void activateMode_zenRule_setsRuleStateActive() {
-        mBackend.activateMode(new ZenMode(ZEN_RULE_ID, ZEN_RULE, false), null);
-
-        verify(mNm).setAutomaticZenRuleState(eq(ZEN_RULE_ID),
-                eq(new Condition(ZEN_RULE.getConditionId(), "", Condition.STATE_TRUE,
-                        Condition.SOURCE_USER_ACTION)));
-    }
-
-    @Test
-    public void activateMode_zenRuleWithDuration_fails() {
-        assertThrows(IllegalArgumentException.class,
-                () -> mBackend.activateMode(new ZenMode(ZEN_RULE_ID, ZEN_RULE, false),
-                        Duration.ofMinutes(30)));
-    }
-
-    @Test
-    public void deactivateMode_manualDnd_setsZenModeOff() {
-        mBackend.deactivateMode(ZenMode.manualDndMode(MANUAL_DND_RULE, true));
-
-        verify(mNm).setZenMode(eq(ZEN_MODE_OFF), eq(null), any(), eq(true));
-    }
-
-    @Test
-    public void deactivateMode_zenRule_setsRuleStateInactive() {
-        mBackend.deactivateMode(new ZenMode(ZEN_RULE_ID, ZEN_RULE, false));
-
-        verify(mNm).setAutomaticZenRuleState(eq(ZEN_RULE_ID),
-                eq(new Condition(ZEN_RULE.getConditionId(), "", Condition.STATE_FALSE,
-                        Condition.SOURCE_USER_ACTION)));
-    }
-
-    @Test
-    public void removeMode_zenRule_deletesRule() {
-        mBackend.removeMode(new ZenMode(ZEN_RULE_ID, ZEN_RULE, false));
-
-        verify(mNm).removeAutomaticZenRule(ZEN_RULE_ID, true);
-    }
-
-    @Test
-    public void removeMode_manualDnd_fails() {
-        assertThrows(IllegalArgumentException.class,
-                () -> mBackend.removeMode(ZenMode.manualDndMode(MANUAL_DND_RULE, false)));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java
new file mode 100644
index 0000000..2db9171
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListAddModePreferenceControllerTest.java
@@ -0,0 +1,233 @@
+/*
+ * 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.modes;
+
+import static android.app.NotificationManager.META_DATA_AUTOMATIC_RULE_TYPE;
+import static android.app.NotificationManager.META_DATA_RULE_INSTANCE_LIMIT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Flags;
+import android.app.NotificationManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.ComponentInfo;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.List;
+import java.util.function.Function;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModesListAddModePreferenceControllerTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+    private ZenModesListAddModePreferenceController mController;
+
+    @Mock private ZenModesListAddModePreferenceController.OnAddModeListener mListener;
+    @Mock private ZenServiceListing mZenServiceListing;
+    @Mock private ConfigurationActivityHelper mConfigurationActivityHelper;
+    @Mock private NotificationManager mNm;
+    @Mock private PackageManager mPm;
+
+    @Captor private ArgumentCaptor<List<ModeType>> mListenerCaptor;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.getApplication();
+        Function<ApplicationInfo, Drawable> appIconRetriever = appInfo -> new ColorDrawable();
+
+        mController = new ZenModesListAddModePreferenceController(mContext, mListener,
+                mZenServiceListing, mConfigurationActivityHelper, mNm, mPm, appIconRetriever,
+                MoreExecutors.newDirectExecutorService(), MoreExecutors.directExecutor());
+
+        when(mConfigurationActivityHelper.getConfigurationActivityFromApprovedComponent(any()))
+                .thenAnswer((Answer<ComponentName>) invocationOnMock -> {
+                    // By default, assume the ComponentInfo is also the configurationActivity.
+                    ComponentInfo ci = invocationOnMock.getArgument(0);
+                    return ci != null ? ci.getComponentName() : null;
+                });
+    }
+
+    @Test
+    public void onClickAddMode_noAppProviders_onlyOptionIsCustom() {
+        when(mZenServiceListing.loadApprovedComponents()).thenReturn(ImmutableSet.of());
+
+        mController.onClickAddMode();
+
+        verify(mListener).onAvailableModeTypesForAdd(mListenerCaptor.capture());
+        List<ModeType> options = mListenerCaptor.getValue();
+        assertThat(options).hasSize(1);
+        assertThat(options.get(0).name()).isEqualTo("Custom");
+        assertThat(options.get(0).summary()).isNull();
+        assertThat(options.get(0).icon()).isNotNull();
+        assertThat(options.get(0).creationActivityIntent()).isNull();
+    }
+
+    @Test
+    public void onClickAddMode_someAppProviders_includedInOptions() {
+        ImmutableSet<ComponentInfo> approvedComponents = ImmutableSet.of(
+                newComponentInfoWithValidMetadata("pkg1"),
+                newComponentInfoWithValidMetadata("pkg2"));
+        when(mZenServiceListing.loadApprovedComponents()).thenReturn(approvedComponents);
+
+        mController.onClickAddMode();
+
+        verify(mListener).onAvailableModeTypesForAdd(mListenerCaptor.capture());
+        List<ModeType> options = mListenerCaptor.getValue();
+        assertThat(options).hasSize(3);
+
+        assertThat(options.get(1).name()).isEqualTo("Rule by pkg1");
+        assertThat(options.get(1).summary()).isEqualTo("A package called pkg1");
+        assertThat(options.get(1).icon()).isNotNull();
+        assertThat(options.get(1).creationActivityIntent()).isNotNull();
+        assertThat(options.get(1).creationActivityIntent().getComponent()).isEqualTo(
+                new ComponentName("pkg1", "pkg1.activity"));
+
+        assertThat(options.get(0).name()).isEqualTo("Custom");
+        assertThat(options.get(2).name()).isEqualTo("Rule by pkg2");
+    }
+
+    @Test
+    public void onClickAddMode_someAppProviders_optionsAreSorted() {
+        ImmutableSet<ComponentInfo> approvedComponents = ImmutableSet.of(
+                newComponentInfoWithValidMetadata("pkg_Z"),
+                newComponentInfoWithValidMetadata("pkg_A"),
+                newComponentInfoWithValidMetadata("pkg_F"),
+                newComponentInfoWithValidMetadata("pkg_C"));
+        when(mZenServiceListing.loadApprovedComponents()).thenReturn(approvedComponents);
+
+        mController.onClickAddMode();
+
+        verify(mListener).onAvailableModeTypesForAdd(mListenerCaptor.capture());
+        List<ModeType> options = mListenerCaptor.getValue();
+        assertThat(options).hasSize(5);
+        assertThat(options.stream().map(o -> o.name()).toList())
+                .containsExactly("Custom", "Rule by pkg_A", "Rule by pkg_C", "Rule by pkg_F",
+                        "Rule by pkg_Z")
+                .inOrder();
+    }
+
+    @Test
+    public void onClickAddMode_appProviderWithMissingMetadata_notAnOption() {
+        ComponentInfo componentWithoutRuleType = newComponentInfoWithValidMetadata("pkg1");
+        componentWithoutRuleType.metaData.remove(META_DATA_AUTOMATIC_RULE_TYPE);
+        ImmutableSet<ComponentInfo> approvedComponents = ImmutableSet.of(
+                componentWithoutRuleType, newComponentInfoWithValidMetadata("pkg2"));
+        when(mZenServiceListing.loadApprovedComponents()).thenReturn(approvedComponents);
+
+        mController.onClickAddMode();
+
+        verify(mListener).onAvailableModeTypesForAdd(mListenerCaptor.capture());
+        List<ModeType> options = mListenerCaptor.getValue();
+        assertThat(options).hasSize(2);
+        assertThat(options.get(0).name()).isEqualTo("Custom");
+        assertThat(options.get(1).name()).isEqualTo("Rule by pkg2");
+    }
+
+    @Test
+    public void onClickAddMode_appProviderWithRuleLimitExceeded_notAnOption() {
+        ComponentInfo componentWithLimitThreeRules = newComponentInfoWithValidMetadata("pkg1");
+        componentWithLimitThreeRules.metaData.putInt(META_DATA_RULE_INSTANCE_LIMIT, 3);
+        ImmutableSet<ComponentInfo> approvedComponents = ImmutableSet.of(
+                componentWithLimitThreeRules, newComponentInfoWithValidMetadata("pkg2"));
+        when(mZenServiceListing.loadApprovedComponents()).thenReturn(approvedComponents);
+        when(mNm.getRuleInstanceCount(any())).thenReturn(3); // Already 3 created rules.
+
+        mController.onClickAddMode();
+
+        verify(mListener).onAvailableModeTypesForAdd(mListenerCaptor.capture());
+        List<ModeType> options = mListenerCaptor.getValue();
+        assertThat(options).hasSize(2);
+        assertThat(options.get(0).name()).isEqualTo("Custom");
+        assertThat(options.get(1).name()).isEqualTo("Rule by pkg2");
+        verify(mNm).getRuleInstanceCount(eq(componentWithLimitThreeRules.getComponentName()));
+    }
+
+    @Test
+    public void onClickAddMode_appProviderWithoutConfigurationActivity_notAnOption() {
+        ComponentInfo componentWithoutConfigActivity = newComponentInfoWithValidMetadata("pkg2");
+        ImmutableSet<ComponentInfo> approvedComponents = ImmutableSet.of(
+                newComponentInfoWithValidMetadata("pkg1"), componentWithoutConfigActivity);
+        when(mZenServiceListing.loadApprovedComponents()).thenReturn(approvedComponents);
+        when(mConfigurationActivityHelper.getConfigurationActivityFromApprovedComponent(any()))
+                .thenAnswer((Answer<ComponentName>) invocationOnMock -> {
+                    ComponentInfo ci = invocationOnMock.getArgument(0);
+                    if (ci == componentWithoutConfigActivity) {
+                        return null;
+                    } else {
+                        return ci.getComponentName();
+                    }
+                });
+
+        mController.onClickAddMode();
+
+        verify(mListener).onAvailableModeTypesForAdd(mListenerCaptor.capture());
+        List<ModeType> options = mListenerCaptor.getValue();
+        assertThat(options).hasSize(2);
+        assertThat(options.get(0).name()).isEqualTo("Custom");
+        assertThat(options.get(1).name()).isEqualTo("Rule by pkg1");
+    }
+
+    private ComponentInfo newComponentInfoWithValidMetadata(String pkg) {
+        ComponentInfo ci = new ActivityInfo();
+
+        ci.applicationInfo = mock(ApplicationInfo.class);
+        when(ci.applicationInfo.loadLabel(any())).thenReturn("A package called " + pkg);
+        when(ci.applicationInfo.loadUnbadgedIcon(any())).thenReturn(new ColorDrawable());
+        ci.packageName = pkg;
+        ci.name = pkg + ".activity";
+        ci.metaData = new Bundle();
+        ci.metaData.putString(META_DATA_AUTOMATIC_RULE_TYPE, "Rule by " + pkg);
+
+        return ci;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java
new file mode 100644
index 0000000..5bf7f05
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListFragmentTest.java
@@ -0,0 +1,170 @@
+/*
+ * 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.modes;
+
+import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID;
+
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT;
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
+import static com.android.settings.notification.modes.ZenModesListFragment.REQUEST_NEW_MODE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.Flags;
+import android.content.ComponentName;
+import android.content.Intent;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.testing.EmptyFragmentActivity;
+import androidx.test.ext.junit.rules.ActivityScenarioRule;
+
+import com.android.settings.notification.modes.ZenModesListAddModePreferenceController.ModeType;
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
+
+import com.google.common.collect.ImmutableList;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.shadows.ShadowActivity.IntentForResult;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModesListFragmentTest {
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private static final ModeType APP_PROVIDED_MODE_TYPE = new ModeType("Mode", new ColorDrawable(),
+            "Details", new Intent().setComponent(new ComponentName("pkg", "configActivity")));
+
+    private static final ModeType CUSTOM_MANUAL_TYPE = new ModeType("Custom", new ColorDrawable(),
+            null, null); // null creationActivityIntent means custom_manual.
+
+    private static final ImmutableList<ZenMode> EXISTING_MODES = ImmutableList.of(
+            new TestModeBuilder().setId("A").build(),
+            new TestModeBuilder().setId("B").build(),
+            new TestModeBuilder().setId("C").build());
+
+    @Rule
+    public ActivityScenarioRule<EmptyFragmentActivity> mActivityScenario =
+            new ActivityScenarioRule<>(EmptyFragmentActivity.class);
+
+    private FragmentActivity mActivity;
+    private ZenModesListFragment mFragment;
+    @Mock private ZenModesBackend mBackend;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ZenModesBackend.setInstance(mBackend);
+
+        mFragment = new ZenModesListFragment();
+        mActivityScenario.getScenario().onActivity(activity -> {
+            activity.getSupportFragmentManager().beginTransaction()
+                    .add(mFragment, "tag").commitNow();
+            mActivity = activity;
+        });
+    }
+
+    @Test
+    public void onChosenModeTypeForAdd_appProvidedMode_startsCreationActivity() {
+        when(mBackend.getModes()).thenReturn(EXISTING_MODES);
+
+        mFragment.onChosenModeTypeForAdd(APP_PROVIDED_MODE_TYPE);
+
+        IntentForResult intent = shadowOf(mActivity).getNextStartedActivityForResult();
+        assertThat(intent).isNotNull();
+        assertThat(intent.intent).isEqualTo(APP_PROVIDED_MODE_TYPE.creationActivityIntent());
+    }
+
+    @Test
+    public void onChosenModeTypeForAdd_customManualMode_startsNameAndIconPicker() {
+        mFragment.onChosenModeTypeForAdd(CUSTOM_MANUAL_TYPE);
+
+        Intent nextIntent = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(nextIntent).isNotNull();
+        assertThat(nextIntent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(ZenModeNewCustomFragment.class.getName());
+    }
+
+    @Test
+    public void onActivityResult_modeWasCreated_opensIt() {
+        when(mBackend.getModes()).thenReturn(EXISTING_MODES);
+        mFragment.onChosenModeTypeForAdd(APP_PROVIDED_MODE_TYPE);
+
+        // App creates the new mode.
+        ZenMode createdMode = new TestModeBuilder().setId("new_id").setPackage("pkg").build();
+        when(mBackend.getModes()).thenReturn(new ImmutableList.Builder<ZenMode>()
+                .addAll(EXISTING_MODES)
+                .add(createdMode)
+                .build());
+        mFragment.onActivityResult(REQUEST_NEW_MODE, 0, new Intent());
+
+        Intent openModePageIntent = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(openModePageIntent.getStringExtra(EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(ZenModeFragment.class.getName());
+        Bundle fragmentArgs = openModePageIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+        assertThat(fragmentArgs).isNotNull();
+        assertThat(fragmentArgs.getString(EXTRA_AUTOMATIC_ZEN_RULE_ID)).isEqualTo("new_id");
+    }
+
+    @Test
+    public void onActivityResult_secondTime_doesNothing() {
+        when(mBackend.getModes()).thenReturn(EXISTING_MODES);
+        mFragment.onChosenModeTypeForAdd(APP_PROVIDED_MODE_TYPE);
+        // App creates a new mode, we redirect to its page when coming back.
+        ZenMode createdMode = new TestModeBuilder().setId("new_id").setPackage("pkg").build();
+        when(mBackend.getModes()).thenReturn(new ImmutableList.Builder<ZenMode>()
+                .addAll(EXISTING_MODES)
+                .add(createdMode)
+                .build());
+        mFragment.onActivityResult(REQUEST_NEW_MODE, 0, new Intent());
+        shadowOf(mActivity).clearNextStartedActivities();
+
+        mFragment.onActivityResult(REQUEST_NEW_MODE, 0, new Intent());
+
+        Intent nextIntent = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(nextIntent).isNull();
+    }
+
+    @Test
+    public void onActivityResult_modeWasNotCreated_doesNothing() {
+        when(mBackend.getModes()).thenReturn(EXISTING_MODES);
+        mFragment.onChosenModeTypeForAdd(APP_PROVIDED_MODE_TYPE);
+        shadowOf(mActivity).clearNextStartedActivities();
+
+        // Returning to settings without creating a new mode.
+        mFragment.onActivityResult(REQUEST_NEW_MODE, 0, new Intent());
+
+        Intent nextIntent = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(nextIntent).isNull();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
new file mode 100644
index 0000000..1c8e96e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListItemPreferenceTest.java
@@ -0,0 +1,125 @@
+/*
+ * 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.modes;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.Flags;
+import android.content.Context;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowLooper;
+
+@RunWith(RobolectricTestRunner.class)
+@EnableFlags(Flags.FLAG_MODES_UI)
+public class ZenModesListItemPreferenceTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+    }
+
+    @Test
+    public void constructor_setsMode() {
+        ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext,
+                TestModeBuilder.EXAMPLE);
+
+        assertThat(preference.getKey()).isEqualTo(TestModeBuilder.EXAMPLE.getId());
+        assertThat(preference.getZenMode()).isEqualTo(TestModeBuilder.EXAMPLE);
+    }
+
+    @Test
+    public void setZenMode_modeEnabled() {
+        ZenMode mode = new TestModeBuilder()
+                .setName("Enabled mode")
+                .setTriggerDescription("When the thrush knocks")
+                .setEnabled(true)
+                .build();
+
+        ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+        ShadowLooper.idleMainLooper(); // To load icon.
+
+        assertThat(preference.getTitle()).isEqualTo("Enabled mode");
+        assertThat(preference.getSummary()).isEqualTo("When the thrush knocks");
+        assertThat(preference.getIcon()).isNotNull();
+    }
+
+    @Test
+    public void setZenMode_modeActive() {
+        ZenMode mode = new TestModeBuilder()
+                .setName("Active mode")
+                .setTriggerDescription("When Birnam forest comes to Dunsinane")
+                .setEnabled(true)
+                .setActive(true)
+                .build();
+
+        ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(preference.getTitle()).isEqualTo("Active mode");
+        assertThat(preference.getSummary()).isEqualTo("ON • When Birnam forest comes to Dunsinane");
+        assertThat(preference.getIcon()).isNotNull();
+    }
+
+    @Test
+    public void setZenMode_modeDisabledByApp() {
+        ZenMode mode = new TestModeBuilder()
+                .setName("Mode disabled by app")
+                .setTriggerDescription("When the cat's away")
+                .setEnabled(false, /* byUser= */ false)
+                .build();
+
+        ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(preference.getTitle()).isEqualTo("Mode disabled by app");
+        assertThat(preference.getSummary()).isEqualTo("Not set");
+        assertThat(preference.getIcon()).isNotNull();
+    }
+
+    @Test
+    public void setZenMode_modeDisabledByUser() {
+        ZenMode mode = new TestModeBuilder()
+                .setName("Mode disabled by user")
+                .setTriggerDescription("When the Levee Breaks")
+                .setEnabled(false, /* byUser= */ true)
+                .build();
+
+        ZenModesListItemPreference preference = new ZenModesListItemPreference(mContext, mode);
+        ShadowLooper.idleMainLooper();
+
+        assertThat(preference.getTitle()).isEqualTo("Mode disabled by user");
+        assertThat(preference.getSummary()).isEqualTo("Disabled");
+        assertThat(preference.getIcon()).isNotNull();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
index 9a4de60..4fa8b8a 100644
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/modes/ZenModesListPreferenceControllerTest.java
@@ -18,6 +18,8 @@
 
 import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
 
+import static com.android.settingslib.notification.modes.TestModeBuilder.MANUAL_DND_INACTIVE;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.when;
@@ -37,6 +39,9 @@
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settingslib.notification.modes.TestModeBuilder;
+import com.android.settingslib.notification.modes.ZenMode;
+import com.android.settingslib.notification.modes.ZenModesBackend;
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import com.google.common.collect.ImmutableList;
@@ -58,21 +63,15 @@
 public class ZenModesListPreferenceControllerTest {
     private static final String TEST_MODE_ID = "test_mode";
     private static final String TEST_MODE_NAME = "Test Mode";
-    private static final ZenMode TEST_MODE = new ZenMode(
-            TEST_MODE_ID,
-            new AutomaticZenRule.Builder(TEST_MODE_NAME, Uri.parse("test_uri"))
+
+    private static final ZenMode TEST_MODE = new TestModeBuilder()
+            .setId(TEST_MODE_ID)
+            .setAzr(new AutomaticZenRule.Builder(TEST_MODE_NAME, Uri.parse("test_uri"))
                     .setType(AutomaticZenRule.TYPE_BEDTIME)
                     .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
                     .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                    .build(),
-            false);
-
-    private static final ZenMode TEST_MANUAL_MODE = ZenMode.manualDndMode(
-            new AutomaticZenRule.Builder("Do Not Disturb", Uri.EMPTY)
-                    .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                    .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                    .build(),
-            false);
+                    .build())
+            .build();
 
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(
@@ -96,7 +95,7 @@
         PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext);
         preferenceScreen.addPreference(mPreference);
 
-        mPrefController = new ZenModesListPreferenceController(mContext, null, mBackend);
+        mPrefController = new ZenModesListPreferenceController(mContext, mBackend);
     }
 
     @Test
@@ -110,14 +109,9 @@
 
         assertThat(mPreference.getPreferenceCount()).isEqualTo(5);
         List<ZenModesListItemPreference> itemPreferences = getModeListItems(mPreference);
-        assertThat(itemPreferences.stream().map(pref -> pref.mZenMode).toList())
+        assertThat(itemPreferences.stream().map(ZenModesListItemPreference::getZenMode).toList())
                 .containsExactlyElementsIn(modes)
                 .inOrder();
-
-        for (int i = 0; i < modes.size(); i++) {
-            assertThat(((ZenModesListItemPreference) (mPreference.getPreference(i))).mZenMode)
-                    .isEqualTo(modes.get(i));
-        }
     }
 
     @Test
@@ -138,7 +132,7 @@
         mPrefController.updateState(mPreference);
 
         List<ZenModesListItemPreference> newPreferences = getModeListItems(mPreference);
-        assertThat(newPreferences.stream().map(pref -> pref.mZenMode).toList())
+        assertThat(newPreferences.stream().map(ZenModesListItemPreference::getZenMode).toList())
                 .containsExactlyElementsIn(updatedModes)
                 .inOrder();
 
@@ -153,7 +147,7 @@
     @DisableFlags(Flags.FLAG_MODES_UI)
     public void testModesUiOff_notAvailableAndNoSearchData() {
         // There exist modes
-        when(mBackend.getModes()).thenReturn(List.of(TEST_MANUAL_MODE, TEST_MODE));
+        when(mBackend.getModes()).thenReturn(List.of(MANUAL_DND_INACTIVE, TEST_MODE));
 
         assertThat(mPrefController.isAvailable()).isFalse();
         List<SearchIndexableRaw> data = new ArrayList<>();
@@ -188,20 +182,20 @@
 
         // Changing mode data so there's a different one mode doesn't keep any previous data
         // (and setting that state up in the caller)
-        when(mBackend.getModes()).thenReturn(List.of(TEST_MANUAL_MODE));
+        when(mBackend.getModes()).thenReturn(List.of(MANUAL_DND_INACTIVE));
         List<SearchIndexableRaw> newData = new ArrayList<>();
         mPrefController.updateDynamicRawDataToIndex(newData);
         assertThat(newData).hasSize(1);
 
         SearchIndexableRaw newItem = newData.get(0);
-        assertThat(newItem.key).isEqualTo(ZenMode.MANUAL_DND_MODE_ID);
+        assertThat(newItem.key).isEqualTo(MANUAL_DND_INACTIVE.getId());
         assertThat(newItem.title).isEqualTo("Do Not Disturb");  // set above
     }
 
     @Test
     @EnableFlags(Flags.FLAG_MODES_UI)
     public void testUpdateDynamicRawDataToIndex_multipleModes() {
-        when(mBackend.getModes()).thenReturn(List.of(TEST_MANUAL_MODE, TEST_MODE));
+        when(mBackend.getModes()).thenReturn(List.of(MANUAL_DND_INACTIVE, TEST_MODE));
 
         List<SearchIndexableRaw> data = new ArrayList<>();
         mPrefController.updateDynamicRawDataToIndex(data);
@@ -209,7 +203,7 @@
 
         // Should keep the order presented by getModes()
         SearchIndexableRaw item0 = data.get(0);
-        assertThat(item0.key).isEqualTo(ZenMode.MANUAL_DND_MODE_ID);
+        assertThat(item0.key).isEqualTo(MANUAL_DND_INACTIVE.getId());
         assertThat(item0.title).isEqualTo("Do Not Disturb");  // set above
 
         SearchIndexableRaw item1 = data.get(1);
@@ -218,13 +212,7 @@
     }
 
     private static ZenMode newMode(String id) {
-        return new ZenMode(
-                id,
-                new AutomaticZenRule.Builder("Mode " + id, Uri.parse("test_uri"))
-                        .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                        .setZenPolicy(new ZenPolicy.Builder().allowAllSounds().build())
-                        .build(),
-                false);
+        return new TestModeBuilder().setId(id).setName("Mode " + id).build();
     }
 
     /**
diff --git a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java b/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
deleted file mode 100644
index ef8290a..0000000
--- a/tests/robotests/src/com/android/settings/notification/modes/ZenModesSummaryHelperTest.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/*
- * 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.modes;
-
-import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
-import static android.service.notification.ZenPolicy.CONVERSATION_SENDERS_ANYONE;
-import static android.service.notification.ZenPolicy.PEOPLE_TYPE_ANYONE;
-import static android.service.notification.ZenPolicy.PEOPLE_TYPE_CONTACTS;
-import static android.service.notification.ZenPolicy.VISUAL_EFFECT_AMBIENT;
-import static android.service.notification.ZenPolicy.VISUAL_EFFECT_LIGHTS;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.AutomaticZenRule;
-import android.content.Context;
-import android.net.Uri;
-import android.service.notification.ZenDeviceEffects;
-import android.service.notification.ZenPolicy;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-@RunWith(RobolectricTestRunner.class)
-public class ZenModesSummaryHelperTest {
-    private Context mContext;
-    private ZenModesBackend mBackend;
-
-    private ZenModeSummaryHelper mSummaryHelper;
-
-    @Before
-    public void setup() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mBackend = new ZenModesBackend(mContext);
-        mSummaryHelper = new ZenModeSummaryHelper(mContext, mBackend);
-    }
-
-    @Test
-    public void getPeopleSummary_noOne() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().disallowAllSounds().build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("No one can interrupt");
-    }
-
-    @Test
-    public void getPeopleSummary_some() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_CONTACTS).build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("Some people can interrupt");
-    }
-
-    @Test
-    public void getPeopleSummary_all() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowCalls(PEOPLE_TYPE_ANYONE).
-                        allowConversations(CONVERSATION_SENDERS_ANYONE)
-                        .allowMessages(PEOPLE_TYPE_ANYONE).build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getPeopleSummary(zenMode)).isEqualTo("All people can interrupt");
-    }
-
-    @Test
-    public void getOtherSoundCategoriesSummary_single() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
-                "Alarms can interrupt");
-    }
-
-    @Test
-    public void getOtherSoundCategoriesSummary_duo() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().allowAlarms(true).allowMedia(true).build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
-                "Alarms and media can interrupt");
-    }
-
-    @Test
-    public void getOtherSoundCategoriesSummary_trio() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowAlarms(true)
-                        .allowMedia(true)
-                        .allowSystem(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
-                "Alarms, media, and touch sounds can interrupt");
-    }
-
-    @Test
-    public void getOtherSoundCategoriesSummary_quad() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowAlarms(true)
-                        .allowMedia(true)
-                        .allowSystem(true)
-                        .allowReminders(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
-                "Alarms, media, and 2 more can interrupt");
-    }
-
-    @Test
-    public void getOtherSoundCategoriesSummary_all() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowAlarms(true)
-                        .allowMedia(true)
-                        .allowSystem(true)
-                        .allowReminders(true)
-                        .allowEvents(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getOtherSoundCategoriesSummary(zenMode)).isEqualTo(
-                "Alarms, media, and 3 more can interrupt");
-    }
-
-    @Test
-    public void getBlockedEffectsSummary_none() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .showAllVisualEffects()
-                        .allowAlarms(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-        assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
-                .isEqualTo("Notifications shown");
-    }
-
-    @Test
-    public void getBlockedEffectsSummary_some() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowAlarms(true)
-                        .showAllVisualEffects()
-                        .showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-        assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
-                .isEqualTo("Notifications partially hidden");
-    }
-
-    @Test
-    public void getBlockedEffectsSummary_all() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowAlarms(true)
-                        .hideAllVisualEffects()
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-        assertThat(mSummaryHelper.getBlockedEffectsSummary(zenMode))
-                .isEqualTo("Notifications hidden");
-    }
-
-    @Test
-    public void getDisplayEffectsSummary_single_notifVis() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .showAllVisualEffects()
-                        .showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
-                "Notifications partially hidden");
-    }
-
-    @Test
-    public void getDisplayEffectsSummary_single_notifVis_unusedEffect() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .showAllVisualEffects()
-                        .showVisualEffect(VISUAL_EFFECT_LIGHTS, false)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
-                "Notifications shown");
-    }
-
-    @Test
-    public void getDisplayEffectsSummary_single_displayEffect() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().showAllVisualEffects().build())
-                .setDeviceEffects(new ZenDeviceEffects.Builder()
-                        .setShouldDimWallpaper(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
-                "Dim the wallpaper");
-    }
-
-    @Test
-    public void getDisplayEffectsSummary_duo() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder().showAllVisualEffects().build())
-                .setDeviceEffects(new ZenDeviceEffects.Builder()
-                        .setShouldDimWallpaper(true)
-                        .setShouldDisplayGrayscale(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
-                "Grayscale and dim the wallpaper");
-    }
-
-    @Test
-    public void getDisplayEffectsSummary_trio() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .hideAllVisualEffects()
-                        .allowAlarms(true)
-                        .allowMedia(true)
-                        .allowSystem(true)
-                        .build())
-                .setDeviceEffects(new ZenDeviceEffects.Builder()
-                        .setShouldDisplayGrayscale(true)
-                        .setShouldDimWallpaper(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
-                "Notifications hidden, grayscale, and dim the wallpaper");
-    }
-
-    @Test
-    public void getDisplayEffectsSummary_quad() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .showAllVisualEffects()
-                        .showVisualEffect(VISUAL_EFFECT_AMBIENT, false)
-                        .allowAlarms(true)
-                        .allowMedia(true)
-                        .allowSystem(true)
-                        .build())
-                .setDeviceEffects(new ZenDeviceEffects.Builder()
-                        .setShouldDimWallpaper(true)
-                        .setShouldDisplayGrayscale(true)
-                        .setShouldUseNightMode(true)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getDisplayEffectsSummary(zenMode)).isEqualTo(
-                "Notifications partially hidden, grayscale, and 2 more");
-    }
-
-    @Test
-    public void getAppsSummary_all() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowChannels(ZenMode.CHANNEL_POLICY_ALL)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getAppsSummary(zenMode, new LinkedHashSet<>())).isEqualTo("All");
-    }
-
-    @Test
-    public void getAppsSummary_none() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowChannels(ZenPolicy.CHANNEL_POLICY_NONE)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getAppsSummary(zenMode, new LinkedHashSet<>())).isEqualTo("None");
-    }
-
-    @Test
-    public void getAppsSummary_priorityAppsNoList() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-
-        assertThat(mSummaryHelper.getAppsSummary(zenMode, null)).isEqualTo("Selected apps");
-    }
-
-    @Test
-    public void getAppsSummary_formatAppsListEmpty() {
-        Set<String> apps = new LinkedHashSet<>();
-        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("No apps can interrupt");
-    }
-
-    @Test
-    public void getAppsSummary_formatAppsListSingle() {
-        Set<String> apps = Set.of("My App");
-        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App can interrupt");
-    }
-
-    @Test
-    public void getAppsSummary_formatAppsListTwo() {
-        Set<String> apps = Set.of("My App", "SecondApp");
-        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App and SecondApp "
-                + "can interrupt");
-    }
-
-    @Test
-    public void getAppsSummary_formatAppsListThree() {
-        Set<String> apps = Set.of("My App", "SecondApp", "ThirdApp");
-        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("My App, SecondApp, "
-                + "and ThirdApp can interrupt");
-    }
-
-    @Test
-    public void getAppsSummary_formatAppsListMany() {
-        Set<String> apps = Set.of("My App", "SecondApp", "ThirdApp", "FourthApp",
-                "FifthApp", "SixthApp");
-        // Note that apps are selected alphabetically.
-        assertThat(mSummaryHelper.formatAppsList(apps)).isEqualTo("FifthApp, FourthApp, "
-                + "and 4 more can interrupt");
-    }
-
-    @Test
-    public void getAppsSummary_priorityApps() {
-        AutomaticZenRule rule = new AutomaticZenRule.Builder("Bedtime", Uri.parse("bed"))
-                .setType(AutomaticZenRule.TYPE_BEDTIME)
-                .setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
-                .setZenPolicy(new ZenPolicy.Builder()
-                        .allowChannels(ZenPolicy.CHANNEL_POLICY_PRIORITY)
-                        .build())
-                .build();
-        ZenMode zenMode = new ZenMode("id", rule, true);
-        Set<String> apps = Set.of("My App", "SecondApp", "ThirdApp", "FourthApp",
-                "FifthApp", "SixthApp");
-
-        assertThat(mSummaryHelper.getAppsSummary(zenMode, apps)).isEqualTo("FifthApp, FourthApp, "
-                + "and 4 more can interrupt");
-    }
-
-}
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java
index 27df890..2569ca3 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeAddBypassingAppsPreferenceControllerTest.java
@@ -162,7 +162,4 @@
         assertThat(pref.getKey()).isEqualTo(
                 ZenModeAddBypassingAppsPreferenceController.KEY_NO_APPS);
     }
-
-    // TODO(b/331624810): Add tests to verify updateAppList() when the filter is
-    //  ApplicationsState.FILTER_ENABLED_NOT_QUIET
 }
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
index f611c9b..e7d42d8 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModePreferenceControllerTest.java
@@ -19,10 +19,10 @@
 import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
@@ -40,8 +40,6 @@
 
 import androidx.preference.Preference;
 
-import com.android.settings.notification.modes.ZenModesListFragment;
-
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -85,7 +83,14 @@
     }
 
     @Test
-    public void isAvailable_unsearchable() {
+    @EnableFlags(Flags.FLAG_MODES_UI)
+    public void isAvailable_modesUi_unavailable() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_MODES_UI)
+    public void isAvailable_notModesUi_unsearchable() {
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
     }
 
@@ -109,20 +114,4 @@
 
         verify(mPreference, never()).setSummary(anyString());
     }
-
-    @Test
-    @EnableFlags(Flags.FLAG_MODES_UI)
-    public void updateState_modesUi_resetsTitleAndFragment() {
-        mController.updateState(mPreference);
-        verify(mPreference).setTitle(anyInt());  // Resource IDs are ints
-        verify(mPreference).setFragment(ZenModesListFragment.class.getCanonicalName());
-    }
-
-    @Test
-    @DisableFlags(Flags.FLAG_MODES_UI)
-    public void updateState_noModesUi_doesNotSetTitleAndFragment() {
-        mController.updateState(mPreference);
-        verify(mPreference, never()).setTitle(anyInt());
-        verify(mPreference, never()).setFragment(anyString());
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
index e7e0b92..204bfe5 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
@@ -50,9 +50,13 @@
 import android.app.admin.PasswordPolicy;
 import android.content.Context;
 import android.content.Intent;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
 import android.hardware.face.FaceManager;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.Settings.Global;
 import android.widget.TextView;
 
@@ -86,9 +90,13 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
 import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowActivity;
 import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.shadows.ShadowBiometricManager;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
@@ -98,18 +106,23 @@
                 ShadowStorageManager.class,
                 ShadowUserManager.class,
                 ShadowUtils.class,
-                ShadowInteractionJankMonitor.class
+                ShadowInteractionJankMonitor.class,
+                ShadowBiometricManager.class
         })
 @Ignore("b/179136903: Tests failed with collapsing toolbar, plan to figure out root cause later.")
 public class ChooseLockGenericTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     private ActivityController<ChooseLockGeneric> mActivityController;
     private FakeFeatureFactory mFakeFeatureFactory;
     private ChooseLockGenericFragment mFragment;
     private ChooseLockGeneric mActivity;
+    private ShadowBiometricManager mShadowBiometricManager;
+    private ShadowActivity mShadowActivity;
     @Mock
     private FingerprintManager mFingerprintManager;
     @Mock
@@ -125,6 +138,7 @@
                 .postCreate(null)
                 .resume()
                 .get();
+        mShadowActivity = Shadows.shadowOf(mActivity);
 
         Global.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
         mFragment = new ChooseLockGenericFragment();
@@ -295,6 +309,21 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void onActivityResult_requestcode100_shouldLaunchBiometricPrompt() {
+        initActivity(null);
+        mShadowBiometricManager.setCanAuthenticate(true);
+
+        mFragment.onActivityResult(
+                ChooseLockGenericFragment.CONFIRM_EXISTING_REQUEST,
+                Activity.RESULT_OK, null /* data */);
+
+        assertThat(mActivity.isFinishing()).isFalse();
+        assertThat(mShadowActivity.getNextStartedActivity().getComponent().getClassName())
+                .isEqualTo(ConfirmDeviceCredentialActivity.class.getName());
+    }
+
+    @Test
     public void onActivityResult_requestcode102_shouldFinish() {
         initActivity(null);
 
@@ -337,6 +366,17 @@
     }
 
     @Test
+    public void onActivityResult_requestcode105_shouldNotFinish() {
+        initActivity(null);
+
+        mFragment.onActivityResult(
+                ChooseLockGenericFragment.BIOMETRIC_AUTH_REQUEST, Activity.RESULT_OK,
+                null /* data */);
+
+        assertThat(mActivity.isFinishing()).isFalse();
+    }
+
+    @Test
     public void securedScreenLock_notChangingConfig_notWaitForConfirmation_onStopFinishSelf() {
         Intent intent = new Intent().putExtra(
                 LockPatternUtils.PASSWORD_TYPE_KEY, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
@@ -676,6 +716,13 @@
         mActivity = Robolectric.buildActivity(ChooseLockGeneric.InternalActivity.class, intent)
                 .create().start().postCreate(null).resume().get();
         mActivity.getSupportFragmentManager().beginTransaction().add(mFragment, null).commitNow();
+        mShadowBiometricManager = Shadow.extract(mFragment.getContext().getSystemService(
+                BiometricManager.class));
+        //TODO(b/352603684): Should be Authenticators.MANDATORY_BIOMETRICS,
+        // but it is not supported by ShadowBiometricManager
+        mShadowBiometricManager.setAuthenticatorType(
+                BiometricManager.Authenticators.BIOMETRIC_STRONG);
+        mShadowBiometricManager.setCanAuthenticate(false);
     }
 
     private static String capitalize(final String input) {
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
index dea936d..1e81ec0 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
@@ -36,19 +36,25 @@
 import static com.google.common.truth.Truth.assertWithMessage;
 
 import static org.robolectric.RuntimeEnvironment.application;
+import static org.robolectric.Shadows.shadowOf;
 
+import android.annotation.ColorInt;
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.DevicePolicyManager.PasswordComplexity;
 import android.app.admin.PasswordMetrics;
 import android.app.admin.PasswordPolicy;
 import android.content.Intent;
+import android.os.Looper;
 import android.os.UserHandle;
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.TextView;
 
+import androidx.recyclerview.widget.RecyclerView;
+
 import com.android.internal.widget.LockscreenCredential;
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment;
 import com.android.settings.password.ChooseLockPassword.IntentBuilder;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -515,6 +521,52 @@
         assertThat(pinAutoConfirmOption.isChecked()).isFalse();
     }
 
+    @Test
+    public void defaultMessage_shouldBeInTextColorPrimary() {
+        final ChooseLockPassword passwordActivity = setupActivityWithPinTypeAndDefaultPolicy();
+
+        final ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(passwordActivity);
+        final ScrollToParentEditText passwordEntry = passwordActivity.findViewById(R.id.password_entry);
+        final RecyclerView view = (RecyclerView) fragment.getPasswordRequirementsView();
+        @ColorInt final int textColorPrimary = Utils.getColorAttrDefaultColor(passwordActivity,
+                android.R.attr.textColorPrimary);
+
+        passwordEntry.setText("");
+        fragment.updateUi();
+        shadowOf(Looper.getMainLooper()).idle();
+        TextView textView = (TextView)view.getLayoutManager().findViewByPosition(0);
+
+        assertThat(textView.getCurrentTextColor()).isEqualTo(textColorPrimary);
+    }
+
+    @Test
+    public void errorMessage_shouldBeColorError() {
+        final ChooseLockPassword passwordActivity = setupActivityWithPinTypeAndDefaultPolicy();
+
+        final ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(passwordActivity);
+        final ScrollToParentEditText passwordEntry = passwordActivity.findViewById(R.id.password_entry);
+        final RecyclerView view = (RecyclerView) fragment.getPasswordRequirementsView();
+        @ColorInt final int textColorPrimary = Utils.getColorAttrDefaultColor(passwordActivity,
+                android.R.attr.textColorPrimary);
+        @ColorInt final int colorError = Utils.getColorAttrDefaultColor(passwordActivity,
+                android.R.attr.colorError);
+
+        passwordEntry.setText("");
+        fragment.updateUi();
+        shadowOf(Looper.getMainLooper()).idle();
+        TextView textView = (TextView)view.getLayoutManager().findViewByPosition(0);
+
+        assertThat(textView.getCurrentTextColor()).isEqualTo(textColorPrimary);
+
+        // Password must be fewer than 17 digits, so this should give an error.
+        passwordEntry.setText("a".repeat(17));
+        fragment.updateUi();
+        shadowOf(Looper.getMainLooper()).idle();
+        textView = (TextView)view.getLayoutManager().findViewByPosition(0);
+
+        assertThat(textView.getCurrentTextColor()).isEqualTo(colorError);
+    }
+
     private ChooseLockPassword setupActivityWithPinTypeAndDefaultPolicy() {
         PasswordPolicy policy = new PasswordPolicy();
         policy.quality = PASSWORD_QUALITY_UNSPECIFIED;
@@ -543,7 +595,7 @@
                         .setForFingerprint(addFingerprintExtra)
                         .build());
         ChooseLockPasswordFragment fragment = getChooseLockPasswordFragment(passwordActivity);
-        return Shadows.shadowOf(((GlifLayout) fragment.getView()).getIcon());
+        return shadowOf(((GlifLayout) fragment.getView()).getIcon());
     }
 
     private void assertPasswordValidationResult(PasswordMetrics minMetrics,
diff --git a/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
index 4ac375f..9e8535a 100644
--- a/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.password;
 
+import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+
 import static com.android.settings.password.ConfirmLockPassword.ConfirmLockPasswordFragment;
 import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
 import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
@@ -42,6 +44,7 @@
 import android.Manifest;
 import android.app.KeyguardManager;
 import android.app.admin.ManagedSubscriptionsPolicy;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserHandle;
@@ -55,6 +58,7 @@
 
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
 import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -305,6 +309,32 @@
         assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
     }
 
+    @Test
+    public void onChosenLockSaveFinished_setsRedactionInterstitial() throws Exception {
+        // This test verifies that the RedactionInterstitial is available. This is the screen
+        // responsible for allowing the user to show sensitive lockscreen content. This
+        // also allows the Settings tile for RedactionInterstitial to appear in the "anything else"
+        // page during SUW.
+        final ConfirmDeviceCredentialBaseActivity activity =
+                buildConfirmDeviceCredentialBaseActivity(
+                        ConfirmLockPassword.class,
+                        createRemoteLockscreenValidationIntent(
+                                KeyguardManager.PASSWORD, VALID_REMAINING_ATTEMPTS));
+        final ConfirmLockPasswordFragment fragment =
+                (ConfirmLockPasswordFragment) getConfirmDeviceCredentialBaseFragment(activity);
+        final Intent intent = new Intent();
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L);
+
+        fragment.onChosenLockSaveFinished(true, intent);
+
+        final ComponentName componentName =
+                new ComponentName(mContext, SetupRedactionInterstitial.class);
+        final int isEnabled = mContext.getPackageManager()
+                .getComponentEnabledSetting(componentName);
+
+        assertThat(isEnabled).isEqualTo(COMPONENT_ENABLED_STATE_ENABLED);
+    }
+
     private void triggerHandleNext(
             ConfirmLockPasswordFragment fragment, ImeAwareEditText passwordEntry) {
         passwordEntry.setText("Password");
diff --git a/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
index 04a76b8..9e7ec06 100644
--- a/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.password;
 
+import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+
+import static com.android.settings.password.ConfirmLockPattern.ConfirmLockPatternFragment;
 import static com.android.settings.password.TestUtils.GUESS_INVALID_RESULT;
 import static com.android.settings.password.TestUtils.GUESS_VALID_RESULT;
 import static com.android.settings.password.TestUtils.LOCKOUT_RESULT;
@@ -39,6 +42,7 @@
 import android.Manifest;
 import android.app.KeyguardManager;
 import android.app.admin.ManagedSubscriptionsPolicy;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserHandle;
@@ -51,6 +55,7 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.LockPatternView;
 import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
 import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -284,6 +289,32 @@
         assertThat(mLockPatternUtils.isSecure(fragment.mEffectiveUserId)).isFalse();
     }
 
+    @Test
+    public void onChosenLockSaveFinished_setsRedactionInterstitial() throws Exception {
+        // This test verifies that the RedactionInterstitial is available. This is the screen
+        // responsible for allowing the user to show sensitive lockscreen content. This
+        // also allows the Settings tile for RedactionInterstitial to appear in the "anything else"
+        // page during SUW.
+        final ConfirmDeviceCredentialBaseActivity activity =
+                buildConfirmDeviceCredentialBaseActivity(
+                        ConfirmLockPattern.class,
+                        createRemoteLockscreenValidationIntent(
+                                KeyguardManager.PATTERN, VALID_REMAINING_ATTEMPTS));
+        final ConfirmLockPatternFragment fragment = (ConfirmLockPatternFragment)
+                getConfirmDeviceCredentialBaseFragment(activity);
+        final Intent intent = new Intent();
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L);
+
+        fragment.onChosenLockSaveFinished(true, intent);
+
+        final ComponentName componentName =
+                new ComponentName(mContext, SetupRedactionInterstitial.class);
+        final int isEnabled = mContext.getPackageManager()
+                .getComponentEnabledSetting(componentName);
+
+        assertThat(isEnabled).isEqualTo(COMPONENT_ENABLED_STATE_ENABLED);
+    }
+
     private void triggerOnPatternDetected(LockPatternView lockPatternView) {
         List<LockPatternView.Cell> pattern = List.of(LockPatternView.Cell.of(0, 0));
         lockPatternView.setPattern(LockPatternView.DisplayMode.Correct, pattern);
diff --git a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
index 8a7419b..599649b 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
@@ -124,8 +124,8 @@
     }
 
     @Test(expected = IllegalArgumentException.class)
-    public void verifyLaunchSearchResultPageCaller_nullCaller_shouldCrash() {
-        mProvider.verifyLaunchSearchResultPageCaller(mActivity, null /* caller */);
+    public void verifyLaunchSearchResultPageCaller_emptyCaller_shouldCrash() {
+        mProvider.verifyLaunchSearchResultPageCaller(mActivity, "");
     }
 
     @Test(expected = SecurityException.class)
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
index e408cd0..b555f00 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
@@ -29,6 +29,7 @@
 import android.text.TextUtils;
 
 import com.android.settings.network.NetworkProviderSettings;
+import com.android.settings.spa.search.SearchablePage;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.FakeIndexProvider;
 import com.android.settingslib.search.SearchIndexableData;
@@ -117,8 +118,10 @@
     public void testAllClassNamesHaveProviders() {
         for (SearchIndexableData data :
                 mSearchProvider.getSearchIndexableResources().getProviderValues()) {
-            if (DatabaseIndexingUtils.getSearchIndexProvider(data.getTargetClass()) == null) {
-                fail(data.getTargetClass().getName() + "is not an index provider");
+            Class<?> targetClass = data.getTargetClass();
+            if (DatabaseIndexingUtils.getSearchIndexProvider(targetClass) == null
+                    && !SearchablePage.class.isAssignableFrom(targetClass)) {
+                fail(targetClass.getName() + " is not an index provider");
             }
         }
     }
diff --git a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
index 8339798..766855c 100644
--- a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
@@ -21,14 +21,10 @@
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
+import android.content.IntentFilter;
+import android.content.pm.PackageInfo;
 import android.service.trust.TrustAgentService;
 
-import android.text.TextUtils;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
@@ -38,34 +34,30 @@
 import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
 import com.android.settingslib.RestrictedSwitchPreference;
 
-import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
 import org.robolectric.shadows.ShadowApplicationPackageManager;
 
-import java.util.ArrayList;
-import java.util.List;
-
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         ShadowLockPatternUtils.class,
         ShadowRestrictedLockUtilsInternal.class,
-        ShadowDevicePolicyManager.class,
-        ShadowApplicationPackageManager.class,
-        TrustAgentsPreferenceControllerTest.ShadowTrustAgentManager.class
+        ShadowDevicePolicyManager.class, ShadowApplicationPackageManager.class
 })
 public class TrustAgentsPreferenceControllerTest {
-
-    private static final Intent TEST_INTENT =
-            new Intent(TrustAgentService.SERVICE_INTERFACE);
+    private static final ComponentName TRUST_AGENT_A = new ComponentName(
+            "test.data.packageA", "clzAAA");
+    private static final ComponentName TRUST_AGENT_B = new ComponentName(
+            "test.data.packageB", "clzBBB");
+    private static final ComponentName TRUST_AGENT_C = new ComponentName(
+            "test.data.packageC", "clzCCC");
+    private static final ComponentName TRUST_AGENT_D = new ComponentName(
+            "test.data.packageD", "clzDDD");
 
     private Context mContext;
     private ShadowApplicationPackageManager mPackageManager;
@@ -84,11 +76,6 @@
         mPreferenceScreen.setKey("pref_key");
     }
 
-    @After
-    public void tearDown() {
-        ShadowTrustAgentManager.clearPermissionGrantedList();
-    }
-
     @Test
     public void getAvailabilityStatus_byDefault_shouldBeShown() {
         assertThat(mController.getAvailabilityStatus())
@@ -97,8 +84,7 @@
 
     @Test
     public void onStart_noTrustAgent_shouldNotAddPreference() {
-        final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
-        mPackageManager.setResolveInfosForIntent(TEST_INTENT, availableAgents);
+        installFakeAvailableAgents(/* grantPermission= */ false);
 
         mController.displayPreference(mPreferenceScreen);
         mController.onStart();
@@ -106,57 +92,34 @@
         assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(0);
     }
 
-    @Ignore("b/313612480")
     @Test
-    public void
-    onStart_hasAUninstalledTrustAgent_shouldRemoveOnePreferenceAndLeaveTwoPreferences() {
-        final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
-        final ResolveInfo uninstalledTrustAgent = availableAgents.get(0);
-
-        for (ResolveInfo rInfo : availableAgents) {
-            ShadowTrustAgentManager.grantPermissionToResolveInfo(rInfo);
-        }
-        mPackageManager.setResolveInfosForIntent(TEST_INTENT, availableAgents);
+    public void onStart_uninstalledTrustAgent_shouldRemoveOnePreferenceAndLeaveTwoPreferences() {
+        installFakeAvailableAgents(/* grantPermission= */ true);
         mController.displayPreference(mPreferenceScreen);
         mController.onStart();
-        availableAgents.remove(uninstalledTrustAgent);
+        uninstallAgent(TRUST_AGENT_A);
 
-        mPackageManager.setResolveInfosForIntent(TEST_INTENT, availableAgents);
         mController.onStart();
 
         assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(2);
     }
 
-    @Ignore("b/313612480")
     @Test
     public void onStart_hasANewTrustAgent_shouldAddOnePreferenceAndHaveFourPreferences() {
-        final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
-        final ComponentName newComponentName = new ComponentName("test.data.packageD", "clzDDD");
-        final ResolveInfo newTrustAgent = createFakeResolveInfo(newComponentName);
-        for (ResolveInfo rInfo : availableAgents) {
-            ShadowTrustAgentManager.grantPermissionToResolveInfo(rInfo);
-        }
-        mPackageManager.setResolveInfosForIntent(TEST_INTENT, availableAgents);
+        installFakeAvailableAgents(/* grantPermission= */ true);
         mController.displayPreference(mPreferenceScreen);
         mController.onStart();
-        availableAgents.add(newTrustAgent);
-        ShadowTrustAgentManager.grantPermissionToResolveInfo(newTrustAgent);
+        installFakeAvailableAgent(TRUST_AGENT_D, /* grantPermission= */ true);
 
-        mPackageManager.setResolveInfosForIntent(TEST_INTENT, availableAgents);
         mController.onStart();
 
         assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(4);
     }
 
-    @Ignore("b/313612480")
     @Test
     public void onStart_hasUnrestrictedTrustAgent_shouldAddThreeChangeablePreferences() {
         ShadowRestrictedLockUtilsInternal.setKeyguardDisabledFeatures(0);
-        final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
-        for (ResolveInfo rInfo : availableAgents) {
-            ShadowTrustAgentManager.grantPermissionToResolveInfo(rInfo);
-        }
-        mPackageManager.setResolveInfosForIntent(TEST_INTENT, availableAgents);
+        installFakeAvailableAgents(/* grantPermission= */ true);
 
         mController.displayPreference(mPreferenceScreen);
         mController.onStart();
@@ -169,14 +132,9 @@
         }
     }
 
-    @Ignore("b/313612480")
     @Test
-    public void onStart_hasRestrictedTructAgent_shouldAddThreeUnchangeablePreferences() {
-        final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
-        for (ResolveInfo rInfo : availableAgents) {
-            ShadowTrustAgentManager.grantPermissionToResolveInfo(rInfo);
-        }
-        mPackageManager.setResolveInfosForIntent(TEST_INTENT, availableAgents);
+    public void onStart_hasRestrictedTrustAgent_shouldAddThreeUnchangeablePreferences() {
+        installFakeAvailableAgents(/* grantPermission= */ true);
         ShadowRestrictedLockUtilsInternal.setKeyguardDisabledFeatures(
                 DevicePolicyManager.KEYGUARD_DISABLE_TRUST_AGENTS);
 
@@ -191,51 +149,30 @@
         }
     }
 
-    private List<ResolveInfo> createFakeAvailableAgents() {
-        final List<ComponentName> componentNames = new ArrayList<>();
-        componentNames.add(new ComponentName("test.data.packageA", "clzAAA"));
-        componentNames.add(new ComponentName("test.data.packageB", "clzBBB"));
-        componentNames.add(new ComponentName("test.data.packageC", "clzCCC"));
-        final List<ResolveInfo> result = new ArrayList<>();
-        for (ComponentName cn : componentNames) {
-            final ResolveInfo ri = createFakeResolveInfo(cn);
-            result.add(ri);
-        }
-        return result;
+    private void installFakeAvailableAgents(boolean grantPermission) {
+        installFakeAvailableAgent(TRUST_AGENT_A, grantPermission);
+        installFakeAvailableAgent(TRUST_AGENT_B, grantPermission);
+        installFakeAvailableAgent(TRUST_AGENT_C, grantPermission);
     }
 
-    private ResolveInfo createFakeResolveInfo(ComponentName cn) {
-        final ResolveInfo ri = new ResolveInfo();
-        ri.serviceInfo = new ServiceInfo();
-        ri.serviceInfo.packageName = cn.getPackageName();
-        ri.serviceInfo.name = cn.getClassName();
-        ri.serviceInfo.applicationInfo = new ApplicationInfo();
-        ri.serviceInfo.applicationInfo.packageName = cn.getPackageName();
-        ri.serviceInfo.applicationInfo.name = cn.getClassName();
-        return ri;
+    private void installFakeAvailableAgent(ComponentName name,
+            boolean grantPermission) {
+        mPackageManager.addServiceIfNotPresent(name);
+        mPackageManager.addIntentFilterForService(name,
+                new IntentFilter(TrustAgentService.SERVICE_INTERFACE));
+        if (!grantPermission) {
+            return;
+        }
+        PackageInfo pkgInfo = mPackageManager.getInternalMutablePackageInfo(
+                name.getPackageName());
+        pkgInfo.requestedPermissions =
+                new String[]{android.Manifest.permission.PROVIDE_TRUST_AGENT};
+        pkgInfo.requestedPermissionsFlags =
+                new int[]{PackageInfo.REQUESTED_PERMISSION_GRANTED};
     }
 
-    @Implements(TrustAgentManager.class)
-    public static class ShadowTrustAgentManager {
-        private final static List<ResolveInfo> sPermissionGrantedList = new ArrayList<>();
-
-        @Implementation
-        protected boolean shouldProvideTrust(ResolveInfo resolveInfo, PackageManager pm) {
-            for (ResolveInfo info : sPermissionGrantedList) {
-                if (info.serviceInfo.equals(resolveInfo.serviceInfo)) {
-                    return true;
-                }
-            }
-
-            return false;
-        }
-
-        private static void grantPermissionToResolveInfo(ResolveInfo rInfo) {
-            sPermissionGrantedList.add(rInfo);
-        }
-
-        private static void clearPermissionGrantedList() {
-            sPermissionGrantedList.clear();
-        }
+    private void uninstallAgent(ComponentName name) {
+        mPackageManager.removeService(name);
+        mPackageManager.removePackage(name.getPackageName());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index 84c8586..edb310e 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -30,7 +30,6 @@
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -131,12 +130,18 @@
             CustomSliceRegistry.LOCATION_SLICE_URI
     );
 
-    private static final List<Uri> SPECIAL_CASE_OEM_URIS = Arrays.asList(
-            CustomSliceRegistry.ZEN_MODE_SLICE_URI,
-            CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
-            CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
-            CustomSliceRegistry.WIFI_CALLING_URI
-    );
+    private static final List<Uri> SPECIAL_CASE_OEM_URIS = android.app.Flags.modesUi()
+            ? Arrays.asList(
+                    CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
+                    CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
+                    CustomSliceRegistry.WIFI_CALLING_URI
+            ) :
+            Arrays.asList(
+                CustomSliceRegistry.ZEN_MODE_SLICE_URI,
+                CustomSliceRegistry.FLASHLIGHT_SLICE_URI,
+                CustomSliceRegistry.MOBILE_DATA_SLICE_URI,
+                CustomSliceRegistry.WIFI_CALLING_URI
+            );
 
     @Before
     public void setUp() {
diff --git a/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java b/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java
index 5d895d9..4d69821 100644
--- a/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java
@@ -20,6 +20,8 @@
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -46,20 +48,15 @@
 
     public static void setSoftwareShortcutMode(
             Context context, boolean gestureNavEnabled, boolean floatingButtonEnabled) {
-        int mode = floatingButtonEnabled ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : -1;
+        int buttonMode = floatingButtonEnabled ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : -1;
+        int navMode = gestureNavEnabled ? NAV_BAR_MODE_GESTURAL : NAV_BAR_MODE_3BUTTON;
 
         Settings.Secure.putInt(context.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
-
-        if (gestureNavEnabled) {
-            SettingsShadowResources.overrideResource(
-                    com.android.internal.R.integer.config_navBarInteractionMode,
-                    NAV_BAR_MODE_GESTURAL);
-        } else {
-            SettingsShadowResources.overrideResource(
-                    com.android.internal.R.integer.config_navBarInteractionMode,
-                    NAV_BAR_MODE_3BUTTON);
-        }
+                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, buttonMode);
+        SettingsShadowResources.overrideResource(
+                com.android.internal.R.integer.config_navBarInteractionMode, navMode);
+        assertThat(context.getResources().getInteger(
+                com.android.internal.R.integer.config_navBarInteractionMode)).isEqualTo(navMode);
     }
 
     /**
diff --git a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
index 915231f..951f2f0 100644
--- a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
@@ -43,6 +43,8 @@
 import com.android.settings.fuelgauge.batteryusage.WarningItemInfo;
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventDao;
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryEventDao;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryState;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
@@ -184,6 +186,15 @@
         }
     }
 
+    /** Inserts a fake data into the database for testing. */
+    public static void insertDataToBatteryEventTable(
+            Context context, long timestamp, int batteryEventType, int batteryLevel) {
+        final BatteryEventEntity entity =
+                new BatteryEventEntity(timestamp, batteryEventType, batteryLevel);
+        BatteryEventDao dao = BatteryStateDatabase.getInstance(context).batteryEventDao();
+        dao.insert(entity);
+    }
+
     /** Gets customized battery changed intent. */
     public static Intent getCustomBatteryIntent(int plugged, int level, int scale, int status) {
         Intent intent = new Intent();
@@ -253,18 +264,28 @@
 
     /** Create a power anomaly event proto of screen timeout. */
     public static PowerAnomalyEvent createScreenTimeoutAnomalyEvent() {
+        return createScreenTimeoutAnomalyEvent(false);
+    }
+
+    /** Create a power anomaly event proto of screen timeout. */
+    public static PowerAnomalyEvent createScreenTimeoutAnomalyEvent(boolean changeSettings) {
+        WarningBannerInfo.Builder warningBannerInfoBuilder =
+                WarningBannerInfo.newBuilder()
+                        .setMainButtonDestination(ScreenTimeoutSettings.class.getName())
+                        .setMainButtonSourceMetricsCategory(SettingsEnums.SCREEN_TIMEOUT)
+                        .setMainButtonSourceHighlightKey("60000");
+        if (changeSettings) {
+            warningBannerInfoBuilder
+                    .setMainButtonConfigSettingsName(Settings.System.SCREEN_OFF_TIMEOUT)
+                    .setMainButtonConfigSettingsValue(60000);
+        }
         return PowerAnomalyEvent.newBuilder()
                 .setEventId("ScreenTimeoutAnomaly")
                 .setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
                 .setKey(PowerAnomalyKey.KEY_SCREEN_TIMEOUT)
                 .setDismissRecordKey(PowerAnomalyKey.KEY_SCREEN_TIMEOUT.name())
                 .setScore(1.1f)
-                .setWarningBannerInfo(
-                        WarningBannerInfo.newBuilder()
-                                .setMainButtonDestination(ScreenTimeoutSettings.class.getName())
-                                .setMainButtonSourceMetricsCategory(SettingsEnums.SCREEN_TIMEOUT)
-                                .setMainButtonSourceHighlightKey("60000")
-                                .build())
+                .setWarningBannerInfo(warningBannerInfoBuilder.build())
                 .build();
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputDevice.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputDevice.java
index c21f7cc..145c2e9 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputDevice.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputDevice.java
@@ -35,6 +35,8 @@
 
     private int mDeviceId;
 
+    private int mSources;
+
     @Implementation
     protected static int[] getDeviceIds() {
         return sDeviceIds;
@@ -70,4 +72,21 @@
     public void setId(int id) {
         mDeviceId = id;
     }
+
+    public static InputDevice makeInputDevicebyIdWithSources(int id, int sources) {
+        final InputDevice inputDevice = Shadow.newInstanceOf(InputDevice.class);
+        final ShadowInputDevice shadowInputDevice = Shadow.extract(inputDevice);
+        shadowInputDevice.setId(id);
+        shadowInputDevice.setSources(sources);
+        return inputDevice;
+    }
+
+    @Implementation
+    public int getSources() {
+        return mSources;
+    }
+
+    public void setSources(int sources) {
+        mSources = sources;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
index bfab257..58288a5 100644
--- a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
@@ -23,28 +23,40 @@
 
 import android.content.Context;
 import android.content.pm.UserInfo;
+import android.multiuser.Flags;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.widget.SwitchWidgetController;
 
 import org.junit.After;
 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;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class})
+@Config(shadows = {ShadowUserManager.class, ShadowDevicePolicyManager.class})
 public class MultiUserSwitchBarControllerTest {
 
     private Context mContext;
     private ShadowUserManager mUserManager;
     private SwitchWidgetController mSwitchWidgetController;
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
 
     @Before
     public void setUp() {
@@ -60,6 +72,7 @@
     }
 
     @Test
+    @RequiresFlagsDisabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
     public void onStart_disallowUserSwitch_shouldSetDisabledByAdmin() {
         mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
                 UserManager.DISALLOW_USER_SWITCH, true);
@@ -71,6 +84,48 @@
     }
 
     @Test
+    @RequiresFlagsEnabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
+    public void onStart_disallowUserSwitchEnforcedByAdmin_shouldSetDisabledByAdminUnchecked() {
+        int userId = UserHandle.myUserId();
+        List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
+        enforcingUsers.add(new UserManager.EnforcingUser(userId,
+                UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
+        // Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
+        ShadowUserManager.getShadow().setUserRestrictionSources(
+                UserManager.DISALLOW_USER_SWITCH,
+                UserHandle.of(userId),
+                enforcingUsers);
+
+        new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
+        verify(mSwitchWidgetController).setChecked(false);
+        verify(mSwitchWidgetController).setDisabledByAdmin(any());
+    }
+
+    @Test
+    @RequiresFlagsEnabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
+    public void onStart_disallowUserSwitch_userNotMain_shouldSetDisabledUnchecked() {
+        mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+                UserManager.DISALLOW_USER_SWITCH, true);
+        new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
+
+        verify(mSwitchWidgetController).setChecked(false);
+        verify(mSwitchWidgetController).setEnabled(false);
+        verify(mSwitchWidgetController, never()).setDisabledByAdmin(any());
+    }
+
+    @Test
+    @RequiresFlagsEnabled({Flags.FLAG_FIX_DISABLING_OF_MU_TOGGLE_WHEN_RESTRICTION_APPLIED})
+    public void onStart_allowUserSwitch_notMainUser_shouldSetDisabled() {
+        mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+                UserManager.DISALLOW_USER_SWITCH, false);
+        mUserManager.addUser(10, "Test", UserInfo.FLAG_ADMIN);
+        mUserManager.switchUser(10);
+        new MultiUserSwitchBarController(mContext, mSwitchWidgetController, null);
+
+        verify(mSwitchWidgetController).setEnabled(false);
+    }
+
+    @Test
     public void onStart_allowUserSwitch_shouldNotSetDisabledByAdmin() {
         mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
                 UserManager.DISALLOW_USER_SWITCH, false);
diff --git a/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
index 7bc66c8..fe88148 100644
--- a/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
@@ -39,7 +39,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -126,7 +125,6 @@
                 BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void getAvailabilityStatus_isCurrentlyMainUser_returnDisabledForUser() {
         when(mUserManager.getMainUser()).thenReturn(UserHandle.CURRENT);
@@ -136,7 +134,6 @@
                 BasePreferenceController.DISABLED_FOR_USER);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void getAvailabilityStatus_featureAndMultiUserEnabledAndNonMainUser_returnAvailable() {
         when(mUserManager.isUserForeground()).thenReturn(true);
diff --git a/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java b/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java
index a47703c..bec49e1 100644
--- a/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserCapabilitiesTest.java
@@ -81,6 +81,17 @@
     }
 
     @Test
+    public void changeAdminStatus_updateUserCapabilities_mIsAdminGetsUpdated() {
+        mUserManager.setIsAdminUser(false);
+        UserCapabilities userCapabilities = UserCapabilities.create(mContext);
+        assertThat(userCapabilities.isAdmin()).isFalse();
+
+        mUserManager.setIsAdminUser(true);
+        userCapabilities.updateAddUserCapabilities(mContext);
+        assertThat(userCapabilities.mIsAdmin).isTrue();
+    }
+
+    @Test
     public void userSwitchEnabled_off() {
         mUserManager.setUserSwitcherEnabled(false);
 
diff --git a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
index 7f27324..482aa5d 100644
--- a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
@@ -22,7 +22,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
@@ -42,9 +42,13 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.UserInfo;
+import android.multiuser.Flags;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.telephony.TelephonyManager;
 
 import androidx.fragment.app.FragmentActivity;
@@ -63,7 +67,7 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -124,6 +128,8 @@
     private Bundle mArguments;
     private UserInfo mUserInfo;
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -222,8 +228,8 @@
     }
 
     @Test
-    @Ignore("b/313530297")
     public void onResume_canSwitch_shouldEnableSwitchPref() {
+        setupSelectedUser();
         mUserManager.setSwitchabilityStatus(SWITCHABILITY_STATUS_OK);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.onAttach(mContext);
@@ -234,8 +240,8 @@
     }
 
     @Test
-    @Ignore("b/313530297")
     public void onResume_userInCall_shouldDisableSwitchPref() {
+        setupSelectedUser();
         mUserManager.setSwitchabilityStatus(SWITCHABILITY_STATUS_USER_IN_CALL);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.onAttach(mContext);
@@ -246,8 +252,21 @@
     }
 
     @Test
-    @Ignore("b/313530297")
+    @RequiresFlagsEnabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
+    public void onResume_UserSwitcherDisabled_shouldDisableSwitchPref() {
+        setupSelectedUser();
+        mUserCapabilities.mUserSwitcherEnabled = false;
+        mFragment.mSwitchUserPref = mSwitchUserPref;
+        mFragment.onAttach(mContext);
+
+        mFragment.onResume();
+
+        verify(mSwitchUserPref).setEnabled(false);
+    }
+
+    @Test
     public void onResume_switchDisallowed_shouldDisableSwitchPref() {
+        setupSelectedUser();
         mUserManager.setSwitchabilityStatus(SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.onAttach(mContext);
@@ -258,8 +277,8 @@
     }
 
     @Test
-    @Ignore("b/313530297")
     public void onResume_systemUserLocked_shouldDisableSwitchPref() {
+        setupSelectedUser();
         mUserManager.setSwitchabilityStatus(UserManager.SWITCHABILITY_STATUS_SYSTEM_USER_LOCKED);
         mFragment.mSwitchUserPref = mSwitchUserPref;
         mFragment.onAttach(mContext);
@@ -269,7 +288,6 @@
         verify(mSwitchUserPref).setEnabled(false);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_adminWithTelephony_shouldShowPhonePreference() {
         setupSelectedUser();
@@ -315,7 +333,6 @@
         verify(mFragment).removePreference(KEY_APP_AND_CONTENT_ACCESS);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsSecondaryUser_shouldShowRemovePreference() {
         setupSelectedUser();
@@ -328,7 +345,6 @@
         verify(mFragment, never()).removePreference(KEY_REMOVE_USER);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsNewRestrictedUser_shouldOpenAppContentScreen() {
         setupSelectedRestrictedUser();
@@ -351,7 +367,6 @@
                 .isEqualTo(true);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsRestrictedUser_shouldSetupPreferences() {
         setupSelectedRestrictedUser();
@@ -381,7 +396,6 @@
         verify(mActivity, never()).startActivity(any(Intent.class));
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsGuest_shouldShowRemovePreference() {
         setupSelectedGuest();
@@ -425,7 +439,6 @@
         verify(mFragment).removePreference(KEY_REMOVE_USER);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_userHasCallRestriction_shouldSetPhoneSwitchUnChecked() {
         setupSelectedUser();
@@ -438,7 +451,6 @@
         verify(mPhonePref).setChecked(false);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_noCallRestriction_shouldSetPhoneSwitchChecked() {
         setupSelectedUser();
@@ -537,7 +549,6 @@
         verify(mFragment, never()).switchUser();
     }
 
-    @Ignore("b/313530297")
     @Test
     public void onPreferenceClick_removeGuestClicked_canDelete_shouldShowDialog() {
         setupSelectedGuest();
@@ -555,7 +566,6 @@
         verify(mFragment).showDialog(DIALOG_CONFIRM_RESET_GUEST);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void onPreferenceClick_removeRestrictedClicked_canDelete_shouldShowDialog() {
         setupSelectedRestrictedUser();
@@ -574,7 +584,6 @@
         verify(mFragment).showDialog(DIALOG_CONFIRM_REMOVE);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void onPreferenceClick_removeClicked_canDelete_shouldShowDialog() {
         setupSelectedUser();
@@ -666,7 +675,6 @@
         assertThat(result).isFalse();
     }
 
-    @Ignore("b/313530297")
     @Test
     public void canDeleteUser_adminSelectsUser_noRestrictions_shouldReturnTrue() {
         setupSelectedUser();
@@ -700,17 +708,16 @@
         assertThat(result).isFalse();
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_userSelected_shouldShowGrantAdminPref_MultipleAdminEnabled() {
+        assumeTrue(UserManager.isHeadlessSystemUserMode());
         setupSelectedUser();
+        mUserManager.setIsAdminUser(true);
         ShadowUserManager.setIsMultipleAdminEnabled(true);
         mFragment.initialize(mActivity, mArguments);
-        assertTrue(UserManager.isMultipleAdminEnabled());
         verify(mFragment, never()).removePreference(KEY_GRANT_ADMIN);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_userSelected_shouldNotShowGrantAdminPref() {
         setupSelectedUser();
@@ -718,18 +725,29 @@
         verify(mFragment).removePreference(KEY_GRANT_ADMIN);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_restrictUserSelected_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
         setupSelectedUser();
         ShadowUserManager.setIsMultipleAdminEnabled(true);
+        // target user has DISALLOW_GRANT_ADMIN restriction
         mUserManager.setUserRestriction(mUserInfo.getUserHandle(),
                 UserManager.DISALLOW_GRANT_ADMIN, true);
         mFragment.initialize(mActivity, mArguments);
         verify(mFragment).removePreference(KEY_GRANT_ADMIN);
     }
 
-    @Ignore("b/313530297")
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_UNICORN_MODE_REFACTORING_FOR_HSUM_READ_ONLY)
+    public void initialize_currentUserRestrict_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
+        setupSelectedUser();
+        ShadowUserManager.setIsMultipleAdminEnabled(true);
+        // current user has DISALLOW_GRANT_ADMIN restriction
+        mUserManager.setUserRestriction(mContext.getUser(),
+                UserManager.DISALLOW_GRANT_ADMIN, true);
+        mFragment.initialize(mActivity, mArguments);
+        verify(mFragment).removePreference(KEY_GRANT_ADMIN);
+    }
+
     @Test
     public void initialize_mainUserSelected_shouldShowGrantAdminPref_MultipleAdminEnabled() {
         setupSelectedMainUser();
@@ -738,7 +756,6 @@
         verify(mFragment).removePreference(KEY_GRANT_ADMIN);
     }
 
-    @Ignore("b/313530297")
     @Test
     public void initialize_guestSelected_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
         setupSelectedGuest();
@@ -778,7 +795,7 @@
         mUserInfo = new UserInfo(1, "Tom", null,
                 UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED,
                 UserManager.USER_TYPE_FULL_SECONDARY);
-
+        mFragment.mUserInfo = mUserInfo;
         mUserManager.addProfile(mUserInfo);
     }
 
@@ -787,7 +804,7 @@
         mUserInfo = new UserInfo(11, "Jerry", null,
                 UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_MAIN,
                 UserManager.USER_TYPE_FULL_SECONDARY);
-
+        mFragment.mUserInfo = mUserInfo;
         mUserManager.addProfile(mUserInfo);
     }
 
@@ -796,7 +813,7 @@
         mUserInfo = new UserInfo(12, "Andy", null,
                 UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_ADMIN,
                 UserManager.USER_TYPE_FULL_SECONDARY);
-
+        mFragment.mUserInfo = mUserInfo;
         mUserManager.addProfile(mUserInfo);
     }
 
@@ -805,7 +822,7 @@
         mUserInfo = new UserInfo(23, "Guest", null,
                 UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_GUEST,
                 UserManager.USER_TYPE_FULL_GUEST);
-
+        mFragment.mUserInfo = mUserInfo;
         mUserManager.addProfile(mUserInfo);
     }
 
@@ -814,7 +831,7 @@
         mUserInfo = new UserInfo(21, "Bob", null,
                 UserInfo.FLAG_FULL | UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_RESTRICTED,
                 UserManager.USER_TYPE_FULL_RESTRICTED);
-
+        mFragment.mUserInfo = mUserInfo;
         mUserManager.addProfile(mUserInfo);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
index 5826ca2..85db0bd 100644
--- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
@@ -34,6 +34,7 @@
 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 static org.robolectric.Shadows.shadowOf;
 
 import android.app.settings.SettingsEnums;
@@ -46,10 +47,15 @@
 import android.content.pm.UserInfo;
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
+import android.multiuser.Flags;
 import android.os.Bundle;
 import android.os.Looper;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
 import android.text.SpannableStringBuilder;
 import android.view.Menu;
@@ -75,6 +81,7 @@
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.AdditionalMatchers;
@@ -142,6 +149,9 @@
     private UserSettings mFragment;
     private UserCapabilities mUserCapabilities;
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -359,6 +369,7 @@
     }
 
     @Test
+    @RequiresFlagsDisabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
     public void updateUserList_cannotSwitchUser_shouldDisableAddUser() {
         mUserCapabilities.mCanAddUser = true;
         doReturn(true).when(mUserManager).canAddMoreUsers(anyString());
@@ -375,6 +386,20 @@
     }
 
     @Test
+    @RequiresFlagsEnabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
+    public void updateUserList_disallowAddUser_shouldDisableAddUserAndAddGuest() {
+        mUserCapabilities.mDisallowAddUserSetByAdmin = true;
+        doReturn(true).when(mUserManager).canAddMoreUsers(anyString());
+        doReturn(SWITCHABILITY_STATUS_OK)
+                .when(mUserManager).getUserSwitchability();
+
+        mFragment.updateUserList();
+
+        verify(mAddUserPreference).setVisible(true);
+        verify(mAddUserPreference).setDisabledByAdmin(any());
+    }
+
+    @Test
     public void updateUserList_canNotAddMoreUsers_shouldDisableAddUserWithSummary() {
         mUserCapabilities.mCanAddUser = true;
         doReturn(false).when(mUserManager).canAddMoreUsers(anyString());
@@ -392,6 +417,7 @@
     }
 
     @Test
+    @RequiresFlagsDisabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
     public void updateUserList_cannotSwitchUser_shouldDisableAddGuest() {
         mUserCapabilities.mCanAddGuest = true;
         doReturn(true)
@@ -406,6 +432,54 @@
     }
 
     @Test
+    @RequiresFlagsEnabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
+    public void updateUserList_cannotSwitchUser_shouldKeepPreferencesVisibleAndEnabled() {
+        givenUsers(getAdminUser(true));
+        mUserCapabilities.mCanAddGuest = true;
+        mUserCapabilities.mCanAddUser = true;
+        mUserCapabilities.mDisallowSwitchUser = true;
+        doReturn(true)
+                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_GUEST));
+        doReturn(true)
+                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_SECONDARY));
+
+        mFragment.updateUserList();
+
+        verify(mAddGuestPreference).setVisible(true);
+        verify(mAddGuestPreference).setEnabled(true);
+        verify(mAddUserPreference).setVisible(true);
+        verify(mAddUserPreference).setEnabled(true);
+    }
+
+    @Test
+    @RequiresFlagsEnabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
+    public void updateUserList_disallowAddUser_shouldShowButDisableAddActions() {
+        givenUsers(getAdminUser(true));
+        mUserCapabilities.mCanAddGuest = true;
+        mUserCapabilities.mCanAddUser = false;
+        mUserCapabilities.mDisallowAddUser = true;
+        mUserCapabilities.mDisallowAddUserSetByAdmin = false;
+        List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
+        enforcingUsers.add(new UserManager.EnforcingUser(UserHandle.myUserId(),
+                UserManager.RESTRICTION_SOURCE_SYSTEM));
+        when(mUserManager.getUserRestrictionSources(UserManager.DISALLOW_ADD_USER,
+                UserHandle.of(UserHandle.myUserId()))).thenReturn(enforcingUsers);
+
+        doReturn(true)
+                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_GUEST));
+        doReturn(true)
+                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_SECONDARY));
+
+        mFragment.updateUserList();
+
+        verify(mAddGuestPreference).setVisible(true);
+        verify(mAddGuestPreference).setEnabled(false);
+        verify(mAddUserPreference).setVisible(true);
+        verify(mAddUserPreference).setEnabled(false);
+    }
+
+    @Test
+    @RequiresFlagsDisabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
     public void updateUserList_addUserDisallowedByAdmin_shouldNotShowAddUser() {
         RestrictedLockUtils.EnforcedAdmin enforcedAdmin = mock(
                 RestrictedLockUtils.EnforcedAdmin.class);
@@ -421,6 +495,22 @@
     }
 
     @Test
+    @RequiresFlagsEnabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
+    public void updateUserList_addUserDisallowedByAdmin_shouldShowPrefDisabledByAdmin() {
+        RestrictedLockUtils.EnforcedAdmin enforcedAdmin = mock(
+                RestrictedLockUtils.EnforcedAdmin.class);
+
+        mUserCapabilities.mEnforcedAdmin = enforcedAdmin;
+        mUserCapabilities.mCanAddUser = false;
+        mUserCapabilities.mDisallowAddUser = true;
+        mUserCapabilities.mDisallowAddUserSetByAdmin = true;
+        doReturn(true).when(mAddUserPreference).isEnabled();
+
+        mFragment.updateUserList();
+
+        verify(mAddUserPreference).setDisabledByAdmin(enforcedAdmin);
+    }
+    @Test
     public void updateUserList_cannotAddUserButCanSwitchUser_shouldNotShowAddUser() {
         mUserCapabilities.mCanAddUser = false;
 
@@ -461,18 +551,31 @@
     }
 
     @Test
-    public void updateUserList_userSwitcherDisabled_shouldNotShowAddUser() {
+    public void updateUserList_userSwitcherDisabled_shouldShowAddUser() {
         givenUsers(getAdminUser(true));
         mUserCapabilities.mCanAddUser = true;
         mUserCapabilities.mUserSwitcherEnabled = false;
 
         mFragment.updateUserList();
 
-        verify(mAddUserPreference).setVisible(false);
+        verify(mAddUserPreference).setVisible(true);
     }
 
     @Test
-    public void updateUserList_userSwitcherDisabled_shouldNotShowAddGuest() {
+    public void updateUserList_userSwitcherDisabled_shouldShowAddGuest() {
+        givenUsers(getAdminUser(true));
+        mUserCapabilities.mCanAddGuest = true;
+        mUserCapabilities.mUserSwitcherEnabled = false;
+        doReturn(true)
+                .when(mUserManager).canAddMoreUsers(eq(UserManager.USER_TYPE_FULL_GUEST));
+
+        mFragment.updateUserList();
+
+        verify(mAddGuestPreference).setVisible(true);
+    }
+
+    @Test
+    public void updateUserList_userSwitcherDisabledCannotAddMoreGuests_shouldNotShowAddGuest() {
         givenUsers(getAdminUser(true));
         mUserCapabilities.mCanAddGuest = true;
         mUserCapabilities.mUserSwitcherEnabled = false;
@@ -533,18 +636,18 @@
     }
 
     @Test
-    public void updateUserList_existingSecondaryUser_shouldAddOnlyCurrUser_MultiUserIsDisabled() {
+    public void updateUserList_existingSecondaryUser_shouldAddAllUsers_MultiUserIsDisabled() {
         givenUsers(getAdminUser(true), getSecondaryUser(false));
         mUserCapabilities.mUserSwitcherEnabled = false;
 
         mFragment.updateUserList();
 
         ArgumentCaptor<UserPreference> captor = ArgumentCaptor.forClass(UserPreference.class);
-        verify(mFragment.mUserListCategory, times(1))
+        verify(mFragment.mUserListCategory, times(2))
                 .addPreference(captor.capture());
 
         List<UserPreference> userPrefs = captor.getAllValues();
-        assertThat(userPrefs.size()).isEqualTo(1);
+        assertThat(userPrefs.size()).isEqualTo(2);
         assertThat(userPrefs.get(0)).isSameInstanceAs(mMePreference);
     }
 
@@ -631,6 +734,7 @@
     }
 
     @Test
+    @RequiresFlagsDisabled({Flags.FLAG_NEW_MULTIUSER_SETTINGS_UX})
     public void updateUserList_uninitializedUserAndCanNotSwitchUser_shouldDisablePref() {
         UserInfo uninitializedUser = getSecondaryUser(false);
         removeFlag(uninitializedUser, UserInfo.FLAG_INITIALIZED);
diff --git a/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java b/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java
index 5f88eb2..c0adaf3 100644
--- a/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/AddWifiNetworkPreferenceTest.java
@@ -15,19 +15,23 @@
  */
 package com.android.settings.wifi;
 
+import static android.os.UserManager.DISALLOW_ADD_WIFI_CONFIG;
+
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
 import android.content.Context;
 import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settingslib.RestrictedLockUtils;
-
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
@@ -42,31 +46,44 @@
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Spy
     Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock
+    private UserManager mUserManager;
 
     private AddWifiNetworkPreference mPreference;
 
     @Before
     public void setUp() {
-        mPreference = new AddWifiNetworkPreference(mContext);
+        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
+
+        mPreference = spy(new AddWifiNetworkPreference(mContext));
     }
 
     @Test
-    public void updatePreferenceForRestriction_isAddWifiConfigAllowed_prefIsEnabled() {
-        // If the user is allowed to add Wi-Fi configuration then the EnforcedAdmin will be null.
-        RestrictedLockUtils.EnforcedAdmin enforcedAdmin = null;
+    public void checkRestrictionAndSetDisabled_disabledByAdmin_keepEnabledForClicks() {
+        when(mPreference.isDisabledByAdmin()).thenReturn(true);
 
-        mPreference.setDisabledByAdmin(enforcedAdmin);
+        mPreference.checkRestrictionAndSetDisabled();
 
         assertThat(mPreference.isEnabled()).isTrue();
     }
 
     @Test
-    public void updatePreferenceForRestriction_isAddWifiConfigNotAllowed_prefIsDisabled() {
-        RestrictedLockUtils.EnforcedAdmin enforcedAdmin = new RestrictedLockUtils.EnforcedAdmin(
-                null /* component */, UserManager.DISALLOW_ADD_WIFI_CONFIG, null /* user */);
+    public void checkRestrictionAndSetDisabled_notDisabledByAdmin_setDisabled() {
+        when(mPreference.isDisabledByAdmin()).thenReturn(false);
+        when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(true);
 
-        mPreference.setDisabledByAdmin(enforcedAdmin);
+        mPreference.checkRestrictionAndSetDisabled();
 
         assertThat(mPreference.isEnabled()).isFalse();
     }
+
+    @Test
+    public void checkRestrictionAndSetDisabled_noRestriction_setEnabled() {
+        when(mPreference.isDisabledByAdmin()).thenReturn(false);
+        when(mUserManager.hasUserRestriction(DISALLOW_ADD_WIFI_CONFIG)).thenReturn(false);
+
+        mPreference.checkRestrictionAndSetDisabled();
+
+        assertThat(mPreference.isEnabled()).isTrue();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
index 7d96496..d985ee5 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
@@ -459,46 +459,45 @@
     public void loadMacRandomizedValue_shouldPersistentAsDefault() {
         final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
         final int prefPersist =
-                WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
-                        WifiConfiguration.RANDOMIZATION_PERSISTENT);
+                WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
+                        WifiEntry.PRIVACY_RANDOMIZED_MAC);
 
         assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(prefPersist);
     }
 
     @Test
-    public void loadSavedMacRandomizedPersistentValue_shouldCorrectMacValue() {
-        checkSavedMacRandomizedValue(WifiConfiguration.RANDOMIZATION_PERSISTENT);
+    public void loadSavedPrivacyRandomizedMacValue_shouldCorrectMacValue() {
+        checkSavedMacRandomizedValue(WifiEntry.PRIVACY_RANDOMIZED_MAC);
     }
 
     @Test
-    public void loadSavedMacRandomizedNoneValue_shouldCorrectMacValue() {
-        checkSavedMacRandomizedValue(WifiConfiguration.RANDOMIZATION_NONE);
+    public void loadSavedPrivacyDeviceMacValue_shouldCorrectMacValue() {
+        checkSavedMacRandomizedValue(WifiEntry.PRIVACY_DEVICE_MAC);
     }
 
-    private void checkSavedMacRandomizedValue(int macRandomizedValue) {
+    private void checkSavedMacRandomizedValue(@WifiEntry.Privacy int privacy) {
         when(mWifiEntry.isSaved()).thenReturn(true);
         final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());
         when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
         when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
-        mockWifiConfig.macRandomizationSetting = macRandomizedValue;
+        when(mWifiEntry.getPrivacy()).thenReturn(privacy);
         createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
 
         final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
         final int expectedPrefValue =
-                WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
-                        macRandomizedValue);
+                WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(privacy);
 
         assertThat(privacySetting.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(privacySetting.getSelectedItemPosition()).isEqualTo(expectedPrefValue);
     }
 
     @Test
-    public void saveMacRandomizedValue_noChanged_shouldPersistentAsDefault() {
+    public void saveMacRandomizedValue_noChanged_shouldAutoAsDefault() {
         createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         WifiConfiguration config = mController.getConfig();
         assertThat(config.macRandomizationSetting).isEqualTo(
-                WifiConfiguration.RANDOMIZATION_PERSISTENT);
+                WifiConfiguration.RANDOMIZATION_AUTO);
     }
 
     @Test
@@ -506,7 +505,7 @@
         createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
         final int prefMacNone =
-                WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+                WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
                         WifiConfiguration.RANDOMIZATION_NONE);
         privacySetting.setSelection(prefMacNone);
 
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
deleted file mode 100644
index 9204d43..0000000
--- a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi;
-
-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.doNothing;
-import static org.mockito.Mockito.doReturn;
-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.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.ConnectivityManager;
-import android.net.NetworkRequest;
-import android.net.NetworkScoreManager;
-import android.net.wifi.WifiManager;
-import android.os.Handler;
-
-import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-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 org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowRestrictedLockUtilsInternal.class)
-public class WifiPrimarySwitchPreferenceControllerTest {
-
-    @Mock
-    private Intent mIntentReceiver;
-    @Mock
-    private WifiManager mWifiManager;
-    @Mock
-    private PreferenceScreen mScreen;
-    @Mock
-    private PrimarySwitchPreference mPreference;
-    @Mock
-    private ConnectivityManager mConnectivityManager;
-    @Mock
-    private NetworkScoreManager mNetworkScoreManager;
-
-    private Context mContext;
-    private WifiPrimarySwitchPreferenceController mController;
-    private MetricsFeatureProvider mMetricsFeatureProvider;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mMetricsFeatureProvider = FakeFeatureFactory.setupForTest().getMetricsFeatureProvider();
-        mContext = spy(RuntimeEnvironment.application.getApplicationContext());
-        doReturn(mIntentReceiver).when(mContext)
-                .registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class), anyInt());
-        doNothing().when(mContext).unregisterReceiver(any(BroadcastReceiver.class));
-        when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
-        when(mContext.getSystemService(NetworkScoreManager.class)).thenReturn(mNetworkScoreManager);
-        mController = new WifiPrimarySwitchPreferenceController(mContext, mMetricsFeatureProvider);
-        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
-        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
-        when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
-    }
-
-    @Test
-    public void testWifiPrimarySwitch_byDefault_shouldBeShown() {
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    @Test
-    @Config(qualifiers = "mcc999")
-    public void testWifiPrimarySwitch_ifDisabled_shouldNotBeShown() {
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void onResume_shouldRegisterCallback() {
-        mController.onResume();
-
-        verify(mContext).registerReceiver(
-                any(BroadcastReceiver.class), any(IntentFilter.class), anyInt());
-        verify(mConnectivityManager).registerNetworkCallback(
-                any(NetworkRequest.class),
-                any(ConnectivityManager.NetworkCallback.class),
-                any(Handler.class));
-    }
-
-    @Test
-    public void onPause_shouldUnregisterCallback() {
-        mController.onResume();
-        mController.onPause();
-
-        verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
-        verify(mConnectivityManager, times(2)).unregisterNetworkCallback(
-                any(ConnectivityManager.NetworkCallback.class));
-    }
-
-    @Test
-    public void onStart_shouldRegisterPreferenceChangeListener() {
-        mController.displayPreference(mScreen);
-        mController.onStart();
-
-        verify(mPreference).setOnPreferenceChangeListener(any(OnPreferenceChangeListener.class));
-    }
-
-    @Test
-    public void onStop_shouldRegisterPreferenceChangeListener() {
-        mController.displayPreference(mScreen);
-        mController.onStart();
-
-        mController.onStop();
-
-        verify(mPreference).setOnPreferenceChangeListener(null);
-    }
-
-    @Test
-    public void onSummaryChanged_shouldUpdatePreferenceSummary() {
-        mController.displayPreference(mScreen);
-
-        mController.onSummaryChanged("test summary");
-
-        verify(mPreference).setSummary("test summary");
-    }
-}
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 4497a0a..4440bc9 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -48,6 +48,8 @@
 import android.telephony.ims.ImsMmTelManager;
 import android.view.View;
 
+import androidx.annotation.NonNull;
+import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -56,10 +58,14 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.network.ims.MockWifiCallingQueryImsState;
 import com.android.settings.network.ims.WifiCallingQueryImsState;
+import com.android.settings.network.telephony.wificalling.IWifiCallingRepository;
 import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settings.widget.SettingsMainSwitchPreference;
 
+import kotlin.Unit;
+import kotlin.jvm.functions.Function1;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -183,36 +189,25 @@
     }
 
     @Test
-    public void onResume_provisioningAllowed_shouldNotFinish() {
-        // Call onResume while provisioning is allowed.
-        mFragment.onResume();
+    public void onViewCreated_provisioningAllowed_shouldNotFinish() {
+        // Call onViewCreated while provisioning is allowed.
+        mFragment.onViewCreated(mView, null);
 
         // Verify that finish() is not called.
         verify(mFragment, never()).finish();
     }
 
     @Test
-    public void onResume_provisioningDisallowed_shouldFinish() {
-        // Call onResume while provisioning is disallowed.
-        mQueryImsState.setIsProvisionedOnDevice(false);
-        mFragment.onResume();
+    public void onViewCreated_provisioningDisallowed_shouldFinish() {
+        // Call onViewCreated while provisioning is disallowed.
+        mFragment.mIsWifiCallingReady = false;
+        mFragment.onViewCreated(mView, null);
 
         // Verify that finish() is called
         verify(mFragment).finish();
     }
 
     @Test
-    public void onResumeOnPause_provisioningCallbackRegistration() throws Exception {
-        // Verify that provisioning callback is registered after call to onResume().
-        mFragment.onResume();
-        verify(mFragment).registerProvisioningChangedCallback();
-
-        // Verify that provisioning callback is unregistered after call to onPause.
-        mFragment.onPause();
-        verify(mFragment).unregisterProvisioningChangedCallback();
-    }
-
-    @Test
     public void onResume_useWfcHomeModeConfigFalseAndEditable_shouldShowWfcRoaming() {
         // Call onResume to update the WFC roaming preference.
         mFragment.onResume();
@@ -377,6 +372,7 @@
 
     protected class TestFragment extends WifiCallingSettingsForSub {
         private SettingsMainSwitchPreference mSwitchPref;
+        protected boolean mIsWifiCallingReady = true;
 
         protected void setSwitchBar(SettingsMainSwitchPreference switchPref) {
             mSwitchPref = switchPref;
@@ -422,6 +418,25 @@
         }
 
         @Override
+        @NonNull
+        IWifiCallingRepository getWifiCallingRepository() {
+            return new IWifiCallingRepository() {
+                @Override
+                public void collectIsWifiCallingReadyFlow(
+                        @NonNull LifecycleOwner lifecycleOwner,
+                        @NonNull Function1<? super Boolean, Unit> action) {
+                    action.invoke(mIsWifiCallingReady);
+                }
+            };
+        }
+
+        @NonNull
+        @Override
+        LifecycleOwner getLifecycleOwner() {
+            return this;
+        }
+
+        @Override
         void showAlert(Intent intent) {
         }
     }
diff --git a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java
index 13f575f..38b4b71 100644
--- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragmentTest.java
@@ -26,6 +26,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -36,13 +37,19 @@
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.fragment.app.FragmentTransaction;
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.settings.flags.Flags;
+
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -55,6 +62,7 @@
     private WifiDppQrCodeGeneratorFragment mFragment;
     private Context mContext;
 
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Before
     public void setUp() {
@@ -163,4 +171,18 @@
         assertThat(mFragment.createNearbyButton(new Intent(), v -> {
         })).isNotNull();
     }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+    public void getMetricsCatetory_shouldReturnDppQrSharing() {
+        assertThat(mFragment.getMetricsCategory())
+                .isEqualTo(SettingsEnums.SETTINGS_WIFI_DPP_QR_SHARING);
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+    public void getMetricsCatetory_shouldReturnDppConfigurator() {
+        assertThat(mFragment.getMetricsCategory())
+                .isEqualTo(SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index 299d545..0bc0a32 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -263,91 +263,114 @@
 
     @Test
     public void getNonIndexableKeys_tetherAvailable_keysNotReturned() {
-        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
-        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
-        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
-                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
-                        true /* isInstantHotspotEnabled */);
+        WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
+                true /* isTetherAvailable */, true /* isHotspotAvailable */,
+                true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
 
         final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
 
         assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
         assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
+    }
+
+    @Test
+    public void getNonIndexableKeys_tetherNotAvailable_keysReturned() {
+        WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
+                false /* isTetherAvailable */, true /* isHotspotAvailable */,
+                true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
+
+        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
+
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
+        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
+    }
+
+    @Test
+    public void getNonIndexableKeys_hotspotNotAvailable_keysReturned() {
+        WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
+                true /* isTetherAvailable */, false /* isHotspotAvailable */,
+                true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
+
+        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
+
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
+        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
+    }
+
+    @Test
+    public void getNonIndexableKeys_tetherAndHotspotNotAvailable_keysReturned() {
+        WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
+                false /* isTetherAvailable */, false /* isHotspotAvailable */,
+                true /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
+
+        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
+
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
+        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
+    }
+
+    @Test
+    public void getNonIndexableKeys_instantHotspotNotAvailableOnly_keysContainInstantHotspotOnly() {
+        WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
+                true /* isTetherAvailable */, true /* isHotspotAvailable */,
+                false /* isInstantHotspotEnabled */, true /* isSpeedFeatureAvailable */);
+
+        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
+
+        // doesNotContain
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
+        // contains
+        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
+    }
+
+    @Test
+    public void getNonIndexableKeys_speedFeatureNotAvailableOnly_keysContainInstantHotspotOnly() {
+        WifiTetherSettings.SearchIndexProvider searchIndexProvider = createSearchIndexProvider(
+                true /* isTetherAvailable */, true /* isHotspotAvailable */,
+                true /* isInstantHotspotEnabled */, false /* isSpeedFeatureAvailable */);
+
+        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
+
+        // doesNotContain
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
+        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
         assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
         assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
         assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
         assertThat(keys).doesNotContain(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
-    }
-
-    @Test
-    public void getNonIndexableKeys_tetherNotAvailable_keysReturned() {
-        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
-        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
-        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
-                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
-                        true /* isInstantHotspotEnabled */);
-
-        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
-
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
-        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
-    }
-
-    @Test
-    public void getNonIndexableKeys_hotspotNotAvailable_keysReturned() {
-        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
-        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
-        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
-                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
-                        true /* isInstantHotspotEnabled */);
-
-        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
-
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
-        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
-    }
-
-    @Test
-    public void getNonIndexableKeys_tetherAndHotspotNotAvailable_keysReturned() {
-        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
-        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
-        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
-                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
-                        true /* isInstantHotspotEnabled */);
-
-        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
-
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
-        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
-    }
-
-    @Test
-    public void getNonIndexableKeys_instantHotspotNotAvailableOnly_keysContainInstantHotspotOnly() {
-        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
-        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
-        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
-                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
-                        false /* isInstantHotspotEnabled */);
-
-        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
-
-        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
-        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY);
-        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
-        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
-        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
-        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
+        // contains
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY);
+        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED);
     }
 
     @Test
@@ -506,6 +529,18 @@
         mSettings.onCreate(Bundle.EMPTY);
     }
 
+    private WifiTetherSettings.SearchIndexProvider createSearchIndexProvider(
+            boolean isTetherAvailable, boolean isHotspotAvailable, boolean isInstantHotspotEnabled,
+            boolean isSpeedFeatureAvailable) {
+        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(isTetherAvailable);
+        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(isHotspotAvailable);
+        WifiTetherSettings.SearchIndexProvider provider =
+                spy(new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
+                        isInstantHotspotEnabled));
+        when(provider.isSpeedFeatureAvailable()).thenReturn(isSpeedFeatureAvailable);
+        return provider;
+    }
+
     @Implements(RestrictedDashboardFragment.class)
     public static final class ShadowRestrictedDashboardFragment {
 
diff --git a/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
index e0f4b9e..2cb41bc 100644
--- a/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
@@ -25,7 +25,6 @@
 import com.android.settings.applications.ApplicationFeatureProvider;
 import com.android.settings.biometrics.face.FaceFeatureProvider;
 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
 import com.android.settings.bluetooth.BluetoothFeatureProvider;
 import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider;
 import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
@@ -83,7 +82,6 @@
     public final BluetoothFeatureProvider mBluetoothFeatureProvider;
     public final FaceFeatureProvider mFaceFeatureProvider;
     public final FingerprintFeatureProvider mFingerprintFeatureProvider;
-    public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
 
     public PanelFeatureProvider panelFeatureProvider;
     public SlicesFeatureProvider slicesFeatureProvider;
@@ -139,7 +137,6 @@
         mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
         mFaceFeatureProvider = mock(FaceFeatureProvider.class);
         mFingerprintFeatureProvider = mock(FingerprintFeatureProvider.class);
-        mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
         wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
         securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
         mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
@@ -272,11 +269,6 @@
     }
 
     @Override
-    public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
-        return mBiometricsRepositoryProvider;
-    }
-
-    @Override
     public WifiTrackerLibProvider getWifiTrackerLibProvider() {
         return wifiTrackerLibProvider;
     }
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
index 417b102..02ed03c 100644
--- a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
@@ -363,6 +363,10 @@
     }
 
     @Implementation
+    protected boolean isAdminUser() {
+        return getUserInfo(UserHandle.myUserId()).isAdmin();
+    }
+    @Implementation
     protected boolean isGuestUser() {
         return mIsGuestUser;
     }
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 19433f3..e7fc3ed 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
@@ -111,9 +111,10 @@
 
   var fingerprintEnrollViewModel =
     FingerprintEnrollViewModel(
-      fingerprintManagerInteractor,
       gatekeeperViewModel,
       navigationViewModel,
+      fingerprintManagerInteractor,
+      fingerprintManagerInteractor,
     )
 
   var fingerprintEnrollEnrollingViewModel =
diff --git a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
index 52df724..f61a3d3 100644
--- a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
+++ b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
@@ -22,7 +22,14 @@
 import android.hardware.fingerprint.FingerprintEnrollOptions
 import android.hardware.fingerprint.FingerprintSensorProperties
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.AuthenitcateInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.CanEnrollFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrollFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrolledFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.GenerateChallengeInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RemoveFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RenameFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.SensorInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
@@ -35,7 +42,15 @@
 import kotlinx.coroutines.flow.flowOf
 
 /** Fake to be used by other classes to easily fake the FingerprintManager implementation. */
-class FakeFingerprintManagerInteractor : FingerprintManagerInteractor {
+class FakeFingerprintManagerInteractor :
+  AuthenitcateInteractor,
+  CanEnrollFingerprintsInteractor,
+  EnrolledFingerprintsInteractor,
+  EnrollFingerprintInteractor,
+  GenerateChallengeInteractor,
+  RemoveFingerprintInteractor,
+  RenameFingerprintInteractor,
+  SensorInteractor {
 
   var enrollableFingerprints: Int = 5
   var enrolledFingerprintsInternal: MutableList<FingerprintData> = mutableListOf()
@@ -67,19 +82,22 @@
   override val enrolledFingerprints: Flow<List<FingerprintData>> = flow {
     emit(enrolledFingerprintsInternal)
   }
-
   override val canEnrollFingerprints: Flow<Boolean> = flow {
     emit(enrolledFingerprintsInternal.size < enrollableFingerprints)
   }
 
-  override val sensorPropertiesInternal: Flow<FingerprintSensor?> = flow { emit(sensorProp) }
+  override fun maxFingerprintsEnrollable(): Int {
+    return enrollableFingerprints
+  }
 
-  override val maxEnrollableFingerprints: Flow<Int> = flow { emit(enrollableFingerprints) }
+  override val sensorPropertiesInternal: Flow<FingerprintSensor?> = flow { emit(sensorProp) }
+  override val hasSideFps: Flow<Boolean> =
+    flowOf(sensorProp.sensorType == FingerprintSensorType.POWER_BUTTON)
 
   override suspend fun enroll(
     hardwareAuthToken: ByteArray?,
     enrollReason: EnrollReason,
-    fingerprintEnrollOptions: FingerprintEnrollOptions
+    fingerprintEnrollOptions: FingerprintEnrollOptions,
   ): Flow<FingerEnrollState> = flowOf(*enrollStateViewModel.toTypedArray())
 
   override suspend fun removeFingerprint(fp: FingerprintData): Boolean {
@@ -92,7 +110,4 @@
     }
   }
 
-  override suspend fun hasSideFps(): Boolean {
-    return sensorProp.sensorType == FingerprintSensorType.POWER_BUTTON
-  }
 }
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt
index 3f517a9..5026b08 100644
--- a/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt
@@ -38,48 +38,55 @@
 import org.mockito.kotlin.doReturn
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
 
 @RunWith(AndroidJUnit4::class)
 class AppDataUsageRepositoryTest {
-    @get:Rule
-    val mockito: MockitoRule = MockitoJUnit.rule()
+    @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
 
-    private val mockUserManager = mock<UserManager> {
-        on { userProfiles } doReturn listOf(UserHandle.of(USER_ID))
-        on { getUserInfo(USER_ID) } doReturn UserInfo(USER_ID, "", 0)
-    }
+    private val mockUserManager =
+        mock<UserManager> {
+            on { userProfiles } doReturn listOf(UserHandle.of(USER_ID))
+            on { getUserInfo(USER_ID) } doReturn UserInfo(USER_ID, "", 0)
+        }
 
-    private val mockNetworkPolicyManager = mock<NetworkPolicyManager> {
-        on { getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND) } doReturn
-            intArrayOf()
-    }
+    private val mockNetworkPolicyManager =
+        mock<NetworkPolicyManager> {
+            on { getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND) } doReturn
+                intArrayOf()
+        }
 
-    private val mockResources = mock<Resources> {
-        on { getIntArray(R.array.datausage_hiding_carrier_service_carrier_id) } doReturn
-            intArrayOf(HIDING_CARRIER_ID)
+    private val mockResources =
+        mock<Resources> {
+            on { getIntArray(R.array.datausage_hiding_carrier_service_carrier_id) } doReturn
+                intArrayOf(HIDING_CARRIER_ID)
 
-        on { getStringArray(R.array.datausage_hiding_carrier_service_package_names) } doReturn
-            arrayOf(HIDING_PACKAGE_NAME)
-    }
+            on { getStringArray(R.array.datausage_hiding_carrier_service_package_names) } doReturn
+                arrayOf(HIDING_PACKAGE_NAME)
+        }
 
-    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
-        on { userManager } doReturn mockUserManager
-        on { getSystemService(NetworkPolicyManager::class.java) } doReturn mockNetworkPolicyManager
-        on { resources } doReturn mockResources
-    }
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            on { userManager } doReturn mockUserManager
+            on { getSystemService(NetworkPolicyManager::class.java) } doReturn
+                mockNetworkPolicyManager
+            on { resources } doReturn mockResources
+        }
 
     @Test
     fun getAppPercent_noAppToHide() {
-        val repository = AppDataUsageRepository(
-            context = context,
-            currentUserId = USER_ID,
-            template = Template,
-            getPackageName = { null },
-        )
-        val buckets = listOf(
-            Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
-            Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
-        )
+        val repository =
+            AppDataUsageRepository(
+                context = context,
+                currentUserId = USER_ID,
+                template = Template,
+                getPackageName = { null },
+            )
+        val buckets =
+            listOf(
+                Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
+                Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+            )
 
         val appPercentList = repository.getAppPercent(null, buckets)
 
@@ -100,16 +107,18 @@
 
     @Test
     fun getAppPercent_hasAppToHide() {
-        val repository = AppDataUsageRepository(
-            context = context,
-            currentUserId = USER_ID,
-            template = Template,
-            getPackageName = { if (it.key == APP_ID_1) HIDING_PACKAGE_NAME else null },
-        )
-        val buckets = listOf(
-            Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
-            Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
-        )
+        val repository =
+            AppDataUsageRepository(
+                context = context,
+                currentUserId = USER_ID,
+                template = Template,
+                getPackageName = { if (it.key == APP_ID_1) HIDING_PACKAGE_NAME else null },
+            )
+        val buckets =
+            listOf(
+                Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
+                Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+            )
 
         val appPercentList = repository.getAppPercent(HIDING_CARRIER_ID, buckets)
 
@@ -122,6 +131,43 @@
         assertThat(appPercentList[0].second).isEqualTo(100)
     }
 
+    @Test
+    fun getAppPercent_restricted() {
+        mockNetworkPolicyManager.stub {
+            on { getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND) } doReturn
+                intArrayOf(APP_ID_1)
+        }
+        val repository =
+            AppDataUsageRepository(
+                context = context,
+                currentUserId = USER_ID,
+                template = Template,
+                getPackageName = { null },
+            )
+        val buckets =
+            listOf(
+                Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+            )
+
+        val appPercentList = repository.getAppPercent(null, buckets)
+
+        assertThat(appPercentList).hasSize(2)
+        appPercentList[0].first.apply {
+            assertThat(key).isEqualTo(APP_ID_2)
+            assertThat(category).isEqualTo(AppItem.CATEGORY_APP)
+            assertThat(total).isEqualTo(2)
+            assertThat(restricted).isFalse()
+        }
+        assertThat(appPercentList[0].second).isEqualTo(100)
+        appPercentList[1].first.apply {
+            assertThat(key).isEqualTo(APP_ID_1)
+            assertThat(category).isEqualTo(AppItem.CATEGORY_APP)
+            assertThat(total).isEqualTo(0)
+            assertThat(restricted).isTrue()
+        }
+        assertThat(appPercentList[1].second).isEqualTo(0)
+    }
+
     private companion object {
         const val USER_ID = 1
         const val APP_ID_1 = 110001
diff --git a/tests/spa_unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepositoryTest.kt
index 01f32bf..1c1d9df 100644
--- a/tests/spa_unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogRepositoryTest.kt
@@ -17,65 +17,65 @@
 package com.android.settings.deviceinfo.simstatus
 
 import android.content.Context
-import android.os.PersistableBundle
 import android.telephony.CarrierConfigManager
 import androidx.lifecycle.testing.TestLifecycleOwner
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.deviceinfo.simstatus.SimStatusDialogRepository.SimStatusDialogInfo
+import com.android.settings.network.telephony.CarrierConfigRepository
 import com.android.settings.network.telephony.SimSlotRepository
 import com.android.settings.network.telephony.ims.ImsMmTelRepository
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.runBlocking
+import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.kotlin.anyVararg
 import org.mockito.kotlin.doReturn
-import org.mockito.kotlin.eq
 import org.mockito.kotlin.mock
-import org.mockito.kotlin.spy
 
 @RunWith(AndroidJUnit4::class)
 class SimStatusDialogRepositoryTest {
 
-    private val carrierConfig = PersistableBundle().apply {
-        putBoolean(CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, true)
-    }
+    private val context: Context = ApplicationProvider.getApplicationContext()
 
-    private val mockCarrierConfigManager = mock<CarrierConfigManager> {
-        on { getConfigForSubId(eq(SUB_ID), anyVararg()) } doReturn carrierConfig
-    }
+    private val mockSimSlotRepository =
+        mock<SimSlotRepository> {
+            on { subIdInSimSlotFlow(SIM_SLOT_INDEX) } doReturn flowOf(SUB_ID)
+        }
 
-    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
-        on { getSystemService(CarrierConfigManager::class.java) } doReturn mockCarrierConfigManager
-    }
+    private val mockSignalStrengthRepository =
+        mock<SignalStrengthRepository> {
+            on { signalStrengthDisplayFlow(SUB_ID) } doReturn flowOf(SIGNAL_STRENGTH)
+        }
 
-    private val mockSimSlotRepository = mock<SimSlotRepository> {
-        on { subIdInSimSlotFlow(SIM_SLOT_INDEX) } doReturn flowOf(SUB_ID)
-    }
+    private val mockImsMmTelRepository =
+        mock<ImsMmTelRepository> { on { imsRegisteredFlow() } doReturn flowOf(true) }
 
-    private val mockSignalStrengthRepository = mock<SignalStrengthRepository> {
-        on { signalStrengthDisplayFlow(SUB_ID) } doReturn flowOf(SIGNAL_STRENGTH)
-    }
+    private val controller =
+        SimStatusDialogRepository(
+            context = context,
+            simSlotRepository = mockSimSlotRepository,
+            signalStrengthRepository = mockSignalStrengthRepository,
+            imsMmTelRepositoryFactory = { subId ->
+                assertThat(subId).isEqualTo(SUB_ID)
+                mockImsMmTelRepository
+            },
+        )
 
-    private val mockImsMmTelRepository = mock<ImsMmTelRepository> {
-        on { imsRegisteredFlow() } doReturn flowOf(true)
+    @Before
+    fun setUp() {
+        CarrierConfigRepository.resetForTest()
     }
 
-    private val controller = SimStatusDialogRepository(
-        context = context,
-        simSlotRepository = mockSimSlotRepository,
-        signalStrengthRepository = mockSignalStrengthRepository,
-        imsMmTelRepositoryFactory = { subId ->
-            assertThat(subId).isEqualTo(SUB_ID)
-            mockImsMmTelRepository
-        },
-    )
-
     @Test
     fun collectSimStatusDialogInfo() = runBlocking {
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_ID,
+            key = CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL,
+            value = true,
+        )
         var simStatusDialogInfo = SimStatusDialogInfo()
 
         controller.collectSimStatusDialogInfo(TestLifecycleOwner(), SIM_SLOT_INDEX) {
@@ -83,19 +83,20 @@
         }
         delay(100)
 
-        assertThat(simStatusDialogInfo).isEqualTo(
-            SimStatusDialogInfo(
-                signalStrength = SIGNAL_STRENGTH,
-                imsRegistered = true,
-            )
-        )
+        assertThat(simStatusDialogInfo)
+            .isEqualTo(
+                SimStatusDialogInfo(
+                    signalStrength = SIGNAL_STRENGTH,
+                    imsRegistered = true,
+                ))
     }
 
     @Test
     fun collectSimStatusDialogInfo_doNotShowSignalStrength() = runBlocking {
-        carrierConfig.putBoolean(
-            CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL,
-            false
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_ID,
+            key = CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL,
+            value = false,
         )
         var simStatusDialogInfo = SimStatusDialogInfo()
 
@@ -109,7 +110,11 @@
 
     @Test
     fun collectSimStatusDialogInfo_doNotShowImsRegistration() = runBlocking {
-        carrierConfig.putBoolean(CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, false)
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_ID,
+            key = CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL,
+            value = false,
+        )
         var simStatusDialogInfo = SimStatusDialogInfo()
 
         controller.collectSimStatusDialogInfo(TestLifecycleOwner(), SIM_SLOT_INDEX) {
diff --git a/tests/spa_unit/src/com/android/settings/network/MobileDataEnabledFlowTest.kt b/tests/spa_unit/src/com/android/settings/network/MobileDataEnabledFlowTest.kt
deleted file mode 100644
index c4611ac..0000000
--- a/tests/spa_unit/src/com/android/settings/network/MobileDataEnabledFlowTest.kt
+++ /dev/null
@@ -1,91 +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.network
-
-import android.content.Context
-import android.provider.Settings
-import android.telephony.SubscriptionManager
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
-import com.android.settingslib.spa.testutils.toListWithTimeout
-import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.async
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.runBlocking
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@RunWith(AndroidJUnit4::class)
-class MobileDataEnabledFlowTest {
-    private val context: Context = ApplicationProvider.getApplicationContext()
-
-    @Test
-    fun mobileDataEnabledFlow_notified(): Unit = runBlocking {
-        val flow = context.mobileDataEnabledFlow(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
-
-        assertThat(flow.firstWithTimeoutOrNull()).isNotNull()
-    }
-
-    @Test
-    fun mobileDataEnabledFlow_changed_notified(): Unit = runBlocking {
-        var mobileDataEnabled by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA)
-        mobileDataEnabled = false
-
-        val flow = context.mobileDataEnabledFlow(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
-        mobileDataEnabled = true
-
-        assertThat(flow.firstWithTimeoutOrNull()).isNotNull()
-    }
-
-    @Test
-    fun mobileDataEnabledFlow_forSubIdNotChanged(): Unit = runBlocking {
-        var mobileDataEnabled by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA)
-        mobileDataEnabled = false
-        var mobileDataEnabledForSubId
-            by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA + SUB_ID)
-        mobileDataEnabledForSubId = false
-
-        val listDeferred = async {
-            context.mobileDataEnabledFlow(SUB_ID).toListWithTimeout()
-        }
-
-        assertThat(listDeferred.await()).hasSize(1)
-    }
-
-    @Test
-    fun mobileDataEnabledFlow_forSubIdChanged(): Unit = runBlocking {
-        var mobileDataEnabled by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA)
-        mobileDataEnabled = false
-        var mobileDataEnabledForSubId
-            by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA + SUB_ID)
-        mobileDataEnabledForSubId = false
-
-        val listDeferred = async {
-            context.mobileDataEnabledFlow(SUB_ID).toListWithTimeout()
-        }
-        delay(100)
-        mobileDataEnabledForSubId = true
-
-        assertThat(listDeferred.await().size).isAtLeast(2)
-    }
-
-    private companion object {
-        const val SUB_ID = 123
-    }
-}
diff --git a/tests/spa_unit/src/com/android/settings/network/SimOnboardingServiceTest.kt b/tests/spa_unit/src/com/android/settings/network/SimOnboardingServiceTest.kt
new file mode 100644
index 0000000..6f9029e
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/SimOnboardingServiceTest.kt
@@ -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.network
+
+import android.telephony.SubscriptionInfo
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class SimOnboardingServiceTest {
+
+    @Test
+    fun addItemForRenaming_addItemWithNewName_findItem() {
+        val simOnboardingService = SimOnboardingService()
+        val newName = "NewName"
+
+        simOnboardingService.addItemForRenaming(SUB_INFO_1, newName)
+
+        assertThat(simOnboardingService.renameMutableMap)
+            .containsEntry(SUB_INFO_1.subscriptionId, newName)
+    }
+
+    @Test
+    fun addItemForRenaming_sameNameAndItemNotInList_removeItem() {
+        val simOnboardingService = SimOnboardingService()
+
+        simOnboardingService.addItemForRenaming(SUB_INFO_1, DISPLAY_NAME_1)
+
+        assertThat(simOnboardingService.renameMutableMap)
+            .doesNotContainKey(SUB_INFO_1.subscriptionId)
+    }
+
+    @Test
+    fun addItemForRenaming_sameNameAndItemInList_removeItem() {
+        val simOnboardingService = SimOnboardingService()
+        simOnboardingService.renameMutableMap[SUB_INFO_1.subscriptionId] = "NewName"
+
+        simOnboardingService.addItemForRenaming(SUB_INFO_1, DISPLAY_NAME_1)
+
+        assertThat(simOnboardingService.renameMutableMap)
+            .doesNotContainKey(SUB_INFO_1.subscriptionId)
+    }
+
+    private companion object {
+        const val SUB_ID_1 = 1
+        const val DISPLAY_NAME_1 = "Sub 1"
+
+        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_1)
+            setDisplayName(DISPLAY_NAME_1)
+        }.build()
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/network/apn/ApnEditCarrierEnabledTest.kt b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditCarrierEnabledTest.kt
new file mode 100644
index 0000000..bd97482
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditCarrierEnabledTest.kt
@@ -0,0 +1,109 @@
+/*
+ * 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.apn
+
+import android.content.Context
+import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.assertIsEnabled
+import androidx.compose.ui.test.assertIsNotEnabled
+import androidx.compose.ui.test.assertIsOff
+import androidx.compose.ui.test.assertIsOn
+import androidx.compose.ui.test.junit4.ComposeTestRule
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class ApnEditCarrierEnabledTest {
+
+    @get:Rule val composeTestRule = createComposeRule()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {}
+
+    private val resources = spy(context.resources) {}
+
+    @Before
+    fun setUp() {
+        context.stub { on { resources } doReturn resources }
+    }
+
+    @Test
+    fun carrierEnabled_displayed() {
+        composeTestRule.setContent { ApnEditCarrierEnabled(ApnData()) {} }
+
+        composeTestRule.onCarrierEnabled().assertIsDisplayed()
+    }
+
+    @Test
+    fun carrierEnabled_isChecked() {
+        val apnData = ApnData(carrierEnabled = true)
+
+        composeTestRule.setContent { ApnEditCarrierEnabled(apnData) {} }
+
+        composeTestRule.onCarrierEnabled().assertIsOn()
+    }
+
+    @Test
+    fun carrierEnabled_allowEdit_checkChanged() {
+        resources.stub { on { getBoolean(R.bool.config_allow_edit_carrier_enabled) } doReturn true }
+        var apnData by mutableStateOf(ApnData(carrierEnabled = true))
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) {
+                ApnEditCarrierEnabled(apnData) { apnData = apnData.copy(carrierEnabled = it) }
+            }
+        }
+
+        composeTestRule.onCarrierEnabled().performClick()
+
+        composeTestRule.onCarrierEnabled().assertIsEnabled().assertIsOff()
+    }
+
+    @Test
+    fun carrierEnabled_notAllowEdit_checkNotChanged() {
+        resources.stub {
+            on { getBoolean(R.bool.config_allow_edit_carrier_enabled) } doReturn false
+        }
+        var apnData by mutableStateOf(ApnData(carrierEnabled = true))
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) {
+                ApnEditCarrierEnabled(apnData) { apnData = apnData.copy(carrierEnabled = it) }
+            }
+        }
+
+        composeTestRule.onCarrierEnabled().performClick()
+
+        composeTestRule.onCarrierEnabled().assertIsNotEnabled().assertIsOn()
+    }
+
+    private fun ComposeTestRule.onCarrierEnabled() =
+        onNodeWithText(context.getString(R.string.carrier_enabled))
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt
index 3621948..d310604 100644
--- a/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt
@@ -21,24 +21,17 @@
 import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
 import androidx.compose.ui.test.assertIsDisplayed
-import androidx.compose.ui.test.assertIsOff
-import androidx.compose.ui.test.assertIsOn
 import androidx.compose.ui.test.hasText
-import androidx.compose.ui.test.isFocused
 import androidx.compose.ui.test.junit4.createComposeRule
-import androidx.compose.ui.test.onAllNodesWithText
 import androidx.compose.ui.test.onChild
 import androidx.compose.ui.test.onChildAt
-import androidx.compose.ui.test.onLast
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.onRoot
-import androidx.compose.ui.test.performClick
 import androidx.compose.ui.test.performScrollToNode
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
 import com.google.common.truth.Truth
-import org.junit.Ignore
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -55,7 +48,6 @@
     private val port = "port"
     private val apnType = context.resources.getString(R.string.apn_type)
     private val apnRoaming = "IPv4"
-    private val apnEnable = context.resources.getString(R.string.carrier_enabled)
     private val apnProtocolOptions =
         context.resources.getStringArray(R.array.apn_protocol_entries).toList()
     private val passwordTitle = context.resources.getString(R.string.apn_password)
@@ -65,7 +57,6 @@
         port = port,
         apnType = apnType,
         apnRoaming = apnProtocolOptions.indexOf(apnRoaming),
-        apnEnable = true
     )
     private val apnData = mutableStateOf(
         apnInit
@@ -133,39 +124,6 @@
         composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed()
     }
 
-    @Ignore("b/342374681")
-    @Test
-    fun carrier_enabled_displayed() {
-        composeTestRule.setContent {
-            ApnPage(apnInit, remember { apnData }, uri)
-        }
-        composeTestRule.onRoot().onChild().onChildAt(0)
-            .performScrollToNode(hasText(apnEnable, true))
-        composeTestRule.onNodeWithText(apnEnable, true).assertIsDisplayed()
-    }
-
-    @Test
-    fun carrier_enabled_isChecked() {
-        composeTestRule.setContent {
-            ApnPage(apnInit, remember { apnData }, uri)
-        }
-        composeTestRule.onRoot().onChild().onChildAt(0)
-            .performScrollToNode(hasText(apnEnable, true))
-        composeTestRule.onNodeWithText(apnEnable, true).assertIsOn()
-    }
-
-    @Ignore("b/342374681")
-    @Test
-    fun carrier_enabled_checkChanged() {
-        composeTestRule.setContent {
-            ApnPage(apnInit, remember { apnData }, uri)
-        }
-        composeTestRule.onRoot().onChild().onChildAt(0)
-            .performScrollToNode(hasText(apnEnable, true))
-        composeTestRule.onNodeWithText(apnEnable, true).performClick()
-        composeTestRule.onNodeWithText(apnEnable, true).assertIsOff()
-    }
-
     @Test
     fun password_displayed() {
         composeTestRule.setContent {
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/CallStateRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/CallStateRepositoryTest.kt
index 55d520f..d192eb4 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/CallStateRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/CallStateRepositoryTest.kt
@@ -17,7 +17,6 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
-import android.telephony.SubscriptionManager
 import android.telephony.TelephonyCallback
 import android.telephony.TelephonyManager
 import androidx.test.core.app.ApplicationProvider
@@ -27,6 +26,7 @@
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.async
 import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.runBlocking
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -49,20 +49,15 @@
         }
     }
 
-    private val mockSubscriptionManager = mock<SubscriptionManager> {
-        on { activeSubscriptionIdList } doReturn intArrayOf(SUB_ID)
-        on { addOnSubscriptionsChangedListener(any(), any()) } doAnswer {
-            val listener = it.arguments[1] as SubscriptionManager.OnSubscriptionsChangedListener
-            listener.onSubscriptionsChanged()
-        }
+    private val mockSubscriptionRepository = mock<SubscriptionRepository> {
+        on { activeSubscriptionIdListFlow() } doReturn flowOf(listOf(SUB_ID))
     }
 
     private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
         on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
-        on { subscriptionManager } doReturn mockSubscriptionManager
     }
 
-    private val repository = CallStateRepository(context)
+    private val repository = CallStateRepository(context, mockSubscriptionRepository)
 
     @Test
     fun callStateFlow_initial_sendInitialState() = runBlocking {
@@ -89,8 +84,8 @@
 
     @Test
     fun isInCallFlow_noActiveSubscription() = runBlocking {
-        mockSubscriptionManager.stub {
-            on { activeSubscriptionIdList } doReturn intArrayOf()
+        mockSubscriptionRepository.stub {
+            on { activeSubscriptionIdListFlow() } doReturn flowOf(emptyList())
         }
 
         val isInCall = repository.isInCallFlow().firstWithTimeoutOrNull()
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/CarrierConfigRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/CarrierConfigRepositoryTest.kt
new file mode 100644
index 0000000..8c54751
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/CarrierConfigRepositoryTest.kt
@@ -0,0 +1,138 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import androidx.core.os.persistableBundleOf
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.anyVararg
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.doThrow
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.times
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class CarrierConfigRepositoryTest {
+
+    private val mockCarrierConfigManager = mock<CarrierConfigManager>()
+
+    private val context =
+        mock<Context> {
+            on { applicationContext } doReturn mock
+            on { getSystemService(CarrierConfigManager::class.java) } doReturn
+                mockCarrierConfigManager
+        }
+
+    private val repository = CarrierConfigRepository(context)
+
+    @Before
+    fun setUp() {
+        CarrierConfigRepository.resetForTest()
+    }
+
+    @Test
+    fun getBoolean_returnValue() {
+        val key = CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), eq(key)) } doReturn persistableBundleOf(key to true)
+        }
+
+        val value = repository.getBoolean(SUB_ID, key)
+
+        assertThat(value).isTrue()
+    }
+
+    @Test
+    fun getInt_returnValue() {
+        val key = CarrierConfigManager.KEY_GBA_MODE_INT
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), eq(key)) } doReturn persistableBundleOf(key to 99)
+        }
+
+        val value = repository.getInt(SUB_ID, key)
+
+        assertThat(value).isEqualTo(99)
+    }
+
+    @Test
+    fun getString_returnValue() {
+        val key = CarrierConfigManager.KEY_CARRIER_NAME_STRING
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), eq(key)) } doReturn
+                persistableBundleOf(key to STRING_VALUE)
+        }
+
+        val value = repository.getString(SUB_ID, key)
+
+        assertThat(value).isEqualTo(STRING_VALUE)
+    }
+
+    @Test
+    fun transformConfig_managerThrowIllegalStateException_returnDefaultValue() {
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), anyVararg()) } doThrow IllegalStateException()
+        }
+
+        val carrierName =
+            repository.transformConfig(SUB_ID) {
+                getInt(CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT)
+            }
+
+        assertThat(carrierName)
+            .isEqualTo(
+                CarrierConfigManager.getDefaultConfig()
+                    .getInt(CarrierConfigManager.KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT))
+    }
+
+    @Test
+    fun transformConfig_getValueTwice_cached() {
+        val key = CarrierConfigManager.KEY_CARRIER_NAME_STRING
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), eq(key)) } doReturn
+                persistableBundleOf(key to STRING_VALUE)
+        }
+
+        repository.transformConfig(SUB_ID) { getString(key) }
+        repository.transformConfig(SUB_ID) { getString(key) }
+
+        verify(mockCarrierConfigManager, times(1)).getConfigForSubId(any(), anyVararg())
+    }
+
+    @Test
+    fun transformConfig_registerCarrierConfigChangeListener() {
+        val key = CarrierConfigManager.KEY_CARRIER_NAME_STRING
+
+        repository.transformConfig(SUB_ID) { getString(key) }
+        repository.transformConfig(SUB_ID) { getString(key) }
+
+        verify(mockCarrierConfigManager, times(1)).registerCarrierConfigChangeListener(any(), any())
+    }
+
+    private companion object {
+        const val SUB_ID = 123
+        const val STRING_VALUE = "value"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.kt
new file mode 100644
index 0000000..ed6c027
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.kt
@@ -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.network.telephony
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class CarrierSettingsVersionPreferenceControllerTest {
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val controller =
+        CarrierSettingsVersionPreferenceController(context, TEST_KEY).apply { init(SUB_ID) }
+
+    @Before
+    fun setUp() {
+        CarrierConfigRepository.resetForTest()
+    }
+
+    @Test
+    fun getSummary_nullConfig_noCrash() {
+        controller.getSummary()
+    }
+
+    @Test
+    fun getSummary_nullVersionString_returnNull() {
+        CarrierConfigRepository.setStringForTest(
+            SUB_ID, CarrierConfigManager.KEY_CARRIER_CONFIG_VERSION_STRING, null)
+
+        val summary = controller.getSummary()
+
+        assertThat(summary).isNull()
+    }
+
+    @Test
+    fun getSummary_hasVersionString_returnCorrectSummary() {
+        CarrierConfigRepository.setStringForTest(
+            SUB_ID, CarrierConfigManager.KEY_CARRIER_CONFIG_VERSION_STRING, "test_version_123")
+
+        val summary = controller.getSummary()
+
+        assertThat(summary).isEqualTo("test_version_123")
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val SUB_ID = 10
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt
index 7124b6a..f4974e9 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/DataUsagePreferenceControllerTest.kt
@@ -29,7 +29,6 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito
 import com.android.settings.core.BasePreferenceController.AVAILABLE
-import com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE
 import com.android.settings.datausage.DataUsageUtils
 import com.android.settings.datausage.lib.DataUsageLib
 import com.android.settings.datausage.lib.NetworkCycleDataRepository
@@ -77,7 +76,6 @@
     @Before
     fun setUp() {
         mockSession = ExtendedMockito.mockitoSession()
-            .initMocks(this)
             .spyStatic(DataUsageUtils::class.java)
             .spyStatic(DataUsageLib::class.java)
             .strictness(Strictness.LENIENT)
@@ -101,19 +99,11 @@
     }
 
     @Test
-    fun getAvailabilityStatus_validSubId_returnAvailable() {
+    fun getAvailabilityStatus_returnAvailable() {
         assertThat(controller.availabilityStatus).isEqualTo(AVAILABLE)
     }
 
     @Test
-    fun getAvailabilityStatus_invalidSubId_returnUnsearchable() {
-        val availabilityStatus =
-            controller.getAvailabilityStatus(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
-
-        assertThat(availabilityStatus).isEqualTo(AVAILABLE_UNSEARCHABLE)
-    }
-
-    @Test
     fun handlePreferenceTreeClick_startActivity() = runBlocking {
         val usageData = NetworkUsageData(START_TIME, END_TIME, 1L)
         repository.stub {
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelperTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelperTest.kt
new file mode 100644
index 0000000..8edc90f
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelperTest.kt
@@ -0,0 +1,96 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.spy
+
+@RunWith(AndroidJUnit4::class)
+class EnabledNetworkModePreferenceControllerHelperTest {
+
+    private var context: Context = spy(ApplicationProvider.getApplicationContext()) {}
+
+    @Before
+    fun setUp() {
+        CarrierConfigRepository.resetForTest()
+        CarrierConfigRepository.setBooleanForTest(
+            SUB_ID, CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true)
+    }
+
+    @Test
+    fun getNetworkModePreferenceType_hideCarrierNetworkSettings_returnNone() {
+        CarrierConfigRepository.setBooleanForTest(
+            SUB_ID, CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, true)
+
+        val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+        assertThat(networkModePreferenceType).isEqualTo(NetworkModePreferenceType.None)
+    }
+
+    @Test
+    fun getNetworkModePreferenceType_hidePreferredNetworkType_returnNone() {
+        CarrierConfigRepository.setBooleanForTest(
+            SUB_ID, CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL, true)
+
+        val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+        assertThat(networkModePreferenceType).isEqualTo(NetworkModePreferenceType.None)
+    }
+
+    @Test
+    fun getNetworkModePreferenceType_carrierConfigNotReady_returnNone() {
+        CarrierConfigRepository.setBooleanForTest(
+            SUB_ID, CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false)
+
+        val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+        assertThat(networkModePreferenceType).isEqualTo(NetworkModePreferenceType.None)
+    }
+
+    @Test
+    fun getNetworkModePreferenceType_isWorldPhone_returnPreferredNetworkMode() {
+        CarrierConfigRepository.setBooleanForTest(
+            SUB_ID, CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true)
+
+        val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+        assertThat(networkModePreferenceType)
+            .isEqualTo(NetworkModePreferenceType.PreferredNetworkMode)
+    }
+
+    @Test
+    fun getNetworkModePreferenceType_notWorldPhone_returnEnabledNetworkMode() {
+        CarrierConfigRepository.setBooleanForTest(
+            SUB_ID, CarrierConfigManager.KEY_WORLD_PHONE_BOOL, false)
+
+        val networkModePreferenceType = getNetworkModePreferenceType(context, SUB_ID)
+
+        assertThat(networkModePreferenceType)
+            .isEqualTo(NetworkModePreferenceType.EnabledNetworkMode)
+    }
+
+    private companion object {
+        const val SUB_ID = 10
+    }
+}
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 a2f635d..4d53260 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
@@ -24,6 +24,7 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.core.BasePreferenceController.AVAILABLE
 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.Test
 import org.junit.runner.RunWith
@@ -60,13 +61,13 @@
         context = context,
         key = KEY,
         getDefaultDataSubId = { defaultDataSubId },
-    ).apply { init(SUB_2_ID) }
+    )
 
     @Test
     fun getAvailabilityStatus_invalidSubscription_unavailable() {
         controller.init(INVALID_SUBSCRIPTION_ID)
 
-        val availabilityStatus = controller.getAvailabilityStatus(INVALID_SUBSCRIPTION_ID)
+        val availabilityStatus = controller.getAvailabilityStatus()
 
         assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
     }
@@ -76,8 +77,9 @@
         mockTelephonyManager2.stub {
             on { isDataEnabled } doReturn true
         }
+        controller.init(SUB_2_ID)
 
-        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+        val availabilityStatus = controller.getAvailabilityStatus()
 
         assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
     }
@@ -87,8 +89,9 @@
         mockTelephonyManager2.stub {
             on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn false
         }
+        controller.init(SUB_2_ID)
 
-        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+        val availabilityStatus = controller.getAvailabilityStatus()
 
         assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
     }
@@ -102,8 +105,9 @@
                 isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
             } doReturn true
         }
+        controller.init(SUB_2_ID)
 
-        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+        val availabilityStatus = controller.getAvailabilityStatus()
 
         assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
     }
@@ -117,14 +121,16 @@
                 isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
             } doReturn true
         }
+        controller.init(SUB_2_ID)
 
-        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+        val availabilityStatus = controller.getAvailabilityStatus()
 
         assertThat(availabilityStatus).isEqualTo(AVAILABLE)
     }
 
     @Test
-    fun getAvailabilityStatus_defaultDataOnAndAutoDataSwitchOn_unavailable() {
+    fun getAvailabilityStatus_notDefaultDataAndDataOnAndAutoDataSwitchOn_unavailable() {
+        defaultDataSubId = SUB_1_ID
         mockTelephonyManager1.stub {
             on { isDataEnabled } doReturn true
         }
@@ -133,14 +139,16 @@
                 isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
             } doReturn true
         }
+        controller.init(SUB_2_ID)
 
-        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+        val availabilityStatus = controller.getAvailabilityStatus()
 
         assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
     }
 
     @Test
-    fun getAvailabilityStatus_defaultDataOffAndAutoDataSwitchOn_available() {
+    fun getAvailabilityStatus_notDefaultDataAndDataOffAndAutoDataSwitchOn_available() {
+        defaultDataSubId = SUB_1_ID
         mockTelephonyManager1.stub {
             on { isDataEnabled } doReturn false
         }
@@ -149,19 +157,57 @@
                 isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
             } doReturn true
         }
+        controller.init(SUB_2_ID)
 
-        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+        val availabilityStatus = controller.getAvailabilityStatus()
 
         assertThat(availabilityStatus).isEqualTo(AVAILABLE)
     }
 
     @Test
+    fun searchIsAvailable_notDefaultDataAndDataOnAndAutoDataSwitchOn_unavailable() {
+        mockTelephonyManager1.stub {
+            on { isDataEnabled } doReturn true
+        }
+        mockTelephonyManager2.stub {
+            on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn true
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+        val mmsMessageSearchItem = MmsMessageSearchItem(context) { SUB_1_ID }
+
+        val isAvailable = mmsMessageSearchItem.isAvailable(SUB_2_ID)
+
+        assertThat(isAvailable).isFalse()
+    }
+
+    @Test
+    fun searchIsAvailable_notDefaultDataAndDataOffAndAutoDataSwitchOn_available() {
+        mockTelephonyManager1.stub {
+            on { isDataEnabled } doReturn false
+        }
+        mockTelephonyManager2.stub {
+            on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn true
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+        val mmsMessageSearchItem = MmsMessageSearchItem(context) { SUB_1_ID }
+
+        val isAvailable = mmsMessageSearchItem.isAvailable(SUB_2_ID)
+
+        assertThat(isAvailable).isTrue()
+    }
+
+    @Test
     fun isChecked_whenMmsNotAlwaysAllowed_returnFalse() {
         mockTelephonyManager2.stub {
             on {
                 isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
             } doReturn false
         }
+        controller.init(SUB_2_ID)
 
         val isChecked = controller.isChecked()
 
@@ -175,6 +221,7 @@
                 isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
             } doReturn true
         }
+        controller.init(SUB_2_ID)
 
         val isChecked = controller.isChecked()
 
@@ -183,6 +230,8 @@
 
     @Test
     fun setChecked_setTrue_setDataIntoSubscriptionManager() {
+        controller.init(SUB_2_ID)
+
         controller.setChecked(true)
 
         verify(mockTelephonyManager2).setMobileDataPolicyEnabled(
@@ -192,6 +241,8 @@
 
     @Test
     fun setChecked_setFalse_setDataIntoSubscriptionManager() {
+        controller.init(SUB_2_ID)
+
         controller.setChecked(false)
 
         verify(mockTelephonyManager2).setMobileDataPolicyEnabled(
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MobileDataRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileDataRepositoryTest.kt
new file mode 100644
index 0000000..fc762fa
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileDataRepositoryTest.kt
@@ -0,0 +1,188 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.provider.Settings
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
+import com.android.settingslib.spa.testutils.toListWithTimeout
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBoolean
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.async
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.runBlocking
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class MobileDataRepositoryTest {
+    private val mockTelephonyManager =
+        mock<TelephonyManager> { on { createForSubscriptionId(SUB_ID) } doReturn mock }
+
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+        }
+
+    private val repository = MobileDataRepository(context, flowOf(Unit))
+
+    @Test
+    fun isMobileDataPolicyEnabledFlow_invalidSub_returnFalse() = runBlocking {
+        val flow =
+            repository.isMobileDataPolicyEnabledFlow(
+                subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+                policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
+            )
+
+        assertThat(flow.firstWithTimeoutOrNull()).isFalse()
+    }
+
+    @Test
+    fun isMobileDataPolicyEnabledFlow_validSub_returnPolicyState() = runBlocking {
+        mockTelephonyManager.stub {
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+
+        val flow =
+            repository.isMobileDataPolicyEnabledFlow(
+                subId = SUB_ID,
+                policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
+            )
+
+        assertThat(flow.firstWithTimeoutOrNull()).isTrue()
+    }
+
+    @Test
+    fun setMobileDataPolicyEnabled() = runBlocking {
+        repository.setMobileDataPolicyEnabled(
+            subId = SUB_ID,
+            policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
+            enabled = true)
+
+        verify(mockTelephonyManager)
+            .setMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH, true)
+    }
+
+    @Test
+    fun mobileDataEnabledChangedFlow_notified(): Unit = runBlocking {
+        val flow =
+            repository.mobileDataEnabledChangedFlow(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+
+        assertThat(flow.firstWithTimeoutOrNull()).isNotNull()
+    }
+
+    @Test
+    fun mobileDataEnabledChangedFlow_changed_notified(): Unit = runBlocking {
+        var mobileDataEnabled by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA)
+        mobileDataEnabled = false
+
+        val flow =
+            repository.mobileDataEnabledChangedFlow(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+        mobileDataEnabled = true
+
+        assertThat(flow.firstWithTimeoutOrNull()).isNotNull()
+    }
+
+    @Test
+    fun mobileDataEnabledChangedFlow_forSubIdNotChanged(): Unit = runBlocking {
+        var mobileDataEnabled by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA)
+        mobileDataEnabled = false
+        var mobileDataEnabledForSubId by
+            context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA + SUB_ID)
+        mobileDataEnabledForSubId = false
+
+        val listDeferred = async {
+            repository.mobileDataEnabledChangedFlow(SUB_ID).toListWithTimeout()
+        }
+
+        assertThat(listDeferred.await()).hasSize(1)
+    }
+
+    @Test
+    fun mobileDataEnabledChangedFlow_forSubIdChanged(): Unit = runBlocking {
+        var mobileDataEnabled by context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA)
+        mobileDataEnabled = false
+        var mobileDataEnabledForSubId by
+            context.settingsGlobalBoolean(Settings.Global.MOBILE_DATA + SUB_ID)
+        mobileDataEnabledForSubId = false
+
+        val listDeferred = async {
+            repository.mobileDataEnabledChangedFlow(SUB_ID).toListWithTimeout()
+        }
+        delay(100)
+        mobileDataEnabledForSubId = true
+
+        assertThat(listDeferred.await().size).isAtLeast(2)
+    }
+
+    @Test
+    fun isMobileDataEnabledFlow_invalidSub_returnFalse() = runBlocking {
+        val state =
+            repository.isMobileDataEnabledFlow(
+                subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+            )
+
+        assertThat(state.firstWithTimeoutOrNull()).isFalse()
+    }
+
+    @Test
+    fun isMobileDataEnabledFlow_validSub_returnPolicyState() = runBlocking {
+        mockTelephonyManager.stub {
+            on { isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER) } doReturn true
+        }
+
+        val state = repository.isMobileDataEnabledFlow(subId = SUB_ID)
+
+        assertThat(state.firstWithTimeoutOrNull()).isTrue()
+    }
+
+    @Test
+    fun isDataRoamingEnabledFlow_invalidSub_returnFalse() = runBlocking {
+        val isDataRoamingEnabled =
+            repository
+                .isDataRoamingEnabledFlow(subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+                .firstWithTimeoutOrNull()
+
+        assertThat(isDataRoamingEnabled).isFalse()
+    }
+
+    @Test
+    fun isDataRoamingEnabledFlow_validSub_returnCurrentValue() = runBlocking {
+        mockTelephonyManager.stub { on { isDataRoamingEnabled } doReturn true }
+
+        val isDataRoamingEnabled =
+            repository.isDataRoamingEnabledFlow(subId = SUB_ID).firstWithTimeoutOrNull()
+
+        assertThat(isDataRoamingEnabled).isTrue()
+    }
+
+    private companion object {
+        const val SUB_ID = 123
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
index 38c47c2..f56c0c4 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
@@ -17,8 +17,7 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
-import android.telephony.SubscriptionInfo
-import androidx.fragment.app.Fragment
+import androidx.lifecycle.testing.TestLifecycleOwner
 import androidx.preference.Preference
 import androidx.preference.PreferenceManager
 import androidx.test.core.app.ApplicationProvider
@@ -26,17 +25,19 @@
 import com.android.dx.mockito.inline.extended.ExtendedMockito
 import com.android.settings.R
 import com.android.settings.core.BasePreferenceController
-import com.android.settings.network.SubscriptionInfoListViewModel
 import com.android.settings.network.SubscriptionUtil
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.runBlocking
 import org.junit.After
 import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.MockitoSession
-import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
 import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
 import org.mockito.kotlin.whenever
 import org.mockito.quality.Strictness
 
@@ -44,29 +45,25 @@
 class MobileNetworkPhoneNumberPreferenceControllerTest {
     private lateinit var mockSession: MockitoSession
 
-    private val mockViewModels =  mock<Lazy<SubscriptionInfoListViewModel>>()
-    private val mockFragment = mock<Fragment>{
-        val viewmodel = mockViewModels
-    }
-
-    private var mockPhoneNumber = String()
     private val context: Context = ApplicationProvider.getApplicationContext()
-    private val controller = MobileNetworkPhoneNumberPreferenceController(context, TEST_KEY)
+    private val mockSubscriptionRepository = mock<SubscriptionRepository>()
+
+    private val controller =
+        MobileNetworkPhoneNumberPreferenceController(context, TEST_KEY, mockSubscriptionRepository)
     private val preference = Preference(context).apply { key = TEST_KEY }
     private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
 
     @Before
     fun setUp() {
-        mockSession = ExtendedMockito.mockitoSession()
-            .initMocks(this)
-            .mockStatic(SubscriptionUtil::class.java)
-            .strictness(Strictness.LENIENT)
-            .startMocking()
+        mockSession =
+            ExtendedMockito.mockitoSession()
+                .mockStatic(SubscriptionUtil::class.java)
+                .strictness(Strictness.LENIENT)
+                .startMocking()
 
         preferenceScreen.addPreference(preference)
+        controller.init(SUB_ID)
         controller.displayPreference(preferenceScreen)
-
-        whenever(SubscriptionUtil.getBidiFormattedPhoneNumber(any(),any())).thenReturn(mockPhoneNumber)
     }
 
     @After
@@ -75,41 +72,29 @@
     }
 
     @Test
-    fun refreshData_getEmptyPhoneNumber_preferenceIsNotVisible() = runBlocking {
+    fun onViewCreated_cannotGetPhoneNumber_displayUnknown() = runBlocking {
         whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
-        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
-            listOf(
-                SUB_INFO_1,
-                SUB_INFO_2
-            )
-        )
-        var mockSubId = 2
-        controller.init(mockFragment, mockSubId)
-        mockPhoneNumber = String()
+        mockSubscriptionRepository.stub {
+            on { phoneNumberFlow(SUB_ID) } doReturn flowOf(null)
+        }
 
-        controller.refreshData(SUB_INFO_2)
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
 
-        assertThat(preference.summary).isEqualTo(
-            context.getString(R.string.device_info_default))
+        assertThat(preference.summary).isEqualTo(context.getString(R.string.device_info_default))
     }
 
     @Test
-    fun refreshData_getPhoneNumber_preferenceSummaryIsExpected() = runBlocking {
+    fun onViewCreated_canGetPhoneNumber_displayPhoneNumber() = runBlocking {
         whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
-        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
-            listOf(
-                SUB_INFO_1,
-                SUB_INFO_2
-            )
-        )
-        var mockSubId = 2
-        controller.init(mockFragment, mockSubId)
-        mockPhoneNumber = "test phone number"
-        whenever(SubscriptionUtil.getBidiFormattedPhoneNumber(any(),any())).thenReturn(mockPhoneNumber)
+        mockSubscriptionRepository.stub {
+            on { phoneNumberFlow(SUB_ID) } doReturn flowOf(PHONE_NUMBER)
+        }
 
-        controller.refreshData(SUB_INFO_2)
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
 
-        assertThat(preference.summary).isEqualTo(mockPhoneNumber)
+        assertThat(preference.summary).isEqualTo(PHONE_NUMBER)
     }
 
     @Test
@@ -123,18 +108,7 @@
 
     private companion object {
         const val TEST_KEY = "test_key"
-        const val DISPLAY_NAME_1 = "Sub 1"
-        const val DISPLAY_NAME_2 = "Sub 2"
-
-        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
-            setId(1)
-            setDisplayName(DISPLAY_NAME_1)
-        }.build()
-
-        val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
-            setId(2)
-            setDisplayName(DISPLAY_NAME_2)
-        }.build()
-
+        const val SUB_ID = 10
+        const val PHONE_NUMBER = "1234567890"
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndexTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndexTest.kt
new file mode 100644
index 0000000..ad50433
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSettingsSearchIndexTest.kt
@@ -0,0 +1,151 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.os.UserManager
+import android.provider.Settings
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.Companion.isMobileNetworkSettingsSearchable
+import com.android.settings.network.telephony.MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchResult
+import com.android.settings.spa.SpaSearchLanding.BundleValue
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.search.SpaSearchLandingActivity
+import com.android.settings.spa.search.decodeToSpaSearchLandingKey
+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
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkSettingsSearchIndexTest {
+
+    private val mockUserManager = mock<UserManager> { on { isAdminUser } doReturn true }
+
+    private val mockSubscriptionManager =
+        mock<SubscriptionManager> {
+            on { activeSubscriptionInfoList } doReturn listOf(SUB_INFO_1, SUB_INFO_2)
+        }
+
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            on { getSystemService(UserManager::class.java) } doReturn mockUserManager
+            on { getSystemService(SubscriptionManager::class.java) } doReturn
+                mockSubscriptionManager
+        }
+
+    private val resources =
+        spy(context.resources) { on { getBoolean(R.bool.config_show_sim_info) } doReturn true }
+
+    private val mobileNetworkSettingsSearchIndex = MobileNetworkSettingsSearchIndex {
+        listOf(
+            object : MobileNetworkSettingsSearchIndex.MobileNetworkSettingsSearchItem {
+                override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? =
+                    if (subId == SUB_ID_1) {
+                        MobileNetworkSettingsSearchResult(key = KEY, title = TITLE)
+                    } else {
+                        null
+                    }
+            })
+    }
+
+    @Before
+    fun setUp() {
+        context.stub { on { resources } doReturn resources }
+    }
+
+    @Test
+    fun isMobileNetworkSettingsSearchable_adminUser_returnTrue() {
+        mockUserManager.stub { on { isAdminUser } doReturn true }
+
+        val isSearchable = isMobileNetworkSettingsSearchable(context)
+
+        assertThat(isSearchable).isTrue()
+    }
+
+    @Test
+    fun isMobileNetworkSettingsSearchable_nonAdminUser_returnFalse() {
+        mockUserManager.stub { on { isAdminUser } doReturn false }
+
+        val isSearchable = isMobileNetworkSettingsSearchable(context)
+
+        assertThat(isSearchable).isFalse()
+    }
+
+    @Test
+    fun createSearchIndexableData() {
+        val searchIndexableData = mobileNetworkSettingsSearchIndex.createSearchIndexableData()
+
+        assertThat(searchIndexableData.targetClass).isEqualTo(MobileNetworkSettings::class.java)
+        val dynamicRawDataToIndex =
+            searchIndexableData.searchIndexProvider.getDynamicRawDataToIndex(context, true)
+        assertThat(dynamicRawDataToIndex).hasSize(1)
+        val rawData = dynamicRawDataToIndex[0]
+        val key = decodeToSpaSearchLandingKey(rawData.key)
+        assertThat(key)
+            .isEqualTo(
+                SpaSearchLandingKey.newBuilder()
+                    .setFragment(
+                        SpaSearchLandingFragment.newBuilder()
+                            .setFragmentName(MobileNetworkSettings::class.java.name)
+                            .setPreferenceKey(KEY)
+                            .putArguments(
+                                Settings.EXTRA_SUB_ID,
+                                BundleValue.newBuilder().setIntValue(SUB_ID_1).build()))
+                    .build())
+        assertThat(rawData.title).isEqualTo(TITLE)
+        assertThat(rawData.intentAction).isEqualTo("android.settings.SPA_SEARCH_LANDING")
+        assertThat(rawData.intentTargetClass)
+            .isEqualTo(SpaSearchLandingActivity::class.qualifiedName)
+        assertThat(rawData.className).isEqualTo(MobileNetworkSettings::class.java.name)
+        assertThat(rawData.screenTitle).isEqualTo("SIMs > $SUB_DISPLAY_NAME_1")
+    }
+
+    private companion object {
+        const val KEY = "key"
+        const val TITLE = "Title"
+        const val SUB_ID_1 = 1
+        const val SUB_ID_2 = 2
+        const val SUB_DISPLAY_NAME_1 = "Sub 1"
+        const val SUB_DISPLAY_NAME_2 = "Sub 2"
+
+        val SUB_INFO_1: SubscriptionInfo =
+            SubscriptionInfo.Builder()
+                .apply {
+                    setId(SUB_ID_1)
+                    setDisplayName(SUB_DISPLAY_NAME_1)
+                }
+                .build()
+
+        val SUB_INFO_2: SubscriptionInfo =
+            SubscriptionInfo.Builder()
+                .apply {
+                    setId(SUB_ID_2)
+                    setDisplayName(SUB_DISPLAY_NAME_2)
+                }
+                .build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/NetworkSelectRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/NetworkSelectRepositoryTest.kt
index 4137de4..0cbfe02 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/NetworkSelectRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/NetworkSelectRepositoryTest.kt
@@ -17,20 +17,21 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
-import android.telephony.AccessNetworkConstants
-import android.telephony.NetworkRegistrationInfo
-import android.telephony.ServiceState
-import android.telephony.TelephonyManager
+import android.os.PersistableBundle
+import android.telephony.*
+import android.telephony.satellite.SatelliteManager
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.network.telephony.scan.NetworkScanRepositoryTest
 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.spy
 import org.mockito.kotlin.stub
+import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 class NetworkSelectRepositoryTest {
@@ -49,8 +50,16 @@
         on { serviceState } doReturn mockServiceState
     }
 
+    private val mockSatelliteManager = mock<SatelliteManager> {
+        on { getSatellitePlmnsForCarrier(anyInt()) } doReturn SatellitePlmns
+    }
+
+    private var mockCarrierConfigManager = mock<CarrierConfigManager>()
+
     private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
         on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+        on { getSystemService(SatelliteManager::class.java) } doReturn mockSatelliteManager
+        on { getSystemService(CarrierConfigManager::class.java) } doReturn mockCarrierConfigManager
     }
 
     private val repository = NetworkSelectRepository(context, SUB_ID)
@@ -105,6 +114,14 @@
             on { forbiddenPlmns } doReturn arrayOf(FORBIDDEN_PLMN)
         }
 
+        val config = PersistableBundle()
+        config.putBoolean(
+            CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL,
+            false)
+        whenever(mockCarrierConfigManager.getConfigForSubId(
+            SUB_ID, CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL))
+            .thenReturn(config)
+
         val info = repository.getNetworkRegistrationInfo()
 
         assertThat(info).isEqualTo(
@@ -115,9 +132,76 @@
         )
     }
 
+    @Test
+    fun getNetworkRegistrationInfo_filterSatellitePlmn() {
+
+        val info1 = createTestNetworkRegistrationInfo("310", "260")
+        val info2 = createTestNetworkRegistrationInfo("310", "261")
+        val satelliteInfo = createTestNetworkRegistrationInfo(satelliteMcc, satelliteMnc)
+        val registrationInfos = listOf(info1, info2, satelliteInfo)
+        val filteredRegistrationInfos = listOf(info1, info2)
+
+        mockServiceState.stub {
+            on {
+                getNetworkRegistrationInfoListForTransportType(
+                    AccessNetworkConstants.TRANSPORT_TYPE_WWAN
+                )
+            } doReturn registrationInfos
+        }
+        mockTelephonyManager.stub {
+            on { forbiddenPlmns } doReturn arrayOf(FORBIDDEN_PLMN)
+        }
+
+        // disable satellite plmn filter
+        var config = PersistableBundle()
+        config.putBoolean(
+            CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL,
+            false)
+        whenever(mockCarrierConfigManager.getConfigForSubId(
+            SUB_ID, CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL))
+            .thenReturn(config)
+
+        var infoList = repository.getNetworkRegistrationInfo()
+
+        assertThat(infoList).isEqualTo(
+            NetworkSelectRepository.NetworkRegistrationAndForbiddenInfo(
+                networkList = registrationInfos,
+                forbiddenPlmns = listOf(FORBIDDEN_PLMN),
+            )
+        )
+
+        // enable satellite plmn filter
+        config = PersistableBundle()
+        config.putBoolean(
+            CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL,
+            true)
+        whenever(mockCarrierConfigManager.getConfigForSubId(
+            SUB_ID, CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL))
+            .thenReturn(config)
+
+        infoList = repository.getNetworkRegistrationInfo()
+
+        assertThat(infoList).isEqualTo(
+            NetworkSelectRepository.NetworkRegistrationAndForbiddenInfo(
+                networkList = filteredRegistrationInfos,
+                forbiddenPlmns = listOf(FORBIDDEN_PLMN),
+            )
+        )
+    }
+
     private companion object {
         const val SUB_ID = 1
         val NetworkRegistrationInfos = listOf(NetworkRegistrationInfo.Builder().build())
         const val FORBIDDEN_PLMN = "Forbidden PLMN"
+        const val satelliteMcc = "310"
+        const val satelliteMnc = "810"
+        val SatellitePlmns = listOf(satelliteMcc + satelliteMnc)
+
+        fun createTestNetworkRegistrationInfo(mcc: String, mnc: String): NetworkRegistrationInfo {
+            val cellInfo = CellIdentityLte(0, 0, 0, 0, IntArray(2) { 0 },
+                0, mcc, mnc, "", "", emptyList(), null)
+
+            return NetworkRegistrationInfo.Builder().setCellIdentity(cellInfo).build()
+        }
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.kt
new file mode 100644
index 0000000..ee4cff6
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.kt
@@ -0,0 +1,194 @@
+/*
+ * 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.telephony
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
+import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.assertIsOff
+import androidx.compose.ui.test.assertIsOn
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.fragment.app.FragmentManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.core.BasePreferenceController.AVAILABLE
+import com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.flowOf
+import org.junit.Before
+import org.junit.Rule
+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 RoamingPreferenceControllerTest {
+    @get:Rule val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val mockMobileDataRepository =
+        mock<MobileDataRepository> {
+            on { isDataRoamingEnabledFlow(SUB_ID) } doReturn flowOf(false)
+        }
+
+    private val controller =
+        RoamingPreferenceController(context, TEST_KEY, mockMobileDataRepository)
+
+    @Before
+    fun setUp() {
+        CarrierConfigRepository.resetForTest()
+    }
+
+    @Test
+    fun getAvailabilityStatus_validSubId_returnAvailable() {
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_invalidSubId_returnConditionallyUnavailable() {
+        controller.init(mock<FragmentManager>(), SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_forceHomeNetworkIsTrue_returnConditionallyUnavailable() {
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_ID,
+            key = CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL,
+            value = true,
+        )
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_forceHomeNetworkIsFalse_returnAvailable() {
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_ID,
+            key = CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL,
+            value = false,
+        )
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    @Test
+    fun title_displayed() {
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) { controller.Content() }
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.roaming)).assertIsDisplayed()
+    }
+
+    @Test
+    fun summary_displayed() {
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) { controller.Content() }
+        }
+
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.roaming_enable))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun isDialogNeeded_enableChargeIndication_returnTrue() {
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_ID,
+            key = CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL,
+            value = false,
+        )
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        val isDialogNeeded = controller.isDialogNeeded()
+
+        assertThat(isDialogNeeded).isTrue()
+    }
+
+    @Test
+    fun isDialogNeeded_disableChargeIndication_returnFalse() {
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_ID,
+            key = CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL,
+            value = true,
+        )
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        val isDialogNeeded = controller.isDialogNeeded()
+
+        assertThat(isDialogNeeded).isFalse()
+    }
+
+    @Test
+    fun checked_roamingEnabled_isOn() {
+        mockMobileDataRepository.stub {
+            on { isDataRoamingEnabledFlow(SUB_ID) } doReturn flowOf(true)
+        }
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) { controller.Content() }
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.roaming)).assertIsOn()
+    }
+
+    @Test
+    fun checked_roamingDisabled_isOff() {
+        mockMobileDataRepository.stub {
+            on { isDataRoamingEnabledFlow(SUB_ID) } doReturn flowOf(false)
+        }
+        controller.init(mock<FragmentManager>(), SUB_ID)
+
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) { controller.Content() }
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.roaming)).assertIsOff()
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val SUB_ID = 2
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
index e233fa4..f75c14a 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
@@ -77,7 +77,7 @@
 
     @Test
     fun subscriptionsChangedFlow_hasInitialValue() = runBlocking {
-        val initialValue = context.subscriptionsChangedFlow().firstWithTimeoutOrNull()
+        val initialValue = repository.subscriptionsChangedFlow().firstWithTimeoutOrNull()
 
         assertThat(initialValue).isSameInstanceAs(Unit)
     }
@@ -85,7 +85,7 @@
     @Test
     fun subscriptionsChangedFlow_changed() = runBlocking {
         val listDeferred = async {
-            context.subscriptionsChangedFlow().toListWithTimeout()
+            repository.subscriptionsChangedFlow().toListWithTimeout()
         }
         delay(100)
 
@@ -95,6 +95,17 @@
     }
 
     @Test
+    fun activeSubscriptionIdListFlow(): Unit = runBlocking {
+        mockSubscriptionManager.stub {
+            on { activeSubscriptionIdList } doReturn intArrayOf(SUB_ID_IN_SLOT_0)
+        }
+
+        val activeSubIds = repository.activeSubscriptionIdListFlow().firstWithTimeoutOrNull()
+
+        assertThat(activeSubIds).containsExactly(SUB_ID_IN_SLOT_0)
+    }
+
+    @Test
     fun getSelectableSubscriptionInfoList_sortedBySimSlotIndex() {
         mockSubscriptionManager.stub {
             on { getAvailableSubscriptionInfoList() } doReturn listOf(
@@ -193,6 +204,22 @@
         assertThat(phoneNumber).isEqualTo(NUMBER_1)
     }
 
+    @Test
+    fun phoneNumberFlow_withSubId() = runBlocking {
+        val subInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_IN_SLOT_1)
+            setMcc(MCC)
+        }.build()
+        mockSubscriptionManager.stub {
+            on { getActiveSubscriptionInfo(SUB_ID_IN_SLOT_1) } doReturn subInfo
+            on { getPhoneNumber(SUB_ID_IN_SLOT_1) } doReturn NUMBER_1
+        }
+
+        val phoneNumber = repository.phoneNumberFlow(SUB_ID_IN_SLOT_1).firstWithTimeoutOrNull()
+
+        assertThat(phoneNumber).isEqualTo(NUMBER_1)
+    }
+
     private companion object {
         const val SIM_SLOT_INDEX_0 = 0
         const val SUB_ID_IN_SLOT_0 = 2
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyRepositoryTest.kt
index 65e8c47..12791b8 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyRepositoryTest.kt
@@ -17,14 +17,12 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
-import android.telephony.SubscriptionManager
 import android.telephony.TelephonyCallback
 import android.telephony.TelephonyManager
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.runBlocking
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -33,91 +31,29 @@
 import org.mockito.kotlin.doReturn
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.spy
-import org.mockito.kotlin.stub
 import org.mockito.kotlin.verify
 
 @RunWith(AndroidJUnit4::class)
 class TelephonyRepositoryTest {
     private var telephonyCallback: TelephonyCallback? = null
 
-    private val mockTelephonyManager = mock<TelephonyManager> {
-        on { createForSubscriptionId(SUB_ID) } doReturn mock
-        on { registerTelephonyCallback(any(), any()) } doAnswer {
-            telephonyCallback = it.arguments[1] as TelephonyCallback
-        }
-    }
-
-    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
-        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
-    }
-
-    private val repository = TelephonyRepository(context, flowOf(Unit))
-
-    @Test
-    fun isMobileDataPolicyEnabledFlow_invalidSub_returnFalse() = runBlocking {
-        val flow = repository.isMobileDataPolicyEnabledFlow(
-            subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
-            policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
-        )
-
-        assertThat(flow.firstWithTimeoutOrNull()).isFalse()
-    }
-
-    @Test
-    fun isMobileDataPolicyEnabledFlow_validSub_returnPolicyState() = runBlocking {
-        mockTelephonyManager.stub {
-            on {
-                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
-            } doReturn true
+    private val mockTelephonyManager =
+        mock<TelephonyManager> {
+            on { createForSubscriptionId(SUB_ID) } doReturn mock
+            on { registerTelephonyCallback(any(), any()) } doAnswer
+                {
+                    telephonyCallback = it.arguments[1] as TelephonyCallback
+                }
         }
 
-        val flow = repository.isMobileDataPolicyEnabledFlow(
-            subId = SUB_ID,
-            policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
-        )
-
-        assertThat(flow.firstWithTimeoutOrNull()).isTrue()
-    }
-
-    @Test
-    fun setMobileDataPolicyEnabled() = runBlocking {
-        repository.setMobileDataPolicyEnabled(
-            subId = SUB_ID,
-            policy = TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
-            enabled = true
-        )
-
-        verify(mockTelephonyManager)
-            .setMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH, true)
-    }
-
-    @Test
-    fun isDataEnabled_invalidSub_returnFalse() = runBlocking {
-        val state = repository.isDataEnabledFlow(
-            subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
-        )
-
-        assertThat(state.firstWithTimeoutOrNull()).isFalse()
-    }
-
-    @Test
-    fun isDataEnabled_validSub_returnPolicyState() = runBlocking {
-        mockTelephonyManager.stub {
-            on {
-                isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
-            } doReturn true
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
         }
 
-        val state = repository.isDataEnabledFlow(subId = SUB_ID)
-
-        assertThat(state.firstWithTimeoutOrNull()).isTrue()
-    }
-
     @Test
     fun telephonyCallbackFlow_callbackRegistered() = runBlocking {
-        val flow = context.telephonyCallbackFlow<Unit>(SUB_ID) {
-            object : TelephonyCallback() {}
-        }
+        val flow = context.telephonyCallbackFlow<Unit>(SUB_ID) { object : TelephonyCallback() {} }
 
         flow.firstWithTimeoutOrNull()
 
@@ -126,9 +62,7 @@
 
     @Test
     fun telephonyCallbackFlow_callbackUnregistered() = runBlocking {
-        val flow = context.telephonyCallbackFlow<Unit>(SUB_ID) {
-            object : TelephonyCallback() {}
-        }
+        val flow = context.telephonyCallbackFlow<Unit>(SUB_ID) { object : TelephonyCallback() {} }
 
         flow.firstWithTimeoutOrNull()
 
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/UiccSlotRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/UiccSlotRepositoryTest.kt
new file mode 100644
index 0000000..96aa151
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/UiccSlotRepositoryTest.kt
@@ -0,0 +1,262 @@
+/*
+ * 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.telephony
+
+import android.telephony.TelephonyManager
+import android.telephony.UiccPortInfo
+import android.telephony.UiccSlotInfo
+import androidx.test.ext.junit.runners.AndroidJUnit4
+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 UiccSlotRepositoryTest {
+
+    private val mockTelephonyManager = mock<TelephonyManager>()
+
+    private val repository = UiccSlotRepository(mockTelephonyManager)
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_oneSimSlotDeviceActiveEsim_returnsFalse() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = true, isRemovable = false, logicalSlotIdx = 1, isActive = true),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isFalse()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_activeRemovableEsimAndInactivePsim_returnsFalse() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = true, isRemovable = true, logicalSlotIdx = 0, isActive = true),
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = -1, isActive = false),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isFalse()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_activeRemovableEsimAndActivePsim_returnsTrue() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = 0, isActive = true),
+                    createUiccSlotInfo(
+                        isEuicc = true, isRemovable = true, logicalSlotIdx = 1, isActive = true),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isTrue()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_inactiveRemovableEsimAndActivePsim_returnsTrue() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = true, isRemovable = true, logicalSlotIdx = -1, isActive = false),
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = 0, isActive = true),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isTrue()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_twoActiveRemovableEsimsAndInactivePsim_returnsFalse() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfoForRemovableEsimMep(
+                        logicalSlotIdx1 = 0,
+                        isActiveEsim1 = true,
+                        logicalSlotIdx2 = 1,
+                        isActiveEsim2 = true,
+                    ),
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = -1, isActive = false),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isFalse()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_oneActiveOneInactiveRemovableEsimActivePsim_returnsTrue() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfoForRemovableEsimMep(
+                        logicalSlotIdx1 = 1,
+                        isActiveEsim1 = true,
+                        logicalSlotIdx2 = -1,
+                        isActiveEsim2 = false,
+                    ),
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = 0, isActive = true),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isTrue()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_activePsim_returnsTrue() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = 0, isActive = true),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isTrue()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_inactivePsim_returnsFalse() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = -1, isActive = false),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isFalse()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_activeEsimAndActivePsim_returnsTrue() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = 0, isActive = true),
+                    createUiccSlotInfo(
+                        isEuicc = true, isRemovable = false, logicalSlotIdx = 1, isActive = true),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isTrue()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_activeEsimAndInactivePsim_returnsFalse() {
+        mockTelephonyManager.stub {
+            on { uiccSlotsInfo } doReturn
+                arrayOf(
+                    createUiccSlotInfo(
+                        isEuicc = false, isRemovable = true, logicalSlotIdx = 0, isActive = false),
+                    createUiccSlotInfo(
+                        isEuicc = true, isRemovable = false, logicalSlotIdx = 1, isActive = true),
+                )
+        }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isFalse()
+    }
+
+    @Test
+    fun anyRemovablePhysicalSimEnabled_uiccSlotInfoIsNull_returnsFalse() {
+        mockTelephonyManager.stub { on { uiccSlotsInfo } doReturn arrayOf(null) }
+
+        val result = repository.anyRemovablePhysicalSimEnabled()
+
+        assertThat(result).isFalse()
+    }
+
+    private companion object {
+        fun createUiccSlotInfo(
+            isEuicc: Boolean,
+            isRemovable: Boolean,
+            logicalSlotIdx: Int,
+            isActive: Boolean
+        ) =
+            UiccSlotInfo(
+                isEuicc,
+                /* cardId = */ "123",
+                /* cardStateInfo = */ UiccSlotInfo.CARD_STATE_INFO_PRESENT,
+                /* isExtendedApduSupported = */ true,
+                isRemovable,
+                /* portList = */ listOf(
+                    UiccPortInfo(/* iccId= */ "", /* portIndex= */ 0, logicalSlotIdx, isActive),
+                ),
+            )
+
+        fun createUiccSlotInfoForRemovableEsimMep(
+            logicalSlotIdx1: Int,
+            isActiveEsim1: Boolean,
+            logicalSlotIdx2: Int,
+            isActiveEsim2: Boolean,
+        ) =
+            UiccSlotInfo(
+                /* isEuicc = */ true,
+                /* cardId = */ "123",
+                /* cardStateInfo = */ UiccSlotInfo.CARD_STATE_INFO_PRESENT,
+                /* isExtendedApduSupported = */ true,
+                /* isRemovable = */ true,
+                /* portList = */ listOf(
+                    UiccPortInfo(
+                        /* iccId = */ "",
+                        /* portIndex = */ 0,
+                        /* logicalSlotIndex = */ logicalSlotIdx1,
+                        /* isActive = */ isActiveEsim1),
+                    UiccPortInfo(
+                        /* iccId = */ "",
+                        /* portIndex = */ 1,
+                        /* logicalSlotIndex = */ logicalSlotIdx2,
+                        /* isActive = */ isActiveEsim2),
+                ),
+            )
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsFeatureProvisionedFlowTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsFeatureProvisionedFlowTest.kt
deleted file mode 100644
index 75f933a..0000000
--- a/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsFeatureProvisionedFlowTest.kt
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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.telephony.ims
-
-import android.telephony.ims.ProvisioningManager
-import android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback
-import android.telephony.ims.feature.MmTelFeature
-import android.telephony.ims.stub.ImsRegistrationImplBase
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settingslib.spa.testutils.toListWithTimeout
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.async
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.runBlocking
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.kotlin.any
-import org.mockito.kotlin.doAnswer
-import org.mockito.kotlin.mock
-
-@RunWith(AndroidJUnit4::class)
-class ImsFeatureProvisionedFlowTest {
-
-    private var callback: FeatureProvisioningCallback? = null
-
-    private val mockProvisioningManager = mock<ProvisioningManager> {
-        on { registerFeatureProvisioningChangedCallback(any(), any()) } doAnswer {
-            callback = it.arguments[1] as FeatureProvisioningCallback
-            callback?.onFeatureProvisioningChanged(CAPABILITY, TECH, true)
-        }
-    }
-
-    @Test
-    fun imsFeatureProvisionedFlow_sendInitialValue() = runBlocking {
-        val flow = imsFeatureProvisionedFlow(SUB_ID, CAPABILITY, TECH, mockProvisioningManager)
-
-        val state = flow.first()
-
-        assertThat(state).isTrue()
-    }
-
-    @Test
-    fun imsFeatureProvisionedFlow_changed(): Unit = runBlocking {
-        val listDeferred = async {
-            imsFeatureProvisionedFlow(SUB_ID, CAPABILITY, TECH, mockProvisioningManager)
-                .toListWithTimeout()
-        }
-        delay(100)
-
-        callback?.onFeatureProvisioningChanged(CAPABILITY, TECH, false)
-
-        assertThat(listDeferred.await().last()).isFalse()
-    }
-
-    private companion object {
-        const val SUB_ID = 1
-        const val CAPABILITY = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE
-        const val TECH = ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
-    }
-}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsFeatureRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsFeatureRepositoryTest.kt
new file mode 100644
index 0000000..3f72b2c
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsFeatureRepositoryTest.kt
@@ -0,0 +1,108 @@
+/*
+ * 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.telephony.ims
+
+import android.content.Context
+import android.telephony.AccessNetworkConstants
+import android.telephony.ims.feature.MmTelFeature
+import android.telephony.ims.stub.ImsRegistrationImplBase
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.runBlocking
+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 ImsFeatureRepositoryTest {
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val mockProvisioningRepository = mock<ProvisioningRepository>()
+    private val mockImsMmTelRepository = mock<ImsMmTelRepository>()
+
+    @Test
+    fun isReadyFlow_notProvisioned_returnFalse() = runBlocking {
+        mockProvisioningRepository.stub {
+            onBlocking { imsFeatureProvisionedFlow(SUB_ID, CAPABILITY, TECH) } doReturn
+                flowOf(false)
+        }
+
+        val repository =
+            ImsFeatureRepository(
+                context = context,
+                subId = SUB_ID,
+                provisioningRepository = mockProvisioningRepository,
+            )
+
+        val isReady = repository.isReadyFlow(CAPABILITY, TECH, TRANSPORT_TYPE).first()
+
+        assertThat(isReady).isFalse()
+    }
+
+    @Test
+    fun isReadyFlow_notSupported_returnFalse() = runBlocking {
+        mockImsMmTelRepository.stub {
+            onBlocking { isSupportedFlow(CAPABILITY, TRANSPORT_TYPE) } doReturn flowOf(false)
+        }
+
+        val repository =
+            ImsFeatureRepository(
+                context = context,
+                subId = SUB_ID,
+                imsMmTelRepository = mockImsMmTelRepository,
+            )
+
+        val isReady = repository.isReadyFlow(CAPABILITY, TECH, TRANSPORT_TYPE).first()
+
+        assertThat(isReady).isFalse()
+    }
+
+    @Test
+    fun isReadyFlow_provisionedAndSupported_returnFalse() = runBlocking {
+        mockProvisioningRepository.stub {
+            onBlocking { imsFeatureProvisionedFlow(SUB_ID, CAPABILITY, TECH) } doReturn flowOf(true)
+        }
+        mockImsMmTelRepository.stub {
+            onBlocking { isSupportedFlow(CAPABILITY, TRANSPORT_TYPE) } doReturn flowOf(true)
+        }
+
+        val repository =
+            ImsFeatureRepository(
+                context = context,
+                subId = SUB_ID,
+                provisioningRepository = mockProvisioningRepository,
+                imsMmTelRepository = mockImsMmTelRepository,
+            )
+
+        val isReady = repository.isReadyFlow(CAPABILITY, TECH, TRANSPORT_TYPE).first()
+
+        assertThat(isReady).isTrue()
+    }
+
+    private companion object {
+        const val SUB_ID = 10
+        const val CAPABILITY = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE
+        const val TECH = ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
+        const val TRANSPORT_TYPE = AccessNetworkConstants.TRANSPORT_TYPE_WLAN
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/ims/ProvisioningRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/ims/ProvisioningRepositoryTest.kt
new file mode 100644
index 0000000..7b2c940
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/ims/ProvisioningRepositoryTest.kt
@@ -0,0 +1,106 @@
+/*
+ * 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.telephony.ims
+
+import android.content.Context
+import android.content.pm.PackageManager
+import android.telephony.ims.ProvisioningManager
+import android.telephony.ims.ProvisioningManager.FeatureProvisioningCallback
+import android.telephony.ims.feature.MmTelFeature
+import android.telephony.ims.stub.ImsRegistrationImplBase
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spa.testutils.toListWithTimeout
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.async
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.runBlocking
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class ProvisioningRepositoryTest {
+
+    private var callback: FeatureProvisioningCallback? = null
+
+    private val mockProvisioningManager =
+        mock<ProvisioningManager> {
+            on { registerFeatureProvisioningChangedCallback(any(), any()) } doAnswer
+                {
+                    callback = it.arguments[1] as FeatureProvisioningCallback
+                    callback?.onFeatureProvisioningChanged(CAPABILITY, TECH, true)
+                }
+        }
+
+    private val mockPackageManager =
+        mock<PackageManager> {
+            on { hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS) } doReturn true
+        }
+
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            on { packageManager } doReturn mockPackageManager
+        }
+
+    private val repository = ProvisioningRepository(context) { mockProvisioningManager }
+
+    @Test
+    fun imsFeatureProvisionedFlow_hasNotIms_returnFalse() = runBlocking {
+        mockPackageManager.stub {
+            on { hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS) } doReturn false
+        }
+        val flow = repository.imsFeatureProvisionedFlow(SUB_ID, CAPABILITY, TECH)
+
+        val state = flow.first()
+
+        assertThat(state).isFalse()
+    }
+
+    @Test
+    fun imsFeatureProvisionedFlow_sendInitialValue() = runBlocking {
+        val flow = repository.imsFeatureProvisionedFlow(SUB_ID, CAPABILITY, TECH)
+
+        val state = flow.first()
+
+        assertThat(state).isTrue()
+    }
+
+    @Test
+    fun imsFeatureProvisionedFlow_changed(): Unit = runBlocking {
+        val listDeferred = async {
+            repository.imsFeatureProvisionedFlow(SUB_ID, CAPABILITY, TECH).toListWithTimeout()
+        }
+        delay(100)
+
+        callback?.onFeatureProvisioningChanged(CAPABILITY, TECH, false)
+
+        assertThat(listDeferred.await().last()).isFalse()
+    }
+
+    private companion object {
+        const val SUB_ID = 10
+        const val CAPABILITY = MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE
+        const val TECH = ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/wificalling/WifiCallingRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/wificalling/WifiCallingRepositoryTest.kt
index 0144f66..f0a23eb 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/wificalling/WifiCallingRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/wificalling/WifiCallingRepositoryTest.kt
@@ -55,7 +55,8 @@
         on { getWiFiCallingMode(any()) } doReturn ImsMmTelManager.WIFI_MODE_UNKNOWN
     }
 
-    private val repository = WifiCallingRepository(context, SUB_ID, mockImsMmTelRepository)
+    private val repository =
+        WifiCallingRepository(context, SUB_ID, imsMmTelRepository = mockImsMmTelRepository)
 
     @Test
     fun getWiFiCallingMode_roamingAndNotUseWfcHomeModeForRoaming_returnRoamingSetting() {
diff --git a/tests/spa_unit/src/com/android/settings/print/PrintSettingsPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/print/PrintSettingsPageProviderTest.kt
index 746816b..2571406 100644
--- a/tests/spa_unit/src/com/android/settings/print/PrintSettingsPageProviderTest.kt
+++ b/tests/spa_unit/src/com/android/settings/print/PrintSettingsPageProviderTest.kt
@@ -17,6 +17,7 @@
 package com.android.settings.print
 
 import android.content.Context
+import android.net.Uri
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.test.isDisplayed
@@ -31,7 +32,9 @@
 import com.android.settings.print.PrintSettingsFragment.EXTRA_CHECKED
 import com.android.settings.print.PrintSettingsFragment.EXTRA_SERVICE_COMPONENT_NAME
 import com.android.settings.print.PrintSettingsFragment.EXTRA_TITLE
+import com.android.settings.print.PrintSettingsPageProvider.AddPrintService
 import com.android.settings.print.PrintSettingsPageProvider.PrintService
+import kotlinx.coroutines.flow.flowOf
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
@@ -44,35 +47,32 @@
 
 @RunWith(AndroidJUnit4::class)
 class PrintSettingsPageProviderTest {
-    @get:Rule
-    val composeTestRule = createComposeRule()
+    @get:Rule val composeTestRule = createComposeRule()
 
-    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
-        doNothing().whenever(mock).startActivity(any())
-    }
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            doNothing().whenever(mock).startActivity(any())
+        }
 
-    private val displayInfo = PrintServiceDisplayInfo(
-        title = TITLE,
-        isEnabled = true,
-        summary = SUMMARY,
-        icon = context.getDrawable(R.drawable.ic_settings_print)!!,
-        componentName = "ComponentName",
-    )
+    private val displayInfo =
+        PrintServiceDisplayInfo(
+            title = TITLE,
+            isEnabled = true,
+            summary = SUMMARY,
+            icon = context.getDrawable(R.drawable.ic_settings_print)!!,
+            componentName = "ComponentName",
+        )
 
     @Test
     fun printService_titleDisplayed() {
-        composeTestRule.setContent {
-            PrintService(displayInfo)
-        }
+        composeTestRule.setContent { PrintService(displayInfo) }
 
         composeTestRule.onNodeWithText(TITLE).isDisplayed()
     }
 
     @Test
     fun printService_summaryDisplayed() {
-        composeTestRule.setContent {
-            PrintService(displayInfo)
-        }
+        composeTestRule.setContent { PrintService(displayInfo) }
 
         composeTestRule.onNodeWithText(SUMMARY).isDisplayed()
     }
@@ -80,25 +80,43 @@
     @Test
     fun printService_onClick() {
         composeTestRule.setContent {
-            CompositionLocalProvider(LocalContext provides context) {
-                PrintService(displayInfo)
-            }
+            CompositionLocalProvider(LocalContext provides context) { PrintService(displayInfo) }
         }
 
         composeTestRule.onNodeWithText(TITLE).performClick()
 
-        verify(context).startActivity(argThat {
-            val fragment = getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)
-            val arguments = getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
-            fragment == PrintServiceSettingsFragment::class.qualifiedName &&
-                arguments.getBoolean(EXTRA_CHECKED) == displayInfo.isEnabled &&
-                arguments.getString(EXTRA_TITLE) == displayInfo.title &&
-                arguments.getString(EXTRA_SERVICE_COMPONENT_NAME) == displayInfo.componentName
-        })
+        verify(context)
+            .startActivity(
+                argThat {
+                    val fragment = getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)
+                    val arguments = getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
+                    fragment == PrintServiceSettingsFragment::class.qualifiedName &&
+                        arguments.getBoolean(EXTRA_CHECKED) == displayInfo.isEnabled &&
+                        arguments.getString(EXTRA_TITLE) == displayInfo.title &&
+                        arguments.getString(EXTRA_SERVICE_COMPONENT_NAME) ==
+                            displayInfo.componentName
+                }
+            )
+    }
+
+    @Test
+    fun addPrintService_onClick() {
+        composeTestRule.setContent {
+            CompositionLocalProvider(LocalContext provides context) {
+                AddPrintService(flowOf(SEARCH_URI))
+            }
+        }
+
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.print_menu_item_add_service))
+            .performClick()
+
+        verify(context).startActivity(argThat { data == Uri.parse(SEARCH_URI) })
     }
 
     private companion object {
         const val TITLE = "Title"
         const val SUMMARY = "Summary"
+        const val SEARCH_URI = "search.uri"
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/spa/SpaBridgeActivityTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaBridgeActivityTest.kt
new file mode 100644
index 0000000..e29bd96
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/SpaBridgeActivityTest.kt
@@ -0,0 +1,95 @@
+/*
+ * 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.spa
+
+import android.app.Activity
+import android.content.ComponentName
+import android.content.pm.ActivityInfo
+import android.content.pm.PackageManager
+import android.os.Bundle
+import androidx.core.os.bundleOf
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
+import com.android.settings.spa.SpaBridgeActivity.Companion.META_DATA_KEY_DESTINATION
+import com.android.settings.spa.SpaBridgeActivity.Companion.getDestination
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class SpaBridgeActivityTest {
+    private var activityMetadata: Bundle = bundleOf()
+
+    private val mockPackageManager =
+        mock<PackageManager> {
+            on {
+                getActivityInfo(eq(COMPONENT_NAME), any<PackageManager.ComponentInfoFlags>())
+            } doAnswer { ActivityInfo().apply { metaData = activityMetadata } }
+        }
+
+    private val activity =
+        mock<Activity> {
+            on { componentName } doReturn COMPONENT_NAME
+            on { packageManager } doReturn mockPackageManager
+        }
+
+    @Test
+    fun getDestination_noDestination_returnNull() {
+        activityMetadata = bundleOf()
+
+        val destination = activity.getDestination()
+
+        assertThat(destination).isNull()
+    }
+
+    @Test
+    fun getDestination_withoutHighlightMenuKey() {
+        activityMetadata = bundleOf(META_DATA_KEY_DESTINATION to DESTINATION)
+
+        val (destination, highlightMenuKey) = activity.getDestination()!!
+
+        assertThat(destination).isEqualTo(DESTINATION)
+        assertThat(highlightMenuKey).isNull()
+    }
+
+    @Test
+    fun getDestination_withHighlightMenuKey() {
+        activityMetadata =
+            bundleOf(
+                META_DATA_KEY_DESTINATION to DESTINATION,
+                META_DATA_KEY_HIGHLIGHT_MENU_KEY to HIGHLIGHT_MENU_KEY,
+            )
+
+        val (destination, highlightMenuKey) = activity.getDestination()!!
+
+        assertThat(destination).isEqualTo(DESTINATION)
+        assertThat(highlightMenuKey).isEqualTo(HIGHLIGHT_MENU_KEY)
+    }
+
+    private companion object {
+        const val PACKAGE_NAME = "package.name"
+        const val ACTIVITY_NAME = "ActivityName"
+        val COMPONENT_NAME = ComponentName(PACKAGE_NAME, ACTIVITY_NAME)
+        const val DESTINATION = "Destination"
+        const val HIGHLIGHT_MENU_KEY = "apps"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt
index 0b9eb22..ee658c1 100644
--- a/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 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.
@@ -17,81 +17,32 @@
 package com.android.settings.spa
 
 import android.app.Activity
-import android.content.ComponentName
-import android.content.pm.ActivityInfo
-import android.content.pm.PackageManager
-import android.os.Bundle
-import androidx.core.os.bundleOf
 import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
-import com.android.settings.spa.SpaDestination.Companion.META_DATA_KEY_DESTINATION
-import com.android.settings.spa.SpaDestination.Companion.getDestination
-import com.google.common.truth.Truth.assertThat
+import com.android.settingslib.spa.framework.util.KEY_DESTINATION
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.kotlin.any
-import org.mockito.kotlin.doAnswer
-import org.mockito.kotlin.doReturn
-import org.mockito.kotlin.eq
+import org.mockito.kotlin.argThat
 import org.mockito.kotlin.mock
+import org.mockito.kotlin.verify
 
 @RunWith(AndroidJUnit4::class)
 class SpaDestinationTest {
-    private var activityMetadata: Bundle = bundleOf()
 
-    private val mockPackageManager = mock<PackageManager> {
-        on {
-            getActivityInfo(
-                eq(COMPONENT_NAME),
-                any<PackageManager.ComponentInfoFlags>()
-            )
-        } doAnswer {
-            ActivityInfo().apply { metaData = activityMetadata }
-        }
-    }
-
-    private val activity = mock<Activity> {
-        on { componentName } doReturn COMPONENT_NAME
-        on { packageManager } doReturn mockPackageManager
-    }
+    private val activity = mock<Activity>()
 
     @Test
-    fun getDestination_noDestination_returnNull() {
-        activityMetadata = bundleOf()
+    fun startFromExportedActivity() {
+        val spaDestination = SpaDestination(destination = DESTINATION, highlightMenuKey = null)
 
-        val destination = activity.getDestination()
+        spaDestination.startFromExportedActivity(activity)
 
-        assertThat(destination).isNull()
-    }
-
-    @Test
-    fun getDestination_withoutHighlightMenuKey() {
-        activityMetadata = bundleOf(META_DATA_KEY_DESTINATION to DESTINATION)
-
-        val (destination, highlightMenuKey) = activity.getDestination()!!
-
-        assertThat(destination).isEqualTo(DESTINATION)
-        assertThat(highlightMenuKey).isNull()
-    }
-
-    @Test
-    fun getDestination_withHighlightMenuKey() {
-        activityMetadata = bundleOf(
-            META_DATA_KEY_DESTINATION to DESTINATION,
-            META_DATA_KEY_HIGHLIGHT_MENU_KEY to HIGHLIGHT_MENU_KEY,
-        )
-
-        val (destination, highlightMenuKey) = activity.getDestination()!!
-
-        assertThat(destination).isEqualTo(DESTINATION)
-        assertThat(highlightMenuKey).isEqualTo(HIGHLIGHT_MENU_KEY)
+        verify(activity).startActivity(argThat {
+            component!!.className == SpaActivity::class.qualifiedName
+            getStringExtra(KEY_DESTINATION) == DESTINATION
+        })
     }
 
     private companion object {
-        const val PACKAGE_NAME = "package.name"
-        const val ACTIVITY_NAME = "ActivityName"
-        val COMPONENT_NAME = ComponentName(PACKAGE_NAME, ACTIVITY_NAME)
         const val DESTINATION = "Destination"
-        const val HIGHLIGHT_MENU_KEY = "apps"
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
index 96e4707..6297c62 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
@@ -68,7 +68,6 @@
     @Before
     fun setUp() {
         mockSession = mockitoSession()
-            .initMocks(this)
             .mockStatic(AppStoreUtil::class.java)
             .mockStatic(Utils::class.java)
             .mockStatic(AppUtils::class.java)
@@ -77,8 +76,7 @@
         whenever(AppStoreUtil.getInstallerPackageName(any(), eq(PACKAGE_NAME)))
             .thenReturn(INSTALLER_PACKAGE_NAME)
         whenever(AppStoreUtil.getInstallerPackageNameAndInstallSourceInfo(any(), eq(PACKAGE_NAME)))
-            .thenReturn(
-                    Pair<String, InstallSourceInfo>(INSTALLER_PACKAGE_NAME, INSTALL_SOURCE_INFO))
+            .thenReturn(Pair(INSTALLER_PACKAGE_NAME, INSTALL_SOURCE_INFO))
         whenever(AppStoreUtil.getAppStoreLink(context, INSTALLER_PACKAGE_NAME, PACKAGE_NAME))
             .thenReturn(STORE_LINK)
         whenever(AppStoreUtil.isInitiatedFromDifferentPackage(eq(INSTALL_SOURCE_INFO)))
@@ -97,7 +95,8 @@
 
     @Test
     fun whenNoInstaller_notDisplayed() {
-        whenever(AppStoreUtil.getInstallerPackageName(any(), eq(PACKAGE_NAME))).thenReturn(null)
+        whenever(AppStoreUtil.getInstallerPackageNameAndInstallSourceInfo(any(), eq(PACKAGE_NAME)))
+            .thenReturn(Pair(null, INSTALL_SOURCE_INFO))
 
         setContent()
 
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt
index 1a78c49..a952763 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreferenceTest.kt
@@ -22,8 +22,9 @@
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.test.assertIsDisplayed
-import androidx.compose.ui.test.assertIsEnabled
 import androidx.compose.ui.test.assertIsNotDisplayed
+import androidx.compose.ui.test.hasText
+import androidx.compose.ui.test.isEnabled
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.onRoot
@@ -35,42 +36,41 @@
 import com.android.settings.Utils
 import com.android.settingslib.spa.testutils.delay
 import com.android.settingslib.spa.testutils.onDialogText
+import com.android.settingslib.spa.testutils.waitUntilExists
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito
-import org.mockito.Mockito.any
-import org.mockito.Mockito.anyInt
 import org.mockito.MockitoSession
-import org.mockito.Spy
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.whenever
 import org.mockito.quality.Strictness
-import org.mockito.Mockito.`when` as whenever
 
 @RunWith(AndroidJUnit4::class)
 class InstantAppDomainsPreferenceTest {
-    @get:Rule
-    val composeTestRule = createComposeRule()
+    @get:Rule val composeTestRule = createComposeRule()
 
     private lateinit var mockSession: MockitoSession
 
-    @Spy
-    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val packageManager = mock<PackageManager>()
 
-    @Mock
-    private lateinit var packageManager: PackageManager
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { packageManager } doReturn packageManager
+        doReturn(mock).whenever(mock).createContextAsUser(any(), any())
+    }
 
     @Before
     fun setUp() {
-        mockSession = ExtendedMockito.mockitoSession()
-            .initMocks(this)
-            .mockStatic(Utils::class.java)
-            .strictness(Strictness.LENIENT)
-            .startMocking()
-        whenever(context.packageManager).thenReturn(packageManager)
-        Mockito.doReturn(context).`when`(context).createContextAsUser(any(), anyInt())
+        mockSession =
+            ExtendedMockito.mockitoSession()
+                .mockStatic(Utils::class.java)
+                .strictness(Strictness.LENIENT)
+                .startMocking()
+
         mockDomains(emptySet())
     }
 
@@ -96,10 +96,9 @@
     fun title_displayed() {
         setContent()
 
-        composeTestRule
-            .onNodeWithText(context.getString(R.string.app_launch_supported_domain_urls_title))
-            .assertIsDisplayed()
-            .assertIsEnabled()
+        composeTestRule.waitUntilExists(
+            hasText(context.getString(R.string.app_launch_supported_domain_urls_title)) and
+                isEnabled())
     }
 
     @Test
@@ -108,8 +107,8 @@
 
         setContent()
 
-        composeTestRule.onNodeWithText(context.getString(R.string.domain_urls_summary_none))
-            .assertIsDisplayed()
+        composeTestRule.waitUntilExists(
+            hasText(context.getString(R.string.domain_urls_summary_none)))
     }
 
     @Test
@@ -138,9 +137,9 @@
         composeTestRule.onRoot().performClick()
         composeTestRule.delay()
 
-        composeTestRule.onDialogText(
-            context.getString(R.string.app_launch_supported_domain_urls_title)
-        ).assertIsDisplayed()
+        composeTestRule
+            .onDialogText(context.getString(R.string.app_launch_supported_domain_urls_title))
+            .assertIsDisplayed()
         composeTestRule.onDialogText("abc").assertIsDisplayed()
         composeTestRule.onDialogText("def").assertIsDisplayed()
     }
@@ -157,10 +156,11 @@
         const val PACKAGE_NAME = "package.name"
         const val UID = 123
 
-        val INSTANT_APP = ApplicationInfo().apply {
-            packageName = PACKAGE_NAME
-            uid = UID
-            privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT
-        }
+        val INSTANT_APP =
+            ApplicationInfo().apply {
+                packageName = PACKAGE_NAME
+                uid = UID
+                privateFlags = ApplicationInfo.PRIVATE_FLAG_INSTANT
+            }
     }
 }
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt
index 5c65da1..5ced84b 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/backgroundinstall/BackgroundInstalledAppsPageProviderTest.kt
@@ -23,6 +23,7 @@
 import android.content.pm.PackageManager
 import android.content.pm.ParceledListSlice
 import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.hasText
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.performClick
@@ -30,50 +31,38 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
 import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
+import com.android.settingslib.spa.testutils.waitUntilExists
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
-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.mockito.kotlin.any
 import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doReturn
 import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
 import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 class BackgroundInstalledAppsPageProviderTest {
-    @get:Rule
-    val composeTestRule = createComposeRule()
+    @get:Rule val composeTestRule = createComposeRule()
 
-    @get:Rule
-    val mockito: MockitoRule = MockitoJUnit.rule()
+    private val mockPackageManager = mock<PackageManager>()
 
-    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            on { packageManager } doReturn mockPackageManager
+        }
 
-    @Mock
-    private lateinit var mockContext: Context
-
-    @Mock
-    private lateinit var mockPackageManager: PackageManager
-
-    @Mock
-    private lateinit var mockBackgroundInstallControlService: IBackgroundInstallControlService
-
-    private var packageInfoFlagsCaptor = argumentCaptor<PackageManager.PackageInfoFlags>()
+    private val mockBackgroundInstallControlService = mock<IBackgroundInstallControlService>()
 
     private val fakeNavControllerWrapper = FakeNavControllerWrapper()
 
-    @Before
-    fun setup() {
-        whenever(mockContext.packageManager).thenReturn(mockPackageManager)
-    }
     @Test
     fun allAppListPageProvider_name() {
         assertThat(BackgroundInstalledAppsPageProvider.name)
@@ -106,7 +95,7 @@
 
         setInjectEntry(false)
 
-        composeTestRule.onNodeWithText("0 apps").assertIsDisplayed()
+        composeTestRule.waitUntilExists(hasText("0 apps"))
     }
 
     @Test
@@ -146,8 +135,9 @@
             BackgroundInstalledAppList()
         }
 
-        composeTestRule.onNodeWithText(
-            context.getString(R.string.background_install_title)).assertIsDisplayed()
+        composeTestRule.waitUntilExists(
+            hasText(context.getString(R.string.background_install_title))
+        )
     }
 
     @Test
@@ -197,7 +187,8 @@
 
     @Test
     fun backgroundInstalledAppsWithGroupingListModel_transform() = runTest {
-        val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
+        val packageInfoFlagsCaptor = argumentCaptor<PackageManager.PackageInfoFlags>()
+        val listModel = BackgroundInstalledAppsWithGroupingListModel(context)
         whenever(mockPackageManager.getPackageInfoAsUser(
             eq(TEST_PACKAGE_NAME),
             packageInfoFlagsCaptor.capture(),
@@ -215,7 +206,7 @@
 
     @Test
     fun backgroundInstalledAppsWithGroupingListModel_filter() = runTest {
-        val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
+        val listModel = BackgroundInstalledAppsWithGroupingListModel(context)
         listModel.setBackgroundInstallControlService(mockBackgroundInstallControlService)
         whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(
             PackageManager.MATCH_ALL.toLong(),
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/PrimarySimRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/PrimarySimRepositoryTest.kt
new file mode 100644
index 0000000..459afa9
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/network/PrimarySimRepositoryTest.kt
@@ -0,0 +1,206 @@
+/*
+ * 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.spa.network
+
+import android.content.Context
+import android.content.res.Resources
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settingslib.spa.widget.preference.ListPreferenceOption
+import com.google.common.truth.Truth.assertThat
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class PrimarySimRepositoryTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val mockSubscriptionManager = mock<SubscriptionManager> {
+        on { addOnSubscriptionsChangedListener(any(), any()) } doAnswer {
+            val listener = it.arguments[1] as SubscriptionManager.OnSubscriptionsChangedListener
+            listener.onSubscriptionsChanged()
+        }
+        on { getPhoneNumber(SUB_ID_1) } doReturn NUMBER_1
+        on { getPhoneNumber(SUB_ID_2) } doReturn NUMBER_2
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager
+    }
+    private val spyResources: Resources = spy(context.resources)
+
+    @Test
+    fun getPrimarySimInfo_oneSim_returnNull() {
+        val simList = listOf(
+            SUB_INFO_1,
+        )
+
+        val primarySimInfo = PrimarySimRepository(context).getPrimarySimInfo(simList)
+
+        assertThat(primarySimInfo).isNull()
+    }
+
+    @Test
+    fun getPrimarySimInfo_verifyCallsList() {
+        val simList = listOf(
+            SUB_INFO_1,
+            SUB_INFO_2
+        )
+        val expectedList = listOf(
+            ListPreferenceOption(
+                id = SUB_INFO_1.subscriptionId,
+                text = "${SUB_INFO_1.displayName}",
+                summary = NUMBER_1
+            ),
+            ListPreferenceOption(
+                id = SUB_INFO_2.subscriptionId,
+                text = "${SUB_INFO_2.displayName}",
+                summary = NUMBER_2
+            ),
+            ListPreferenceOption(
+                id = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+                text = context.getString(R.string.sim_calls_ask_first_prefs_title),
+            ),
+        )
+
+        val primarySimInfo = PrimarySimRepository(context).getPrimarySimInfo(simList)
+
+        assertThat(primarySimInfo).isNotNull()
+        assertThat(primarySimInfo?.callsList).isEqualTo(expectedList)
+    }
+
+    @Test
+    fun getPrimarySimInfo_verifySmsList() {
+        val simList = listOf(
+            SUB_INFO_1,
+            SUB_INFO_2
+        )
+        val expectedList = listOf(
+            ListPreferenceOption(
+                id = SUB_INFO_1.subscriptionId,
+                text = "${SUB_INFO_1.displayName}",
+                summary = NUMBER_1
+            ),
+            ListPreferenceOption(
+                id = SUB_INFO_2.subscriptionId,
+                text = "${SUB_INFO_2.displayName}",
+                summary = NUMBER_2
+            ),
+            ListPreferenceOption(
+                id = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+                text = context.getString(R.string.sim_calls_ask_first_prefs_title),
+            ),
+        )
+
+        val primarySimInfo = PrimarySimRepository(context).getPrimarySimInfo(simList)
+
+        assertThat(primarySimInfo).isNotNull()
+        assertThat(primarySimInfo?.smsList).isEqualTo(expectedList)
+    }
+
+    @Test
+    fun getPrimarySimInfo_noAskEveryTime_verifySmsList() {
+        val simList = listOf(
+            SUB_INFO_1,
+            SUB_INFO_2
+        )
+        context.stub {
+            on { resources } doReturn spyResources
+        }
+        spyResources.stub {
+            on {
+                getBoolean(com.android.internal.R.bool.config_sms_ask_every_time_support)
+            } doReturn false
+        }
+        val expectedList = listOf(
+            ListPreferenceOption(
+                id = SUB_INFO_1.subscriptionId,
+                text = "${SUB_INFO_1.displayName}",
+                summary = NUMBER_1
+            ),
+            ListPreferenceOption(
+                id = SUB_INFO_2.subscriptionId,
+                text = "${SUB_INFO_2.displayName}",
+                summary = NUMBER_2
+            ),
+        )
+
+        val primarySimInfo = PrimarySimRepository(context).getPrimarySimInfo(simList)
+
+        assertThat(primarySimInfo).isNotNull()
+        assertThat(primarySimInfo?.smsList).isEqualTo(expectedList)
+    }
+
+    @Test
+    fun getPrimarySimInfo_verifyDataList() {
+        val simList = listOf(
+            SUB_INFO_1,
+            SUB_INFO_2
+        )
+        val expectedList = listOf(
+            ListPreferenceOption(
+                id = SUB_INFO_1.subscriptionId,
+                text = "${SUB_INFO_1.displayName}",
+                summary = NUMBER_1
+            ),
+            ListPreferenceOption(
+                id = SUB_INFO_2.subscriptionId,
+                text = "${SUB_INFO_2.displayName}",
+                summary = NUMBER_2
+            ),
+        )
+
+        val primarySimInfo = PrimarySimRepository(context).getPrimarySimInfo(simList)
+
+        assertThat(primarySimInfo).isNotNull()
+        assertThat(primarySimInfo?.dataList).isEqualTo(expectedList)
+    }
+
+    private companion object {
+        const val SUB_ID_1 = 1
+        const val SUB_ID_2 = 2
+        const val DISPLAY_NAME_1 = "Sub 1"
+        const val DISPLAY_NAME_2 = "Sub 2"
+        const val NUMBER_1 = "000000001"
+        const val NUMBER_2 = "000000002"
+        const val MCC = "310"
+
+        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_1)
+            setDisplayName(DISPLAY_NAME_1)
+            setMcc(MCC)
+        }.build()
+
+        val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_2)
+            setDisplayName(DISPLAY_NAME_2)
+            setMcc(MCC)
+        }.build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt
index ad2ba55..1910153 100644
--- a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt
@@ -19,23 +19,17 @@
 import android.content.Context
 import android.telephony.SubscriptionInfo
 import android.telephony.SubscriptionManager
-import android.view.KeyEvent.ACTION_DOWN
-import android.view.KeyEvent.KEYCODE_FORWARD_DEL
 import androidx.compose.runtime.CompositionLocalProvider
-import androidx.compose.ui.input.key.KeyEvent
-import androidx.compose.ui.input.key.NativeKeyEvent
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalLifecycleOwner
 import androidx.compose.ui.semantics.SemanticsProperties
 import androidx.compose.ui.test.assertIsDisplayed
-import androidx.compose.ui.test.assertIsEnabled
 import androidx.compose.ui.test.assertIsNotEnabled
 import androidx.compose.ui.test.hasText
 import androidx.compose.ui.test.junit4.createComposeRule
 import androidx.compose.ui.test.onNodeWithTag
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.performClick
-import androidx.compose.ui.test.performKeyPress
 import androidx.compose.ui.test.performTextClearance
 import androidx.compose.ui.test.performTextInput
 import androidx.lifecycle.testing.TestLifecycleOwner
@@ -80,7 +74,6 @@
         on { targetSubInfo }.doReturn(null)
         on { availableSubInfoList }.doReturn(listOf())
         on { activeSubInfoList }.doReturn(listOf())
-        on { slotInfoList }.doReturn(listOf())
         on { uiccCardInfoList }.doReturn(listOf())
 
         on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPageProviderTest.kt
index 1395ed4..fcd3e24 100644
--- a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPageProviderTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPageProviderTest.kt
@@ -45,7 +45,6 @@
         on { targetSubInfo }.doReturn(null)
         on { availableSubInfoList }.doReturn(listOf())
         on { activeSubInfoList }.doReturn(listOf())
-        on { slotInfoList }.doReturn(listOf())
         on { uiccCardInfoList }.doReturn(listOf())
 
         on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPrimarySimTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPrimarySimTest.kt
index d9c762d..ef86ac5 100644
--- a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPrimarySimTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPrimarySimTest.kt
@@ -46,7 +46,6 @@
         on { targetSubInfo }.doReturn(null)
         on { availableSubInfoList }.doReturn(listOf())
         on { activeSubInfoList }.doReturn(listOf())
-        on { slotInfoList }.doReturn(listOf())
         on { uiccCardInfoList }.doReturn(listOf())
 
         on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingSelectSimTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingSelectSimTest.kt
index 5b7778e..385bc42 100644
--- a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingSelectSimTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingSelectSimTest.kt
@@ -69,7 +69,6 @@
         on { targetSubInfo }.doReturn(null)
         on { availableSubInfoList }.doReturn(listOf())
         on { activeSubInfoList }.doReturn(listOf())
-        on { slotInfoList }.doReturn(listOf())
         on { uiccCardInfoList }.doReturn(listOf())
 
         on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
diff --git a/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingActivityTest.kt b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingActivityTest.kt
new file mode 100644
index 0000000..6fb4b84
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingActivityTest.kt
@@ -0,0 +1,91 @@
+/*
+ * 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.spa.search
+
+import android.content.Context
+import android.content.Intent
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.SettingsActivity
+import com.android.settings.spa.SpaSearchLanding.BundleValue
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingSpaPage
+import com.android.settingslib.spa.framework.util.KEY_DESTINATION
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argThat
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class SpaSearchLandingActivityTest {
+
+    private val context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            doNothing().whenever(mock).startActivity(any())
+        }
+
+    @Test
+    fun tryLaunch_spaPage() {
+        val key =
+            SpaSearchLandingKey.newBuilder()
+                .setSpaPage(SpaSearchLandingSpaPage.newBuilder().setDestination(DESTINATION))
+                .build()
+
+        SpaSearchLandingActivity.tryLaunch(context, key.encodeToString())
+
+        verify(context).startActivity(argThat { getStringExtra(KEY_DESTINATION) == DESTINATION })
+    }
+
+    @Test
+    fun tryLaunch_fragment() {
+        val key =
+            SpaSearchLandingKey.newBuilder()
+                .setFragment(
+                    SpaSearchLandingFragment.newBuilder()
+                        .setFragmentName(DESTINATION)
+                        .setPreferenceKey(PREFERENCE_KEY)
+                        .putArguments(
+                            ARGUMENT_KEY,
+                            BundleValue.newBuilder().setIntValue(ARGUMENT_VALUE).build()))
+                .build()
+
+        SpaSearchLandingActivity.tryLaunch(context, key.encodeToString())
+
+        val intent = argumentCaptor<Intent> { verify(context).startActivity(capture()) }.firstValue
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+            .isEqualTo(DESTINATION)
+        val fragmentArguments =
+            intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
+        assertThat(fragmentArguments.getString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY))
+            .isEqualTo(PREFERENCE_KEY)
+        assertThat(fragmentArguments.getInt(ARGUMENT_KEY)).isEqualTo(ARGUMENT_VALUE)
+    }
+
+    private companion object {
+        const val DESTINATION = "Destination"
+        const val PREFERENCE_KEY = "preference_key"
+        const val ARGUMENT_KEY = "argument_key"
+        const val ARGUMENT_VALUE = 123
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingKeyExtTest.kt b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingKeyExtTest.kt
new file mode 100644
index 0000000..f4a9ce6
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchLandingKeyExtTest.kt
@@ -0,0 +1,57 @@
+/*
+ * 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.spa.search
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.spa.SpaSearchLanding.BundleValue
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingFragment
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class SpaSearchLandingKeyExtTest {
+
+    @Test
+    fun encodeToString_thenDecode_shouldDecodeCorrectly() {
+        val encoded = KEY.encodeToString()
+
+        val decoded = decodeToSpaSearchLandingKey(encoded)
+
+        assertThat(decoded).isEqualTo(KEY)
+    }
+
+    @Test
+    fun decodeToSpaSearchLandingKey_badString_shouldReturnNull() {
+        val decoded = decodeToSpaSearchLandingKey("bad")
+
+        assertThat(decoded).isNull()
+    }
+
+    private companion object {
+        val KEY: SpaSearchLandingKey =
+            SpaSearchLandingKey.newBuilder()
+                .setFragment(
+                    SpaSearchLandingFragment.newBuilder()
+                        .setFragmentName("Destination")
+                        .setPreferenceKey("preference_key")
+                        .putArguments(
+                            "argument_key", BundleValue.newBuilder().setIntValue(123).build()))
+                .build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt
new file mode 100644
index 0000000..f97abe4
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/search/SpaSearchRepositoryTest.kt
@@ -0,0 +1,67 @@
+/*
+ * 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.spa.search
+
+import android.content.Context
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingKey
+import com.android.settings.spa.SpaSearchLanding.SpaSearchLandingSpaPage
+import com.android.settings.spa.search.SpaSearchRepository.Companion.createSearchIndexableData
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class SpaSearchRepositoryTest {
+
+    @Test
+    fun createSearchIndexableData() {
+        val pageProvider =
+            object : SettingsPageProvider {
+                override val name = PAGE_NAME
+            }
+
+        val searchIndexableData =
+            pageProvider.createSearchIndexableData({ PAGE_TITLE }) { listOf(ITEM_TITLE) }
+        val dynamicRawDataToIndex =
+            searchIndexableData.searchIndexProvider.getDynamicRawDataToIndex(mock<Context>(), true)
+
+        assertThat(searchIndexableData.targetClass).isEqualTo(pageProvider::class.java)
+        assertThat(dynamicRawDataToIndex).hasSize(1)
+        val rawData = dynamicRawDataToIndex[0]
+        val key = decodeToSpaSearchLandingKey(rawData.key)
+        assertThat(key)
+            .isEqualTo(
+                SpaSearchLandingKey.newBuilder()
+                    .setSpaPage(SpaSearchLandingSpaPage.newBuilder().setDestination(PAGE_NAME))
+                    .build())
+        assertThat(rawData.title).isEqualTo(ITEM_TITLE)
+        assertThat(rawData.intentAction).isEqualTo("android.settings.SPA_SEARCH_LANDING")
+        assertThat(rawData.intentTargetClass)
+            .isEqualTo(SpaSearchLandingActivity::class.qualifiedName)
+        assertThat(rawData.className).isEqualTo(pageProvider::class.java.name)
+        assertThat(rawData.screenTitle).isEqualTo(PAGE_TITLE)
+    }
+
+    private companion object {
+        const val PAGE_NAME = "PageName"
+        const val PAGE_TITLE = "Page Title"
+        const val ITEM_TITLE = "Item Title"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
index ad2fbae..4631aa8 100644
--- a/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
@@ -28,6 +28,7 @@
 import com.android.settings.SettingsActivity
 import com.android.settings.core.BasePreferenceController
 import com.android.settings.development.DevelopmentSettingsDashboardFragment
+import com.android.settingslib.spa.testutils.delay
 import com.android.settingslib.spaprivileged.framework.common.userManager
 import com.google.common.truth.Truth.assertThat
 import org.junit.Rule
@@ -99,6 +100,7 @@
         composeTestRule.onNodeWithText(
             context.getString(com.android.settingslib.R.string.development_settings_title)
         ).performClick()
+        composeTestRule.delay()
 
         val intent = argumentCaptor<Intent> {
             verify(context).startActivity(capture())
diff --git a/tests/spa_unit/src/com/android/settings/system/reset/ResetNetworkConfirmTest.kt b/tests/spa_unit/src/com/android/settings/system/reset/ResetNetworkConfirmTest.kt
new file mode 100644
index 0000000..4812cfb
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/system/reset/ResetNetworkConfirmTest.kt
@@ -0,0 +1,79 @@
+/*
+ * 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.system.reset
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.widget.TextView
+import androidx.fragment.app.testing.launchFragment
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.ResetNetworkRequest
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.runBlocking
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.never
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class ResetNetworkConfirmTest {
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {}
+
+    private val scenario = launchFragment<ResetNetworkConfirm>()
+
+    @Test
+    fun resetNetworkData_notResetEsim() {
+        scenario.recreate().onFragment { fragment ->
+            fragment.resetNetworkRequest = ResetNetworkRequest(ResetNetworkRequest.RESET_NONE)
+
+            runBlocking { fragment.onResetClicked() }
+
+            verify(context, never()).getSystemService(any())
+        }
+    }
+
+    @Test
+    fun setSubtitle_eraseEsim() {
+        scenario.onFragment { fragment ->
+            fragment.resetNetworkRequest =
+                ResetNetworkRequest(ResetNetworkRequest.RESET_NONE).apply {
+                    setResetEsim(context.packageName)
+                }
+
+            val view = fragment.onCreateView(LayoutInflater.from(context), null, null)
+
+            assertThat(view.requireViewById<TextView>(R.id.reset_network_confirm).text)
+                .isEqualTo(context.getString(R.string.reset_network_final_desc_esim))
+        }
+    }
+
+    @Test
+    fun setSubtitle_notEraseEsim() {
+        scenario.onFragment { fragment ->
+            fragment.resetNetworkRequest = ResetNetworkRequest(ResetNetworkRequest.RESET_NONE)
+
+            val view = fragment.onCreateView(LayoutInflater.from(context), null, null)
+
+            assertThat(view.requireViewById<TextView>(R.id.reset_network_confirm).text)
+                .isEqualTo(context.getString(R.string.reset_network_final_desc))
+        }
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
index 5ca24a3..d7241b9 100644
--- a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
+++ b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
@@ -23,7 +23,6 @@
 import com.android.settings.applications.ApplicationFeatureProvider
 import com.android.settings.biometrics.face.FaceFeatureProvider
 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider
 import com.android.settings.bluetooth.BluetoothFeatureProvider
 import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider
 import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
@@ -41,7 +40,6 @@
 import com.android.settings.notification.syncacrossdevices.SyncAcrossDevicesFeatureProvider
 import com.android.settings.overlay.DockUpdaterFeatureProvider
 import com.android.settings.overlay.FeatureFactory
-import com.android.settings.overlay.SurveyFeatureProvider
 import com.android.settings.panel.PanelFeatureProvider
 import com.android.settings.privatespace.PrivateSpaceLoginFeatureProvider
 import com.android.settings.search.SearchFeatureProvider
@@ -99,9 +97,7 @@
     override val searchFeatureProvider: SearchFeatureProvider
         get() = TODO("Not yet implemented")
 
-    override fun getSurveyFeatureProvider(context: Context): SurveyFeatureProvider? {
-        TODO("Not yet implemented")
-    }
+    override fun getSurveyFeatureProvider(context: Context) = null
 
     override val securityFeatureProvider: SecurityFeatureProvider
         get() = TODO("Not yet implemented")
@@ -126,8 +122,6 @@
         get() = TODO("Not yet implemented")
     override val fingerprintFeatureProvider: FingerprintFeatureProvider
         get() = TODO("Not yet implemented")
-    override val biometricsRepositoryProvider: BiometricsRepositoryProvider
-        get() = TODO("Not yet implemented")
     override val wifiTrackerLibProvider: WifiTrackerLibProvider
         get() = TODO("Not yet implemented")
     override val securitySettingsFeatureProvider: SecuritySettingsFeatureProvider
diff --git a/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
index 49e6a17..9183096 100644
--- a/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
@@ -17,6 +17,7 @@
 package com.android.settings.wifi
 
 import android.content.Context
+import android.net.wifi.WifiInfo
 import android.net.wifi.WifiManager
 import androidx.compose.ui.test.assertIsOff
 import androidx.compose.ui.test.assertIsOn
@@ -30,7 +31,6 @@
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
-import com.android.settings.dashboard.DashboardFragment
 import com.android.settings.spa.preference.ComposePreference
 import com.android.settingslib.spa.testutils.onDialogText
 import com.android.wifitrackerlib.WifiEntry
@@ -45,29 +45,31 @@
 import org.mockito.kotlin.doReturn
 import org.mockito.kotlin.mock
 import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
 
 @RunWith(AndroidJUnit4::class)
 class WepNetworksPreferenceControllerTest {
 
-    @get:Rule
-    val composeTestRule = createComposeRule()
+    @get:Rule val composeTestRule = createComposeRule()
 
     private var wepAllowed = true
 
-    private var mockWifiInfo = mock<android.net.wifi.WifiInfo> {
-        on { it.currentSecurityType } doReturn WifiEntry.SECURITY_EAP
-        on { it.ssid } doReturn SSID
-    }
-
-    private var mockWifiManager = mock<WifiManager> {
-        on { queryWepAllowed(any(), any()) } doAnswer {
-            @Suppress("UNCHECKED_CAST")
-            val consumer = it.arguments[1] as Consumer<Boolean>
-            consumer.accept(wepAllowed)
+    private var mockWifiInfo =
+        mock<WifiInfo> {
+            on { currentSecurityType } doReturn WifiEntry.SECURITY_EAP
+            on { ssid } doReturn SSID
         }
-        on { it.isWepSupported } doReturn true
-        on { it.connectionInfo } doReturn mockWifiInfo
-    }
+
+    private var mockWifiManager =
+        mock<WifiManager> {
+            on { queryWepAllowed(any(), any()) } doAnswer
+                {
+                    @Suppress("UNCHECKED_CAST") val consumer = it.arguments[1] as Consumer<Boolean>
+                    consumer.accept(wepAllowed)
+                }
+            on { isWepSupported } doReturn true
+            on { connectionInfo } doReturn mockWifiInfo
+        }
 
     private var context: Context =
         spy(ApplicationProvider.getApplicationContext()) {
@@ -85,74 +87,101 @@
     }
 
     @Test
-    fun wepAllowedTrue_turnOn() {
+    fun isChecked_wepSupportedAndAllowed_isOn() {
+        mockWifiManager.stub { on { isWepSupported } doReturn true }
         wepAllowed = true
-        composeTestRule.setContent {
-            controller.Content()
-        }
 
-        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+        composeTestRule.setContent { controller.Content() }
+
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
             .assertIsOn()
     }
 
     @Test
-    fun wepAllowedFalse_turnOff() {
+    fun isChecked_wepSupportedAndNotAllowed_isOff() {
+        mockWifiManager.stub { on { isWepSupported } doReturn true }
         wepAllowed = false
-        composeTestRule.setContent {
-            controller.Content()
-        }
 
-        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+        composeTestRule.setContent { controller.Content() }
+
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+            .assertIsOff()
+    }
+
+    @Test
+    fun isChecked_wepNotSupportedAndAllowed_isOff() {
+        mockWifiManager.stub { on { isWepSupported } doReturn false }
+        wepAllowed = true
+
+        composeTestRule.setContent { controller.Content() }
+
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+            .assertIsOff()
+    }
+
+    @Test
+    fun isChecked_wepNotSupportedAndNotAllowed_isOff() {
+        mockWifiManager.stub { on { isWepSupported } doReturn false }
+        wepAllowed = false
+
+        composeTestRule.setContent { controller.Content() }
+
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
             .assertIsOff()
     }
 
     @Test
     fun onClick_turnOn() {
         wepAllowed = false
-        composeTestRule.setContent {
-            controller.Content()
-        }
+        composeTestRule.setContent { controller.Content() }
 
         composeTestRule.onRoot().performClick()
-        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
             .assertIsOn()
     }
 
     @Test
     fun onClick_turnOff() {
         wepAllowed = true
-        composeTestRule.setContent {
-            controller.Content()
-        }
+        composeTestRule.setContent { controller.Content() }
 
         composeTestRule.onRoot().performClick()
-        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+        composeTestRule
+            .onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
             .assertIsOff()
     }
 
     @Test
     fun whenClick_wepAllowed_openDialog() {
         wepAllowed = true
-        Mockito.`when`(mockWifiInfo.currentSecurityType).thenReturn(WifiEntry.SECURITY_WEP)
-        composeTestRule.setContent {
-            controller.Content()
+        mockWifiInfo.stub {
+            on { currentSecurityType } doReturn WifiEntry.SECURITY_WEP
         }
+        composeTestRule.setContent { controller.Content() }
 
         composeTestRule.onRoot().performClick()
-        composeTestRule.onDialogText(context.getString(R.string.wifi_disconnect_button_text))
+        composeTestRule
+            .onDialogText(context.getString(R.string.wifi_disconnect_button_text))
             .isDisplayed()
     }
 
     @Test
     fun whenClick_wepDisallowed_openDialog() {
         wepAllowed = false
-        Mockito.`when`(mockWifiInfo.currentSecurityType).thenReturn(WifiEntry.SECURITY_WEP)
-        composeTestRule.setContent {
-            controller.Content()
+        mockWifiInfo.stub {
+            on { currentSecurityType } doReturn WifiEntry.SECURITY_WEP
         }
 
+        composeTestRule.setContent { controller.Content() }
+
         composeTestRule.onRoot().performClick()
-        composeTestRule.onDialogText(context.getString(R.string.wifi_disconnect_button_text))
+        composeTestRule
+            .onDialogText(context.getString(R.string.wifi_disconnect_button_text))
             .isNotDisplayed()
     }
 
@@ -160,4 +189,4 @@
         const val TEST_KEY = "test_key"
         const val SSID = "ssid"
     }
-}
\ No newline at end of file
+}
diff --git a/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt b/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
index cb1f997..9260409 100644
--- a/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
+++ b/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
@@ -59,7 +59,7 @@
 
         controller.updateState(preference)
 
-        val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+        val prefValue = WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
             WifiEntry.PRIVACY_DEVICE_MAC
         )
         assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])
@@ -73,7 +73,7 @@
 
         controller.updateState(preference)
 
-        val prefValue = WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
+        val prefValue = WifiPrivacyPreferenceController2.translateWifiEntryPrivacyToPrefValue(
             WifiEntry.PRIVACY_RANDOMIZED_MAC
         )
         assertThat(preference.entry).isEqualTo(preferenceStrings[prefValue])
diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp
index bc5824f..be43f8e 100644
--- a/tests/unit/Android.bp
+++ b/tests/unit/Android.bp
@@ -32,7 +32,7 @@
         "truth",
         "kotlinx_coroutines_test",
         "Settings-testutils2",
-        "MediaDrmSettingsFlagsLib",
+        "servicestests-utils",
         // Don't add SettingsLib libraries here - you can use them directly as they are in the
         // instrumented Settings app.
     ],
diff --git a/tests/unit/src/com/android/settings/ResetSubscriptionContractTest.java b/tests/unit/src/com/android/settings/ResetSubscriptionContractTest.java
deleted file mode 100644
index 4443304..0000000
--- a/tests/unit/src/com/android/settings/ResetSubscriptionContractTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(AndroidJUnit4.class)
-public class ResetSubscriptionContractTest {
-
-    private static final int SUB_ID_1 = 3;
-    private static final int SUB_ID_2 = 8;
-
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-    @Mock
-    private OnSubscriptionsChangedListener mOnSubscriptionsChangedListener;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo1;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo2;
-
-    private Context mContext;
-    private ResetNetworkRequest mRequestArgs;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        mRequestArgs = new ResetNetworkRequest(new Bundle());
-    }
-
-    private ResetSubscriptionContract createTestObject() {
-        return new ResetSubscriptionContract(mContext, mRequestArgs) {
-            @Override
-            protected SubscriptionManager getSubscriptionManager() {
-                return mSubscriptionManager;
-            }
-            @Override
-            protected OnSubscriptionsChangedListener getChangeListener() {
-                return mOnSubscriptionsChangedListener;
-            }
-        };
-    }
-
-    @Test
-    public void getAnyMissingSubscriptionId_returnNull_whenNoSubscriptionChange() {
-        mRequestArgs.setResetTelephonyAndNetworkPolicyManager(SUB_ID_1);
-        doReturn(mSubscriptionInfo1).when(mSubscriptionManager)
-                .getActiveSubscriptionInfo(SUB_ID_1);
-        mRequestArgs.setResetApn(SUB_ID_2);
-        doReturn(mSubscriptionInfo2).when(mSubscriptionManager)
-                .getActiveSubscriptionInfo(SUB_ID_2);
-
-        ResetSubscriptionContract target = createTestObject();
-
-        verify(mSubscriptionManager).addOnSubscriptionsChangedListener(any(), any());
-
-        assertNull(target.getAnyMissingSubscriptionId());
-    }
-
-    @Test
-    public void getAnyMissingSubscriptionId_returnSubId_whenSubscriptionNotActive() {
-        mRequestArgs.setResetTelephonyAndNetworkPolicyManager(SUB_ID_1);
-        doReturn(mSubscriptionInfo1).when(mSubscriptionManager)
-                .getActiveSubscriptionInfo(SUB_ID_1);
-        mRequestArgs.setResetApn(SUB_ID_2);
-        doReturn(null).when(mSubscriptionManager)
-                .getActiveSubscriptionInfo(SUB_ID_2);
-
-        ResetSubscriptionContract target = createTestObject();
-
-        verify(mSubscriptionManager).addOnSubscriptionsChangedListener(any(), any());
-
-        assertEquals(target.getAnyMissingSubscriptionId(), new Integer(SUB_ID_2));
-    }
-}
diff --git a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceControllerTest.java
index e1c0277..7229996 100644
--- a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.AccessibilityShortcutController.REDUCE_BRIGHT_COLORS_TILE_SERVICE_COMPONENT_NAME;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.doReturn;
@@ -24,7 +26,12 @@
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
+import android.view.accessibility.Flags;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -33,6 +40,7 @@
 
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -40,6 +48,8 @@
 public class ReduceBrightColorsPreferenceControllerTest {
     private static final String PREF_KEY = "rbc_preference";
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
     private Context mContext;
     private Resources mResources;;
     private ReduceBrightColorsPreferenceController mController;
@@ -88,6 +98,20 @@
         assertThat(mController.isAvailable()).isFalse();
     }
 
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void getTileComponentName_a11yQsFlagOff_returnComponentName() {
+        assertThat(mController.getTileComponentName())
+                .isEqualTo(REDUCE_BRIGHT_COLORS_TILE_SERVICE_COMPONENT_NAME);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_A11Y_QS_SHORTCUT)
+    public void getTileComponentName_a11yQsFlagOff_returnNull() {
+        assertThat(mController.getTileComponentName()).isNull();
+    }
+
     private int resourceId(String type, String name) {
         return mContext.getResources().getIdentifier(name, type, mContext.getPackageName());
     }
diff --git a/tests/unit/src/com/android/settings/biometrics2/OWNERS b/tests/unit/src/com/android/settings/biometrics2/OWNERS
deleted file mode 100644
index a257ed8..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
-include /src/com/android/settings/biometrics/OWNERS
diff --git a/tests/unit/src/com/android/settings/biometrics2/repository/FingerprintRepositoryTest.java b/tests/unit/src/com/android/settings/biometrics2/repository/FingerprintRepositoryTest.java
deleted file mode 100644
index 8989595..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/repository/FingerprintRepositoryTest.java
+++ /dev/null
@@ -1,203 +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.biometrics2.repository;
-
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_HOME_BUTTON;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UNKNOWN;
-
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupSuwMaxFingerprintsEnrollable;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.biometrics.SensorProperties;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-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 java.util.ArrayList;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintRepositoryTest {
-
-    @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-
-    @Mock private Resources mResources;
-    @Mock private FingerprintManager mFingerprintManager;
-
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        mContext = ApplicationProvider.getApplicationContext();
-    }
-
-    @Test
-    public void testCanAssumeSensorType_forUnknownSensor() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UNKNOWN, 1);
-        assertThat(repository.canAssumeUdfps()).isFalse();
-        assertThat(repository.canAssumeSfps()).isFalse();
-    }
-
-    @Test
-    public void testCanAssumeSensorType_forRearSensor() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_REAR, 1);
-        assertThat(repository.canAssumeUdfps()).isFalse();
-        assertThat(repository.canAssumeSfps()).isFalse();
-    }
-
-    @Test
-    public void testCanAssumeSensorType_forUdfpsUltrasonicSensor() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UDFPS_ULTRASONIC, 1);
-        assertThat(repository.canAssumeUdfps()).isTrue();
-        assertThat(repository.canAssumeSfps()).isFalse();
-    }
-
-    @Test
-    public void testCanAssumeSensorType_forUdfpsOpticalSensor() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UDFPS_OPTICAL, 1);
-        assertThat(repository.canAssumeUdfps()).isTrue();
-        assertThat(repository.canAssumeSfps()).isFalse();
-    }
-
-    @Test
-    public void testCanAssumeSensorType_forPowerButtonSensor() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_POWER_BUTTON, 1);
-        assertThat(repository.canAssumeUdfps()).isFalse();
-        assertThat(repository.canAssumeSfps()).isTrue();
-    }
-
-    @Test
-    public void testCanAssumeSensorType_forHomeButtonSensor() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_HOME_BUTTON, 1);
-        assertThat(repository.canAssumeUdfps()).isFalse();
-        assertThat(repository.canAssumeSfps()).isFalse();
-    }
-
-    @Test
-    public void testGetMaxFingerprints() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UNKNOWN, 999);
-        assertThat(repository.getMaxFingerprints()).isEqualTo(999);
-    }
-
-    @Test
-    public void testGetNumOfEnrolledFingerprintsSize() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UNKNOWN, 999);
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, 10, 3);
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, 22, 99);
-
-        assertThat(repository.getNumOfEnrolledFingerprintsSize(10)).isEqualTo(3);
-        assertThat(repository.getNumOfEnrolledFingerprintsSize(22)).isEqualTo(99);
-    }
-
-    @Test
-    public void testGetMaxFingerprintsInSuw() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UNKNOWN, 999);
-        setupSuwMaxFingerprintsEnrollable(mContext, mResources, 333);
-        assertThat(repository.getMaxFingerprintsInSuw(mResources))
-                .isEqualTo(333);
-
-        setupSuwMaxFingerprintsEnrollable(mContext, mResources, 20);
-        assertThat(repository.getMaxFingerprintsInSuw(mResources)).isEqualTo(20);
-    }
-
-    @Test
-    public void testGetFirstFingerprintSensorPropertiesInternal() {
-        final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
-        final FingerprintSensorPropertiesInternal prop = new FingerprintSensorPropertiesInternal(
-                0 /* sensorId */,
-                SensorProperties.STRENGTH_STRONG,
-                5,
-                new ArrayList<>() /* componentInfo */,
-                TYPE_UDFPS_OPTICAL,
-                true /* resetLockoutRequiresHardwareAuthToken */);
-        props.add(prop);
-        doAnswer(invocation -> {
-            final IFingerprintAuthenticatorsRegisteredCallback callback =
-                    invocation.getArgument(0);
-            callback.onAllAuthenticatorsRegistered(props);
-            return null;
-        }).when(mFingerprintManager).addAuthenticatorsRegisteredCallback(any());
-
-        final FingerprintRepository repository = new FingerprintRepository(mFingerprintManager);
-        assertThat(repository.getFirstFingerprintSensorPropertiesInternal()).isEqualTo(prop);
-    }
-
-    @Test
-    public void testGetEnrollStageCount() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UNKNOWN, 999);
-
-        final int expectedValue = 24;
-        doReturn(expectedValue).when(mFingerprintManager).getEnrollStageCount();
-
-        assertThat(repository.getEnrollStageCount()).isEqualTo(expectedValue);
-    }
-
-    @Test
-    public void testGetEnrollStageThreshold() {
-        final FingerprintRepository repository = newFingerprintRepository(mFingerprintManager,
-                TYPE_UNKNOWN, 999);
-
-        final float expectedValue0 = 0.42f;
-        final float expectedValue1 = 0.24f;
-        final float expectedValue2 = 0.33f;
-        final float expectedValue3 = 0.90f;
-        doReturn(expectedValue0).when(mFingerprintManager).getEnrollStageThreshold(0);
-        doReturn(expectedValue1).when(mFingerprintManager).getEnrollStageThreshold(1);
-        doReturn(expectedValue2).when(mFingerprintManager).getEnrollStageThreshold(2);
-        doReturn(expectedValue3).when(mFingerprintManager).getEnrollStageThreshold(3);
-
-        assertThat(repository.getEnrollStageThreshold(2)).isEqualTo(expectedValue2);
-        assertThat(repository.getEnrollStageThreshold(1)).isEqualTo(expectedValue1);
-        assertThat(repository.getEnrollStageThreshold(3)).isEqualTo(expectedValue3);
-        assertThat(repository.getEnrollStageThreshold(0)).isEqualTo(expectedValue0);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt
deleted file mode 100644
index ac62232..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt
+++ /dev/null
@@ -1,136 +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.biometrics2.ui.model
-
-import android.content.Intent
-import android.os.Bundle
-import android.os.SystemClock
-import android.os.UserHandle
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.password.ChooseLockSettingsHelper
-import com.google.common.truth.Truth
-import org.junit.Test
-import org.junit.runner.RunWith
-import java.util.Arrays
-
-@RunWith(AndroidJUnit4::class)
-class CredentialModelTest {
-
-    private val clock = SystemClock.elapsedRealtimeClock()
-
-    @Test
-    fun testNullBundle() {
-        val credentialModel = CredentialModel(null, clock)
-        Truth.assertThat(credentialModel.userId).isEqualTo(UserHandle.myUserId())
-    }
-
-    companion object {
-        @JvmStatic
-        fun newCredentialModelIntentExtras(
-            userId: Int, challenge: Long,
-            token: ByteArray?, gkPwHandle: Long
-        ): Bundle {
-            val bundle = Bundle()
-            bundle.putInt(Intent.EXTRA_USER_ID, userId)
-            bundle.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge)
-            bundle.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token)
-            bundle.putLong(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
-            return bundle
-        }
-
-        @JvmStatic
-        fun newValidTokenCredentialIntentExtras(userId: Int): Bundle {
-            return newCredentialModelIntentExtras(
-                userId, 1L, byteArrayOf(0, 1, 2),
-                CredentialModel.INVALID_GK_PW_HANDLE
-            )
-        }
-
-        @JvmStatic
-        fun newOnlySensorValidCredentialIntentExtras(userId: Int): Bundle {
-            return newCredentialModelIntentExtras(
-                userId, CredentialModel.INVALID_CHALLENGE, null,
-                CredentialModel.INVALID_GK_PW_HANDLE
-            )
-        }
-
-        @JvmStatic
-        fun newGkPwHandleCredentialIntentExtras(userId: Int, gkPwHandle: Long): Bundle {
-            return newCredentialModelIntentExtras(
-                userId,
-                CredentialModel.INVALID_CHALLENGE,
-                null,
-                gkPwHandle
-            )
-        }
-
-        private fun checkBundleLongValue(
-            bundle1: Bundle, bundle2: Bundle,
-            key: String
-        ) {
-            if (!bundle1.containsKey(key)) {
-                return
-            }
-            val value1 = bundle1.getInt(key)
-            val value2 = bundle2.getInt(key)
-            Truth.assertWithMessage(
-                "bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
-                        + value2
-            ).that(value1).isEqualTo(value2)
-        }
-
-        private fun checkBundleIntValue(
-            bundle1: Bundle, bundle2: Bundle,
-            key: String
-        ) {
-            if (!bundle1.containsKey(key)) {
-                return
-            }
-            val value1 = bundle1.getLong(key)
-            val value2 = bundle2.getLong(key)
-            Truth.assertWithMessage(
-                "bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
-                        + value2
-            ).that(value1).isEqualTo(value2)
-        }
-
-        private fun checkBundleByteArrayValue(
-            bundle1: Bundle, bundle2: Bundle,
-            key: String
-        ) {
-            if (!bundle1.containsKey(key)) {
-                return
-            }
-            val value1 = bundle1.getByteArray(key)
-            val value2 = bundle2.getByteArray(key)
-            val errMsg = ("bundle not match, key:" + key + ", value1:" + Arrays.toString(value1)
-                    + ", value2:" + Arrays.toString(value2))
-            if (value1 == null) {
-                Truth.assertWithMessage(errMsg).that(value2).isNull()
-            } else {
-                Truth.assertWithMessage(errMsg).that(value1.size).isEqualTo(
-                    value2!!.size
-                )
-                for (i in value1.indices) {
-                    Truth.assertWithMessage(errMsg).that(value1[i]).isEqualTo(
-                        value2[i]
-                    )
-                }
-            }
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt
deleted file mode 100644
index b301433..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt
+++ /dev/null
@@ -1,175 +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.biometrics2.ui.model
-
-import android.content.Context
-import android.content.Intent
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics.BiometricEnrollActivity
-import com.google.android.setupcompat.util.WizardManagerHelper
-import com.google.common.truth.Truth
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@RunWith(AndroidJUnit4::class)
-class EnrollmentRequestTest {
-
-    private val context = ApplicationProvider.getApplicationContext<Context>()
-
-    @Test
-    fun testIsSuw() {
-        // Default false
-        Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSuw).isFalse()
-        Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSuw).isFalse()
-        val trueIntent = Intent()
-        trueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
-        Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSuw).isTrue()
-        Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSuw).isFalse()
-        val falseIntent = Intent()
-        trueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, false)
-        Truth.assertThat(EnrollmentRequest(falseIntent, context, true).isSuw).isFalse()
-        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSuw).isFalse()
-    }
-
-    @Test
-    fun testIsAfterSuwOrSuwSuggestedAction() {
-        // Default false
-        Truth.assertThat(
-            EnrollmentRequest(Intent(), context, true)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        Truth.assertThat(
-            EnrollmentRequest(Intent(), context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        val deferredTrueIntent = Intent()
-        deferredTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, true)
-        Truth.assertThat(
-            EnrollmentRequest(deferredTrueIntent, context, true)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isTrue()
-        Truth.assertThat(
-            EnrollmentRequest(deferredTrueIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        val deferredFalseIntent = Intent()
-        deferredFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, false)
-        Truth.assertThat(
-            EnrollmentRequest(deferredFalseIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        Truth.assertThat(
-            EnrollmentRequest(deferredFalseIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        val portalTrueIntent = Intent()
-        portalTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, true)
-        Truth.assertThat(
-            EnrollmentRequest(portalTrueIntent, context, true)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isTrue()
-        Truth.assertThat(
-            EnrollmentRequest(portalTrueIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        val portalFalseIntent = Intent()
-        portalFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, false)
-        Truth.assertThat(
-            EnrollmentRequest(portalFalseIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        Truth.assertThat(
-            EnrollmentRequest(portalFalseIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        val suggestedTrueIntent = Intent()
-        suggestedTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, true)
-        Truth.assertThat(
-            EnrollmentRequest(suggestedTrueIntent, context, true)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isTrue()
-        Truth.assertThat(
-            EnrollmentRequest(suggestedTrueIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        val suggestedFalseIntent = Intent()
-        suggestedFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false)
-        Truth.assertThat(
-            EnrollmentRequest(suggestedFalseIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-        Truth.assertThat(
-            EnrollmentRequest(suggestedFalseIntent, context, false)
-                .isAfterSuwOrSuwSuggestedAction
-        ).isFalse()
-    }
-
-    @Test
-    fun testGetSuwExtras_inSuw() {
-        val suwIntent = Intent()
-        suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
-        val setupRequest = EnrollmentRequest(suwIntent, context, true)
-        val bundle = setupRequest.suwExtras
-        Truth.assertThat(bundle).isNotNull()
-        Truth.assertThat(bundle.size()).isAtLeast(1)
-        Truth.assertThat(bundle.getBoolean(WizardManagerHelper.EXTRA_IS_SETUP_FLOW)).isTrue()
-    }
-
-    @Test
-    fun testGetSuwExtras_notInSuw() {
-        val suwIntent = Intent()
-        suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
-        val setupRequest = EnrollmentRequest(suwIntent, context, false)
-        val bundle = setupRequest.suwExtras
-        Truth.assertThat(bundle).isNotNull()
-        Truth.assertThat(bundle.size()).isEqualTo(0)
-    }
-
-    @Test
-    fun testIsSkipIntro() {
-        // Default false
-        Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSkipIntro).isFalse()
-        Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSkipIntro).isFalse()
-        val trueIntent = Intent()
-        trueIntent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true)
-        Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSkipIntro).isTrue()
-        Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSkipIntro).isTrue()
-        val falseIntent = Intent()
-        falseIntent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, false)
-        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipIntro).isFalse()
-        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipIntro).isFalse()
-    }
-
-    @Test
-    fun testIsSkipFindSensor() {
-        // Default false
-        Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSkipFindSensor)
-            .isFalse()
-        Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSkipFindSensor)
-            .isFalse()
-        val trueIntent = Intent()
-        trueIntent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, true)
-        Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSkipFindSensor).isTrue()
-        Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSkipFindSensor).isTrue()
-        val falseIntent = Intent()
-        falseIntent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, false)
-        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipFindSensor)
-            .isFalse()
-        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipFindSensor)
-            .isFalse()
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt
deleted file mode 100644
index e708f3b..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt
+++ /dev/null
@@ -1,519 +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.biometrics2.ui.viewmodel
-
-import android.app.Activity
-import android.app.admin.DevicePolicyManager
-import android.content.Intent
-import android.os.Bundle
-import android.os.SystemClock
-import android.os.UserHandle
-import androidx.activity.result.ActivityResult
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.internal.widget.LockPatternUtils
-import com.android.internal.widget.VerifyCredentialResponse
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.ui.model.CredentialModel
-import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newGkPwHandleCredentialIntentExtras
-import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newOnlySensorValidCredentialIntentExtras
-import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newValidTokenCredentialIntentExtras
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator
-import com.android.settings.password.ChooseLockPattern
-import com.android.settings.password.ChooseLockSettingsHelper
-import com.google.common.truth.Truth.assertThat
-import java.util.concurrent.atomic.AtomicBoolean
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.`when` as whenever
-
-@RunWith(AndroidJUnit4::class)
-class AutoCredentialViewModelTest {
-
-    @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
-
-    @Mock private lateinit var lockPatternUtils: LockPatternUtils
-
-    private var challengeGenerator: TestChallengeGenerator = TestChallengeGenerator()
-
-    private lateinit var viewModel: AutoCredentialViewModel
-    private fun newAutoCredentialViewModel(bundle: Bundle?): AutoCredentialViewModel {
-        return AutoCredentialViewModel(
-            ApplicationProvider.getApplicationContext(),
-            lockPatternUtils,
-            challengeGenerator,
-            CredentialModel(bundle, SystemClock.elapsedRealtimeClock())
-        )
-    }
-
-    @Before
-    fun setUp() {
-        challengeGenerator = TestChallengeGenerator()
-    }
-
-    private fun setupGenerateChallenge(userId: Int, newSensorId: Int, newChallenge: Long) {
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
-        )
-        challengeGenerator.userId = userId
-        challengeGenerator.sensorId = newSensorId
-        challengeGenerator.challenge = newChallenge
-    }
-
-    @Test
-    fun testCheckCredential_validCredentialCase() = runTest {
-        val userId = 99
-        viewModel = newAutoCredentialViewModel(newValidTokenCredentialIntentExtras(userId))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
-        )
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run credential check
-        val action = viewModel.checkCredential(backgroundScope)
-        runCurrent()
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CredentialAction.CREDENTIAL_VALID)
-        assertThat(generateFails.size).isEqualTo(0)
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
-    }
-
-    @Test
-    fun testCheckCredential_needToChooseLock() = runTest {
-        val userId = 100
-        viewModel = newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
-        )
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run credential check
-        val action = viewModel.checkCredential(backgroundScope)
-        runCurrent()
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK)
-        assertThat(generateFails.size).isEqualTo(0)
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
-    }
-
-    @Test
-    fun testCheckCredential_needToConfirmLockForSomething() = runTest {
-        val userId = 101
-        viewModel =
-            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
-        )
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run credential check
-        val action = viewModel.checkCredential(backgroundScope)
-        runCurrent()
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
-        assertThat(generateFails.size).isEqualTo(0)
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
-    }
-
-    @Test
-    fun testCheckCredential_needToConfirmLockForNumeric() = runTest {
-        val userId = 102
-        viewModel =
-            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_NUMERIC
-        )
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run credential check
-        val action = viewModel.checkCredential(backgroundScope)
-        runCurrent()
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
-        assertThat(generateFails.size).isEqualTo(0)
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
-    }
-
-    @Test
-    fun testCheckCredential_needToConfirmLockForAlphabetic() = runTest {
-        val userId = 103
-        viewModel =
-            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC
-        )
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run credential check
-        val action = viewModel.checkCredential(this)
-        runCurrent()
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
-        assertThat(generateFails.size).isEqualTo(0)
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
-    }
-
-    @Test
-    fun testCheckCredential_generateChallenge() = runTest {
-        val userId = 104
-        val gkPwHandle = 1111L
-        viewModel =
-            newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
-        )
-        val newSensorId = 10
-        val newChallenge = 20L
-        setupGenerateChallenge(userId, newSensorId, newChallenge)
-        whenever(
-            lockPatternUtils.verifyGatekeeperPasswordHandle(
-                gkPwHandle,
-                newChallenge,
-                userId
-            )
-        )
-            .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
-        val hasCalledRemoveGkPwHandle = AtomicBoolean()
-        Mockito.doAnswer {
-            hasCalledRemoveGkPwHandle.set(true)
-            null
-        }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run credential check
-        val action = viewModel.checkCredential(backgroundScope)
-        runCurrent()
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CredentialAction.IS_GENERATING_CHALLENGE)
-        assertThat(generateFails.size).isEqualTo(0)
-
-        // Check data inside CredentialModel
-        assertThat(viewModel.token).isNotNull()
-        assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
-        assertThat(hasCalledRemoveGkPwHandle.get()).isFalse()
-
-        // Check createGeneratingChallengeExtras()
-        val generatingChallengeExtras = viewModel.createGeneratingChallengeExtras()
-        assertThat(generatingChallengeExtras).isNotNull()
-        assertThat(generatingChallengeExtras!!.getLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE))
-            .isEqualTo(newChallenge)
-        val tokens =
-            generatingChallengeExtras.getByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
-        assertThat(tokens).isNotNull()
-        assertThat(tokens!!.size).isEqualTo(1)
-        assertThat(tokens[0]).isEqualTo(1)
-    }
-
-    @Test
-    fun testCheckCredential_generateChallengeFail() = runTest {
-        backgroundScope.launch {
-            val userId = 104
-            val gkPwHandle = 1111L
-            viewModel =
-                newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
-            whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
-            )
-            val newSensorId = 10
-            val newChallenge = 20L
-            setupGenerateChallenge(userId, newSensorId, newChallenge)
-            whenever(
-                lockPatternUtils.verifyGatekeeperPasswordHandle(
-                    gkPwHandle,
-                    newChallenge,
-                    userId
-                )
-            )
-                .thenReturn(newBadCredential(0))
-
-            val generateFails = listOfGenerateChallengeFailedFlow()
-
-            // Run credential check
-            val action = viewModel.checkCredential(this)
-            runCurrent()
-
-            assertThat(action).isEqualTo(CredentialAction.IS_GENERATING_CHALLENGE)
-            assertThat(generateFails.size).isEqualTo(1)
-            assertThat(generateFails[0]).isEqualTo(true)
-            assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
-
-            // Check createGeneratingChallengeExtras()
-            assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
-        }
-    }
-
-    @Test
-    fun testGetUserId_fromIntent() {
-        val userId = 106
-        viewModel = newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-
-        // Get userId
-        assertThat(viewModel.userId).isEqualTo(userId)
-    }
-
-    @Test
-    fun testGenerateChallengeAsCredentialActivityResult_invalidChooseLock() = runTest {
-        backgroundScope.launch {
-            val userId = 107
-            val gkPwHandle = 3333L
-            viewModel =
-                newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
-            val intent = Intent()
-            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
-
-            val generateFails = listOfGenerateChallengeFailedFlow()
-
-            // Run generateChallengeAsCredentialActivityResult()
-            val ret = viewModel.generateChallengeAsCredentialActivityResult(
-                true,
-                ActivityResult(ChooseLockPattern.RESULT_FINISHED + 1, intent),
-                backgroundScope
-            )
-            runCurrent()
-
-            assertThat(ret).isFalse()
-            assertThat(generateFails.size).isEqualTo(0)
-        }
-    }
-
-    @Test
-    fun testGenerateChallengeAsCredentialActivityResult_invalidConfirmLock() = runTest {
-        backgroundScope.launch {
-            val userId = 107
-            val gkPwHandle = 3333L
-            viewModel =
-                newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
-            val intent = Intent()
-            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
-
-            val generateFails = listOfGenerateChallengeFailedFlow()
-
-            // Run generateChallengeAsCredentialActivityResult()
-            val ret = viewModel.generateChallengeAsCredentialActivityResult(
-                false,
-                ActivityResult(Activity.RESULT_OK + 1, intent),
-                backgroundScope
-            )
-            runCurrent()
-
-            assertThat(ret).isFalse()
-            assertThat(generateFails.size).isEqualTo(0)
-        }
-    }
-
-    @Test
-    fun testGenerateChallengeAsCredentialActivityResult_nullDataChooseLock() = runTest {
-        val userId = 108
-        val gkPwHandle = 4444L
-        viewModel =
-            newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run generateChallengeAsCredentialActivityResult()
-        val ret = viewModel.generateChallengeAsCredentialActivityResult(
-            true,
-            ActivityResult(ChooseLockPattern.RESULT_FINISHED, null),
-            backgroundScope
-        )
-        runCurrent()
-
-        assertThat(ret).isFalse()
-        assertThat(generateFails.size).isEqualTo(0)
-    }
-
-    @Test
-    fun testGenerateChallengeAsCredentialActivityResult_nullDataConfirmLock() = runTest {
-        val userId = 109
-        viewModel =
-            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run generateChallengeAsCredentialActivityResult()
-        val ret = viewModel.generateChallengeAsCredentialActivityResult(
-            false,
-            ActivityResult(Activity.RESULT_OK, null),
-            backgroundScope
-        )
-        runCurrent()
-
-        assertThat(ret).isFalse()
-        assertThat(generateFails.size).isEqualTo(0)
-    }
-
-    @Test
-    fun testGenerateChallengeAsCredentialActivityResult_validChooseLock() = runTest {
-        val userId = 108
-        viewModel =
-            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
-        )
-        val gkPwHandle = 6666L
-        val newSensorId = 50
-        val newChallenge = 60L
-        setupGenerateChallenge(userId, newSensorId, newChallenge)
-        whenever(
-            lockPatternUtils.verifyGatekeeperPasswordHandle(
-                gkPwHandle,
-                newChallenge,
-                userId
-            )
-        )
-            .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
-        val hasCalledRemoveGkPwHandle = AtomicBoolean()
-        Mockito.doAnswer {
-            hasCalledRemoveGkPwHandle.set(true)
-            null
-        }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run generateChallengeAsCredentialActivityResult()
-        val intent =
-            Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
-        val ret = viewModel.generateChallengeAsCredentialActivityResult(
-            true,
-            ActivityResult(ChooseLockPattern.RESULT_FINISHED, intent),
-            backgroundScope
-        )
-        runCurrent()
-
-        assertThat(ret).isTrue()
-        assertThat(generateFails.size).isEqualTo(0)
-        assertThat(viewModel.token).isNotNull()
-        assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
-        assertThat(hasCalledRemoveGkPwHandle.get()).isTrue()
-    }
-
-    @Test
-    fun testGenerateChallengeAsCredentialActivityResult_validConfirmLock() = runTest {
-        val userId = 109
-        viewModel =
-            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
-        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
-        )
-        val gkPwHandle = 5555L
-        val newSensorId = 80
-        val newChallenge = 90L
-        setupGenerateChallenge(userId, newSensorId, newChallenge)
-        whenever(
-            lockPatternUtils.verifyGatekeeperPasswordHandle(
-                gkPwHandle,
-                newChallenge,
-                userId
-            )
-        )
-            .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
-        val hasCalledRemoveGkPwHandle = AtomicBoolean()
-        Mockito.doAnswer {
-            hasCalledRemoveGkPwHandle.set(true)
-            null
-        }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
-
-        val generateFails = listOfGenerateChallengeFailedFlow()
-
-        // Run generateChallengeAsCredentialActivityResult()
-        val intent =
-            Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
-        val ret = viewModel.generateChallengeAsCredentialActivityResult(
-            false,
-            ActivityResult(Activity.RESULT_OK, intent),
-            backgroundScope
-        )
-        runCurrent()
-
-        assertThat(ret).isTrue()
-        assertThat(generateFails.size).isEqualTo(0)
-        assertThat(viewModel.token).isNotNull()
-        assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
-        assertThat(hasCalledRemoveGkPwHandle.get()).isTrue()
-    }
-
-    private fun TestScope.listOfGenerateChallengeFailedFlow(): List<Boolean> =
-        mutableListOf<Boolean>().also {
-            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
-                viewModel.generateChallengeFailedFlow.toList(it)
-            }
-        }
-
-    class TestChallengeGenerator : ChallengeGenerator {
-        var sensorId = -1
-        var userId = UserHandle.myUserId()
-        var challenge = CredentialModel.INVALID_CHALLENGE
-        var callbackRunCount = 0
-
-        override var callback: AutoCredentialViewModel.GenerateChallengeCallback? = null
-
-        override fun generateChallenge(userId: Int) {
-            callback?.let {
-                it.onChallengeGenerated(sensorId, this.userId, challenge)
-                ++callbackRunCount
-            }
-        }
-    }
-
-    private fun newGoodCredential(gkPwHandle: Long, hat: ByteArray): VerifyCredentialResponse {
-        return VerifyCredentialResponse.Builder()
-            .setGatekeeperPasswordHandle(gkPwHandle)
-            .setGatekeeperHAT(hat)
-            .build()
-    }
-
-    private fun newBadCredential(timeout: Int): VerifyCredentialResponse {
-        return if (timeout > 0) {
-            VerifyCredentialResponse.fromTimeout(timeout)
-        } else {
-            VerifyCredentialResponse.fromError()
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModelTest.java
deleted file mode 100644
index c4ee18e..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceFoldedViewModelTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-import android.content.res.Configuration;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.InstantTaskExecutorRule;
-import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class DeviceFoldedViewModelTest {
-
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    private DeviceFoldedViewModel mViewModel;
-
-    @Before
-    public void setUp() {
-        final Application application = ApplicationProvider.getApplicationContext();
-        mViewModel = new DeviceFoldedViewModel(new ScreenSizeFoldProvider(application),
-                application.getMainExecutor());
-    }
-
-    @Test
-    public void testLiveData() {
-        final Configuration config1 = new Configuration();
-        config1.smallestScreenWidthDp = 601;
-        mViewModel.onConfigurationChanged(config1);
-        assertThat(mViewModel.getLiveData().getValue()).isFalse();
-
-        final Configuration config2 = new Configuration();
-        config2.smallestScreenWidthDp = 599;
-        mViewModel.onConfigurationChanged(config2);
-        assertThat(mViewModel.getLiveData().getValue()).isTrue();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModelTest.java
deleted file mode 100644
index 0b7c53c..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModelTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-import android.view.Surface;
-
-import androidx.annotation.NonNull;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class DeviceRotationViewModelTest {
-
-    @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    private TestDeviceRotationViewModel mViewModel;
-
-    @Before
-    public void setUp() {
-        TestDeviceRotationViewModel.sTestRotation = 3;
-        mViewModel = new TestDeviceRotationViewModel(ApplicationProvider.getApplicationContext());
-    }
-
-    @Test
-    public void testDefaultLiveDataNotNull() {
-        assertThat(mViewModel.getLiveData().getValue()).isEqualTo(mViewModel.sTestRotation);
-    }
-
-    @Test
-    public void testOnDisplayChange() {
-        mViewModel.sTestRotation = 3;
-        mViewModel.triggerOnDisplayChanged();
-        assertThat(mViewModel.getLiveData().getValue()).isEqualTo(mViewModel.sTestRotation);
-    }
-
-    public static class TestDeviceRotationViewModel extends DeviceRotationViewModel {
-
-        @Surface.Rotation static int sTestRotation = 0;
-
-        public TestDeviceRotationViewModel(@NonNull Application application) {
-            super(application);
-        }
-
-        void triggerOnDisplayChanged() {
-            mDisplayListener.onDisplayChanged(0);
-        }
-
-        @Override
-        protected int getRotation() {
-            return sTestRotation;
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
deleted file mode 100644
index d4fae60..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
+++ /dev/null
@@ -1,173 +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.biometrics2.ui.viewmodel;
-
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-
-import android.app.Application;
-import android.hardware.biometrics.SensorProperties;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-
-import androidx.lifecycle.LiveData;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-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 java.util.ArrayList;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollEnrollingViewModelTest {
-
-    private static final int TEST_USER_ID = 33;
-
-    @Rule
-    public final MockitoRule mockito = MockitoJUnit.rule();
-    @Rule
-    public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    @Mock
-    private FingerprintManager mFingerprintManager;
-
-    private Application mApplication;
-    private FingerprintEnrollEnrollingViewModel mViewModel;
-
-    @Before
-    public void setUp() {
-        mApplication = ApplicationProvider.getApplicationContext();
-        mViewModel = new FingerprintEnrollEnrollingViewModel(
-                mApplication,
-                TEST_USER_ID,
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL,  5)
-            );
-    }
-
-    @Test
-    public void testIconTouchDialog() {
-        final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
-        assertThat(actionLiveData.getValue()).isEqualTo(null);
-
-        mViewModel.showIconTouchDialog();
-        assertThat(actionLiveData.getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG);
-    }
-
-    @Test
-    public void tesBackPressedScenario() {
-        final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
-        assertThat(actionLiveData.getValue()).isEqualTo(null);
-        assertThat(mViewModel.getOnBackPressed()).isEqualTo(false);
-
-        mViewModel.setOnBackPressed();
-        assertThat(mViewModel.getOnBackPressed()).isEqualTo(true);
-
-        mViewModel.onCancelledDueToOnBackPressed();
-        assertThat(mViewModel.getOnBackPressed()).isEqualTo(false);
-        assertThat(actionLiveData.getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED);
-    }
-
-    @Test
-    public void testSkipPressedScenario() {
-        final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
-        assertThat(actionLiveData.getValue()).isEqualTo(null);
-        assertThat(mViewModel.getOnSkipPressed()).isEqualTo(false);
-
-        mViewModel.setOnSkipPressed();
-        assertThat(mViewModel.getOnSkipPressed()).isEqualTo(true);
-
-        mViewModel.onCancelledDueToOnSkipPressed();
-        assertThat(mViewModel.getOnSkipPressed()).isEqualTo(false);
-        assertThat(actionLiveData.getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP);
-    }
-
-    @Test
-    public void testGetFirstFingerprintSensorPropertiesInternal() {
-        final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
-        final FingerprintSensorPropertiesInternal prop = new FingerprintSensorPropertiesInternal(
-                0 /* sensorId */,
-                SensorProperties.STRENGTH_STRONG,
-                5,
-                new ArrayList<>() /* componentInfo */,
-                TYPE_UDFPS_OPTICAL,
-                true /* resetLockoutRequiresHardwareAuthToken */);
-        props.add(prop);
-        doAnswer(invocation -> {
-            final IFingerprintAuthenticatorsRegisteredCallback callback =
-                    invocation.getArgument(0);
-            callback.onAllAuthenticatorsRegistered(props);
-            return null;
-        }).when(mFingerprintManager).addAuthenticatorsRegisteredCallback(any());
-
-        mViewModel = new FingerprintEnrollEnrollingViewModel(
-                mApplication,
-                TEST_USER_ID,
-                new FingerprintRepository(mFingerprintManager)
-        );
-
-        assertThat(mViewModel.getFirstFingerprintSensorPropertiesInternal()).isEqualTo(prop);
-    }
-
-    @Test
-    public void testGetEnrollStageCount() {
-        final int expectedValue = 24;
-        doReturn(expectedValue).when(mFingerprintManager).getEnrollStageCount();
-
-        assertThat(mViewModel.getEnrollStageCount()).isEqualTo(expectedValue);
-    }
-
-    @Test
-    public void testGetEnrollStageThreshold() {
-        final float expectedValue0 = 0.42f;
-        final float expectedValue1 = 0.24f;
-        final float expectedValue2 = 0.33f;
-        final float expectedValue3 = 0.90f;
-
-        doReturn(expectedValue0).when(mFingerprintManager).getEnrollStageThreshold(0);
-        doReturn(expectedValue1).when(mFingerprintManager).getEnrollStageThreshold(1);
-        doReturn(expectedValue2).when(mFingerprintManager).getEnrollStageThreshold(2);
-        doReturn(expectedValue3).when(mFingerprintManager).getEnrollStageThreshold(3);
-
-        assertThat(mViewModel.getEnrollStageThreshold(2)).isEqualTo(expectedValue2);
-        assertThat(mViewModel.getEnrollStageThreshold(1)).isEqualTo(expectedValue1);
-        assertThat(mViewModel.getEnrollStageThreshold(3)).isEqualTo(expectedValue3);
-        assertThat(mViewModel.getEnrollStageThreshold(0)).isEqualTo(expectedValue0);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt
deleted file mode 100644
index 379a5c1..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt
+++ /dev/null
@@ -1,121 +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.biometrics2.ui.viewmodel
-
-import android.app.Application
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-
-@RunWith(AndroidJUnit4::class)
-class FingerprintEnrollErrorDialogViewModelTest {
-
-    private val application = ApplicationProvider.getApplicationContext<Application>()
-    private var viewModel: FingerprintEnrollErrorDialogViewModel =
-        FingerprintEnrollErrorDialogViewModel(application, false)
-
-    @Before
-    fun setUp() {
-        // Make sure viewModel is new for each test
-        viewModel = FingerprintEnrollErrorDialogViewModel(application, false)
-    }
-
-    @Test
-    fun testIsDialogNotShownDefaultFalse() {
-        assertThat(viewModel.isDialogShown).isFalse()
-    }
-
-    @Test
-    fun testIsSuw() {
-        assertThat(FingerprintEnrollErrorDialogViewModel(application, false).isSuw).isFalse()
-        assertThat(FingerprintEnrollErrorDialogViewModel(application, true).isSuw).isTrue()
-    }
-
-    @Test
-    fun testNewDialog() = runTest {
-        val newDialogs: List<Int> = mutableListOf<Int>().also {
-            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
-                viewModel.newDialogFlow.toList(it)
-            }
-        }
-
-        runCurrent()
-
-        // Default values
-        assertThat(viewModel.isDialogShown).isFalse()
-        assertThat(newDialogs.size).isEqualTo(0)
-
-        val testErrorMsgId = 3456
-        viewModel.newDialog(testErrorMsgId)
-        runCurrent()
-
-        // verify after emit
-        assertThat(viewModel.isDialogShown).isTrue()
-        assertThat(newDialogs.size).isEqualTo(1)
-        assertThat(newDialogs[0]).isEqualTo(testErrorMsgId)
-    }
-
-    @Test
-    fun testTriggerRetry() = runTest {
-        val triggerRetries: List<Any> = mutableListOf<Any>().also {
-            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
-                viewModel.triggerRetryFlow.toList(it)
-            }
-        }
-
-        runCurrent()
-
-        // Default values
-        assertThat(triggerRetries.size).isEqualTo(0)
-
-        viewModel.triggerRetry()
-        runCurrent()
-
-        // verify after emit
-        assertThat(triggerRetries.size).isEqualTo(1)
-    }
-
-    @Test
-    fun testSetResultFinish() = runTest {
-        val setResults: List<FingerprintErrorDialogSetResultAction> =
-            mutableListOf<FingerprintErrorDialogSetResultAction>().also {
-                backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
-                    viewModel.setResultFlow.toList(it)
-                }
-            }
-
-        runCurrent()
-
-        // Default values
-        assertThat(setResults.size).isEqualTo(0)
-
-        viewModel.setResultAndFinish(FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH)
-        runCurrent()
-
-        // verify after emit
-        assertThat(setResults.size).isEqualTo(1)
-        assertThat(setResults[0]).isEqualTo(FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH)
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java
deleted file mode 100644
index 18bd61a..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java
+++ /dev/null
@@ -1,91 +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.biometrics2.ui.viewmodel;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollFindSensorViewModelTest {
-
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    private Application mApplication;
-    private FingerprintEnrollFindSensorViewModel mViewModel;
-
-    @Before
-    public void setUp() {
-        mApplication = ApplicationProvider.getApplicationContext();
-        mViewModel = new FingerprintEnrollFindSensorViewModel(mApplication, false);
-    }
-
-    @Test
-    public void testClickSkipButtonNotInSuw() {
-        mViewModel = new FingerprintEnrollFindSensorViewModel(mApplication, false);
-        mViewModel.onSkipButtonClick();
-        assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP);
-    }
-
-    @Test
-    public void testClickSkipButtonInSuw() {
-        mViewModel = new FingerprintEnrollFindSensorViewModel(mApplication, true);
-        mViewModel.onSkipButtonClick();
-        assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG);
-    }
-
-    @Test
-    public void testClickSkipDialogButton() {
-        mViewModel.onSkipDialogButtonClick();
-        assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP);
-    }
-
-    @Test
-    public void testClickStartDialogButton() {
-        mViewModel.onStartButtonClick();
-        assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START);
-    }
-
-    @Test
-    public void testClearActionLiveData() {
-        assertThat(mViewModel.getActionLiveData().getValue()).isNull();
-
-        mViewModel.onStartButtonClick();
-        assertThat(mViewModel.getActionLiveData().getValue()).isNotNull();
-
-        mViewModel.clearActionLiveData();
-        assertThat(mViewModel.getActionLiveData().getValue()).isNull();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java
deleted file mode 100644
index ac97e72..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java
+++ /dev/null
@@ -1,134 +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.biometrics2.ui.viewmodel;
-
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-import android.content.Intent;
-import android.hardware.fingerprint.FingerprintManager;
-
-import androidx.lifecycle.LiveData;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollFinishViewModelTest {
-
-    private static final int USER_ID = 334;
-    private static final int MAX_ENROLLABLE = 5;
-
-    @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    @Mock private FingerprintManager mFingerprintManager;
-
-    private Application mApplication;
-    private EnrollmentRequest mRequest;
-    private FingerprintEnrollFinishViewModel mViewModel;
-
-    @Before
-    public void setUp() {
-        mApplication = ApplicationProvider.getApplicationContext();
-        mRequest = new EnrollmentRequest(new Intent(), mApplication, true);
-        mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, MAX_ENROLLABLE));
-    }
-
-    @Test
-    public void testCanAssumeSfps() {
-        mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, MAX_ENROLLABLE));
-        assertThat(mViewModel.canAssumeSfps()).isFalse();
-
-        mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
-                newFingerprintRepository(mFingerprintManager, TYPE_REAR, MAX_ENROLLABLE));
-        assertThat(mViewModel.canAssumeSfps()).isFalse();
-
-        mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
-                newFingerprintRepository(mFingerprintManager, TYPE_POWER_BUTTON, MAX_ENROLLABLE));
-        assertThat(mViewModel.canAssumeSfps()).isTrue();
-    }
-
-    @Test
-    public void testIsAnotherFingerprintEnrollable() {
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, USER_ID, MAX_ENROLLABLE);
-        assertThat(mViewModel.isAnotherFingerprintEnrollable()).isFalse();
-
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, USER_ID, MAX_ENROLLABLE - 1);
-        assertThat(mViewModel.isAnotherFingerprintEnrollable()).isTrue();
-    }
-
-    @Test
-    public void testGetRequest() {
-        assertThat(mViewModel.getRequest()).isEqualTo(mRequest);
-    }
-
-    @Test
-    public void testOnAddButtonClick() {
-        final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
-
-        // Test init value
-        assertThat(actionLiveData.getValue()).isNull();
-
-        // Test onAddButtonClick()
-        mViewModel.onAddButtonClick();
-        assertThat(actionLiveData.getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK);
-
-        // Clear
-        mViewModel.clearActionLiveData();
-        assertThat(actionLiveData.getValue()).isNull();
-    }
-
-    @Test
-    public void testOnNextButtonClick() {
-        final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
-
-        // Test init value
-        assertThat(actionLiveData.getValue()).isNull();
-
-        // Test onNextButtonClick()
-        mViewModel.onNextButtonClick();
-        assertThat(actionLiveData.getValue()).isEqualTo(
-                FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK);
-
-        // Clear
-        mViewModel.clearActionLiveData();
-        assertThat(actionLiveData.getValue()).isNull();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt
deleted file mode 100644
index 7494aef..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt
+++ /dev/null
@@ -1,357 +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.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.content.res.Resources
-import android.hardware.fingerprint.FingerprintManager
-import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.CONTINUE_ENROLL
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.DONE_AND_FINISH
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.SKIP_OR_CANCEL
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwDeferredRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwPortalRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwSuggestedActionFlowRequest
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupSuwMaxFingerprintsEnrollable
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito
-import org.mockito.junit.MockitoJUnit
-
-@RunWith(AndroidJUnit4::class)
-class FingerprintEnrollIntroViewModelTest {
-
-    @get:Rule val mockito = MockitoJUnit.rule()
-
-    @Mock private lateinit var resources: Resources
-    @Mock private lateinit var fingerprintManager: FingerprintManager
-
-    private var application: Application = ApplicationProvider.getApplicationContext()
-
-    private fun newFingerprintEnrollIntroViewModel(
-        fingerprintRepository: FingerprintRepository,
-        enrollmentRequest: EnrollmentRequest
-    ) = FingerprintEnrollIntroViewModel(
-        application,
-        fingerprintRepository,
-        enrollmentRequest,
-        TEST_USER_ID
-    )
-
-    @Before
-    fun setUp() {
-        application = ApplicationProvider.getApplicationContext()
-    }
-
-    @Test
-    fun testPageStatusFlowDefaultAndUpdate() = runTest {
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 1),
-            newAllFalseRequest(application)
-        )
-
-        val statusList = listOfPageStatusFlow(viewModel)
-
-        runCurrent()
-
-        // assert default values
-        assertThat(statusList.size).isEqualTo(1)
-        assertThat(statusList[0].hasScrollToBottom()).isFalse()
-        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
-
-        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
-        viewModel.updateEnrollableStatus(backgroundScope)
-        runCurrent()
-
-        // assert new updated value
-        assertThat(statusList.size).isEqualTo(2)
-        assertThat(statusList[1].hasScrollToBottom()).isFalse()
-        assertThat(statusList[1].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
-    }
-
-    fun testOnStartToUpdateEnrollableStatusOk_isSuw() = runTest {
-        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
-        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            newIsSuwRequest(application)
-        )
-
-        val statusList = listOfPageStatusFlow(viewModel)
-
-        runCurrent()
-
-        assertThat(statusList.size).isEqualTo(1)
-        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusReachMax_isSuw() = runTest {
-        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
-        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            newIsSuwRequest(application)
-        )
-
-        val statusList = listOfPageStatusFlow(viewModel)
-
-        runCurrent()
-
-        assertThat(statusList.size).isEqualTo(1)
-        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusOk_isNotSuw() = runTest {
-        testOnStartToUpdateEnrollableStatusOk(newAllFalseRequest(application))
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusReachMax_isNotSuw() = runTest {
-        testOnStartToUpdateEnrollableStatusReachMax(newAllFalseRequest(application))
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusOk_isSuwDeferred() = runTest {
-        testOnStartToUpdateEnrollableStatusOk(newIsSuwDeferredRequest(application))
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusReachMax_isSuwDeferred() = runTest {
-        testOnStartToUpdateEnrollableStatusReachMax(newIsSuwDeferredRequest(application))
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusOk_isSuwPortal() = runTest {
-        testOnStartToUpdateEnrollableStatusOk(newIsSuwPortalRequest(application))
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusReachMax_isSuwPortal() = runTest {
-        testOnStartToUpdateEnrollableStatusReachMax(newIsSuwPortalRequest(application))
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusOk_isSuwSuggestedActionFlow() = runTest {
-        testOnStartToUpdateEnrollableStatusOk(newIsSuwSuggestedActionFlowRequest(application))
-    }
-
-    @Test
-    fun testOnStartToUpdateEnrollableStatusReachMax_isSuwSuggestedActionFlow() = runTest {
-        testOnStartToUpdateEnrollableStatusReachMax(
-            newIsSuwSuggestedActionFlowRequest(application)
-        )
-    }
-
-    private fun TestScope.testOnStartToUpdateEnrollableStatusOk(request: EnrollmentRequest) {
-        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            request
-        )
-
-        val statusList = listOfPageStatusFlow(viewModel)
-
-        runCurrent()
-
-        assertThat(statusList.size).isEqualTo(1)
-        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
-    }
-
-    private fun TestScope.testOnStartToUpdateEnrollableStatusReachMax(request: EnrollmentRequest) {
-        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 5)
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            request
-        )
-
-        val statusList = listOfPageStatusFlow(viewModel)
-
-        runCurrent()
-
-        assertThat(statusList.size).isEqualTo(1)
-        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
-    }
-
-    @Test
-    fun testIsParentalConsentRequired() {
-        // We shall not mock FingerprintRepository, but
-        // FingerprintRepository.isParentalConsentRequired() calls static method inside, we can't
-        // mock static method
-        val fingerprintRepository = Mockito.mock(
-            FingerprintRepository::class.java
-        )
-        val viewModel = FingerprintEnrollIntroViewModel(
-            application,
-            fingerprintRepository,
-            newAllFalseRequest(application),
-            TEST_USER_ID
-        )
-        Mockito.`when`(
-            fingerprintRepository.isParentalConsentRequired(application)
-        ).thenReturn(true)
-        assertThat(viewModel.isParentalConsentRequired).isEqualTo(true)
-        Mockito.`when`(
-            fingerprintRepository.isParentalConsentRequired(application)
-        ).thenReturn(false)
-        assertThat(viewModel.isParentalConsentRequired).isEqualTo(false)
-    }
-
-    @Test
-    fun testIsBiometricUnlockDisabledByAdmin() {
-        // We shall not mock FingerprintRepository, but
-        // FingerprintRepository.isDisabledByAdmin() calls static method inside, we can't mock
-        // static method
-        val fingerprintRepository = Mockito.mock(FingerprintRepository::class.java)
-        val viewModel = FingerprintEnrollIntroViewModel(
-            application,
-            fingerprintRepository,
-            newAllFalseRequest(application),
-            TEST_USER_ID
-        )
-        Mockito.`when`(
-            fingerprintRepository.isDisabledByAdmin(application, TEST_USER_ID)
-        ).thenReturn(true)
-        assertThat(viewModel.isBiometricUnlockDisabledByAdmin).isEqualTo(true)
-        Mockito.`when`(
-            fingerprintRepository.isDisabledByAdmin(application, TEST_USER_ID)
-        ).thenReturn(false)
-        assertThat(viewModel.isBiometricUnlockDisabledByAdmin).isEqualTo(false)
-    }
-
-    @Test
-    fun testSetHasScrolledToBottom() = runTest {
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            newAllFalseRequest(application)
-        )
-
-        val pageStatusList = listOfPageStatusFlow(viewModel)
-
-        viewModel.setHasScrolledToBottom(true, backgroundScope)
-        runCurrent()
-
-        assertThat(pageStatusList[pageStatusList.size-1].hasScrollToBottom()).isEqualTo(true)
-    }
-
-    @Test
-    fun testOnNextButtonClick_enrollNext() = runTest {
-        // Set latest status to FINGERPRINT_ENROLLABLE_OK
-        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
-        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            newIsSuwRequest(application)
-        )
-
-        val actions = listOfActionFlow(viewModel)
-
-        // Perform click on `next`
-        viewModel.onNextButtonClick(backgroundScope)
-        runCurrent()
-
-        assertThat(actions.size).isEqualTo(1)
-        assertThat(actions[0]).isEqualTo(CONTINUE_ENROLL)
-    }
-
-    @Test
-    fun testOnNextButtonClick_doneAndFinish() = runTest {
-        // Set latest status to FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
-        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            newIsSuwRequest(application)
-        )
-
-        val statusList = listOfPageStatusFlow(viewModel)
-        val actionList = listOfActionFlow(viewModel)
-
-        runCurrent()
-
-        assertThat(statusList.size).isEqualTo(1)
-        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
-
-        val actions = listOfActionFlow(viewModel)
-
-        // Perform click on `next`
-        viewModel.onNextButtonClick(backgroundScope)
-        runCurrent()
-
-        assertThat(actionList.size).isEqualTo(1)
-        assertThat(actionList[0]).isEqualTo(DONE_AND_FINISH)
-    }
-
-    @Test
-    fun testOnSkipOrCancelButtonClick() = runTest {
-        val viewModel = newFingerprintEnrollIntroViewModel(
-            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-            newAllFalseRequest(application)
-        )
-
-        val actions = listOfActionFlow(viewModel)
-
-        viewModel.onSkipOrCancelButtonClick(backgroundScope)
-        runCurrent()
-
-        assertThat(actions.size).isEqualTo(1)
-        assertThat(actions[0]).isEqualTo(SKIP_OR_CANCEL)
-    }
-
-    private fun TestScope.listOfActionFlow(
-        viewModel: FingerprintEnrollIntroViewModel
-    ): List<FingerprintEnrollIntroAction> =
-        mutableListOf<FingerprintEnrollIntroAction>().also {
-            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
-                viewModel.actionFlow.toList(it)
-            }
-        }
-
-    private fun TestScope.listOfPageStatusFlow(
-        viewModel: FingerprintEnrollIntroViewModel
-    ): List<FingerprintEnrollIntroStatus> =
-        mutableListOf<FingerprintEnrollIntroStatus>().also {
-            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
-                viewModel.pageStatusFlow.toList(it)
-            }
-        }
-
-    companion object {
-        private const val TEST_USER_ID = 33
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java
deleted file mode 100644
index 2c7afa6..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java
+++ /dev/null
@@ -1,421 +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.biometrics2.ui.viewmodel;
-
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR;
-import static android.hardware.fingerprint.FingerprintManager.EnrollReason;
-import static android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
-
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.only;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Application;
-import android.content.res.Resources;
-import android.os.CancellationSignal;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LiveData;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
-import com.android.settings.biometrics.fingerprint.MessageDisplayController;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollProgressViewModelTest {
-
-    private static final int TEST_USER_ID = 334;
-
-    @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    @Mock private Application mApplication;
-    @Mock private Resources mResources;
-    @Mock private FingerprintUpdater mFingerprintUpdater;
-
-    private FingerprintEnrollProgressViewModel mViewModel;
-    private final TestWrapper<CancellationSignal> mCancellationSignalWrapper = new TestWrapper<>();
-    private final TestWrapper<EnrollmentCallback> mCallbackWrapper = new TestWrapper<>();
-    private int mEnrollmentMessageDisplayControllerFlagResId;
-
-    @Before
-    public void setUp() {
-        mEnrollmentMessageDisplayControllerFlagResId = ApplicationProvider.getApplicationContext()
-                .getResources().getIdentifier("enrollment_message_display_controller_flag", "bool",
-                        SETTINGS_PACKAGE_NAME);
-
-        when(mApplication.getResources()).thenReturn(mResources);
-
-        // Not use MessageDisplayController by default
-        when(mResources.getBoolean(mEnrollmentMessageDisplayControllerFlagResId)).thenReturn(false);
-        mViewModel = new FingerprintEnrollProgressViewModel(mApplication, mFingerprintUpdater,
-                TEST_USER_ID);
-
-        mCancellationSignalWrapper.mValue = null;
-        mCallbackWrapper.mValue = null;
-        doAnswer(invocation -> {
-            mCancellationSignalWrapper.mValue = invocation.getArgument(1);
-            mCallbackWrapper.mValue = invocation.getArgument(3);
-            return null;
-        }).when(mFingerprintUpdater).enroll(any(byte[].class), any(CancellationSignal.class),
-                eq(TEST_USER_ID), any(EnrollmentCallback.class), anyInt(), any());
-    }
-
-    @Test
-    public void testStartFindSensor() {
-        @EnrollReason final int enrollReason = ENROLL_FIND_SENSOR;
-        final byte[] token = new byte[] { 1, 2, 3 };
-        mViewModel.setToken(token);
-
-        // Start enrollment
-        final Object ret = mViewModel.startEnrollment(enrollReason);
-
-        assertThat(ret).isNotNull();
-        verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
-                eq(TEST_USER_ID), any(EnrollmentCallback.class), eq(enrollReason), any());
-        assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isFalse();
-    }
-
-    @Test
-    public void testStartEnrolling() {
-        @EnrollReason final int enrollReason = ENROLL_ENROLL;
-        final byte[] token = new byte[] { 1, 2, 3 };
-        mViewModel.setToken(token);
-
-        // Start enrollment
-        final Object ret = mViewModel.startEnrollment(enrollReason);
-
-        assertThat(ret).isNotNull();
-        verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
-                eq(TEST_USER_ID), any(EnrollmentCallback.class), eq(enrollReason), any());
-        assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isFalse();
-    }
-
-    @Test
-    public void testStartEnrollingWithMessageDisplayController() {
-        // Enable MessageDisplayController and mock handler for it
-        when(mResources.getBoolean(mEnrollmentMessageDisplayControllerFlagResId)).thenReturn(true);
-        when(mApplication.getMainThreadHandler()).thenReturn(new TestHandler());
-
-        @EnrollReason final int enrollReason = ENROLL_ENROLL;
-        final byte[] token = new byte[] { 1, 2, 3 };
-        mViewModel.setToken(token);
-
-        // Start enrollment
-        final Object ret = mViewModel.startEnrollment(enrollReason);
-
-        assertThat(ret).isNotNull();
-        verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
-                eq(TEST_USER_ID), any(MessageDisplayController.class), eq(enrollReason), any());
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isTrue();
-        final EnrollmentCallback callback1 = mCallbackWrapper.mValue;
-
-        // Cancel and start again
-        mViewModel.cancelEnrollment();
-        mViewModel.startEnrollment(enrollReason);
-
-        // Shall not use the same MessageDisplayController
-        verify(mFingerprintUpdater, times(2)).enroll(eq(token), any(CancellationSignal.class),
-                eq(TEST_USER_ID), any(MessageDisplayController.class), eq(enrollReason), any());
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-        assertThat(callback1).isNotEqualTo(mCallbackWrapper.mValue);
-    }
-
-    @Test
-    public void testStartEnrollmentFailBecauseOfNoToken() {
-        // Start enrollment
-        final Object ret = mViewModel.startEnrollment(ENROLL_FIND_SENSOR);
-
-        assertThat(ret).isNull();
-        verify(mFingerprintUpdater, never()).enroll(any(byte[].class),
-                any(CancellationSignal.class), anyInt(), any(EnrollmentCallback.class), anyInt(),
-                any());
-    }
-
-    @Test
-    public void testCancelEnrollment() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCancellationSignalWrapper.mValue).isNotNull();
-
-        // Cancel enrollment
-        mViewModel.cancelEnrollment();
-
-        assertThat(mCancellationSignalWrapper.mValue.isCanceled()).isTrue();
-    }
-
-    @Test
-    public void testProgressUpdate() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        // Test default value
-        final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
-        EnrollmentProgress progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(-1);
-        assertThat(progress.getRemaining()).isEqualTo(0);
-
-        // Update first progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(25);
-        progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(25);
-
-        // Update second progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(20);
-        progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(20);
-
-        // Update latest progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(0);
-        progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(0);
-    }
-
-    @Test
-    public void testProgressUpdateClearHelpMessage() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-        final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
-        final LiveData<EnrollmentStatusMessage> helpMsgLiveData =
-                mViewModel.getHelpMessageLiveData();
-
-        // Update first progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(25);
-        EnrollmentProgress progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(25);
-
-        // Update help message
-        final int testHelpMsgId = 3;
-        final String testHelpString = "Test Help String";
-        mCallbackWrapper.mValue.onEnrollmentHelp(testHelpMsgId, testHelpString);
-        final EnrollmentStatusMessage helpMsg = helpMsgLiveData.getValue();
-        assertThat(helpMsg).isNotNull();
-        assertThat(helpMsg.getMsgId()).isEqualTo(testHelpMsgId);
-        assertThat(helpMsg.getStr().toString()).isEqualTo(testHelpString);
-
-        // Update second progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(20);
-        progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(20);
-
-        // Help message shall be set to null
-        assertThat(helpMsgLiveData.getValue()).isNull();
-    }
-
-    @Test
-    public void testProgressUpdateWithMessageDisplayController() {
-        // Enable MessageDisplayController and mock handler for it
-        when(mResources.getBoolean(mEnrollmentMessageDisplayControllerFlagResId)).thenReturn(true);
-        when(mApplication.getMainThreadHandler()).thenReturn(new TestHandler());
-
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-
-        // Start enrollment
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        // Test default value
-        final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
-        EnrollmentProgress progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(-1);
-        assertThat(progress.getRemaining()).isEqualTo(0);
-
-        // Update first progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(25);
-        progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(25);
-
-        // Update second progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(20);
-        progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(20);
-
-        // Update latest progress
-        mCallbackWrapper.mValue.onEnrollmentProgress(0);
-        progress = progressLiveData.getValue();
-        assertThat(progress).isNotNull();
-        assertThat(progress.getSteps()).isEqualTo(25);
-        assertThat(progress.getRemaining()).isEqualTo(0);
-    }
-
-    @Test
-    public void testGetErrorMessageLiveData() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        // Check default value
-        final LiveData<EnrollmentStatusMessage> liveData = mViewModel.getErrorMessageLiveData();
-        assertThat(liveData.getValue()).isNull();
-
-        // Notify error message
-        final int errMsgId = 3;
-        final String errMsg = "test error message";
-        mCallbackWrapper.mValue.onEnrollmentError(errMsgId, errMsg);
-        final EnrollmentStatusMessage value = liveData.getValue();
-        assertThat(value).isNotNull();
-        assertThat(value.getMsgId()).isEqualTo(errMsgId);
-        assertThat(value.getStr().toString()).isEqualTo(errMsg);
-    }
-
-    @Test
-    public void testGetHelpMessageLiveData() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        // Check default value
-        final LiveData<EnrollmentStatusMessage> liveData = mViewModel.getHelpMessageLiveData();
-        assertThat(liveData.getValue()).isNull();
-
-        // Notify help message
-        final int errMsgId = 3;
-        final String errMsg = "test error message";
-        mCallbackWrapper.mValue.onEnrollmentHelp(errMsgId, errMsg);
-        final EnrollmentStatusMessage value = liveData.getValue();
-        assertThat(value).isNotNull();
-        assertThat(value.getMsgId()).isEqualTo(errMsgId);
-        assertThat(value.getStr().toString()).isEqualTo(errMsg);
-    }
-
-    @Test
-    public void testGetAcquireLiveData() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        // Check default value
-        final LiveData<Boolean> liveData = mViewModel.getAcquireLiveData();
-        assertThat(liveData.getValue()).isNull();
-
-        // Notify acquire message
-        mCallbackWrapper.mValue.onAcquired(true);
-        assertThat(liveData.getValue()).isTrue();
-    }
-
-    @Test
-    public void testGetPointerDownLiveData() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        // Check default value
-        final LiveData<Integer> liveData = mViewModel.getPointerDownLiveData();
-        assertThat(liveData.getValue()).isNull();
-
-        // Notify acquire message
-        final int value = 33;
-        mCallbackWrapper.mValue.onUdfpsPointerDown(value);
-        assertThat(liveData.getValue()).isEqualTo(value);
-    }
-
-    @Test
-    public void testGetPointerUpLiveData() {
-        // Start enrollment
-        mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isNotNull();
-        assertThat(mCallbackWrapper.mValue).isNotNull();
-
-        // Check default value
-        final LiveData<Integer> liveData = mViewModel.getPointerUpLiveData();
-        assertThat(liveData.getValue()).isNull();
-
-        // Notify acquire message
-        final int value = 44;
-        mCallbackWrapper.mValue.onUdfpsPointerUp(value);
-        assertThat(liveData.getValue()).isEqualTo(value);
-    }
-
-    private static class TestWrapper<T> {
-        T mValue;
-    }
-
-    private static class TestHandler extends Handler {
-
-        TestHandler() {
-            super(Looper.getMainLooper());
-        }
-
-        @Override
-        public boolean sendMessageAtTime(@NonNull Message msg, long uptimeMillis) {
-            msg.getCallback().run();
-            return true;
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt
deleted file mode 100644
index 6d04f35..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt
+++ /dev/null
@@ -1,322 +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.biometrics2.ui.viewmodel
-
-import android.app.Application
-import android.content.Intent
-import android.hardware.fingerprint.FingerprintManager
-import android.hardware.fingerprint.FingerprintSensorProperties
-import android.os.Bundle
-import androidx.activity.result.ActivityResult
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.data.repository.FingerprintRepository
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest
-import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwRequest
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository
-import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.flow.toList
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.UnconfinedTestDispatcher
-import kotlinx.coroutines.test.runCurrent
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
-
-@RunWith(AndroidJUnit4::class)
-class FingerprintEnrollmentViewModelTest {
-
-    @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
-
-    private val application: Application
-        get() = ApplicationProvider.getApplicationContext()
-
-    @Mock
-    private lateinit var fingerprintManager: FingerprintManager
-
-    private lateinit var fingerprintRepository: FingerprintRepository
-    private lateinit var viewModel: FingerprintEnrollmentViewModel
-
-    @Before
-    fun setUp() {
-        fingerprintRepository = newFingerprintRepository(
-            fingerprintManager,
-            FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
-            5
-        )
-        viewModel = FingerprintEnrollmentViewModel(
-            application,
-            fingerprintRepository,
-            newAllFalseRequest(application)
-        )
-    }
-
-    @Test
-    fun testGetRequest() {
-        assertThat(viewModel.request).isNotNull()
-    }
-
-    @Test
-    fun testIsWaitingActivityResultDefaultFalse() {
-        assertThat(viewModel.isWaitingActivityResult.value).isFalse()
-    }
-
-
-    @Test
-    fun testOverrideActivityResult_shallKeepNullIntent_woChallengeExtra() {
-        val retResult = viewModel.getOverrideActivityResult(
-            ActivityResult(22, null), null
-        )
-        assertThat(retResult).isNotNull()
-        assertThat(retResult.data).isNull()
-    }
-
-    @Test
-    fun testOverrideActivityResult_shallKeepNullIntent_noIntent_woChallengeExtra() {
-        val intent = Intent()
-        val retResult = viewModel.getOverrideActivityResult(
-            ActivityResult(33, intent), null
-        )
-        assertThat(retResult).isNotNull()
-        assertThat(retResult.data).isEqualTo(intent)
-    }
-
-    @Test
-    fun testOverrideActivityResult_shallKeepNull_woAdded_woIntent_withChallenge() {
-        val extra = Bundle()
-        extra.putString("test1", "test123")
-
-        val retResult = viewModel.getOverrideActivityResult(
-            ActivityResult(33, null), extra
-        )
-
-        assertThat(retResult).isNotNull()
-        assertThat(retResult.data).isNull()
-    }
-
-    @Test
-    fun testOverrideActivityResult_shallCreateNew_woIntent_withChallenge() {
-        val key1 = "test1"
-        val key2 = "test2"
-        val extra = Bundle().apply {
-            putString(key1, "test123")
-            putInt(key2, 9999)
-        }
-
-        viewModel.isNewFingerprintAdded = true
-
-        val retResult = viewModel.getOverrideActivityResult(
-            ActivityResult(33, null), extra
-        )
-        assertThat(retResult).isNotNull()
-
-        val retIntent = retResult.data
-        assertThat(retIntent).isNotNull()
-
-        val retExtra = retIntent!!.extras
-        assertThat(retExtra).isNotNull()
-        assertThat(retExtra!!.size).isEqualTo(extra.size)
-        assertThat(retExtra.getString(key1)).isEqualTo(extra.getString(key1))
-        assertThat(retExtra.getInt(key2)).isEqualTo(extra.getInt(key2))
-    }
-
-    @Test
-    fun testOverrideActivityResult_shallNotMerge_nonAdded_woIntent_withChallenge() {
-        val extra = Bundle().apply {
-            putString("test2", "test123")
-        }
-
-        val key2 = "test2"
-        val intent = Intent().apply {
-            putExtra(key2, 3456L)
-        }
-
-        val retResult = viewModel.getOverrideActivityResult(ActivityResult(33, intent), extra)
-
-        assertThat(retResult).isNotNull()
-
-        val retIntent = retResult.data
-        assertThat(retIntent).isNotNull()
-
-        val retExtra = retIntent!!.extras
-        assertThat(retExtra).isNotNull()
-        assertThat(retExtra!!.size).isEqualTo(intent.extras!!.size)
-        assertThat(retExtra.getString(key2)).isEqualTo(intent.extras!!.getString(key2))
-    }
-
-    @Test
-    fun testOverrideActivityResult_shallMerge_added_woIntent_withChallenge() {
-        val key1 = "test1"
-        val key2 = "test2"
-        val extra = Bundle().apply {
-            putString(key1, "test123")
-            putInt(key2, 9999)
-        }
-
-        val key3 = "test3"
-        val intent = Intent().apply {
-            putExtra(key3, 3456L)
-        }
-
-        viewModel.isNewFingerprintAdded = true
-
-        val retResult = viewModel.getOverrideActivityResult(ActivityResult(33, intent), extra)
-        assertThat(retResult).isNotNull()
-
-        val retIntent = retResult.data
-        assertThat(retIntent).isNotNull()
-
-        val retExtra = retIntent!!.extras
-        assertThat(retExtra).isNotNull()
-        assertThat(retExtra!!.size).isEqualTo(extra.size + intent.extras!!.size)
-        assertThat(retExtra.getString(key1)).isEqualTo(extra.getString(key1))
-        assertThat(retExtra.getInt(key2)).isEqualTo(extra.getInt(key2))
-        assertThat(retExtra.getLong(key3)).isEqualTo(intent.extras!!.getLong(key3))
-    }
-
-    @Test
-    fun testIsMaxEnrolledReached() {
-        val uid = 100
-        fingerprintRepository = newFingerprintRepository(
-            fingerprintManager,
-            FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
-            3
-        )
-        viewModel = FingerprintEnrollmentViewModel(
-            application,
-            fingerprintRepository,
-            newAllFalseRequest(application)
-        )
-
-        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 0)
-        assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
-
-        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 1)
-        assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
-
-        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 2)
-        assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
-
-        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 3)
-        assertThat(viewModel.isMaxEnrolledReached(uid)).isTrue()
-
-        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 4)
-        assertThat(viewModel.isMaxEnrolledReached(uid)).isTrue()
-    }
-
-    @Test
-    fun testSetResultFlow_defaultEmpty() = runTest {
-        val activityResults = listOfSetResultFlow()
-
-        runCurrent()
-
-        assertThat(activityResults.size).isEqualTo(0)
-    }
-
-    @Test
-    fun testCheckFinishActivityDuringOnPause_doNothingIfIsSuw() = runTest {
-        viewModel = FingerprintEnrollmentViewModel(
-            application,
-            fingerprintRepository,
-            newIsSuwRequest(application)
-        )
-
-        val activityResults = listOfSetResultFlow()
-
-        viewModel.checkFinishActivityDuringOnPause(
-            isActivityFinishing = false,
-            isChangingConfigurations = false,
-            scope = this
-        )
-        runCurrent()
-
-        assertThat(activityResults.size).isEqualTo(0)
-    }
-
-    @Test
-    fun testCheckFinishActivityDuringOnPause_doNothingIfIsWaitingActivity() = runTest {
-        val activityResults = listOfSetResultFlow()
-
-        viewModel.isWaitingActivityResult.value = true
-        viewModel.checkFinishActivityDuringOnPause(
-            isActivityFinishing = false,
-            isChangingConfigurations = false,
-            scope = this
-        )
-        runCurrent()
-
-        assertThat(activityResults.size).isEqualTo(0)
-    }
-
-    @Test
-    fun testCheckFinishActivityDuringOnPause_doNothingIfIsActivityFinishing() = runTest {
-        val activityResults = listOfSetResultFlow()
-
-        viewModel.checkFinishActivityDuringOnPause(
-            isActivityFinishing = true,
-            isChangingConfigurations = false,
-            scope = this
-        )
-        runCurrent()
-
-        assertThat(activityResults.size).isEqualTo(0)
-    }
-
-    @Test
-    fun testCheckFinishActivityDuringOnPause_doNothingIfIsChangingConfigurations() = runTest {
-        val activityResults = listOfSetResultFlow()
-
-        viewModel.checkFinishActivityDuringOnPause(
-            isActivityFinishing = false,
-            isChangingConfigurations = true,
-            scope = this
-        )
-        runCurrent()
-
-        assertThat(activityResults.size).isEqualTo(0)
-    }
-
-    @Test
-    fun testCheckFinishActivityDuringOnPause_defaultFinishSelf() = runTest {
-        val activityResults = listOfSetResultFlow()
-
-        viewModel.checkFinishActivityDuringOnPause(
-            isActivityFinishing = false,
-            isChangingConfigurations = false,
-            scope = backgroundScope
-        )
-        runCurrent()
-
-        assertThat(activityResults.size).isEqualTo(1)
-        assertThat(activityResults[0].resultCode).isEqualTo(BiometricEnrollBase.RESULT_TIMEOUT)
-        assertThat(activityResults[0].data).isEqualTo(null)
-    }
-
-    private fun TestScope.listOfSetResultFlow(): List<ActivityResult> =
-        mutableListOf<ActivityResult>().also {
-            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
-                viewModel.setResultFlow.toList(it)
-            }
-        }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt b/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt
deleted file mode 100644
index 755f6d0..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt
+++ /dev/null
@@ -1,110 +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.biometrics2.utils
-
-import android.content.Context
-import android.content.Intent
-import android.text.TextUtils
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest
-import com.google.android.setupcompat.util.WizardManagerHelper
-
-object EnrollmentRequestUtils {
-    @JvmStatic
-    fun newAllFalseRequest(context: Context): EnrollmentRequest {
-        return newRequest(
-            context = context,
-            isSuw = false,
-            isSuwDeferred = false,
-            isSuwPortal = false,
-            isSuwSuggestedActionFlow = false,
-            isSuwFirstRun = false,
-            isFromSettingsSummery = false)
-    }
-
-    @JvmStatic
-    fun newIsSuwRequest(context: Context): EnrollmentRequest {
-        return newRequest(
-            context = context,
-            isSuw = true,
-            isSuwDeferred = false,
-            isSuwPortal = false,
-            isSuwSuggestedActionFlow = false,
-            isSuwFirstRun = false,
-            isFromSettingsSummery = false)
-    }
-
-    @JvmStatic
-    fun newIsSuwDeferredRequest(context: Context): EnrollmentRequest {
-        return newRequest(
-            context = context,
-            isSuw = true,
-            isSuwDeferred = true,
-            isSuwPortal = false,
-            isSuwSuggestedActionFlow = false,
-            isSuwFirstRun = false,
-            isFromSettingsSummery = false, null)
-    }
-
-    @JvmStatic
-    fun newIsSuwPortalRequest(context: Context): EnrollmentRequest {
-        return newRequest(
-            context = context,
-            isSuw = true,
-            isSuwDeferred = false,
-            isSuwPortal = true,
-            isSuwSuggestedActionFlow = false,
-            isSuwFirstRun = false,
-            isFromSettingsSummery = false)
-    }
-
-    @JvmStatic
-    fun newIsSuwSuggestedActionFlowRequest(
-        context: Context
-    ): EnrollmentRequest {
-        return newRequest(
-            context = context,
-            isSuw = true,
-            isSuwDeferred = false,
-            isSuwPortal = false,
-            isSuwSuggestedActionFlow = true,
-            isSuwFirstRun = false,
-            isFromSettingsSummery = false)
-    }
-
-    fun newRequest(
-        context: Context,
-        isSuw: Boolean,
-        isSuwDeferred: Boolean,
-        isSuwPortal: Boolean,
-        isSuwSuggestedActionFlow: Boolean,
-        isSuwFirstRun: Boolean,
-        isFromSettingsSummery: Boolean,
-        theme: String? = null
-    ): EnrollmentRequest {
-        val i = Intent()
-        i.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, isSuw)
-        i.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, isSuwDeferred)
-        i.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, isSuwPortal)
-        i.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, isSuwSuggestedActionFlow)
-        i.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, isSuwFirstRun)
-        i.putExtra(BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY, isFromSettingsSummery)
-        if (!TextUtils.isEmpty(theme)) {
-            i.putExtra(WizardManagerHelper.EXTRA_THEME, theme)
-        }
-        return EnrollmentRequest(i, context, true)
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/utils/FingerprintRepositoryUtils.java b/tests/unit/src/com/android/settings/biometrics2/utils/FingerprintRepositoryUtils.java
deleted file mode 100644
index fcf926e..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/utils/FingerprintRepositoryUtils.java
+++ /dev/null
@@ -1,81 +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.biometrics2.utils;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.hardware.biometrics.SensorProperties;
-import android.hardware.fingerprint.Fingerprint;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorProperties;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-
-import androidx.annotation.NonNull;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-
-import java.util.ArrayList;
-
-public class FingerprintRepositoryUtils {
-
-    public static void setupSuwMaxFingerprintsEnrollable(
-            @NonNull Context context,
-            @NonNull Resources mockedResources,
-            int numOfFp) {
-        final int resId = context.getResources().getIdentifier("suw_max_fingerprints_enrollable",
-                "integer", context.getPackageName());
-        when(mockedResources.getInteger(resId)).thenReturn(numOfFp);
-    }
-
-    public static FingerprintRepository newFingerprintRepository(
-            @NonNull FingerprintManager mockedFingerprintManager,
-            @FingerprintSensorProperties.SensorType int sensorType,
-            int maxEnrollmentsPerUser) {
-
-        final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
-        props.add(new FingerprintSensorPropertiesInternal(
-                0 /* sensorId */,
-                SensorProperties.STRENGTH_STRONG,
-                maxEnrollmentsPerUser,
-                new ArrayList<>() /* componentInfo */,
-                sensorType,
-                true /* resetLockoutRequiresHardwareAuthToken */));
-        doAnswer(invocation -> {
-            final IFingerprintAuthenticatorsRegisteredCallback callback =
-                    invocation.getArgument(0);
-            callback.onAllAuthenticatorsRegistered(props);
-            return null;
-        }).when(mockedFingerprintManager).addAuthenticatorsRegisteredCallback(any());
-        return new FingerprintRepository(mockedFingerprintManager);
-    }
-
-    public static void setupFingerprintEnrolledFingerprints(
-            @NonNull FingerprintManager mockedFingerprintManager,
-            int userId,
-            int enrolledFingerprints) {
-        final ArrayList<Fingerprint> ret = new ArrayList<>();
-        for (int i = 0; i < enrolledFingerprints; ++i) {
-            ret.add(new Fingerprint("name", 0, 0, 0L));
-        }
-        when(mockedFingerprintManager.getEnrolledFingerprints(userId)).thenReturn(ret);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragmentTest.java b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragmentTest.java
new file mode 100644
index 0000000..019ade7
--- /dev/null
+++ b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayPreferenceFragmentTest.java
@@ -0,0 +1,409 @@
+/*
+ * 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.display;
+
+
+import static android.view.Display.INVALID_DISPLAY;
+
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.PREVIOUSLY_SHOWN_LIST_KEY;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.DISPLAYS_LIST_PREFERENCE_KEY;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_CHANGE_RESOLUTION_FOOTER_RESOURCE;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_NOT_FOUND_FOOTER_RESOURCE;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_RESOLUTION_PREFERENCE_KEY;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_RESOLUTION_TITLE_RESOURCE;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_ROTATION_KEY;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_ROTATION_TITLE_RESOURCE;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_SETTINGS_RESOURCE;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_USE_PREFERENCE_KEY;
+import static com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.EXTERNAL_DISPLAY_USE_TITLE_RESOURCE;
+import static com.android.settingslib.widget.FooterPreference.KEY_FOOTER;
+
+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.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.Display;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.connecteddevice.display.ExternalDisplayPreferenceFragment.DisplayPreference;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+/** Unit tests for {@link ExternalDisplayPreferenceFragment}.  */
+@RunWith(AndroidJUnit4.class)
+public class ExternalDisplayPreferenceFragmentTest extends ExternalDisplayTestBase {
+    @Nullable
+    private ExternalDisplayPreferenceFragment mFragment;
+    private int mPreferenceIdFromResource;
+    private int mDisplayIdArg = INVALID_DISPLAY;
+    private int mResolutionSelectorDisplayId = INVALID_DISPLAY;
+    @Mock
+    private MetricsLogger mMockedMetricsLogger;
+
+    @Test
+    @UiThreadTest
+    public void testCreateAndStart() {
+        initFragment();
+        assertThat(mPreferenceIdFromResource).isEqualTo(EXTERNAL_DISPLAY_SETTINGS_RESOURCE);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testShowDisplayList() {
+        var fragment = initFragment();
+        var outState = new Bundle();
+        fragment.onSaveInstanceStateCallback(outState);
+        assertThat(outState.getBoolean(PREVIOUSLY_SHOWN_LIST_KEY)).isFalse();
+        assertThat(mHandler.getPendingMessages().size()).isEqualTo(1);
+        PreferenceCategory pref = mPreferenceScreen.findPreference(DISPLAYS_LIST_PREFERENCE_KEY);
+        assertThat(pref).isNull();
+        verify(mMockedInjector, never()).getAllDisplays();
+        mHandler.flush();
+        assertThat(mHandler.getPendingMessages().size()).isEqualTo(0);
+        verify(mMockedInjector).getAllDisplays();
+        pref = mPreferenceScreen.findPreference(DISPLAYS_LIST_PREFERENCE_KEY);
+        assertThat(pref).isNotNull();
+        assertThat(pref.getPreferenceCount()).isEqualTo(2);
+        fragment.onSaveInstanceStateCallback(outState);
+        assertThat(outState.getBoolean(PREVIOUSLY_SHOWN_LIST_KEY)).isTrue();
+    }
+
+    @Test
+    @UiThreadTest
+    public void testLaunchDisplaySettingFromList() {
+        initFragment();
+        mHandler.flush();
+        PreferenceCategory pref = mPreferenceScreen.findPreference(DISPLAYS_LIST_PREFERENCE_KEY);
+        assertThat(pref).isNotNull();
+        DisplayPreference display1Pref = (DisplayPreference) pref.getPreference(0);
+        DisplayPreference display2Pref = (DisplayPreference) pref.getPreference(1);
+        assertThat(display1Pref.getKey()).isEqualTo("display_id_" + 1);
+        assertThat("" + display1Pref.getTitle()).isEqualTo("HDMI");
+        assertThat("" + display1Pref.getSummary()).isEqualTo("1920 x 1080");
+        display1Pref.onPreferenceClick(display1Pref);
+        assertThat(mDisplayIdArg).isEqualTo(1);
+        verify(mMockedMetricsLogger).writePreferenceClickMetric(display1Pref);
+        assertThat(display2Pref.getKey()).isEqualTo("display_id_" + 2);
+        assertThat("" + display2Pref.getTitle()).isEqualTo("Overlay #1");
+        assertThat("" + display2Pref.getSummary()).isEqualTo("1240 x 780");
+        display2Pref.onPreferenceClick(display2Pref);
+        assertThat(mDisplayIdArg).isEqualTo(2);
+        verify(mMockedMetricsLogger).writePreferenceClickMetric(display2Pref);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testShowDisplayListForOnlyOneDisplay_PreviouslyShownList() {
+        var fragment = initFragment();
+        // Previously shown list of displays
+        fragment.onActivityCreatedCallback(createBundleForPreviouslyShownList());
+        // Only one display available
+        doReturn(new Display[] {mDisplays[1]}).when(mMockedInjector).getAllDisplays();
+        mHandler.flush();
+        PreferenceCategory pref = mPreferenceScreen.findPreference(DISPLAYS_LIST_PREFERENCE_KEY);
+        assertThat(pref).isNotNull();
+        assertThat(pref.getPreferenceCount()).isEqualTo(1);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testShowEnabledDisplay_OnlyOneDisplayAvailable() {
+        doReturn(true).when(mMockedInjector).isDisplayEnabled(any());
+        // Only one display available
+        doReturn(new Display[] {mDisplays[1]}).when(mMockedInjector).getAllDisplays();
+        // Init
+        initFragment();
+        mHandler.flush();
+        PreferenceCategory list = mPreferenceScreen.findPreference(DISPLAYS_LIST_PREFERENCE_KEY);
+        assertThat(list).isNull();
+        var pref = mPreferenceScreen.findPreference(EXTERNAL_DISPLAY_RESOLUTION_PREFERENCE_KEY);
+        assertThat(pref).isNotNull();
+        pref = mPreferenceScreen.findPreference(EXTERNAL_DISPLAY_ROTATION_KEY);
+        assertThat(pref).isNotNull();
+        var footerPref = (FooterPreference) mPreferenceScreen.findPreference(KEY_FOOTER);
+        assertThat(footerPref).isNotNull();
+        verify(footerPref).setTitle(EXTERNAL_DISPLAY_CHANGE_RESOLUTION_FOOTER_RESOURCE);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testShowOneEnabledDisplay_FewAvailable() {
+        mDisplayIdArg = 1;
+        doReturn(true).when(mMockedInjector).isDisplayEnabled(any());
+        initFragment();
+        verify(mMockedInjector, never()).getDisplay(anyInt());
+        mHandler.flush();
+        verify(mMockedInjector).getDisplay(mDisplayIdArg);
+        var pref = mPreferenceScreen.findPreference(EXTERNAL_DISPLAY_RESOLUTION_PREFERENCE_KEY);
+        assertThat(pref).isNotNull();
+        pref = mPreferenceScreen.findPreference(EXTERNAL_DISPLAY_ROTATION_KEY);
+        assertThat(pref).isNotNull();
+        var footerPref = (FooterPreference) mPreferenceScreen.findPreference(KEY_FOOTER);
+        assertThat(footerPref).isNotNull();
+        verify(footerPref).setTitle(EXTERNAL_DISPLAY_CHANGE_RESOLUTION_FOOTER_RESOURCE);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testShowDisabledDisplay() {
+        mDisplayIdArg = 1;
+        initFragment();
+        verify(mMockedInjector, never()).getDisplay(anyInt());
+        mHandler.flush();
+        verify(mMockedInjector).getDisplay(mDisplayIdArg);
+        var mainPref = (MainSwitchPreference) mPreferenceScreen.findPreference(
+                EXTERNAL_DISPLAY_USE_PREFERENCE_KEY);
+        assertThat(mainPref).isNotNull();
+        assertThat("" + mainPref.getTitle()).isEqualTo(
+                getText(EXTERNAL_DISPLAY_USE_TITLE_RESOURCE));
+        assertThat(mainPref.isChecked()).isFalse();
+        assertThat(mainPref.isEnabled()).isTrue();
+        assertThat(mainPref.getOnPreferenceChangeListener()).isNotNull();
+        var pref = mPreferenceScreen.findPreference(EXTERNAL_DISPLAY_RESOLUTION_PREFERENCE_KEY);
+        assertThat(pref).isNull();
+        pref = mPreferenceScreen.findPreference(EXTERNAL_DISPLAY_ROTATION_KEY);
+        assertThat(pref).isNull();
+        var footerPref = (FooterPreference) mPreferenceScreen.findPreference(KEY_FOOTER);
+        assertThat(footerPref).isNull();
+    }
+
+    @Test
+    @UiThreadTest
+    public void testNoDisplays() {
+        doReturn(new Display[0]).when(mMockedInjector).getAllDisplays();
+        initFragment();
+        mHandler.flush();
+        var mainPref = (MainSwitchPreference) mPreferenceScreen.findPreference(
+                EXTERNAL_DISPLAY_USE_PREFERENCE_KEY);
+        assertThat(mainPref).isNotNull();
+        assertThat("" + mainPref.getTitle()).isEqualTo(
+                getText(EXTERNAL_DISPLAY_USE_TITLE_RESOURCE));
+        assertThat(mainPref.isChecked()).isFalse();
+        assertThat(mainPref.isEnabled()).isFalse();
+        assertThat(mainPref.getOnPreferenceChangeListener()).isNull();
+        var footerPref = (FooterPreference) mPreferenceScreen.findPreference(KEY_FOOTER);
+        assertThat(footerPref).isNotNull();
+        verify(footerPref).setTitle(EXTERNAL_DISPLAY_NOT_FOUND_FOOTER_RESOURCE);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testDisplayRotationPreference() {
+        mDisplayIdArg = 1;
+        doReturn(true).when(mMockedInjector).isDisplayEnabled(any());
+        var fragment = initFragment();
+        mHandler.flush();
+        var pref = fragment.getRotationPreference(mContext);
+        assertThat(pref.getKey()).isEqualTo(EXTERNAL_DISPLAY_ROTATION_KEY);
+        assertThat("" + pref.getTitle()).isEqualTo(
+                getText(EXTERNAL_DISPLAY_ROTATION_TITLE_RESOURCE));
+        assertThat(pref.getEntries().length).isEqualTo(4);
+        assertThat(pref.getEntryValues().length).isEqualTo(4);
+        assertThat(pref.getEntryValues()[0].toString()).isEqualTo("0");
+        assertThat(pref.getEntryValues()[1].toString()).isEqualTo("1");
+        assertThat(pref.getEntryValues()[2].toString()).isEqualTo("2");
+        assertThat(pref.getEntryValues()[3].toString()).isEqualTo("3");
+        assertThat(pref.getEntries()[0].length()).isGreaterThan(0);
+        assertThat(pref.getEntries()[1].length()).isGreaterThan(0);
+        assertThat("" + pref.getSummary()).isEqualTo(pref.getEntries()[0].toString());
+        assertThat(pref.getValue()).isEqualTo("0");
+        assertThat(pref.getOnPreferenceChangeListener()).isNotNull();
+        assertThat(pref.isEnabled()).isTrue();
+        var rotation = 1;
+        doReturn(true).when(mMockedInjector).freezeDisplayRotation(mDisplayIdArg, rotation);
+        assertThat(pref.getOnPreferenceChangeListener().onPreferenceChange(pref, rotation + ""))
+                .isTrue();
+        verify(mMockedInjector).freezeDisplayRotation(mDisplayIdArg, rotation);
+        assertThat(pref.getValue()).isEqualTo(rotation + "");
+        verify(mMockedMetricsLogger).writePreferenceClickMetric(pref);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testDisplayResolutionPreference() {
+        mDisplayIdArg = 1;
+        doReturn(true).when(mMockedInjector).isDisplayEnabled(any());
+        var fragment = initFragment();
+        mHandler.flush();
+        var pref = fragment.getResolutionPreference(mContext);
+        assertThat(pref.getKey()).isEqualTo(EXTERNAL_DISPLAY_RESOLUTION_PREFERENCE_KEY);
+        assertThat("" + pref.getTitle()).isEqualTo(
+                getText(EXTERNAL_DISPLAY_RESOLUTION_TITLE_RESOURCE));
+        assertThat("" + pref.getSummary()).isEqualTo("1920 x 1080");
+        assertThat(pref.isEnabled()).isTrue();
+        assertThat(pref.getOnPreferenceClickListener()).isNotNull();
+        assertThat(pref.getOnPreferenceClickListener().onPreferenceClick(pref)).isTrue();
+        assertThat(mResolutionSelectorDisplayId).isEqualTo(mDisplayIdArg);
+        verify(mMockedMetricsLogger).writePreferenceClickMetric(pref);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testUseDisplayPreference_EnabledDisplay() {
+        mDisplayIdArg = 1;
+        doReturn(true).when(mMockedInjector).isDisplayEnabled(any());
+        doReturn(true).when(mMockedInjector).enableConnectedDisplay(mDisplayIdArg);
+        doReturn(true).when(mMockedInjector).disableConnectedDisplay(mDisplayIdArg);
+        var fragment = initFragment();
+        mHandler.flush();
+        var pref = fragment.getUseDisplayPreference(mContext);
+        assertThat(pref.getKey()).isEqualTo(EXTERNAL_DISPLAY_USE_PREFERENCE_KEY);
+        assertThat("" + pref.getTitle()).isEqualTo(getText(EXTERNAL_DISPLAY_USE_TITLE_RESOURCE));
+        assertThat(pref.isEnabled()).isTrue();
+        assertThat(pref.isChecked()).isTrue();
+        assertThat(pref.getOnPreferenceChangeListener()).isNotNull();
+        assertThat(pref.getOnPreferenceChangeListener().onPreferenceChange(pref, false)).isTrue();
+        verify(mMockedInjector).disableConnectedDisplay(mDisplayIdArg);
+        assertThat(pref.isChecked()).isFalse();
+        assertThat(pref.getOnPreferenceChangeListener().onPreferenceChange(pref, true)).isTrue();
+        verify(mMockedInjector).enableConnectedDisplay(mDisplayIdArg);
+        assertThat(pref.isChecked()).isTrue();
+        verify(mMockedMetricsLogger, times(2)).writePreferenceClickMetric(pref);
+    }
+
+    @NonNull
+    private ExternalDisplayPreferenceFragment initFragment() {
+        if (mFragment != null) {
+            return mFragment;
+        }
+        mFragment = new TestableExternalDisplayPreferenceFragment();
+        mFragment.onCreateCallback(null);
+        mFragment.onActivityCreatedCallback(null);
+        mFragment.onStartCallback();
+        return mFragment;
+    }
+
+    @NonNull
+    private Bundle createBundleForPreviouslyShownList() {
+        var state = new Bundle();
+        state.putBoolean(PREVIOUSLY_SHOWN_LIST_KEY, true);
+        return state;
+    }
+
+    @NonNull
+    private String getText(int id) {
+        return mContext.getResources().getText(id).toString();
+    }
+
+    private class TestableExternalDisplayPreferenceFragment extends
+            ExternalDisplayPreferenceFragment {
+        private final View mMockedRootView;
+        private final TextView mEmptyView;
+        private final Activity mMockedActivity;
+        private final FooterPreference mMockedFooterPreference;
+        private final MetricsLogger mLogger;
+
+        TestableExternalDisplayPreferenceFragment() {
+            super(mMockedInjector);
+            mMockedActivity = mock(Activity.class);
+            mMockedRootView = mock(View.class);
+            mMockedFooterPreference = mock(FooterPreference.class);
+            doReturn(KEY_FOOTER).when(mMockedFooterPreference).getKey();
+            mEmptyView = new TextView(mContext);
+            doReturn(mEmptyView).when(mMockedRootView).findViewById(android.R.id.empty);
+            mLogger = mMockedMetricsLogger;
+        }
+
+        @Override
+        public PreferenceScreen getPreferenceScreen() {
+            return mPreferenceScreen;
+        }
+
+        @Override
+        protected Activity getCurrentActivity() {
+            return mMockedActivity;
+        }
+
+        @Override
+        public View getView() {
+            return mMockedRootView;
+        }
+
+        @Override
+        public void setEmptyView(View view) {
+            assertThat(view).isEqualTo(mEmptyView);
+        }
+
+        @Override
+        public View getEmptyView() {
+            return mEmptyView;
+        }
+
+        @Override
+        public void addPreferencesFromResource(int resource) {
+            mPreferenceIdFromResource = resource;
+        }
+
+        @Override
+        @NonNull
+        FooterPreference getFooterPreference(@NonNull Context context) {
+            return mMockedFooterPreference;
+        }
+
+        @Override
+        protected int getDisplayIdArg() {
+            return mDisplayIdArg;
+        }
+
+        @Override
+        protected void launchResolutionSelector(@NonNull Context context, int displayId) {
+            mResolutionSelectorDisplayId = displayId;
+        }
+
+        @Override
+        protected void launchDisplaySettings(final int displayId) {
+            mDisplayIdArg = displayId;
+        }
+
+        @Override
+        protected void writePreferenceClickMetric(Preference preference) {
+            mLogger.writePreferenceClickMetric(preference);
+        }
+    }
+
+    /**
+     * Interface allowing to mock and spy on log events.
+     */
+    public interface MetricsLogger {
+
+        /**
+         * On preference click metric
+         */
+        void writePreferenceClickMetric(Preference preference);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayTestBase.java b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayTestBase.java
new file mode 100644
index 0000000..4cba1ef
--- /dev/null
+++ b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayTestBase.java
@@ -0,0 +1,150 @@
+/*
+ * 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.display;
+
+import static com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.VIRTUAL_DISPLAY_PACKAGE_NAME_SYSTEM_PROPERTY;
+import static com.android.settings.flags.Flags.FLAG_ROTATION_CONNECTED_DISPLAY_SETTING;
+import static com.android.settings.flags.Flags.FLAG_RESOLUTION_AND_ENABLE_CONNECTED_DISPLAY_SETTING;
+
+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.spy;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.hardware.display.DisplayManagerGlobal;
+import android.hardware.display.IDisplayManager;
+import android.os.RemoteException;
+import android.view.Display;
+import android.view.DisplayAdjustments;
+import android.view.DisplayInfo;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.server.testutils.TestHandler;
+import com.android.settings.connecteddevice.display.ExternalDisplaySettingsConfiguration.DisplayListener;
+import com.android.settings.flags.FakeFeatureFlagsImpl;
+
+import org.junit.Before;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+public class ExternalDisplayTestBase {
+    @Mock
+    ExternalDisplaySettingsConfiguration.Injector mMockedInjector;
+    @Mock
+    IDisplayManager mMockedIDisplayManager;
+    Resources mResources;
+    DisplayManagerGlobal mDisplayManagerGlobal;
+    FakeFeatureFlagsImpl mFlags = new FakeFeatureFlagsImpl();
+    Context mContext;
+    DisplayListener mListener;
+    TestHandler mHandler = new TestHandler(null);
+    PreferenceManager mPreferenceManager;
+    PreferenceScreen mPreferenceScreen;
+    Display[] mDisplays;
+
+    /**
+     * Setup.
+     */
+    @Before
+    public void setUp() throws RemoteException {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        doReturn(mResources).when(mContext).getResources();
+        mPreferenceManager = new PreferenceManager(mContext);
+        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+        doReturn(0).when(mMockedIDisplayManager).getPreferredWideGamutColorSpaceId();
+        mDisplayManagerGlobal = new DisplayManagerGlobal(mMockedIDisplayManager);
+        mFlags.setFlag(FLAG_ROTATION_CONNECTED_DISPLAY_SETTING, true);
+        mFlags.setFlag(FLAG_RESOLUTION_AND_ENABLE_CONNECTED_DISPLAY_SETTING, true);
+        mDisplays = new Display[] {
+                createDefaultDisplay(), createExternalDisplay(), createOverlayDisplay()};
+        doReturn(mDisplays).when(mMockedInjector).getAllDisplays();
+        doReturn(mDisplays).when(mMockedInjector).getEnabledDisplays();
+        for (var display : mDisplays) {
+            doReturn(display).when(mMockedInjector).getDisplay(display.getDisplayId());
+        }
+        doReturn(mFlags).when(mMockedInjector).getFlags();
+        doReturn(mHandler).when(mMockedInjector).getHandler();
+        doReturn("").when(mMockedInjector).getSystemProperty(
+                VIRTUAL_DISPLAY_PACKAGE_NAME_SYSTEM_PROPERTY);
+        doReturn(true).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+        doAnswer((arg) -> {
+            mListener = arg.getArgument(0);
+            return null;
+        }).when(mMockedInjector).registerDisplayListener(any());
+        doReturn(0).when(mMockedInjector).getDisplayUserRotation(anyInt());
+        doReturn(mContext).when(mMockedInjector).getContext();
+    }
+
+    Display createDefaultDisplay() throws RemoteException {
+        int displayId = 0;
+        var displayInfo = new DisplayInfo();
+        doReturn(displayInfo).when(mMockedIDisplayManager).getDisplayInfo(displayId);
+        displayInfo.displayId = displayId;
+        displayInfo.name = "Built-in";
+        displayInfo.type = Display.TYPE_INTERNAL;
+        displayInfo.supportedModes = new Display.Mode[]{
+                new Display.Mode(0, 2048, 1024, 60, 60, new float[0],
+                    new int[0])};
+        displayInfo.appsSupportedModes = displayInfo.supportedModes;
+        return createDisplay(displayInfo);
+    }
+
+    Display createExternalDisplay() throws RemoteException {
+        int displayId = 1;
+        var displayInfo = new DisplayInfo();
+        doReturn(displayInfo).when(mMockedIDisplayManager).getDisplayInfo(displayId);
+        displayInfo.displayId = displayId;
+        displayInfo.name = "HDMI";
+        displayInfo.type = Display.TYPE_EXTERNAL;
+        displayInfo.supportedModes = new Display.Mode[]{
+                new Display.Mode(0, 1920, 1080, 60, 60, new float[0], new int[0]),
+                new Display.Mode(1, 800, 600, 60, 60, new float[0], new int[0]),
+                new Display.Mode(2, 320, 240, 70, 70, new float[0], new int[0]),
+                new Display.Mode(3, 640, 480, 60, 60, new float[0], new int[0]),
+                new Display.Mode(4, 640, 480, 50, 60, new float[0], new int[0]),
+                new Display.Mode(5, 2048, 1024, 60, 60, new float[0], new int[0]),
+                new Display.Mode(6, 720, 480, 60, 60, new float[0], new int[0])};
+        displayInfo.appsSupportedModes = displayInfo.supportedModes;
+        return createDisplay(displayInfo);
+    }
+
+    Display createOverlayDisplay() throws RemoteException {
+        int displayId = 2;
+        var displayInfo = new DisplayInfo();
+        doReturn(displayInfo).when(mMockedIDisplayManager).getDisplayInfo(displayId);
+        displayInfo.displayId = displayId;
+        displayInfo.name = "Overlay #1";
+        displayInfo.type = Display.TYPE_OVERLAY;
+        displayInfo.supportedModes = new Display.Mode[]{
+                new Display.Mode(0, 1240, 780, 60, 60, new float[0],
+                    new int[0])};
+        displayInfo.appsSupportedModes = displayInfo.supportedModes;
+        return createDisplay(displayInfo);
+    }
+
+    Display createDisplay(DisplayInfo displayInfo) {
+        return new Display(mDisplayManagerGlobal, displayInfo.displayId, displayInfo,
+                (DisplayAdjustments) null);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayUpdaterTest.java b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayUpdaterTest.java
new file mode 100644
index 0000000..824974a
--- /dev/null
+++ b/tests/unit/src/com/android/settings/connecteddevice/display/ExternalDisplayUpdaterTest.java
@@ -0,0 +1,121 @@
+/*
+ * 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.display;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.RemoteException;
+import android.view.Display;
+
+import androidx.annotation.Nullable;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+/** Unit tests for {@link ExternalDisplayUpdater}.  */
+@RunWith(AndroidJUnit4.class)
+public class ExternalDisplayUpdaterTest extends ExternalDisplayTestBase {
+
+    private ExternalDisplayUpdater mUpdater;
+    @Mock
+    private DevicePreferenceCallback mMockedCallback;
+    @Mock
+    private Drawable mMockedDrawable;
+    private RestrictedPreference mPreferenceAdded;
+    private RestrictedPreference mPreferenceRemoved;
+
+    @Before
+    public void setUp() throws RemoteException {
+        super.setUp();
+        mUpdater = new TestableExternalDisplayUpdater(mMockedCallback, /*metricsCategory=*/ 0);
+    }
+
+    @Test
+    public void testPreferenceAdded() {
+        doAnswer((v) -> {
+            mPreferenceAdded = v.getArgument(0);
+            return null;
+        }).when(mMockedCallback).onDeviceAdded(any());
+        mUpdater.initPreference(mContext, mMockedInjector);
+        mUpdater.registerCallback();
+        mHandler.flush();
+        assertThat(mPreferenceAdded).isNotNull();
+        var summary = mPreferenceAdded.getSummary();
+        assertThat(summary).isNotNull();
+        assertThat(summary.length()).isGreaterThan(0);
+        var title = mPreferenceAdded.getTitle();
+        assertThat(title).isNotNull();
+        assertThat(title.length()).isGreaterThan(0);
+    }
+
+    @Test
+    public void testPreferenceRemoved() {
+        doAnswer((v) -> {
+            mPreferenceAdded = v.getArgument(0);
+            return null;
+        }).when(mMockedCallback).onDeviceAdded(any());
+        doAnswer((v) -> {
+            mPreferenceRemoved = v.getArgument(0);
+            return null;
+        }).when(mMockedCallback).onDeviceRemoved(any());
+        mUpdater.initPreference(mContext, mMockedInjector);
+        mUpdater.registerCallback();
+        mHandler.flush();
+        assertThat(mPreferenceAdded).isNotNull();
+        assertThat(mPreferenceRemoved).isNull();
+        // Remove display
+        doReturn(new Display[0]).when(mMockedInjector).getAllDisplays();
+        doReturn(new Display[0]).when(mMockedInjector).getEnabledDisplays();
+        mListener.onDisplayRemoved(1);
+        mHandler.flush();
+        assertThat(mPreferenceRemoved).isEqualTo(mPreferenceAdded);
+    }
+
+    class TestableExternalDisplayUpdater extends ExternalDisplayUpdater {
+        TestableExternalDisplayUpdater(
+                DevicePreferenceCallback callback,
+                int metricsCategory) {
+            super(callback, metricsCategory);
+        }
+
+        @Override
+        @Nullable
+        protected RestrictedLockUtils.EnforcedAdmin checkIfUsbDataSignalingIsDisabled(
+                Context context) {
+            // if null is returned - usb signalling is enabled
+            return null;
+        }
+
+        @Override
+        @Nullable
+        protected Drawable getDrawable(Context context) {
+            return mMockedDrawable;
+        }
+    }
+}
diff --git a/tests/unit/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragmentTest.java b/tests/unit/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragmentTest.java
new file mode 100644
index 0000000..c866362
--- /dev/null
+++ b/tests/unit/src/com/android/settings/connecteddevice/display/ResolutionPreferenceFragmentTest.java
@@ -0,0 +1,242 @@
+/*
+ * 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.display;
+
+import static android.view.Display.INVALID_DISPLAY;
+
+import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.DISPLAY_MODE_LIMIT_OVERRIDE_PROP;
+import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.EXTERNAL_DISPLAY_RESOLUTION_SETTINGS_RESOURCE;
+import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.MORE_OPTIONS_KEY;
+import static com.android.settings.connecteddevice.display.ResolutionPreferenceFragment.TOP_OPTIONS_KEY;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.util.Pair;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+/** Unit tests for {@link ResolutionPreferenceFragment}.  */
+@RunWith(AndroidJUnit4.class)
+public class ResolutionPreferenceFragmentTest extends ExternalDisplayTestBase {
+    @Nullable
+    private ResolutionPreferenceFragment mFragment;
+    private int mPreferenceIdFromResource;
+    private int mDisplayIdArg = INVALID_DISPLAY;
+    @Mock
+    private MetricsLogger mMockedMetricsLogger;
+
+    @Test
+    @UiThreadTest
+    public void testCreateAndStart() {
+        initFragment();
+        mHandler.flush();
+        assertThat(mPreferenceIdFromResource).isEqualTo(
+                EXTERNAL_DISPLAY_RESOLUTION_SETTINGS_RESOURCE);
+        var pref = mPreferenceScreen.findPreference(TOP_OPTIONS_KEY);
+        assertThat(pref).isNull();
+        pref = mPreferenceScreen.findPreference(MORE_OPTIONS_KEY);
+        assertThat(pref).isNull();
+    }
+
+    @Test
+    @UiThreadTest
+    public void testCreateAndStartDefaultDisplayNotAllowed() {
+        mDisplayIdArg = 0;
+        initFragment();
+        mHandler.flush();
+        var pref = mPreferenceScreen.findPreference(TOP_OPTIONS_KEY);
+        assertThat(pref).isNull();
+        pref = mPreferenceScreen.findPreference(MORE_OPTIONS_KEY);
+        assertThat(pref).isNull();
+    }
+
+    @Test
+    @UiThreadTest
+    public void testModePreferences_modeLimitFlagIsOn_noOverride() {
+        doReturn(true).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+        doReturn(null).when(mMockedInjector).getSystemProperty(
+                DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+        var topAndMorePref = runTestModePreferences();
+        PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
+        assertThat(topPref.getPreferenceCount()).isEqualTo(3);
+        assertThat(morePref.getPreferenceCount()).isEqualTo(1);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testModePreferences_noModeLimitFlag_overrideIsTrue() {
+        doReturn(false).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+        doReturn("true").when(mMockedInjector).getSystemProperty(
+                DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+        var topAndMorePref = runTestModePreferences();
+        PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
+        assertThat(topPref.getPreferenceCount()).isEqualTo(3);
+        assertThat(morePref.getPreferenceCount()).isEqualTo(1);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testModePreferences_noModeLimitFlag_noOverride() {
+        doReturn(false).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+        doReturn(null).when(mMockedInjector).getSystemProperty(
+                DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+        var topAndMorePref = runTestModePreferences();
+        PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
+        assertThat(topPref.getPreferenceCount()).isEqualTo(3);
+        assertThat(morePref.getPreferenceCount()).isEqualTo(2);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testModePreferences_modeLimitFlagIsOn_butOverrideIsFalse() {
+        doReturn(true).when(mMockedInjector).isModeLimitForExternalDisplayEnabled();
+        doReturn("false").when(mMockedInjector).getSystemProperty(
+                DISPLAY_MODE_LIMIT_OVERRIDE_PROP);
+        var topAndMorePref = runTestModePreferences();
+        PreferenceCategory topPref = topAndMorePref.first, morePref = topAndMorePref.second;
+        assertThat(topPref.getPreferenceCount()).isEqualTo(3);
+        assertThat(morePref.getPreferenceCount()).isEqualTo(2);
+    }
+
+    @Test
+    @UiThreadTest
+    public void testModeChange() {
+        mDisplayIdArg = 1;
+        initFragment();
+        mHandler.flush();
+        PreferenceCategory topPref = mPreferenceScreen.findPreference(TOP_OPTIONS_KEY);
+        assertThat(topPref).isNotNull();
+        var modePref = (SelectorWithWidgetPreference) topPref.getPreference(1);
+        modePref.onClick();
+        var mode = mDisplays[mDisplayIdArg].getSupportedModes()[1];
+        verify(mMockedInjector).setUserPreferredDisplayMode(mDisplayIdArg, mode);
+    }
+
+    private Pair<PreferenceCategory, PreferenceCategory> runTestModePreferences() {
+        mDisplayIdArg = 1;
+        initFragment();
+        mHandler.flush();
+        PreferenceCategory topPref = mPreferenceScreen.findPreference(TOP_OPTIONS_KEY);
+        assertThat(topPref).isNotNull();
+        PreferenceCategory morePref = mPreferenceScreen.findPreference(MORE_OPTIONS_KEY);
+        assertThat(morePref).isNotNull();
+        return new Pair<>(topPref, morePref);
+    }
+
+    private void initFragment() {
+        if (mFragment != null) {
+            return;
+        }
+        mFragment = new TestableResolutionPreferenceFragment();
+        mFragment.onCreateCallback(null);
+        mFragment.onActivityCreatedCallback(null);
+        mFragment.onStartCallback();
+    }
+
+    private class TestableResolutionPreferenceFragment extends ResolutionPreferenceFragment {
+        private final View mMockedRootView;
+        private final TextView mEmptyView;
+        private final Resources mMockedResources;
+        private final MetricsLogger mLogger;
+        TestableResolutionPreferenceFragment() {
+            super(mMockedInjector);
+            mMockedResources = mock(Resources.class);
+            doReturn(61).when(mMockedResources).getInteger(
+                    com.android.internal.R.integer.config_externalDisplayPeakRefreshRate);
+            doReturn(1920).when(mMockedResources).getInteger(
+                    com.android.internal.R.integer.config_externalDisplayPeakWidth);
+            doReturn(1080).when(mMockedResources).getInteger(
+                    com.android.internal.R.integer.config_externalDisplayPeakHeight);
+            doReturn(true).when(mMockedResources).getBoolean(
+                    com.android.internal.R.bool.config_refreshRateSynchronizationEnabled);
+            mMockedRootView = mock(View.class);
+            mEmptyView = new TextView(mContext);
+            doReturn(mEmptyView).when(mMockedRootView).findViewById(android.R.id.empty);
+            mLogger = mMockedMetricsLogger;
+        }
+
+        @Override
+        public PreferenceScreen getPreferenceScreen() {
+            return mPreferenceScreen;
+        }
+
+        @Override
+        public View getView() {
+            return mMockedRootView;
+        }
+
+        @Override
+        public void setEmptyView(View view) {
+            assertThat(view).isEqualTo(mEmptyView);
+        }
+
+        @Override
+        public View getEmptyView() {
+            return mEmptyView;
+        }
+
+        @Override
+        public void addPreferencesFromResource(int resource) {
+            mPreferenceIdFromResource = resource;
+        }
+
+        @Override
+        protected int getDisplayIdArg() {
+            return mDisplayIdArg;
+        }
+
+        @Override
+        protected void writePreferenceClickMetric(Preference preference) {
+            mLogger.writePreferenceClickMetric(preference);
+        }
+
+        @Override
+        @NonNull
+        protected Resources getResources(@NonNull Context context) {
+            return mMockedResources;
+        }
+    }
+
+    /**
+     * Interface allowing to mock and spy on log events.
+     */
+    public interface MetricsLogger {
+        /**
+         * On preference click metric
+         */
+        void writePreferenceClickMetric(Preference preference);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java
index ab1f469..2aa10bb 100644
--- a/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/bluetooth/BluetoothStackLogPreferenceControllerTest.java
@@ -16,13 +16,9 @@
 
 package com.android.settings.development.bluetooth;
 
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_VERBOSE_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_DEBUG_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_INFO_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_WARN_INDEX;
-import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BTSTACK_LOG_MODE_ERROR_INDEX;
+import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BT_LOG_LEVEL_DEFAULT_INDEX;
+import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BT_LOG_LEVEL_PROP;
+import static com.android.settings.development.bluetooth.BluetoothStackLogPreferenceController.BT_LOG_LEVEL_PROP_PERSIST;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -37,18 +33,21 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
 
 @RunWith(AndroidJUnit4.class)
-@Ignore("b/339148064")
 public class BluetoothStackLogPreferenceControllerTest {
-    private static final String TAG = "BluetoothStackLogPreferenceControllerTest";
+    private static final String COM_ANDROID_SETTINGS = "com.android.settings";
+    private static final String TYPE_ARRAY = "array";
 
-    @Mock private Context mContext;
+    private static final String XML_DEFINED_PREFERENCE_KEY = "bt_stack_log_level";
+    private static final String XML_DEFINED_ENTRIES_RESOURCE = "bt_stack_log_level_entries";
+    private static final String XML_DEFINED_VALUES_RESOURCE = "bt_stack_log_level_values";
+
+    private static final String PROPERTY_CLEARED = "";
+
+    private Context mContext;
 
     private ListPreference mPreference;
     private PreferenceManager mPreferenceManager;
@@ -61,7 +60,6 @@
 
     @Before
     public void setup() {
-        MockitoAnnotations.initMocks(this);
         mContext = ApplicationProvider.getApplicationContext();
 
         if (Looper.myLooper() == null) {
@@ -71,12 +69,11 @@
         mPreferenceManager = new PreferenceManager(mContext);
         mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
         mPreference = new ListPreference(mContext);
-
         mController = new BluetoothStackLogPreferenceController(mContext);
 
         mPreference.setKey(mController.getPreferenceKey());
-        mPreference.setEntries(com.android.settings.R.array.bt_stack_log_level_entries);
-        mPreference.setEntryValues(com.android.settings.R.array.bt_stack_log_level_values);
+        mPreference.setEntries(getStringArrayResourceId(XML_DEFINED_ENTRIES_RESOURCE));
+        mPreference.setEntryValues(getStringArrayResourceId(XML_DEFINED_VALUES_RESOURCE));
 
         mPreferenceScreen.addPreference(mPreference);
         mController.displayPreference(mPreferenceScreen);
@@ -86,134 +83,109 @@
     }
 
     /**
-     * Test that default log level is set to INFO
+     * Get the resource ID associated with a resource name
+     *
+     * This looks up the resource id by name using our device's context. This way, we can avoid
+     * hardcoding a resource ID or value from the R class which may not match the resource IDs on
+     * the device under test.
+     *
+     * Usage: int valuesResId = getStringArrayResource("bt_stack_log_level_values");
+     * Usage: int entriesResId = getStringArrayResource("bt_stack_log_level_entries");
+     *
+     * @param res - The resource name to look up
+     * @return The integer resource ID corresponding to the given resource name
      */
-    @Test
-    public void verifyDefaultState_enablesDefaultLogLevelEntriesAndValuesSameSize() {
-        mController.onPreferenceChange(mPreference, mController.getDefaultModeIndex());
-        assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
-                        [BTSTACK_LOG_MODE_INFO_INDEX].toString());
-        assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
-                        [BTSTACK_LOG_MODE_INFO_INDEX].toString());
+    public int getStringArrayResourceId(String res) {
+        return mContext.getResources().getIdentifier(res, TYPE_ARRAY, COM_ANDROID_SETTINGS);
     }
 
     /**
-     * Test that log level is changed to VERBOSE when VERBOSE is selected
+     * Test that, for each possible value a user can select, our controller properly handles the
+     * value to update the underlying system property _and_ set the UI entry to the proper value.
      */
     @Test
-    public void onPreferenceChanged_enableBluetoothStackVerboseLogLevel() {
-        mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_VERBOSE_INDEX]
-                        .toString());
+    public void onPreferenceChange_withEachValue_uiSetProperlyAndAllValuesWrittenToProperties() {
+        for (int index = 0; index < mListValues.length; index++) {
+            String value = mListValues[index].toString();
+            String entry = mListEntries[index].toString();
 
-        final String persistedLogLevel = SystemProperties.get(
-                        BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
-        final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
-        assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_VERBOSE_INDEX]
-                        .toString());
-        assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_VERBOSE_INDEX].toString());
+            mController.onPreferenceChange(mPreference, value);
 
-        assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
-                        [BTSTACK_LOG_MODE_VERBOSE_INDEX].toString());
-        assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
-                        [BTSTACK_LOG_MODE_VERBOSE_INDEX].toString());
+            final String persistedLogLevel = SystemProperties.get(BT_LOG_LEVEL_PROP_PERSIST);
+            final String logLevel = SystemProperties.get(BT_LOG_LEVEL_PROP);
+            final String currentValue = mPreference.getValue().toString();
+            final String currentEntry = mPreference.getEntry().toString();
+            final String currentSummary = mPreference.getSummary().toString();
+            final int currentIndex = mPreference.findIndexOfValue(currentValue);
+
+            assertThat(persistedLogLevel).isEqualTo(value);
+            assertThat(logLevel).isEqualTo(value);
+            assertThat(currentIndex).isEqualTo(index);
+            assertThat(currentValue).isEqualTo(value);
+            assertThat(currentEntry).isEqualTo(entry);
+            assertThat(currentSummary).isEqualTo(entry);
+        }
     }
 
     /**
-     * Test that log level is changed to DEBUG when DEBUG is selected
+     * Test that, for each possible log tag log level value, our controller properly handles the
+     * value to set the UI entry to the proper value.
      */
     @Test
-    public void onPreferenceChanged_enableBluetoothStackDebugLogLevel() {
-        mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_DEBUG_INDEX]
-                        .toString());
+    public void updateState_withEachValue_uiSetProperly() {
+        for (int index = 0; index < mListValues.length; index++) {
+            String value = mListValues[index].toString();
+            String entry = mListEntries[index].toString();
 
-        final String persistedLogLevel = SystemProperties.get(
-                BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
-        final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
-        assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_DEBUG_INDEX]
-                        .toString());
-        assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_DEBUG_INDEX].toString());
+            SystemProperties.set(BT_LOG_LEVEL_PROP_PERSIST, value);
+            SystemProperties.set(BT_LOG_LEVEL_PROP, value);
 
-        assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
-                        [BTSTACK_LOG_MODE_DEBUG_INDEX].toString());
-        assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
-                        [BTSTACK_LOG_MODE_DEBUG_INDEX].toString());
+            mController.updateState(mPreference);
+
+            final String currentValue = mPreference.getValue().toString();
+            final String currentEntry = mPreference.getEntry().toString();
+            final String currentSummary = mPreference.getSummary().toString();
+            final int currentIndex = mPreference.findIndexOfValue(currentValue);
+
+            assertThat(currentIndex).isEqualTo(index);
+            assertThat(currentValue).isEqualTo(value);
+            assertThat(currentEntry).isEqualTo(entry);
+            assertThat(currentSummary).isEqualTo(entry);
+        }
     }
 
     /**
-     * Test that log level is changed to INFO when INFO is selected
+     * Test that our controller reverts the log level back to a missing/default value when we're
+     * notified that Developer Options has been disabled.
      */
     @Test
-    public void onPreferenceChanged_enableBluetoothStackInfoLogLevel() {
-        mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_INFO_INDEX]
-                        .toString());
+    public void onDeveloperOptionsSwitchDisabled_preferenceSetToDefault() {
+        mController.onDeveloperOptionsSwitchDisabled();
 
-        final String persistedLogLevel = SystemProperties.get(
-                BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
-        final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
-        assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_INFO_INDEX]
-                        .toString());
-        assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_INFO_INDEX].toString());
+        final String defaultEntry = mListEntries[BT_LOG_LEVEL_DEFAULT_INDEX].toString();
+        final String defaultValue = mListValues[BT_LOG_LEVEL_DEFAULT_INDEX].toString();
 
-        assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
-                        [BTSTACK_LOG_MODE_INFO_INDEX].toString());
-        assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
-                        [BTSTACK_LOG_MODE_INFO_INDEX].toString());
+        final String persistedLogLevel = SystemProperties.get(BT_LOG_LEVEL_PROP_PERSIST);
+        final String logLevel = SystemProperties.get(BT_LOG_LEVEL_PROP);
+        final String currentValue = mPreference.getValue().toString();
+        final String currentEntry = mPreference.getEntry().toString();
+        final String currentSummary = mPreference.getSummary().toString();
+        final int currentIndex = mPreference.findIndexOfValue(currentValue);
+
+        assertThat(persistedLogLevel).isEqualTo(PROPERTY_CLEARED);
+        assertThat(logLevel).isEqualTo(PROPERTY_CLEARED);
+        assertThat(currentIndex).isEqualTo(BT_LOG_LEVEL_DEFAULT_INDEX);
+        assertThat(currentValue).isEqualTo(defaultValue);
+        assertThat(currentEntry).isEqualTo(defaultEntry);
+        assertThat(currentSummary).isEqualTo(defaultEntry);
     }
 
     /**
-     * Test that log level is changed to WARN when WARN is selected
+     * Test that our preference key returned by our controller matches the one defined in the XML
+     * definition.
      */
     @Test
-    public void onPreferenceChanged_enableBluetoothStackWarnLogLevel() {
-        mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_WARN_INDEX]
-                        .toString());
-
-        final String persistedLogLevel = SystemProperties.get(
-                BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
-        final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
-        assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_WARN_INDEX]
-                        .toString());
-        assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_WARN_INDEX].toString());
-
-        assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
-
-                        [BTSTACK_LOG_MODE_WARN_INDEX].toString());
-        assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
-                        [BTSTACK_LOG_MODE_WARN_INDEX].toString());
-    }
-
-    /**
-     * Test that log level is changed to ERROR when ERROR is selected
-     */
-    @Test
-    public void onPreferenceChanged_enableBluetoothStackErrorLogLevel() {
-        mController.onPreferenceChange(mPreference, mListValues[BTSTACK_LOG_MODE_ERROR_INDEX]
-                        .toString());
-
-        final String persistedLogLevel = SystemProperties.get(
-                BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY_PERSIST);
-        final String logLevel = SystemProperties.get(BLUETOOTH_BTSTACK_LOG_MODE_PROPERTY);
-        assertThat(persistedLogLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_ERROR_INDEX]
-                        .toString());
-        assertThat(logLevel).isEqualTo(mListValues[BTSTACK_LOG_MODE_ERROR_INDEX].toString());
-
-        assertThat(mPreference.getValue().toString()).isEqualTo(mListValues
-                        [BTSTACK_LOG_MODE_ERROR_INDEX].toString());
-        assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries
-                        [BTSTACK_LOG_MODE_ERROR_INDEX].toString());
-    }
-
-    /**
-     * Test that preference is disabled when developer options is disabled
-     * Log level is also reset to default
-     */
-    @Test
-    public void onDeveloperOptionsDisabled_shouldDisablePreference() {
-        mController.onDeveloperOptionsDisabled();
-        assertThat(mPreference.isEnabled()).isFalse();
-        assertThat(mPreference.getValue().toString()).isEqualTo(mListValues[mController
-                .getDefaultModeIndex()].toString());
-        assertThat(mPreference.getSummary().toString()).isEqualTo(mListEntries[mController
-                .getDefaultModeIndex()].toString());
+    public void getPreferenceKey_matchesXmlDefinedPreferenceKey() {
+        assertThat(mController.getPreferenceKey()).isEqualTo(XML_DEFINED_PREFERENCE_KEY);
     }
 }
diff --git a/tests/unit/src/com/android/settings/development/mediadrm/ForceSwSecureCryptoFallbackPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/mediadrm/ForceSwSecureCryptoFallbackPreferenceControllerTest.java
index 2a0cd05..5eb76f1 100644
--- a/tests/unit/src/com/android/settings/development/mediadrm/ForceSwSecureCryptoFallbackPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/mediadrm/ForceSwSecureCryptoFallbackPreferenceControllerTest.java
@@ -29,6 +29,8 @@
 import android.content.Context;
 
 import com.android.settings.media_drm.Flags;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.preference.SwitchPreference;
@@ -65,10 +67,10 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_FORCE_L3_ENABLED)
     public void updateState_flagEnabled_checkPreference() {
-        mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
         mController.updateState(mPreference);
-        assumeTrue(mPreference.isEnabled());
+        assertThat(mPreference.isEnabled()).isTrue();
         assertThat(mPreference.isChecked()).isFalse();
         assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
 
@@ -85,33 +87,22 @@
         assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
         assertThat(mPreference.isEnabled()).isTrue();
         assertThat(mPreference.isChecked()).isFalse();
-
-        // Test flag rollback
-        mController.setChecked(true);
-        mController.updateState(mPreference);
-        assertThat(mPreference.isChecked()).isTrue();
-        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isTrue();
-        mSetFlagsRule.disableFlags(Flags.FLAG_FORCE_L3_ENABLED);
-        mController.updateState(mPreference);
-        assertThat(mPreference.isEnabled()).isFalse();
-        assertThat(mPreference.isChecked()).isFalse();
-        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
     }
 
     @Test
+    @DisableFlags(Flags.FLAG_FORCE_L3_ENABLED)
     public void updateState_flagDisabled_checkPreference() {
-        mSetFlagsRule.disableFlags(Flags.FLAG_FORCE_L3_ENABLED);
         mController.updateState(mPreference);
         assertThat(mPreference.isEnabled()).isFalse();
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_FORCE_L3_ENABLED)
     public void updateState_checkWidevine() throws Exception {
         try (MediaDrm drm = new MediaDrm(WIDEVINE_UUID)) {
             assumeTrue(drm.getPropertyString("securityLevel").equals("L1"));
-            mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
             mController.updateState(mPreference);
-            assumeTrue(mPreference.isEnabled());
+            assertThat(mPreference.isEnabled()).isTrue();
         } catch (UnsupportedSchemeException ex) {
             assumeNoException(ex);
         }
@@ -139,11 +130,11 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_FORCE_L3_ENABLED)
     public void updateState_checkWhenWidevineReady() throws Exception {
         try (MediaDrm drm = new MediaDrm(WIDEVINE_UUID)) {
             if (drm.getPropertyString("securityLevel").equals("L1")) {
                 String version = drm.getPropertyString(MediaDrm.PROPERTY_VERSION);
-                mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
                 mController.updateState(mPreference);
                 if (Integer.parseInt(version.split("\\.", 2)[0]) >= 19) {
                     assertThat(mPreference.isEnabled()).isTrue();
diff --git a/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
index 237786b..34878e1 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
@@ -22,14 +22,21 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.Activity;
 import android.content.Context;
+import android.hardware.biometrics.BiometricManager;
+import android.hardware.biometrics.Flags;
 import android.os.Looper;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
 
 import androidx.lifecycle.LifecycleOwner;
@@ -45,6 +52,7 @@
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -53,6 +61,9 @@
 
 @RunWith(AndroidJUnit4.class)
 public class BuildNumberPreferenceControllerTest {
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule =
+            DeviceFlagsValueProvider.createCheckFlagsRule();
 
     private static final String KEY_BUILD_NUMBER = "build_number";
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -60,6 +71,7 @@
 
     private Context mContext;
     private UserManager mUserManager;
+    private BiometricManager mBiometricManager;
     private LifecycleOwner mLifecycleOwner;
     private Lifecycle mLifecycle;
     private FakeFeatureFactory mFactory;
@@ -76,7 +88,13 @@
 
         mContext = spy(ApplicationProvider.getApplicationContext());
         mUserManager = (UserManager) spy(mContext.getSystemService(Context.USER_SERVICE));
+        mBiometricManager = spy(mContext.getSystemService(BiometricManager.class));
+
         doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
+        when(mContext.getSystemService(BiometricManager.class)).thenReturn(mBiometricManager);
+        when(mBiometricManager.canAuthenticate(mContext.getUserId(),
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE);
 
         mFactory = FakeFeatureFactory.setupForTest();
         mLifecycleOwner = () -> mLifecycle;
@@ -156,7 +174,7 @@
     @Test
     public void onActivityResult_notConfirmPasswordRequest_doNothing() {
         final boolean activityResultHandled = mController.onActivityResult(
-                BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF + 1,
+                BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF + 2,
                 Activity.RESULT_OK,
                 null);
 
@@ -177,6 +195,7 @@
 
     @Test
     @UiThreadTest
+    @RequiresFlagsDisabled(Flags.FLAG_MANDATORY_BIOMETRICS)
     public void onActivityResult_confirmPasswordRequestCompleted_enableDevPref() {
         when(mUserManager.isAdminUser()).thenReturn(true);
 
@@ -188,4 +207,76 @@
         assertThat(activityResultHandled).isTrue();
         assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue();
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void onActivityResult_confirmPasswordRequestCompleted_launchBiometricPrompt() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mBiometricManager.canAuthenticate(mContext.getUserId(),
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_SUCCESS);
+
+        final boolean activityResultHandled = mController.onActivityResult(
+                BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF,
+                Activity.RESULT_OK,
+                null);
+
+        assertThat(activityResultHandled).isTrue();
+        assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isFalse();
+        verify(mFragment).startActivityForResult(any(),
+                eq(BuildNumberPreferenceController.REQUEST_IDENTITY_CHECK_FOR_DEV_PREF));
+    }
+
+    @Test
+    @UiThreadTest
+    @RequiresFlagsEnabled(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void onActivityResult_confirmPasswordRequestCompleted_mandatoryBiometricsError() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mBiometricManager.canAuthenticate(mContext.getUserId(),
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_MANDATORY_NOT_ACTIVE);
+
+        final boolean activityResultHandled = mController.onActivityResult(
+                BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF,
+                Activity.RESULT_OK,
+                null);
+
+        assertThat(activityResultHandled).isTrue();
+        verify(mFragment, never()).startActivityForResult(any(),
+                eq(BuildNumberPreferenceController.REQUEST_IDENTITY_CHECK_FOR_DEV_PREF));
+    }
+
+    @Test
+    @UiThreadTest
+    @RequiresFlagsEnabled(Flags.FLAG_MANDATORY_BIOMETRICS)
+    public void onActivityResult_confirmPasswordRequestCompleted_lockoutError() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+        when(mBiometricManager.canAuthenticate(mContext.getUserId(),
+                BiometricManager.Authenticators.MANDATORY_BIOMETRICS))
+                .thenReturn(BiometricManager.BIOMETRIC_ERROR_LOCKOUT);
+
+        final boolean activityResultHandled = mController.onActivityResult(
+                BuildNumberPreferenceController.REQUEST_CONFIRM_PASSWORD_FOR_DEV_PREF,
+                Activity.RESULT_OK,
+                null);
+
+        assertThat(activityResultHandled).isTrue();
+        verify(mFragment, never()).startActivityForResult(any(),
+                eq(BuildNumberPreferenceController.REQUEST_IDENTITY_CHECK_FOR_DEV_PREF));
+        assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isFalse();
+    }
+
+    @Test
+    public void onActivityResult_confirmBiometricAuthentication_enableDevPref() {
+        when(mUserManager.isAdminUser()).thenReturn(true);
+
+        Looper.prepare();
+        final boolean activityResultHandled = mController.onActivityResult(
+                BuildNumberPreferenceController.REQUEST_IDENTITY_CHECK_FOR_DEV_PREF,
+                Activity.RESULT_OK,
+                null);
+
+        assertThat(activityResultHandled).isTrue();
+        assertThat(DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(mContext)).isTrue();
+    }
 }
diff --git a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
index 67a5957..691b611 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
@@ -16,7 +16,6 @@
 
 package com.android.settings.fingerprint2.domain.interactor
 
-import android.content.Context
 import android.content.Intent
 import android.hardware.biometrics.ComponentInfoInternal
 import android.hardware.biometrics.SensorLocationInternal
@@ -30,23 +29,37 @@
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
 import android.os.CancellationSignal
 import android.os.Handler
-import androidx.test.core.app.ApplicationProvider
 import com.android.settings.biometrics.GatekeeperPasswordProvider
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintEnrollmentRepositoryImpl
 import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepository
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintEnrollInteractorImpl
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSettingsRepositoryImpl
+import com.android.settings.biometrics.fingerprint2.data.repository.UserRepo
+import com.android.settings.biometrics.fingerprint2.domain.interactor.AuthenticateInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.CanEnrollFingerprintsInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrollFingerprintInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.EnrolledFingerprintsInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.GenerateChallengeInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.RemoveFingerprintsInteractorImpl
+import com.android.settings.biometrics.fingerprint2.domain.interactor.RenameFingerprintsInteractorImpl
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.CanEnrollFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrollFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.EnrolledFingerprintsInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.GenerateChallengeInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RemoveFingerprintInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.RenameFingerprintInteractor
 import com.android.settings.biometrics.fingerprint2.lib.model.Default
 import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
 import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
 import com.android.settings.password.ChooseLockSettingsHelper
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
 import com.android.systemui.biometrics.shared.model.toFingerprintSensor
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.cancelAndJoin
 import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.last
 import kotlinx.coroutines.launch
@@ -75,13 +88,28 @@
 class FingerprintManagerInteractorTest {
 
   @JvmField @Rule var rule = MockitoJUnit.rule()
-  private lateinit var underTest: FingerprintManagerInteractor
-  private var context: Context = ApplicationProvider.getApplicationContext()
+  private lateinit var enrolledFingerprintsInteractorUnderTest: EnrolledFingerprintsInteractor
+  private lateinit var generateChallengeInteractorUnderTest: GenerateChallengeInteractor
+  private lateinit var removeFingerprintsInteractorUnderTest: RemoveFingerprintInteractor
+  private lateinit var renameFingerprintsInteractorUnderTest: RenameFingerprintInteractor
+  private lateinit var authenticateInteractorImplUnderTest: AuthenticateInteractorImpl
+  private lateinit var canEnrollFingerprintsInteractorUnderTest: CanEnrollFingerprintsInteractor
+  private lateinit var enrollInteractorUnderTest: EnrollFingerprintInteractor
+
+  private val userId = 0
   private var backgroundDispatcher = StandardTestDispatcher()
   @Mock private lateinit var fingerprintManager: FingerprintManager
   @Mock private lateinit var gateKeeperPasswordProvider: GatekeeperPasswordProvider
 
   private var testScope = TestScope(backgroundDispatcher)
+  private var backgroundScope = testScope.backgroundScope
+  private val flow: FingerprintFlow = Default
+  private val maxFingerprints = 5
+  private val currUser = MutableStateFlow(0)
+  private val userRepo =
+    object : UserRepo {
+      override val currentUser: Flow<Int> = currUser
+    }
 
   @Before
   fun setup() {
@@ -89,7 +117,7 @@
       FingerprintSensorPropertiesInternal(
           0 /* sensorId */,
           SensorProperties.STRENGTH_STRONG,
-          5 /* maxEnrollmentsPerUser */,
+          maxFingerprints,
           listOf<ComponentInfoInternal>(),
           FingerprintSensorProperties.TYPE_POWER_BUTTON,
           false /* halControlsIllumination */,
@@ -97,20 +125,37 @@
           listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
         )
         .toFingerprintSensor()
+
     val fingerprintSensorRepository =
       object : FingerprintSensorRepository {
         override val fingerprintSensor: Flow<FingerprintSensor> = flowOf(sensor)
+        override val hasSideFps: Flow<Boolean> = flowOf(false)
       }
 
-    underTest =
-      FingerprintManagerInteractorImpl(
-        context,
-        backgroundDispatcher,
+    val settingsRepository = FingerprintSettingsRepositoryImpl(maxFingerprints)
+    val fingerprintEnrollmentRepository =
+      FingerprintEnrollmentRepositoryImpl(
         fingerprintManager,
-        fingerprintSensorRepository,
-        gateKeeperPasswordProvider,
-        FingerprintEnrollInteractorImpl(context, fingerprintManager, Default),
+        userRepo,
+        settingsRepository,
+        backgroundDispatcher,
+        backgroundScope,
       )
+
+    enrolledFingerprintsInteractorUnderTest =
+      EnrolledFingerprintsInteractorImpl(fingerprintManager, userId)
+    generateChallengeInteractorUnderTest =
+      GenerateChallengeInteractorImpl(fingerprintManager, userId, gateKeeperPasswordProvider)
+    removeFingerprintsInteractorUnderTest =
+      RemoveFingerprintsInteractorImpl(fingerprintManager, userId)
+    renameFingerprintsInteractorUnderTest =
+      RenameFingerprintsInteractorImpl(fingerprintManager, userId, backgroundDispatcher)
+    authenticateInteractorImplUnderTest = AuthenticateInteractorImpl(fingerprintManager, userId)
+
+    canEnrollFingerprintsInteractorUnderTest =
+      CanEnrollFingerprintsInteractorImpl(fingerprintEnrollmentRepository)
+
+    enrollInteractorUnderTest = EnrollFingerprintInteractorImpl(userId, fingerprintManager, flow)
   }
 
   @Test
@@ -119,7 +164,8 @@
       whenever(fingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(emptyList())
 
       val emptyFingerprintList: List<Fingerprint> = emptyList()
-      assertThat(underTest.enrolledFingerprints.last()).isEqualTo(emptyFingerprintList)
+      assertThat(enrolledFingerprintsInteractorUnderTest.enrolledFingerprints.last())
+        .isEqualTo(emptyFingerprintList)
     }
 
   @Test
@@ -129,7 +175,7 @@
       val fingerprintList: List<Fingerprint> = listOf(expected)
       whenever(fingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(fingerprintList)
 
-      val list = underTest.enrolledFingerprints.last()
+      val list = enrolledFingerprintsInteractorUnderTest.enrolledFingerprints.last()
       assertThat(list!!.size).isEqualTo(fingerprintList.size)
       val actual = list[0]
       assertThat(actual.name).isEqualTo(expected.name)
@@ -138,24 +184,51 @@
     }
 
   @Test
-  fun testCanEnrollFingerprint() =
+  fun testCanEnrollFingerprintSucceeds() =
     testScope.runTest {
-      val fingerprintList1: List<Fingerprint> =
+      val fingerprintList: List<Fingerprint> =
         listOf(
-          Fingerprint("Finger 1,", 2, 3L),
-          Fingerprint("Finger 2,", 3, 3L),
-          Fingerprint("Finger 3,", 4, 3L),
+          Fingerprint("Finger 1", 2, 3L),
+          Fingerprint("Finger 2", 3, 3L),
+          Fingerprint("Finger 3", 4, 3L),
         )
-      val fingerprintList2: List<Fingerprint> =
-        fingerprintList1.plus(
-          listOf(Fingerprint("Finger 4,", 5, 3L), Fingerprint("Finger 5,", 6, 3L))
-        )
-      whenever(fingerprintManager.getEnrolledFingerprints(anyInt()))
-        .thenReturn(fingerprintList1)
-        .thenReturn(fingerprintList2)
+      whenever(fingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(fingerprintList)
 
-      assertThat(underTest.canEnrollFingerprints.last()).isTrue()
-      assertThat(underTest.canEnrollFingerprints.last()).isFalse()
+      var result: Boolean? = null
+      val job =
+        testScope.launch {
+          canEnrollFingerprintsInteractorUnderTest.canEnrollFingerprints.collect { result = it }
+        }
+
+      runCurrent()
+      job.cancelAndJoin()
+
+      assertThat(result).isTrue()
+    }
+
+  @Test
+  fun testCanEnrollFingerprintFails() =
+    testScope.runTest {
+      val fingerprintList: List<Fingerprint> =
+        listOf(
+          Fingerprint("Finger 1", 2, 3L),
+          Fingerprint("Finger 2", 3, 3L),
+          Fingerprint("Finger 3", 4, 3L),
+          Fingerprint("Finger 4", 5, 3L),
+          Fingerprint("Finger 5", 6, 3L),
+        )
+      whenever(fingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(fingerprintList)
+
+      var result: Boolean? = null
+      val job =
+        testScope.launch {
+          canEnrollFingerprintsInteractorUnderTest.canEnrollFingerprints.collect { result = it }
+        }
+
+      runCurrent()
+      job.cancelAndJoin()
+
+      assertThat(result).isFalse()
     }
 
   @Test
@@ -178,7 +251,8 @@
         argumentCaptor()
 
       var result: Pair<Long, ByteArray?>? = null
-      val job = testScope.launch { result = underTest.generateChallenge(1L) }
+      val job =
+        testScope.launch { result = generateChallengeInteractorUnderTest.generateChallenge(1L) }
       runCurrent()
 
       verify(fingerprintManager).generateChallenge(anyInt(), capture(generateChallengeCallback))
@@ -201,7 +275,10 @@
 
       var result: Boolean? = null
       val job =
-        testScope.launch { result = underTest.removeFingerprint(fingerprintViewModelToRemove) }
+        testScope.launch {
+          result =
+            removeFingerprintsInteractorUnderTest.removeFingerprint(fingerprintViewModelToRemove)
+        }
       runCurrent()
 
       verify(fingerprintManager)
@@ -224,7 +301,10 @@
 
       var result: Boolean? = null
       val job =
-        testScope.launch { result = underTest.removeFingerprint(fingerprintViewModelToRemove) }
+        testScope.launch {
+          result =
+            removeFingerprintsInteractorUnderTest.removeFingerprint(fingerprintViewModelToRemove)
+        }
       runCurrent()
 
       verify(fingerprintManager)
@@ -246,7 +326,7 @@
     testScope.runTest {
       val fingerprintToRename = FingerprintData("Finger 2", 1, 2L)
 
-      underTest.renameFingerprint(fingerprintToRename, "Woo")
+      renameFingerprintsInteractorUnderTest.renameFingerprint(fingerprintToRename, "Woo")
 
       verify(fingerprintManager).rename(eq(fingerprintToRename.fingerId), anyInt(), safeEq("Woo"))
     }
@@ -257,7 +337,7 @@
       val fingerprint = Fingerprint("Woooo", 100, 101L)
 
       var result: FingerprintAuthAttemptModel? = null
-      val job = launch { result = underTest.authenticate() }
+      val job = launch { result = authenticateInteractorImplUnderTest.authenticate() }
 
       val authCallback: ArgumentCaptor<FingerprintManager.AuthenticationCallback> = argumentCaptor()
 
@@ -284,7 +364,7 @@
   fun testAuth_lockout() =
     testScope.runTest {
       var result: FingerprintAuthAttemptModel? = null
-      val job = launch { result = underTest.authenticate() }
+      val job = launch { result = authenticateInteractorImplUnderTest.authenticate() }
 
       val authCallback: ArgumentCaptor<FingerprintManager.AuthenticationCallback> = argumentCaptor()
 
@@ -314,7 +394,7 @@
       val token = byteArrayOf(5, 3, 2)
       var result: FingerEnrollState? = null
       val job = launch {
-        underTest
+        enrollInteractorUnderTest
           .enroll(token, EnrollReason.FindSensor, FingerprintEnrollOptions.Builder().build())
           .collect { result = it }
       }
@@ -343,7 +423,7 @@
       val token = byteArrayOf(5, 3, 2)
       var result: FingerEnrollState? = null
       val job = launch {
-        underTest
+        enrollInteractorUnderTest
           .enroll(token, EnrollReason.FindSensor, FingerprintEnrollOptions.Builder().build())
           .collect { result = it }
       }
@@ -372,7 +452,7 @@
       val token = byteArrayOf(5, 3, 2)
       var result: FingerEnrollState? = null
       val job = launch {
-        underTest
+        enrollInteractorUnderTest
           .enroll(token, EnrollReason.FindSensor, FingerprintEnrollOptions.Builder().build())
           .collect { result = it }
       }
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 9662c39..04cece8 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
@@ -99,9 +99,10 @@
     backgroundViewModel.inForeground()
     enrollViewModel =
       FingerprintEnrollViewModel(
-        fakeFingerprintManagerInteractor,
         gatekeeperViewModel,
         navigationViewModel,
+        fakeFingerprintManagerInteractor,
+        fakeFingerprintManagerInteractor,
       )
     accessibilityInteractor =
       object : AccessibilityInteractor {
diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/modules/enrolling/rfps/viewmodel/RFPSIconTouchViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/modules/enrolling/rfps/viewmodel/RFPSIconTouchViewModelTest.kt
index 46e883a..53f4726 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/modules/enrolling/rfps/viewmodel/RFPSIconTouchViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/modules/enrolling/rfps/viewmodel/RFPSIconTouchViewModelTest.kt
@@ -49,8 +49,7 @@
   fun setup() {
     Dispatchers.setMain(backgroundDispatcher)
     testScope = TestScope(backgroundDispatcher)
-    rfpsIconTouchViewModel =
-      RFPSIconTouchViewModel()
+    rfpsIconTouchViewModel = RFPSIconTouchViewModel()
   }
 
   @After
diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt
index c475cc4..cf2deec 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt
@@ -88,9 +88,10 @@
     backgroundViewModel.inForeground()
     val fingerprintEnrollViewModel =
       FingerprintEnrollViewModel(
-        fakeFingerprintManagerInteractor,
         gateKeeperViewModel,
         navigationViewModel,
+        fakeFingerprintManagerInteractor,
+        fakeFingerprintManagerInteractor,
       )
     enrollEnrollingViewModel =
       FingerprintEnrollEnrollingViewModel(fingerprintEnrollViewModel, backgroundViewModel)
diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt
index 201fffa..88f76dd 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt
@@ -67,10 +67,11 @@
     underTest =
       FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
           defaultUserId,
-          fakeFingerprintManagerInteractor,
           backgroundDispatcher,
           null,
           null,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
         )
         .create(FingerprintSettingsNavigationViewModel::class.java)
   }
@@ -272,10 +273,11 @@
       underTest =
         FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
             defaultUserId,
-            fakeFingerprintManagerInteractor,
             backgroundDispatcher,
             token,
             challenge,
+            fakeFingerprintManagerInteractor,
+            fakeFingerprintManagerInteractor,
           )
           .create(FingerprintSettingsNavigationViewModel::class.java)
 
@@ -299,10 +301,11 @@
       underTest =
         FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
             defaultUserId,
-            fakeFingerprintManagerInteractor,
             backgroundDispatcher,
             token,
             challenge,
+            fakeFingerprintManagerInteractor,
+            fakeFingerprintManagerInteractor,
           )
           .create(FingerprintSettingsNavigationViewModel::class.java)
 
@@ -331,10 +334,11 @@
       underTest =
         FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
             defaultUserId,
-            fakeFingerprintManagerInteractor,
             backgroundDispatcher,
             token,
             challenge,
+            fakeFingerprintManagerInteractor,
+            fakeFingerprintManagerInteractor,
           )
           .create(FingerprintSettingsNavigationViewModel::class.java)
 
diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt
index 1618e16..79163d9 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt
@@ -73,19 +73,25 @@
     navigationViewModel =
       FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
           defaultUserId,
-          fakeFingerprintManagerInteractor,
           backgroundDispatcher,
           null,
           null,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
         )
         .create(FingerprintSettingsNavigationViewModel::class.java)
 
     underTest =
       FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
           defaultUserId,
-          fakeFingerprintManagerInteractor,
           backgroundDispatcher,
           navigationViewModel,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
         )
         .create(FingerprintSettingsViewModel::class.java)
   }
@@ -114,14 +120,7 @@
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
         mutableListOf(FingerprintData("a", 1, 3L))
 
-      underTest =
-        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-            defaultUserId,
-            fakeFingerprintManagerInteractor,
-            backgroundDispatcher,
-            navigationViewModel,
-          )
-          .create(FingerprintSettingsViewModel::class.java)
+      recreateSettingsViewModel()
 
       var authAttempt: FingerprintAuthAttemptModel? = null
       val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
@@ -156,14 +155,7 @@
       fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
         mutableListOf(FingerprintData("a", 1, 3L))
 
-      underTest =
-        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-            defaultUserId,
-            fakeFingerprintManagerInteractor,
-            backgroundDispatcher,
-            navigationViewModel,
-          )
-          .create(FingerprintSettingsViewModel::class.java)
+      recreateSettingsViewModel()
 
       var authAttempt: FingerprintAuthAttemptModel? = null
       val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
@@ -198,14 +190,7 @@
       val success = FingerprintAuthAttemptModel.Success(1)
       fakeFingerprintManagerInteractor.authenticateAttempt = success
 
-      underTest =
-        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-            defaultUserId,
-            fakeFingerprintManagerInteractor,
-            backgroundDispatcher,
-            navigationViewModel,
-          )
-          .create(FingerprintSettingsViewModel::class.java)
+      recreateSettingsViewModel()
 
       var authAttempt: FingerprintAuthAttemptModel? = null
 
@@ -225,14 +210,7 @@
     fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
       mutableListOf(fingerprintToDelete)
 
-    underTest =
-      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          navigationViewModel,
-        )
-        .create(FingerprintSettingsViewModel::class.java)
+    recreateSettingsViewModel()
 
     var dialog: PreferenceViewModel? = null
     val dialogJob = launch { underTest.isShowingDialog.collect { dialog = it } }
@@ -261,14 +239,7 @@
     fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
       mutableListOf(fingerprintToRename)
 
-    underTest =
-      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          navigationViewModel,
-        )
-        .create(FingerprintSettingsViewModel::class.java)
+    recreateSettingsViewModel()
 
     var dialog: PreferenceViewModel? = null
     val dialogJob = launch { underTest.isShowingDialog.collect { dialog = it } }
@@ -299,14 +270,7 @@
     fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
       mutableListOf(fingerprintToDelete)
 
-    underTest =
-      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          navigationViewModel,
-        )
-        .create(FingerprintSettingsViewModel::class.java)
+    recreateSettingsViewModel()
 
     var dialog: PreferenceViewModel? = null
     val dialogJob = launch { underTest.isShowingDialog.collect { dialog = it } }
@@ -390,6 +354,22 @@
       assertThat(authAttempt).isEqualTo(null)
     }
 
+  private fun recreateSettingsViewModel() {
+    underTest =
+      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+          defaultUserId,
+          backgroundDispatcher,
+          navigationViewModel,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+          fakeFingerprintManagerInteractor,
+        )
+        .create(FingerprintSettingsViewModel::class.java)
+  }
+
   private fun setupAuth(): MutableList<FingerprintData> {
     fakeFingerprintManagerInteractor.sensorProp =
       FingerprintSensorPropertiesInternal(
@@ -409,14 +389,7 @@
     val success = FingerprintAuthAttemptModel.Success(1)
     fakeFingerprintManagerInteractor.authenticateAttempt = success
 
-    underTest =
-      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          navigationViewModel,
-        )
-        .create(FingerprintSettingsViewModel::class.java)
+    recreateSettingsViewModel()
 
     return fingerprints
   }
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 76ae491..95f69da 100644
--- a/tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt
+++ b/tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt
@@ -26,6 +26,7 @@
 import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNKNOWN
 import com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNRESTRICTED
 import com.android.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils.UNLIMITED_EXPIRE_TIME
+import com.android.settings.testutils.FakeFeatureFactory
 import com.google.common.truth.Truth.assertThat
 import org.junit.After
 import org.junit.Before
@@ -51,9 +52,14 @@
     @Spy
     private var testBatteryOptimizeUtils = spy(BatteryOptimizeUtils(context, UID, PACKAGE_NAME))
 
+    private lateinit var featureFactory: FakeFeatureFactory
+
     @Before
     fun setup() {
         AppOptModeSharedPreferencesUtils.clearAll(context)
+        featureFactory = FakeFeatureFactory.setupForTest()
+        whenever(featureFactory.powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled)
+            .thenReturn(false)
     }
 
     @After
@@ -77,8 +83,17 @@
     }
 
     @Test
-    fun updateAppOptModeExpirationInternal_withExpirationTime_verifyData() {
-        insertAppOptModeEventForTest(expirationTime = 1000L)
+    fun updateAppOptModeExpirationInternal_withoutExpirationTime_verifyEmptyList() {
+        insertAppOptModeEventForTest(expirationTime = UNLIMITED_EXPIRE_TIME)
+
+        assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty()
+    }
+
+    @Test
+    fun updateAppOptModeExpirationInternal_setOptimizedModeWithFlagEnabled_verifyData() {
+        whenever(featureFactory.powerUsageFeatureProvider.isRestrictedModeOverwriteEnabled)
+            .thenReturn(true)
+        insertAppOptModeEventForTest(expirationTime = 1000L, mode = MODE_OPTIMIZED)
 
         val events = AppOptModeSharedPreferencesUtils.getAllEvents(context)
 
@@ -93,8 +108,46 @@
     }
 
     @Test
-    fun updateAppOptModeExpirationInternal_withoutExpirationTime_verifyEmptyList() {
-        insertAppOptModeEventForTest(expirationTime = UNLIMITED_EXPIRE_TIME)
+    fun updateAppOptModeExpirationInternal_setOptimizedModeWithFlagDisabled_verifyData() {
+        whenever(featureFactory.powerUsageFeatureProvider.isRestrictedModeOverwriteEnabled)
+            .thenReturn(false)
+        insertAppOptModeEventForTest(expirationTime = 1000L, mode = MODE_OPTIMIZED)
+
+        val events = AppOptModeSharedPreferencesUtils.getAllEvents(context)
+
+        assertThat(events).hasSize(1)
+        assertAppOptimizationModeEventInfo(
+            events[0],
+            UID,
+            PACKAGE_NAME,
+            MODE_OPTIMIZED,
+            expirationTime = 1000L
+        )
+    }
+
+    @Test
+    fun updateAppOptModeExpirationInternal_setRestrictedModeWithFlagEnabled_verifyData() {
+        whenever(featureFactory.powerUsageFeatureProvider.isRestrictedModeOverwriteEnabled)
+            .thenReturn(true)
+        insertAppOptModeEventForTest(expirationTime = 1000L, mode = MODE_RESTRICTED)
+
+        val events = AppOptModeSharedPreferencesUtils.getAllEvents(context)
+
+        assertThat(events).hasSize(1)
+        assertAppOptimizationModeEventInfo(
+            events[0],
+            UID,
+            PACKAGE_NAME,
+            MODE_RESTRICTED,
+            expirationTime = 1000L
+        )
+    }
+
+    @Test
+    fun updateAppOptModeExpirationInternal_setRestrictedModeWithFlagDisabled_verifyEmptyList() {
+        whenever(featureFactory.powerUsageFeatureProvider.isRestrictedModeOverwriteEnabled)
+            .thenReturn(false)
+        insertAppOptModeEventForTest(expirationTime = 1000L, mode = MODE_RESTRICTED)
 
         assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty()
     }
@@ -127,6 +180,20 @@
     }
 
     @Test
+    fun resetExpiredAppOptModeBeforeTimestamp_forceExpiredData_verifyEmptyList() {
+        whenever(featureFactory.powerUsageFeatureProvider.isForceExpireAppOptimizationModeEnabled)
+            .thenReturn(true)
+        insertAppOptModeEventForTest(expirationTime = 1000L)
+
+        AppOptModeSharedPreferencesUtils.resetExpiredAppOptModeBeforeTimestamp(
+            context,
+            queryTimestampMs = 999L
+        )
+
+        assertThat(AppOptModeSharedPreferencesUtils.getAllEvents(context)).isEmpty()
+    }
+
+    @Test
     fun resetExpiredAppOptModeBeforeTimestamp_noExpiredData_verifyData() {
         insertAppOptModeEventForTest(expirationTime = 1000L)
 
@@ -217,14 +284,14 @@
         assertThat(currentOptMode).isEqualTo(MODE_RESTRICTED)
     }
 
-    private fun insertAppOptModeEventForTest(expirationTime: Long) {
+    private fun insertAppOptModeEventForTest(expirationTime: Long, mode: Int = MODE_OPTIMIZED) {
         whenever(testBatteryOptimizeUtils?.isOptimizeModeMutable).thenReturn(true)
-        whenever(testBatteryOptimizeUtils?.getAppOptimizationMode(true)).thenReturn(MODE_OPTIMIZED)
+        whenever(testBatteryOptimizeUtils?.getAppOptimizationMode(true)).thenReturn(mode)
         AppOptModeSharedPreferencesUtils.updateAppOptModeExpirationInternal(
             context,
             mutableListOf(UID),
             mutableListOf(PACKAGE_NAME),
-            mutableListOf(MODE_OPTIMIZED),
+            mutableListOf(mode),
             longArrayOf(expirationTime),
         ) { _: Int, _: String ->
             testBatteryOptimizeUtils
diff --git a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java
index e316b25..b025abd 100644
--- a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java
+++ b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java
@@ -17,13 +17,11 @@
 package com.android.settings.localepicker;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
 
-import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Looper;
 
@@ -67,14 +65,6 @@
     }
 
     @Test
-    public void getAvailabilityStatus_returnUnavailable() {
-        Locale.setDefault(Locale.forLanguageTag("fr-CA"));
-
-        assertThat(mTermsOfAddressCategoryController.getAvailabilityStatus()).isEqualTo(
-                CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
     public void getAvailabilityStatus_returnAvailable() {
         Locale.setDefault(Locale.forLanguageTag("fr-FR"));
 
diff --git a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
index 8a4acd2..1c482ef 100644
--- a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
@@ -36,8 +36,6 @@
 import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.os.Looper;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
 
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.LifecycleOwner;
@@ -78,15 +76,8 @@
     private static final String NOT_CONNECTED = "Not connected";
     private static final String SUB_ID_1 = "1";
     private static final String SUB_ID_2 = "2";
-    private static final String INVALID_SUB_ID = "-1";
     private static final String DISPLAY_NAME_1 = "Sub 1";
     private static final String DISPLAY_NAME_2 = "Sub 2";
-    private static final String SUB_MCC_1 = "123";
-    private static final String SUB_MNC_1 = "456";
-    private static final String SUB_MCC_2 = "223";
-    private static final String SUB_MNC_2 = "456";
-    private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
-    private static final String SUB_COUNTRY_ISO_2 = "Sub 2";
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -178,14 +169,10 @@
     }
 
     private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
-            int carrierId, String displayName, String mcc, String mnc, String countryIso,
-            int cardId, boolean isVisible, boolean isValid, boolean isActive, boolean isAvailable,
+            String displayName, boolean isVisible, boolean isValid, boolean isActive,
             boolean isActiveData) {
-        return new SubscriptionInfoEntity(subId, slotId, carrierId,
-                displayName, displayName, 0, mcc, mnc, countryIso, false, cardId,
-                TelephonyManager.DEFAULT_PORT_INDEX, false, null,
-                SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, isVisible,
-                "1234567890", true, false, isValid, true, isActive, isAvailable, isActiveData);
+        return new SubscriptionInfoEntity(subId, slotId, false, false, displayName, isVisible,
+                false, isValid, isActive, isActiveData);
     }
 
     @Test
@@ -253,10 +240,10 @@
     @Test
     public void updateCellularSummary_getActiveSubscriptionInfo_cbrs() {
         mController.setDefaultDataSubscriptionId(Integer.parseInt(SUB_ID_2));
-        mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, false, true, true, true, true);
-        mDefaultDataSubInfo = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
-                SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, false, true, true, true, false);
+        mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1,
+                false, true, true, true);
+        mDefaultDataSubInfo = setupSubscriptionInfoEntity(SUB_ID_2, 1, DISPLAY_NAME_2,
+                false, true, true, false);
         mSubscriptionInfoEntityList.add(mActiveSubInfo);
         mSubscriptionInfoEntityList.add(mDefaultDataSubInfo);
         mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -265,8 +252,8 @@
         mController.updateCellularSummary();
         assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_2);
 
-        mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true);
+        mActiveSubInfo = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1,
+                true, true, true, true);
         mSubscriptionInfoEntityList.add(mActiveSubInfo);
         mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
         mController.onAvailableSubInfoChanged(mSubscriptionInfoEntityList);
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsFragmentTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsFragmentTest.java
index cc9e116..fa61820 100644
--- a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsFragmentTest.java
+++ b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsFragmentTest.java
@@ -22,6 +22,7 @@
 
 import android.content.Context;
 import android.os.Looper;
+import android.platform.test.annotations.DisableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.test.annotation.UiThreadTest;
@@ -54,11 +55,11 @@
         if (Looper.myLooper() == null) {
             Looper.prepare();
         }
-        mSetFlagsRule.disableFlags(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED);
     }
 
     @Test
     @UiThreadTest
+    @DisableFlags(Flags.FLAG_IS_DUAL_SIM_ONBOARDING_ENABLED)
     public void isPageSearchEnabled_shouldIncludeFragmentXml() {
         mPreferenceKeyList =
                 NetworkProviderCallsSmsFragment.SEARCH_INDEX_DATA_PROVIDER
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
index a98f83b..2b78212 100644
--- a/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/NetworkProviderSimListControllerTest.java
@@ -28,7 +28,6 @@
 import android.content.Context;
 import android.os.Looper;
 import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 
 import androidx.lifecycle.LifecycleOwner;
@@ -63,12 +62,6 @@
     private static final String KEY_PREFERENCE_CATEGORY_SIM = "provider_model_sim_category";
     private static final String DISPLAY_NAME_1 = "Sub 1";
     private static final String DISPLAY_NAME_2 = "Sub 2";
-    private static final String SUB_MCC_1 = "123";
-    private static final String SUB_MNC_1 = "456";
-    private static final String SUB_MCC_2 = "223";
-    private static final String SUB_MNC_2 = "456";
-    private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
-    private static final String SUB_COUNTRY_ISO_2 = "Sub 2";
 
     @Mock
     private SubscriptionInfoEntity mSubInfo1;
@@ -140,12 +133,9 @@
     }
 
     private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId,
-            int carrierId, String displayName, String mcc, String mnc, String countryIso,
-            int cardId, boolean isValid, boolean isActive, boolean isAvailable) {
-        return new SubscriptionInfoEntity(subId, slotId, carrierId, displayName, displayName, 0,
-                mcc, mnc, countryIso, false, cardId, TelephonyManager.DEFAULT_PORT_INDEX, false,
-                null, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
-                "1234567890", true, false, isValid, true, isActive, isAvailable, false);
+            String displayName, boolean isValid, boolean isActive) {
+        return new SubscriptionInfoEntity(subId, slotId, false, false, displayName, false,
+                false, isValid, isActive, false);
     }
 
     private String setSummaryResId(String resName, String value) {
@@ -159,8 +149,7 @@
     @Test
     @UiThreadTest
     public void getSummary_tapToActivePSim() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, false, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, false);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
         displayPreferenceWithLifecycle();
@@ -172,8 +161,7 @@
     @Test
     @UiThreadTest
     public void getSummary_inactivePSim() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, false, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, false);
         doReturn(true).when(mSubscriptionManager).canDisablePhysicalSubscription();
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
@@ -187,8 +175,7 @@
     @Test
     @UiThreadTest
     public void getSummary_defaultCalls() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, true);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
 
@@ -209,8 +196,7 @@
         defaultConfig.append(setSummaryResId("default_active_sim_calls"))
                 .append(", ")
                 .append(setSummaryResId("default_active_sim_sms"));
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, true);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
 
@@ -228,10 +214,8 @@
     @Test
     @UiThreadTest
     public void getAvailablePhysicalSubscription_withTwoPhysicalSims_returnTwo() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1,
-                SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2,
-                SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, DISPLAY_NAME_1, true, true);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, DISPLAY_NAME_2, true, true);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mSubscriptionInfoEntityList.add(mSubInfo2);
         mController.setSubscriptionInfoList(mSubscriptionInfoEntityList);
diff --git a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
index 2aa1573..83a6fed 100644
--- a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
+++ b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
@@ -38,8 +38,6 @@
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
-import com.google.common.collect.ImmutableList;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -47,7 +45,6 @@
 import org.mockito.MockitoAnnotations;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
@@ -82,25 +79,6 @@
     }
 
     @Test
-    public void getSlotInfos_oneSimSlotDevice_returnTheCorrectSlotInfoList() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(oneSimSlotDeviceActivePsim());
-        ImmutableList<UiccSlotInfo> testUiccSlotInfos =
-                UiccSlotUtil.getSlotInfos(mTelephonyManager);
-
-        assertThat(testUiccSlotInfos.size()).isEqualTo(1);
-    }
-
-    @Test
-    public void getSlotInfos_twoSimSlotsDevice_returnTheCorrectSlotInfoList() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceActivePsimActiveEsim());
-        ImmutableList<UiccSlotInfo> testUiccSlotInfos =
-                UiccSlotUtil.getSlotInfos(mTelephonyManager);
-
-        assertThat(testUiccSlotInfos.size()).isEqualTo(2);
-    }
-
-    @Test
     public void getEsimSlotId_twoSimSlotsDeviceAndEsimIsSlot0_returnTheCorrectEsimSlot() {
         when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
                 twoSimSlotsDeviceActiveEsimActivePsim());
@@ -643,105 +621,7 @@
         assertThat(testExcludedLogicalSlotIndex).isEqualTo(verifyExcludedLogicalSlotIndex);
     }
 
-    @Test
-    public void isRemovableSimEnabled_noPsim_returnsFalse() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                oneSimSlotDeviceActiveEsim());
 
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isFalse();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_activeRemovableEsimAndInactivePsim_returnsFalse() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceActiveRemovableEsimInactivePsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isFalse();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_activeRemovableEsimAndActivePsim_returnsTrue() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceActivePsimActiveRemovableEsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isTrue();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_inactiveRemovableEsimAndActivePsim_returnsTrue() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceInactiveRemovableEsimActivePsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isTrue();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_twoActiveRemovableEsimsAndInactivePsim_returnsFalse() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceTwoActiveRemovableEsimsInactivePsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isFalse();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_oneActiveOneInactiveRemovableEsimActivePsim_returnsTrue() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceOneActiveOneInactiveRemovableEsimsActivePsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isTrue();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_activePsim_returnsTrue() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                oneSimSlotDeviceActivePsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isTrue();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_inactivePsim_returnsFalse() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                oneSimSlotDeviceinactivePsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isFalse();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_activeEsimAndActivePsim_returnsTrue() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceActivePsimActiveEsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isTrue();
-    }
-
-    @Test
-    public void isRemovableSimEnabled_activeEsimAndInactivePsim_returnsFalse() {
-        when(mTelephonyManager.getUiccSlotsInfo()).thenReturn(
-                twoSimSlotsDeviceInactivePsimActiveEsim());
-
-        boolean testSlot = UiccSlotUtil.isRemovableSimEnabled(mTelephonyManager);
-
-        assertThat(testSlot).isFalse();
-    }
 
     @Test
     public void performSwitchToSlot_setSimSlotMapping() throws UiccSlotsException {
@@ -856,13 +736,6 @@
         return slotMap;
     }
 
-    private List<UiccSlotMapping> createUiccSlotMappingSsModeEsimPort1Active() {
-        List<UiccSlotMapping> slotMap = new ArrayList<>();
-        slotMap.add(new UiccSlotMapping(1, ESIM_PHYSICAL_SLOT, 0));
-
-        return slotMap;
-    }
-
     private List<UiccSlotMapping> createUiccSlotMappingPsimAndPort0() {
         List<UiccSlotMapping> slotMap = new ArrayList<>();
         slotMap.add(new UiccSlotMapping(0, PSIM_PHYSICAL_SLOT, 0));
@@ -915,14 +788,6 @@
         return new UiccSlotInfo[]{createUiccSlotInfo(false, true, 0, true)};
     }
 
-    private UiccSlotInfo[] oneSimSlotDeviceActiveEsim() {
-        return new UiccSlotInfo[]{createUiccSlotInfo(true, false, 1, true)};
-    }
-
-    private UiccSlotInfo[] oneSimSlotDeviceinactivePsim() {
-        return new UiccSlotInfo[]{createUiccSlotInfo(false, true, -1, false)};
-    }
-
     private UiccSlotInfo[] twoSimSlotsDeviceActivePsimActiveEsim() {
         return new UiccSlotInfo[]{
                 createUiccSlotInfo(false, true, 0, true),
@@ -941,61 +806,12 @@
                 createUiccSlotInfo(true, true, 1, true)};
     }
 
-    private UiccSlotInfo[] twoSimSlotsDeviceActiveRemovableEsimInactivePsim() {
-        return new UiccSlotInfo[]{
-                createUiccSlotInfo(true, true, 0, true),
-                createUiccSlotInfo(false, true, -1, false)};
-    }
-
-    private UiccSlotInfo[] twoSimSlotsDeviceInactiveRemovableEsimActivePsim() {
-        return new UiccSlotInfo[]{
-                createUiccSlotInfo(true, true, -1, false),
-                createUiccSlotInfo(false, true, 0, true)};
-    }
-
-    private UiccSlotInfo[] twoSimSlotsDeviceTwoActiveRemovableEsimsInactivePsim() {
-        return new UiccSlotInfo[]{
-                createUiccSlotInfoForRemovableEsimMep(0, true, 1, true),
-                createUiccSlotInfo(false, true, -1, false)};
-    }
-
-    private UiccSlotInfo[] twoSimSlotsDeviceOneActiveOneInactiveRemovableEsimsActivePsim() {
-        return new UiccSlotInfo[]{
-                createUiccSlotInfoForRemovableEsimMep(1, true, -1, false),
-                createUiccSlotInfo(false, true, 0, true)};
-    }
-
     private UiccSlotInfo[] twoSimSlotsDeviceActiveEsimActivePsim() {
         return new UiccSlotInfo[]{
                 createUiccSlotInfo(true, false, 0, true),
                 createUiccSlotInfo(false, true, 1, true)};
     }
 
-    private UiccSlotInfo[] twoSimSlotsDeviceTwoActiveEsims() {
-        // device supports MEP, so device can enable two esims.
-        // If device has psim slot, the UiccSlotInfo of psim always be in UiccSlotInfo[].
-        return new UiccSlotInfo[]{
-                createUiccSlotInfo(false, true, -1, true),
-                createUiccSlotInfoForEsimMep(0, true, 1, true)};
-    }
-
-    private UiccSlotInfo[] twoSimSlotsDeviceActivePsimInactiveEsim() {
-        return new UiccSlotInfo[]{
-                createUiccSlotInfo(false, true, 0, true),
-                createUiccSlotInfo(true, false, -1, false)};
-    }
-
-    private UiccSlotInfo[] twoSimSlotsDeviceInactivePsimActiveEsim() {
-        return new UiccSlotInfo[]{
-                createUiccSlotInfo(false, true, 0, false),
-                createUiccSlotInfo(true, false, 1, true)};
-    }
-
-    private UiccSlotInfo[] twoSimSlotsDeviceNoInsertPsimActiveEsim() {
-        return new UiccSlotInfo[]{
-                createUiccSlotInfo(false, true, -1, false),
-                createUiccSlotInfo(true, false, 1, true)};
-    }
     //ToDo: add more cases.
 
     private UiccSlotInfo createUiccSlotInfo(boolean isEuicc, boolean isRemovable,
@@ -1011,36 +827,4 @@
                                 logicalSlotIdx /* logicalSlotIdx */, isActive /* isActive */))
         );
     }
-
-    private UiccSlotInfo createUiccSlotInfoForEsimMep(int logicalSlotIdx1, boolean isActiveEsim1,
-            int logicalSlotIdx2, boolean isActiveEsim2) {
-        return new UiccSlotInfo(
-                true, /* isEuicc */
-                "123", /* cardId */
-                CARD_STATE_INFO_PRESENT, /* cardStateInfo */
-                true, /* isExtendApduSupported */
-                false, /* isRemovable */
-                Arrays.asList(
-                        new UiccPortInfo("" /* iccId */, 0 /* portIdx */,
-                                logicalSlotIdx1 /* logicalSlotIdx */, isActiveEsim1 /* isActive */),
-                        new UiccPortInfo("" /* iccId */, 1 /* portIdx */,
-                                logicalSlotIdx2 /* logicalSlotIdx */,
-                                isActiveEsim2 /* isActive */)));
-    }
-
-    private UiccSlotInfo createUiccSlotInfoForRemovableEsimMep(int logicalSlotIdx1,
-            boolean isActiveEsim1, int logicalSlotIdx2, boolean isActiveEsim2) {
-        return new UiccSlotInfo(
-                true, /* isEuicc */
-                "123", /* cardId */
-                CARD_STATE_INFO_PRESENT, /* cardStateInfo */
-                true, /* isExtendApduSupported */
-                true, /* isRemovable */
-                Arrays.asList(
-                        new UiccPortInfo("" /* iccId */, 0 /* portIdx */,
-                                logicalSlotIdx1 /* logicalSlotIdx */, isActiveEsim1 /* isActive */),
-                        new UiccPortInfo("" /* iccId */, 1 /* portIdx */,
-                                logicalSlotIdx2 /* logicalSlotIdx */,
-                                isActiveEsim2 /* isActive */)));
-    }
 }
diff --git a/tests/unit/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.java
deleted file mode 100644
index 40be07f..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.network.CarrierConfigCache;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(AndroidJUnit4.class)
-public class CarrierSettingsVersionPreferenceControllerTest {
-    @Mock
-    private CarrierConfigCache mCarrierConfigCache;
-
-    private CarrierSettingsVersionPreferenceController mController;
-    private int mSubscriptionId = 1234;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        Context context = spy(ApplicationProvider.getApplicationContext());
-        CarrierConfigCache.setTestInstance(context, mCarrierConfigCache);
-        mController = new CarrierSettingsVersionPreferenceController(context, "mock_key");
-        mController.init(mSubscriptionId);
-    }
-
-    @Test
-    public void getSummary_nullConfig_noCrash() {
-        doReturn(null).when(mCarrierConfigCache).getConfigForSubId(mSubscriptionId);
-
-        assertThat(mController.getSummary()).isNull();
-    }
-
-    @Test
-    public void getSummary_nullVersionString_noCrash() {
-        doReturn(new PersistableBundle()).when(mCarrierConfigCache)
-                .getConfigForSubId(mSubscriptionId);
-        assertThat(mController.getSummary()).isNull();
-    }
-
-    @Test
-    public void getSummary_hasVersionString_correctSummary() {
-        final PersistableBundle bundle = new PersistableBundle();
-        bundle.putString(CarrierConfigManager.KEY_CARRIER_CONFIG_VERSION_STRING,
-                "test_version_123");
-        doReturn(bundle).when(mCarrierConfigCache).getConfigForSubId(mSubscriptionId);
-
-        assertThat(mController.getSummary()).isEqualTo("test_version_123");
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
index 42e3a83..f5329fa 100644
--- a/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/DefaultSubscriptionControllerTest.java
@@ -30,7 +30,6 @@
 import android.telecom.TelecomManager;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
 
 import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.LifecycleRegistry;
@@ -70,15 +69,6 @@
     private static final String DISPLAY_NAME_1 = "Sub 1";
     private static final String DISPLAY_NAME_2 = "Sub 2";
     private static final String DISPLAY_NAME_3 = "Sub 3";
-    private static final String SUB_MCC_1 = "123";
-    private static final String SUB_MNC_1 = "456";
-    private static final String SUB_MCC_2 = "223";
-    private static final String SUB_MNC_2 = "456";
-    private static final String SUB_MCC_3 = "323";
-    private static final String SUB_MNC_3 = "456";
-    private static final String SUB_COUNTRY_ISO_1 = "Sub 1";
-    private static final String SUB_COUNTRY_ISO_2 = "Sub 2";
-    private static final String SUB_COUNTRY_ISO_3 = "Sub 3";
 
     @Mock
     private SubscriptionManager mSubMgr;
@@ -133,12 +123,9 @@
         SubscriptionUtil.setActiveSubscriptionsForTesting(null);
     }
 
-    private SubscriptionInfoEntity setupSubscriptionInfoEntity(
-            String subId, String displayName, String mcc, String mnc, String countryIso) {
-        return new SubscriptionInfoEntity(subId, 1, 1, displayName, displayName, 0, mcc, mnc,
-                countryIso, false, 1, TelephonyManager.DEFAULT_PORT_INDEX, false, null,
-                SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false, "1234567890",
-                true, false, true, true, true, true, false);
+    private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, String displayName) {
+        return new SubscriptionInfoEntity(subId, 1, false, false, displayName, false, false, true,
+                true, false);
     }
 
     @Test
@@ -151,8 +138,7 @@
 
     @Test
     public void getSummary_singleSub() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
         mController.displayPreference(mScreen);
@@ -164,10 +150,8 @@
 
     @Test
     public void getSummary_twoSubs() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mSubscriptionInfoEntityList.add(mSubInfo2);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -180,10 +164,8 @@
 
     @Test
     public void onPreferenceChange_prefChangedToSub2_callbackCalledCorrectly() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -197,10 +179,8 @@
 
     @Test
     public void onPreferenceChange_prefChangedToAlwaysAsk_callbackCalledCorrectly() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -217,10 +197,8 @@
     @Test
     public void onPreferenceChange_prefBecomesAvailable_onPreferenceChangeCallbackNotNull() {
         // Start with only one sub active, so the pref is not available
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -240,10 +218,8 @@
 
     @Test
     public void onSubscriptionsChanged_twoSubscriptionsDefaultChanges_selectedEntryGetsUpdated() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mSubscriptionInfoEntityList.add(mSubInfo2);
@@ -261,10 +237,8 @@
 
     @Test
     public void onSubscriptionsChanged_goFromTwoSubscriptionsToOne_prefDisappears() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mSubscriptionInfoEntityList.add(mSubInfo2);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
@@ -287,10 +261,8 @@
     @Test
     @UiThreadTest
     public void onSubscriptionsChanged_goFromOneSubscriptionToTwo_prefAppears() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
         mController.onActiveSubInfoChanged(mSubscriptionInfoEntityList);
@@ -309,12 +281,9 @@
 
     @Test
     public void onSubscriptionsChanged_goFromTwoToThreeSubscriptions_listGetsUpdated() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1,
-                SUB_COUNTRY_ISO_1);
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, SUB_MCC_2, SUB_MNC_2,
-                SUB_COUNTRY_ISO_2);
-        mSubInfo3 = setupSubscriptionInfoEntity(SUB_ID_3, DISPLAY_NAME_3, SUB_MCC_3, SUB_MNC_3,
-                SUB_COUNTRY_ISO_3);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2);
+        mSubInfo3 = setupSubscriptionInfoEntity(SUB_ID_3, DISPLAY_NAME_3);
         mController.setDefaultSubscription(Integer.parseInt(mSubInfo1.subId));
         mSubscriptionInfoEntityList.add(mSubInfo1);
         mSubscriptionInfoEntityList.add(mSubInfo2);
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 b3d095e..adc8dc0 100644
--- a/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -18,9 +18,6 @@
 
 import static androidx.lifecycle.Lifecycle.Event.ON_START;
 
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
 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;
@@ -33,8 +30,6 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
@@ -125,79 +120,6 @@
 
     @UiThreadTest
     @Test
-    public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
-        mPersistableBundle.putBoolean(
-                CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
-                true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_hidePreferredNetworkType_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL,
-                true);
-
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-        when(mServiceState.getDataRegistrationState()).thenReturn(
-                ServiceState.STATE_OUT_OF_SERVICE);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-        when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
-        when(mServiceState.getRoaming()).thenReturn(false);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
-        when(mServiceState.getRoaming()).thenReturn(true);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_carrierConfigNotReady_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_notWorldPhone_returnAvailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
-                false);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, false);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_callStateIsIdle_returnAvailable() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
-        mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_IDLE);
-
-        mController.updateState(mPreference);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-        assertTrue(mPreference.isEnabled());
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_duringCalling_returnAvailable() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
-        mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_OFFHOOK);
-
-        mController.updateState(mPreference);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
-        assertFalse(mPreference.isEnabled());
-    }
-
-    @UiThreadTest
-    @Test
     public void updateState_LteWorldPhone_GlobalHasLte() {
         mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
 
diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
index 152091a..6897c01 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
@@ -29,7 +29,6 @@
 import android.content.Context;
 import android.os.Looper;
 import android.platform.test.flag.junit.SetFlagsRule;
-import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
@@ -75,8 +74,6 @@
     @Mock
     private SubscriptionManager mSubscriptionManager;
     @Mock
-    private SubscriptionInfo mSubscriptionInfo;
-    @Mock
     private FragmentTransaction mFragmentTransaction;
     @Mock
     private Lifecycle mLifecycle;
@@ -120,19 +117,15 @@
     }
 
     private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, String displayName,
-            boolean isOpportunistic, boolean isValid, boolean isActive, boolean isAvailable) {
+            boolean isOpportunistic, boolean isValid, boolean isActive) {
         int id = Integer.parseInt(subId);
-        return new SubscriptionInfoEntity(subId, id, id,
-                displayName, displayName, 0, "mcc", "mnc", "countryIso", false, id,
-                TelephonyManager.DEFAULT_PORT_INDEX, isOpportunistic, null,
-                SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false,
-                "1234567890", true, false, isValid, true, isActive, isAvailable, false);
+        return new SubscriptionInfoEntity(subId, id, false, isOpportunistic, displayName, false,
+                false, isValid, isActive, false);
     }
 
     private MobileNetworkInfoEntity setupMobileNetworkInfoEntity(String subId,
             boolean isDatEnabled) {
-        return new MobileNetworkInfoEntity(subId, false, false, isDatEnabled, false, false, false,
-                false, false, false, false, false);
+        return new MobileNetworkInfoEntity(subId, isDatEnabled, false);
     }
 
     @Test
@@ -145,7 +138,7 @@
 
     @Test
     public void isDialogNeeded_disableSingleSim_returnFalse() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true);
         mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
         doReturn(1).when(mTelephonyManager).getActiveModemCount();
 
@@ -154,12 +147,12 @@
 
     @Test
     public void isDialogNeeded_enableNonDefaultSimInMultiSimMode_returnTrue() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true);
         mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), false);
         doReturn(1).when(mTelephonyManager).getActiveModemCount();
         // Ideally, it would be better if we could set the default data subscription to
         // SUB_ID_OTHER, and set that as an active subscription id.
-        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, false, true, true, true);
+        mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, DISPLAY_NAME_2, false, true, true);
         mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
         doReturn(2).when(mTelephonyManager).getActiveModemCount();
 
@@ -181,7 +174,7 @@
 
     @Test
     public void onPreferenceChange_singleSim_On_shouldEnableData() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true);
         mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
         mController.setSubscriptionInfoEntity(mSubInfo1);
         mController.setMobileNetworkInfoEntity(mNetworkInfo1);
@@ -195,7 +188,7 @@
 
     @Test
     public void onPreferenceChange_multiSim_On_shouldEnableData() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true);
         mNetworkInfo1 = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
         mController.setSubscriptionInfoEntity(mSubInfo1);
         mController.setMobileNetworkInfoEntity(mNetworkInfo1);
@@ -220,7 +213,7 @@
 
     @Test
     public void updateState_opportunistic_disabled() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, true, true, true);
         mController.init(mFragmentManager, SUB_ID, mSubInfo1, mNetworkInfo1);
         mController.updateState(mPreference);
 
@@ -232,7 +225,7 @@
 
     @Test
     public void updateState_notOpportunistic_enabled() {
-        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true, true);
+        mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, DISPLAY_NAME_1, false, true, true);
         mController.init(mFragmentManager, SUB_ID, mSubInfo1, mNetworkInfo1);
         mController.updateState(mPreference);
 
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 9dbfdde..f22ad3b 100644
--- a/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.network.telephony;
 
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
 import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.GSM;
 import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.RAF_TD_SCDMA;
 import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.WCDMA;
@@ -32,7 +30,6 @@
 
 import android.content.Context;
 import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -92,43 +89,6 @@
     }
 
     @Test
-    public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
-                true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_worldPhone_returnAvailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
-                false);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_hidePreferredNetworkType_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL,
-                true);
-
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-        when(mServiceState.getDataRegistrationState()).thenReturn(
-                ServiceState.STATE_OUT_OF_SERVICE);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-        when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
-        when(mServiceState.getRoaming()).thenReturn(false);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
-        when(mServiceState.getRoaming()).thenReturn(true);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
     public void updateState_updateByNetworkMode() {
         // NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
         when(mTelephonyManager.getAllowedNetworkTypesForReason(
diff --git a/tests/unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java
deleted file mode 100644
index d221280..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.Looper;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.core.BasePreferenceController;
-import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(AndroidJUnit4.class)
-public class RoamingPreferenceControllerTest {
-    private static final int SUB_ID = 2;
-
-    @Mock
-    private FragmentManager mFragmentManager;
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private TelephonyManager mInvalidTelephonyManager;
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-    @Mock
-    private FragmentTransaction mFragmentTransaction;
-    @Mock
-    private CarrierConfigManager mCarrierConfigManager;
-    @Mock
-    private Lifecycle mLifecycle;
-    @Mock
-    private LifecycleOwner mLifecycleOwner;
-
-    private LifecycleRegistry mLifecycleRegistry;
-    private RoamingPreferenceController mController;
-    private RestrictedSwitchPreference mPreference;
-    private Context mContext;
-    private MobileNetworkInfoEntity mMobileNetworkInfoEntity;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        if (Looper.myLooper() == null) {
-            Looper.prepare();
-        }
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
-        doReturn(mSubscriptionManager).when(mContext).getSystemService(
-                Context.TELEPHONY_SUBSCRIPTION_SERVICE);
-
-        doReturn(mCarrierConfigManager).when(mContext).getSystemService(
-                Context.CARRIER_CONFIG_SERVICE);
-        doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
-        doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
-
-        mPreference = spy(new RestrictedSwitchPreference(mContext));
-        mController = spy(
-                new RoamingPreferenceController(mContext, "roaming", mLifecycle, mLifecycleOwner,
-                        SUB_ID));
-        mLifecycleRegistry = new LifecycleRegistry(mLifecycleOwner);
-        when(mLifecycleOwner.getLifecycle()).thenReturn(mLifecycleRegistry);
-        mController.init(mFragmentManager, SUB_ID, mMobileNetworkInfoEntity);
-        mPreference.setKey(mController.getPreferenceKey());
-    }
-
-    private MobileNetworkInfoEntity setupMobileNetworkInfoEntity(String subId,
-            boolean isDataRoaming) {
-        return new MobileNetworkInfoEntity(subId, false, false, true, false, false, false, false,
-                false, false, false, isDataRoaming);
-    }
-
-    @Test
-    public void getAvailabilityStatus_validSubId_returnAvailable() {
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_invalidSubId_returnUnsearchable() {
-        mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID,
-                mMobileNetworkInfoEntity);
-
-        assertThat(mController.getAvailabilityStatus(
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID)).isEqualTo(
-                BasePreferenceController.AVAILABLE_UNSEARCHABLE);
-    }
-
-    @Test
-    public void isDialogNeeded_roamingDisabledWithoutFlag_returnTrue() {
-        final PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL, false);
-        doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-        mMobileNetworkInfoEntity = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), false);
-        mController.setMobileNetworkInfoEntity(mMobileNetworkInfoEntity);
-
-        assertThat(mController.isDialogNeeded()).isTrue();
-    }
-
-    @Test
-    public void isDialogNeeded_roamingEnabled_returnFalse() {
-        mMobileNetworkInfoEntity = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
-        mController.setMobileNetworkInfoEntity(mMobileNetworkInfoEntity);
-
-        assertThat(mController.isDialogNeeded()).isFalse();
-    }
-
-    @Test
-    @UiThreadTest
-    public void setChecked_needDialog_showDialog() {
-        mMobileNetworkInfoEntity = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), false);
-        mController.setMobileNetworkInfoEntity(mMobileNetworkInfoEntity);
-        doReturn(null).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
-        mController.setChecked(true);
-
-        verify(mFragmentManager).beginTransaction();
-    }
-
-    @Test
-    public void updateState_invalidSubId_disabled() {
-        mMobileNetworkInfoEntity = setupMobileNetworkInfoEntity(
-                String.valueOf(SubscriptionManager.INVALID_SUBSCRIPTION_ID), false);
-        mController.setMobileNetworkInfoEntity(mMobileNetworkInfoEntity);
-        mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID,
-                mMobileNetworkInfoEntity);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void updateState_validSubId_enabled() {
-        mMobileNetworkInfoEntity = setupMobileNetworkInfoEntity(String.valueOf(SUB_ID), true);
-        mController.setMobileNetworkInfoEntity(mMobileNetworkInfoEntity);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isTrue();
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void updateState_isNotDisabledByAdmin_shouldInvokeSetEnabled() {
-        when(mPreference.isDisabledByAdmin()).thenReturn(false);
-
-        mController.updateState(mPreference);
-
-        verify(mPreference).setEnabled(anyBoolean());
-    }
-
-    @Test
-    public void updateState_isDisabledByAdmin_shouldNotInvokeSetEnabled() {
-        when(mPreference.isDisabledByAdmin()).thenReturn(true);
-
-        mController.updateState(mPreference);
-
-        verify(mPreference, never()).setEnabled(anyBoolean());
-    }
-
-    @Test
-    public void getAvailabilityStatus_carrierConfigIsNull_shouldReturnAvailable() {
-        doReturn(null).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_forceHomeNetworkIsFalse_shouldReturnAvailable() {
-        final PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL, false);
-        doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_forceHomeNetworkIsTrue_shouldReturnConditionallyAvailable() {
-        final PersistableBundle bundle = new PersistableBundle();
-        bundle.putBoolean(CarrierConfigManager.KEY_FORCE_HOME_NETWORK_BOOL, true);
-        doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java b/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java
index dee90b4..61ca6e5 100644
--- a/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java
+++ b/tests/unit/src/com/android/settings/security/SecuritySettingsTest.java
@@ -339,6 +339,30 @@
         assertThat(mPreferenceCombined.isVisible()).isFalse();
     }
 
+    @Test
+    public void noFace_isNotIndexable() throws Exception {
+        when(mFaceManager.isHardwareDetected()).thenReturn(false);
+        final BaseSearchIndexProvider indexProvider = SecuritySettings.SEARCH_INDEX_DATA_PROVIDER;
+
+        final List<String> allXmlKeys = TestUtils.getAllXmlKeys(mContext, indexProvider);
+        final List<String> nonIndexableKeys = indexProvider.getNonIndexableKeys(mContext);
+        allXmlKeys.removeAll(nonIndexableKeys);
+
+        assertThat(allXmlKeys).doesNotContain(SecuritySettings.KEY_FACE_SETTINGS);
+    }
+
+    @Test
+    public void noFingerprint_isNotIndexable() throws Exception {
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
+        final BaseSearchIndexProvider indexProvider = SecuritySettings.SEARCH_INDEX_DATA_PROVIDER;
+
+        final List<String> allXmlKeys = TestUtils.getAllXmlKeys(mContext, indexProvider);
+        final List<String> nonIndexableKeys = indexProvider.getNonIndexableKeys(mContext);
+        allXmlKeys.removeAll(nonIndexableKeys);
+
+        assertThat(allXmlKeys).doesNotContain(SecuritySettings.KEY_FINGERPRINT_SETTINGS);
+    }
+
     boolean isFacePrefAvailable(List<AbstractPreferenceController> controllers) {
         return controllers.stream().filter(
                 controller -> controller instanceof FaceStatusPreferenceController
diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
index b8dd5ac..6a50ffc 100644
--- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -25,7 +25,6 @@
 import com.android.settings.applications.ApplicationFeatureProvider;
 import com.android.settings.biometrics.face.FaceFeatureProvider;
 import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
 import com.android.settings.bluetooth.BluetoothFeatureProvider;
 import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider;
 import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
@@ -82,7 +81,6 @@
     public final BluetoothFeatureProvider mBluetoothFeatureProvider;
     public final FaceFeatureProvider mFaceFeatureProvider;
     public final FingerprintFeatureProvider mFingerprintFeatureProvider;
-    public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
 
     public PanelFeatureProvider panelFeatureProvider;
     public SlicesFeatureProvider slicesFeatureProvider;
@@ -140,7 +138,6 @@
         mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
         mFaceFeatureProvider = mock(FaceFeatureProvider.class);
         mFingerprintFeatureProvider = mock(FingerprintFeatureProvider.class);
-        mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
         wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
         securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
         mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
@@ -273,11 +270,6 @@
     }
 
     @Override
-    public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
-        return mBiometricsRepositoryProvider;
-    }
-
-    @Override
     public WifiTrackerLibProvider getWifiTrackerLibProvider() {
         return wifiTrackerLibProvider;
     }
diff --git a/tests/unit/src/com/android/settings/wifi/WepLessSecureWarningControllerTest.kt b/tests/unit/src/com/android/settings/wifi/WepLessSecureWarningControllerTest.kt
new file mode 100644
index 0000000..008539d
--- /dev/null
+++ b/tests/unit/src/com/android/settings/wifi/WepLessSecureWarningControllerTest.kt
@@ -0,0 +1,69 @@
+/*
+ * 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.wifi
+
+import android.content.Context
+import androidx.test.core.app.ApplicationProvider
+import com.android.settings.core.BasePreferenceController.AVAILABLE
+import com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE
+import com.android.wifitrackerlib.WifiEntry
+import com.google.common.truth.Truth.assertThat
+import org.junit.Rule
+import org.junit.Test
+import org.mockito.Mock
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.Mockito.`when` as whenever
+
+class WepLessSecureWarningControllerTest {
+    @get:Rule
+    val mockito: MockitoRule = MockitoJUnit.rule()
+    @Spy
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    @Mock
+    private lateinit var mockWifiEntry: WifiEntry
+
+    private val controller = WepLessSecureWarningController(context, TEST_KEY)
+
+    @Test
+    fun getAvailabilityStatus_default_conditionallyUnavailable() {
+        assertThat(controller.availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_noWepSecurityType_conditionallyUnavailable() {
+        whenever(mockWifiEntry.securityTypes).thenReturn(listOf(WifiEntry.SECURITY_PSK))
+
+        controller.setWifiEntry(mockWifiEntry)
+
+        assertThat(controller.availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_containsWepSecurityType_available() {
+        whenever(mockWifiEntry.securityTypes).thenReturn(listOf(WifiEntry.SECURITY_WEP))
+
+        controller.setWifiEntry(mockWifiEntry)
+
+        assertThat(controller.availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+    }
+}
diff --git a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
index 4d723dc1..34c8602 100644
--- a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
+++ b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
@@ -20,15 +20,33 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.anyInt;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.mock;
 
 import android.content.Context;
+import android.content.Intent;
 import android.os.UserManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.wifi.factory.WifiFeatureProvider;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -44,18 +62,36 @@
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     @Spy
     private final Context mContext = ApplicationProvider.getApplicationContext();
     @Mock
     private UserManager mUserManager;
+    @Mock
+    private FragmentManager mFragmentManager;
 
+    // Mock, created by FakeFeatureFactory
+    private WifiFeatureProvider mWifiFeatureProviderMock;
+
+    @Spy
     private WifiDppConfiguratorActivity mActivity;
 
     @Before
     public void setUp() {
         when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
 
-        mActivity = new WifiDppConfiguratorActivity();
+        mActivity.mFragmentManager = mFragmentManager;
+        doReturn(mContext).when(mActivity).getApplicationContext();
+
+        FragmentTransaction mockTransaction = mock(FragmentTransaction.class);
+        when(mFragmentManager.beginTransaction()).thenReturn(mockTransaction);
+        when(mockTransaction.replace(anyInt(), any(Fragment.class), anyString()))
+                .thenReturn(mockTransaction);
+
+        FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+        mWifiFeatureProviderMock = featureFactory.mWifiFeatureProvider;
     }
 
     @Test
@@ -71,4 +107,37 @@
 
         assertThat(mActivity.isAddWifiConfigAllowed(mContext)).isFalse();
     }
+
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+    public void showQrCodeGeneratorFragment_shouldUseFeatureFactory() {
+        when(mUserManager.isGuestUser()).thenReturn(false);
+        when(mWifiFeatureProviderMock.getWifiDppQrCodeGeneratorFragment())
+                .thenReturn(new WifiDppQrCodeGeneratorFragment());
+
+        mActivity.handleIntent(createQrCodeGeneratorIntent());
+
+        verify(mWifiFeatureProviderMock).getWifiDppQrCodeGeneratorFragment();
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_ENABLE_WIFI_SHARING_RUNTIME_FRAGMENT)
+    public void showQrCodeGeneratorFragment_shouldNotUseFeatureFactory() {
+        when(mUserManager.isGuestUser()).thenReturn(false);
+
+        mActivity.handleIntent(createQrCodeGeneratorIntent());
+
+        verify(mWifiFeatureProviderMock, never())
+                .getWifiDppQrCodeGeneratorFragment();
+    }
+
+    private static Intent createQrCodeGeneratorIntent() {
+        Intent intent = new Intent(
+                WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR);
+        intent.putExtra(WifiDppUtils.EXTRA_WIFI_SSID, "GoogleGuest");
+        intent.putExtra(WifiDppUtils.EXTRA_WIFI_SECURITY, "WPA");
+        intent.putExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY, "\\012345678,");
+        return intent;
+    }
 }
diff --git a/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java b/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
index a97b1a0..4765d18 100644
--- a/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
+++ b/tests/unit/src/com/android/settings/wifi/repository/WifiHotspotRepositoryTest.java
@@ -109,21 +109,21 @@
         doReturn(SPEED_6GHZ).when(mSpeedType).getValue();
         doReturn(true).when(mWifiManager).is5GHzBandSupported();
         doReturn(Arrays.asList(new WifiAvailableChannel(FREQ_5GHZ, OP_MODE_SAP))).when(mWifiManager)
-                .getUsableChannels(WifiScanner.WIFI_BAND_5_GHZ_WITH_DFS, OP_MODE_SAP);
+                .getAllowedChannels(WifiScanner.WIFI_BAND_5_GHZ_WITH_DFS, OP_MODE_SAP);
         doReturn(true).when(mWifiManager).is6GHzBandSupported();
         doReturn(Arrays.asList(new WifiAvailableChannel(FREQ_6GHZ, OP_MODE_SAP))).when(mWifiManager)
-                .getUsableChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP);
+                .getAllowedChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP);
 
         mRepository = new WifiHotspotRepository(mContext, mWifiManager, mTetheringManager);
         mRepository.mSecurityType = mSecurityType;
         mRepository.mSpeedType = mSpeedType;
         mRepository.mIsDualBand = true;
-        mRepository.mBand5g.isUsableChannelsReady = true;
-        mRepository.mBand5g.isUsableChannelsUnsupported = false;
-        mRepository.mBand5g.hasUsableChannels = true;
-        mRepository.mBand6g.isUsableChannelsReady = true;
-        mRepository.mBand6g.isUsableChannelsUnsupported = false;
-        mRepository.mBand6g.hasUsableChannels = true;
+        mRepository.mBand5g.isChannelsReady = true;
+        mRepository.mBand5g.isChannelsUnsupported = false;
+        mRepository.mBand5g.hasChannels = true;
+        mRepository.mBand6g.isChannelsReady = true;
+        mRepository.mBand6g.isChannelsUnsupported = false;
+        mRepository.mBand6g.hasChannels = true;
     }
 
     @Test
@@ -382,7 +382,7 @@
     @Test
     public void updateSpeedType_singleBand5gPreferredBut5gUnavailable_get2gSpeedType() {
         mRepository.mIsDualBand = false;
-        mRepository.mBand5g.hasUsableChannels = false;
+        mRepository.mBand5g.hasChannels = false;
         SoftApConfiguration config = new SoftApConfiguration.Builder()
                 .setBand(WIFI_5GHZ_BAND_PREFERRED).build();
         when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
@@ -407,7 +407,7 @@
     @Test
     public void updateSpeedType_singleBand6gPreferredBut6gUnavailable_get5gSpeedType() {
         mRepository.mIsDualBand = false;
-        mRepository.mBand6g.hasUsableChannels = false;
+        mRepository.mBand6g.hasChannels = false;
         SoftApConfiguration config = new SoftApConfiguration.Builder()
                 .setBand(WIFI_6GHZ_BAND_PREFERRED).build();
         when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
@@ -420,8 +420,8 @@
     @Test
     public void updateSpeedType_singleBand6gPreferredBut5gAnd6gUnavailable_get2gSpeedType() {
         mRepository.mIsDualBand = false;
-        mRepository.mBand5g.hasUsableChannels = false;
-        mRepository.mBand6g.hasUsableChannels = false;
+        mRepository.mBand5g.hasChannels = false;
+        mRepository.mBand6g.hasChannels = false;
         SoftApConfiguration config = new SoftApConfiguration.Builder()
                 .setBand(WIFI_6GHZ_BAND_PREFERRED).build();
         when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
@@ -446,7 +446,7 @@
     @Test
     public void updateSpeedType_dualBand2gAnd5gBut5gUnavailable_get2gSpeedType() {
         mRepository.mIsDualBand = true;
-        mRepository.mBand5g.hasUsableChannels = false;
+        mRepository.mBand5g.hasChannels = false;
         SoftApConfiguration config = new SoftApConfiguration.Builder()
                 .setBand(WIFI_5GHZ_BAND_PREFERRED).build();
         when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
@@ -562,20 +562,20 @@
     }
 
     @Test
-    public void is5gAvailable_hasUsableChannels_returnTrue() {
+    public void is5gAvailable_hasChannels_returnTrue() {
         mRepository.mIs5gBandSupported = true;
         // Reset m5gBand to trigger an update
-        mRepository.mBand5g.isUsableChannelsReady = false;
+        mRepository.mBand5g.isChannelsReady = false;
 
         assertThat(mRepository.is5gAvailable()).isTrue();
     }
 
     @Test
-    public void is5gAvailable_noUsableChannels_returnFalse() {
+    public void is5gAvailable_noChannels_returnFalse() {
         mRepository.mIs5gBandSupported = true;
         // Reset m5gBand to trigger an update
-        mRepository.mBand5g.isUsableChannelsReady = false;
-        when(mWifiManager.getUsableChannels(WifiScanner.WIFI_BAND_5_GHZ_WITH_DFS, OP_MODE_SAP))
+        mRepository.mBand5g.isChannelsReady = false;
+        when(mWifiManager.getAllowedChannels(WifiScanner.WIFI_BAND_5_GHZ_WITH_DFS, OP_MODE_SAP))
                 .thenReturn(null);
 
         assertThat(mRepository.is5gAvailable()).isFalse();
@@ -585,7 +585,7 @@
     @UiThreadTest
     public void get5gAvailable_shouldNotReturnNull() {
         // Reset m5gBand to trigger an update
-        mRepository.mBand5g.isUsableChannelsReady = false;
+        mRepository.mBand5g.isChannelsReady = false;
 
         assertThat(mRepository.get5gAvailable()).isNotNull();
     }
@@ -606,20 +606,20 @@
     }
 
     @Test
-    public void is6gAvailable_hasUsableChannels_returnTrue() {
+    public void is6gAvailable_hasChannels_returnTrue() {
         mRepository.mIs6gBandSupported = true;
         // Reset m6gBand to trigger an update
-        mRepository.mBand6g.isUsableChannelsReady = false;
+        mRepository.mBand6g.isChannelsReady = false;
 
         assertThat(mRepository.is6gAvailable()).isTrue();
     }
 
     @Test
-    public void is6gAvailable_noUsableChannels_returnFalse() {
+    public void is6gAvailable_noChannels_returnFalse() {
         mRepository.mIs6gBandSupported = true;
         // Reset m6gBand to trigger an update
-        mRepository.mBand6g.isUsableChannelsReady = false;
-        when(mWifiManager.getUsableChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP))
+        mRepository.mBand6g.isChannelsReady = false;
+        when(mWifiManager.getAllowedChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP))
                 .thenReturn(null);
 
         assertThat(mRepository.is6gAvailable()).isFalse();
@@ -658,33 +658,33 @@
     }
 
     @Test
-    public void isChannelAvailable_throwIllegalArgumentException_hasUsableChannelsFalse() {
+    public void isChannelAvailable_throwIllegalArgumentException_hasChannelsFalse() {
         doThrow(IllegalArgumentException.class).when(mWifiManager)
-                .getUsableChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP);
+                .getAllowedChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP);
 
         mRepository.isChannelAvailable(mRepository.mBand6g);
 
-        assertThat(mRepository.mBand6g.hasUsableChannels).isFalse();
-        assertThat(mRepository.mBand6g.isUsableChannelsUnsupported).isTrue();
+        assertThat(mRepository.mBand6g.hasChannels).isFalse();
+        assertThat(mRepository.mBand6g.isChannelsUnsupported).isTrue();
     }
 
     @Test
-    public void isChannelAvailable_throwUnsupportedOperationException_hasUsableChannelsFalse() {
+    public void isChannelAvailable_throwUnsupportedOperationException_hasChannelsFalse() {
         doThrow(UnsupportedOperationException.class).when(mWifiManager)
-                .getUsableChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP);
+                .getAllowedChannels(WifiScanner.WIFI_BAND_6_GHZ, OP_MODE_SAP);
 
         mRepository.isChannelAvailable(mRepository.mBand6g);
 
-        assertThat(mRepository.mBand6g.hasUsableChannels).isFalse();
-        assertThat(mRepository.mBand6g.isUsableChannelsUnsupported).isTrue();
+        assertThat(mRepository.mBand6g.hasChannels).isFalse();
+        assertThat(mRepository.mBand6g.isChannelsUnsupported).isTrue();
     }
 
     @Test
-    public void isChannelAvailable_noExceptionAndHasUsableChannels_hasUsableChannelsTrue() {
+    public void isChannelAvailable_noExceptionAndHasChannels_hasChannelsTrue() {
         mRepository.isChannelAvailable(mRepository.mBand6g);
 
-        assertThat(mRepository.mBand6g.hasUsableChannels).isTrue();
-        assertThat(mRepository.mBand6g.isUsableChannelsUnsupported).isFalse();
+        assertThat(mRepository.mBand6g.hasChannels).isTrue();
+        assertThat(mRepository.mBand6g.isChannelsUnsupported).isFalse();
     }
 
     @Test
@@ -744,9 +744,9 @@
     }
 
     @Test
-    public void updateCapabilityChanged_band5gUsableChannelsUnsupported_update5gAvailable() {
+    public void updateCapabilityChanged_band5gChannelsUnsupported_update5gAvailable() {
         mRepository = spy(new WifiHotspotRepository(mContext, mWifiManager, mTetheringManager));
-        mRepository.mBand5g.isUsableChannelsUnsupported = true;
+        mRepository.mBand5g.isChannelsUnsupported = true;
 
         mRepository.updateCapabilityChanged();
 
@@ -755,9 +755,9 @@
     }
 
     @Test
-    public void updateCapabilityChanged_band6gUsableChannelsUnsupported_update5gAvailable() {
+    public void updateCapabilityChanged_band6gChannelsUnsupported_update5gAvailable() {
         mRepository = spy(new WifiHotspotRepository(mContext, mWifiManager, mTetheringManager));
-        mRepository.mBand6g.isUsableChannelsUnsupported = true;
+        mRepository.mBand6g.isChannelsUnsupported = true;
 
         mRepository.updateCapabilityChanged();
 
@@ -766,18 +766,18 @@
     }
 
     @Test
-    public void isAvailable_isUsableChannelsUnsupportedFalse_returnHasUsableChannels() {
-        mRepository.mBand6g.isUsableChannelsUnsupported = false;
-        mRepository.mBand6g.hasUsableChannels = false;
+    public void isAvailable_isChannelsUnsupportedFalse_returnHasChannels() {
+        mRepository.mBand6g.isChannelsUnsupported = false;
+        mRepository.mBand6g.hasChannels = false;
         mRepository.mBand6g.hasCapability = true;
 
         assertThat(mRepository.mBand6g.isAvailable()).isFalse();
     }
 
     @Test
-    public void isAvailable_isUsableChannelsUnsupportedTrue_returnHasCapability() {
-        mRepository.mBand6g.isUsableChannelsUnsupported = true;
-        mRepository.mBand6g.hasUsableChannels = false;
+    public void isAvailable_isChannelsUnsupportedTrue_returnHasCapability() {
+        mRepository.mBand6g.isChannelsUnsupported = true;
+        mRepository.mBand6g.hasChannels = false;
         mRepository.mBand6g.hasCapability = true;
 
         assertThat(mRepository.mBand6g.isAvailable()).isTrue();